I am trying to control Unitree A1 using ROS. When I connect to the robot using its WiFi (Unitree), I can use the unitree_legged_sdk package. For instance, I can run
and the robot moves. However, I want to control the robot using ROS, and there is no detailed tutorial for this purpose.
First of all, I connected to the robot using both WiFi and Ethernet. I can ping both of the connections (I can already verify that WiFi works, because for sudo ./example_walk I use it):
ping 192.168.123.201 for ethernet
ping 192.168.123.105 for WiFi
Then, I try to use ROS for controlling the robot. I first launch this file:
roslaunch unitree_legged_real real.launch ctrl_level:=highlevel
When I do that, no error is given, and I get the following output:
started roslaunch server http://staycoolish-PC:33983/ SUMMARY ======== PARAMETERS * /control_level: highlevel * /firmwork: 3_2 * /robot_name: a1 * /rosdistro: noetic * /rosversion: 1.15.14 NODES / 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 6d4ce3ea-0e70-11ed-ab0d-1300bbba5118 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
However, something strange happens, no node is created. When I check with rosnode list, the only node is /rosout. Therefore, when I run the code
rosrun unitree_legged_real example_walk
What is the right way for using ROS? Or, what am I missing?