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 startStarting camera: On the camera raspberrypi
pogo camera startDeploy: 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