|
Calico
A visual-inertial calibration library designed for rapid problem construction and debugging.
|
#include <world_model.h>

Public Attributes | |
| std::unordered_map< int, Eigen::Vector3d > | model_definition |
| Maps feature id to its 3d point definition resolved in the rigid body frame, \(\mathbf{t}^b_{bx_i}\). Each feature needs a unique integer id. The numerical value of the id does not matter. | |
| Pose3d | T_world_rigidbody |
| FROM world TO rigidbody transform, \(\mathbf{T}^w_b\). | |
| int | id |
| Id of this rigid body. When adding rigid bodies to the BatchOptimizer, id's for all rigid bodies must be unique. | |
| bool | world_pose_is_constant |
| Flag for keeping this rigid body's world-from-rigidbody pose constant or as a free parameter. | |
| bool | model_definition_is_constant |
| Flag for keeping the model definition constant or as free parameters. | |
Rigidbody object which represents a constellation of points on a rigid body.
model_definition contains 3d points that make up the rigid body resolved in the rigid body frame \(\mathbf{t}^b_{bx_i}\). For example, this could be planar points on a fiducial target in a calibration problem relative to some origin defined on the target.
T_world_rigidbody is the rigid transform TO the world FROM the rigidbody frame such that the model defintion points can be resolved in the world frame by the following:
\[ \mathbf{T}^w_b = \left[\begin{matrix} \mathbf{R}^w_b & \mathbf{t}^w_{wb}\\ \mathbf{0}&1 \end{matrix}\right]\\ \mathbf{t}^w_{wx_i} = \mathbf{t}^w_{wb} + \mathbf{R}^w_b\mathbf{t}^b_{bx_i} \]
Both the model definition and its world pose can be set as either constant or as free parameters in an optimization problem via the flags world_pose_is_constant and model_definition_is_constant.
TODO(yangjames): Replace std::unordered_map with absl::flat_hash_map.