PhotonVision C++ dev-v2025.3.1-2-gf92cf62a
Loading...
Searching...
No Matches
constrained_solvepnp Namespace Reference

Classes

struct  CameraCalibration
 Pinhole camera coefficients. More...
 

Typedefs

using casadi_real = double
 
using RobotStateMat = Eigen::Matrix<casadi_real, 3, 1>
 

Functions

wpi::expected< RobotStateMat, sleipnir::SolverExitCondition > do_optimization (bool heading_free, int nTags, CameraCalibration cameraCal, Eigen::Matrix< casadi_real, 4, 4, Eigen::ColMajor > robot2camera, RobotStateMat x_guess, Eigen::Matrix< casadi_real, 4, Eigen::Dynamic, Eigen::ColMajor > field2points, Eigen::Matrix< casadi_real, 2, Eigen::Dynamic, Eigen::ColMajor > point_observations, double gyroθ, double gyroErrorScaleFac)
 Optimize x, where x is [x, y, theta]^T.
 

Typedef Documentation

◆ casadi_real

◆ RobotStateMat

using constrained_solvepnp::RobotStateMat = Eigen::Matrix<casadi_real, 3, 1>

Function Documentation

◆ do_optimization()

wpi::expected< RobotStateMat, sleipnir::SolverExitCondition > constrained_solvepnp::do_optimization ( bool heading_free,
int nTags,
CameraCalibration cameraCal,
Eigen::Matrix< casadi_real, 4, 4, Eigen::ColMajor > robot2camera,
RobotStateMat x_guess,
Eigen::Matrix< casadi_real, 4, Eigen::Dynamic, Eigen::ColMajor > field2points,
Eigen::Matrix< casadi_real, 2, Eigen::Dynamic, Eigen::ColMajor > point_observations,
double gyroθ,
double gyroErrorScaleFac )

Optimize x, where x is [x, y, theta]^T.

Note points must be undistorted prior to this. The number of columns in field2points and point_observations just be exactly 4x nTags.