AprilTagPoseEstimator

class robotpy_apriltag.AprilTagPoseEstimator(config: robotpy_apriltag._apriltag.AprilTagPoseEstimator.Config)

Bases: pybind11_object

Pose estimators for AprilTag tags.

Creates estimator.

Parameters:

config – Configuration

class Config(tagSize: wpimath.units.meters, fx: SupportsFloat | SupportsIndex, fy: SupportsFloat | SupportsIndex, cx: SupportsFloat | SupportsIndex, cy: SupportsFloat | SupportsIndex)

Bases: pybind11_object

Configuration for the pose estimator.

estimate(*args, **kwargs)

Overloaded function.

  1. estimate(self: robotpy_apriltag._apriltag.AprilTagPoseEstimator, detection: robotpy_apriltag._apriltag.AprilTagDetection) -> wpimath._wpimath.Transform3d

Estimates tag pose. This method is an easier to use interface to EstimatePoseOrthogonalIteration(), running 50 iterations and returning the pose with the lower object-space error.

Parameters:

detection – Tag detection

Returns:

Pose estimate

  1. estimate(self: robotpy_apriltag._apriltag.AprilTagPoseEstimator, homography: Tuple[typing.SupportsFloat | typing.SupportsIndex, typing.SupportsFloat | typing.SupportsIndex, typing.SupportsFloat | typing.SupportsIndex, typing.SupportsFloat | typing.SupportsIndex, typing.SupportsFloat | typing.SupportsIndex, typing.SupportsFloat | typing.SupportsIndex, typing.SupportsFloat | typing.SupportsIndex, typing.SupportsFloat | typing.SupportsIndex, typing.SupportsFloat | typing.SupportsIndex], corners: Tuple[typing.SupportsFloat | typing.SupportsIndex, typing.SupportsFloat | typing.SupportsIndex, typing.SupportsFloat | typing.SupportsIndex, typing.SupportsFloat | typing.SupportsIndex, typing.SupportsFloat | typing.SupportsIndex, typing.SupportsFloat | typing.SupportsIndex, typing.SupportsFloat | typing.SupportsIndex, typing.SupportsFloat | typing.SupportsIndex]) -> wpimath._wpimath.Transform3d

Estimates tag pose. This method is an easier to use interface to EstimatePoseOrthogonalIteration(), running 50 iterations and returning the pose with the lower object-space error.

Parameters:
  • homography – Homography 3x3 matrix data

  • corners – Corner point array (X and Y for each corner in order)

Returns:

Pose estimate

estimateHomography(*args, **kwargs)

Overloaded function.

  1. estimateHomography(self: robotpy_apriltag._apriltag.AprilTagPoseEstimator, detection: robotpy_apriltag._apriltag.AprilTagDetection) -> wpimath._wpimath.Transform3d

Estimates the pose of the tag using the homography method described in [1].

Parameters:

detection – Tag detection

Returns:

Pose estimate

  1. estimateHomography(self: robotpy_apriltag._apriltag.AprilTagPoseEstimator, homography: Tuple[typing.SupportsFloat | typing.SupportsIndex, typing.SupportsFloat | typing.SupportsIndex, typing.SupportsFloat | typing.SupportsIndex, typing.SupportsFloat | typing.SupportsIndex, typing.SupportsFloat | typing.SupportsIndex, typing.SupportsFloat | typing.SupportsIndex, typing.SupportsFloat | typing.SupportsIndex, typing.SupportsFloat | typing.SupportsIndex, typing.SupportsFloat | typing.SupportsIndex]) -> wpimath._wpimath.Transform3d

Estimates the pose of the tag using the homography method described in [1].

Parameters:

homography – Homography 3x3 matrix data

Returns:

Pose estimate

estimateOrthogonalIteration(*args, **kwargs)

Overloaded function.

  1. estimateOrthogonalIteration(self: robotpy_apriltag._apriltag.AprilTagPoseEstimator, detection: robotpy_apriltag._apriltag.AprilTagDetection, nIters: typing.SupportsInt | typing.SupportsIndex) -> robotpy_apriltag._apriltag.AprilTagPoseEstimate

Estimates the pose of the tag. This returns one or two possible poses for the tag, along with the object-space error of each.

This uses the homography method described in [1] for the initial estimate. Then Orthogonal Iteration [2] is used to refine this estimate. Then [3] is used to find a potential second local minima and Orthogonal Iteration is used to refine this second estimate.

[1]: E. Olson, “Apriltag: A robust and flexible visual fiducial system,” in 2011 IEEE International Conference on Robotics and Automation, May 2011, pp. 3400–3407. [2]: Lu, G. D. Hager and E. Mjolsness, “Fast and globally convergent pose estimation from video images,” in IEEE Transactions on Pattern Analysis and Machine Intelligence, vol. 22, no. 6, pp. 610-622, June 2000. doi: 10.1109/34.862199 [3]: Schweighofer and A. Pinz, “Robust Pose Estimation from a Planar Target,” in IEEE Transactions on Pattern Analysis and Machine Intelligence, vol. 28, no. 12, pp. 2024-2030, Dec. 2006. doi: 10.1109/TPAMI.2006.252

Parameters:
  • detection – Tag detection

  • nIters – Number of iterations

Returns:

Initial and (possibly) second pose estimates

  1. estimateOrthogonalIteration(self: robotpy_apriltag._apriltag.AprilTagPoseEstimator, homography: Tuple[typing.SupportsFloat | typing.SupportsIndex, typing.SupportsFloat | typing.SupportsIndex, typing.SupportsFloat | typing.SupportsIndex, typing.SupportsFloat | typing.SupportsIndex, typing.SupportsFloat | typing.SupportsIndex, typing.SupportsFloat | typing.SupportsIndex, typing.SupportsFloat | typing.SupportsIndex, typing.SupportsFloat | typing.SupportsIndex, typing.SupportsFloat | typing.SupportsIndex], corners: Tuple[typing.SupportsFloat | typing.SupportsIndex, typing.SupportsFloat | typing.SupportsIndex, typing.SupportsFloat | typing.SupportsIndex, typing.SupportsFloat | typing.SupportsIndex, typing.SupportsFloat | typing.SupportsIndex, typing.SupportsFloat | typing.SupportsIndex, typing.SupportsFloat | typing.SupportsIndex, typing.SupportsFloat | typing.SupportsIndex], nIters: typing.SupportsInt | typing.SupportsIndex) -> robotpy_apriltag._apriltag.AprilTagPoseEstimate

Estimates the pose of the tag. This returns one or two possible poses for the tag, along with the object-space error of each.

Parameters:
  • homography – Homography 3x3 matrix data

  • corners – Corner point array (X and Y for each corner in order)

  • nIters – Number of iterations

Returns:

Initial and (possibly) second pose estimates

getConfig() robotpy_apriltag._apriltag.AprilTagPoseEstimator.Config

Gets estimator configuration.

Returns:

Configuration

setConfig(config: robotpy_apriltag._apriltag.AprilTagPoseEstimator.Config) None

Sets estimator configuration.

Parameters:

config – Configuration