π οΈ Working with the A1
This page is the hub for hands-on work with our labβs A1: networking, onboard compute, SDK/ROS stack, and low-level control.
π§ Onboard Compute & π Networkingβ
This robot has three computing elements:
- Controller Board β hard real-time motor control (
192.168.123.10). - NVIDIA Jetson (on-board PC) β vision/ML/SLAM (
192.168.123.161). Front body ports (towards head) map to the Jetson. - Raspberry Pi (on-board PC) β utilities/bridges/logging (
192.168.123.12). Rear body ports (towards tail) map to the Pi.
Architecture diagram - source
π Network Topologyβ
- Subnet:
192.168.123.0/24(static IPs)- Controller:
192.168.123.10 - Jetson:
192.168.123.161 - Raspberry Pi:
192.168.123.12
- Controller:
- An internal switch links controller β Jetson β Pi. Connect your laptop by Ethernet to join the LAN.
π» Quick Connect from Laptopβ
- Set a static IP on your Ethernet interface in
192.168.123.0/24.sudo ip addr add 192.168.123.200/24 dev eth0
sudo ip link set eth0 up - SSH (with X forwarding):
Default password (both): 123.
# NVIDIA Jetson (front ports)
ssh -X unitree@192.168.123.161
# Raspberry Pi (rear ports)
ssh -X unitree@192.168.123.12
βοΈ Unitree Legged SDK β Joint-Level Control (UDP)β
The Unitree Legged SDK communicates directly with the controller board over UDP to issue joint-level commands.
Use the specific release here: unitree_legged_sdk v3.2.
Install and quick testβ
- Install the SDK on an external machine (for example, your laptop). Do not install or run it on the onboard PCs.
- Connect your machine to the robot network: either SSH into any onboard machine or plug an Ethernet cable into either of the two external Ethernet ports on the robot body.
- Build and run the example commands according to the repository README to verify communication.
- For a minimal check, run an example such as:
This briefly sends a command to a single leg joint.
./example torque
warning
Safety first: The robot can move suddenly and erratically when running SDK examples. Hoist the robot with a tether and keep clear of the legs.
Note: When deploying a high-frequency controller using this SDK (for example, a control policy), prefer a wired connection for stability.
ROS interfaceβ
For a ROS interface to this SDK, use unitree_ros_to_real.
π§© Useful Open-Source Projectsβ
Gazebo simulation + ROS interfaceβ
- a1_sim_py β Simulate the A1 in Gazebo with a ROS interface.
Link: https://github.com/lnotspotl/a1_sim_py/tree/a3a65384d88414ab30a155c8baa71f1106c3d436
RL training in Raisimβ
- rl_locomotion β Train control policies for quadruped locomotion using reinforcement learning in the Raisim simulator.
Link: https://github.com/antonilo/rl_locomotion?tab=readme-ov-file
Hardware deployment with SDK integrationβ
- vision_locomotion β Deploy trained policies on the real robot, with integration to the Unitree SDK.
Link: https://github.com/antonilo/vision_locomotion/tree/master
