Unitree G1 Support
G1 Support & Developer Center
Everything you need to unbox, operate, maintain, and build on the Unitree G1 humanoid robot — from first power-on to secondary development with unitree_sdk2 and ROS 2.
Unit Reference
Specs vary by configuration (G1, G1 EDU, hand options). Confirm your unit's exact configuration and serial label before referencing procedures below.
Safety Guide
Read this section in full before powering on the robot for the first time. The G1 is a dynamic, self-balancing machine with significant mass and joint torque.
Never place hands, cables, or clothing near joint assemblies while the robot is powered. Joints can move without warning during balance corrections, even when the robot appears idle.
Operating environment
- Clear a safe zone. Maintain at least 2–3 m of clearance in all directions during operation, testing, and development. Keep children and pets outside the zone at all times.
- Use flat, non-slip flooring. Avoid loose rugs, cables on the floor, wet surfaces, and stairs until you are fully familiar with the robot's locomotion behavior.
- Check temperature and moisture. Operate indoors within the temperature range stated on your unit's spec sheet. The G1 is not waterproof (IP rating varies by configuration) — keep it away from liquids.
- Have the E-stop ready. Keep the remote/emergency stop within reach whenever the robot is standing. Know the soft-stop and hard-stop procedures before your first session.
Battery and charging safety
- Use original equipment only. Charge only with the supplied charger and battery packs. Third-party chargers void the warranty and pose a fire risk.
- Never charge unattended overnight or near flammable materials. Charge on a hard, non-flammable surface.
- Inspect before every charge. Do not charge a battery that is swollen, damaged, or has been dropped. Contact support for replacement.
- Storage. For storage over 2 weeks, keep batteries at roughly 50–60% charge in a cool, dry place.
Lithium battery packs are classified as dangerous goods for air freight. If you ship the robot internationally, batteries may require separate documentation and certified packaging. Contact support before arranging transport.
Quick Start
From crate to first steps in five stages. Allow 45–60 minutes for first-time setup, including a full initial charge check.
- Unbox and inspect. Remove the robot from its transport crate with two people. Check the frame, joint covers, and hands for shipping damage. Photograph any damage before proceeding and report it within 48 hours.
- Install and charge the battery. Seat the battery pack until it clicks, then connect the charger. Wait until the indicator shows a full charge before the first power-on.
- Power on in a supported posture. Place the robot in its designated startup posture (seated/crouched per the printed quick-start card), then press and hold the power button until the status LED cycles. Do not touch the robot during its self-check and stand-up sequence.
- Pair the remote and app. Power on the remote controller, then connect the companion app to the robot's Wi-Fi hotspot or your local network. Confirm firmware is up to date before first operation.
- Run first motions in a clear area. Begin with in-place balance and slow walking in the safe zone. Keep a hand on the E-stop. Only progress to faster gaits and whole-body motions once basic control is familiar.
Record your robot's serial number and firmware version now — both are required for support tickets, warranty claims, and SDK license activation.
Operation Guide
Day-to-day operation: control modes, status indicators, and recovery procedures.
Control modes
| Mode | Input | Typical use |
|---|---|---|
| Remote control | Handheld controller | Manual driving, demos, positioning |
| App control | Companion mobile app | Status monitoring, preset motions, firmware updates |
| Autonomous | Onboard perception | Navigation and task routines (where enabled) |
| Developer | SDK / API over network | Custom applications, research, integration |
Status LED reference
| Indicator | Meaning | Action |
|---|---|---|
| Steady green | Ready / normal operation | None |
| Pulsing blue | Pairing or update in progress | Do not power off |
| Flashing amber | Low battery or thermal warning | Return to base, allow cooldown or charge |
| Flashing red | Fault / protective stop | Clear the area, check the app fault log |
LED patterns can vary by firmware version — treat the companion app's fault log as the source of truth.
If the robot falls
- Trigger a soft stop from the remote before approaching. Confirm the joints have de-energized.
- Inspect visually for cracked covers, loose cables, or debris in joints before restarting.
- Use the recovery routine. Where supported by firmware, run the get-up routine from the remote rather than lifting the robot manually. If manual lifting is required, use two people and lift by the frame points shown in the manual — never by the arms or head.
Maintenance & Care
A small amount of routine care significantly extends service life and protects your warranty.
| Interval | Task |
|---|---|
| Every session | Visual check of joints, covers, hands, and feet; confirm no error codes in the app log. |
| Weekly | Wipe exterior with a dry or slightly damp cloth (never solvents); check foot soles for wear and embedded debris. |
| Monthly | Check firmware for updates; inspect battery contacts; verify remote controller battery and pairing. |
| Quarterly | Full-charge battery health check via the app; review joint calibration; back up any custom SDK configurations. |
There are no user-serviceable parts inside the torso, head, or joint assemblies. Opening these voids the warranty. All internal service is performed by authorized technicians.
Firmware updates
Install firmware updates through the companion app while the robot is on the charger, in a stable posture, with at least 50% battery. Never power off during an update. Release notes are published with each version — review them before updating units used in production or development.
Developer & SDK
The G1 supports secondary development through unitree_sdk2 (C++ and Python) over DDS, with ROS 2 support and simulation workflows. EDU configurations add onboard compute (NVIDIA Jetson Orin) for running your applications directly on the robot.
Development setup
- Prepare a host machine. A Linux workstation (Ubuntu 20.04/22.04 recommended) connected to the robot by wired Ethernet. Set your host to a static IP on the robot's subnet (commonly 192.168.123.x) for reliable DDS communication.
- Install the SDK. Clone
unitree_sdk2(C++) orunitree_sdk2_pythonfrom Unitree's GitHub, plusunitree_ros2if you work in ROS 2. The SDKs communicate with the robot over DDS (CycloneDDS). - Connect and verify. Confirm the host can reach the robot's IP, then run a state-reading example (joint states, IMU) before sending any motion commands.
- Develop against simulation first. Validate new behaviors in MuJoCo or Isaac-based simulation workflows before deploying to hardware, especially for low-level joint control.
Typical control flow
# Python — high-level locomotion via unitree_sdk2_python (illustrative) from unitree_sdk2py.core.channel import ChannelFactoryInitialize from unitree_sdk2py.g1.loco.g1_loco_client import LocoClient ChannelFactoryInitialize(0, "eth0") # network interface to the robot client = LocoClient() client.SetTimeout(10.0) client.Init() client.Move(0.3, 0.0, 0.0) # vx, vy, yaw — m/s and rad/s client.StopMove() # always end sessions with a stop
Custom motion code bypasses some built-in safeguards. Always test with the robot in a harness or with generous clearance, keep the E-stop in hand, and rate-limit your first commands.
Interfaces at a glance
| Interface | Purpose |
|---|---|
LocoClient |
High-level locomotion: stand, walk, velocity commands, gait switching |
LowState / LowCmd |
Low-level joint states and direct joint control (advanced users) |
ArmAction |
Preset arm motions and upper-body control |
Dex3 hand API |
Dexterous hand control on units fitted with Dex3-1 hands |
| Sensor topics | IMU, depth camera, and LiDAR streams over DDS / ROS 2 topics |
Module names follow unitree_sdk2 conventions but vary by SDK version — consult the API reference and examples in the SDK repository for exact message definitions.
Frequently Asked Questions
Q01The robot won't power on. What should I check first?
Confirm the battery is fully seated (you should hear a click) and charged above the minimum threshold. Try the power button hold again for the full duration. If the status LED never lights, remove and reseat the battery, then attempt a charge cycle. If it still fails, open a support ticket with your serial number.
Q02The app can't find the robot on the network.
Verify the robot and your phone/host are on the same network or that you have joined the robot's hotspot. Corporate networks with client isolation frequently block discovery — a dedicated router or hotspot is the most reliable setup. Rebooting the robot re-broadcasts its discovery signal.
Q03How long does the battery last, and can I buy spares?
The G1 uses a 9,000 mAh quick-release pack rated for roughly 2 hours of mixed use — continuous walking consumes far more than standing or manipulation tasks. Spare packs swap in seconds; most commercial operators run a two-pack rotation.
Q04Can I run my own code on the robot?
Yes — the G1 supports secondary development with unitree_sdk2 (C++/Python) and ROS 2, covering locomotion, arm control, and sensor access. EDU configurations include onboard compute for deploying your code directly on the robot. See G1-05 Developer & SDK for setup.
Q05The robot stopped mid-operation with a flashing red LED.
This indicates a protective stop — typically from a fall detection, thermal limit, or communication loss. Check the fault log in the app for the specific code, allow the unit to cool if a thermal fault is shown, and restart from the standard startup posture. Recurring faults with the same code should be reported to support.
Q06Is the G1 covered by a warranty, and what voids it?
Yes — see G1-07 Contact & Warranty for your coverage terms. Common warranty-voiding actions include opening sealed assemblies, using third-party chargers or batteries, water exposure, and operating outside documented environmental limits.
Q07Can the robot be shipped internationally?
Yes, but lithium batteries are regulated as dangerous goods for air transport and destination countries may have their own compliance requirements (electrical safety, radio certification, customs documentation). Contact our team before arranging international shipment so paperwork and packaging are handled correctly.
Sales & availability
Stock, lead times, accessories, spare batteries, and volume or reseller inquiries.
[email protected] →Warranty summary
| Coverage | Term |
|---|---|
| Robot frame, joints & electronics (manufacturing defects) | 12 months from delivery |
| Battery packs | 6 months or rated cycle count |
| Remote controller & charger | 12 months |
| Wear items (foot soles, covers, cosmetic parts) | Not covered |