Hello Mybotshop team,
I’m trying to get the A1 work with ROS. I’ve successfully installed the unitree_ros, unitree_ros_to_real, and the mbs_unitree* packages on a Jetson AGX board that sits on top of the robot, connected through the ethernet cable. I’m running unitree_legged_sdk 3.2.
On the bot, there are total of three machines I can ssh into:
- 192.168.123.12: the upboard
- 192.168.123.161: “slam board”, the one the d435 is connected to
- 192.168.123.162: extra jetson AGX board, also known as 192.168.178.36 in the local wifi network
I am running ROS on the 3rd board, with the address 192.168.123.162.
So far, I’ve been able to do the following:
- Turn on the robot. It stands up and stays still.
- I don’t touch anything on the joystick controller that came with the robot. I think this means that the robot is in “normal mode”
- I ssh into the AGX board (machine #3) and run the following commands:
roslaunch mbs_unitree_ros high_level_mode.launch
- In another terminal, I run the teleop_keyboard node, and can control the movement of the robot.
The issue with the above is that the robot seems to drift quite a bit. I think this has to do with it being in Normal Mode. Therefore I tried to run the steps 3 and 4 after putting the robot into “sport mode”, by pressing
L2+B -> L1+start -> start, like written on the joypad controller.
The problem is, when the robot is in sport mode, controlling the robot via the
/cmd_vel topic through the mbs wrapper doesn’t seem to work.
The full stdout is the following:
started roslaunch server http://192.168.178.36:35179/ SUMMARY ======== PARAMETERS * /control_level: highlevel * /firmwork: 3_2 * /robot_name: a1 * /rosdistro: melodic * /rosversion: 1.14.11 NODES / high_level_driver (mbs_unitree_ros/high_level_mode) node_lcm_server (unitree_legged_real/lcm_server_3_2) auto-starting new master process[master]: started with pid  ROS_MASTER_URI=http://localhost:11311 setting /run_id to 70b25c32-2a77-11ec-9a59-48b02d3dc095 process[rosout-1]: started with pid  started core service [/rosout] process[node_lcm_server-2]: started with pid  UDP Initialized. Port: 8080 LCM Initialized. Subscribe channel: LCM_High_Cmd, Publish channel: LCM_High_State [Loop Start] named: UDP_Send, period: 2(ms), run at cpu: 3 [Loop Start] named: UDP_Recv, period: 2(ms), run at cpu: 3 [Loop Start] named: LCM_Recv, period: 2(ms), cpu unspecified [Loop Start] named: control_loop, period: 2(ms), cpu unspecified process[high_level_driver-3]: started with pid  Error! LCM Time out. [node_lcm_server-2] process has died [pid 10061, exit code 255, cmd /home/hooram/a1_ws/devel/lib/unitree_legged_real/l cm_server_3_2 a1 highlevel __name:=node_lcm_server __log:=/root/.ros/log/70b25c32-2a77-11ec-9a59-48b02d3dc095/node_lcm _server-2.log]. log file: /root/.ros/log/70b25c32-2a77-11ec-9a59-48b02d3dc095/node_lcm_server-2*.log ^[[A ^C[high_level_driver-3] killing on exit *** buffer overflow detected ***: /home/hooram/a1_ws/devel/lib/mbs_unitree_ros/high_level_mode terminated
I would appreciate any pointers in solving this issue.