Skip to main content

[![PyPI](https://img.shields.io/pypi/v/pypot.svg)](https://pypi.python.org/pypi/pypot/) [![Build Status](https://github.com/poppy-project/pypot/actions/workflows/test_and_distribute.yml/badge.svg)](https://github.com/poppy-project/pypot/actions) [![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.591809.svg)](https://doi.org/10.5281/zenodo.591809)

# Pypot ⚙️ A Python library for Dynamixel motor control

Pypot is a cross-platform Python library making it easy and fast to control custom robots based on multiple models of Dynamixel motors. Use Pypot to:

  • control Robotis motors through USB2Dynamixel, USB2AX or [Pixl 4 Raspberry Pi](https://github.com/poppy-project/pixl) devices,

  • define kinematic chains of a custom robot and control it through high-level commands (Forward & Inverse Kinematics),

  • define primitives (motions applying to motor groups) and easily combine them to create custom complex behaviors (Robot dance, arm shaking, writing with a pen…).

  • define sensor access and processing (QRCode detection, force sensors, RGB-D, …)

Pypot is also compatible with the [CoppeliaSim simulator](http://www.coppeliarobotics.com) (formerly V-REP), embeds a [REST API](https://docs.poppy-project.org/en/programming/rest.html) for Web-based control, and supports visual programming via [Scratch](https://docs.poppy-project.org/en/getting-started/program-the-robot.html#using-scratch) and [Snap](https://docs.poppy-project.org/en/getting-started/program-the-robot.html#using-snap).

## 🔌 Compatible hardware

Compatible motors: MX-106, MX-64, MX-28, MX-12, AX-12, AX-18, RX-24, RX-28, RX-64, XL-320, SR-RH4D, EX-106. Derivated versions are also supported (e.g. MX-28AT, MX-28R, MX-28T, …). Both protocols v1 and v2 are supported but v2 is used only for XL-320. Use [Herborist](https://github.com/poppy-project/herborist#herborist) to help detect IDs and baudrates of motors.

Compatible sensors: Kinect 1, QRCode from RGB camera, sonar, micro-switch from Raspberry Pi GPIO, digital or analog sensor connected to Arduino

Compatible interpreters: Python 3.6, 3.7, 3.8, 3.9

Other models of motors and sensors can be integrated with little effort and time. Other programming languages may be connected through the REST API.

## Read 📖 [Documentation](https://docs.poppy-project.org/en/software-libraries/pypot.html) and get ⁉️ [Assistance](https://forum.poppy-project.org/)

## Pypot is part of the opensource Poppy project

Pypot is part of the [Poppy project](http://www.poppy-project.org) aiming at developing robotic creations that are easy to build, customize, deploy, and share. It promotes open-source by sharing 3D-printed hardware, software, and web tools.

The Poppy creatures are: * [Poppy Humanoid](https://www.poppy-project.org/en/robots/poppy-humanoid/): a kid-size humanoid robot designed for biped locomotion and physical human-robot interaction (25 DoF) for biped research and university workshops, * [Poppy Torso](https://www.poppy-project.org/en/robots/poppy-torso/): just the torso of the humanoid robot, with a suction pad to stick it attach it firmly to a desk (13 DoF) for HRI research, university and high school workshops * [Poppy Ergo Jr](https://www.poppy-project.org/en/robots/poppy-ergo-jr/): a low-cost robotic arm for primary to middle school (6 Dof) for primary or middle school workshops

![Poppy Humanoid](./doc/poppy-creatures.jpg)

All those creatures are based on a combination of standard dynamixel actuators, 3D printed parts and open-source electronics such as Arduino boards. Both the hardware (3D models, electronics…) and software can be freely used, modified and duplicated.

## 💻 Installation

If you are using a Poppy robot embedding a Raspberry Pi, Pypot is already shipped with it. For custom robots, just type ⌨️ pip install pypot in your system terminal!

If you intend to modify or add features to Pypot, create a virtual environment and install it from sources instead: `bash git clone https://github.com/poppy-project/pypot cd pypot/pypot pip install . `

Additional drivers may be needed for USB2serial, depending of your OS. Check here: * [USB2AX](http://www.xevelabs.com/doku.php?id=product:usb2ax:quickstart) - this device is designed to manage TTL communication only * USB2Dynamixel - this device can manage both TTL and RS485 communication. * [Pixl board](https://github.com/poppy-project/pixl) for RaspberryPi

## 👨‍💻 Contributing

If this is the first time you contribute to Pypot, it is a good idea to share your work on [the forum](https://forum.poppy-project.org/) first, we will be happy to give you a hand so that you can contribute to the opensource project.

Release files for pypot 5.0.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for pypot 5.0.2
File Size Uploaded
pypot-5.0.2.tar.gz 421.2 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for pypot 5.0.2
File Interpreter ABI Platform
pypot-5.0.2-py3-none-any.whl Python 3 none any Details

Total release size: 862.8 kB

Release files / pypot-5.0.2.tar.gz

Download URL pypot-5.0.2.tar.gz
Size 421.2 kB
Tags Source
SHA-256 checksum
How to use checksums
d06ba6cbb31cd9ba026bae5fe886bdc1f1c47e73b70148c9c09268c24bc62813
BLAKE2b-256 checksum
How to use checksums
5e1e4ebfb89df0c289f4e9fc836d08444f4f6c3eb7a5323366ec6fb9a306e3b1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.8.0 pkginfo/1.8.2 readme-renderer/33.0 requests/2.27.1 requests-toolbelt/0.9.1 urllib3/1.26.8 tqdm/4.63.0 importlib-metadata/4.11.2 keyring/23.5.0 rfc3986/2.0.0 colorama/0.4.4 CPython/3.9.10

Release files / pypot-5.0.2-py3-none-any.whl

Download URL pypot-5.0.2-py3-none-any.whl
Size 441.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
ea308a604392394f01661bafc9b33bf436510a5c7e3b166533ea4e13dd5533f5
BLAKE2b-256 checksum
How to use checksums
bbb3ec01f4871d099d299f762dec84df737ff259706989334a42fce278469159
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.8.0 pkginfo/1.8.2 readme-renderer/33.0 requests/2.27.1 requests-toolbelt/0.9.1 urllib3/1.26.8 tqdm/4.63.0 importlib-metadata/4.11.2 keyring/23.5.0 rfc3986/2.0.0 colorama/0.4.4 CPython/3.9.10

Release history Release notifications | RSS feed

This release

5.0.2 This release

2 release files

5.0.1

2 release files

5.0.0

2 release files

4.1.1

2 release files

4.0.5

1 release file

4.0.4

1 release file

4.0.3

1 release file

4.0.2

1 release file

4.0.1

1 release file

4.0.0

1 release file

3.1.3

2 release files

3.1.2

1 release file

3.1.1

1 release file

3.1.0

3 release files

3.0.4

6 release files

3.0.3

7 release files

3.0.2

6 release files

3.0.1

6 release files

3.0.0

6 release files

2.11.9

6 release files

2.11.8

1 release file

2.11.7

3 release files

2.11.6

6 release files

2.11.5

6 release files

2.11.3

6 release files

2.11.2

1 release file

2.9.1

5 release files

2.8.5

5 release files

2.7.8

5 release files

2.6.1

2 release files

2.5.0

2 release files

2.4.0

1 release file

2.3.1

1 release file

2.2.2

1 release file

2.0.3

1 release file

1.7.1

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page