ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange
Ask Your Question

Revision history [back]

click to hide/show revision 1
initial version

so @gvhoorm helped point me in the right direction, the launch files indeed initialized nodes that sent conflicting information, for example to the /robot_pose_ekf/odom_combined topic. So I commented out the robot_ekf node for the pr2_bringup.launch file in pr2_gazebo and the glitching stopped. Now there is no /robot_pose_ekf topic being published (since there was no robot_pose_ekf node in demo.launch either) and I hope there will be no side effects from this but everything seems to be working.

<launch>

<include file="$(find pr2_controller_manager)/controller_manager.launch"/>

<node pkg="rostopic" type="rostopic" name="fake_joint_calibration" args="pub /calibrated std_msgs/Bool true"/>

<include file="$(find pr2_gazebo)/config/dualstereo_camera.launch"/>

<include file="$(find pr2_gazebo)/config/r_forearm_cam.launch"/> <include file="$(find pr2_gazebo)/config/l_forearm_cam.launch"/>

<node pkg="diagnostic_aggregator" type="aggregator_node" name="diag_agg" args="Robot"/> <group ns="diag_agg"> <include file="$(find pr2_gazebo)/config/pr2_analyzers_simple.launch"/> </group>

<node pkg="pr2_dashboard_aggregator" type="dashboard_aggregator.py" name="pr2_dashboard_aggregator"/>

<node pkg="gazebo_plugins" type="hokuyo_node" name="base_hokuyo_node"> </node>

<node pkg="gazebo_plugins" type="hokuyo_node" name="tilt_hokuyo_node"> </node>

<node pkg="tf2_ros" type="buffer_server" name="tf2_buffer_server" output="screen"> </node>

<node type="camera_synchronizer" name="camera_synchronizer_node" pkg="gazebo_plugins" output="screen"/>

</launch>

so @gvhoorm helped point me in the right direction, the launch files indeed initialized nodes that sent conflicting information, for example to the /robot_pose_ekf/odom_combined topic. So I commented out the robot_ekf node for the pr2_bringup.launch file in pr2_gazebo and the glitching stopped. Now there is no /robot_pose_ekf topic being published (since there was no robot_pose_ekf node in demo.launch either) and I hope there will be no side effects from this but everything seems to be working.

 <launch>

<!-- Controller Manager --> <include file="$(find pr2_controller_manager)/controller_manager.launch"/>

pr2_controller_manager)/controller_manager.launch" /> <!-- Fake Calibration --> <node pkg="rostopic" type="rostopic" name="fake_joint_calibration" name="fake_joint_calibration" args="pub /calibrated std_msgs/Bool true"/>

true" /> <!-- Stereo image processing --> <include file="$(find pr2_gazebo)/config/dualstereo_camera.launch"/>

pr2_gazebo)/config/dualstereo_camera.launch" /> <!-- Start image_proc inside camera namespace--> <include file="$(find pr2_gazebo)/config/r_forearm_cam.launch"/> pr2_gazebo)/config/r_forearm_cam.launch" /> <include file="$(find pr2_gazebo)/config/l_forearm_cam.launch"/>

pr2_gazebo)/config/l_forearm_cam.launch" /> <!-- diagnostics aggregator --> <node pkg="diagnostic_aggregator" type="aggregator_node" name="diag_agg" args="Robot"/> args="Robot" /> <group ns="diag_agg"> <include file="$(find pr2_gazebo)/config/pr2_analyzers_simple.launch"/> </group>

pr2_gazebo)/config/pr2_analyzers_simple.launch" /> <!-- <include file="$(find pr2_gazebo)/config/pr2_analyzers.launch" /> --> </group> <!-- Dashboard aggregation --> <node pkg="pr2_dashboard_aggregator" type="dashboard_aggregator.py" name="pr2_dashboard_aggregator"/>

name="pr2_dashboard_aggregator"/> <!-- Robot pose ekf --> <!-- <node pkg="robot_pose_ekf" type="robot_pose_ekf" name="robot_pose_ekf" output="screen"> <param name="freq" value="30.0"/> <param name="sensor_timeout" value="1.0"/> <param name="publish_tf" value="true"/> <param name="odom_used" value="true"/> <param name="imu_used" value="true"/> <param name="vo_used" value="false"/> <remap from="odom" to="base_odometry/odom" /> <remap from="imu_data" to="torso_lift_imu/data" /> </node> --> <!-- Base Laser dynamic_reconfigure --> <node pkg="gazebo_plugins" type="hokuyo_node" name="base_hokuyo_node"> </node>

<param name="port" type="string" value="/etc/ros/sensors/base_hokuyo" /> <param name="frame_id" type="string" value="base_laser_link" /> <param name="min_ang" type="double" value="-2.2689" /> <param name="max_ang" type="double" value="2.2689" /> <param name="skip" type="int" value="1" /> <param name="intensity" value="false" /> </node> <!-- Tilt Laser dynamic_reconfigure --> <node pkg="gazebo_plugins" type="hokuyo_node" name="tilt_hokuyo_node"> </node>

