60 explicit InterfaceData(
const std::string& command_interface) : command_interface_(command_interface)
64 std::string command_interface_;
65 double command_ = std::numeric_limits<double>::quiet_NaN();
66 double state_ = std::numeric_limits<double>::quiet_NaN();
69 double transmission_passthrough_ = std::numeric_limits<double>::quiet_NaN();
95 std::string joint_name =
"";
99 std::shared_ptr<control_toolbox::PidROS> pos_pid{
nullptr };
100 std::shared_ptr<control_toolbox::PidROS> vel_pid{
nullptr };
102 int mj_joint_type = -1;
105 int mj_actuator_id = -1;
109 bool is_position_control_enabled{
false };
110 bool is_position_pid_control_enabled{
false };
111 bool is_velocity_pid_control_enabled{
false };
112 bool is_velocity_control_enabled{
false };
113 bool is_effort_control_enabled{
false };
114 bool has_pos_pid{
false };
115 bool has_vel_pid{
false };
117 void copy_state_to_transmission()
119 position_interface.transmission_passthrough_ = position_interface.state_;
120 velocity_interface.transmission_passthrough_ = velocity_interface.state_;
121 effort_interface.transmission_passthrough_ = effort_interface.state_;
124 void copy_command_from_transmission()
126 position_interface.command_ = position_interface.transmission_passthrough_;
127 velocity_interface.command_ = velocity_interface.transmission_passthrough_;
128 effort_interface.command_ = effort_interface.transmission_passthrough_;
131 void copy_command_to_state()
133 position_interface.state_ = position_interface.command_;
134 velocity_interface.state_ = velocity_interface.command_;
135 effort_interface.state_ = effort_interface.command_;
155 std::string name =
"";
160 std::vector<std::string> command_interfaces = {};
162 bool is_mimic{
false };
163 long int mimicked_joint_index;
164 double mimic_multiplier;
166 bool is_position_control_enabled{
false };
167 bool is_velocity_control_enabled{
false };
168 bool is_effort_control_enabled{
false };
170 void copy_state_from_transmission()
172 position_interface.state_ = position_interface.transmission_passthrough_;
173 velocity_interface.state_ = velocity_interface.transmission_passthrough_;
174 effort_interface.state_ = effort_interface.transmission_passthrough_;
177 void copy_command_to_transmission()
179 position_interface.transmission_passthrough_ = position_interface.command_;
180 velocity_interface.transmission_passthrough_ = velocity_interface.command_;
181 effort_interface.transmission_passthrough_ = effort_interface.command_;
184 void copy_state_to_command()
186 position_interface.command_ = position_interface.state_;
187 velocity_interface.command_ = velocity_interface.state_;
188 effort_interface.command_ = effort_interface.state_;