jeguzzi / robomaster_ros

ROS2 for DJI Robomaster EP and S1
https://jeguzzi.github.io/robomaster_ros
MIT License
49 stars 10 forks source link

Can't connect to S1 using dockerized 'humble' Ros2, in 'ap' mode #16

Open gevant opened 3 weeks ago

gevant commented 3 weeks ago

OS host: windows 10 pro, docker does not use WSL, just old good virtualization.

I' tried first to use Robomaster standard sdk, and it does work:

ep_robot = robot.Robot() ep_robot.initialize(conn_type='ap') True version = ep_robot.get_version() print("Robot version: {0}".format(version)) Robot version: 00.06.0518 SN = ep_robot.get_sn() print("Robot SN:", SN) Robot SN: 159CXXXXXXXXX ep_robot.close()

I'm trying to get dockerized ROS2 humble working In a docker compose I adjusted only: _command: ros2 launch robomaster_ros main.launch model:=s1 lib_log_level:=DEBUG conn_type:=ap_

And getting errors in a log:

... 2024-06-24 22:55:55 [INFO] [joint_state_publisher-3]: process started with pid [4746] 2024-06-24 22:55:56 [robot_state_publisher-2] Warning: link 'speaker_link' material 'Material #32.001' undefined. 2024-06-24 22:55:56 [robot_state_publisher-2] at line 84 in /ros_ws/src/urdfdom/urdf_parser/src/model.cpp 2024-06-24 22:55:56 [robot_state_publisher-2] Warning: link 'speaker_link' material 'Material #32.001' undefined. 2024-06-24 22:55:56 [robot_state_publisher-2] at line 84 in /ros_ws/src/urdfdom/urdf_parser/src/model.cpp 2024-06-24 22:56:04 [robomaster_driver-1] [INFO] [1719284164.120571500] [robomaster]: Try to connect via ap to robot with sn None 2024-06-24 22:56:04 [robomaster_driver-1] 2024-06-25 02:56:04,127 INFO robot.py:1284 Robot: try to connection robot. 2024-06-24 22:56:04 [robomaster_driver-1] 2024-06-25 02:56:04,134 INFO conn.py:350 CONN TYPE is ap 2024-06-24 22:56:04 [robomaster_driver-1] 2024-06-25 02:56:04,134 INFO conn.py:360 Robot: request_connection, ap get local ip:0.0.0.0 2024-06-24 22:56:04 [robomaster_driver-1] 2024-06-25 02:56:04,136 INFO conn.py:393 SdkConnection: request_connection, local addr ('0.0.0.0', 10406), remote_addr ('192.168.2.1', 20020), proxy addr ('192.168.2.1', 30030) 2024-06-24 22:56:04 [robomaster_driver-1] 2024-06-25 02:56:04,140 DEBUG protocol.py:286 Msg: pack, len:23, seq_id:10001, buf:b'55170438c9091127403fd400c9000000000000a628faf3' 2024-06-24 22:56:04 [robomaster_driver-1] 2024-06-25 02:56:04,204 DEBUG conn.py:325 SdkConnection, data:b'5513040309c01127803fd40002c0a8021b4bb5'. 2024-06-24 22:56:04 [robomaster_driver-1] 2024-06-25 02:56:04,205 INFO conn.py:337 SdkConnection: got config ip:192.168.2.27 2024-06-24 22:56:04 [robomaster_driver-1] 2024-06-25 02:56:04,206 INFO robot.py:1287 Robot: initialized with Connection, host:('192.168.2.27', 10406), target:('192.168.2.1', 20020) 2024-06-24 22:56:04 [robomaster_driver-1] 2024-06-25 02:56:04,209 WARNING conn.py:168 udpConnection: create, host_addr:('192.168.2.27', 10406), exception:[Errno 99] Cannot assign requested address 2024-06-24 22:56:04 [robomaster_driver-1] 2024-06-25 02:56:04,210 ERROR robot.py:1300 Robot: Connection Create Failed. 2024-06-24 22:56:04 [robomaster_driver-1] Traceback (most recent call last): 2024-06-24 22:56:04 [robomaster_driver-1] File "/opt/ros/ws/lib/robomaster_ros/robomaster_driver", line 33, in 2024-06-24 22:56:04 [robomaster_driver-1] sys.exit(load_entry_point('robomaster-ros==0.0.0', 'console_scripts', 'robomaster_driver')()) 2024-06-24 22:56:04 [robomaster_driver-1] File "/opt/ros/ws/lib/python3.10/site-packages/robomaster_ros/robomaster_driver.py", line 40, in main 2024-06-24 22:56:04 [robomaster_driver-1] node = RoboMasterROS(executor=executor) 2024-06-24 22:56:04 [robomaster_driver-1] File "/opt/ros/ws/lib/python3.10/site-packages/robomaster_ros/client.py", line 121, in init 2024-06-24 22:56:04 [robomaster_driver-1] self.ep_robot.initialize(conn_type=conn_type, sn=sn) 2024-06-24 22:56:04 [robomaster_driver-1] File "/usr/local/lib/python3.10/dist-packages/robomaster/robot.py", line 1301, in initialize 2024-06-24 22:56:04 [robomaster_driver-1] raise e 2024-06-24 22:56:04 [robomaster_driver-1] File "/usr/local/lib/python3.10/dist-packages/robomaster/robot.py", line 1298, in initialize 2024-06-24 22:56:04 [robomaster_driver-1] self._client.start() 2024-06-24 22:56:04 [robomaster_driver-1] File "/usr/local/lib/python3.10/dist-packages/robomaster/client.py", line 129, in start 2024-06-24 22:56:04 [robomaster_driver-1] raise e 2024-06-24 22:56:04 [robomaster_driver-1] File "/usr/local/lib/python3.10/dist-packages/robomaster/client.py", line 123, in start 2024-06-24 22:56:04 [robomaster_driver-1] result = self.initialize() 2024-06-24 22:56:04 [robomaster_driver-1] File "/usr/local/lib/python3.10/dist-packages/robomaster/client.py", line 114, in initialize 2024-06-24 22:56:04 [robomaster_driver-1] raise e 2024-06-24 22:56:04 [robomaster_driver-1] File "/usr/local/lib/python3.10/dist-packages/robomaster/client.py", line 112, in initialize 2024-06-24 22:56:04 [robomaster_driver-1] self._conn.create() 2024-06-24 22:56:04 [robomaster_driver-1] File "/usr/local/lib/python3.10/dist-packages/robomaster/conn.py", line 279, in create 2024-06-24 22:56:04 [robomaster_driver-1] super().create() 2024-06-24 22:56:04 [robomaster_driver-1] File "/usr/local/lib/python3.10/dist-packages/robomaster/conn.py", line 163, in create 2024-06-24 22:56:04 [robomaster_driver-1] self._sock.bind(self._host_addr) 2024-06-24 22:56:04 [robomaster_driver-1] OSError: [Errno 99] Cannot assign requested address 2024-06-24 22:56:04 [robomaster_driver-1] Exception ignored in: <function Robot.del at 0x40002ebe1120> 2024-06-24 22:56:04 [robomaster_driver-1] Traceback (most recent call last): 2024-06-24 22:56:04 [robomaster_driver-1] File "/usr/local/lib/python3.10/dist-packages/robomaster/robot.py", line 1109, in del 2024-06-24 22:56:04 [robomaster_driver-1] self.close() 2024-06-24 22:56:04 [robomaster_driver-1] File "/usr/local/lib/python3.10/dist-packages/robomaster/robot.py", line 1329, in close 2024-06-24 22:56:04 [robomaster_driver-1] self._client.stop() 2024-06-24 22:56:04 [robomaster_driver-1] File "/usr/local/lib/python3.10/dist-packages/robomaster/client.py", line 132, in stop 2024-06-24 22:56:04 [robomaster_driver-1] if self._thread.is_alive(): 2024-06-24 22:56:04 [robomaster_driver-1] AttributeError: 'NoneType' object has no attribute 'is_alive' 2024-06-24 22:56:04 [robomaster_driver-1] Exception ignored in: <function Client.del at 0x400002a9a3b0> 2024-06-24 22:56:04 [robomaster_driver-1] Traceback (most recent call last): 2024-06-24 22:56:04 [robomaster_driver-1] File "/usr/local/lib/python3.10/dist-packages/robomaster/client.py", line 88, in del 2024-06-24 22:56:04 [robomaster_driver-1] self.stop() 2024-06-24 22:56:04 [robomaster_driver-1] File "/usr/local/lib/python3.10/dist-packages/robomaster/client.py", line 132, in stop 2024-06-24 22:56:04 [robomaster_driver-1] if self._thread.is_alive(): 2024-06-24 22:56:04 [robomaster_driver-1] AttributeError: 'NoneType' object has no attribute 'is_alive' 2024-06-24 22:56:04 [ERROR] [robomaster_driver-1]: process has died [pid 4738, exit code 1, cmd '/opt/ros/ws/lib/robomaster_ros/robomaster_driver --ros-args --log-level info --ros-args -r node:=robomaster -r ns:=/ --params-file /tmp/launch_params_uz4gqq30 --params-file /tmp/launch_params_5aqhydyi --params-file /tmp/launch_params_h0ebskhu --params-file /tmp/launch_params9r7w_cv --params-file /tmp/launch_params_z3_7vhkj --params-file /tmp/launch_params_43xn_j77 --params-file /tmp/launch_params_4ygk7ha3 --params-file /tmp/launch_params_atbvjtn7 --params-file /tmp/launch_params_hbo848ve --params-file /tmp/launch_params_2nes5ujo --params-file /tmp/launch_params_m488_2il --params-file /tmp/launch_params_jpt9mmul --params-file /tmp/launch_params_0cjipdio --params-file /tmp/launch_params_yt56tnkv --params-file /tmp/launch_params_77qc2jfa --params-file /tmp/launch_params_ik4sfq77 --params-file /tmp/launch_params_5pyxg3nm --params-file /tmp/launch_params_f4zznng1 --params-file /tmp/launch_params_0u65zyrv --params-file /tmp/launch_params_mwlm8sv3 --params-file /tmp/launch_params_tg0fvcj0 --params-file /tmp/launch_params_urr006tr']. 2024-06-24 23:09:24 [INFO] [launch]: All log files can be found below /root/.ros/log/2024-06-25-03-09-24-415898-docker-desktop-5431 2024-06-24 23:09:24 [INFO] [launch]: Default logging verbosity is set to INFO 2024-06-24 23:09:33 [INFO] [robomaster_driver-1]: process started with pid [5776] 2024-06-24 23:09:33 [INFO] [robot_state_publisher-2]: process started with pid [5780] 2024-06-24 23:09:33 [INFO] [joint_state_publisher-3]: process started with pid [5784] 2024-06-24 23:09:34 [robot_state_publisher-2] Warning: link 'speaker_link' material 'Material #32.001' undefined. 2024-06-24 23:09:34 [robot_state_publisher-2] at line 84 in /ros_ws/src/urdfdom/urdf_parser/src/model.cpp 2024-06-24 23:09:34 [robot_state_publisher-2] Warning: link 'speaker_link' material 'Material #32.001' undefined. 2024-06-24 23:09:34 [robot_state_publisher-2] at line 84 in /ros_ws/src/urdfdom/urdf_parser/src/model.cpp 2024-06-24 23:09:40 [robomaster_driver-1] [INFO] [1719284980.820218200] [robomaster]: Try to connect via ap to robot with sn None 2024-06-24 23:09:40 [robomaster_driver-1] 2024-06-25 03:09:40,827 INFO robot.py:1284 Robot: try to connection robot. 2024-06-24 23:09:40 [robomaster_driver-1] 2024-06-25 03:09:40,833 INFO conn.py:350 CONN TYPE is ap 2024-06-24 23:09:40 [robomaster_driver-1] 2024-06-25 03:09:40,834 INFO conn.py:360 Robot: request_connection, ap get local ip:0.0.0.0 2024-06-24 23:09:40 [robomaster_driver-1] 2024-06-25 03:09:40,836 INFO conn.py:393 SdkConnection: request_connection, local addr ('0.0.0.0', 10321), remote_addr ('192.168.2.1', 20020), proxy addr ('192.168.2.1', 30030) 2024-06-24 23:09:40 [robomaster_driver-1] 2024-06-25 03:09:40,840 DEBUG protocol.py:286 Msg: pack, len:23, seq_id:10001, buf:b'55170438c9091127403fd400c90000000000005128fac2' 2024-06-24 23:09:40 [robomaster_driver-1] 2024-06-25 03:09:40,901 DEBUG conn.py:325 SdkConnection, data:b'5513040309c01127803fd40002c0a8021b4bb5'. 2024-06-24 23:09:40 [robomaster_driver-1] 2024-06-25 03:09:40,902 INFO conn.py:337 SdkConnection: got config ip:192.168.2.27 2024-06-24 23:09:40 [robomaster_driver-1] 2024-06-25 03:09:40,903 INFO robot.py:1287 Robot: initialized with Connection, host:('192.168.2.27', 10321), target:('192.168.2.1', 20020) 2024-06-24 23:09:40 [robomaster_driver-1] 2024-06-25 03:09:40,907 WARNING conn.py:168 udpConnection: create, host_addr:('192.168.2.27', 10321), exception:[Errno 99] Cannot assign requested address 2024-06-24 23:09:40 [robomaster_driver-1] 2024-06-25 03:09:40,908 ERROR robot.py:1300 Robot: Connection Create Failed. 2024-06-24 23:09:40 [robomaster_driver-1] Traceback (most recent call last): 2024-06-24 23:09:40 [robomaster_driver-1] File "/opt/ros/ws/lib/robomaster_ros/robomaster_driver", line 33, in 2024-06-24 23:09:40 [robomaster_driver-1] sys.exit(load_entry_point('robomaster-ros==0.0.0', 'console_scripts', 'robomaster_driver')()) 2024-06-24 23:09:40 [robomaster_driver-1] File "/opt/ros/ws/lib/python3.10/site-packages/robomaster_ros/robomaster_driver.py", line 40, in main 2024-06-24 23:09:40 [robomaster_driver-1] node = RoboMasterROS(executor=executor) 2024-06-24 23:09:40 [robomaster_driver-1] File "/opt/ros/ws/lib/python3.10/site-packages/robomaster_ros/client.py", line 121, in init 2024-06-24 23:09:40 [robomaster_driver-1] self.ep_robot.initialize(conn_type=conn_type, sn=sn) 2024-06-24 23:09:40 [robomaster_driver-1] File "/usr/local/lib/python3.10/dist-packages/robomaster/robot.py", line 1301, in initialize 2024-06-24 23:09:40 [robomaster_driver-1] raise e 2024-06-24 23:09:40 [robomaster_driver-1] File "/usr/local/lib/python3.10/dist-packages/robomaster/robot.py", line 1298, in initialize 2024-06-24 23:09:40 [robomaster_driver-1] self._client.start() 2024-06-24 23:09:40 [robomaster_driver-1] File "/usr/local/lib/python3.10/dist-packages/robomaster/client.py", line 129, in start 2024-06-24 23:09:40 [robomaster_driver-1] raise e 2024-06-24 23:09:40 [robomaster_driver-1] File "/usr/local/lib/python3.10/dist-packages/robomaster/client.py", line 123, in start 2024-06-24 23:09:40 [robomaster_driver-1] result = self.initialize() 2024-06-24 23:09:40 [robomaster_driver-1] File "/usr/local/lib/python3.10/dist-packages/robomaster/client.py", line 114, in initialize 2024-06-24 23:09:40 [robomaster_driver-1] raise e 2024-06-24 23:09:40 [robomaster_driver-1] File "/usr/local/lib/python3.10/dist-packages/robomaster/client.py", line 112, in initialize 2024-06-24 23:09:40 [robomaster_driver-1] self._conn.create() 2024-06-24 23:09:40 [robomaster_driver-1] File "/usr/local/lib/python3.10/dist-packages/robomaster/conn.py", line 279, in create 2024-06-24 23:09:40 [robomaster_driver-1] super().create() 2024-06-24 23:09:40 [robomaster_driver-1] File "/usr/local/lib/python3.10/dist-packages/robomaster/conn.py", line 163, in create 2024-06-24 23:09:40 [robomaster_driver-1] self._sock.bind(self._host_addr) 2024-06-24 23:09:40 [robomaster_driver-1] OSError: [Errno 99] Cannot assign requested address 2024-06-24 23:09:41 [robomaster_driver-1] Exception ignored in: <function Robot.del at 0x40002ebe1120> 2024-06-24 23:09:41 [robomaster_driver-1] Traceback (most recent call last): 2024-06-24 23:09:41 [robomaster_driver-1] File "/usr/local/lib/python3.10/dist-packages/robomaster/robot.py", line 1109, in del 2024-06-24 23:09:41 [robomaster_driver-1] self.close() 2024-06-24 23:09:41 [robomaster_driver-1] File "/usr/local/lib/python3.10/dist-packages/robomaster/robot.py", line 1329, in close 2024-06-24 23:09:41 [robomaster_driver-1] self._client.stop() 2024-06-24 23:09:41 [robomaster_driver-1] File "/usr/local/lib/python3.10/dist-packages/robomaster/client.py", line 132, in stop 2024-06-24 23:09:41 [robomaster_driver-1] if self._thread.is_alive(): 2024-06-24 23:09:41 [robomaster_driver-1] AttributeError: 'NoneType' object has no attribute 'is_alive' 2024-06-24 23:09:41 [robomaster_driver-1] Exception ignored in: <function Client.del at 0x400002a9a3b0> 2024-06-24 23:09:41 [robomaster_driver-1] Traceback (most recent call last): 2024-06-24 23:09:41 [robomaster_driver-1] File "/usr/local/lib/python3.10/dist-packages/robomaster/client.py", line 88, in del 2024-06-24 23:09:41 [robomaster_driver-1] self.stop() 2024-06-24 23:09:41 [robomaster_driver-1] File "/usr/local/lib/python3.10/dist-packages/robomaster/client.py", line 132, in stop 2024-06-24 23:09:41 [robomaster_driver-1] if self._thread.is_alive(): 2024-06-24 23:09:41 [robomaster_driver-1] AttributeError: 'NoneType' object has no attribute 'is_alive' 2024-06-24 23:09:41 [ERROR] [robomaster_driver-1]: process has died [pid 5776, exit code 1, cmd '/opt/ros/ws/lib/robomaster_ros/robomaster_driver --ros-args --log-level info --ros-args -r node:=robomaster -r __ns:=/ --params-file /tmp/launch_params__kdlb3 --params-file /tmp/launch_params_q3zlf4fm --params-file /tmp/launch_params_pdub5prf --params-file /tmp/launch_params_92rud1a7 --params-file /tmp/launch_params_6j16wchu --params-file /tmp/launch_params_5746arhq --params-file /tmp/launch_params_oes_j5s9 --params-file /tmp/launch_params_mz44uj1k --params-file /tmp/launch_params_fa_m1i0k --params-file /tmp/launch_params_awujzbge --params-file /tmp/launch_params_ooaydk --params-file /tmp/launch_params_3ppk6dvo --params-file /tmp/launch_params_6snovqgr --params-file /tmp/launch_params_zq0l8wc6 --params-file /tmp/launch_params_4usgrgjn --params-file /tmp/launch_params_jlo4u8qo --params-file /tmp/launch_params_37d_ej9v --params-file /tmp/launch_params_511flnak --params-file /tmp/launch_params_wupqfz5z --params-file /tmp/launch_params_nr48uink --params-file /tmp/launch_params_iqcgih8c --params-file /tmp/launch_params_jochevg6']. 2024-06-24 23:25:01 [INFO] [launch]: All log files can be found below /root/.ros/log/2024-06-25-03-25-01-268475-docker-desktop-6059 2024-06-24 23:25:01 [INFO] [launch]: Default logging verbosity is set to INFO