Skip to content

Overview

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.10 and above are supported. If you need compatibility with Python 3.9, please install opensourceleg 3.2.1:

pip install opensourceleg==3.2.1

๐ŸŽฏ 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

๐Ÿ›

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.