Skip to main content

Python module to control Upkie wheeled bipeds.

Project description

Upkie wheeled biped robot

CI Build instructions Documentation Coverage PyPI version Chat

Upkie is a fully open source self-balancing wheeled biped robot. It has wheels for balancing, and legs to go off-road or negotiate uneven terrains. Upkies are designed to be buildable at home with tools and components ordered online, like mjbots actuators. Motion control runs onboard the robot's Raspberry Pi.

This repository contains all the software and instructions required to build and operate an Upkie. Development can be done in Python or C++, on Linux or macOS. Questions are welcome in the Chat and Discussions forum.

Installation

Everything needed to develop for Upkie in Python lies in a single package:

pip install upkie

Yes, it's as simple as that. This Python interface is already fast enough for real-time control. If later on you want to optimize parts of your code, you can move them to C++ spines.

Simulation

Assuming you have a C++ compiler (setup one-liners: Fedora, Ubuntu), you can run an Upkie simulation right from the command line. It won't install anything on your machine, everything will run locally from the repository:

git clone https://github.com/upkie/upkie.git
cd upkie
./start_pid_balancer.sh

Click on the robot in the simulator window to apply external forces.

Example

You can develop your own agent using the Gymnasium environments distributed in upkie.envs. For example, here is a simple proportional-feedback balancer:

import gymnasium as gym
import upkie.envs

upkie.envs.register()

with gym.make("UpkieGroundVelocity-v3", frequency=200.0) as env:
    observation = env.reset()
    action = 0.0 * env.action_space.sample()
    for step in range(1_000_000):
        observation, reward, done, _ = env.step(action)
        if done:
            observation = env.reset()
        pitch = observation[0]
        action[0] = 10.0 * pitch

To test this agent on your computer, run the agent and simulation spine in two separate processes: python this_agent.py in one shell, and ./start_simulation.sh in the other.

To run this agent on the robot, scp the script to the Raspberry Pi, start a pi3hat spine and execute the script on the Pi itself.

To go further

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

upkie-3.0.0.tar.gz (256.5 kB view details)

Uploaded Source

Built Distribution

upkie-3.0.0-py3-none-any.whl (63.4 kB view details)

Uploaded Python 3

File details

Details for the file upkie-3.0.0.tar.gz.

File metadata

  • Download URL: upkie-3.0.0.tar.gz
  • Upload date:
  • Size: 256.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: python-requests/2.28.2

File hashes

Hashes for upkie-3.0.0.tar.gz
Algorithm Hash digest
SHA256 f0a7a2df62eadd3e35c8b94323d912bb9eede64c27644f3499039e7226fa2f35
MD5 abb0e879aed67ea59185f1e3bf119bdd
BLAKE2b-256 c877dafb16f3f70a850b3835950dcd30109adad9354504b8c269126e1e74b6aa

See more details on using hashes here.

File details

Details for the file upkie-3.0.0-py3-none-any.whl.

File metadata

  • Download URL: upkie-3.0.0-py3-none-any.whl
  • Upload date:
  • Size: 63.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: python-requests/2.28.2

File hashes

Hashes for upkie-3.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 bd5e8a0eb525e6382a6546e783e35ce46adf34ecd2b77b0174fb87e7397093ac
MD5 6db116d16a41b39575ee6f9d6e57eb63
BLAKE2b-256 c3895b30401b67fe4a604701939d84fcfd4b37f19c7064561838d546550df183

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page