UR3e does not respond to ROS

I am working on ROS2 Foxy, my network setup is UR3e (192.168.0.4) > router > PC (Ubuntu with IP 192.168.0.2 and another network for docker with IP 172.17.0.1) > ROS2 (through docker with IP 172.17.0.2)

  • I set up host IP on the robot 192.168.0.2, and robot’s IP 192.168.0.4

  • I installed the external control urcap

  • I tried with both enable/disable remote control, and with both local/remote control on teach pendant

  • Firewall is disabled (sudo ufw status: inactive)

  • I run

ros2 launch ur_bringup ur_control.launch.py ur_type:=ur3e robot_ip:=192.168.0.4 launch_rviz:=false reverse_ip:=192.168.0.2 limited:=true

on one terminal and

ros2 launch ur_bringup ur_moveit.launch.py ur_type:=ur3e robot_ip:=192.168.0.4 launch_rviz:=true reverse_ip:=192.168.0.2

on another terminal.

After that, I run the program on the teach pendant of the robot with the external control (with the correct IP),
but the robot’s state appears red which means “state in collision” no matter where I move the robot. This causes it to fail plan and execute a trajectory.

Alternatively, instead of the moveit launch file, I run this:

ros2 launch ur_bringup test_joint_trajectory_controller.launch.py

And the robot does not move, without any error indication.

Any idea what’s the culprit and how to fix it?

Attached is a moveit screenshot

Thank you for your time,

regarding the test_move: Do you get any output in the shell where you started the program?

Why MoveIt shows every state in collision I am afraid I cannot answer.

The robot does move now with the test_move. I only had to change the joint limits in test_goal_publishers_config.yaml.
So it is not a ROS-UR connection error but either an error with the meshes of UR, or moveit error

Update: Now the robot does not seem red, but orange. It seemed to be a moveit problem.
However, I run the

ur_bringup ur_control.launch.py

Then start the External Control Program on the UR with the correct IP.
Then start the

ur_bringup ur_moveit.launch.py

I am able to plan and execute a trajectory in rviz successfully (no errors popping up), but the robot actually does not move.
I was wondering whether could be a calibration issue since I attached an end-effector that had not yet configured in urdf.
In this case, is it normal that the ur_calibration package is not included in the Foxy branch?

The calibration should not be directly connected whether you can execute things or not.

Do you have any output in the shell running MoveIt!?

Edit: I guess Real robot is not moving with moveit is the follow-up?