Simulação do Reachy Mini - Guia de Configuração
Você não precisa de um robô físico para começar a construir! A simulação do Reachy Mini roda em MuJoCo e fornece um ambiente de física realista para prototipar, testar e depurar suas aplicações.
1. Instalação
📋 Pré-requisitos: Antes de configurar a simulação, você deve primeiro concluir a instalação básica e a configuração do ambiente virtual seguindo o Guia de Instalação. Este guia assume que você já tem o Reachy Mini SDK instalado e seu ambiente virtual ativado.
A simulação requer os bindings Python do mujoco. Você pode instalá-los junto com o software do Reachy Mini usando a tag extra [mujoco].
Com pip, execute:
pip install "reachy-mini[mujoco]"
Com uv, execute:
uv pip install "reachy-mini[mujoco]"
2. Executando a Simulação
Para iniciar o robô simulado, simplesmente execute o comando do daemon com a flag --sim:
reachy-mini-daemon --sim
Uma janela deve abrir exibindo a visualização 3D do robô. Você pode interagir com a visualização usando o mouse (arraste para girar, clique com o botão direito para mover, role para dar zoom).
🍎 Usuários de Mac (Apple Silicon / Intel)
No macOS, o MuJoCo requer um lançador específico para funcionar corretamente com a interface gráfica. Em vez do comando acima, use mjpython:
mjpython -m reachy_mini.daemon.app.main --sim
⚠️ Usuários de macOS:
uvpode ter problemas de compatibilidade com o MuJoCo no macOS. Se você encontrar problemas de instalação ou execução, é recomendado usarpipdiretamente em vez deuvpara pacotes relacionados ao MuJoCo.
3. Reachy Mini Control e Apps
Você pode usar o Reachy Mini Control para interagir com o robô simulado. Basta abrir o app e conectar à simulação local.

- Apps: Você pode instalar e executar Apps! Eles serão executados dentro da simulação (por exemplo, o robô se moverá no visualizador 3D).
4. Cenas e Opções
Você pode personalizar o ambiente de simulação usando o argumento --scene.
empty(padrão): Apenas o robô no vazio.minimal: Adiciona uma mesa e alguns objetos (maçã, croissant, pato) para brincar.
Exemplo:
reachy-mini-daemon --sim --scene minimal
5. Conectando seu Código
Quando a simulação estiver em execução, ela se comporta exatamente como um Reachy Mini Lite real conectado via USB. O daemon escuta em localhost, e você pode executar qualquer script Python do SDK sem modificação:
from reachy_mini import ReachyMini
from reachy_mini.utils import create_head_pose
# Connects to the simulation running on localhost
with ReachyMini() as mini:
print("Connected to simulation!")
# Look up and tilt head
print("Moving head...")
mini.goto_target(
head=create_head_pose(z=20, roll=10, mm=True, degrees=True),
duration=1.0
)
# Wiggle antennas
print("Wiggling antennas...")
mini.goto_target(antennas=[0.6, -0.6], duration=0.3)
mini.goto_target(antennas=[-0.6, 0.6], duration=0.3)
# Reset to rest position
mini.goto_target(
head=create_head_pose(),
antennas=[0, 0],
duration=1.0
)
Próximos Passos
- Python SDK: Aprenda a mover, ver, falar e ouvir.
- AI Integrations: Conecte LLMs, construa Apps e publique na Hugging Face.
- Core Concepts: Arquitetura, sistemas de coordenadas e limites de segurança.
❓ Solução de Problemas
Falha de segmentação de libgstpython.dylib ao usar mjpython (macOS)
Você pode ver um erro como:
ERROR: Caught a segmentation fault while loading plugin file:
.../gstreamer_python/lib/gstreamer-1.0/libgstpython.dylib
Este erro de falha de segmentação do plugin GStreamer é um problema conhecido, que também acontece com o robô real, mas ocorre em um processo paralelo e não causa nenhum problema visível. Com mjpython, porém, ele derruba o processo principal. A correção é renomear o plugin para que o GStreamer não o carregue mais:
# Find the file inside your environment (adjust the path to match yours)
mv $(python -c "import gstreamer_python, pathlib; print(pathlib.Path(gstreamer_python.__file__).parent / 'lib/gstreamer-1.0/libgstpython.dylib')") \
$(python -c "import gstreamer_python, pathlib; print(pathlib.Path(gstreamer_python.__file__).parent / 'lib/gstreamer-1.0/libgstpython_.dylib')")
Isso simplesmente impede que o GStreamer carregue o plugin automaticamente. Isso não afeta a funcionalidade normal de áudio/vídeo.
Encontrou outro problema? 👉 Confira o Guia de Solução de Problemas e FAQ