UniversalRobots / Universal_Robots_ROS2_Driver

Universal Robots ROS2 driver supporting CB3 and e-Series
BSD 3-Clause "New" or "Revised" License
408 stars 212 forks source link

Compile error: str_cat not defined #952

Closed Muslinmin closed 2 months ago

Muslinmin commented 6 months ago

Affected ROS2 Driver version(s)

https://github.com/UniversalRobots/Universal_Robots_ROS2_Driver/actions/runs/4782447849

Used ROS distribution.

Humble

Which combination of platform is the ROS driver running on.

Ubuntu Linux with standard kernel

How is the UR ROS2 Driver installed.

From binary packets

Which robot platform is the driver connected to.

UR CB3 robot

Robot SW / URSim version(s)

Polyscope 3.7

How is the ROS driver used.

Through the robot teach pendant using External Control URCap

Issue details

Summary

What I wanted to do was connect my ROS2 in my pc (in linux) to the URCAP external control on the teach pendant of the UR10. After launching the ur_robot_driver in the command prompt (logs below), I pressed the play button on the external control of the teach pendant. I got a compile error as shown in the photo attached here: str_cat_error_pendant

Steps to Reproduce

I installed the latest binary build of the ur_robot_driver, which is listed on at this page: https://github.com/UniversalRobots/Universal_Robots_ROS2_Driver/tree/humble.

The URCAP external program was installed from this repository, versioned 1.0.5.

Did sudo apt update and sudo apt upgrade.

Configured the URCAP external program on the teach pendant and set the proper IP addresses as instructed by the documentation here: https://docs.ros.org/en/ros2_packages/humble/api/ur_robot_driver/installation/install_urcap_cb3.html

Launched the ur_robot_driver with this command: ros2 launch ur_robot_driver ur_control.launch.py ur_type:=ur10 robot_ip:=192.168.1.102 launch_rviz:=false initial_joint_controller:=joint_trajectory_controller.

I tried with the default scaled_joint_trajector_controller as well.

I pressed the play button on the teach pendant, and the compile error "STR_CAT not defined" pops up at every instance I pressed the button(Picture attached above). The log prints:

[ur_ros2_control_node-1] [INFO] [1710762390.849514083] [UR_Client_Library:]: Robot requested program
[ur_ros2_control_node-1] [INFO] [1710762390.849674378] [UR_Client_Library:]: Sent program to robot
[ur_ros2_control_node-1] [INFO] [1710762412.302452697] [UR_Client_Library:]: Robot requested program
[ur_ros2_control_node-1] [INFO] [1710762412.302595572] [UR_Client_Library:]: Sent program to robot

Any help is appreciated. Thank you

Relevant log output

