59 explicit InterfaceData(
const std::string& command_interface) : command_interface_(command_interface)
63 std::string command_interface_;
64 double command_ = std::numeric_limits<double>::quiet_NaN();
65 double state_ = std::numeric_limits<double>::quiet_NaN();
68 double transmission_passthrough_ = std::numeric_limits<double>::quiet_NaN();
94 std::string joint_name =
"";
98 std::shared_ptr<control_toolbox::PidROS> pos_pid{
nullptr };
99 std::shared_ptr<control_toolbox::PidROS> vel_pid{
nullptr };
101 int mj_joint_type = -1;
104 int mj_actuator_id = -1;
108 bool is_position_control_enabled{
false };
109 bool is_position_pid_control_enabled{
false };
110 bool is_velocity_pid_control_enabled{
false };
111 bool is_velocity_control_enabled{
false };
112 bool is_effort_control_enabled{
false };
113 bool has_pos_pid{
false };
114 bool has_vel_pid{
false };
116 void copy_state_to_transmission()
118 position_interface.transmission_passthrough_ = position_interface.state_;
119 velocity_interface.transmission_passthrough_ = velocity_interface.state_;
120 effort_interface.transmission_passthrough_ = effort_interface.state_;
123 void copy_command_from_transmission()
125 position_interface.command_ = position_interface.transmission_passthrough_;
126 velocity_interface.command_ = velocity_interface.transmission_passthrough_;
127 effort_interface.command_ = effort_interface.transmission_passthrough_;
130 void copy_command_to_state()
132 position_interface.state_ = position_interface.command_;
133 velocity_interface.state_ = velocity_interface.command_;
134 effort_interface.state_ = effort_interface.command_;
154 std::string name =
"";
159 std::vector<std::string> command_interfaces = {};
161 bool is_mimic{
false };
162 long int mimicked_joint_index;
163 double mimic_multiplier;
165 bool is_position_control_enabled{
false };
166 bool is_velocity_control_enabled{
false };
167 bool is_effort_control_enabled{
false };
169 void copy_state_from_transmission()
171 position_interface.state_ = position_interface.transmission_passthrough_;
172 velocity_interface.state_ = velocity_interface.transmission_passthrough_;
173 effort_interface.state_ = effort_interface.transmission_passthrough_;
176 void copy_command_to_transmission()
178 position_interface.transmission_passthrough_ = position_interface.command_;
179 velocity_interface.transmission_passthrough_ = velocity_interface.command_;
180 effort_interface.transmission_passthrough_ = effort_interface.command_;
183 void copy_state_to_command()
185 position_interface.command_ = position_interface.state_;
186 velocity_interface.command_ = velocity_interface.state_;
187 effort_interface.command_ = effort_interface.state_;