<param name="port" type="string" value="/etc/ros/sensors/tilt_hokuyo" /> <param name="frame_id" type="string" value="laser_tilt_link" /> <param name="min_ang" type="double" value="-0.829" /> <param name="max_ang" type="double" value="0.829" /> <param name="skip" type="int" value="1" /> <param name="intensity" value="true" /> </node> <!-- Buffer Server --> <node pkg="tf2_ros" type="buffer_server" name="tf2_buffer_server" output="screen"> </node>

<param name="buffer_size" value="120.0"/> </node> <!-- Spawns the synchronizer --> <node type="camera_synchronizer" name="camera_synchronizer_node" pkg="gazebo_plugins" output="screen"/>

</launch>

output="screen" /> <!-- testing only: simulate torso counter weight spring to reduce load on the torso joint <node name="simulate_torso_spring" pkg="pr2_gazebo" type="pr2_simulate_torso_spring.py" respawn="false" output="screen" /> --> </launch>

so @gvhoorm helped point me in the right direction, the launch files indeed initialized nodes that sent conflicting information, for example to the /robot_pose_ekf/odom_combined topic. So I commented out the robot_ekf node for the pr2_bringup.launch file in pr2_gazebo and the glitching stopped. Now there is no /robot_pose_ekf topic being published (since there was no robot_pose_ekf node in demo.launch either) and I hope there will be no side effects from this but everything seems to be working.

 <launch>

  <!-- Controller Manager -->
  <include file="$(find pr2_controller_manager)/controller_manager.launch" />

  <!-- Fake Calibration -->
  <node pkg="rostopic" type="rostopic" name="fake_joint_calibration"
        args="pub /calibrated std_msgs/Bool true" />

  <!-- Stereo image processing -->
  <include file="$(find pr2_gazebo)/config/dualstereo_camera.launch" />

  <!-- Start image_proc inside camera namespace-->
  <include file="$(find pr2_gazebo)/config/r_forearm_cam.launch" />
  <include file="$(find pr2_gazebo)/config/l_forearm_cam.launch" />

  <!-- diagnostics aggregator -->
  <node pkg="diagnostic_aggregator" type="aggregator_node" name="diag_agg" args="Robot" />
  <group ns="diag_agg">
    <include file="$(find pr2_gazebo)/config/pr2_analyzers_simple.launch" />
    <!--
    <include file="$(find pr2_gazebo)/config/pr2_analyzers.launch" />
    -->
  </group>

  <!-- Dashboard aggregation -->
  <node pkg="pr2_dashboard_aggregator" type="dashboard_aggregator.py" name="pr2_dashboard_aggregator"/>

  <!-- Robot pose ekf -->
 <!-- <node pkg="robot_pose_ekf" type="robot_pose_ekf" name="robot_pose_ekf" output="screen">
    <param name="freq" value="30.0"/>
    <param name="sensor_timeout" value="1.0"/>
    <param name="publish_tf" value="true"/>
    <param name="odom_used" value="true"/>
    <param name="imu_used" value="true"/>
    <param name="vo_used" value="false"/>
    <remap from="odom" to="base_odometry/odom" />
    <remap from="imu_data" to="torso_lift_imu/data" />
  </node>
-->
  <!-- Base Laser dynamic_reconfigure -->
  <node pkg="gazebo_plugins" type="hokuyo_node" name="base_hokuyo_node">
    <param name="port" type="string" value="/etc/ros/sensors/base_hokuyo" />
    <param name="frame_id" type="string" value="base_laser_link" />
    <param name="min_ang" type="double" value="-2.2689" />
    <param name="max_ang" type="double" value="2.2689" />
    <param name="skip" type="int" value="1" />
    <param name="intensity" value="false" />
  </node>

  <!-- Tilt Laser dynamic_reconfigure -->
  <node pkg="gazebo_plugins" type="hokuyo_node" name="tilt_hokuyo_node">
    <param name="port" type="string" value="/etc/ros/sensors/tilt_hokuyo" />
    <param name="frame_id" type="string" value="laser_tilt_link" />
    <param name="min_ang" type="double" value="-0.829" />
    <param name="max_ang" type="double" value="0.829" />
    <param name="skip" type="int" value="1" />
    <param name="intensity" value="true" />
  </node>

  <!-- Buffer Server -->
  <node pkg="tf2_ros" type="buffer_server" name="tf2_buffer_server" output="screen">
    <param name="buffer_size" value="120.0"/>
  </node>

  <!-- Spawns the synchronizer -->
  <node type="camera_synchronizer" name="camera_synchronizer_node" pkg="gazebo_plugins" output="screen" />

  <!-- testing only: simulate torso counter weight spring to reduce load on the torso joint
  <node name="simulate_torso_spring" pkg="pr2_gazebo" type="pr2_simulate_torso_spring.py" respawn="false" output="screen" />
  -->

