Skip to content

Commit 2559759

Browse files
committed
add joint_ctrl_mode
1 parent aaf762f commit 2559759

2 files changed

Lines changed: 23 additions & 11 deletions

File tree

launch/cartesio.launch.xml

Lines changed: 7 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -12,16 +12,15 @@
1212
<arg name="solution_topic" default="!"/>
1313
<arg name="enable_otg" default="true"/>
1414
<arg name="problem_description_filename"/>
15-
<arg name="home" default="$(var home)"/>
16-
17-
15+
<arg name="home" default="home"/>
16+
<arg name="require_srdf" default="true"/>
17+
<arg name="visual_mode" default="false"/>
18+
<arg name="joint_ctrl_mode" default="{}"/>
1819

1920
<node pkg="cartesian_interface_ros" exec="ros_server_node"
2021
name="ros_server_node"
2122
output="screen"
2223
launch-prefix="$(var prefix)">
23-
<!-- <remap from="robot_description" to="/xbotcore/robot_description"/>-->
24-
<!-- <remap from="robot_description_semantic" to="/xbotcore/robot_description_semantic"/>-->
2524
<param name="enable_otg" value="$(var enable_otg)"/>
2625
<param name="is_model_floating_base" value="$(var is_model_floating_base)"/>
2726
<param name="model_type" value="pin"/>
@@ -31,16 +30,13 @@
3130
<param name="tf_prefix" value="$(var tf_prefix)"/>
3231
<param name="problem_description" type="str" value="$(command 'cat $(var problem_description_filename)')"/>
3332
<param name="home" value="$(var home)" type="str"/>
34-
<!-- <param if="$(eval arg('world_frame_link') != '!')" name="world_frame_link" value="$(arg world_frame_link)"/>-->
35-
<!-- <remap if="$(eval arg('solution_topic') != '!')" from="cartesian/solution" to="$(arg solution_topic)"/>-->
36-
33+
<param name="require_srdf" value="$(var require_srdf)"/>
34+
<param name="visual_mode" value="$(var visual_mode)"/>
35+
<param name="joint_ctrl_mode" type="str" value="$(var joint_ctrl_mode)"/>
3736
</node>
3837

3938
<node if="$(var markers)" pkg="cartesian_interface_ros" exec="marker_spawner" name="interactive_markers" output="screen">
4039
<param name="tf_prefix" value="$(var tf_prefix)"/>
4140
</node>
4241

43-
44-
45-
4642
</launch>

src/ros/RosExecutor.cpp

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -172,8 +172,24 @@ void RosExecutor::init_customize_command()
172172
{
173173
ctrl_map[j] = XBot::ControlMode::Position() + XBot::ControlMode::Velocity();
174174
}
175+
}
176+
177+
std::string joint_ctrl_mode_str = "{}";
178+
_node->get_parameter("joint_ctrl_mode", joint_ctrl_mode_str);
179+
auto joint_ctrl_mode_map = YAML::Load(joint_ctrl_mode_str).as<std::map<std::string, int>>();
180+
181+
for(auto pair : joint_ctrl_mode_map)
182+
{
183+
auto j = pair.first;
184+
auto mode_int = pair.second;
175185

186+
if(!_robot->hasJoint(j))
187+
{
188+
throw std::runtime_error("Joint ctrl mode map contains non existing joint '" + j + "'");
189+
}
176190

191+
XBot::ControlMode::Type mode = static_cast<XBot::ControlMode::Type>(mode_int);
192+
ctrl_map[j] = mode;
177193
}
178194

179195
_robot->setControlMode(ctrl_map);

0 commit comments

Comments
 (0)