1 of 34

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

2 of 34

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

3 of 34

What does the OSL ecosystem provide?

3

  • A robust 2-DOF robotic hardware platform to study knee-ankle prosthetic control
  • A cloud-enabled tool to build the RPi OS image for control computer

4 of 34

What does the OSL ecosystem provide?

4

  • A robust 2-DOF robotic hardware platform to study knee-ankle prosthetic control
  • A cloud-enabled tool to build the RPi OS image for control computer
  • A scalable Python 3 software stack that provides diverse �functionalities for robotic applications
    • APIs for BLDC drives (Moteus, Dephy, Elmo, MAB, etc.)
    • APIs for sensors (encoders, 8-channel ADC, IMUs, temp, etc.)
    • Control and software tools (loop timing, data storage, plotting etc)
  • Website and repo of documentation / tutorials / unit tests �(more added everyday)

5 of 34

What does the OSL ecosystem provide?

5

  • A robust 2-DOF robotic hardware platform to study knee-ankle prosthetic control
  • A cloud-enabled tool to build the RPi OS image for control computer
  • A scalable Python 3 software stack that provides diverse �functionalities for robotic applications
    • APIs for BLDC drives (Moteus, Dephy, Elmo, MAB, etc.)
    • APIs for sensors (encoders, 8-channel ADC, IMUs, temp, etc.)
    • Control and software tools (loop timing, data storage, plotting etc)
  • Website and repo of documentation / tutorials / unit tests (more added everyday)
  • Plug-and-play embedded system based on the RPi Compute Module (coming soon)

The OSL ecosystem enables robotics researchers to focus on the novel technical work, rather than spending time setting up the systems and infrastructure

6 of 34

What will we cover?

6

OSL v2 hardware design

Raspberry Pi �imager tool

Software stack / vision

Upcoming turnkey embedded system

7 of 34

7

8 of 34

OSL v2 Hardware Design

8

  • Modular 2-DOF system

9 of 34

OSL v2 Hardware Design

9

  • Modular 2-DOF system
  • Low-ish transmission ratio
  • Simple, easy-to-obtain belt drives

10 of 34

OSL v2 Hardware Design

10

  • Modular 2-DOF system
  • Low-ish transmission ratio
  • Simple, easy-to-obtain belt drives
  • Fully integrated sensing (IMUs, 6-DOF load, motor state, joint encoders, etc.)
  • Identical / shared drivetrain parts between knee and ankle
  • Series elastic actuator in both joints

11 of 34

OnShape provide collaborative CAD design

11

  • We have transferred the design into web-based CAD program OnShape, which enables forking, merging, and other collaborative design methods
  • Fork this design and contribute!

12 of 34

Torsion spring design tool available

12

  • The OSL project has advanced the development of a novel 2-part torsion spring
  • The most compact and energy dense torsion spring in the literature
  • Developed standalone tool that automatically generates designs for easy export to CAD software

13 of 34

Getting started with the ecosystem

13

14 of 34

Customizable lab-specific RPi image builder

14

  • We use the Raspberry Pi single board computer to run control approaches
  • Objective: provide an up-to-date Raspberry Pi OS image that automatically connects to wifi and enables remote access–no exceptions

  • Coding and development is done remotely on a students PC, while the code lives and runs on the RPi controller in the OSL
  • Challenges:
    • Students continually repeating RPi setup that can take hours
    • Creating a static OS image degrades quickly
    • Maintaining a reliable / stable wifi connection using university networks
    • Re-solving the same challenges and lack of persisting infrastructure

  • To address these needs, we have created a free, customizable image tool

15 of 34

Customizable lab-specific RPi image builder

15

  • We have automated the process of setting up Raspberry Pis for robotics research
  • We leverage continuous integration tools provided by GitHub (GitActions)
  • Our tool creates an image in the cloud that can be downloaded after configuring the setup
    • Builds an up-to-date version of Raspbian or Ubuntu
    • Installs packages for robotics research and the OSL project
    • Sets up a custom wifi service that manages communication functionality

  • Once the image is flashed, the RPi
    • Boots, searches for wifi networks, connects to your university or home wifi network
    • It logs in automatically as you using secure credentials, and sends you its IP address
    • If no known wifi networks are in range, it falls back to an access point with a known IP address