lusmse@lusmse:~$ ros2 launch ur_robot_driver ur_control.launch.py ur_type:=ur10 robot_ip:=192.168.1.102 launch_rviz:=false initial_joint_controller:=joint_trajectory_controller
[INFO] [launch]: All log files can be found below /home/lusmse/.ros/log/2024-03-18-19-45-08-073239-lusmse-24649
[INFO] [launch]: Default logging verbosity is set to INFO
[INFO] [dashboard_client-2]: process started with pid [24654]
[INFO] [controller_stopper_node-3]: process started with pid [24656]
[INFO] [ur_ros2_control_node-1]: process started with pid [24652]
[INFO] [urscript_interface-4]: process started with pid [24658]
[INFO] [robot_state_publisher-5]: process started with pid [24660]
[INFO] [spawner-6]: process started with pid [24662]
[INFO] [spawner-7]: process started with pid [24664]
[INFO] [spawner-8]: process started with pid [24666]
[INFO] [spawner-9]: process started with pid [24668]
[INFO] [spawner-10]: process started with pid [24670]
[INFO] [spawner-11]: process started with pid [24672]
[robot_state_publisher-5] [INFO] [1710762308.767118668] [robot_state_publisher]: got segment base
[robot_state_publisher-5] [INFO] [1710762308.768525937] [robot_state_publisher]: got segment base_link
[robot_state_publisher-5] [INFO] [1710762308.769436736] [robot_state_publisher]: got segment base_link_inertia
[robot_state_publisher-5] [INFO] [1710762308.770043608] [robot_state_publisher]: got segment flange
[robot_state_publisher-5] [INFO] [1710762308.770621420] [robot_state_publisher]: got segment forearm_link
[robot_state_publisher-5] [INFO] [1710762308.771293676] [robot_state_publisher]: got segment ft_frame
[robot_state_publisher-5] [INFO] [1710762308.771956762] [robot_state_publisher]: got segment shoulder_link
[robot_state_publisher-5] [INFO] [1710762308.773002170] [robot_state_publisher]: got segment tool0
[robot_state_publisher-5] [INFO] [1710762308.773844501] [robot_state_publisher]: got segment upper_arm_link
[robot_state_publisher-5] [INFO] [1710762308.774662203] [robot_state_publisher]: got segment world
[robot_state_publisher-5] [INFO] [1710762308.775487615] [robot_state_publisher]: got segment wrist_1_link
[robot_state_publisher-5] [INFO] [1710762308.776115745] [robot_state_publisher]: got segment wrist_2_link
[robot_state_publisher-5] [INFO] [1710762308.776847199] [robot_state_publisher]: got segment wrist_3_link
[dashboard_client-2] [INFO] [1710762308.777396060] [UR_Client_Library:]: Connected: Universal Robots Dashboard Server
[dashboard_client-2] 
[controller_stopper_node-3] [INFO] [1710762308.779317829] [Controller stopper]: Waiting for switch controller service to come up on controller_manager/switch_controller
[ur_ros2_control_node-1] [WARN] [1710762308.789513228] [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] text not specified in the tf_prefix tag
[ur_ros2_control_node-1] [INFO] [1710762308.790149681] [resource_manager]: Loading hardware 'ur10' 
[ur_ros2_control_node-1] [INFO] [1710762308.792330471] [resource_manager]: Initialize hardware 'ur10' 
[ur_ros2_control_node-1] [INFO] [1710762308.792435756] [resource_manager]: Successful initialization of hardware 'ur10'
[ur_ros2_control_node-1] [INFO] [1710762308.792674882] [resource_manager]: 'configure' hardware 'ur10' 
[ur_ros2_control_node-1] [INFO] [1710762308.792689396] [resource_manager]: Successful 'configure' of hardware 'ur10'
[ur_ros2_control_node-1] [INFO] [1710762308.792729266] [resource_manager]: 'activate' hardware 'ur10' 
[ur_ros2_control_node-1] [INFO] [1710762308.792744490] [URPositionHardwareInterface]: Starting ...please wait...
[ur_ros2_control_node-1] [INFO] [1710762308.792763079] [URPositionHardwareInterface]: Initializing driver...
[ur_ros2_control_node-1] [WARN] [1710762308.794642986] [UR_Client_Library:]: Your system/user seems not to be setup for FIFO scheduling. We recommend using a lowlatency kernel with FIFO scheduling. See https://github.com/UniversalRobots/Universal_Robots_ROS_Driver/blob/master/ur_robot_driver/doc/real_time.md for details.
[ur_ros2_control_node-1] [INFO] [1710762309.121129637] [UR_Client_Library:]: Negotiated RTDE protocol version to 2.
[ur_ros2_control_node-1] [INFO] [1710762309.121941984] [UR_Client_Library:]: Setting up RTDE communication with frequency 125.000000
[ur_ros2_control_node-1] [WARN] [1710762310.148508625] [UR_Client_Library:]: DEPRECATION NOTICE: Setting the keepalive count has been deprecated. Instead use the RobotReceiveTimeout, to set the timeout directly in the write commands. Please change your code to set the read timeout in the write commands directly. This keepalive count will overwrite the timeout passed to the write functions.
[ur_ros2_control_node-1] [WARN] [1710762310.148565500] [UR_Client_Library:]: DEPRECATION NOTICE: Setting the keepalive count has been deprecated. Instead you should set the timeout directly in the write commands. Please change your code to set the read timeout in the write commands directly. This keepalive count will overwrite the timeout passed to the write functions.
[ur_ros2_control_node-1] [INFO] [1710762310.148587012] [URPositionHardwareInterface]: Calibration checksum: 'calib_17227329492635474227'.
[spawner-6] [INFO] [1710762311.074331323] [spawner_joint_trajectory_controller]: Waiting for '/controller_manager' services to be available
[spawner-10] [INFO] [1710762311.074317319] [spawner_force_torque_sensor_broadcaster]: Waiting for '/controller_manager' services to be available
[spawner-8] [INFO] [1710762311.076080009] [spawner_io_and_status_controller]: Waiting for '/controller_manager' services to be available
[spawner-11] [INFO] [1710762311.083323823] [spawner_forward_position_controller]: Waiting for '/controller_manager' services to be available
[ur_ros2_control_node-1] [ERROR] [1710762311.170245836] [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 [https://github.com/UniversalRobots/Universal_Robots_ROS2_Driver/blob/main/ur_calibration/README.md] for details.
[ur_ros2_control_node-1] [INFO] [1710762311.170472762] [URPositionHardwareInterface]: System successfully started!
[ur_ros2_control_node-1] [INFO] [1710762311.170521970] [resource_manager]: Successful 'activate' of hardware 'ur10'
[controller_stopper_node-3] [INFO] [1710762311.191198177] [Controller stopper]: Service available
[controller_stopper_node-3] [INFO] [1710762311.191226224] [Controller stopper]: Waiting for list controllers service to come up on controller_manager/list_controllers
[controller_stopper_node-3] [INFO] [1710762311.191242286] [Controller stopper]: Service available
[spawner-9] [INFO] [1710762311.191947002] [spawner_speed_scaling_state_broadcaster]: Waiting for '/controller_manager' services to be available
[spawner-7] [INFO] [1710762311.192110764] [spawner_joint_state_broadcaster]: Waiting for '/controller_manager' services to be available
[ur_ros2_control_node-1] [WARN] [1710762311.193706536] [controller_manager]: Could not enable FIFO RT scheduling policy
[ur_ros2_control_node-1] [WARN] [1710762311.193806116] [UR_Client_Library:]: Your system/user seems not to be setup for FIFO scheduling. We recommend using a lowlatency kernel with FIFO scheduling. See https://github.com/UniversalRobots/Universal_Robots_ROS_Driver/blob/master/ur_robot_driver/doc/real_time.md for details.
[ur_ros2_control_node-1] [INFO] [1710762311.286339927] [controller_manager]: Loading controller 'force_torque_sensor_broadcaster'
[ur_ros2_control_node-1] [INFO] [1710762311.298373974] [controller_manager]: Loading controller 'joint_trajectory_controller'
[spawner-10] [INFO] [1710762311.298765424] [spawner_force_torque_sensor_broadcaster]: Loaded force_torque_sensor_broadcaster
[ur_ros2_control_node-1] [WARN] [1710762311.309400398] [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] [1710762311.314049516] [controller_manager]: Loading controller 'io_and_status_controller'
[spawner-6] [INFO] [1710762311.314830051] [spawner_joint_trajectory_controller]: Loaded joint_trajectory_controller
[ur_ros2_control_node-1] [INFO] [1710762311.322311087] [controller_manager]: Loading controller 'forward_position_controller'
[spawner-8] [INFO] [1710762311.322948546] [spawner_io_and_status_controller]: Loaded io_and_status_controller
[ur_ros2_control_node-1] [INFO] [1710762311.338662619] [controller_manager]: Configuring controller 'force_torque_sensor_broadcaster'
[spawner-11] [INFO] [1710762311.339274313] [spawner_forward_position_controller]: Loaded forward_position_controller
[ur_ros2_control_node-1] [INFO] [1710762311.346071421] [controller_manager]: Configuring controller 'joint_trajectory_controller'
[ur_ros2_control_node-1] [INFO] [1710762311.346251498] [joint_trajectory_controller]: No specific joint names are used for command interfaces. Using 'joints' parameter.
[ur_ros2_control_node-1] [INFO] [1710762311.346310139] [joint_trajectory_controller]: Command interfaces are [position] and state interfaces are [position velocity].
[ur_ros2_control_node-1] [INFO] [1710762311.346331329] [joint_trajectory_controller]: Using 'splines' interpolation method.
[ur_ros2_control_node-1] [INFO] [1710762311.347529107] [joint_trajectory_controller]: Controller state will be published at 100.00 Hz.
[ur_ros2_control_node-1] [INFO] [1710762311.350203692] [joint_trajectory_controller]: Action status changes will be monitored at 20.00 Hz.
[ur_ros2_control_node-1] [INFO] [1710762311.354282685] [controller_manager]: Configuring controller 'io_and_status_controller'
[ur_ros2_control_node-1] [INFO] [1710762311.362332753] [controller_manager]: Configuring controller 'forward_position_controller'
[ur_ros2_control_node-1] [INFO] [1710762311.363342682] [forward_position_controller]: configure successful
[spawner-10] [INFO] [1710762311.387041877] [spawner_force_torque_sensor_broadcaster]: Configured and activated force_torque_sensor_broadcaster
[spawner-6] [INFO] [1710762311.411149814] [spawner_joint_trajectory_controller]: Configured and activated joint_trajectory_controller
[ur_ros2_control_node-1] [INFO] [1710762311.426096039] [controller_manager]: Loading controller 'speed_scaling_state_broadcaster'
[spawner-8] [INFO] [1710762311.427251828] [spawner_io_and_status_controller]: Configured and activated io_and_status_controller
[ur_ros2_control_node-1] [INFO] [1710762311.435157916] [speed_scaling_state_broadcaster]: Loading UR SpeedScalingStateBroadcaster with tf_prefix: 
[ur_ros2_control_node-1] [INFO] [1710762311.442359374] [controller_manager]: Loading controller 'joint_state_broadcaster'
[spawner-9] [INFO] [1710762311.443291273] [spawner_speed_scaling_state_broadcaster]: Loaded speed_scaling_state_broadcaster
[ur_ros2_control_node-1] [INFO] [1710762311.458428298] [controller_manager]: Configuring controller 'speed_scaling_state_broadcaster'
[ur_ros2_control_node-1] [INFO] [1710762311.458519919] [speed_scaling_state_broadcaster]: Publisher rate set to : 100.0 Hz
[spawner-7] [INFO] [1710762311.459191101] [spawner_joint_state_broadcaster]: Loaded joint_state_broadcaster
[ur_ros2_control_node-1] [INFO] [1710762311.466430492] [controller_manager]: Configuring controller 'joint_state_broadcaster'
[ur_ros2_control_node-1] [INFO] [1710762311.466570720] [joint_state_broadcaster]: 'joints' or 'interfaces' parameter is empty. All available state interfaces will be published
[spawner-9] [INFO] [1710762311.507305209] [spawner_speed_scaling_state_broadcaster]: Configured and activated speed_scaling_state_broadcaster
[spawner-7] [INFO] [1710762311.522967560] [spawner_joint_state_broadcaster]: Configured and activated joint_state_broadcaster
[INFO] [spawner-11]: process has finished cleanly [pid 24672]
[INFO] [spawner-10]: process has finished cleanly [pid 24670]
[INFO] [spawner-6]: process has finished cleanly [pid 24662]
[INFO] [spawner-8]: process has finished cleanly [pid 24666]
[INFO] [spawner-9]: process has finished cleanly [pid 24668]
[INFO] [spawner-7]: process has finished cleanly [pid 24664]
[ur_ros2_control_node-1] [INFO] [1710762332.121688429] [UR_Client_Library:]: Robot requested program
[ur_ros2_control_node-1] [INFO] [1710762332.121862878] [UR_Client_Library:]: Sent program to robot
[ur_ros2_control_node-1] [INFO] [1710762371.447065241] [UR_Client_Library:]: Robot requested program
[ur_ros2_control_node-1] [INFO] [1710762371.447205795] [UR_Client_Library:]: Sent program to robot
[ur_ros2_control_node-1] [INFO] [1710762383.472053214] [UR_Client_Library:]: Robot requested program
[ur_ros2_control_node-1] [INFO] [1710762383.472199796] [UR_Client_Library:]: Sent program to robot
[ur_ros2_control_node-1] [INFO] [1710762386.791123098] [UR_Client_Library:]: Robot requested program
[ur_ros2_control_node-1] [INFO] [1710762386.791260142] [UR_Client_Library:]: Sent program to robot
[ur_ros2_control_node-1] [INFO] [1710762390.849514083] [UR_Client_Library:]: Robot requested program
[ur_ros2_control_node-1] [INFO] [1710762390.849674378] [UR_Client_Library:]: Sent program to robot
[ur_ros2_control_node-1] [INFO] [1710762412.302452697] [UR_Client_Library:]: Robot requested program
[ur_ros2_control_node-1] [INFO] [1710762412.302595572] [UR_Client_Library:]: Sent program to robot
^C[WARNING] [launch]: user interrupted with ctrl-c (SIGINT)
[controller_stopper_node-3] [INFO] [1710762523.212251707] [rclcpp]: signal_handler(signum=2)
[dashboard_client-2] [INFO] [1710762523.212251701] [rclcpp]: signal_handler(signum=2)
[robot_state_publisher-5] [INFO] [1710762523.212236818] [rclcpp]: signal_handler(signum=2)
[ur_ros2_control_node-1] [INFO] [1710762523.212269797] [rclcpp]: signal_handler(signum=2)
[urscript_interface-4] [INFO] [1710762523.212273509] [rclcpp]: signal_handler(signum=2)
[ur_ros2_control_node-1] [INFO] [1710762523.272208998] [URPositionHardwareInterface]: Stopping ...please wait...
[INFO] [urscript_interface-4]: process has finished cleanly [pid 24658]
[INFO] [controller_stopper_node-3]: process has finished cleanly [pid 24656]
[INFO] [robot_state_publisher-5]: process has finished cleanly [pid 24660]
[INFO] [dashboard_client-2]: process has finished cleanly [pid 24654]
[ur_ros2_control_node-1] [INFO] [1710762525.164283181] [URPositionHardwareInterface]: System successfully stopped!
[INFO] [ur_ros2_control_node-1]: process has finished cleanly [pid 24652]
lusmse@lusmse:~$
RobertWilbrandt commented 6 months ago

The polyscope version you are using is not supported by this driver, we require at least version 3.14.3. In particular, str_cat was only introduced in version 3.8.0. We suggest you update the software on your robot.

fmauch commented 2 months ago

Closing this as the given answer seems to be appropriate.