AUTinyDane

AUTinyDane is an open-source, affordable quadruped robot platform developed at Aarhus University.
The project focuses on a complete real robot stack: mechanical design, servo actuation, inverse kinematics, gait generation, and PS4 teleoperation on a Raspberry Pi.

Watch AUTinyDane walking

What this repository contains

System overview

Software and system overview

Hardware architecture

Software architecture

Core runtime flow:

  1. Read controller command inputs
  2. Update movement/stance command state
  3. Generate leg trajectories (swing/stance planners)
  4. Solve inverse kinematics
  5. Send commands to servo drivers

Main components:


Repository structure

AUTinyDane/
├── run_robot.py                 # Main runtime entry point
├── requirements.txt             # Python dependencies
├── src/                         # Core runtime modules
│   ├── Configuration.py         # Robot geometry and limits
│   ├── Command.py               # Command state and mode abstraction
│   ├── State.py                 # Runtime gait/state values
│   ├── Kinematics.py            # IK solver
│   ├── HardwareInterface.py     # PCA9685 + IMU interface
│   ├── ServoCalibration.py      # Servo neutral offsets and gains
│   ├── GaitPlannerV2.py         # Main gait planner
│   ├── StancePlannerV2.py       # Stance phase planning
│   ├── SwingPlannerV2.py        # Swing phase planning
│   └── PS4Controller/           # Controller input mapping/listener
├── tools/                       # Calibration and utility scripts
│   ├── calibrate_servos.py      # Interactive servo offset calibration
│   ├── ServoNeutral.py          # Move servos/legs to neutral
│   ├── TestServo.py             # Interactive servo testing helpers
│   └── IMU_calibration.py       # IMU calibration utility
├── tests/                       # Manual/experimental test scripts
└── legacy/                      # Older planners/simulators

Prerequisites

Hardware/runtime environment

Software

Note: Several dependencies are Raspberry Pi / hardware specific and may not install or run on non-Pi machines.


Installation

git clone https://github.com/JensLajordMunk/AUTinyDane.git
cd AUTinyDane
python -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt

If running on Raspberry Pi, also ensure system packages and I2C support are configured.


Quick start (robot runtime)

  1. Verify wiring and power-off safety state
  2. Confirm/update servo calibration in src/ServoCalibration.py
  3. Pair and connect the PS4 controller (/dev/input/js0 expected)
  4. Run:
python run_robot.py

Controller mapping

From src/PS4Controller/DogController.py:

Current modes are defined in src/Command.py:


Calibration and utility scripts

Run these carefully with the robot safely supported/off-ground.


Development and testing

This repository currently contains mostly hardware/manual test scripts under tests/ rather than a full automated CI-style unit test suite.

Basic discovery check:

python -m unittest discover -q

Useful manual scripts include:


Troubleshooting


CAD model

View CAD Model in Onshape


License

This project is licensed under the MIT License. See LICENSE.