> For the complete documentation index, see [llms.txt](https://doc.ancorasir.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://doc.ancorasir.com/2026spring/a-crash-course-on-humanoid-robots.md).

# A Crash Course on Humanoid Robots

This repository is the course hub for the Spring 2026 offering of **A Crash Course on Humanoid Robots**. It combines book-style lecture chapters, hands-on notebooks, robot models, reference implementations, and final-project examples into one navigable learning sequence.

### Start here <a href="#start-here" id="start-here"></a>

* Follow the [course map](#course-map) to ensure the intended progression.
* Use the [content and media index](/2026spring/course-content-and-media-index.md) to locate notebooks, figures, videos, models, and bundled implementations directly.
* Read the [assignment](#individual-assignment) and [final project](#individual-final-project) sections for deliverables and submission formats.
* See the [worked final-project example](/2026spring/final-project-example-human-gesture-to-humanoid-motion.md) for the recording → motion capture → robot retargeting pipeline.

### Course map <a href="#course-map" id="course-map"></a>

#### Module 1 — Robot description basics <a href="#module-1--robot-description-basics" id="module-1--robot-description-basics"></a>

<table><thead><tr><th width="90.2578125">Class</th><th width="90.02734375">Date</th><th>Topic</th><th>Format</th></tr></thead><tbody><tr><td>01</td><td>Mar 02</td><td><a href="/pages/4P6HclPu2shs82VuLrly">Perspectives in Understanding Robots</a></td><td>Illustrated chapter</td></tr><tr><td>02</td><td>Mar 04</td><td><a href="/pages/R8toChoXY6nzWujUFZrb">The Need for Robot Description</a></td><td>Illustrated chapter</td></tr><tr><td>03</td><td>Mar 06</td><td><a href="/pages/CtuoS95wwxprmwLdCktz">MuJoCo for Robots</a></td><td>Illustrated chapter + runnable example</td></tr></tbody></table>

#### Module 2 — Simulation and interaction with humanoids <a href="#module-2--simulation-and-interaction-with-humanoids" id="module-2--simulation-and-interaction-with-humanoids"></a>

<table><thead><tr><th width="90.4765625">Class</th><th width="90.234375">Date</th><th>Topic</th><th>Primary practical material</th></tr></thead><tbody><tr><td>04</td><td>Mar 23</td><td><a href="/pages/PsSbCAlurWbvJ16qq1It">Description, Visualization, Simulation, and Interaction</a></td><td>asRoBallet MJCF + teleoperation notebook</td></tr><tr><td>05</td><td>Mar 25</td><td><a href="/pages/ZYiY8Wb9bhhRFJol5dN5">Motion Retargeting in Robotics</a></td><td>General Motion Retargeting implementation</td></tr><tr><td>06</td><td>Mar 27</td><td><a href="/pages/1hGuxMKu1yJBRcasKgyB">Unitree G1 Simulation in MuJoCo</a></td><td>MJCF models + three notebooks</td></tr><tr><td>07</td><td>Mar 30</td><td><a href="/pages/8dHxDxIJFosNkyVKGSwn">ZMP-Based Motion Planning</a></td><td>Two walking-planning notebooks</td></tr><tr><td>08</td><td>Apr 01</td><td><a href="/pages/H6Cs0jhN9eBS7TVGJVMU">Whole-Body Control for Humanoids</a></td><td>OpenLoong Dynamic Control</td></tr><tr><td>09</td><td>Apr 03</td><td><a href="/pages/6YbocYzTiDnenyyLgbmc">Reinforcement Learning for Humanoid Training</a></td><td>Unitree RL, MuJoCo, and SDK stack</td></tr><tr><td>10</td><td>Apr 06</td><td><a href="/pages/SYAewxSw6J4wSGZUCzHK">Foundation Models in Robotics</a></td><td>GR00T setup and evaluation workflow</td></tr></tbody></table>

#### Module 3 — Selected Topics in Humanoids <a href="#module-3--selected-topics-in-humanoid-robotics" id="module-3--selected-topics-in-humanoid-robotics"></a>

<table><thead><tr><th width="90.0546875">Class</th><th width="89.62890625">Date</th><th>Topic</th><th>Format</th></tr></thead><tbody><tr><td>11</td><td>Apr 08</td><td><a href="/pages/kpuUTzncV5pHSUUPNQkS">Humanoid Movement</a></td><td>Illustrated chapter</td></tr><tr><td>12</td><td>Apr 10</td><td><a href="https://file+.vscode-resource.vscode-cdn.net/Users/songchaoyang/Documents/Projects/Project_asHumanoids/2026Spring/C12_HumanoidContact/README.md">Humanoid Contact</a></td><td>Illustrated chapter</td></tr><tr><td>13</td><td>Apr 13</td><td><a href="https://file+.vscode-resource.vscode-cdn.net/Users/songchaoyang/Documents/Projects/Project_asHumanoids/2026Spring/C13_HumanoidControl/README.md">Humanoid Control</a></td><td>Illustrated chapter</td></tr><tr><td>14</td><td>Apr 15</td><td><a href="https://file+.vscode-resource.vscode-cdn.net/Users/songchaoyang/Documents/Projects/Project_asHumanoids/2026Spring/C14_HumanoidLearning/README.md">Humanoid Learning</a></td><td>Chapter</td></tr></tbody></table>

#### Module 4 — Final project <a href="#module-4--final-project" id="module-4--final-project"></a>

<table><thead><tr><th width="89.609375">Date</th><th>Activity</th></tr></thead><tbody><tr><td>Apr 17</td><td>Assignment deadline at noon; final-project preparation begins</td></tr><tr><td>Apr 20</td><td>Final-project preparation</td></tr><tr><td>Apr 22</td><td>Final-project preparation</td></tr><tr><td>Apr 24</td><td>Live online final presentations</td></tr><tr><td>Apr 27</td><td>Final-report deadline at noon</td></tr></tbody></table>

### Repository organization <a href="#repository-organization" id="repository-organization"></a>

The repository has two intentionally separate layers:

1. **Course-facing material** — the top-level class `README.md` pages, `images/` figure folders, notebooks, robot examples, and final-project videos.
2. **Bundled implementations** — upstream projects such as GMR, OpenLoong, Unitree RL Lab, Unitree MuJoCo, and Unitree SDK. Their internal layouts are preserved because builds and executable paths depend on them.

Media follows a small set of conventions:

* chapter figures use descriptive filenames inside the chapter's `images/` directory;
* project demonstrations live in a `videos/` directory;
* notebooks remain beside the models and code they execute;
* third-party meshes, generated documentation, libraries, and checkpoints stay inside their upstream packages;
* every course-facing directory has a `README.md` entry point.

See [CONTENT\_INDEX.md](/2026spring/course-content-and-media-index.md) for the full directory and media catalog.

### Individual assignment <a href="#individual-assignment" id="individual-assignment"></a>

Reproduce PyRoki independently and demonstrate inverse kinematics for a humanoid robot of your choice.

#### Deliverables <a href="#deliverables" id="deliverables"></a>

1. A working source-code package.
2. A Markdown guide with reproducible, step-by-step run instructions.
3. A PDF copy of the guide or report.
4. A short MP4 screen recording that demonstrates successful execution on your computer.

The submitted code should run as specified in the provided instructions in a clean environment. Treat reproducibility with the same care as a research artifact review.

**Deadline:** Friday, April 17 at noon.

<details>

<summary>Assignment email and package format</summary>

* **Email subject:** `[ROB803] StudentID - FirstName LastName - Assignment`
* **To:** `chaoyang.song@mbzuai.ac.ae`
* **Cc:** `haoran.sun@mbzuai.ac.ae`, `zishang.zhang@mbzuai.ac.ae`, `guangyi.huang@mbzuai.ac.ae`
* **ZIP filename:** use the email subject followed by `.zip`.

```
[ROB803] 12345678 - Jan Doe - Assignment/
├── 12345678 - Jan Doe - Assignment.md
├── 12345678 - Jan Doe - Assignment.pdf
├── 12345678 - Jan Doe - Assignment.mp4
└── 12345678 - Jan Doe - Assignment - SourceCode/
    └── ...
```

</details>

### Individual final project <a href="#individual-final-project" id="individual-final-project"></a>

Design a pipeline that transfers a socially positive gesture from a human recording to a humanoid robot. The [worked example](/2026spring/final-project-example-human-gesture-to-humanoid-motion.md) illustrates the expected technical sequence.

#### Project stages <a href="#project-stages" id="project-stages"></a>

1. **Record a culturally meaningful gesture.** Explain its positive social meaning and document a reproducible recording protocol. You may mask your face if preferred. Make the resulting data accessible to the class.
2. **Recover whole-body motion.** Choose and justify a representation suitable for retargeting; explain the extraction algorithm; document the resulting data; and evaluate the recovered motion using quantitative metrics.
3. **Retarget the motion.** Select a humanoid and a retargeting method, record the result, and compare it with the original gesture using qualitative and quantitative evidence.

#### Final report — due Monday, April 27 at noon <a href="#final-report--due-monday-april-27-at-noon" id="final-report--due-monday-april-27-at-noon"></a>

Submit an ICRA-format report of at most four pages, excluding references. The report replaces the original final exam component (19%) and should:

* motivate the problem with literature;
* formulate the problem mathematically and include relevant derivations;
* explain the solution with pseudocode;
* document the collected data;
* analyze the results;
* include reproducible source code with a `README.md`; and
* propose next steps toward deployment on humanoid hardware.

<details>

<summary>Final-report email and package format</summary>

* **Email subject:** `[ROB803] StudentID - FirstName LastName - FinalReport`
* **To:** `chaoyang.song@mbzuai.ac.ae`
* **Cc:** `haoran.sun@mbzuai.ac.ae`, `zishang.zhang@mbzuai.ac.ae`, `guangyi.huang@mbzuai.ac.ae`

```
[ROB803] 12345678 - Jan Doe - FinalReport/
├── 12345678 - Jan Doe - FinalReport.pdf
├── 12345678 - Jan Doe - FinalReport - LatexSourceCode/
│   ├── MainDocument.tex
│   ├── Reference.bib
│   └── figs/
├── 12345678 - Jan Doe - FinalReport - SupplementaryVideo/
└── 12345678 - Jan Doe - FinalReport - SourceCode/
    └── README.md
```

</details>

#### Final presentation — Friday, April 24 in class <a href="#final-presentation--friday-april-24-in-class" id="final-presentation--friday-april-24-in-class"></a>

Give a live, interactive five-minute online presentation. The presentation replaces the original final-project component (30%). Test audio and screen sharing in advance; an uploaded five-minute recording is encouraged as a backup before April 23 at noon.

<details>

<summary>Final-presentation email and package format</summary>

* **Email subject:** `[ROB803] StudentID - FirstName LastName - FinalPresentation`
* **To:** `chaoyang.song@mbzuai.ac.ae`
* **Cc:** `haoran.sun@mbzuai.ac.ae`, `zishang.zhang@mbzuai.ac.ae`, `guangyi.huang@mbzuai.ac.ae`

```
[ROB803] 12345678 - Jan Doe - FinalPresentation/
├── 12345678 - Jan Doe - FinalPresentation.pdf
├── 12345678 - Jan Doe - FinalPresentation.pptx
└── 12345678 - Jan Doe - FinalPresentation.mp4
```

</details>

### Core references <a href="#core-references" id="core-references"></a>

* Z. Gu et al., [*Humanoid Locomotion and Manipulation: Current Progress and Challenges in Control, Planning, and Learning*](https://arxiv.org/abs/2501.02116).
* Roy Featherstone, [*Rigid Body Dynamics Algorithms*](https://link.springer.com/book/10.1007/978-1-4899-7560-7).
* NVIDIA, [*Isaac Lab: A GPU-Accelerated Simulation Framework for Multi-Modal Robot Learning*](https://arxiv.org/abs/2511.04831).
* NVIDIA et al., [*GR00T N1: An Open Foundation Model for Generalist Humanoid Robots*](https://arxiv.org/abs/2503.14734).
* Joan Solà, Jérémie Deray, and Dinesh Atchuthan, [*A Micro Lie Theory for State Estimation in Robotics*](https://arxiv.org/abs/1812.01537).
* J. P. Araujo et al., [*Retargeting Matters: General Motion Retargeting for Humanoid Motion Tracking*](https://arxiv.org/abs/2510.02252).
* C. M. Kim et al., [*PyRoki: A Modular Toolkit for Robot Kinematic Optimization*](https://arxiv.org/abs/2505.03728).
* [OpenLoong Dynamic Control](https://github.com/loongOpen/OpenLoong-Dyn-Control).
* [Unitree RL Lab](https://github.com/unitreerobotics/unitree_rl_lab).

### Course team <a href="#course-team" id="course-team"></a>

* **Instructor:** Prof. Chaoyang Song (`songcy@ieee.org` | `Chaoyang.Song@mbzuai.ac.ae` )
* **Teaching Assistants:** Haoran Sun, Zishang Zhang, and Guangyi Huang
* **Acknowledgments:** Prof. Fang Wan and Tianyu Wu

### Related research from the Design and Learning Research Group <a href="#related-research-from-the-design-and-learning-research-group" id="related-research-from-the-design-and-learning-research-group"></a>

* **asMagic** — an iOS data-collection and interaction system for embodied intelligence: [App Store](https://apps.apple.com/us/app/asmagic/id6661033548).
* **asRoBallet** — a humanoid ballbot prototype and the robot used in the Class 04 interaction exercise.
* **asOverDog** — a reconfigurable overconstrained-linkage quadruped research platform: [project overview](https://bionicdl.ancorasir.com/?p=2233).
* **asMagiClaw** — a device for collecting human manipulation demonstrations: [open-source documentation](https://doc.ancoraspring.com/asmagiclaw).

The asMagic app provides a common perception and interaction interface for asRoBallet, asOverDog, and asMagiClaw, including 3D previews of the platforms.

### License <a href="#license" id="license"></a>

Repository-level terms are available in [LICENSE](https://file+.vscode-resource.vscode-cdn.net/Users/songchaoyang/Documents/Projects/Project_asHumanoids/2026Spring/LICENSE). Bundled projects may carry their own licenses; consult the license files inside each implementation before reuse.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://doc.ancorasir.com/2026spring/a-crash-course-on-humanoid-robots.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
