Container-based deployment of ROS applications › wp-content › uploads › 2017 › 03 ›...
Transcript of Container-based deployment of ROS applications › wp-content › uploads › 2017 › 03 ›...
![Page 1: Container-based deployment of ROS applications › wp-content › uploads › 2017 › 03 › ... · Deployment Many definitions with varying scopes.. Turning source code into running](https://reader033.fdocuments.us/reader033/viewer/2022042314/5f02e51c7e708231d4068ab0/html5/thumbnails/1.jpg)
Mathias Lüdtke, Fraunhofer IPA
Container-based deploymentof ROS applications
![Page 2: Container-based deployment of ROS applications › wp-content › uploads › 2017 › 03 › ... · Deployment Many definitions with varying scopes.. Turning source code into running](https://reader033.fdocuments.us/reader033/viewer/2022042314/5f02e51c7e708231d4068ab0/html5/thumbnails/2.jpg)
Structure
● Deployment?
● Container?
● Overview IPDE framework
● Current state
● Outlook
![Page 3: Container-based deployment of ROS applications › wp-content › uploads › 2017 › 03 › ... · Deployment Many definitions with varying scopes.. Turning source code into running](https://reader033.fdocuments.us/reader033/viewer/2022042314/5f02e51c7e708231d4068ab0/html5/thumbnails/3.jpg)
Deployment
● Many definitions with varying scopes..
● Turning source code into running systems– Set-up environment on target platform
– Transfer source code and config
– Install dependencies
– Build source code
– Run application
● Focus on ROS-based applications
![Page 4: Container-based deployment of ROS applications › wp-content › uploads › 2017 › 03 › ... · Deployment Many definitions with varying scopes.. Turning source code into running](https://reader033.fdocuments.us/reader033/viewer/2022042314/5f02e51c7e708231d4068ab0/html5/thumbnails/4.jpg)
ROS developer's workflow
1)Install ROS
2)Prepare catkin workspace
3)git clone, rosinstall
4)rosdep install
5)catkin_make
6)roslaunch ..
7)profit
![Page 5: Container-based deployment of ROS applications › wp-content › uploads › 2017 › 03 › ... · Deployment Many definitions with varying scopes.. Turning source code into running](https://reader033.fdocuments.us/reader033/viewer/2022042314/5f02e51c7e708231d4068ab0/html5/thumbnails/5.jpg)
Software Containers
● Operating-system-level virtualization
● “Light-weight VMs“
● Shipped with Linux mainline kernel
● On top: Docker– Container engine
– Overlay filesystems
– Docker Hub
– Cross-platform Tooling
![Page 6: Container-based deployment of ROS applications › wp-content › uploads › 2017 › 03 › ... · Deployment Many definitions with varying scopes.. Turning source code into running](https://reader033.fdocuments.us/reader033/viewer/2022042314/5f02e51c7e708231d4068ab0/html5/thumbnails/6.jpg)
How does it help?
● Self-contained images
● Images can be run ad-hoc, no booting
● Minimal overhead
● Standardized environment
● Host isolation
● Cloud-ready
![Page 7: Container-based deployment of ROS applications › wp-content › uploads › 2017 › 03 › ... · Deployment Many definitions with varying scopes.. Turning source code into running](https://reader033.fdocuments.us/reader033/viewer/2022042314/5f02e51c7e708231d4068ab0/html5/thumbnails/7.jpg)
Integration Platform &Deployment Environment (IPDE)
● Docker-based deployment system for ROSapplications
● Deployed with Docker ;)
● Integrates software from different sources
● “Extended roslaunch”– Pulls in all dependencies
– Builds source code
– Keeps host clean
![Page 8: Container-based deployment of ROS applications › wp-content › uploads › 2017 › 03 › ... · Deployment Many definitions with varying scopes.. Turning source code into running](https://reader033.fdocuments.us/reader033/viewer/2022042314/5f02e51c7e708231d4068ab0/html5/thumbnails/8.jpg)
Software sources
● ROS packages:– Binary release
– Source release
– Locally developed
● Different stages:– set-up, testing, production, maintenance
● Different users:– developers, system integrators, end users
![Page 9: Container-based deployment of ROS applications › wp-content › uploads › 2017 › 03 › ... · Deployment Many definitions with varying scopes.. Turning source code into running](https://reader033.fdocuments.us/reader033/viewer/2022042314/5f02e51c7e708231d4068ab0/html5/thumbnails/9.jpg)
IPDE overview
Host OS
Docker
IPDE server
ROS
![Page 10: Container-based deployment of ROS applications › wp-content › uploads › 2017 › 03 › ... · Deployment Many definitions with varying scopes.. Turning source code into running](https://reader033.fdocuments.us/reader033/viewer/2022042314/5f02e51c7e708231d4068ab0/html5/thumbnails/10.jpg)
IPDE server
● Server written in Python with Flask
● REST API (XML and JSON)
● Handles all process logic and sessions
● Not involved at application run-time
● Deployed via Docker Hub– tiangolo/uwsgi-nginx-flask:flask :)
● Orchestrated with docker-compose– sameersbn/apt-cacher-ng :)
![Page 11: Container-based deployment of ROS applications › wp-content › uploads › 2017 › 03 › ... · Deployment Many definitions with varying scopes.. Turning source code into running](https://reader033.fdocuments.us/reader033/viewer/2022042314/5f02e51c7e708231d4068ab0/html5/thumbnails/11.jpg)
Session lifecycle
● “remote workspace” → application image
Source container
Ubuntu 14.04
ROS indigo core
IPDE scripts
reapp/core
Build
Application image
Ubuntu 14.04
ROS indigo core
IPDE scripts
reapp/core
![Page 12: Container-based deployment of ROS applications › wp-content › uploads › 2017 › 03 › ... · Deployment Many definitions with varying scopes.. Turning source code into running](https://reader033.fdocuments.us/reader033/viewer/2022042314/5f02e51c7e708231d4068ab0/html5/thumbnails/12.jpg)
IPDE clients
● ReApp project– Eclipse-based Engineering Workbench
– Web-based Solution Wizard
● Factory-in-a-Day– Shell utilities (→ Hands-on session)
– Integration with the Automated Test Framework
![Page 13: Container-based deployment of ROS applications › wp-content › uploads › 2017 › 03 › ... · Deployment Many definitions with varying scopes.. Turning source code into running](https://reader033.fdocuments.us/reader033/viewer/2022042314/5f02e51c7e708231d4068ab0/html5/thumbnails/13.jpg)
Recap & Benefits
● Docker-based cross-platform deploymentsystem for ROS applications
● Simplifies ROS source code workflow
● Turns ROS packages into isolated, self-contained application images
● Sessions allow separation of concerns
● Minimum overhead
● Server and clients freely available
![Page 14: Container-based deployment of ROS applications › wp-content › uploads › 2017 › 03 › ... · Deployment Many definitions with varying scopes.. Turning source code into running](https://reader033.fdocuments.us/reader033/viewer/2022042314/5f02e51c7e708231d4068ab0/html5/thumbnails/14.jpg)
Limitations
● X forwarding is difficult with Docker
● Building from scratch is rather slow
● No persistent local data storage
● Dependency management with rosdep only
● No user access levels
● Only one host is supported for now
![Page 15: Container-based deployment of ROS applications › wp-content › uploads › 2017 › 03 › ... · Deployment Many definitions with varying scopes.. Turning source code into running](https://reader033.fdocuments.us/reader033/viewer/2022042314/5f02e51c7e708231d4068ab0/html5/thumbnails/15.jpg)
Outlook / Nice-to-have
● Multi-host support for distributed application
● Automatic start-up of default applications
● A Web front-end would be great :)
● CLI utilities need polishing:– tab completion
– single tool instead of different scripts
![Page 16: Container-based deployment of ROS applications › wp-content › uploads › 2017 › 03 › ... · Deployment Many definitions with varying scopes.. Turning source code into running](https://reader033.fdocuments.us/reader033/viewer/2022042314/5f02e51c7e708231d4068ab0/html5/thumbnails/16.jpg)
Questions?