ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange |
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>
2 | No.2 Revision |
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>3 | No.3 Revision |
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>
4 | No.4 Revision |
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.