Why does JointStateController publish NONE message?

asked 2020-01-06 15:51:00 -0500

mkb_10062949 gravatar image

updated 2022-01-22 16:10:14 -0500

Evgeny gravatar image

Hello, I am facing a serious issue here. I am training a UR5 using reinforcement learning. The joint state controller of the robot which is responsible for publishing the joint angle values of all the joints in the robot sometimes publishes "None" values.

My environment subscribes to this joint state publisher topic i.e. robot2/joint_states for calculating the states etc..Normally during training everything works just fine. But suddenly, sometimes the the topic (mentioned above) publishes NONE due to which no further calculation is possible and the training stops. This is a very issue as there is nothing I can do to solve the problem. My controller.yaml file is

arm_controller:
  type: position_controllers/JointTrajectoryController
  joints:
     - shoulder_pan_joint
     - shoulder_lift_joint
     - elbow_joint
     - wrist_1_joint
     - wrist_2_joint
     - wrist_3_joint
  constraints:
    goal_time: 0.1
    stopped_velocity_tolerance: 0.01
    shoulder_pan_joint: {trajectory: 0.1, goal: 0.1}
    shoulder_lift_joint: {trajectory: 0.1, goal: 0.1}
    elbow_joint: {trajectory: 0.1, goal: 0.1}
    wrist_1_joint: {trajectory: 0.1, goal: 0.1}
    wrist_2_joint: {trajectory: 0.1, goal: 0.1}
    wrist_3_joint: {trajectory: 0.1, goal: 0.1}
  stop_trajectory_duration: 0.1
  state_publish_rate: 500
  action_monitor_rate: 100

joint_group_position_controller:
  type: position_controllers/JointGroupPositionController
  joints:
     - shoulder_pan_joint
     - shoulder_lift_joint
     - elbow_joint
     - wrist_1_joint
     - wrist_2_joint
     - wrist_3_joint

#Gripper controller
gripper_controller:
  type: position_controllers/GripperActionController
  joint: robotiq_85_left_knuckle_joint
  action_monitor_rate: 10
  goal_tolerance: 0.002
  max_effort: 100
  stall_velocity_threshold: 0.001
  stall_timeout: 1.0


joint_state_controller:
  publish_rate: 1000
  type: joint_state_controller/JointStateController

can anyone please help me in understanding what is the problem I am facing here. Why is the Joint State Publiher publishing None values? What can I do to solve this problem?

I am using ROS MELODIC with Ubuntu 18

edit retag flag offensive close merge delete

Comments

Hey, I'm facing the same issue. Were you able to solve it?

ThreeForElvenKings gravatar image ThreeForElvenKings  ( 2020-05-17 11:59:54 -0500 )edit
1

Yes, its better you subscribe to arm_controller/state topic which also publishes the same joint angles. That solved my problem. Also, make sure that you use a publish rate of around 100 - 200 Hz otherwise it will slow down your code significantly.

mkb_10062949 gravatar image mkb_10062949  ( 2020-05-17 22:44:09 -0500 )edit