Easy RobotSoftware
And the MoveIt! Setup Assistant 2.0

Reducing the Barrier to Entry of Complex Robotic Software: a MoveIt! Case StudyDavid Coleman, Ioan Sucan, Sachin Chitta, Nikolaus Correll
Journal of Software Engineering for Robotics, April 2014

Dave Coleman, PhD
davetcoleman

Outline● Unique Challenges To Robot Software● Why Do We Care?
● The 6 Entry Barrier Design Principles● The MoveIt! Setup AssistantBuilding Robot Software Is Hard
So let's all work together :)Unique Challenges Facing Robotic Software●●●●No single developer can have the necessary domain knowledge
Large variety in complexity and scale of robotic platforms.
Software/hardware interaction with unstructured real world.
Long term desire reduce reliance on GUIs.

Barriers to Entry
The time, effort, and knowledge that a new user
must invest in the integration of a software
component with an arbitrary robot.

Why do we care?

Larger User Bases = Better Software

Why do we care? Larger user bases

As number of users increases, bugs are identified and fixed
faster [2][1] H. Bruyninckx, “Open robot control software: the orocos project,” in Robotics and Automation, 2001. Proceedings
2001 ICRA. IEEE International Conference on, vol. 3.
[2] D. C. Schmidt, “Why software reuse has failed and how to make it work for you,”C++ Report, vol. 11, no. 1, p. 1999
[3] D. C. Schmidt and A. Porter, “Leveraging open-source communities to improve the quality & performance ofopen-source software,” in Proceedings of the 1st Workshop on Open Source Software Engineering, 2001

Why do we care? Larger user bases

More users involved in quality assurance,
documentation, and support [3][1] H. Bruyninckx, “Open robot control software: the orocos project,” in Robotics and Automation, 2001. Proceedings
2001 ICRA. IEEE International Conference on, vol. 3.
[2] D. C. Schmidt, “Why software reuse has failed and how to make it work for you,”C++ Report, vol. 11, no. 1, p. 1999
[3] D. C. Schmidt and A. Porter, “Leveraging open-source communities to improve the quality & performance ofopen-source software,” in Proceedings of the 1st Workshop on Open Source Software Engineering, 2001

Why do we care? Larger user bases

New feature contributions increase (weaker correlation) [2][1] H. Bruyninckx, “Open robot control software: the orocos project,” in Robotics and Automation, 2001. Proceedings
2001 ICRA. IEEE International Conference on, vol. 3.
[2] D. C. Schmidt, “Why software reuse has failed and how to make it work for you,”C++ Report, vol. 11, no. 1, p. 1999
[3] D. C. Schmidt and A. Porter, “Leveraging open-source communities to improve the quality & performance ofopen-source software,” in Proceedings of the 1st Workshop on Open Source Software Engineering, 2001

Why do we care? Larger user bases

Critical mass of skilled contributors has been shown to makeopen source projects successful [1][1] H. Bruyninckx, “Open robot control software: the orocos project,” in Robotics and Automation, 2001. Proceedings
2001 ICRA. IEEE International Conference on, vol. 3.
[2] D. C. Schmidt, “Why software reuse has failed and how to make it work for you,”C++ Report, vol. 11, no. 1, p. 1999
[3] D. C. Schmidt and A. Porter, “Leveraging open-source communities to improve the quality & performance ofopen-source software,” in Proceedings of the 1st Workshop on Open Source Software Engineering, 2001

Why do we care? Hiring and Innovation.

Increase number of creative minds working on
today's robotic challengeThe 6 Entry Barrier
Design Principles

The 6 Entry Barrier Design Principles
Immediacy
Minimize the amount of time to accomplish the most basictask.
●●●

Quick start demo
Cursory feedback to new user that software is worth
investing inCombat the paradox of the active user

Paradox of the Active User

Users never read manuals
The paradox is that the users would actually save time in the long run if
they learned more about the system before attempting to use it, but thesestudies showed that in reality people do not tend to invest time upfront into
learning a new system.

The 6 Entry Barrier Design Principles
Transparency
Configuration steps are performed automaticallyfor the user while at the same time being as visible
as possible●●

Understand what parameters are specific totheir robot"layered" approach of quick initial setup whileallowing later customization as neededThe 6 Entry Barrier Design Principles
Reconfigurable
The automatically generated parameters and default
values for the initial setup of a robot should beeasy for the user to modify at a later time.
●●●

Typically chosen to work with the largest number ofrobots
Not optimal for any robot
Varying applications require different
configurations

The 6 Entry Barrier Design Principles
Intuitive
The need to read accompanied documentation, andthe amount of required documentation, should beminimized.
●●●

Follow standard design patterns
Provide interface context clues
Ideally an interface does not require additional
documentation

The 6 Entry Barrier Design Principles
Extensible
The user should be enabled to customize as many
components and behaviors as possible within thereasonable scope of the software.
●●Makes the software far more powerful andre-usable for varying use cases
Plugin interface

The 6 Entry Barrier Design Principles
Documented
The amount of reference material explaining how touse the software should be maximized for as
many aspects and user levels as possible.
●●No software is intuitive enough to not require
documentation
Different types of documentation are required fordifferent types of users○

Developers vs end-users

The 6 Entry Barrier Design Principles
Documented

MoveIt! Setup AssistantQuick Setup of MoveIt!

Optimize Collision Checking

Specify Metadata●●●●●Planning Groups
Robot Poses
End Effectors
Passive Joints
Virtual Joints

MoveIt! Setup Assistant 2.0
Special thanks to Mohmmad El Khzragy, Open Robotics, and GSoC

Auto-configure Depth Sensors

Setup Gazebo Simulation Integration

Setup ROS Control

Hello World

Generated Quick Start DemoNew MoveIt! Tutorials

Thursday, October 25th, 2018

Conclusion●●●●

Robot software is hard
Make your software easier to use
Apply the entry barrier design principles
By building a community around your software,
the software gets better● The MoveIt! Setup Assistant is a good example