</launch>

so @gvhoorm helped point me in the right direction, the launch files indeed initialized nodes that sent conflicting information, for example to the /robot_pose_ekf/odom_combined topic. So I commented out the robot_ekf node for the pr2_bringup.launch file in pr2_gazebo and the glitching stopped. Now there is no /robot_pose_ekf topic being published (since there was no robot_pose_ekf node in demo.launch either) and I hope there will be no side effects from this but everything seems to be working.

<launch>

  <!-- Controller Manager -->
  <include file="$(find pr2_controller_manager)/controller_manager.launch" />

  <!-- Fake Calibration -->
  <node pkg="rostopic" type="rostopic" name="fake_joint_calibration"
        args="pub /calibrated std_msgs/Bool true" />

  <!-- Stereo image processing -->
  <include file="$(find pr2_gazebo)/config/dualstereo_camera.launch" />

  <!-- Start image_proc inside camera namespace-->
  <include file="$(find pr2_gazebo)/config/r_forearm_cam.launch" />
  <include file="$(find pr2_gazebo)/config/l_forearm_cam.launch" />

  <!-- diagnostics aggregator -->
  <node pkg="diagnostic_aggregator" type="aggregator_node" name="diag_agg" args="Robot" />
  <group ns="diag_agg">
    <include file="$(find pr2_gazebo)/config/pr2_analyzers_simple.launch" />
    <!--
    <include file="$(find pr2_gazebo)/config/pr2_analyzers.launch" />
    -->
  </group>

  <!-- Dashboard aggregation -->
  <node pkg="pr2_dashboard_aggregator" type="dashboard_aggregator.py" name="pr2_dashboard_aggregator"/>

  <!-- Robot pose ekf -->
 <!-- <node pkg="robot_pose_ekf" type="robot_pose_ekf" name="robot_pose_ekf" output="screen">
    <param name="freq" value="30.0"/>
    <param name="sensor_timeout" value="1.0"/>
    <param name="publish_tf" value="true"/>
    <param name="odom_used" value="true"/>
    <param name="imu_used" value="true"/>
    <param name="vo_used" value="false"/>
    <remap from="odom" to="base_odometry/odom" />
    <remap from="imu_data" to="torso_lift_imu/data" />
  </node>
-->
  <!-- Base Laser dynamic_reconfigure -->
  <node pkg="gazebo_plugins" type="hokuyo_node" name="base_hokuyo_node">
    <param name="port" type="string" value="/etc/ros/sensors/base_hokuyo" />
    <param name="frame_id" type="string" value="base_laser_link" />
    <param name="min_ang" type="double" value="-2.2689" />
    <param name="max_ang" type="double" value="2.2689" />
    <param name="skip" type="int" value="1" />
    <param name="intensity" value="false" />
  </node>

  <!-- Tilt Laser dynamic_reconfigure -->
  <node pkg="gazebo_plugins" type="hokuyo_node" name="tilt_hokuyo_node">
    <param name="port" type="string" value="/etc/ros/sensors/tilt_hokuyo" />
    <param name="frame_id" type="string" value="laser_tilt_link" />
    <param name="min_ang" type="double" value="-0.829" />
    <param name="max_ang" type="double" value="0.829" />
    <param name="skip" type="int" value="1" />
    <param name="intensity" value="true" />
  </node>

  <!-- Buffer Server -->
  <node pkg="tf2_ros" type="buffer_server" name="tf2_buffer_server" output="screen">
    <param name="buffer_size" value="120.0"/>
  </node>

  <!-- Spawns the synchronizer -->
  <node type="camera_synchronizer" name="camera_synchronizer_node" pkg="gazebo_plugins" output="screen" />

  <!-- testing only: simulate torso counter weight spring to reduce load on the torso joint
  <node name="simulate_torso_spring" pkg="pr2_gazebo" type="pr2_simulate_torso_spring.py" respawn="false" output="screen" />
  -->

</launch>

what also works is to comment out:

 <!-- <node pkg="tf" type="static_transform_publisher" name="virtual_joint_broadcaster_0" args="0 0 0 0 0 0 odom_combined base_footprint 100" />-->

  <!--<node name="joint_state_publisher" pkg="joint_state_publisher" type="joint_state_publisher">
    <param name="/use_gui" value="false"/>
    <rosparam param="/source_list">[/move_group/fake_controller_joint_states]</rosparam>
  </node>
  -->

from the demo.launch file of moveit, it seems these are the two sections conflicting with each other and sending out conflicting messages about the robot pose.