ROS: yet another middleware Use-cases Conclusion
Objectives of this talk
ROS and middleware
I Quick presentation
I Quick comparison
Use case
I For teaching
I For research
2/21 — Cedric Pradalier — ROS: introduction, concepts and examples
ROS: yet another middleware Use-cases Conclusion
Outline
ROS: yet another middleware
Use-cases
Conclusion
3/21 — Cedric Pradalier — ROS: introduction, concepts and examples
ROS: yet another middleware Use-cases Conclusion
Why a middleware?
I Robotics development for the soft real-time people...
Sensors/Data
Actuators/Action
A-prioriinformation
Learning /Optimisation
Reasoning /Processing
4/21 — Cedric Pradalier — ROS: introduction, concepts and examples
ROS: yet another middleware Use-cases Conclusion
Why a middleware?
I Robotics development for the soft real-time people...
Camera
Pan-Tilt Base
Optimised FaceDetector (Haar Wavelets)
Face DetectionAdaBoost / OpenCV
Camera capture
Pan-Tilt Interface
Face Tracker
Control Parameters
/camera/image
/face/position
/pantilt/command
/tracker/P, /tracker/I, /tracker/D ...
/camera/calibration
5/21 — Cedric Pradalier — ROS: introduction, concepts and examples
ROS: yet another middleware Use-cases Conclusion
Why a middleware?
I Robotics development for the soft real-time people...
Motor Control
SampleAnalyser
Sampling Controller
Weather Station
Phy-ChemProbe
Sampling Selector
Data Storage
ProfileAcquisition
Phy-ChemData
Temp, Wind
Velocity commandPosition output
Position commandPosition output
Analysis Request
Sample DataSamplingPositionvector
Profile +selectedsample data, depth, ...
ProfileSampleDatavector
6/21 — Cedric Pradalier — ROS: introduction, concepts and examples
ROS: yet another middleware Use-cases Conclusion
Examples of middleware for robotics
Limited to the one I used personnally:
I Genom – LAAS
I DDX – CSIRO, maintainer
I Carmen
I IPC
I Yarp
I Moos
I Corba
I RTI – commercial
I ADTF – commercial
I ROS – core contributions
7/21 — Cedric Pradalier — ROS: introduction, concepts and examples
ROS: yet another middleware Use-cases Conclusion
ROS
I Stands for Robot Operating System, but runs on top of existing OSlike (mostly) Linux
I Originates from SAIL/Willow Garage, now moved to OSRF
I Combines several features into a consistent project:I A software distribution with a dependency mechanismI An integrated build systemI A communication middlewareI Helper tools: visualization, record/replay, etc.
I Provides client libraries for C++, Python, lisp; experimental ones forJava, Lua
8/21 — Cedric Pradalier — ROS: introduction, concepts and examples
ROS: yet another middleware Use-cases Conclusion
ROS, the distribution platform
Software packages, organized in stacks/packages, that cover many areasof robotics:
I perception
I state estimation
I mapping
I navigation
I planning
I object detection
I grasping
I etc.
9/21 — Cedric Pradalier — ROS: introduction, concepts and examples
ROS: yet another middleware Use-cases Conclusion
ROS, the robotics middleware
I Components (nodes) that may run on different computers
I Data exchanged through topics (event-based) and services (RPC),wrapper generated from descriptions
I TCP and UDP transport layers
I Standardized messages (images, laser scans, point clouds, IMU,GPS, joystick)
I Parameter server
I Visualization of data (rviz)
I Record and replay (bags)
10/21 — Cedric Pradalier — ROS: introduction, concepts and examples
ROS: yet another middleware Use-cases Conclusion
ROS, status and future – from 2012
I Work force: currently 60 full-time positions at Willow Garage +many contributors from academia.
I Being a meeting point, ROS has lead to dramatic improvements inthe standardization of robotics software.
I Challenges: maintenance of core, integration of third-partycontributions, further standardization, application to industry.
11/21 — Cedric Pradalier — ROS: introduction, concepts and examples
ROS: yet another middleware Use-cases Conclusion
ROS, why do I use it?
Software
I Excellent documentation and tutorials
I Reliable software tools for data management
I Standardization of most message type (image, geometry, ...)
I Reliable communication system.
I Availability of most functionality I need to build an application.
I Link with OpenCV and PCL.
Education
I Excellent documentation and tutorials
I Lot of resources to let students focus on the important stuff.
12/21 — Cedric Pradalier — ROS: introduction, concepts and examples
ROS: yet another middleware Use-cases Conclusion
ROS, what I don’t like
Software
I Heavy: design for big machines, lot of RAM, lot of hard-drive.
I Not super high-performance communication system.
I Low-performance of communication system in python.
I New build system (catkin)
Management
I Very hard to do core contributions
I Uncertainty on future management
13/21 — Cedric Pradalier — ROS: introduction, concepts and examples
ROS: yet another middleware Use-cases Conclusion
Outline
ROS: yet another middleware
Use-cases
Conclusion
14/21 — Cedric Pradalier — ROS: introduction, concepts and examples
ROS: yet another middleware Use-cases Conclusion
Autonomous Shore Inspection
15/21 — Cedric Pradalier — ROS: introduction, concepts and examples
ROS: yet another middleware Use-cases Conclusion
A ROS system
System
I Delivered as a ROS system by Clearpath Robotics
I Mix of Python and C++ sensor/actuator interfaces: open-source,changed/improved most of them since delivery.
I Standard message for commands and most data.
ROS advantage
I Simplification of development
I Simplification of data monitoring and logging from ground station.
16/21 — Cedric Pradalier — ROS: introduction, concepts and examples
ROS: yet another middleware Use-cases Conclusion
Robotic classes with V-REP
17/21 — Cedric Pradalier — ROS: introduction, concepts and examples
ROS: yet another middleware Use-cases Conclusion
A ROS system
System
I Integration of ROS as a plugin in V-REP.
I Simple use by students, simple scene creation.
I Standard message for commands and most data.
I Simplification of data monitoring .
Why not Gazebo?
I Not reliable enough when starting designing the classes.
18/21 — Cedric Pradalier — ROS: introduction, concepts and examples
ROS: yet another middleware Use-cases Conclusion
Outline
ROS: yet another middleware
Use-cases
Conclusion
19/21 — Cedric Pradalier — ROS: introduction, concepts and examples
ROS: yet another middleware Use-cases Conclusion
Conclusion
ROS
I Core set of tools in all my developments.
I Fits most needs by combining communications, build-systems andreach software ecosystem.
I Enabler for most research needs.
I Enabler for robotic education.
The final middleware?
I Space for improvement.
I (Hopefully) open enough to let the community take charge evenwithout Willow Garage.
I Better support for other OS?
20/21 — Cedric Pradalier — ROS: introduction, concepts and examples