#include <math.h>#include <stdio.h>#include "common/debug_print.h"#include "apriltag_pose.h"#include "common/homography.h"
Go to the source code of this file.
Functions | |
| matd_t * | calculate_F (matd_t *v) |
| void | estimate_pose_for_tag_homography (apriltag_detection_info_t *info, apriltag_pose_t *solution) |
| double | estimate_tag_pose (apriltag_detection_info_t *info, apriltag_pose_t *pose) |
| void | estimate_tag_pose_orthogonal_iteration (apriltag_detection_info_t *info, double *err1, apriltag_pose_t *solution1, double *err2, apriltag_pose_t *solution2, int nIters) |
| matd_t * | fix_pose_ambiguities (matd_t **v, matd_t **p, matd_t *t, matd_t *R, int n_points) |
| double | matd_to_double (matd_t *a) |
| double | orthogonal_iteration (matd_t **v, matd_t **p, matd_t **t, matd_t **R, int n_points, int n_steps) |
| double | polyval (double *p, int degree, double x) |
| void | solve_poly_approx (double *p, int degree, double *roots, int *n_roots) |
Calculate projection operator from image points.
Definition at line 12 of file apriltag_pose.c.
| void estimate_pose_for_tag_homography | ( | apriltag_detection_info_t * | info, |
| apriltag_pose_t * | solution | ||
| ) |
Estimate pose of the tag using the homography method.
Definition at line 455 of file apriltag_pose.c.
| double estimate_tag_pose | ( | apriltag_detection_info_t * | info, |
| apriltag_pose_t * | pose | ||
| ) |
Estimate tag pose.
Definition at line 528 of file apriltag_pose.c.
| void estimate_tag_pose_orthogonal_iteration | ( | apriltag_detection_info_t * | info, |
| double * | err1, | ||
| apriltag_pose_t * | solution1, | ||
| double * | err2, | ||
| apriltag_pose_t * | solution2, | ||
| int | nIters | ||
| ) |
Estimate tag pose using orthogonal iteration.
Definition at line 490 of file apriltag_pose.c.
Given a local minima of the pose error tries to find the other minima.
Definition at line 259 of file apriltag_pose.c.
| double matd_to_double | ( | matd_t * | a | ) |
Returns the value of the supplied scalar matrix 'a' and destroys the matrix.
Definition at line 23 of file apriltag_pose.c.
| double orthogonal_iteration | ( | matd_t ** | v, |
| matd_t ** | p, | ||
| matd_t ** | t, | ||
| matd_t ** | R, | ||
| int | n_points, | ||
| int | n_steps | ||
| ) |
| v | Image points on the image plane. |
| p | Object points in object space. t Optimal translation. |
| R | In/Outparam. Should be set to initial guess at R. Will be modified to be the optimal translation. |
| n_points | Number of points. |
| n_steps | Number of iterations. |
Implementation of Orthogonal Iteration from Lu, 2000.
Definition at line 43 of file apriltag_pose.c.
| double polyval | ( | double * | p, |
| int | degree, | ||
| double | x | ||
| ) |
Evaluates polynomial p at x.
Definition at line 143 of file apriltag_pose.c.
| void solve_poly_approx | ( | double * | p, |
| int | degree, | ||
| double * | roots, | ||
| int * | n_roots | ||
| ) |
Numerically solve small degree polynomials. This is a customized method. It ignores roots larger than 1000 and only gives small roots approximately.
| p | Array of parameters s.t. p(x) = p[0] + p[1]*x + ... |
| degree | The degree of p(x). roots n_roots |
Definition at line 160 of file apriltag_pose.c.