Upkie
Open-source wheeled biped robot with wheels for balance and legs for uneven terrain, controllable in simulation and on hardware.
- Other
- Open source
Suggested by Robotheca, created by @upkie (opens in a new tab), from github.com/upkie/upkie (opens in a new tab). Pinned to commit ffa9e4d (opens in a new tab).
- Hardware license
- Apache-2.0 (opens in a new tab)
- Software license
- Apache-2.0 (opens in a new tab)
- Commercial use
- Allowed
This repository contains executable files that Robotheca doesn't check. Only run them if you trust the creator.
Which files (14 files marked executable, 1 script)
- tools/raspios/provision.sh (opens in a new tab)
- tools/bazelisk (opens in a new tab)
- tools/bullet_spine (opens in a new tab)
- tools/configure_cpu_isolation (opens in a new tab)
- tools/configure_servos (opens in a new tab)
- tools/configure_wlan1 (opens in a new tab)
- tools/dump_servo_configs (opens in a new tab)
- tools/hard_rezero (opens in a new tab)
- tools/package_bullet_spine (opens in a new tab)
- tools/power_dist_check (opens in a new tab)
- tools/ps_threads (opens in a new tab)
- tools/raspunzel (opens in a new tab)
- tools/stop_servos (opens in a new tab)
- tools/upkie_tool (opens in a new tab)
- tools/vcgenall (opens in a new tab)
Photo
This repository has no photo of the robot yet.
What it can do
Written by Robotheca from the project's documents.
- Balances as a wheeled inverted pendulum using wheels, and walks or locomotes with its legs for uneven terrain.
- Can be steered with a gamepad joystick, with an emergency stop button.
- Supports Python and C++ development, with behaviors deployed to the onboard Raspberry Pi.
- Runs the same Gymnasium environment code in simulation (PyBullet) and on the real robot (Spine).
- Includes example behaviors such as lying genuflection, model predictive control balancing, and PD wheel-velocity balancing.
Bill of materials
This repository has no parts list Robotheca can read yet.
Build guide
The guide appears here as you scroll.
Guide by @upkie (README.md), under Apache-2.0.
More guides
Wiring and electronics
Notes written by Robotheca from the project's documents.
Main parts
- Raspberry Pi as the onboard computer.
- Pi3hat board mounted on the Raspberry Pi to drive the actuators over CAN.
- Mjbots moteus brushless servos (mj5208) driving the wheels.
- Qdd100 actuators for the hip and knee joints.
- Power distribution board feeding the actuators.
- Battery connected through an XT90-S connector, with XT30 cables inside the robot.
- IMU mounted on the head plate.
Connections
- The left hip qdd100 connects by CAN to the pi3hat JC1 port using a comms cable.
- The right hip qdd100 connects by CAN to the pi3hat JC3 port using a comms cable.
- Each qdd100 is powered from the power distribution board using a torso power cable.
- Leg comms and power cables run inside cable sleeves through the tibia and femur to the wheel motor and knee motor.