I am trying to start up a UR5 on ROS Melodic/Ubuntu 18.04 with the ur_robot_driver package, but I am getting the error Failed to start controller in realtime loop. This should never happen.
The full error log is below:
roslaunch ur_robot_driver ur5_bringup.launch robot_ip:=192.168.0.42 reverse_port:=50003 script_sender_port:=50004
... logging to /root/.ros/log/9ed9ba2e-7187-11ea-8a14-c8d3ff4172f5/roslaunch-o2ac-ur-27505.log
Checking log directory for disk usage. This may take awhile.
Press Ctrl-C to interrupt
Done checking log file disk usage. Usage is <1GB.
xacro: in-order processing became default in ROS Melodic. You can drop the option.
started roslaunch server http://localhost:44335/
SUMMARY
========
PARAMETERS
* /controller_stopper/consistent_controllers: ['joint_state_con...
* /force_torque_sensor_controller/publish_rate: 125
* /force_torque_sensor_controller/type: force_torque_sens...
* /hardware_control_loop/loop_hz: 125
* /hardware_interface/joints: ['shoulder_pan_jo...
* /joint_state_controller/publish_rate: 125
* /joint_state_controller/type: joint_state_contr...
* /pos_traj_controller/action_monitor_rate: 10
* /pos_traj_controller/constraints/elbow_joint/goal: 0.1
* /pos_traj_controller/constraints/elbow_joint/trajectory: 0.2
* /pos_traj_controller/constraints/goal_time: 0.6
* /pos_traj_controller/constraints/shoulder_lift_joint/goal: 0.1
* /pos_traj_controller/constraints/shoulder_lift_joint/trajectory: 0.2
* /pos_traj_controller/constraints/shoulder_pan_joint/goal: 0.1
* /pos_traj_controller/constraints/shoulder_pan_joint/trajectory: 0.2
* /pos_traj_controller/constraints/stopped_velocity_tolerance: 0.05
* /pos_traj_controller/constraints/wrist_1_joint/goal: 0.1
* /pos_traj_controller/constraints/wrist_1_joint/trajectory: 0.2
* /pos_traj_controller/constraints/wrist_2_joint/goal: 0.1
* /pos_traj_controller/constraints/wrist_2_joint/trajectory: 0.2
* /pos_traj_controller/constraints/wrist_3_joint/goal: 0.1
* /pos_traj_controller/constraints/wrist_3_joint/trajectory: 0.2
* /pos_traj_controller/joints: ['shoulder_pan_jo...
* /pos_traj_controller/state_publish_rate: 125
* /pos_traj_controller/stop_trajectory_duration: 0.5
* /pos_traj_controller/type: position_controll...
* /robot_description: <?xml version="1....
* /rosdistro: melodic
* /rosversion: 1.14.3
* /scaled_pos_traj_controller/action_monitor_rate: 10
* /scaled_pos_traj_controller/constraints/elbow_joint/goal: 0.1
* /scaled_pos_traj_controller/constraints/elbow_joint/trajectory: 0.2
* /scaled_pos_traj_controller/constraints/goal_time: 0.6
* /scaled_pos_traj_controller/constraints/shoulder_lift_joint/goal: 0.1
* /scaled_pos_traj_controller/constraints/shoulder_lift_joint/trajectory: 0.2
* /scaled_pos_traj_controller/constraints/shoulder_pan_joint/goal: 0.1
* /scaled_pos_traj_controller/constraints/shoulder_pan_joint/trajectory: 0.2
* /scaled_pos_traj_controller/constraints/stopped_velocity_tolerance: 0.05
* /scaled_pos_traj_controller/constraints/wrist_1_joint/goal: 0.1
* /scaled_pos_traj_controller/constraints/wrist_1_joint/trajectory: 0.2
* /scaled_pos_traj_controller/constraints/wrist_2_joint/goal: 0.1
* /scaled_pos_traj_controller/constraints/wrist_2_joint/trajectory: 0.2
* /scaled_pos_traj_controller/constraints/wrist_3_joint/goal: 0.1
* /scaled_pos_traj_controller/constraints/wrist_3_joint/trajectory: 0.2
* /scaled_pos_traj_controller/joints: ['shoulder_pan_jo...
* /scaled_pos_traj_controller/state_publish_rate: 125
* /scaled_pos_traj_controller/stop_trajectory_duration: 0.5
* /scaled_pos_traj_controller/type: position_controll...
* /speed_scaling_state_controller/publish_rate: 125
* /speed_scaling_state_controller/type: ur_controllers/Sp...
* /ur_hardware_interface/headless_mode: False
* /ur_hardware_interface/input_recipe_file: /root/underlay_ws...
* /ur_hardware_interface/kinematics/forearm/pitch: 0
* /ur_hardware_interface/kinematics/forearm/roll: 0
* /ur_hardware_interface/kinematics/forearm/x: -0.425
* /ur_hardware_interface/kinematics/forearm/y: 0
* /ur_hardware_interface/kinematics/forearm/yaw: 0
* /ur_hardware_interface/kinematics/forearm/z: 0
* /ur_hardware_interface/kinematics/hash: calib_20954911754...
* /ur_hardware_interface/kinematics/shoulder/pitch: 0
* /ur_hardware_interface/kinematics/shoulder/roll: 0
* /ur_hardware_interface/kinematics/shoulder/x: 0
* /ur_hardware_interface/kinematics/shoulder/y: 0
* /ur_hardware_interface/kinematics/shoulder/yaw: 0
* /ur_hardware_interface/kinematics/shoulder/z: 0.089159
* /ur_hardware_interface/kinematics/upper_arm/pitch: 0
* /ur_hardware_interface/kinematics/upper_arm/roll: 1.570796327
* /ur_hardware_interface/kinematics/upper_arm/x: 0
* /ur_hardware_interface/kinematics/upper_arm/y: 0
* /ur_hardware_interface/kinematics/upper_arm/yaw: 0
* /ur_hardware_interface/kinematics/upper_arm/z: 0
* /ur_hardware_interface/kinematics/wrist_1/pitch: 0
* /ur_hardware_interface/kinematics/wrist_1/roll: 0
* /ur_hardware_interface/kinematics/wrist_1/x: -0.39225
* /ur_hardware_interface/kinematics/wrist_1/y: 0
* /ur_hardware_interface/kinematics/wrist_1/yaw: 0
* /ur_hardware_interface/kinematics/wrist_1/z: 0.10915
* /ur_hardware_interface/kinematics/wrist_2/pitch: 0
* /ur_hardware_interface/kinematics/wrist_2/roll: 1.570796327
* /ur_hardware_interface/kinematics/wrist_2/x: 0
* /ur_hardware_interface/kinematics/wrist_2/y: -0.09465
* /ur_hardware_interface/kinematics/wrist_2/yaw: 0
* /ur_hardware_interface/kinematics/wrist_2/z: -1.9413039509e-11
* /ur_hardware_interface/kinematics/wrist_3/pitch: 3.14159265359
* /ur_hardware_interface/kinematics/wrist_3/roll: 1.57079632659
* /ur_hardware_interface/kinematics/wrist_3/x: 0
* /ur_hardware_interface/kinematics/wrist_3/y: 0.0823
* /ur_hardware_interface/kinematics/wrist_3/yaw: 3.14159265359
* /ur_hardware_interface/kinematics/wrist_3/z: -1.68800121668e-11
* /ur_hardware_interface/output_recipe_file: /root/underlay_ws...
* /ur_hardware_interface/reverse_port: 50003
* /ur_hardware_interface/robot_ip: 192.168.0.42
* /ur_hardware_interface/script_file: /root/underlay_ws...
* /ur_hardware_interface/script_sender_port: 50004
* /ur_hardware_interface/tf_prefix:
* /ur_hardware_interface/tool_baud_rate: 115200
* /ur_hardware_interface/tool_parity: 0
* /ur_hardware_interface/tool_rx_idle_chars: 1.5
* /ur_hardware_interface/tool_stop_bits: 1
* /ur_hardware_interface/tool_tx_idle_chars: 3.5
* /ur_hardware_interface/tool_voltage: 0
* /ur_hardware_interface/use_tool_communication: False
NODES
/
controller_stopper (controller_stopper/node)
robot_state_publisher (robot_state_publisher/robot_state_publisher)
ros_control_controller_spawner (controller_manager/spawner)
ros_control_stopped_spawner (controller_manager/spawner)
ur_hardware_interface (ur_robot_driver/ur_robot_driver_node)
/ur_hardware_interface/
ur_robot_state_helper (ur_robot_driver/robot_state_helper)
ROS_MASTER_URI=http://localhost:11311
process[robot_state_publisher-1]: started with pid [27523]
process[ur_hardware_interface-2]: started with pid [27524]
[ INFO] [1585468473.264997939]: Initializing dashboard client
[ INFO] [1585468473.266447239]: Connected: Universal Robots Dashboard Server
[ INFO] [1585468473.272663237]: Initializing urdriver
[ INFO] [1585468473.272919634]: Checking if calibration data matches connected robot.
[ WARN] [1585468473.273107151]: No realtime capabilities found. Consider using a realtime system for better performance
[ERROR] [1585468473.481156794]: The calibration parameters of the connected robot don't match the ones from the given kinematics config file. Please be aware that this can lead to critical inaccuracies of tcp positions. Use the ur_calibration tool to extract the correct calibration from the robot and pass that into the description. See [TODO Link to documentation] for details.
process[ros_control_controller_spawner-3]: started with pid [27531]
[INFO] [1585468473.853100]: Controller Spawner: Waiting for service controller_manager/load_controller
process[ros_control_stopped_spawner-4]: started with pid [27541]
[INFO] [1585468474.230939]: Controller Spawner: Waiting for service controller_manager/load_controller
[ WARN] [1585468474.286153653]: No realtime capabilities found. Consider using a realtime system for better performance
[ INFO] [1585468474.287541631]: Setting up RTDE communication with frequency 125.000000
process[controller_stopper-5]: started with pid [27555]
[ INFO] [1585468474.383239613]: Waiting for controller manager service to come up on /controller_manager/switch_controller
[ INFO] [1585468474.384151611]: waitForService: Service [/controller_manager/switch_controller] has not been advertised, waiting...
process[ur_hardware_interface/ur_robot_state_helper-6]: started with pid [27570]
[ WARN] [1585468475.322904728]: No realtime capabilities found. Consider using a realtime system for better performance
[ INFO] [1585468475.323065587]: Loaded ur_robot_driver hardware_interface
[INFO] [1585468475.360721]: Controller Spawner: Waiting for service controller_manager/switch_controller
[INFO] [1585468475.362305]: Controller Spawner: Waiting for service controller_manager/unload_controller
[ INFO] [1585468475.363155911]: waitForService: Service [/controller_manager/switch_controller] is now available.
[ INFO] [1585468475.363178449]: Service available.
[ INFO] [1585468475.363196928]: Waiting for controller list service to come up on /controller_manager/list_controllers
[INFO] [1585468475.363722]: Loading controller: joint_state_controller
[ INFO] [1585468475.363797109]: Service available.
[INFO] [1585468475.373545]: Loading controller: scaled_pos_traj_controller
[INFO] [1585468475.397388]: Loading controller: speed_scaling_state_controller
[INFO] [1585468475.405495]: Loading controller: force_torque_sensor_controller
[INFO] [1585468475.413467]: Controller Spawner: Loaded controllers: joint_state_controller, scaled_pos_traj_controller, speed_scaling_state_controller, force_torque_sensor_controller
[FATAL] [1585468475.421218140]: Failed to start controller in realtime loop. This should never happen.
[INFO] [1585468475.421495]: Started controllers: joint_state_controller, scaled_pos_traj_controller, speed_scaling_state_controller, force_torque_sensor_controller
[INFO] [1585468475.437885]: Controller Spawner: Waiting for service controller_manager/switch_controller
[INFO] [1585468475.439328]: Controller Spawner: Waiting for service controller_manager/unload_controller
[INFO] [1585468475.440729]: Loading controller: pos_traj_controller
[INFO] [1585468475.445638]: Controller Spawner: Loaded controllers: pos_traj_controller
[ INFO] [1585468475.541924290]: Robot's safety mode is now NORMAL
[ INFO] [1585468475.544218509]: Robot mode is now RUNNING
[ INFO] [1585468476.189390432]: Robot ready to receive control commands.
I followed the install instructions and made sure to install the dependencies with rosdep
as explained here. I find few results on Google for this error message. There is this thread that references the same error message, but it is not very helpful.
The error is confusing because I had the setup working before, but something must have changed. Any ideas to resolve this are appreciated.
Originally posted by fvd on ROS Answers with karma: 2180 on 2020-03-29
Post score: 0
Original comments
Comment by [email protected] on 2020-03-29:
Hello there. I want to add an end effector to the UR, specifically to add a laser scanner. Do you know how to add it?
Comment by fvd on 2020-03-29:
Please post new questions separately via the "ASK YOUR QUESTION" button, not in a comment. Please also read the instructions carefully, since you seem to be mistaken about how the site is structured.
Comment by gvdhoorn on 2020-03-29:\
I had the setup working before
The same setup? ros_control
has quite a few changes between Kinetic and Melodic, hence my question.
That error message is from here, which is interesting, as it's the Kinetic version of the ControllerManager
. The Melodic version doesn't have it any more (since ros-controls/ros_control#391). That PR was included in 0.16.0, which was released on Mon, 27 Jan 2020 14:30:01 GMT
and synced to the public repos on 5 Feb 2020 20:40:58 GMT.
Comment by fvd on 2020-03-29:
It was running on Melodic before as well, yes. I also just checked that all controller-related packages point to /opt/ros/share/melodic
and I can't find the error message in my workspaces either. How curious. I'll rebuild my docker image.
Comment by gvdhoorn on 2020-03-29:
What is the output of dpkg -l | grep controller-manager
?
Comment by gvdhoorn on 2020-03-29:\
I'll rebuild my docker image.
Running the driver in a Docker container will likely interfere with the ability to run it with real-time priorities.
Comment by fvd on 2020-03-30:
Probably, but I won't depend on it. I just want the controllers to run at all. The output of that command after rebuilding the container is this:
ii ros-melodic-controller-manager 0.17.0-1bionic.20200320.133159 amd64 The controller manager.
ii ros-melodic-controller-manager-msgs 0.17.0-1bionic.20200320.132558 amd64 Messages and services for the controller manager.
ii ros-melodic-moveit-fake-controller-manager 1.0.2-1bionic.20200320.163635 amd64 A fake controller manager plugin for MoveIt.
ii ros-melodic-moveit-simple-controller-manager 1.0.2-1bionic.20200320.161301 amd64 A generic, simple controller manager plugin for MoveIt.
However, I then got the errors reported in this thread. After a full rebuild, everything worked. Thanks.