Getting Started with ROS 2 on Unitree G1: A Canadian Developer Guide
Step-by-step guide to setting up ROS 2 on the Unitree G1 EDU. From unboxing to your first autonomous navigation programme — with Canadian-specific tips on SDK access and community.
Getting Started with ROS 2 on Your Unitree G1
The Unitree G1 EDU is the most popular humanoid robot platform for ROS 2 development in 2026 — and for good reason. At $27,000 USD (~$37,300 CAD), it packs an NVIDIA Jetson Orin with 275 TOPS of AI compute, 43 degrees of freedom, 3D LiDAR, depth cameras, and full ROS 2 Humble support. It's the platform Canadian universities, research labs, and indie developers are choosing.
This guide walks you through setup, first programmes, and tips specific to Canadian developers.
Prerequisites
Before you start, ensure you have:
Step 1: Unboxing and First Boot
The G1 EDU ships in a reinforced flight case with:
1. Install battery pack (slides into the rear chassis — you'll hear a click)
2. Place G1 on a flat, open surface with 2m clearance in all directions
3. Connect Ethernet from G1's port (rear panel) to your development machine
4. Hold power button (right hip) for 3 seconds — LED turns blue
5. Wait 90 seconds for full system boot (LED turns green)
Network setup: The G1 defaults to IP 192.168.12.1. Configure your development machine's Ethernet interface to the 192.168.12.0/24 subnet (e.g., 192.168.12.100).Step 2: SSH Access and System Overview
SSH into the Jetson Orin:
```
ssh unitree@192.168.12.1
# Default password: 123 (change this immediately!)
```
The Jetson Orin runs Ubuntu 22.04 with ROS 2 Humble pre-installed. Key directories:
Step 3: Verify ROS 2 Setup
Source the workspace and check topics:
```
source /opt/ros/humble/setup.bash
source ~/unitree_ws/install/setup.bash
ros2 topic list
```
You should see topics including:
Step 4: Your First Programme — Basic Locomotion
Create a simple Python node that makes the G1 walk forward:
```
# ~/unitree_ws/src/my_first_pkg/my_first_pkg/walk_forward.py
import rclpy
from rclpy.node import Node
from geometry_msgs.msg import Twist
class WalkForward(Node):
def __init__(self):
super().__init__('walk_forward')
self.publisher = self.create_publisher(Twist, '/cmd_vel', 10)
self.timer = self.create_timer(0.1, self.timer_callback)
self.get_logger().info('Walk Forward node started')
def timer_callback(self):
msg = Twist()
msg.linear.x = 0.3 # 0.3 m/s forward
msg.angular.z = 0.0 # No rotation
self.publisher.publish(msg)
def main():
rclpy.init()
node = WalkForward()
try:
rclpy.spin(node)
except KeyboardInterrupt:
pass
# Stop the robot
stop_msg = Twist()
node.publisher.publish(stop_msg)
node.destroy_node()
rclpy.shutdown()
```
Safety tip: Always test locomotion in an open area with a second person nearby to catch the robot if needed. Start with very low speeds (0.1 m/s) and increase gradually.Step 5: Camera and Perception
The G1 EDU includes depth cameras and 3D LiDAR. Access them through ROS 2:
```
# View depth camera in RViz2
ros2 launch unitree_camera camera.launch.py
# View LiDAR point cloud
ros2 launch unitree_lidar lidar.launch.py
```
For SLAM (Simultaneous Localisation and Mapping), the community recommends RTAB-Map or cartographer_ros. Both work well with the G1's sensor suite.
Canadian Developer Community
Canadian G1 developers have a growing community:
Canadian-Specific Tips
1. Cold weather: If testing indoors during winter, let the G1 acclimate for 30 minutes before powering on if it's been in a cold vehicle
2. Power: Canadian outlets are 120V/60Hz — the G1 charger is universal (100–240V), so no adapter needed
3. Academic licensing: Unitree offers educational discounts for Canadian universities — contact their academic programme directly
4. Import: If you ordered from Unitree China, the shipment arrives in a flight case that's technically "unaccompanied baggage" for customs — classify as HS 8479.50
Next Steps
Once you're comfortable with basic locomotion and perception:
1. Manipulation: Use the `unitree_hand` package to control the Dex3-1 hands
2. SLAM: Set up autonomous navigation with RTAB-Map
3. AI Integration: Connect to the UnifoLM model for voice/gesture commands
4. Sim-to-Real: Use NVIDIA Isaac Sim for training in simulation, then deploy on real hardware
Need help with your G1 setup? Contact RoboNorth for developer support, or browse our Unitree G1 product page for full specifications and pricing.
Looking for a humanoid robot?
Browse our catalog or get personalized guidance from our team.