Unable to load script on the robot
The ScriptSender makes reference to the ExternalControl URCaps program that needs to be installed on the UR controller, and mentions that in order for the ScriptSender to work properly, the IP address must be set to the robot's IP address and the port must be set to the correct one (50002 in this case). Even with these settings properly set, the simple example examples/full_driver.cpp is able to get the full state of the robot but is unable to make J6 move, and the program state handler shows that the program isn't running. Are there missing steps in the documentation?
@hugols16 did you figure this out? If there is anything missing or unclear, please let us know so we can improve the documentation.
@fmauch I closed this issue because I thought I had figured out the issue at first, but it seems that it's not resolved after all. Here's a summary of what has been done to try and get the library to work with my UR5.
- Install the External Control URCap on the UR5. I've then set up the IP address to be that of my computer (on the same network) and set the URCap port as 50002 (matching the default ScriptSender port from this library).
- This library is running via docker so I've made sure to expose the port.
- When I exec in docker, I'm able to not only ping the robot, showing that the robot IP address has been configured properly, but I'm also able to run a very simple RTDE program that controls the arm, again showing that communication can be established.
- When not running the
full_driverexample or when exposing a different port, the program running the ExternalControl URCap on the UR5 will output that it can't establish a connection, thus stopping me from running said program. But when 50002 is exposed and when thefull_driverexample is running, the program running the ExternalControl URCap on the UR5 does not output any errors and stays running/playing. - With all that being said, the
full_driverexample outputs that the program isn't running. I've tried turning headless mode on and off, and that didn't do much to help. I've looked at the README countless times, and nothing else is said about a step I may be missing. I've thought of potential networking issue but then again, it seems that I'm able to establish a proper communication with the URCap. Maybe I'm missing a step when creating the program on the UR5 but I'm not quite sure. Right now the only command in the UR5 program is the ExternalControl command.
The full_driver example also outputs the following debug logs:
DEBUG /opt/Universal_Robots_Client_Library/include/ur_client_library/primary/primary_parser.h 139: Invalid robot package type recieved: 23
DEBUG /opt/Universal_Robots_Client_Library/include/ur_client_library/primary/primary_parser.h 139: Invalid robot package type recieved: 25
DEBUG /opt/Universal_Robots_Client_Library/include/ur_client_library/primary/primary_parser.h 139: Invalid robot package type recieved: 25
DEBUG /opt/Universal_Robots_Client_Library/include/ur_client_library/primary/primary_parser.h 139: Invalid robot package type recieved: 5
DEBUG /opt/Universal_Robots_Client_Library/include/ur_client_library/primary/primary_parser.h 139: Invalid robot package type recieved: 25
DEBUG /opt/Universal_Robots_Client_Library/include/ur_client_library/primary/primary_parser.h 139: Invalid robot package type recieved: 5
DEBUG /opt/Universal_Robots_Client_Library/include/ur_client_library/primary/primary_parser.h 139: Invalid robot package type recieved: 25
DEBUG /opt/Universal_Robots_Client_Library/include/ur_client_library/primary/primary_parser.h 139: Invalid robot package type recieved: 5
DEBUG /opt/Universal_Robots_Client_Library/include/ur_client_library/primary/primary_parser.h 139: Invalid robot package type recieved: 25
DEBUG /opt/Universal_Robots_Client_Library/include/ur_client_library/primary/primary_parser.h 139: Invalid robot package type recieved: 5
DEBUG /opt/Universal_Robots_Client_Library/include/ur_client_library/primary/primary_parser.h 139: Invalid robot package type recieved: 25
DEBUG /opt/Universal_Robots_Client_Library/include/ur_client_library/primary/primary_parser.h 139: Invalid robot package type recieved: 5
DEBUG /opt/Universal_Robots_Client_Library/include/ur_client_library/primary/primary_parser.h 139: Invalid robot package type recieved: 25
DEBUG /opt/Universal_Robots_Client_Library/include/ur_client_library/primary/primary_parser.h 139: Invalid robot package type recieved: 5
DEBUG /opt/Universal_Robots_Client_Library/include/ur_client_library/primary/primary_parser.h 139: Invalid robot package type recieved: 25
DEBUG /opt/Universal_Robots_Client_Library/include/ur_client_library/primary/primary_parser.h 139: Invalid robot package type recieved: 5
DEBUG /opt/Universal_Robots_Client_Library/include/ur_client_library/primary/primary_parser.h 139: Invalid robot package type recieved: 25
DEBUG /opt/Universal_Robots_Client_Library/include/ur_client_library/primary/primary_parser.h 139: Invalid robot package type recieved: 5
DEBUG /opt/Universal_Robots_Client_Library/include/ur_client_library/primary/primary_parser.h 139: Invalid robot package type recieved: 25
DEBUG /opt/Universal_Robots_Client_Library/include/ur_client_library/primary/primary_parser.h 139: Invalid robot package type recieved: 5
DEBUG /opt/Universal_Robots_Client_Library/include/ur_client_library/primary/primary_parser.h 139: Invalid robot package type recieved: 25
DEBUG /opt/Universal_Robots_Client_Library/include/ur_client_library/primary/primary_parser.h 139: Invalid robot package type recieved: 5
However those are outputted after the example outputs that the program isn't running, and I'm unsure if it's related. Below is the full output from the full driver example:
DEBUG /opt/Universal_Robots_Client_Library/src/ur/ur_driver.cpp 63: Initializing urdriver
DEBUG /opt/Universal_Robots_Client_Library/src/ur/ur_driver.cpp 64: Initializing RTDE client
DEBUG /opt/Universal_Robots_Client_Library/src/comm/tcp_socket.cpp 61: Setting up connection: 192.168.1.20:30002
DEBUG /opt/Universal_Robots_Client_Library/src/comm/tcp_socket.cpp 105: Connection established for 192.168.1.20:30002
DEBUG /opt/Universal_Robots_Client_Library/src/comm/tcp_socket.cpp 61: Setting up connection: 192.168.1.20:30004
DEBUG /opt/Universal_Robots_Client_Library/src/comm/tcp_socket.cpp 105: Connection established for 192.168.1.20:30004
DEBUG /opt/Universal_Robots_Client_Library/include/ur_client_library/comm/pipeline.h 345: Starting up producer
WARN /opt/Universal_Robots_Client_Library/include/ur_client_library/comm/pipeline.h 396: No realtime capabilities found. Consider using a realtime system for better performance
INFO /opt/Universal_Robots_Client_Library/src/rtde/rtde_client.cpp 70: Negotiated RTDE protocol version to 2.
INFO /opt/Universal_Robots_Client_Library/src/rtde/rtde_client.cpp 176: Setting up RTDE communication with frequency 125.000000
DEBUG /opt/Universal_Robots_Client_Library/src/rtde/rtde_client.cpp 206: timestamp confirmed as datatype: DOUBLE
DEBUG /opt/Universal_Robots_Client_Library/src/rtde/rtde_client.cpp 206: actual_q confirmed as datatype: VECTOR6D
DEBUG /opt/Universal_Robots_Client_Library/src/rtde/rtde_client.cpp 206: actual_qd confirmed as datatype: VECTOR6D
DEBUG /opt/Universal_Robots_Client_Library/src/rtde/rtde_client.cpp 206: speed_scaling confirmed as datatype: DOUBLE
DEBUG /opt/Universal_Robots_Client_Library/src/rtde/rtde_client.cpp 206: target_speed_fraction confirmed as datatype: DOUBLE
DEBUG /opt/Universal_Robots_Client_Library/src/rtde/rtde_client.cpp 206: runtime_state confirmed as datatype: UINT32
DEBUG /opt/Universal_Robots_Client_Library/src/rtde/rtde_client.cpp 206: actual_TCP_force confirmed as datatype: VECTOR6D
DEBUG /opt/Universal_Robots_Client_Library/src/rtde/rtde_client.cpp 206: actual_TCP_pose confirmed as datatype: VECTOR6D
DEBUG /opt/Universal_Robots_Client_Library/src/rtde/rtde_client.cpp 206: actual_digital_input_bits confirmed as datatype: UINT64
DEBUG /opt/Universal_Robots_Client_Library/src/rtde/rtde_client.cpp 206: actual_digital_output_bits confirmed as datatype: UINT64
DEBUG /opt/Universal_Robots_Client_Library/src/rtde/rtde_client.cpp 206: standard_analog_input0 confirmed as datatype: DOUBLE
DEBUG /opt/Universal_Robots_Client_Library/src/rtde/rtde_client.cpp 206: standard_analog_input1 confirmed as datatype: DOUBLE
DEBUG /opt/Universal_Robots_Client_Library/src/rtde/rtde_client.cpp 206: standard_analog_output0 confirmed as datatype: DOUBLE
DEBUG /opt/Universal_Robots_Client_Library/src/rtde/rtde_client.cpp 206: standard_analog_output1 confirmed as datatype: DOUBLE
DEBUG /opt/Universal_Robots_Client_Library/src/rtde/rtde_client.cpp 206: analog_io_types confirmed as datatype: UINT32
DEBUG /opt/Universal_Robots_Client_Library/src/rtde/rtde_client.cpp 206: tool_mode confirmed as datatype: UINT32
DEBUG /opt/Universal_Robots_Client_Library/src/rtde/rtde_client.cpp 206: tool_analog_input_types confirmed as datatype: UINT32
DEBUG /opt/Universal_Robots_Client_Library/src/rtde/rtde_client.cpp 206: tool_analog_input0 confirmed as datatype: DOUBLE
DEBUG /opt/Universal_Robots_Client_Library/src/rtde/rtde_client.cpp 206: tool_analog_input1 confirmed as datatype: DOUBLE
DEBUG /opt/Universal_Robots_Client_Library/src/rtde/rtde_client.cpp 206: tool_output_voltage confirmed as datatype: INT32
DEBUG /opt/Universal_Robots_Client_Library/src/rtde/rtde_client.cpp 206: tool_output_current confirmed as datatype: DOUBLE
DEBUG /opt/Universal_Robots_Client_Library/src/rtde/rtde_client.cpp 206: tool_temperature confirmed as datatype: DOUBLE
DEBUG /opt/Universal_Robots_Client_Library/src/rtde/rtde_client.cpp 206: robot_mode confirmed as datatype: INT32
DEBUG /opt/Universal_Robots_Client_Library/src/rtde/rtde_client.cpp 206: safety_mode confirmed as datatype: INT32
DEBUG /opt/Universal_Robots_Client_Library/src/rtde/rtde_client.cpp 206: robot_status_bits confirmed as datatype: UINT32
DEBUG /opt/Universal_Robots_Client_Library/src/rtde/rtde_client.cpp 206: safety_status_bits confirmed as datatype: UINT32
DEBUG /opt/Universal_Robots_Client_Library/src/rtde/rtde_client.cpp 206: actual_current confirmed as datatype: VECTOR6D
DEBUG /opt/Universal_Robots_Client_Library/src/rtde/rtde_client.cpp 256: speed_slider_mask confirmed as datatype: UINT32
DEBUG /opt/Universal_Robots_Client_Library/src/rtde/rtde_client.cpp 256: speed_slider_fraction confirmed as datatype: DOUBLE
DEBUG /opt/Universal_Robots_Client_Library/src/rtde/rtde_client.cpp 256: standard_digital_output_mask confirmed as datatype: UINT8
DEBUG /opt/Universal_Robots_Client_Library/src/rtde/rtde_client.cpp 256: standard_digital_output confirmed as datatype: UINT8
DEBUG /opt/Universal_Robots_Client_Library/src/rtde/rtde_client.cpp 256: configurable_digital_output_mask confirmed as datatype: UINT8
DEBUG /opt/Universal_Robots_Client_Library/src/rtde/rtde_client.cpp 256: configurable_digital_output confirmed as datatype: UINT8
DEBUG /opt/Universal_Robots_Client_Library/src/rtde/rtde_client.cpp 256: tool_digital_output_mask confirmed as datatype: UINT8
DEBUG /opt/Universal_Robots_Client_Library/src/rtde/rtde_client.cpp 256: tool_digital_output confirmed as datatype: UINT8
DEBUG /opt/Universal_Robots_Client_Library/src/rtde/rtde_client.cpp 256: standard_analog_output_mask confirmed as datatype: UINT8
DEBUG /opt/Universal_Robots_Client_Library/src/rtde/rtde_client.cpp 256: standard_analog_output_type confirmed as datatype: UINT8
DEBUG /opt/Universal_Robots_Client_Library/src/rtde/rtde_client.cpp 256: standard_analog_output_0 confirmed as datatype: DOUBLE
DEBUG /opt/Universal_Robots_Client_Library/src/rtde/rtde_client.cpp 256: standard_analog_output_1 confirmed as datatype: DOUBLE
DEBUG /opt/Universal_Robots_Client_Library/include/ur_client_library/comm/pipeline.h 305: Stopping pipeline! <RTDE Data Pipeline>
DEBUG /opt/Universal_Robots_Client_Library/include/ur_client_library/comm/pipeline.h 418: Pipeline producer ended! <RTDE Data Pipeline>
DEBUG /opt/Universal_Robots_Client_Library/src/comm/tcp_server.cpp 69: Created socket with FD 5
DEBUG /opt/Universal_Robots_Client_Library/src/comm/tcp_server.cpp 79: Created read pipe at FD 6
DEBUG /opt/Universal_Robots_Client_Library/src/comm/tcp_server.cpp 141: Bound 0:50002 to FD 5
DEBUG /opt/Universal_Robots_Client_Library/src/comm/tcp_server.cpp 156: Listening on port 50002
DEBUG /opt/Universal_Robots_Client_Library/src/comm/tcp_server.cpp 309: Starting worker thread
DEBUG /opt/Universal_Robots_Client_Library/src/ur/ur_driver.cpp 159: Created script sender
DEBUG /opt/Universal_Robots_Client_Library/src/comm/tcp_server.cpp 69: Created socket with FD 8
DEBUG /opt/Universal_Robots_Client_Library/src/comm/tcp_server.cpp 79: Created read pipe at FD 9
DEBUG /opt/Universal_Robots_Client_Library/src/comm/tcp_server.cpp 141: Bound 0:50001 to FD 8
DEBUG /opt/Universal_Robots_Client_Library/src/comm/tcp_server.cpp 156: Listening on port 50001
Program running: false
DEBUG /opt/Universal_Robots_Client_Library/src/comm/tcp_server.cpp 309: Starting worker thread
DEBUG /opt/Universal_Robots_Client_Library/src/comm/tcp_server.cpp 69: Created socket with FD 11
DEBUG /opt/Universal_Robots_Client_Library/src/comm/tcp_server.cpp 79: Created read pipe at FD 12
DEBUG /opt/Universal_Robots_Client_Library/src/comm/tcp_server.cpp 141: Bound 0:50003 to FD 11
DEBUG /opt/Universal_Robots_Client_Library/src/comm/tcp_server.cpp 156: Listening on port 50003
DEBUG /opt/Universal_Robots_Client_Library/src/comm/tcp_server.cpp 309: Starting worker thread
DEBUG /opt/Universal_Robots_Client_Library/src/ur/ur_driver.cpp 165: Initialization done
WARN /opt/Universal_Robots_Client_Library/src/ur/ur_driver.cpp 179: DEPRECATION NOTICE: Passing the calibration_checksum to the UrDriver's constructor has been deprecated. Instead, use the checkCalibration(calibration_checksum) function separately. This notice is for application developers using this library. If you are only using an application using this library, you can ignore this message.
DEBUG /opt/Universal_Robots_Client_Library/src/comm/tcp_socket.cpp 61: Setting up connection: 192.168.1.20:30001
DEBUG /opt/Universal_Robots_Client_Library/src/comm/tcp_socket.cpp 105: Connection established for 192.168.1.20:30001
DEBUG /opt/Universal_Robots_Client_Library/include/ur_client_library/comm/pipeline.h 345: Starting up producer
WARN /opt/Universal_Robots_Client_Library/include/ur_client_library/comm/pipeline.h 396: No realtime capabilities found. Consider using a realtime system for better performance
DEBUG /opt/Universal_Robots_Client_Library/include/ur_client_library/primary/primary_parser.h 139: Invalid robot package type recieved: 24
DEBUG /opt/Universal_Robots_Client_Library/include/ur_client_library/primary/primary_parser.h 139: Invalid robot package type recieved: 23
DEBUG /opt/Universal_Robots_Client_Library/include/ur_client_library/primary/primary_parser.h 139: Invalid robot package type recieved: 25
DEBUG /opt/Universal_Robots_Client_Library/include/ur_client_library/primary/primary_parser.h 139: Invalid robot package type recieved: 5
DEBUG /opt/Universal_Robots_Client_Library/include/ur_client_library/primary/primary_parser.h 139: Invalid robot package type recieved: 25
DEBUG /opt/Universal_Robots_Client_Library/include/ur_client_library/primary/primary_parser.h 139: Invalid robot package type recieved: 5
DEBUG /opt/Universal_Robots_Client_Library/include/ur_client_library/primary/primary_parser.h 139: Invalid robot package type recieved: 25
DEBUG /opt/Universal_Robots_Client_Library/include/ur_client_library/primary/primary_parser.h 139: Invalid robot package type recieved: 5
DEBUG /opt/Universal_Robots_Client_Library/include/ur_client_library/primary/primary_parser.h 139: Invalid robot package type recieved: 25
DEBUG /opt/Universal_Robots_Client_Library/include/ur_client_library/primary/primary_parser.h 139: Invalid robot package type recieved: 5
DEBUG /opt/Universal_Robots_Client_Library/include/ur_client_library/primary/primary_parser.h 139: Invalid robot package type recieved: 25
DEBUG /opt/Universal_Robots_Client_Library/include/ur_client_library/primary/primary_parser.h 139: Invalid robot package type recieved: 5
DEBUG /opt/Universal_Robots_Client_Library/include/ur_client_library/primary/primary_parser.h 139: Invalid robot package type recieved: 25
DEBUG /opt/Universal_Robots_Client_Library/include/ur_client_library/primary/primary_parser.h 139: Invalid robot package type recieved: 5
DEBUG /opt/Universal_Robots_Client_Library/include/ur_client_library/primary/primary_parser.h 139: Invalid robot package type recieved: 25
DEBUG /opt/Universal_Robots_Client_Library/include/ur_client_library/primary/primary_parser.h 139: Invalid robot package type recieved: 5
DEBUG /opt/Universal_Robots_Client_Library/include/ur_client_library/primary/primary_parser.h 139: Invalid robot package type recieved: 25
DEBUG /opt/Universal_Robots_Client_Library/include/ur_client_library/primary/primary_parser.h 139: Invalid robot package type recieved: 5
DEBUG /opt/Universal_Robots_Client_Library/include/ur_client_library/primary/primary_parser.h 139: Invalid robot package type recieved: 25
DEBUG /opt/Universal_Robots_Client_Library/include/ur_client_library/primary/primary_parser.h 139: Invalid robot package type recieved: 5
DEBUG /opt/Universal_Robots_Client_Library/include/ur_client_library/primary/primary_parser.h 139: Invalid robot package type recieved: 25
DEBUG /opt/Universal_Robots_Client_Library/include/ur_client_library/primary/primary_parser.h 139: Invalid robot package type recieved: 5
DEBUG /opt/Universal_Robots_Client_Library/src/ur/ur_driver.cpp 271: Got calibration information from robot.
DEBUG /opt/Universal_Robots_Client_Library/include/ur_client_library/comm/pipeline.h 270: Destructing pipeline
DEBUG /opt/Universal_Robots_Client_Library/include/ur_client_library/comm/pipeline.h 305: Stopping pipeline! <Pipeline>
DEBUG /opt/Universal_Robots_Client_Library/include/ur_client_library/comm/pipeline.h 445: Pipeline consumer ended! <Pipeline>
DEBUG /opt/Universal_Robots_Client_Library/include/ur_client_library/comm/pipeline.h 418: Pipeline producer ended! <Pipeline>
ERROR /opt/Universal_Robots_Client_Library/src/ur/ur_driver.cpp 189: 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_ROS_Driver#extract-calibration-information] for details.
DEBUG /opt/Universal_Robots_Client_Library/include/ur_client_library/comm/pipeline.h 345: Starting up producer
WARN /opt/Universal_Robots_Client_Library/include/ur_client_library/comm/pipeline.h 396: No realtime capabilities found. Consider using a realtime system for better performance
Also to add to this investigation, I've made sure to expose all ports that were listed in the logs, i.e. 30001, 30002, 30004, 50001, 50002 and 50003. When the example is running and the program isn't running on the UR, but then I press play, I get the following logs:
DEBUG /opt/Universal_Robots_Client_Library/src/comm/tcp_server.cpp 209: Activity on self-pipe
DEBUG /opt/Universal_Robots_Client_Library/src/comm/tcp_server.cpp 233: Activity on FD 5
DEBUG /opt/Universal_Robots_Client_Library/src/control/script_sender.cpp 46: New client connected at FD 15.
DEBUG /opt/Universal_Robots_Client_Library/src/comm/tcp_server.cpp 209: Activity on self-pipe
DEBUG /opt/Universal_Robots_Client_Library/src/comm/tcp_server.cpp 233: Activity on FD 15
INFO /opt/Universal_Robots_Client_Library/src/control/script_sender.cpp 58: Robot requested program
INFO /opt/Universal_Robots_Client_Library/src/control/script_sender.cpp 71: Sent program to robot
DEBUG /opt/Universal_Robots_Client_Library/src/comm/tcp_server.cpp 209: Activity on self-pipe
DEBUG /opt/Universal_Robots_Client_Library/src/comm/tcp_server.cpp 233: Activity on FD 15
DEBUG /opt/Universal_Robots_Client_Library/src/comm/tcp_server.cpp 249: 15 disconnected.
DEBUG /opt/Universal_Robots_Client_Library/src/control/script_sender.cpp 51: Client at FD 15 disconnected.
It seems that the example is able to recognize that the URCap client connected and did send the robot program over, but then again no movement. The disconnected log is also a bit concerning.
The disconnection is not really a problem, as the script has been sent to the robot.
As you have already stated, the machine / container running the library / the example needs to expose 50001-50003 by default (reverse interface, script sender and trajectory interface).
As you are able to create a program on the robot containing an external_control node and it keeps running, it sounds (on a first glimpse) that everything is ok. The robot seems to connect to the script_sender, gets the script code and starts executing it.
Inside the code, the script connects to the reverse interface where it should receive joint commands frequently. If it doesn't it exits.
One problem that might be misleading is that by default a new program on the TP loops forever. So if the connection to the reverse interface fails, the program will stop, start again, try to connect to the reverse interface, stop, restart, ...
You should, however, see that in the logs on the controller. Could you check whether there is anything unusual going on in the logs?
@fmauch I encounter the same issue that I am not able to play the program by remote control. The external control URCap was downloaded from https://github.com/UniversalRobots/Universal_Robots_ROS_Driver/blob/master/ur_robot_driver/resources/externalcontrol-1.0.5.urcap and I follow the steps in https://github.com/UniversalRobots/Universal_Robots_ROS_Driver/blob/master/ur_robot_driver/doc/install_urcap_e_series.md to use this URCap by adding a program to load this external control node. The script sent to the robot is download from https://github.com/UniversalRobots/Universal_Robots_Client_Library/blob/master/resources/external_control.urscript and I change SERVER_IP_REPLACE in https://github.com/UniversalRobots/Universal_Robots_Client_Library/blob/master/resources/external_control.urscript#L221-L222 to be hardcoded as my laptop's IP (192.168.1.55) to assure it does not pick up the docker's IP.
I am using the dashboard to send commands to load and run the program.
-
I use
loadto load the.urpprogram. I see the below log as the responseLoading program: /programs/external_control.urp, /programs/default.installation -
I confirm that the program is loaded completely by
get loaded programand the response is as belowLoaded program: /programs/external_control.urp -
Then I use
playto run the program. The below log is printed
DEBUG /opt/Universal_Robots_Client_Library/src/comm/tcp_server.cpp 209: Activity on self-pipe
DEBUG /opt/Universal_Robots_Client_Library/src/comm/tcp_server.cpp 233: Activity on FD 11
DEBUG /opt/Universal_Robots_Client_Library/src/control/script_sender.cpp 46: New client connected at FD 22.
DEBUG /opt/Universal_Robots_Client_Library/src/comm/tcp_server.cpp 209: Activity on self-pipe
DEBUG /opt/Universal_Robots_Client_Library/src/comm/tcp_server.cpp 233: Activity on FD 22
INFO /opt/Universal_Robots_Client_Library/src/control/script_sender.cpp 58: Robot requested program
INFO /opt/Universal_Robots_Client_Library/src/control/script_sender.cpp 71: Sent program to robot
I check that the reverse_ip is set correctly (same as my laptop's, 192.168.1.55) and the robot's IP is 192.168.1.102. The port forwarding is as expected
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
c20a7c483ad7 c8d9a50ee004 "/tmp/platform/cmake…" About a minute ago Up About a minute 0.0.0.0:9000->9000/tcp, 0.0.0.0:29999->29999/tcp, 0.0.0.0:30001-30004->30001-30004/tcp, 0.0.0.0:50001-50004->50001-50004/tcp brave_dirac
and the firewall is inactive
$ sudo ufw status verbose
Status: inactive
However, it seems like I still have problem establishing connection between the robot and my laptop
$ ss -atnp | grep 5000
LISTEN 0 4096 0.0.0.0:50001 0.0.0.0:*
LISTEN 0 4096 0.0.0.0:50002 0.0.0.0:*
LISTEN 0 4096 0.0.0.0:50003 0.0.0.0:*
LISTEN 0 4096 0.0.0.0:50004 0.0.0.0:*
Any idea/suggestion is appreciated, thanks!
@cindyysi which program did you run? Does the plain rtde_client example work correctly?
Closing this due to inactivity. Feel free to re-open / comment.