This project has sampling logic and a control system for a puppy_pi
robot affectionately named Pogo
by my sister. The robot is controlled by a Raspberry Pi and a MPU6050 IMU sensor.
Note: This repo was built mostly as a POC and as such the testing, maintance and documentation is minimal throughout. It's part of a larger project to train a Robot to walk using Model based RL (see this blog post if your interested). Feel free to reach out if you have questions.
- Set up OS on the Raspberry Pi.
- Enable I2C interface using raspi-config.
- pip install requirements/server.txt
- Setup pigpio daemon: see here
- install cv2 dependencies:
apt-get update && apt-get install ffmpeg libsm6 libxext6 -y
Pogo uses click for a CLI. Use:
pogo --help
to see all options.
Starting Pogo: On pogo's raspberrypi:
pogo pogo start
Starting camera: On the camera raspberrypi
pogo camera start
Deploy: Will deploy plastic-thumb-nozzle-212
which is the current best solution trained. Runs for 500 steps.
pogo client --num-steps=500 deploy --name="plastic-thumb-nozzle-212"
Sample: Starts a sampling loop. Uses strain-super-ring
as the google bucket to upload rollouts to and plastic-thumb-nozzle
as the model bucket to check for new actors. No action noise or weight perturbation. Rolls out 200 steps each sample.
pogo client --name="strain-super-ring" --model-name="plastic-thumb-nozzle" --noise-range=0 0 --num-steps=200 --weight-range=0 0 sample