Open chengfzy opened 4 years ago
I think you will find [1] and [2, ch 14] helpful.
[1] Furgale, P., Tong, C. H., Barfoot, T. D., & Sibley, G. (2015). Continuous-time batch trajectory estimation using temporal basis functions. The International Journal of Robotics Research, 34(14), 1688-1710. [2] De Boor C (2001) A Practical Guide to Splines. New York, USA: Springer Verlag.
Hello, everyone. I'm studying the code of kalibr and trying to figure out the algorithm details for IMU-Camera calibration. kalibr uses the BSpline to represent the trajectory of IMU(or camera), and in the BSpline initialization, the below methods are called.
void BSplinePose::initPoseSplineSparse(const Eigen::VectorXd & times, const Eigen::Matrix<double,6,Eigen::Dynamic> & poses, int numSegments, double lambda)
, see code in linevoid BSpline::initSplineSparse(const Eigen::VectorXd & times, const Eigen::MatrixXd & interpolationPoints, int numSegments, double lambda)
, see code in lineI'm trying to understand the mathematics detail in
BSpline::initSplineSparse()
. Currently, I have understand several things,void BSpline::initSplineSparse()
is the sparse version of `void BSpline::initSpline3()', see code in lineHowever, I couldn't understand the mathematical details in method
Eigen::MatrixXd BSpline::curveQuadraticIntegralDiag(const Eigen::VectorXd& Wdiag, int derivativeOrder)
(see code in line). Is anyone know the details? or some paper could be referenced?