WPILibC++ 2025.1.1
Loading...
Searching...
No Matches
apriltag_pose.h File Reference
#include "apriltag.h"
#include "common/matd.h"

Go to the source code of this file.

Classes

struct  apriltag_detection_info_t
 
struct  apriltag_pose_t
 This struct holds the transformation from the camera optical frame to the April tag frame. More...
 

Functions

void estimate_pose_for_tag_homography (apriltag_detection_info_t *info, apriltag_pose_t *pose)
 Estimate pose of the tag using the homography method described in [1].
 
void estimate_tag_pose_orthogonal_iteration (apriltag_detection_info_t *info, double *err1, apriltag_pose_t *pose1, double *err2, apriltag_pose_t *pose2, int nIters, double min_improvement_per_iteration)
 Estimate pose of the tag.
 
double estimate_tag_pose (apriltag_detection_info_t *info, apriltag_pose_t *pose)
 Estimate tag pose.
 

Function Documentation

◆ estimate_pose_for_tag_homography()

void estimate_pose_for_tag_homography ( apriltag_detection_info_t * info,
apriltag_pose_t * pose )

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

@outparam pose

◆ estimate_tag_pose()

double estimate_tag_pose ( apriltag_detection_info_t * info,
apriltag_pose_t * pose )

Estimate tag pose.

This method is an easier to use interface to estimate_tag_pose_orthogonal_iteration.

@outparam pose

Returns
Object-space error of returned pose.

◆ estimate_tag_pose_orthogonal_iteration()

void estimate_tag_pose_orthogonal_iteration ( apriltag_detection_info_t * info,
double * err1,
apriltag_pose_t * pose1,
double * err2,
apriltag_pose_t * pose2,
int nIters,
double min_improvement_per_iteration )

Estimate 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

@outparam err1, pose1, err2, pose2