16 of 34

How to use the imager tool

16

  • github.com/neurobionics/neurobionicspi
  • To use the repository, you will first need to fork it so you can add your information
  • Once forked, there are three steps to setting up the tool
  • Step 1: You will need to create secrets that will be stored securely in the repository. These are things like your university account information, the email address to be mailed, and other attributes

17 of 34

How to use the imager tool

17

  • Step 2: Build the image!
    • Navigate to the Actions tab
    • Click ‘Build now!’ on the left side
    • Click ‘Run workflow’ on the right side
    • Enter your desired RPi image specs
      • OS architecture and hostname
      • Username / PW
      • Extra wifi networks (home, etc.)
      • Access point name / PW
    • Click the green ‘Run workflow’ button
  • The image will be saved as an artifact to be downloaded

18 of 34

How to connect

18

  • Researcher receives email on boot
  • Logs in using specified login credentials
  • Shared file programs enable easy code and data management
  • Creates an access point if no wifi networks in range (IP: 10.0.0.200)

19 of 34

Remote development

19

  • VS Code is a multipurpose IDE with many plugins
  • SSH plugin allows remote development
    • Install Remote Explorer plugin
    • Add your device w/ username and IP address
    • Click ‘connect’ to SSH into the RPi
    • Click ‘open folder’ to view the file structure
  • Use the command line or VS Code GitHub extension to manage code

20 of 34

Remote development

20

  • Alternatively, WinSCP can be used to view both file trees and mange / edit code

21 of 34

OSL software library

21

  • The opensourceleg software library is a scalable, documented, and tested API for robotics research
  • Provides middleware for interfacing with various sensors and actuators
  • Provides utility functions for logging, communication, messaging, plotting, and other debugging tools

  • Codebase is PEP-8 compliant and well documented
  • Unit test coverage for majority of codebase

22 of 34

OSL software library

22

  • We have developed base classes for actuators and sensors that act as templates for new devices
    • This common API structure simplifies hardware integration and lowers switching costs
  • These templates can be expanded to your application and contributed back to the robotics community
  • Contributes to sustainable development, infrastructure growth, and reproducibility

23 of 34

OSL software library

23

24 of 34

Share your controller without sharing source code

24

Control strategy from your research

Inputs

outputs

Sensors

Actuators

25 of 34

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!

26 of 34

Share your controller without sharing source code

26

Publicly-available controllers from the field:

27 of 34

OSL community onsite

27

  • Developed a forum for researchers to discuss the OSL and its applications
  • Within the OSL website
  • Continuously monitored with �reasonable response times
  • If you’re a part of the community, �please ask and answer questions
  • Ongoing discussions…
    • Other battery options
    • When will the embedded system �be available?

28 of 34

Upcoming plug-and-play electronics

28

  • Developing turnkey embedded system based on Raspberry Pi Compute Module
  • Developing interface board to ease communication and form factor
  • Capabilities
    • Power management (5 V SMPS, 3.3 V LDO)
    • CAN controller / transceiver
    • UART / I2C / SPI / USB-C communications
    • Expansion modules (8 ch. ADC for load cell)

  • Plan is for electronics to be sold on the OSL website
  • Very low-cost solution with broad applicability
  • I have a v1 prototype with me

RPi Compute Module

8-ch ADC

OSL interface board

29 of 34

Takeaways

29

  • The Open-Source Leg is an ecosystem of mechanical hardware, software, tools, and embedded hardware
  • OSL v2 design is available for download / forking using OnShape
  • The Raspberry Pi imager tool is a scalable way to maintain custom lab infrastructure and enable students to get started easily
  • The OSL website provides rich documentation and a community
  • OSL software library is a convenient, accessible framework to develop advanced robotic systems
  • Thoughtful, test-driven software development lays a strong foundation
  • Upcoming turn-key embedded system will greatly ease development and will be available for sale from the website

30 of 34

30

Thank you!

31 of 34

The Open Source Leg Software Library

31

32 of 34

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

33 of 34

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

34 of 34

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