/PupperSimulation

MuJoCo-based simulation for a very mini quadruped robot.

Primary LanguageJulia

Pupper Julia Simulation

Overview

This repository contains the Julia code that runs on the Raspberry Pi-based Pupper robot, as well as the Julia code for simulating the same code in a MuJoCo environment on a desktop computer.

Installation for Simulation

  1. Clone this repository
git clone https://github.com/Nate711/PupperSimulation.git
  1. 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.

  2. Save the license mjkey.txt somewhere and set the environment variable MUJOCO_KEY_PATH to that location. One way to set the environment variable is through your bash profile. On a mac this is done by adding the line

export MUJOCO_KEY_PATH=[YOUR PATH]/mjkey.txt

to your ~/.bash_profile.

  1. Install Julia by visiting https://julialang.org/downloads/

  2. Install the required Julia packages

julia install.jl

Run Simulation

  1. Enter the Julia REPL in the PupperJuliaSim directory.
  2. Run
include("main.jl")
  1. The MuJoCo simulator should then pop up in a new window with various interactive options. Press space to start the simulation.
  • Click and drag with the left mouse button to orbit the camera, and with the right mouse button to pan the camera.
  • To perturb the robot, double click on the body you want to perturb, then hold Control and click and drag with the mouse. Using the left mouse button will apply a rotational torque while the right button will apply a translational force.
  • Press space to play or pause the simulation.
  • Press backspace to kill the simulation window and then hit Control-C to interrupt the Julia simulation code.

Installation for Raspberry Pi Robot

Materials

  • Raspberry Pi 4
  • SD Card (32GB recommended)
  • Raspberry Pi 4 power supply (USB-C, 5V, >=3A)
  • Ethernet cable

Steps

Running the Robot

  • Start the PiGPIO daemon by executing in shell:
    sudo pigpiod
  • Load the robot code in the Julia REPL:
    include("run_robot.jl")
  • Run the main program:
    main()