Cannot use ros to real for Go1 robot

Hello MBS team,

I am trying to control my Go1 robot using the repository qre_go1 but the robot doesn’t respond. I tried both the Quick-Start Teleop and Autonomous Navigation commands listed on quick_start but neither is working on the real robot.

From the repository the install files and basic setup don’t work out of the box. I managed to build the packages for both melodic and noetic versions by making some changes manually and both systems fail to communicate with the robot.

Also, I have tried using the latest v3.8.0 & v3.8.6 from Unitree’s repository unitree_legged_sdk/v3.8.0 and that doesn’t work with my Go1 robot. Instead, I was able to run basic examples from a forked repository made available online by Jonas Grube JonasFovea/unitree_legged_sdk . Using this repository I was able to confirm that the robot can be controlled from my PC, but to go to the next step for navigation I need to communicate with the robot and control its movement using path planning algorithms.
Can you point out what might be going wrong?

I also observed that the documentation for simulation is still missing (Simulation — GO1 Tutorials 1.0.0 documentation), would this be available in future?

Best regards
Anuj

Dear @human-bot,

I am trying to control my Go1 robot using the repository qre_go1 but the robot doesn’t respond. I tried both the Quick-Start Teleop and Autonomous Navigation commands listed on quick_start but neither is working on the real robot.

Have you setup a static connection and can you ping the go1. If not please follow networks which has just been updated.

I also observed that the documentation for simulation is still missing (Simulation — GO1 Tutorials 1.0.0 documentation), would this be available in future?

yes

Dear Sohail,

Have you setup a static connection and can you ping the go1. If not please follow networks which has just been updated.

Yes, I have setup a static connection and can ping go1.

Can you ssh into it? Is it via LAN or WiFi?

Yes, I can ssh into it. Connection works for both LAN and WiFi.
As mentioned above, I am able to compile examples from JonasFovea/unitree_legged_sdk/tree/fix, and execute ./example_walk with both LAN and WiFi. The robot responds and moves as expected. I am not seeing this same behavior from either Unitree’s or MBS’s repositories when I try to use the unitree_ros_to_real package.

please post the errors.

I didn’t observe any errors in the terminal. The main issue is Go1 doesn’t respond. I’m attaching a screenshot of the terminal:

Terminal Output:

go1_navigation@go1:~/catkin_qre_go1$ sudo su
[sudo] password for go1_navigation: 
root@go1:/home/go1_navigation/catkin_qre_go1# source devel/setup.bash 
root@go1:/home/go1_navigation/catkin_qre_go1# roslaunch go1_bringup bringup.launch 
... logging to /root/.ros/log/e0d69e22-cd6b-11ed-82ad-d1535a73d40f/roslaunch-go1-42027.log
Checking log directory for disk usage. This may take a while.
Press Ctrl-C to interrupt
Done checking log file disk usage. Usage is <1GB.

xacro: in-order processing became default in ROS Melodic. You can drop the option.
started roslaunch server http://go1:43575/

SUMMARY
========

