Enabling Docker
for Robotic Applications

ROS + Docker

By Ruffin WhiteMotivation
Repeatable
Reproducible(and Deployable!)

Robotics“Amigoni et al. [8] showed that not asingle paper among the top cited ones in
SLAM and navigation met all the basic
criteria listed in the GEM guidelines. We
may have clearly improved since then, but
probably not enough.”“On Research Reproducibility:
An interview with Gianluca
Setti [Turning Point],” IEEE
R&A Magazine, no. 3, pp.192–
191, Sep.

Pé rez, F.; Granger, B.E., "IPython: A System forInteractive Scientific Computing," in Computing inScience & Engineering , vol.9, no.3, pp.21-29, MayJune 2007
Ragan-Kelley, M., et al. "The Jupyter/ IPython
architecture: a unified view of computational
research, from interactive exploration tocommunication and publication." AGU Vol. 1. 2014.
C. Boettiger, “An introduction to docker forreproducible research,” ACM SIGOPS Oper. Syst.
Rev., vol. 49, no. 1, pp. 71–79, Jan. 2015.

F. Bonsignorio and A. P. del Pobil, “Toward
Replicable and Measurable Robotics Research”
IEEE R&A Magazine, no. 3, pp. 32–35, Sep

Chamberlain, Ryan, and Jennifer Schommer. UsingDocker to support reproducible research. Technicalreport, Invenshure, LLC. figshare. 1101910, 2014.

E. Guglielmelli, “Research Reproducibility andPerformance Evaluation For Dependable Robots”
IEEE R&A Magazine, no. 3, pp. 4–4, Sep.

Docker... What?
is not:a Virtual Machineis:more like a chroot on steroids!

Containers are isolated, but share an OS,
and where appropriate, bin/libraries… resulting in portable RR&D software

Goal: (Open Source) Rapid Prototyping
Web:

Robotics:
and friends

Recent History

2010

2010

2010

2011

2011

2012

2012

2013

2014

2015

ROS Tools: Hardware Driverscamerasdepth cameras
laser scanners
robotsaudio
inertial units
GPSjoysticks
etc...

ROS Ecosystem: VarietyBig
Small
IndustrialVehicles
Air/WaterMatrix from Hell
Lookhowit’s s small it is,o cuteThe Curse of Dimensionality continues
to plague us everywhereB
the ut wa
re’is m t,ore!

te abouht
to.. forg
Opps. 1 Librariesn+?

Platforms

Platforms x Distros x Peripherals = nDistroslanoisnnemidi
Matrix from Hell^
Mult!!?
rals

hePeripROS + Docker… Why?

Because w
ho logoingin cir ves
cles?

Repeatability & Reproducibility
for robotic research and industry “is hard…
It should not be hard…”
Make robotic researchwithin and between labs simpler and more collaborative
Make robotic industrial
deployments maintainable with Continuous Integration
I heard you need to create arobot dataset. Here, I’ve
got a ROS package that
does that already.
WHY DOES
THE ROBOTKEEP
DYING?

Well, it built finewhen I publishedit 3 weeks ago.

Oh, you need todownload these 42packages first.
I alreadydid, and itstill doesn’twork!

Grr.
Packageupdates…

adapted from xkcd

Jorge Cham

ROS + Docker… Why?
Let's Simplify
cross compilation complexity
managing custom dependencies
pushing new app and changes for multiple robots

Pushing newServices and Containers
Researchersand Developers

Deployed
Field Robots

Education
ROS Launch Demo
From stock linux install to course development
environment, provide students a working setup.
Share and submit running ROS apps with instructors
and teammates using Dockerfiles and images.
Share and submit broken ROS apps for collaborative
debugging sessions, even keep errors reproducible.
Providing fail-fast learn-fast disposable workspaces,
students should experiment without hesitation.
Uses Docker Compose to keep something, that may
have many moving parts, simple others to launch
libnetwork + ros_docker_demosResearch
Sharing Demos Demo
Two ROS nodes, e.g. mage publisher and asubscriber using Caffe Deep Learning
Nodes run in isolated linux containers on host, yetshare exposed cam and GPU hardware.
Repeatable, Reproducible publications, share not
only source, but secret sauce to build, run, and ship!
From reading papers to tweaking complex demos
locally in the time it takes to download the image.
Use free registries like Docker Hub to share images
to inspect and contribute back to build recipes.
ros_caffe/dockerIndustry
Cloud Swarm Demo
Deploy multiple nodes from different cloud computing
cluster and different networks
Take advantage of the Docker ecosystem to build,ship and orchestrate swarm of nodes.
Run ROS nodes on AWS, Azure, or Google to finallybring about that singularity of cloud robotics we werepromised all those years ago!
Run heavy Gazebo simulations for continuous
integration faster and cheaper on clusters.
Orchestrate deployed swarms or field robots and how
they network we eachother.
gazebo_docker_demosROS + Docker... But How?

witht
turtl urtles!
es allway d theown

Currently
leveraging Docker for CI and ROS build farms
as well as sharable development environments
i386 amd64 armhf amd64
FutureROS runtime integration with Docker engine API

User Console

Launching and managing swarms of nodes
nameservice

Large scale virtual networking between nodes

beadv

ercribstisesuBlending of cloud and robotic software tools>_ roslaunch
terClus
GPU&& docker-co
mpose=the_future!
publisherpublish(Willie, the ROS Turtle)

Robotsubscriber(Gordon, the Docker Turtle)

Official Repos for ROS & Gazebo
OSRF maintainedbase images for yourrobotic docker projects
Available now on Docker Hub

hub.docker.com/_/ros

hub.docker.com/_/gazebo

A tip of the hat to OSRF & IRIM“...to support the development, distribution,and adoption of open source software foruse in robotics research, education, andproduct development.”“...to create new collaborative opportunities forfaculty, strengthen partnerships with industry
and government, and maximize the societal
impact of the transformative robotics research
conducted at Georgia Tech..”Robot Resources!

rthe eooMy VidRFSO

More on ROS + Docker:
wiki.ros.org/docker
Official Docker Library for ROS:
hub.docker.com/_/ros
ROS Answers Tags:

Slack channel:rosorg/messages/docker
About Me: about.me/ruffin

Josh Ellingson

Docker | Container