This repository contains Python code to run Pupper, a Raspberry Pi-based quadruped robot. In addition to the robot code, this repository also contains a wrapper to simulate the robot in MuJoCo using the same code that runs on the robot.
The PyBullet simulator is free for academic use and requires no license whatsoever, but in my experience PyBullet is much slower than MuJoCo and is less clear about how to tune the contact parameters.
- Clone this repository
git clone https://github.com/Nate711/PupperSimulation.git- Install pybullet (in a python 3.7 environment)
pip install pybullet- Run simulation:
python3 simulate_pybullet.pyMuJoCo has been faster than PyBullet in my experience, but requires that you request and activate a license. The process to acquire a license can take several days.
- Clone this repository
git clone https://github.com/Nate711/PupperSimulation.git-
Acquire a license for MuJoCo at http://mujoco.org/. You can get a free trial of the professional license for a month, or with a student account, a free year.
-
Follow the instructions at https://github.com/openai/mujoco-py to correctly install MuJoCo.
If you have trouble installing MuJoCo on macOS because gcc can't find certain header files, like "limits.h" or "stdio.h", then try completing the installation wizard that pops up when you run:
sudo open /Library/Developer/CommandLineTools/Packages/macOS_SDK_headers_for_macOS_10.14.pkg And also do:
brew update
brew install gcc@8
brew link --overwrite gcc- Install the python requirements:
bash install_packages_sim.sh- Run
python3 simulate.py- The MuJoCo simulator should then pop up in a new window with various interactive options. Press space to stop or start the simulation.
- Raspberry Pi 4
- SD Card (32GB recommended)
- Raspberry Pi 4 power supply (USB-C, 5V, >=3A)
- Ethernet cable
- Install Raspbian Buster Lite onto the Pi
- Download https://www.raspberrypi.org/downloads/raspbian/
- Use BalenaEtcher to flash the OS to the SD card
- Set up the Raspberry Pi
- Before even ejecting the SD Card, follow the instructions on this repo to put the self-installing setup script on the Pi: https://github.com/stanfordroboticsclub/RPI-Setup
- Complete the “Actually Doing It”, “Getting Internet Access”, and “Getting Started With the Pi” sections
- Test that the Pi works and connects to the internet
- Install the PREEMPT-RT kernel onto the Pi
- Download the kernel patch https://github.com/lemariva/RT-Tools-RPi/tree/master/preempt-rt/kernel_4_19_59-rt23-v7l%2B
- Follow these instructions starting from “Transfer the Kernel” https://lemariva.com/blog/2019/09/raspberry-pi-4b-preempt-rt-kernel-419y-performance-test
- Test by running in the shell:
uname -r
- Get the Pupper Code
- Clone the Pupper repository https://github.com/Nate711/PupperPythonSim/
- Install requirements:
bash install_packages_robot.sh
- Start the PiGPIO daemon by executing in shell:
sudo pigpiod
- Load the robot code in the Julia REPL:
python3 run_robot.py