# Build an edge AI Reachy Mini app with Raspberry Pi, MediaPipe, and MuJoCo

## In this learning path

- [Introduction](https://learn.arm.com/learning-paths/cross-platform/build-a-reachy-robot-app-on-pi/)
- [Learn about Reachy and the Reachy Gladiator application](https://learn.arm.com/learning-paths/cross-platform/build-a-reachy-robot-app-on-pi/reachy-app/)
- [Start the Reachy simulation on MuJoCo](https://learn.arm.com/learning-paths/cross-platform/build-a-reachy-robot-app-on-pi/start-simulation/)
- [Set up the Raspberry Pi and run the edge AI app](https://learn.arm.com/learning-paths/cross-platform/build-a-reachy-robot-app-on-pi/run-pi-app/)
- [Use the Reachy Gladiator application](https://learn.arm.com/learning-paths/cross-platform/build-a-reachy-robot-app-on-pi/use-the-app/)
- [Understand the Reachy Gladiator application code](https://learn.arm.com/learning-paths/cross-platform/build-a-reachy-robot-app-on-pi/understand-code/)
- [(Optional) Extend the project](https://learn.arm.com/learning-paths/cross-platform/build-a-reachy-robot-app-on-pi/extend/)
- [Next Steps](https://learn.arm.com/learning-paths/cross-platform/build-a-reachy-robot-app-on-pi/_next-steps/)

## About this Learning Path

| Skill level:      | Introductory        |
|-------------------|---------------------|
| Reading time:     | 1 hr                |
| Last updated:     | 06 Jul 2026         |

| Author:           | Matt Cossins, Arm [GitHub](https://github.com/matt-cossins) |
|-------------------|--------------------------------------------------------------|
| Arm IP:           | [Cortex-A](https://support.arm.com/?tab=compute-ip&Product%20Type=Application%20Processors) |
| Tags:             | [ML](https://learn.arm.com/tag/ml) [Linux](https://learn.arm.com/tag/linux) [macOS](https://learn.arm.com/tag/macos) [Windows](https://learn.arm.com/tag/windows) [Raspberry Pi](https://learn.arm.com/tag/raspberry-pi) [Reachy Mini](https://learn.arm.com/tag/reachy-mini) [Python](https://learn.arm.com/tag/python) [MediaPipe](https://learn.arm.com/tag/mediapipe) [FastAPI](https://learn.arm.com/tag/fastapi) [MuJoCo](https://learn.arm.com/tag/mujoco) |

### Who is this for?
This Learning Path is for developers interested in edge AI, robotics simulation, and physical AI applications. You can complete the main path without owning a physical Reachy Mini.

### What will you learn?
Upon completion of this Learning Path, you will be able to:

- Understand why simulation environments can aid Edge AI and robotics development.
- Run a simulated Reachy Mini robot on a laptop or desktop.
- Use MediaPipe and TensorFlow Lite gesture recognition on Raspberry Pi 5.
- Connect an edge inference node to a robot daemon over the network.
- Display results over a web dashboard.
- Optionally extend the project toward a physical Reachy Mini, audio or multimodal interaction, or your own app.

### Prerequisites
Before starting, you will need the following:

- A Raspberry Pi 5, ideally with 16 GB RAM.
- A USB webcam connected to the Raspberry Pi.
- A macOS or Linux machine, or a Windows machine with WSL2, capable of running the Reachy Mini MuJoCo simulation.
- Basic Python and Bash terminal experience.
- (Optional) [Reachy Mini](https://huggingface.co/reachy-mini)

### Summary
You’ll build a distributed edge AI application that runs MediaPipe gesture inference on a Raspberry Pi 5 and drives a Reachy Mini robot in a MuJoCo simulation. First, you’ll start the simulator on a development machine, prepare the Pi with Raspberry Pi OS and Git LFS so the gesture model downloads correctly, then run the app and open a browser dashboard to monitor the camera feed and verdicts. A thumbs-up or thumbs-down from the webcam triggers victory or defeat motions in the simulated robot. You’ll also learn about the project layout so you can locate perception, app logic, motion, and dashboard components in the codebase to iterate on.

### Frequently asked questions
<details>
<summary>Which address should I open to view the dashboard?</summary>
If you use VS Code Remote SSH port forwarding, open `http://localhost:8042` on your laptop. Otherwise, browse to `http://<pi-ip-address>:8042` from any machine on the same network.
</details>

<details>
<summary>How do I find the Raspberry Pi IP address for the dashboard?</summary>
Run `hostname -I` on the Raspberry Pi to print its IP address. Then use that address with port `8042` in your browser.
</details>

<details>
<summary>How do I confirm the gesture model downloaded correctly with Git LFS?</summary>
Check that `assets/gesture_recognizer.task` exists as a real model file, not a tiny pointer file. If you cloned before enabling Git LFS, enable LFS and re-clone the repository.
</details>

<details>
<summary>The dashboard loads but the MuJoCo simulation doesn't move—what should I check?</summary>
Verify the MuJoCo simulation is running on your development machine and that the Pi can reach it over the network. Also review `main.py` because it contains the settings used for the distributed simulation route.
</details>

<details>
<summary>What result should I expect when a thumbs-up or thumbs-down is detected?</summary>
You should see the simulated Reachy Mini play a victory or defeat motion, and the web dashboard should reflect the verdict. This indicates the camera, inference, network, and simulator are connected end to end.
</details>
