Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Spot: Disable nodelets because of spurious broken bonds. #898

Merged
merged 1 commit into from
Apr 19, 2021
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 6 additions & 1 deletion submitted_models/bosdyn_spot/launch/leg.launch
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,13 @@
<arg name="leg"/>
<arg name="link_prefix" value="/world/$(arg world_name)/model/$(arg name)/link"/>

<arg name="contacts_manager_cmd" />
<arg name="contacts_manager_name" />
<arg name="control_manager_cmd" />
<arg name="control_manager_name" />

<!-- Contact relay -->
<node name="ros_ign_bridge_$(arg leg)_leg_contact" pkg="nodelet" type="nodelet" args="load bosdyn_spot/FootContactBridge contacts_manager" respawn="true">
<node name="ros_ign_bridge_$(arg leg)_leg_contact" pkg="nodelet" type="nodelet" args="$(arg contacts_manager_cmd) bosdyn_spot/FootContactBridge $(arg contacts_manager_name)" respawn="true">
<param name="ign_topic" value="$(arg link_prefix)/$(arg leg)_lower_leg/sensor/contact/contact" />
<remap from="contacts" to="leg_contacts/$(arg leg)" />
</node>
Expand Down
9 changes: 8 additions & 1 deletion submitted_models/bosdyn_spot/launch/leg_joint.launch
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,11 @@
<arg name="joint"/>
<arg name="joint_prefix" value="/model/$(arg name)/joint"/>

<arg name="contacts_manager_cmd" />
<arg name="contacts_manager_name" />
<arg name="control_manager_cmd" />
<arg name="control_manager_name" />

<!-- Position controller (send NaN to disable it). It tries to keep the initial position by default. -->
<node pkg="ros_ign_bridge" type="parameter_bridge" name="ros_ign_bridge_$(arg leg)_$(arg joint)_position_controller"
args="$(arg joint_prefix)/$(arg leg)_$(arg joint)/0/cmd_pos@std_msgs/Float64]ignition.msgs.Double" respawn="true">
Expand All @@ -21,7 +26,9 @@
<!-- Position controller PID parameters configuration -->
<group ns="joint_group_position_controller">
<group ns="gains">
<node name="$(arg leg)_$(arg joint)" pkg="nodelet" type="nodelet" args="load bosdyn_spot/PidControlBridge /$(arg name)/control_manager" respawn="true">
<arg name="control_manager_abs_name" value="/$(arg name)/$(arg control_manager_name)" if="$(eval control_manager_name != '')" />
<arg name="control_manager_abs_name" value="" if="$(eval control_manager_name == '')" />
<node name="$(arg leg)_$(arg joint)" pkg="nodelet" type="nodelet" args="$(arg control_manager_cmd) bosdyn_spot/PidControlBridge $(arg control_manager_abs_name)" respawn="true">
<param name="ign_topic" value="$(arg joint_prefix)/$(arg leg)_$(arg joint)/0/set_pos_pid" />
</node>
</group>
Expand Down
19 changes: 15 additions & 4 deletions submitted_models/bosdyn_spot/launch/vehicle_topics.launch
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@
<arg name="breadcrumbs" default="0"/>
<arg name="description_print_command" default="" />
<arg name="relay_points" default="1" />
<arg name="nodelets" default="0" doc="Most body-related bridges can run as nodelets, but it can be problematic (spurious broken bonds)." />

<include file="$(dirname)/description.launch" pass_all_args="true">
<arg name="print_command" value="$(arg description_print_command)" if="$(eval description_print_command != '')" />
Expand Down Expand Up @@ -67,22 +68,32 @@

<!-- Control -->

<arg name="control_manager_cmd" value="load" if="$(arg nodelets)" />
<arg name="control_manager_name" value="control_manager" if="$(arg nodelets)" />
<arg name="contacts_manager_cmd" value="load" if="$(arg nodelets)" />
<arg name="contacts_manager_name" value="contacts_manager" if="$(arg nodelets)" />

<arg name="control_manager_cmd" value="standalone" unless="$(arg nodelets)" />
<arg name="control_manager_name" value="" unless="$(arg nodelets)" />
<arg name="contacts_manager_cmd" value="standalone" unless="$(arg nodelets)" />
<arg name="contacts_manager_name" value="" unless="$(arg nodelets)" />

<include file="$(dirname)/leg.launch" pass_all_args="true"><arg name="leg" value="front_left" /></include>
<include file="$(dirname)/leg.launch" pass_all_args="true"><arg name="leg" value="front_right" /></include>
<include file="$(dirname)/leg.launch" pass_all_args="true"><arg name="leg" value="rear_left" /></include>
<include file="$(dirname)/leg.launch" pass_all_args="true"><arg name="leg" value="rear_right" /></include>

<!-- Contact relay -->
<node name="contacts_manager" pkg="nodelet" type="nodelet" args="manager" respawn="true" />
<node name="ros_ign_bridge_leg_contact" pkg="nodelet" type="nodelet" args="load bosdyn_spot/LogicalContactBridge contacts_manager" respawn="true">
<node name="contacts_manager" pkg="nodelet" type="nodelet" args="manager" respawn="true" if="$(arg nodelets)" />
<node name="ros_ign_bridge_leg_contact" pkg="nodelet" type="nodelet" args="$(arg contacts_manager_cmd) bosdyn_spot/LogicalContactBridge $(arg contacts_manager_name)" respawn="true">
<remap from="logical_contacts" to="leg_contacts" />
<param name="ign_topic" value="/model/$(arg name)/leg_collisions" />
</node>

<rosparam command="load" file="$(find bosdyn_spot)/config/ros_control/ros_control.yaml" subst_value="true" />
<node name="control_manager" pkg="nodelet" type="nodelet" args="manager" respawn="true" />
<node name="control_manager" pkg="nodelet" type="nodelet" args="manager" respawn="true" if="$(arg nodelets)"/>

<node pkg="nodelet" type="nodelet" name="ros_ign_bridge_joint_trajectory_command" args="load bosdyn_spot/JointTrajectoryBridge control_manager" respawn="true">
<node pkg="nodelet" type="nodelet" name="ros_ign_bridge_joint_trajectory_command" args="$(arg control_manager_cmd) bosdyn_spot/JointTrajectoryBridge $(arg control_manager_name)" respawn="true">
<remap from="~trajectory" to="joint_group_position_controller/command"/>
<param name="ign_topic" value="/model/$(arg name)/joint_trajectory" />
</node>
Expand Down