Unitree G1 - Moving the arms/hands - Dev w/ G1 Humanoid P.3

· Source: sentdex · Field: Technology & Digital — Robotics & Autonomous Systems, Artificial Intelligence & Machine Learning, Software Development & Engineering · Depth: Intermediate, extended

Summary

The Unitree G1 humanoid robot's arm control was developed to achieve Cartesian movement, addressing the SDK's limitation to only joint-level control. The developer successfully implemented this by manually collecting approximately 50 samples for each of six actions: up, down, left, right, forward, and backward. These samples, comprising starting and ending joint positions mapped to directions, were used to train a simple scikit-learn MLP model with two hidden layers, each containing 32 neurons. This approach enabled basic, albeit imperfect, Cartesian hand control on the physical robot. Other project updates include uploading development files to GitHub, fixing occupancy grid inaccuracies caused by a flipped LiDAR unit and O3 software, attempting to display battery percentage (unsupported by SDK), increasing the robot's walking speed, and implementing an E-stop via a remote control. Simulator testing for the trained arm policy revealed discrepancies, likely due to joint labeling issues, but the policy's effectiveness and the robot's powerful arm capabilities were confirmed on the actual hardware.

Key takeaway

For robotics engineers developing custom arm control for platforms like the Unitree G1, you should anticipate SDK limitations for high-level Cartesian movement. Instead of complex reinforcement learning or simulator debugging, consider collecting small datasets of human-demonstrated joint movements. Training a simple regressor on ~50 samples per action can yield functional Cartesian control, but always implement smooth gradient-based transitions for new positions to mitigate the robot's powerful and potentially violent movements.

Key insights

Direct Cartesian control for robot arms can be achieved through simple supervised learning from human-demonstrated joint movements.

Principles

Method

Collect ~50 human-demonstrated joint position samples per Cartesian action (up, down, etc.). Train a simple MLP regressor (e.g., scikit-learn, 2x32 neurons) to map start positions and commands to target end positions.

In practice

Topics

Best for: AI Engineer, Robotics Engineer, Machine Learning Engineer

Related on AIssential

Open in AIssential →

Editorial summary, takeaway, and curation by AIssential. Original article published by sentdex.