ROS2 custom workcell not loading custom URDF

Hello! I made a custom workcell according to the tutorial for my UR3e with a Robotiq HandE gripper. However, when I run the custom workcell launch files (or even call them from the command line with CLI options) RViz is not showing the custom workcell and the /robot_state_publisher robot_description parameter has the default UR robot description, not my custom one with a table and gripper.

My codebase is all in github but I’ve checked everything I can think of – it’s no longer throwing any errors when I launch the robot, it just does not load the configuration (except for the error about the configuration parameters not matching the robot, which I think is related to it not loading my configuration?). I added the --debug flag and the output from that is too long, but here is a runlog without --debug, up until the point where RVIZ starts.

Summary

ros2 launch ur_robot_driver ur_control.launch.py description_launchfile:=$(ros2 pkg prefix ceeorobot_control)/share/ceeorobot_control/launch/rsp.launch.py use_mock_hardware:=false robot_ip:=130.64.17.95 ur_type:=ur3e rviz_config_file:=$(ros2 pkg prefix ceeorobot_description)/share/ceeorobot_description/rviz/urdf.rviz tf_prefix:=ur3e_ robot_description:=$(ros2 pkg prefix ceeorobot_description)/share/ceeorobot_description/urdf/ceeorobot_cell.urdf.xacro
[INFO] [launch]: All log files can be found below /home/kat/.ros/log/2025-07-23-18-13-46-597939-ur3e-hub-241862
[INFO] [launch]: Default logging verbosity is set to INFO
[INFO] [dashboard_client-2]: process started with pid [241867]
[INFO] [controller_stopper_node-4]: process started with pid [241871]
[INFO] [ur_ros2_control_node-1]: process started with pid [241865]
[INFO] [robot_state_helper-3]: process started with pid [241869]
[INFO] [urscript_interface-5]: process started with pid [241873]
[INFO] [robot_state_publisher-6]: process started with pid [241875]
[INFO] [rviz2-7]: process started with pid [241877]
[INFO] [spawner-8]: process started with pid [241879]
[INFO] [spawner-9]: process started with pid [241881]
[dashboard_client-2] [INFO] [1753308826.863073684] [UR_Client_Library:]: Starting primary client pipeline
[robot_state_helper-3] [INFO] [1753308826.863401681] [UR_Client_Library:]: Starting primary client pipeline
[controller_stopper_node-4] [INFO] [1753308826.865856327] [Controller stopper]: Waiting for switch controller service to come up on controller_manager/switch_controller
[robot_state_publisher-6] [INFO] [1753308826.866496153] [robot_state_publisher]: got segment ur3e_base
[robot_state_publisher-6] [INFO] [1753308826.866577136] [robot_state_publisher]: got segment ur3e_base_link
[robot_state_publisher-6] [INFO] [1753308826.866584467] [robot_state_publisher]: got segment ur3e_base_link_inertia
[robot_state_publisher-6] [INFO] [1753308826.866589879] [robot_state_publisher]: got segment ur3e_flange
[robot_state_publisher-6] [INFO] [1753308826.866594632] [robot_state_publisher]: got segment ur3e_forearm_link
[robot_state_publisher-6] [INFO] [1753308826.866599171] [robot_state_publisher]: got segment ur3e_ft_frame
[robot_state_publisher-6] [INFO] [1753308826.866603882] [robot_state_publisher]: got segment ur3e_shoulder_link
[robot_state_publisher-6] [INFO] [1753308826.866608382] [robot_state_publisher]: got segment ur3e_tool0
[robot_state_publisher-6] [INFO] [1753308826.866612696] [robot_state_publisher]: got segment ur3e_upper_arm_link
[robot_state_publisher-6] [INFO] [1753308826.866617131] [robot_state_publisher]: got segment ur3e_wrist_1_link
[robot_state_publisher-6] [INFO] [1753308826.866621641] [robot_state_publisher]: got segment ur3e_wrist_2_link
[robot_state_publisher-6] [INFO] [1753308826.866626074] [robot_state_publisher]: got segment ur3e_wrist_3_link
[robot_state_publisher-6] [INFO] [1753308826.866630446] [robot_state_publisher]: got segment world
[ur_ros2_control_node-1] [WARN] [1753308826.870115858] [controller_manager]: [Deprecated] Passing the robot description parameter directly to the control_manager node is deprecated. Use ‘~/robot_description’ topic from ‘robot_state_publisher’ instead.
[ur_ros2_control_node-1] [INFO] [1753308826.870410153] [resource_manager]: Loading hardware ‘ur3e’
[ur_ros2_control_node-1] [INFO] [1753308826.873106742] [resource_manager]: Initialize hardware ‘ur3e’
[ur_ros2_control_node-1] [INFO] [1753308826.873171957] [resource_manager]: Successful initialization of hardware ‘ur3e’
[ur_ros2_control_node-1] [INFO] [1753308826.873348675] [resource_manager]: ‘configure’ hardware ‘ur3e’
[ur_ros2_control_node-1] [INFO] [1753308826.873354518] [URPositionHardwareInterface]: Starting …please wait…
[ur_ros2_control_node-1] [INFO] [1753308826.873363539] [URPositionHardwareInterface]: Initializing driver…
[ur_ros2_control_node-1] [INFO] [1753308826.873872629] [UR_Client_Library:ur3e_]: SCHED_FIFO OK, priority 99
[rviz2-7] [INFO] [1753308827.011825129] [rviz2]: Stereo is NOT SUPPORTED
[rviz2-7] [INFO] [1753308827.011922706] [rviz2]: OpenGl version: 4.5 (GLSL 4.5)
[spawner-8] [INFO] [1753308827.036362796] [spawner_joint_state_broadcaster]: waiting for service /controller_manager/list_controllers to become available…
[spawner-9] [INFO] [1753308827.045913339] [spawner_joint_trajectory_controller]: waiting for service /controller_manager/list_controllers to become available…
[rviz2-7] [INFO] [1753308827.046813093] [rviz2]: Stereo is NOT SUPPORTED
[ur_ros2_control_node-1] [INFO] [1753308827.065520253] [UR_Client_Library:ur3e_]: Negotiated RTDE protocol version to 2.
[ur_ros2_control_node-1] [INFO] [1753308827.065799790] [UR_Client_Library:ur3e_]: Setting up RTDE communication with frequency 500.000000
[dashboard_client-2] [INFO] [1753308827.415551314] [UR_Client_Library:]: Connected: Universal Robots Dashboard Server
[dashboard_client-2]
[robot_state_helper-3] [WARN] [1753308827.895008423] [UR_Client_Library:]: Failed to read from stream, reconnecting in 1 seconds…
[ur_ros2_control_node-1] [INFO] [1753308828.091392418] [UR_Client_Library:ur3e_]: Starting primary client pipeline
[ur_ros2_control_node-1] [INFO] [1753308828.091860097] [URPositionHardwareInterface]: Calibration checksum: ‘calib_16756443741236045476’.
[robot_state_helper-3] [INFO] [1753308828.869898550] [UR_Client_Library:]: Stopping primary client pipeline
[robot_state_helper-3] [ERROR] [1753308828.896489272] [robot_state_helper]: Timeout while waiting for condition to be met(Configured timeout: 2 sec)
[ur_ros2_control_node-1] [ERROR] [1753308829.092026395] [URPositionHardwareInterface]: 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 [Universal_Robots_ROS2_Driver/ur_calibration/README.md at main · UniversalRobots/Universal_Robots_ROS2_Driver · GitHub] for details.
[ur_ros2_control_node-1] [INFO] [1753308829.092110230] [URPositionHardwareInterface]: System successfully started!
[ur_ros2_control_node-1] [INFO] [1753308829.092122865] [resource_manager]: Successful ‘configure’ of hardware ‘ur3e’
[ur_ros2_control_node-1] [INFO] [1753308829.092155046] [resource_manager]: ‘activate’ hardware ‘ur3e’
[ur_ros2_control_node-1] [INFO] [1753308829.092158646] [URPositionHardwareInterface]: Activating HW interface
[ur_ros2_control_node-1] [INFO] [1753308829.092161958] [resource_manager]: Successful ‘activate’ of hardware ‘ur3e’
[controller_stopper_node-4] [INFO] [1753308829.094272893] [Controller stopper]: Service available
[controller_stopper_node-4] [INFO] [1753308829.094291803] [Controller stopper]: Waiting for list controllers service to come up on controller_manager/list_controllers
[controller_stopper_node-4] [INFO] [1753308829.094300254] [Controller stopper]: Service available
[ur_ros2_control_node-1] [INFO] [1753308829.095435054] [UR_Client_Library:ur3e_]: SCHED_FIFO OK, priority 99
[ur_ros2_control_node-1] [INFO] [1753308829.300411889] [controller_manager]: Loading controller ‘joint_state_broadcaster’
[spawner-8] [INFO] [1753308829.305979427] [spawner_joint_state_broadcaster]: Loaded joint_state_broadcaster
[ur_ros2_control_node-1] [INFO] [1753308829.307027158] [controller_manager]: Configuring controller ‘joint_state_broadcaster’
[ur_ros2_control_node-1] [INFO] [1753308829.307094649] [joint_state_broadcaster]: ‘joints’ or ‘interfaces’ parameter is empty. All available state interfaces will be published
[ur_ros2_control_node-1] [INFO] [1753308829.315652751] [controller_manager]: Loading controller ‘joint_trajectory_controller’
[spawner-8] [INFO] [1753308829.316011075] [spawner_joint_state_broadcaster]: Configured and activated joint_state_broadcaster
[ur_ros2_control_node-1] [WARN] [1753308829.325489204] [joint_trajectory_controller]: [Deprecated]: “allow_nonzero_velocity_at_trajectory_end” is set to true. The default behavior will change to false.
[ur_ros2_control_node-1] [INFO] [1753308829.328586644] [controller_manager]: Loading controller ‘io_and_status_controller’
[spawner-9] [INFO] [1753308829.328674629] [spawner_joint_trajectory_controller]: Loaded joint_trajectory_controller
[ur_ros2_control_node-1] [INFO] [1753308829.337530078] [controller_manager]: Configuring controller ‘joint_trajectory_controller’
[ur_ros2_control_node-1] [INFO] [1753308829.337710417] [joint_trajectory_controller]: No specific joint names are used for command interfaces. Using ‘joints’ parameter.
[ur_ros2_control_node-1] [INFO] [1753308829.337746039] [joint_trajectory_controller]: Command interfaces are [position] and state interfaces are [position velocity].
[ur_ros2_control_node-1] [INFO] [1753308829.337769827] [joint_trajectory_controller]: Using ‘splines’ interpolation method.
[spawner-8] [INFO] [1753308829.337956703] [spawner_joint_state_broadcaster]: Loaded io_and_status_controller
[ur_ros2_control_node-1] [INFO] [1753308829.338481068] [joint_trajectory_controller]: Controller state will be published at 100.00 Hz.
[ur_ros2_control_node-1] [INFO] [1753308829.339849517] [joint_trajectory_controller]: Action status changes will be monitored at 20.00 Hz.
[ur_ros2_control_node-1] [INFO] [1753308829.343608565] [controller_manager]: Configuring controller ‘io_and_status_controller’
[ur_ros2_control_node-1] [INFO] [1753308829.355012554] [controller_manager]: Loading controller ‘forward_velocity_controller’
[spawner-8] [INFO] [1753308829.355866684] [spawner_joint_state_broadcaster]: Configured and activated io_and_status_controller
[spawner-9] [INFO] [1753308829.362037593] [spawner_joint_trajectory_controller]: Loaded forward_velocity_controller
[ur_ros2_control_node-1] [INFO] [1753308829.362232665] [controller_manager]: Configuring controller ‘forward_velocity_controller’
[ur_ros2_control_node-1] [INFO] [1753308829.362851468] [forward_velocity_controller]: configure successful
[ur_ros2_control_node-1] [INFO] [1753308829.363691057] [controller_manager]: Loading controller ‘speed_scaling_state_broadcaster’
[ur_ros2_control_node-1] [INFO] [1753308829.368866982] [speed_scaling_state_broadcaster]: Loading UR SpeedScalingStateBroadcaster with tf_prefix: ur3e_
[spawner-8] [INFO] [1753308829.369892827] [spawner_joint_state_broadcaster]: Loaded speed_scaling_state_broadcaster
[ur_ros2_control_node-1] [INFO] [1753308829.370039566] [controller_manager]: Configuring controller ‘speed_scaling_state_broadcaster’
[ur_ros2_control_node-1] [INFO] [1753308829.370087156] [speed_scaling_state_broadcaster]: Publisher rate set to : 100.0 Hz
[ur_ros2_control_node-1] [INFO] [1753308829.371637682] [controller_manager]: Loading controller ‘forward_position_controller’
[spawner-9] [INFO] [1753308829.377950590] [spawner_joint_trajectory_controller]: Loaded forward_position_controller
[ur_ros2_control_node-1] [INFO] [1753308829.381638289] [controller_manager]: Configuring controller ‘forward_position_controller’
[spawner-8] [INFO] [1753308829.381944775] [spawner_joint_state_broadcaster]: Configured and activated speed_scaling_state_broadcaster
[ur_ros2_control_node-1] [INFO] [1753308829.382131406] [forward_position_controller]: configure successful
[ur_ros2_control_node-1] [INFO] [1753308829.384695816] [controller_manager]: Loading controller ‘force_torque_sensor_broadcaster’
[ur_ros2_control_node-1] [INFO] [1753308829.391796525] [controller_manager]: Loading controller ‘force_mode_controller’
[spawner-8] [INFO] [1753308829.392258565] [spawner_joint_state_broadcaster]: Loaded force_torque_sensor_broadcaster
[ur_ros2_control_node-1] [INFO] [1753308829.399038343] [controller_manager]: Configuring controller ‘force_torque_sensor_broadcaster’
[spawner-9] [INFO] [1753308829.400526524] [spawner_joint_trajectory_controller]: Loaded force_mode_controller
[ur_ros2_control_node-1] [INFO] [1753308829.401836988] [controller_manager]: Configuring controller ‘force_mode_controller’
[spawner-8] [INFO] [1753308829.412193615] [spawner_joint_state_broadcaster]: Configured and activated force_torque_sensor_broadcaster
[ur_ros2_control_node-1] [INFO] [1753308829.413250903] [controller_manager]: Loading controller ‘passthrough_trajectory_controller’
[ur_ros2_control_node-1] [INFO] [1753308829.419856941] [controller_manager]: Loading controller ‘tcp_pose_broadcaster’
[spawner-9] [INFO] [1753308829.420482756] [spawner_joint_trajectory_controller]: Loaded passthrough_trajectory_controller
[ur_ros2_control_node-1] [INFO] [1753308829.427543144] [controller_manager]: Configuring controller ‘passthrough_trajectory_controller’
[spawner-8] [INFO] [1753308829.427930113] [spawner_joint_state_broadcaster]: Loaded tcp_pose_broadcaster
[ur_ros2_control_node-1] [INFO] [1753308829.431648094] [controller_manager]: Configuring controller ‘tcp_pose_broadcaster’
[ur_ros2_control_node-1] [INFO] [1753308829.437770757] [controller_manager]: Loading controller ‘freedrive_mode_controller’
[spawner-8] [INFO] [1753308829.438145637] [spawner_joint_state_broadcaster]: Configured and activated tcp_pose_broadcaster
[spawner-9] [INFO] [1753308829.444164000] [spawner_joint_trajectory_controller]: Loaded freedrive_mode_controller
[ur_ros2_control_node-1] [INFO] [1753308829.444400608] [controller_manager]: Configuring controller ‘freedrive_mode_controller’
[ur_ros2_control_node-1] [INFO] [1753308829.447572366] [controller_manager]: Loading controller ‘ur_configuration_controller’
[spawner-8] [INFO] [1753308829.460084757] [spawner_joint_state_broadcaster]: Loaded ur_configuration_controller
[ur_ros2_control_node-1] [INFO] [1753308829.460296999] [controller_manager]: Configuring controller ‘ur_configuration_controller’
[ur_ros2_control_node-1] [INFO] [1753308829.463562724] [controller_manager]: Loading controller ‘tool_contact_controller’
[spawner-9] [INFO] [1753308829.472352441] [spawner_joint_trajectory_controller]: Loaded tool_contact_controller
[ur_ros2_control_node-1] [INFO] [1753308829.475830292] [controller_manager]: Configuring controller ‘tool_contact_controller’
[spawner-8] [INFO] [1753308829.476039117] [spawner_joint_state_broadcaster]: Configured and activated ur_configuration_controller
[ur_ros2_control_node-1] [INFO] [1753308829.480803875] [controller_manager]: Loading controller ‘scaled_joint_trajectory_controller’
[ur_ros2_control_node-1] [INFO] [1753308829.495263315] [scaled_joint_trajectory_controller]: Using scaling state from the hardware from interface ur3e_speed_scaling/speed_scaling_factor.
[ur_ros2_control_node-1] [WARN] [1753308829.503340930] [scaled_joint_trajectory_controller]: [Deprecated]: “allow_nonzero_velocity_at_trajectory_end” is set to true. The default behavior will change to false.
[spawner-8] [INFO] [1753308829.506421900] [spawner_joint_state_broadcaster]: Loaded scaled_joint_trajectory_controller
[ur_ros2_control_node-1] [INFO] [1753308829.506743017] [controller_manager]: Configuring controller ‘scaled_joint_trajectory_controller’
[ur_ros2_control_node-1] [INFO] [1753308829.506887001] [scaled_joint_trajectory_controller]: No specific joint names are used for command interfaces. Using ‘joints’ parameter.
[ur_ros2_control_node-1] [INFO] [1753308829.506902805] [scaled_joint_trajectory_controller]: Command interfaces are [position] and state interfaces are [position velocity].
[ur_ros2_control_node-1] [INFO] [1753308829.506916232] [scaled_joint_trajectory_controller]: Using ‘splines’ interpolation method.
[ur_ros2_control_node-1] [INFO] [1753308829.507518494] [scaled_joint_trajectory_controller]: Controller state will be published at 100.00 Hz.
[ur_ros2_control_node-1] [INFO] [1753308829.509207263] [scaled_joint_trajectory_controller]: Action status changes will be monitored at 20.00 Hz.
[spawner-8] [INFO] [1753308829.517870378] [spawner_joint_state_broadcaster]: Configured and activated scaled_joint_trajectory_controller
[INFO] [spawner-9]: process has finished cleanly [pid 241881]
[INFO] [spawner-8]: process has finished cleanly [pid 241879]
[ur_ros2_control_node-1] [INFO] [1753308829.707282155] [controller_manager]: Switch controller timeout is set to 0, using default 1s!