The test_joint_trajectory_controller not work with ur_robot_driver for Humble but work with Foxy
nqduy35 opened this issue · 2 comments
Affected ROS2 Driver version(s)
Humble branch
Used ROS distribution.
Humble
Which combination of platform is the ROS driver running on.
Docker
How is the UR ROS2 Driver installed.
Build both the ROS driver and UR Client Library from source
Which robot platform is the driver connected to.
UR E-series robot, URSim in docker
Robot SW / URSim version(s)
5.14
How is the ROS driver used.
Others
Issue details
Summary + Issue + Steps
Trying installing ur_ros_driver on Docker ubuntu 22.04 with ros 2 Humble, all installation steps are succeeded and the ur_ros_driver runs without any errors. However, when I test with test_joint_trajectory_controller, the robot does not move. Note that my host computer runs ubuntu 20.04 with ros 2 Foxy, so I can produce several tests as follows:
- Foxy ur_ros_driver + Foxy test_joint_trajectory_controller + UR3e => Success
- Foxy ur_ros_driver + Humble test_joint_trajectory_controller + UR3e => Success
- Foxy ur_ros_driver + Foxy test_joint_trajectory_controller + URsim => Success
- Foxy ur_ros_driver + Humble test_joint_trajectory_controller + URsim => Success
- Humble ur_ros_driver + Foxy test_joint_trajectory_controller + UR3e => Failure
- Humble ur_ros_driver + Humble test_joint_trajectory_controller + UR3e => Failure
- Humble ur_ros_driver + Foxy test_joint_trajectory_controller + URsim => Failure
- Humble ur_ros_driver + Humble test_joint_trajectory_controller + URsim => Failure
=> So i temporarily conclude that the problem is from Humble ur_ros_driver
Example, the following the screen capture of the 8th case. Window 1: the URsim, Window 2: running ur_ros_driver, Window 3: running test_joint_trajectory_controller. As you can see, the UR3e in URsim can detect the ur_ros_driver, but nothing happens when running test_joint_trajectory_controller.
Relevant log output
No response
Accept Public visibility
- I agree to make this context public
I can't recall how we did things with Foxy, but we use the scaled joint trajectory controller as default since quite a while, so you would need to use the test_scaled_joint_trajectory_controller.launch.py
file.
Please note (If anyone else reads this issue, since @nqduy35 seems to have done that correctly judging from the screenshots) that you will have to move the robot to a valid start pose (upright pose as in the screenshot) and have to make sure that the external_control program is actually running.
@nqduy35 If using the scaled version doesn't work for you, could you please post the output of ros2 control list_controllers
? It should look as follows (when the external_control program is running)
forward_position_controller[position_controllers/JointGroupPositionController] inactive
speed_scaling_state_broadcaster[ur_controllers/SpeedScalingStateBroadcaster] active
scaled_joint_trajectory_controller[ur_controllers/ScaledJointTrajectoryController] active
joint_state_broadcaster[joint_state_broadcaster/JointStateBroadcaster] active
io_and_status_controller[ur_controllers/GPIOController] active
force_torque_sensor_broadcaster[force_torque_sensor_broadcaster/ForceTorqueSensorBroadcaster] active