Rapid deployment using the Open-Source Leg ecosystem
Elliott Rouse
Associate Professor
Neurobionics Lab
University of Michigan
ejrouse@umich.edu
Senthur Ayyappan
OSL Project Lead
Kevin Best
PhD Candidate
Leveraging scalable, continuous integration / development tools for wearable robotics research
What is the Open-Source Leg (OSL)?
2
The Open-Source Leg is an ecosystem of hardware, software, and development tools that lower the barrier to advanced prosthetics research. It is also a place where anyone can learn about modern tools in robotics, with relevance to many applications in hands-on mechatronic systems.
OSL design files for manufacturing
Documentation and tutorials
Publicly-available controllers
Raspberry Pi imager tool
SEA spring design tool
Collaborative CAD design
OSL software library / API
Turn-key embedded system
Website
(opensourceleg.org)
GitHub
(github.com/neurobionics)
OnShape
(tinyurl.com/m3rahjzx)
Embedded system solutions
opensourceleg
What does the OSL ecosystem provide?
3
What does the OSL ecosystem provide?
4
What does the OSL ecosystem provide?
5
The OSL ecosystem enables robotics researchers to focus on the novel technical work, rather than spending time setting up the systems and infrastructure
What will we cover?
6
OSL v2 hardware design
Raspberry Pi �imager tool
Software stack / vision
Upcoming turnkey embedded system
7
OSL v2 Hardware Design
8
OSL v2 Hardware Design
9
OSL v2 Hardware Design
10
OnShape provide collaborative CAD design
11
Torsion spring design tool available
12
GitHub repo link (.exe)
Getting started with the ecosystem
13
Customizable lab-specific RPi image builder
14
Customizable lab-specific RPi image builder
15
How to use the imager tool
16
How to use the imager tool
17
How to connect
18
Remote development
19
Remote development
20
OSL software library
21
OSL software library
22
OSL software library
23
Share your controller without sharing source code
24
Control strategy from your research
Inputs
outputs
Sensors
Actuators
Share your controller without sharing source code
25
Source protected compiled object
Inputs
outputs
Sensors
Actuators
OSL Software library (Python)
( Matlab / C / C++ / C# / Rust / Zig )
Any language!
Share your controller without sharing source code
26
Publicly-available controllers from the field:
OSL community onsite
27
Upcoming plug-and-play electronics
28
RPi Compute Module
8-ch ADC
OSL interface board
Takeaways
29
30
Thank you!
The Open Source Leg Software Library
31
Setting Up a Development Environment
32
Setting up the raspberry pi with a monitor and other peripherals
A CI/CD tool that builds a custom raspbian OS headlessly with your required packages
Installing all the required packages from text files or notes
This is not a collaborative process as usually one team member sets up the raspberry pi and distributes it to the team
Not a sustainable development practice as the required packages evolve over time and gets updated.
The repository can be forked by the entire team and everyone has access to how the system was set up
Team members treat the raspberry pi as a black box as they have no knowledge of how the system was set up unless there is good documentation
A collaborative and sustainable practice that ensures that your development environment evolves with your dependencies
Ships with pre-configured networking structure that facilitates remote development. This can then be modified by the user to suit their needs
Requires you to configure the raspberry pi’s networking to be able to set it up for remote development
Developing and Testing Your Codebase
33
Each researcher designs their own API to interface with a set of actuators and sensors
A generalized API to interface with various actuators and sensors that is developed collaborative
These APIs are usually not tested rigorously as it costs time and energy
These API are then used to implement their control strategy
This makes it really hard to share their control strategies as they’d need to ship their entire codebase
Users can request features, report bugs, and contribute code to the opensourceleg library.
When these researchers graduate, it becomes really hard to maintain these APIs and new incoming students either spend the time to understand these APIs or decide to create their own if they observe a clear lack in documentation hence reproducing the efforts
Benchmarks that compare the performance of various actuators or sensors to help researcher pick the right actuators and sensors for their needs
You get well tested and documented code. The opensourceleg library include a continuously evolving set of unit tests and we also test our scripts with hardware.
Each research group creates their own API
The library includes type definitions and automated tests to ensure code quality. We also provide tutorials ae
Deploying and Sharing Your Results
34
A potential to get into the “it works on my machine” pitfall
Sharing compiled objects to encourage reproducible research
Sharing results with supporting code repositories
These code repositories usually don’t have the development environment associated with them which makes it harder to reproduce the results
Sharing results with supporting code repositories
Both source protected and open-source control strategies can be shared
Way easier for other researchers to reproduce the results
Way easier for other researchers to reproduce the results
Encourages other researchers to try out and experiment with your control strategies