PARAMETERS
 * /go1_controller/local_port: 8090
 * /go1_controller/target_ip: 192.168.123.161
 * /go1_controller/target_port: 8082
 * /joy_teleop/joy_node/autorepeat_rate: 20
 * /joy_teleop/joy_node/deadzone: 0.1
 * /joy_teleop/joy_node/dev: /dev/input/js0
 * /joy_teleop/teleop_twist_joy/axis_angular/yaw: 0
 * /joy_teleop/teleop_twist_joy/axis_linear/x: 1
 * /joy_teleop/teleop_twist_joy/axis_linear/y: 3
 * /joy_teleop/teleop_twist_joy/enable_button: 4
 * /joy_teleop/teleop_twist_joy/enable_turbo_button: 5
 * /joy_teleop/teleop_twist_joy/scale_angular/yaw: 1.85
 * /joy_teleop/teleop_twist_joy/scale_angular_turbo/x: 3.7
 * /joy_teleop/teleop_twist_joy/scale_angular_turbo/y: 3.7
 * /joy_teleop/teleop_twist_joy/scale_angular_turbo/yaw: 3.7
 * /joy_teleop/teleop_twist_joy/scale_linear/x: 1.85
 * /joy_teleop/teleop_twist_joy/scale_linear/y: 1.85
 * /joy_teleop/teleop_twist_joy/scale_linear_turbo/x: 3.7
 * /joy_teleop/teleop_twist_joy/scale_linear_turbo/y: 3.7
 * /local_ekf/ekf_localization_with_odom/base_link_frame: base
 * /local_ekf/ekf_localization_with_odom/frequency: 50
 * /local_ekf/ekf_localization_with_odom/odom0: /go1_controller/odom
 * /local_ekf/ekf_localization_with_odom/odom0_config: [True, True, Fals...
 * /local_ekf/ekf_localization_with_odom/odom0_differential: False
 * /local_ekf/ekf_localization_with_odom/odom0_queue_size: 10
 * /local_ekf/ekf_localization_with_odom/odom_frame: odom
 * /local_ekf/ekf_localization_with_odom/predict_to_current_time: True
 * /local_ekf/ekf_localization_with_odom/publish_tf: True
 * /local_ekf/ekf_localization_with_odom/two_d_mode: True
 * /local_ekf/ekf_localization_with_odom/world_frame: odom
 * /robot_description: <?xml version="1....
 * /robot_state_publisher/publish_frequency: 1000.0
 * /rosdistro: noetic
 * /rosversion: 1.16.0
 * /twist_mux/locks: [{'name': 'e_stop...
 * /twist_mux/topics: [{'name': 'joy', ...

NODES
  /
    go1_controller (go1_base/base_node)
    robot_state_publisher (robot_state_publisher/robot_state_publisher)
    twist_mux (twist_mux/twist_mux)
  /joy_teleop/
    joy_node (joy/joy_node)
    teleop_twist_joy (teleop_twist_joy/teleop_node)
  /local_ekf/
    ekf_localization_with_odom (robot_localization/ekf_localization_node)

auto-starting new master
process[master]: started with pid [42037]
ROS_MASTER_URI=http://localhost:11311

setting /run_id to e0d69e22-cd6b-11ed-82ad-d1535a73d40f
process[rosout-1]: started with pid [42048]
started core service [/rosout]
process[go1_controller-2]: started with pid [42055]
process[robot_state_publisher-3]: started with pid [42056]
process[joy_teleop/joy_node-4]: started with pid [42057]
process[joy_teleop/teleop_twist_joy-5]: started with pid [42059]
process[twist_mux-6]: started with pid [42064]
process[local_ekf/ekf_localization_with_odom-7]: started with pid [42076]
Working mode is set to: high_level
Initializing UDP with ip: 192.168.123.161, local port: 8090, target port: 8082
UDP Initialized. socketfd: 10   Port: 8090
[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: control_loop period: 2(ms)
cpu unspecified

1 Like

And when you run this the GO1 is standing up and is in walk mode?

I think so. I just switch on the Go1 robot, then it stands up automatically and then I execute commands in the terminal. I have tried with both LAN and WiFi.

Please press start when it stands up and then test.

Tested after pressing start, still the same. No response from Go1 to teleop commands

Please connect to the Wifi and provide the legged sports version as well as the firmware version. It might be a mismatch. The IP to check on browser is 192.168.12.1 with WiFi.

From Go1 Phone App:

From browser:

1 Like

Dear @human-bot,

After several tests and discussion with the manufacturers, You should update the GO1 Firmware. The procedure is simple.

  1. Connect to GO1 WiFi from your PC.

  2. Download this GO1 firmware.

  3. Navigate to the GO1 firmware update site.

  4. Select and upload the firmware that you downloaded.

  5. Press the play button and wait for the GO1 to update.

  6. Power cycle the robot and test.

Hopefully, that will solve your issue!

Cannot update either on WiFi or LAN

1 Like

Can you please send the Joystick ID of your GO1?

There are two IDs on the joystick:

  • GO220562A
  • 30UC1Q-62