Robotics StackExchange | Archived questions

Why does JointStateController publish NONE message?

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

Asked by mkb_10062949 on 2020-01-06 16:51:00 UTC

Comments

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

Asked by ThreeForElvenKings on 2020-05-17 11:59:54 UTC

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.

Asked by mkb_10062949 on 2020-05-17 22:44:09 UTC

Answers