How does Gazebo build sensor_msgs/Joint_State messages?
Hi,
I'm currently trying to figure out how to handle multiple robots in Gazebo and I ran into this bug(?):
header:
seq: 12209
stamp:
secs: 330
nsecs: 109000000
frame_id: ''
name: ['kuka_lwr_joint_1', 'kuka_lwr_joint_2', 'kuka_lwr_joint_3', 'kuka_lwr_joint_4', 'kuka_lwr_joint_5', 'kuka_lwr_joint_6', 'kuka_lwr_joint_7', 'omnirob_base_joint_theta', 'omnirob_base_joint_x', 'omnirob_base_joint_y', 'powercube_joint_pan', 'powercube_joint_tilt', 'schunk_pg70_joint_left_jaw', 'schunk_pg70_joint_right_jaw']
position: [-1.0253947033689315e-05, 2.3522499048134193e-05, -2.2689813867771136e-05, 2.3136640944443343e-05, -1.0738741315741152e-05, -2.483711961254187e-05, -5.4067762246035045e-05, -5.224777055445884e-09, -2.7112045384056236e-12, 1.0643540367097492e-13, 8.826312682153059e-05, 7.902852640739866e-06, -2.807751732313897e-09, 4.075292461219283e-09]
velocity: [-4.178236861677637e-06, 0.0033800355546081623, 0.0001795040668656702, -0.0010695986716272555, -3.479691430856919e-05, -0.0013532377287914495, 1.842815311281211e-05, 5.6265612727336565e-06, 9.567045326563722e-08, -2.767842212481839e-08, 7.332785746463743e-05, 0.004272763884220085, 2.2936775146593057e-05, -2.2746741801888933e-05]
effort: [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
---
header:
seq: 2452
stamp:
secs: 330
nsecs: 121000000
frame_id: ''
name: ['omnirob_base_joint_x', 'omnirob_base_joint_y', 'omnirob_base_joint_theta', 'kuka_lwr_joint_1', 'kuka_lwr_joint_2', 'kuka_lwr_joint_3', 'kuka_lwr_joint_4', 'kuka_lwr_joint_5', 'kuka_lwr_joint_6', 'kuka_lwr_joint_7', 'schunk_pg70_joint_right_jaw', 'schunk_pg70_joint_left_jaw', 'powercube_joint_pan', 'powercube_joint_tilt']
position: []
velocity: []
effort: []
This first message is composed by Gazebo, the second by the jointstatepublisher. Now if I run my simulation for the single robot setup(which does not include support for ROS_NAMESPACE), the messages look like this:
header:
seq: 1
stamp:
secs: 205
nsecs: 728000000
frame_id: ''
name: ['omnirob_base_joint_x', 'omnirob_base_joint_y', 'omnirob_base_joint_theta', 'kuka_lwr_joint_1', 'kuka_lwr_joint_2', 'kuka_lwr_joint_3', 'kuka_lwr_joint_4', 'kuka_lwr_joint_5', 'kuka_lwr_joint_6', 'kuka_lwr_joint_7', 'schunk_pg70_joint_right_jaw', 'schunk_pg70_joint_left_jaw', 'powercube_joint_pan', 'powercube_joint_tilt']
position: [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
velocity: []
effort: []
---
header:
seq: 2
stamp:
secs: 205
nsecs: 828000000
frame_id: ''
name: ['omnirob_base_joint_x', 'omnirob_base_joint_y', 'omnirob_base_joint_theta', 'kuka_lwr_joint_1', 'kuka_lwr_joint_2', 'kuka_lwr_joint_3', 'kuka_lwr_joint_4', 'kuka_lwr_joint_5', 'kuka_lwr_joint_6', 'kuka_lwr_joint_7', 'schunk_pg70_joint_right_jaw', 'schunk_pg70_joint_left_jaw', 'powercube_joint_pan', 'powercube_joint_tilt']
position: [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
velocity: []
effort: []
As you can see the difference between those message is the order of the joints and the missing positions in the message from the jointstatepublisher.
Gazebo itself is started outside the namespace.
Why does Gazebo change the order of the names when I export a ROSNAMESPACE? And does this affect the jointstate_publisher?
Asked by Lyndwyrm on 2017-01-02 07:42:31 UTC
Comments