gazebo set values of joint angles beyond the joint limits or `break` when robot contact with ground or some object

asked 2018-03-06 20:49:32 -0500

jacknlliu gravatar image

updated 2018-03-06 20:50:20 -0500

Gazebo set values of joint angles beyond the joint limits, and not set the joint states to normal value depend on the current model state, even if the robot has moved to other poses. And sometimes the robot breaks when contact with some object in gazebo!

The following joint angles are too much larger than the joint limit (-pi, pi):

    seq: 14205682
        secs: 71085
        nsecs: 101000000
      frame_id: ''
    name: ['elbow_joint', 'shoulder_lift_joint', 'shoulder_pan_joint', 'wrist_1_joint', 'wrist_2_joint', 'wrist_3_joint']
    position: [-8.51584976541768, -22393.868370150947, -23210.903847882473, -23059.99195414233, 7.4320796024417355, 9.18637489720941]
    velocity: [0.00021875832846863282, 0.00585327683488699, 0.003416905486500389, -0.0001427822974524656, 6.232113829809081e-05, 1.6280227906504893e-06]
    effort: [0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
edit retag flag offensive close merge delete


Hi, I’m having the exact same problem right now, I am using ros-kinetic + Gazebo7, used EffortJointInterface to control the joints. And even if I set joint positions within [-pi, pi], gazebo (or the robot_state_publisher) sometimes just decides to set/give back (2pi - <my_target_joint_position>) as joint_state.

Have you managed to solve this problem by now?

Kloping gravatar imageKloping ( 2019-05-23 05:04:34 -0500 )edit