General Principles of Intellectual Property: Concepts of Intellectual Proper...
ROS distributed architecture
1. Distributed Architecture,
Deployment and Introspection
Pablo Iñigo Blasco
Grupo de Investigación RTCAR
Robotica y Tecnología de Computadores
Universidad de Sevilla
4. Complex Robotic Software
Architectures
● Non-Functional requirements
● Ubiquity
● High computation power
● Real Time
● Fault Tolerance and Robustness
● Problems
● Integration Problems
● Deployment and Debugging Problems → Need of
complex and powerful tools
5. Problems
● Deployment Problems
● Multiple cpus, multiple cores
● Multiple computers distributed in a network
● Software Engienering related (scalability, reusability, etc.)
● Integration of huge sets of software technologies
● Need of Package reutilization (impossible reinvent the wheel)
● Libraries
● Programming languages
6. ROS Distributed Architecture
● Hybrid P2P Architecture
● Distributed Components
● Severals Node communication
mechanisms (message passing based)
● Focused on node communication
mechanisms
● Free internal node design
7. Nodes (I)
Parameters(*)
● Minimal building block
● Own control flow
Services
● Operative system process
● Reactive and/or proactive NODE
● Any supported language
● Communication mechanisms
● Services
● Topics
● Parameters
Startup
Topics
configuration
.yaml
8. Nodes (II) Example
Parameters
P 1.0
I 1.0
D 1.0
Services
goHome
shutdown
Dyxinamel Servo
Startup_config.yaml
current_pose
P 1.0
I 1.0
D 1.0
goal
9. ROS Distributed Architecture (II) -
Example
Computer A Computer B
RPC RPC
Node services services Node
topic
Node
Central Node Node
Node
topic
Actuators
10. ROS Distributed Architecture:
Pros & Cons
● Advantages:
● Paralelism
● Ubiquity
● Fault Tolerance
●
Modularity – low coupling
● Language Abstraction
●
Disadvantages:
● Real Time applications
●
Heavier Robotic Systems
● Additional requirements:
● Deployment tools for distributed architecture
● Distributed logging System
●
Remote Introspection Tools
●
16. ROS MASTER
● Hybrid P2P Distributed
Architecture
● Central Information Node
● Capabilities
● Parameter Server
● Resource Localization (White
Pages)
● Service Lookup (Yellow Pages)
17. Nodelets
● Threads
● Compatible node
communication nl
nl
mechanisms NODE
nl
● Zero copy
communication
between nodelets
● Share Machine
NODE
● Only C++
18. Macro - Components (Components
of Components)
Robot A Robot B
Launch Launch
Ros
Robot C Launch Master
Launch
19. Parameters
● Client/Server Model
● Common Variable Information
● Not automatically update inside nodes
● Can be seen as node properties thanks to the
ramming convention
20. Advanced mode communication
mechanisms
● Actions
● Dynamic Reconfigure
● (Custom) Based on state machines and
workflows (SMACH)
● They are based on basic primitives
● Nodes
● Parameters
● Services
21. Actions
● Preemptive tasks
● Non immediate tasks
● Cancelable tasks
● Based on topics
● Examples
● Moving the robot to a target
location
● Performing a laser scan and
returning the resulting point
cloud
● Detecting the handle of a
door
22. Deployment: Launch Files
● Deployment layout of building blocks (nodes)
● Naming pushing
● Startup configuration (direct or yaml files)
● XML syntax
● Itself can be seen as an complex component or
building block
29. References
(1) Iñigo-Blasco, Pablo, Fernando Diaz-del-Rio, Ma Carmen Romero-Ternero, Daniel Cagigas-Muñiz, and Saturnino
Vicente-Diaz. 2012. “Robotics software frameworks for multi-agent robotic systems development” Robotics and
(2) ROS Wiki - http://ros.org
(3) Quigley, Morgan, Brian Gerkey, Ken Conley, Josh Faust, Tully Foote, Jeremy Leibs, Eric Berger, Rob Wheeler,
and Andrew Ng. 2009. ROS: an open-source Robot Operating System. In Open-Source Software workshop of
the International Conference on Robotics and Automation (ICRA). Autonomous Systems (February).