English | 简体中文
A set of graded, runnable examples with companion guides that takes secondary developers from making a single body part move all the way to running a full task in a real scene. Examples are distilled from three real deployed projects: box-moving, depalletizing, and toy-sorting.
Content grows through three stages — from isolated control primitives, to reusable robot capabilities, and finally to complete jobs:
| Stage | In one line | Question it answers | Status |
|---|---|---|---|
| ① Atom | Make a single body part move | How do you move one part? Control interface, units, limits | ✅ In progress |
| ② Skill | Get one thing done on one target, and report success or failure | How does a robot complete one meaningful task? | ✅ Finger Tap and Bottle Grasp available |
| ③ Scene | Orchestrate multiple skills, handle failures and progress, and see the whole job through | What if something fails halfway? When is the job done? | 🚧 Planned |
The fastest way in is to start from the guides — each guide under an atom module's docs/, and the README at the root of each skill project, is a self-contained walkthrough you can read without the real robot; if you're new, begin with stage ① Atom — each module has its own README (atom/motion/, atom/perception/, atom/interaction/). The docs are the tutorial itself; the code is the subject they explain.
When you're ready to run on the real robot:
-
Set up the environment & start body_control: see Prerequisite · Environment Setup (
setup/README.md). Motion atoms need body_control running first; one-click start:./setup/start_body_control.sh # run on the robot's x86 board, as user ubuntu -
Run an atom (in a second terminal):
source /home/ubuntu/ros2ws/install/setup.bash python3 atom/motion/motion01_head_ros2.py -
Read the matching guide
motionNN_..._guide.mdto understand the code, then tweak-and-observe.
Continue with Skill 1 · Finger Tap when you are ready to combine perception and arm control.
Then explore Skill 2 · Bottle Grasp to combine object perception, box geometry, arm motion, and dexterous-hand control.
setup/ prerequisites shared by every stage: environment setup + one-click start scripts
atom/
motion/ joint & chassis control — code at root, docs/, assets/
perception/ camera, force, power, TF
interaction/ voice in & out
(each module: README.md + code at root + docs/ + assets/)
skill/
skill01_finger_tap/ AprilTag perception + QP arm control for one complete tap
skill02_bottle_grasp/ bottle/box perception + MoveIt/QP control for grasp and placement
scene/ multi-skill orchestration + failure handling & progress (planned)
- Examples require the real robot (ROS2 +
bodyctrl_msgs, etc.); they cannot run on a dev machine and are for static reading there. - Docs are bilingual: the English version is
name.md(default), the Chinese version isname_zh-CN.md. - Most atoms ship a plain version and a
_robustproduction version side by side: the plain one to learn the principle, the robust one adds state reading / limit checking / readiness waiting for production use.