www.dlr.de · Antonin RAFFIN · Designing (Robot) Software That Is Easy to Use; CoRL Open-Source Hardware Workshop 2025 · 27.09.2025

Designing (Robot) Software That Is Easy to Use

all robots
Antonin RAFFIN (@araffin.bsky.social)
German Aerospace Center (DLR)
https://araffin.github.io/

Stable-Baselines3 (SB3)

Reliable RL Implementations

https://github.com/DLR-RM/stable-baselines3

Raffin, Antonin, et al. "Stable-baselines3: Reliable reinforcement learning implementations." JMLR (2021)

Motivation

Hardware without software is like an instrument without a musician

Outline

  1. High Quality Software
  2. Intuitive Interface
  3. Modular vs. Minimal Implementations

High Quality Software

  • Software best practices (unit tests, mock hardware, typing, ...)
  • Separate optional dependencies (ex: ROS)
  • Avoid breaking changes, migration guide
  • Fully documented
  1. High Quality Software
  2. Intuitive Interface
  3. Modular vs. Minimal Implementations

Intuitive interface?

too easy
Consistent interface
TF1

❌ Confusing

SB3 vs SBX

✅ Consistent

Abstraction level

Flexible while still easy-to-use

Automate repetitive code
SB3 v0.1

❌ Boilerplate code

SB3 v1.0

✅ Automated

  1. High Quality Software
  2. Intuitive Interface
  3. Modular vs. Minimal Implementations

Modular vs Minimal

Modular

Minimal

Modular Implementations

  • Easy to combine components
  • Reduce code duplication
  • High entry cost

Minimal Implementations

  • Standalone / minimal dependencies
  • Reduce complexity
  • Easier to share/reproduce
  • Perfect for educational purposes (cleanRL)
  • Find bugs
  • Hard to maintain

Conclusion

  • Tips for creating easy-to-use interfaces
  • Design decisions

Questions?

Backup slides

Adapting quickly: Retrained from Space

Tests