1#ifndef ROBOTOC_SE3_JACOBIAN_INVERSE_HXX_
2#define ROBOTOC_SE3_JACOBIAN_INVERSE_HXX_
12 : mat_3d_tmp_(Eigen::Matrix3d::
Zero()) {
16template <
typename MatrixType1,
typename MatrixType2>
18 const Eigen::MatrixBase<MatrixType1>& Jac,
19 const Eigen::MatrixBase<MatrixType2>& Jac_inv) {
20 assert(Jac.rows() >= 6);
21 assert(Jac.cols() >= 6);
22 assert(Jac_inv.rows() >= 6);
23 assert(Jac_inv.cols() >= 6);
24 const_cast<Eigen::MatrixBase<MatrixType2>&
>(Jac_inv).
template topLeftCorner<3, 3>().noalias()
25 = Jac.template topLeftCorner<3, 3>().inverse();
26 const_cast<Eigen::MatrixBase<MatrixType2>&
>(Jac_inv).
template block<3, 3>(3, 3).noalias()
27 = Jac.template block<3, 3>(3, 3).inverse();
28 mat_3d_tmp_.noalias() = Jac.template block<3, 3>(0, 3)
29 * Jac_inv.template block<3, 3>(3, 3);
30 const_cast<Eigen::MatrixBase<MatrixType2>&
>(Jac_inv).
template block<3, 3>(0, 3).noalias()
31 = - Jac_inv.template topLeftCorner<3, 3>() * mat_3d_tmp_;
void compute(const Eigen::MatrixBase< MatrixType1 > &Jac, const Eigen::MatrixBase< MatrixType2 > &Jac_inv)
Computes the inverse of the Jacobian of SE3.
Definition: se3_jacobian_inverse.hxx:17
SE3JacobianInverse()
Default constructor.
Definition: se3_jacobian_inverse.hxx:11
Definition: constraint_component_base.hpp:17