Hello,
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
sudo ./example_walk
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 [5894]
ROS_MASTER_URI=http://localhost:11311
setting /run_id to 6d4ce3ea-0e70-11ed-ab0d-1300bbba5118
process[rosout-1]: started with pid [5904]
started core service [/rosout]
process[node_lcm_server-2]: started with pid [5907]
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
nothing happens.
What is the right way for using ROS? Or, what am I missing?
Thank you,