8 const Eigen::VectorXd &motion_data,
9 const double delta_t) {
10 Eigen::Vector3d pose_difference;
12 (motion_data(0) * ::cos(previous_pose(2)) - motion_data(1) * ::sin(previous_pose(2))) *
15 (motion_data(0) * ::sin(previous_pose(2)) + motion_data(1) * ::cos(previous_pose(2))) *
18 return pose_difference;
22 const Eigen::VectorXd &motion_data,
23 const double delta_t) {
24 Eigen::Matrix3d jacobian = Eigen::Matrix3d::Identity();
26 -(motion_data(0) * ::sin(previous_pose(2)) + motion_data(1) * ::cos(previous_pose(2))) *
29 (motion_data(0) * ::cos(previous_pose(2)) - motion_data(1) * ::sin(previous_pose(2))) *
35 const Eigen::Vector3d &previous_pose, [[maybe_unused]]
const Eigen::VectorXd &motion_data,
36 const double delta_t) {
37 Eigen::MatrixXd jacobian = Eigen::MatrixXd::Zero(3, 4);
38 jacobian(0, 0) = ::cos(previous_pose(2)) * delta_t;
39 jacobian(0, 1) = -::sin(previous_pose(2)) * delta_t;
40 jacobian(1, 0) = ::sin(previous_pose(2)) * delta_t;
41 jacobian(1, 1) = ::cos(previous_pose(2)) * delta_t;
42 jacobian(2, 2) = delta_t;
Eigen::Matrix3d get_jacobian_pose(const Eigen::Vector3d &previous_pose, const Eigen::VectorXd &motion_data, const double delta_t) override
Get the Jacobian matrix of the motion model in relation to the pose (state)
Eigen::MatrixXd get_jacobian_motion_data(const Eigen::Vector3d &previous_pose, const Eigen::VectorXd &motion_data, const double delta_t) override
Get the Jacobian matrix of the motion model in relation to motion data (commands)