Skip to main content

An open-source SDK for developing and testing algorithms on commonly used robotic hardware.

Project description

Build status Documentation Status Python Version PyPI Downloads

Code style: black Security: bandit Pre-commit License Coverage

All Contributors

opensourceleg: An open-source SDK for developing and testing algorithms on commonly used robotic hardware. Originally developed for the Open-Source Leg project, this library provides a comprehensive framework for interfacing with various actuators and sensors in robotic systems. While initially designed for prosthetic leg applications, the opensourceleg library's modular architecture makes it versatile for use with any robotic platform utilizing similar components.

Note: Starting from version opensourceleg 3.3.0, only Python 3.11 and above are supported. If you need compatibility with Python 3.9, please install opensourceleg 3.2.1:

pip install opensourceleg==3.2.1

Python 3.10 is not supported.

๐ŸŽฏ Key Features

This library solves common challenges in developing, testing, and deploying robotic algorithms:

Feature Description
๐Ÿ“ฆ Standardized Interfaces Provides consistent interfaces for common actuators and sensors
๐Ÿ”„ Ready-to-Use Implementations Offers ready-to-use implementations for popular hardware components
๐Ÿ” Extensible Architecture Allows for easy integration of custom components
๐Ÿงช Comprehensive Benchmarks Includes comprehensive benchmarks for popular hardware components

๐Ÿ‘ฅ Ideal for Roboticists Who

  • Want to develop robotic algorithms for the Open-Source Leg platform or any other robotic platform
  • Need a reliable and extensible framework for interfacing with various actuators and sensors
  • Are working on a robotic project and need a flexible and powerful software development kit
  • Are looking for benchmarks to pick the best hardware for their robotic project
๐Ÿ”„ Available Hardware Interfaces

The library currently supports the following hardware components:

Sensors Unit Tests Hardware Tests Benchmarks Documentation
AS5048B Encoder โœ… โœ… โŒ โœ…
Lord Microstrain IMU โœ… โœ… โŒ โœ…
SRI Loadcell โœ… โœ… โŒ โœ…
Actuators Unit Tests Hardware Tests Benchmarks Documentation
Dephy Actpack โš ๏ธ โœ… โš ๏ธ โœ…
Moteus โš ๏ธ โš ๏ธ โš ๏ธ โœ…
TMotor โŒ โš ๏ธ โŒ โŒ

Legend: โœ… Complete/Available; โš ๏ธ Partial/In Progress; โŒ Not Yet Available;

Hardware tests indicate successful testing on physical devices. Benchmarks include performance metrics such as response time and accuracy measurements. Documentation includes API reference and usage examples.

๐Ÿ“ฆ Installation

The library is available on PyPI and can be installed using pip:

pip install opensourceleg
๐Ÿ”ง Hardware-Specific Dependencies

To keep your installation lightweight, you can install only the dependencies needed for your specific hardware:

# For Dephy actuators
pip install opensourceleg[dephy]

# For Moteus actuators
pip install opensourceleg[moteus]

# For I2C communication
pip install opensourceleg[communication]
Extra Dependencies
dephy flexsea
moteus moteus, moteus-pi3hat
communication smbus2
messaging grpcio, grpcio-tools, types-protobuf

For more details on the installation process, please refer to the installation guide.

๐Ÿ“š Usage

Once the library is installed, you can import it in your projects and start using the modules:

from opensourceleg.actuators.dephy import DephyActuator
from opensourceleg.sensors.encoder import AS5048B
...

For more details on available modules, tutorials, and examples, please refer to the documentation.

Repography logo / Community Activity Time period

Timeline graph Issue status graph Pull request status graph Top contributors Trending topics Activity map

Contributors โœจ

Thanks to all the wonderful people who have contributed to the project!

Senthur Ayyappan
Senthur Ayyappan

๐Ÿš‡ ๐Ÿ›ก๏ธ ๐Ÿšง ๐Ÿ’ป
tkevinbest
tkevinbest

๐Ÿ› โš ๏ธ ๐Ÿ’ก ๐Ÿ’ป
jderosia
jderosia

๐Ÿ“– โš ๏ธ ๐Ÿ’ก ๐Ÿ’ป
Yuanshao Yang
Yuanshao Yang

โš ๏ธ ๐Ÿ› ๐Ÿ“– ๐Ÿ’ป
shreyhas
shreyhas

๐Ÿ“– โš ๏ธ ๐Ÿ’ก
jkotar3
jkotar3

โš ๏ธ ๐Ÿ› ๐Ÿ’ป
esharnow
esharnow

โš ๏ธ ๐Ÿ› ๐Ÿ“–
Japman Gill
Japman Gill

โš ๏ธ ๐Ÿ› ๐Ÿ’ป
unshrawal
unshrawal

๐Ÿ› ๐Ÿ’ป
anujtaosf
anujtaosf

๐Ÿ“– ๐Ÿ’ก
Varun Satyadev Shetty
Varun Satyadev Shetty

๐Ÿ“– ๐Ÿ’ก
Katharine-Walters
Katharine-Walters

๐Ÿ›
zachbons
zachbons

๐Ÿ›
Anushka
Anushka

๐Ÿ›
Nundini Rawal
Nundini Rawal

๐Ÿ›
matteo-crotti
matteo-crotti

๐Ÿ›
Jiarui Gu
Jiarui Gu

๐Ÿ“–
Pranav G
Pranav G

๐Ÿ“– ๐Ÿ’ป

Contributions of any kind are welcome! For more details, read our contribution guidelines.

๐Ÿ“ License

The opensourceleg library is licensed under the terms of the LGPL-v2.1 license. This license grants users a number of freedoms:

  • You are free to use the opensourceleg library for any purpose.
  • You are free to modify the opensourceleg library to suit your needs.
  • You can study how the opensourceleg library works and change it.
  • You can distribute modified versions of the opensourceleg library.

The LGPL license ensures that all these freedoms are protected, now and in the future, requiring everyone to share their modifications when they also share the library in public.

๐Ÿ› Issues

Found a bug or have a suggestion? Please open an issue.

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

opensourceleg-3.5.0.tar.gz (144.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

opensourceleg-3.5.0-py3-none-any.whl (163.5 kB view details)

Uploaded Python 3

File details

Details for the file opensourceleg-3.5.0.tar.gz.

File metadata

  • Download URL: opensourceleg-3.5.0.tar.gz
  • Upload date:
  • Size: 144.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.28 {"installer":{"name":"uv","version":"0.9.28","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for opensourceleg-3.5.0.tar.gz
Algorithm Hash digest
SHA256 9a1c0b4f331e53d6ce94e2c79bcae42a055efe2d934655886decf0f389ae9056
MD5 ab08fdb65756e4bd7386b66df93acf1e
BLAKE2b-256 d6bb8b5c462eceb6442c27cd219866c9c6325e28afe88ec1c06ff48436e6b3b8

See more details on using hashes here.

File details

Details for the file opensourceleg-3.5.0-py3-none-any.whl.

File metadata

  • Download URL: opensourceleg-3.5.0-py3-none-any.whl
  • Upload date:
  • Size: 163.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.28 {"installer":{"name":"uv","version":"0.9.28","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for opensourceleg-3.5.0-py3-none-any.whl
Algorithm Hash digest
SHA256 10bbca015340bf3bdc77ce1f9d20b54898d355f493d41d9f97ea9f6c7f859aed
MD5 fbccfcc81aedc50c85a3c06e29539195
BLAKE2b-256 3eeb5df1e53d52e8f4e389b26fc42bb822205ae4b5d6779b50fbfcc6aa19a341

See more details on using hashes here.

Supported by

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