36#include <dqrobotics/robot_modeling/DQ_SerialManipulator.h>
38namespace marinholab::sas::core::modeling
45using DQ_robotics::DQ_SerialManipulator;
46using DQ_robotics::DQ_JointType;
57class SerialManipulatorSimulatorFriendly:
public DQ_SerialManipulator
70 std::vector<DQ> offset_before_;
71 std::vector<DQ> offset_after_;
72 std::vector<ActuationType> actuation_types_;
74 DQ
_get_w(
const int& ith)
const;
75 DQ _joint_transformation(
const double& q,
const int& ith)
const;
90 const std::vector<DQ>& offset_after,
91 const std::vector<ActuationType>& actuation_types);
93 using DQ_SerialManipulator::raw_pose_jacobian;
94 using DQ_SerialManipulator::raw_pose_jacobian_derivative;
95 using DQ_SerialManipulator::raw_fkm;
109 Eigen::MatrixXd
raw_pose_jacobian(
const Eigen::VectorXd& q_vec,
const int& to_ith_link)
const override;
117 Eigen::MatrixXd
raw_pose_jacobian_derivative(
const Eigen::VectorXd& q,
const Eigen::VectorXd& q_dot,
const int& to_ith_link)
const override;
124 DQ
raw_fkm(
const Eigen::VectorXd &q_vec,
const int &to_ith_link)
const override;
A serial manipulator whose joints carry explicit pre/post offsets.
Definition serial_manipulator_simulator_friendly.hpp:58
Eigen::MatrixXd raw_pose_jacobian(const Eigen::VectorXd &q_vec, const int &to_ith_link) const override
Raw pose Jacobian of the chain up to a given link.
Definition serial_manipulator_simulator_friendly.cpp:166
Eigen::MatrixXd raw_pose_jacobian_derivative(const Eigen::VectorXd &q, const Eigen::VectorXd &q_dot, const int &to_ith_link) const override
Time derivative of the raw pose Jacobian.
Definition serial_manipulator_simulator_friendly.cpp:187
DQ _get_w(const int &ith) const
Returns the spatial axis (as a dual quaternion) of the joint.
Definition serial_manipulator_simulator_friendly.cpp:126
DQ raw_fkm(const Eigen::VectorXd &q_vec, const int &to_ith_link) const override
Raw forward kinematics of the chain up to a given link.
Definition serial_manipulator_simulator_friendly.cpp:152
ActuationType
The actuation type and axis of a single joint.
Definition serial_manipulator_simulator_friendly.hpp:61
@ TZ
Translation along the z-axis.
Definition serial_manipulator_simulator_friendly.hpp:65
@ RZ
Revolution about the z-axis.
Definition serial_manipulator_simulator_friendly.hpp:62
@ TX
Translation along the x-axis.
Definition serial_manipulator_simulator_friendly.hpp:67
@ RY
Revolution about the y-axis.
Definition serial_manipulator_simulator_friendly.hpp:63
@ TY
Translation along the y-axis.
Definition serial_manipulator_simulator_friendly.hpp:66
@ RX
Revolution about the x-axis.
Definition serial_manipulator_simulator_friendly.hpp:64
std::vector< DQ_JointType > get_supported_joint_types() const override
Joint types this model can represent.
Definition serial_manipulator_simulator_friendly.cpp:224