SlideShare uma empresa Scribd logo
1 de 29
Baixar para ler offline
Distributed Architecture,
Deployment and Introspection


                          Pablo Iñigo Blasco
              Grupo de Investigación RTCAR
     Robotica y Tecnología de Computadores
                         Universidad de Sevilla
Contents
●   Distributed Architecture
●   ROS Architecture
●   Nodes
●   Communication mechanisms
●   Introspection Tools
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
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
ROS Distributed Architecture
●   Hybrid P2P Architecture
●   Distributed Components
●   Severals Node communication
    mechanisms (message passing based)
●   Focused on node communication
    mechanisms
●   Free internal node design
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
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
ROS Distributed Architecture (II) -
             Example
    Computer A                                           Computer B

                 RPC            RPC
        Node     services       services   Node

                 topic


                                                  Node
Central Node       Node
   Node
                            topic



                                                          Actuators
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

    ●
Message
●   Data Structure
                                     my_package/msg/example.msg
●   Message Interface Description
    File                                 string field1
                                         int8 field2
●   Code generation                      bool field3
                                         other_pkg_msg/custom_msg field4
●   Specific language proxy code
    generation
    ●   C++, Python..
●   Conveys
●   Message packages
    ●


    ●
        geometry_msgs
        sensor_msgs
                                    .h
                                    .h             .py             .java
    ●   navigation_msgs
Messages (II) – Example
                    $ rospack find geometry_msgs`/msg

    Point32.msg                        PoseWithCovarianceStamped.msg
    Polygon.msg                        Transform.msg
    PoseArray.msg                      TwistStamped.msg
    PoseWithCovariance.msg             Vector3.msg
                                       WrenchStamped.msg
    QuaternionStamped.msg
                                       PointStamped.msg
    Twist.msg
                                       Pose2D.msg
    TwistWithCovarianceStamped.msg
                                       PoseStamped.msg
    Wrench.msg
                                       Quaternion.msg
    Point.msg
                                       TransformStamped.msg
    PolygonStamped.msg
                                       TwistWithCovariance.msg
    Pose.msg
                                       Vector3Stamped.msg

●
Message (III) Examples
geometry_msgs/PoseWithCovariance        sensor_msgs/LaserScan

                                        Header header
geometry_msgs/Pose pose
                                         uint32 seq
 geometry_msgs/Point position
                                         time stamp
  float64 x
                                         string frame_id
  float64 y
                                        float32 angle_min
  float64 z
                                        float32 angle_max
 geometry_msgs/Quaternion orientation
                                        float32 angle_increment
  float64 x
                                        float32 time_increment
  float64 y
                                        float32 scan_time
  float64 z
                                        float32 range_min
  float64 w
                                        float32 range_max
float64[36] covariance                  float32[] ranges
                                        float32[] intensities
Topics
●   Publish/Subscribe Models
    ●   Proactive nodes (agents)
    ●   NxM

●   Promotes the instrospection
    mechanisms
●   Asynchronous
●   Several configurations (buffer,
    latching, etc.)

●   Underlying Transport Layer:
    ●   TCP, UDP, Shared Memory
    ●   Others Transport → rosserial,
        ethercat
Services
●   RPC                            my_package/srv/example.srv

●   Purely Reactive            string request_field1
                               int8 request_field2
                               ---
    ●   Request/Response       string response_field1
                               other_pkg_msg/custom_msg response_field2

●   Stable Functionality
    Interface
●   Specific language
    proxy code generation
    ●   C++, Python..          .h
                               .h             .py             .java
●   Typical in others RSFs
ROS MASTER
●   Hybrid P2P Distributed
    Architecture
●   Central Information Node

●   Capabilities
    ●   Parameter Server
    ●   Resource Localization (White
        Pages)
    ●   Service Lookup (Yellow Pages)
Nodelets
●   Threads
●   Compatible node
    communication               nl
                                             nl
    mechanisms                        NODE
                                 nl
●   Zero copy
    communication
    between nodelets
●   Share Machine
                               NODE
●   Only C++
Macro - Components (Components
         of Components)
    Robot A                           Robot B
                 Launch                         Launch




                                             Ros
       Robot C            Launch            Master




                                   Launch
Parameters
●   Client/Server Model
●   Common Variable Information
●   Not automatically update inside nodes
●   Can be seen as node properties thanks to the
    ramming convention
Advanced mode communication
            mechanisms
●   Actions
●   Dynamic Reconfigure
●   (Custom) Based on state machines and
    workflows (SMACH)

●   They are based on basic primitives
    ●   Nodes
    ●   Parameters
    ●   Services
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
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
Tools - Remote Introspection
●   Topics (rostopic)
●   Services (rosservice)
●   Nodes (rosnode)
●   Parameters (rosparam)
●   Messages (rosmsg)
●   Services (rossrv)
●   General debugging (roswtf)
Tools - RX-Graph
DEMO AMCL
Introspection tools - Rxplot




●   Monitor numerical data field at runtime
●   Example
    $ rxplot /odom/pose/pose/position/x /odom/pose/pose/position/y
Introspection tools - Rviz

●   Graphical
    Representation of
    message

●   Typical messages
    visualization plugins
DEMO AMCL
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).

Mais conteúdo relacionado

Mais procurados

Deep learning with tensorflow
Deep learning with tensorflowDeep learning with tensorflow
Deep learning with tensorflowCharmi Chokshi
 
Artificial Intelligence -- Search Algorithms
Artificial Intelligence-- Search Algorithms Artificial Intelligence-- Search Algorithms
Artificial Intelligence -- Search Algorithms Syed Ahmed
 
GAN - Theory and Applications
GAN - Theory and ApplicationsGAN - Theory and Applications
GAN - Theory and ApplicationsEmanuele Ghelfi
 
Introduction to Grad-CAM (complete version)
Introduction to Grad-CAM (complete version)Introduction to Grad-CAM (complete version)
Introduction to Grad-CAM (complete version)Hsing-chuan Hsieh
 
ProLog (Artificial Intelligence) Introduction
ProLog (Artificial Intelligence) IntroductionProLog (Artificial Intelligence) Introduction
ProLog (Artificial Intelligence) Introductionwahab khan
 
Self-Attention with Linear Complexity
Self-Attention with Linear ComplexitySelf-Attention with Linear Complexity
Self-Attention with Linear ComplexitySangwoo Mo
 
Transformer in Computer Vision
Transformer in Computer VisionTransformer in Computer Vision
Transformer in Computer VisionDongmin Choi
 
Analysis of KinectFusion
Analysis of KinectFusionAnalysis of KinectFusion
Analysis of KinectFusionDong-Won Shin
 
Intelligent mobile Robotics & Perception SystemsIntelligent mobile Robotics ...
Intelligent mobile Robotics  & Perception SystemsIntelligent mobile Robotics ...Intelligent mobile Robotics  & Perception SystemsIntelligent mobile Robotics ...
Intelligent mobile Robotics & Perception SystemsIntelligent mobile Robotics ...Gouasmia Zakaria
 
Deep learning based object detection basics
Deep learning based object detection basicsDeep learning based object detection basics
Deep learning based object detection basicsBrodmann17
 
[AIoTLab]attention mechanism.pptx
[AIoTLab]attention mechanism.pptx[AIoTLab]attention mechanism.pptx
[AIoTLab]attention mechanism.pptxTuCaoMinh2
 
Batch normalization presentation
Batch normalization presentationBatch normalization presentation
Batch normalization presentationOwin Will
 
Machine Learning - Object Detection and Classification
Machine Learning - Object Detection and ClassificationMachine Learning - Object Detection and Classification
Machine Learning - Object Detection and ClassificationVikas Jain
 
Thai Text processing by Transfer Learning using Transformer (Bert)
Thai Text processing by Transfer Learning using Transformer (Bert)Thai Text processing by Transfer Learning using Transformer (Bert)
Thai Text processing by Transfer Learning using Transformer (Bert)Kobkrit Viriyayudhakorn
 
Optimization in deep learning
Optimization in deep learningOptimization in deep learning
Optimization in deep learningRakshith Sathish
 

Mais procurados (20)

Deep learning with tensorflow
Deep learning with tensorflowDeep learning with tensorflow
Deep learning with tensorflow
 
Artificial Intelligence -- Search Algorithms
Artificial Intelligence-- Search Algorithms Artificial Intelligence-- Search Algorithms
Artificial Intelligence -- Search Algorithms
 
GAN - Theory and Applications
GAN - Theory and ApplicationsGAN - Theory and Applications
GAN - Theory and Applications
 
Introduction to Grad-CAM (complete version)
Introduction to Grad-CAM (complete version)Introduction to Grad-CAM (complete version)
Introduction to Grad-CAM (complete version)
 
ProLog (Artificial Intelligence) Introduction
ProLog (Artificial Intelligence) IntroductionProLog (Artificial Intelligence) Introduction
ProLog (Artificial Intelligence) Introduction
 
Self-Attention with Linear Complexity
Self-Attention with Linear ComplexitySelf-Attention with Linear Complexity
Self-Attention with Linear Complexity
 
Transformer in Computer Vision
Transformer in Computer VisionTransformer in Computer Vision
Transformer in Computer Vision
 
=SLAM ppt.pdf
=SLAM ppt.pdf=SLAM ppt.pdf
=SLAM ppt.pdf
 
Analysis of KinectFusion
Analysis of KinectFusionAnalysis of KinectFusion
Analysis of KinectFusion
 
Intelligent mobile Robotics & Perception SystemsIntelligent mobile Robotics ...
Intelligent mobile Robotics  & Perception SystemsIntelligent mobile Robotics ...Intelligent mobile Robotics  & Perception SystemsIntelligent mobile Robotics ...
Intelligent mobile Robotics & Perception SystemsIntelligent mobile Robotics ...
 
Unit1: Introduction to AI
Unit1: Introduction to AIUnit1: Introduction to AI
Unit1: Introduction to AI
 
Deep learning based object detection basics
Deep learning based object detection basicsDeep learning based object detection basics
Deep learning based object detection basics
 
[AIoTLab]attention mechanism.pptx
[AIoTLab]attention mechanism.pptx[AIoTLab]attention mechanism.pptx
[AIoTLab]attention mechanism.pptx
 
Planning
Planning Planning
Planning
 
Batch normalization presentation
Batch normalization presentationBatch normalization presentation
Batch normalization presentation
 
Transformers AI PPT.pptx
Transformers AI PPT.pptxTransformers AI PPT.pptx
Transformers AI PPT.pptx
 
Machine Learning - Object Detection and Classification
Machine Learning - Object Detection and ClassificationMachine Learning - Object Detection and Classification
Machine Learning - Object Detection and Classification
 
Thai Text processing by Transfer Learning using Transformer (Bert)
Thai Text processing by Transfer Learning using Transformer (Bert)Thai Text processing by Transfer Learning using Transformer (Bert)
Thai Text processing by Transfer Learning using Transformer (Bert)
 
Optimization in deep learning
Optimization in deep learningOptimization in deep learning
Optimization in deep learning
 
"Attention Is All You Need" presented by Maroua Maachou (Veepee)
"Attention Is All You Need" presented by Maroua Maachou (Veepee)"Attention Is All You Need" presented by Maroua Maachou (Veepee)
"Attention Is All You Need" presented by Maroua Maachou (Veepee)
 

Destaque

Introduction to ROS (Robot Operating System)
Introduction to ROS (Robot Operating System) Introduction to ROS (Robot Operating System)
Introduction to ROS (Robot Operating System) hvcoup
 
Raspberry Pi + ROS
Raspberry Pi + ROSRaspberry Pi + ROS
Raspberry Pi + ROSArnoldBail
 
Robot operating systems (ros) overview & (1)
Robot operating systems (ros) overview & (1)Robot operating systems (ros) overview & (1)
Robot operating systems (ros) overview & (1)Piyush Chand
 
ROS - Robotics Operation System
ROS - Robotics Operation SystemROS - Robotics Operation System
ROS - Robotics Operation Systemhudvin
 
An Introduction to ROS-Industrial
An Introduction to ROS-IndustrialAn Introduction to ROS-Industrial
An Introduction to ROS-IndustrialClay Flannigan
 
ROS Hands-On Intro/Tutorial (Robotic Vision Summer School 2015) #RVSS #ACRV
ROS Hands-On Intro/Tutorial (Robotic Vision Summer School 2015) #RVSS #ACRVROS Hands-On Intro/Tutorial (Robotic Vision Summer School 2015) #RVSS #ACRV
ROS Hands-On Intro/Tutorial (Robotic Vision Summer School 2015) #RVSS #ACRVJuxi Leitner
 
COSCUP 2016 - ROS + Gazebo機器人模擬器工作坊
COSCUP 2016 - ROS + Gazebo機器人模擬器工作坊COSCUP 2016 - ROS + Gazebo機器人模擬器工作坊
COSCUP 2016 - ROS + Gazebo機器人模擬器工作坊Po-Jen Lai
 
Cvpr2010 open source vision software, intro and training part vi robot operat...
Cvpr2010 open source vision software, intro and training part vi robot operat...Cvpr2010 open source vision software, intro and training part vi robot operat...
Cvpr2010 open source vision software, intro and training part vi robot operat...zukun
 
Gazebo, 9개의 파일로 간단히 시작하는 로봇 시뮬레이션
Gazebo, 9개의 파일로 간단히 시작하는 로봇 시뮬레이션Gazebo, 9개의 파일로 간단히 시작하는 로봇 시뮬레이션
Gazebo, 9개의 파일로 간단히 시작하는 로봇 시뮬레이션Seongjun Kim
 
Modeling and Control Robot Arm using Gazebo, MoveIt!, ros_control
Modeling and Control Robot Arm using Gazebo, MoveIt!, ros_controlModeling and Control Robot Arm using Gazebo, MoveIt!, ros_control
Modeling and Control Robot Arm using Gazebo, MoveIt!, ros_controlByeongKyu Ahn
 
Creating the Competitive Edge: Successfully establish, lead and mentor a stud...
Creating the Competitive Edge: Successfully establish, lead and mentor a stud...Creating the Competitive Edge: Successfully establish, lead and mentor a stud...
Creating the Competitive Edge: Successfully establish, lead and mentor a stud...Conny Liegl
 
GESTURE BASED WIRELESS SHADOW ROBOT !
GESTURE BASED WIRELESS SHADOW ROBOT !GESTURE BASED WIRELESS SHADOW ROBOT !
GESTURE BASED WIRELESS SHADOW ROBOT !Sharif Raihan Kabir
 
모두가 함께하는ROS 워크숍
모두가 함께하는ROS 워크숍모두가 함께하는ROS 워크숍
모두가 함께하는ROS 워크숍Suhan Park
 
自律移動ロボット向けハード・ソフト協調のためのコンポーネント設計支援ツール
自律移動ロボット向けハード・ソフト協調のためのコンポーネント設計支援ツール自律移動ロボット向けハード・ソフト協調のためのコンポーネント設計支援ツール
自律移動ロボット向けハード・ソフト協調のためのコンポーネント設計支援ツールKazushi Yamashina
 
FPGA処理をROSコンポーネント化する自動設計環境
FPGA処理をROSコンポーネント化する自動設計環境FPGA処理をROSコンポーネント化する自動設計環境
FPGA処理をROSコンポーネント化する自動設計環境Kazushi Yamashina
 
20161006 rsp2016 ohkawa-presen
20161006 rsp2016 ohkawa-presen20161006 rsp2016 ohkawa-presen
20161006 rsp2016 ohkawa-presenTakeshi Ohkawa
 
cReComp : Automated Design Tool for ROS-Compliant FPGA Component
cReComp : Automated Design Tool  for ROS-Compliant FPGA Component cReComp : Automated Design Tool  for ROS-Compliant FPGA Component
cReComp : Automated Design Tool for ROS-Compliant FPGA Component Kazushi Yamashina
 

Destaque (20)

Introduction to ROS (Robot Operating System)
Introduction to ROS (Robot Operating System) Introduction to ROS (Robot Operating System)
Introduction to ROS (Robot Operating System)
 
Raspberry Pi + ROS
Raspberry Pi + ROSRaspberry Pi + ROS
Raspberry Pi + ROS
 
Robot operating systems (ros) overview & (1)
Robot operating systems (ros) overview & (1)Robot operating systems (ros) overview & (1)
Robot operating systems (ros) overview & (1)
 
ROS - Robotics Operation System
ROS - Robotics Operation SystemROS - Robotics Operation System
ROS - Robotics Operation System
 
An Introduction to ROS-Industrial
An Introduction to ROS-IndustrialAn Introduction to ROS-Industrial
An Introduction to ROS-Industrial
 
ROS Hands-On Intro/Tutorial (Robotic Vision Summer School 2015) #RVSS #ACRV
ROS Hands-On Intro/Tutorial (Robotic Vision Summer School 2015) #RVSS #ACRVROS Hands-On Intro/Tutorial (Robotic Vision Summer School 2015) #RVSS #ACRV
ROS Hands-On Intro/Tutorial (Robotic Vision Summer School 2015) #RVSS #ACRV
 
COSCUP 2016 - ROS + Gazebo機器人模擬器工作坊
COSCUP 2016 - ROS + Gazebo機器人模擬器工作坊COSCUP 2016 - ROS + Gazebo機器人模擬器工作坊
COSCUP 2016 - ROS + Gazebo機器人模擬器工作坊
 
My ROS Experience
My ROS ExperienceMy ROS Experience
My ROS Experience
 
Cvpr2010 open source vision software, intro and training part vi robot operat...
Cvpr2010 open source vision software, intro and training part vi robot operat...Cvpr2010 open source vision software, intro and training part vi robot operat...
Cvpr2010 open source vision software, intro and training part vi robot operat...
 
Gazebo, 9개의 파일로 간단히 시작하는 로봇 시뮬레이션
Gazebo, 9개의 파일로 간단히 시작하는 로봇 시뮬레이션Gazebo, 9개의 파일로 간단히 시작하는 로봇 시뮬레이션
Gazebo, 9개의 파일로 간단히 시작하는 로봇 시뮬레이션
 
Modeling and Control Robot Arm using Gazebo, MoveIt!, ros_control
Modeling and Control Robot Arm using Gazebo, MoveIt!, ros_controlModeling and Control Robot Arm using Gazebo, MoveIt!, ros_control
Modeling and Control Robot Arm using Gazebo, MoveIt!, ros_control
 
Creating the Competitive Edge: Successfully establish, lead and mentor a stud...
Creating the Competitive Edge: Successfully establish, lead and mentor a stud...Creating the Competitive Edge: Successfully establish, lead and mentor a stud...
Creating the Competitive Edge: Successfully establish, lead and mentor a stud...
 
GESTURE BASED WIRELESS SHADOW ROBOT !
GESTURE BASED WIRELESS SHADOW ROBOT !GESTURE BASED WIRELESS SHADOW ROBOT !
GESTURE BASED WIRELESS SHADOW ROBOT !
 
모두가 함께하는ROS 워크숍
모두가 함께하는ROS 워크숍모두가 함께하는ROS 워크숍
모두가 함께하는ROS 워크숍
 
Yauc2015 publish
Yauc2015 publishYauc2015 publish
Yauc2015 publish
 
自律移動ロボット向けハード・ソフト協調のためのコンポーネント設計支援ツール
自律移動ロボット向けハード・ソフト協調のためのコンポーネント設計支援ツール自律移動ロボット向けハード・ソフト協調のためのコンポーネント設計支援ツール
自律移動ロボット向けハード・ソフト協調のためのコンポーネント設計支援ツール
 
FPGA処理をROSコンポーネント化する自動設計環境
FPGA処理をROSコンポーネント化する自動設計環境FPGA処理をROSコンポーネント化する自動設計環境
FPGA処理をROSコンポーネント化する自動設計環境
 
20161006 rsp2016 ohkawa-presen
20161006 rsp2016 ohkawa-presen20161006 rsp2016 ohkawa-presen
20161006 rsp2016 ohkawa-presen
 
cReComp : Automated Design Tool for ROS-Compliant FPGA Component
cReComp : Automated Design Tool  for ROS-Compliant FPGA Component cReComp : Automated Design Tool  for ROS-Compliant FPGA Component
cReComp : Automated Design Tool for ROS-Compliant FPGA Component
 
ROS ROS
ROS ROSROS ROS
ROS ROS
 

Semelhante a ROS distributed architecture

mRuby - Powerful Software for Embedded System Development
mRuby - Powerful Software for Embedded System DevelopmentmRuby - Powerful Software for Embedded System Development
mRuby - Powerful Software for Embedded System DevelopmentKazuhiro Koga 古賀一博
 
4th European Lisp Symposium: Jobim: an Actors Library for the Clojure Program...
4th European Lisp Symposium: Jobim: an Actors Library for the Clojure Program...4th European Lisp Symposium: Jobim: an Actors Library for the Clojure Program...
4th European Lisp Symposium: Jobim: an Actors Library for the Clojure Program...Antonio Garrote Hernández
 
Ultra-scalable Architectures for Telecommunications and Web 2.0 Services
Ultra-scalable Architectures for Telecommunications and Web 2.0 ServicesUltra-scalable Architectures for Telecommunications and Web 2.0 Services
Ultra-scalable Architectures for Telecommunications and Web 2.0 ServicesMauricio Arango
 
Lowcode: Extending Smalltalk with C Types to Improve Performance
Lowcode: Extending Smalltalk with C Types to Improve PerformanceLowcode: Extending Smalltalk with C Types to Improve Performance
Lowcode: Extending Smalltalk with C Types to Improve PerformanceESUG
 
Presentation of the open source CFD code Code_Saturne
Presentation of the open source CFD code Code_SaturnePresentation of the open source CFD code Code_Saturne
Presentation of the open source CFD code Code_SaturneRenuda SARL
 
From Silicon to Software - IIT Madras
From Silicon to Software - IIT MadrasFrom Silicon to Software - IIT Madras
From Silicon to Software - IIT MadrasAanjhan Ranganathan
 
Unmanaged Parallelization via P/Invoke
Unmanaged Parallelization via P/InvokeUnmanaged Parallelization via P/Invoke
Unmanaged Parallelization via P/InvokeDmitri Nesteruk
 
고급컴파일러구성론_개레_230303.pptx
고급컴파일러구성론_개레_230303.pptx고급컴파일러구성론_개레_230303.pptx
고급컴파일러구성론_개레_230303.pptxssuser1e7611
 
CS 626 - March : Capsicum: Practical Capabilities for UNIX
CS 626 - March : Capsicum: Practical Capabilities for UNIXCS 626 - March : Capsicum: Practical Capabilities for UNIX
CS 626 - March : Capsicum: Practical Capabilities for UNIXruchith
 
Metrics ekon 14_2_kleiner
Metrics ekon 14_2_kleinerMetrics ekon 14_2_kleiner
Metrics ekon 14_2_kleinerMax Kleiner
 
Close encounters in MDD: when Models meet Code
Close encounters in MDD: when Models meet CodeClose encounters in MDD: when Models meet Code
Close encounters in MDD: when Models meet Codelbergmans
 
Close Encounters in MDD: when models meet code
Close Encounters in MDD: when models meet codeClose Encounters in MDD: when models meet code
Close Encounters in MDD: when models meet codelbergmans
 
Understanding the Dalvik bytecode with the Dedexer tool
Understanding the Dalvik bytecode with the Dedexer toolUnderstanding the Dalvik bytecode with the Dedexer tool
Understanding the Dalvik bytecode with the Dedexer toolGabor Paller
 
Hunting and Exploiting Bugs in Kernel Drivers - DefCamp 2012
Hunting and Exploiting Bugs in Kernel Drivers - DefCamp 2012Hunting and Exploiting Bugs in Kernel Drivers - DefCamp 2012
Hunting and Exploiting Bugs in Kernel Drivers - DefCamp 2012DefCamp
 
Introduction to ZeroMQ - eSpace TechTalk
Introduction to ZeroMQ - eSpace TechTalkIntroduction to ZeroMQ - eSpace TechTalk
Introduction to ZeroMQ - eSpace TechTalkMahmoud Said
 
Helidon Nima - Loom based microserfice framework.pptx
Helidon Nima - Loom based microserfice framework.pptxHelidon Nima - Loom based microserfice framework.pptx
Helidon Nima - Loom based microserfice framework.pptxDmitry Kornilov
 

Semelhante a ROS distributed architecture (20)

mRuby - Powerful Software for Embedded System Development
mRuby - Powerful Software for Embedded System DevelopmentmRuby - Powerful Software for Embedded System Development
mRuby - Powerful Software for Embedded System Development
 
4th European Lisp Symposium: Jobim: an Actors Library for the Clojure Program...
4th European Lisp Symposium: Jobim: an Actors Library for the Clojure Program...4th European Lisp Symposium: Jobim: an Actors Library for the Clojure Program...
4th European Lisp Symposium: Jobim: an Actors Library for the Clojure Program...
 
Ultra-scalable Architectures for Telecommunications and Web 2.0 Services
Ultra-scalable Architectures for Telecommunications and Web 2.0 ServicesUltra-scalable Architectures for Telecommunications and Web 2.0 Services
Ultra-scalable Architectures for Telecommunications and Web 2.0 Services
 
Lowcode: Extending Smalltalk with C Types to Improve Performance
Lowcode: Extending Smalltalk with C Types to Improve PerformanceLowcode: Extending Smalltalk with C Types to Improve Performance
Lowcode: Extending Smalltalk with C Types to Improve Performance
 
Presentation of the open source CFD code Code_Saturne
Presentation of the open source CFD code Code_SaturnePresentation of the open source CFD code Code_Saturne
Presentation of the open source CFD code Code_Saturne
 
From Silicon to Software - IIT Madras
From Silicon to Software - IIT MadrasFrom Silicon to Software - IIT Madras
From Silicon to Software - IIT Madras
 
Unmanaged Parallelization via P/Invoke
Unmanaged Parallelization via P/InvokeUnmanaged Parallelization via P/Invoke
Unmanaged Parallelization via P/Invoke
 
25-MPI-OpenMP.pptx
25-MPI-OpenMP.pptx25-MPI-OpenMP.pptx
25-MPI-OpenMP.pptx
 
Protocol Buffers
Protocol BuffersProtocol Buffers
Protocol Buffers
 
Concept of thread
Concept of threadConcept of thread
Concept of thread
 
고급컴파일러구성론_개레_230303.pptx
고급컴파일러구성론_개레_230303.pptx고급컴파일러구성론_개레_230303.pptx
고급컴파일러구성론_개레_230303.pptx
 
05 defense
05 defense05 defense
05 defense
 
CS 626 - March : Capsicum: Practical Capabilities for UNIX
CS 626 - March : Capsicum: Practical Capabilities for UNIXCS 626 - March : Capsicum: Practical Capabilities for UNIX
CS 626 - March : Capsicum: Practical Capabilities for UNIX
 
Metrics ekon 14_2_kleiner
Metrics ekon 14_2_kleinerMetrics ekon 14_2_kleiner
Metrics ekon 14_2_kleiner
 
Close encounters in MDD: when Models meet Code
Close encounters in MDD: when Models meet CodeClose encounters in MDD: when Models meet Code
Close encounters in MDD: when Models meet Code
 
Close Encounters in MDD: when models meet code
Close Encounters in MDD: when models meet codeClose Encounters in MDD: when models meet code
Close Encounters in MDD: when models meet code
 
Understanding the Dalvik bytecode with the Dedexer tool
Understanding the Dalvik bytecode with the Dedexer toolUnderstanding the Dalvik bytecode with the Dedexer tool
Understanding the Dalvik bytecode with the Dedexer tool
 
Hunting and Exploiting Bugs in Kernel Drivers - DefCamp 2012
Hunting and Exploiting Bugs in Kernel Drivers - DefCamp 2012Hunting and Exploiting Bugs in Kernel Drivers - DefCamp 2012
Hunting and Exploiting Bugs in Kernel Drivers - DefCamp 2012
 
Introduction to ZeroMQ - eSpace TechTalk
Introduction to ZeroMQ - eSpace TechTalkIntroduction to ZeroMQ - eSpace TechTalk
Introduction to ZeroMQ - eSpace TechTalk
 
Helidon Nima - Loom based microserfice framework.pptx
Helidon Nima - Loom based microserfice framework.pptxHelidon Nima - Loom based microserfice framework.pptx
Helidon Nima - Loom based microserfice framework.pptx
 

Mais de Pablo Iñigo Blasco

Introducción a la navegación de robots en ambientes inteligentes
Introducción a la navegación de robots en ambientes inteligentesIntroducción a la navegación de robots en ambientes inteligentes
Introducción a la navegación de robots en ambientes inteligentesPablo Iñigo Blasco
 
ROS - Jornadas de la ingeniería cádiz-2011
ROS - Jornadas de la ingeniería cádiz-2011ROS - Jornadas de la ingeniería cádiz-2011
ROS - Jornadas de la ingeniería cádiz-2011Pablo Iñigo Blasco
 
Computación en la Nube con Amazon EC2
Computación en la Nube con Amazon EC2Computación en la Nube con Amazon EC2
Computación en la Nube con Amazon EC2Pablo Iñigo Blasco
 

Mais de Pablo Iñigo Blasco (8)

Introducción a la navegación de robots en ambientes inteligentes
Introducción a la navegación de robots en ambientes inteligentesIntroducción a la navegación de robots en ambientes inteligentes
Introducción a la navegación de robots en ambientes inteligentes
 
Ros platform overview
Ros platform overviewRos platform overview
Ros platform overview
 
ROS Overview - Málaga 2012
ROS Overview - Málaga 2012ROS Overview - Málaga 2012
ROS Overview - Málaga 2012
 
Ros y sistemas multi agentes
Ros y sistemas multi agentesRos y sistemas multi agentes
Ros y sistemas multi agentes
 
ROS - Jornadas de la ingeniería cádiz-2011
ROS - Jornadas de la ingeniería cádiz-2011ROS - Jornadas de la ingeniería cádiz-2011
ROS - Jornadas de la ingeniería cádiz-2011
 
Introducción a ROS
Introducción a ROSIntroducción a ROS
Introducción a ROS
 
Computación en la Nube con Amazon EC2
Computación en la Nube con Amazon EC2Computación en la Nube con Amazon EC2
Computación en la Nube con Amazon EC2
 
Simulation in Robotics
Simulation in RoboticsSimulation in Robotics
Simulation in Robotics
 

Último

Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...
Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...
Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...EduSkills OECD
 
On National Teacher Day, meet the 2024-25 Kenan Fellows
On National Teacher Day, meet the 2024-25 Kenan FellowsOn National Teacher Day, meet the 2024-25 Kenan Fellows
On National Teacher Day, meet the 2024-25 Kenan FellowsMebane Rash
 
Unit-V; Pricing (Pharma Marketing Management).pptx
Unit-V; Pricing (Pharma Marketing Management).pptxUnit-V; Pricing (Pharma Marketing Management).pptx
Unit-V; Pricing (Pharma Marketing Management).pptxVishalSingh1417
 
Explore beautiful and ugly buildings. Mathematics helps us create beautiful d...
Explore beautiful and ugly buildings. Mathematics helps us create beautiful d...Explore beautiful and ugly buildings. Mathematics helps us create beautiful d...
Explore beautiful and ugly buildings. Mathematics helps us create beautiful d...christianmathematics
 
Ecological Succession. ( ECOSYSTEM, B. Pharmacy, 1st Year, Sem-II, Environmen...
Ecological Succession. ( ECOSYSTEM, B. Pharmacy, 1st Year, Sem-II, Environmen...Ecological Succession. ( ECOSYSTEM, B. Pharmacy, 1st Year, Sem-II, Environmen...
Ecological Succession. ( ECOSYSTEM, B. Pharmacy, 1st Year, Sem-II, Environmen...Shubhangi Sonawane
 
1029 - Danh muc Sach Giao Khoa 10 . pdf
1029 -  Danh muc Sach Giao Khoa 10 . pdf1029 -  Danh muc Sach Giao Khoa 10 . pdf
1029 - Danh muc Sach Giao Khoa 10 . pdfQucHHunhnh
 
ICT Role in 21st Century Education & its Challenges.pptx
ICT Role in 21st Century Education & its Challenges.pptxICT Role in 21st Century Education & its Challenges.pptx
ICT Role in 21st Century Education & its Challenges.pptxAreebaZafar22
 
Unit-IV; Professional Sales Representative (PSR).pptx
Unit-IV; Professional Sales Representative (PSR).pptxUnit-IV; Professional Sales Representative (PSR).pptx
Unit-IV; Professional Sales Representative (PSR).pptxVishalSingh1417
 
Measures of Dispersion and Variability: Range, QD, AD and SD
Measures of Dispersion and Variability: Range, QD, AD and SDMeasures of Dispersion and Variability: Range, QD, AD and SD
Measures of Dispersion and Variability: Range, QD, AD and SDThiyagu K
 
Mixin Classes in Odoo 17 How to Extend Models Using Mixin Classes
Mixin Classes in Odoo 17  How to Extend Models Using Mixin ClassesMixin Classes in Odoo 17  How to Extend Models Using Mixin Classes
Mixin Classes in Odoo 17 How to Extend Models Using Mixin ClassesCeline George
 
Introduction to Nonprofit Accounting: The Basics
Introduction to Nonprofit Accounting: The BasicsIntroduction to Nonprofit Accounting: The Basics
Introduction to Nonprofit Accounting: The BasicsTechSoup
 
Application orientated numerical on hev.ppt
Application orientated numerical on hev.pptApplication orientated numerical on hev.ppt
Application orientated numerical on hev.pptRamjanShidvankar
 
Making and Justifying Mathematical Decisions.pdf
Making and Justifying Mathematical Decisions.pdfMaking and Justifying Mathematical Decisions.pdf
Making and Justifying Mathematical Decisions.pdfChris Hunter
 
1029-Danh muc Sach Giao Khoa khoi 6.pdf
1029-Danh muc Sach Giao Khoa khoi  6.pdf1029-Danh muc Sach Giao Khoa khoi  6.pdf
1029-Danh muc Sach Giao Khoa khoi 6.pdfQucHHunhnh
 
Sociology 101 Demonstration of Learning Exhibit
Sociology 101 Demonstration of Learning ExhibitSociology 101 Demonstration of Learning Exhibit
Sociology 101 Demonstration of Learning Exhibitjbellavia9
 
Role Of Transgenic Animal In Target Validation-1.pptx
Role Of Transgenic Animal In Target Validation-1.pptxRole Of Transgenic Animal In Target Validation-1.pptx
Role Of Transgenic Animal In Target Validation-1.pptxNikitaBankoti2
 
Nutritional Needs Presentation - HLTH 104
Nutritional Needs Presentation - HLTH 104Nutritional Needs Presentation - HLTH 104
Nutritional Needs Presentation - HLTH 104misteraugie
 
Unit-IV- Pharma. Marketing Channels.pptx
Unit-IV- Pharma. Marketing Channels.pptxUnit-IV- Pharma. Marketing Channels.pptx
Unit-IV- Pharma. Marketing Channels.pptxVishalSingh1417
 
General Principles of Intellectual Property: Concepts of Intellectual Proper...
General Principles of Intellectual Property: Concepts of Intellectual  Proper...General Principles of Intellectual Property: Concepts of Intellectual  Proper...
General Principles of Intellectual Property: Concepts of Intellectual Proper...Poonam Aher Patil
 

Último (20)

Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...
Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...
Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...
 
On National Teacher Day, meet the 2024-25 Kenan Fellows
On National Teacher Day, meet the 2024-25 Kenan FellowsOn National Teacher Day, meet the 2024-25 Kenan Fellows
On National Teacher Day, meet the 2024-25 Kenan Fellows
 
Unit-V; Pricing (Pharma Marketing Management).pptx
Unit-V; Pricing (Pharma Marketing Management).pptxUnit-V; Pricing (Pharma Marketing Management).pptx
Unit-V; Pricing (Pharma Marketing Management).pptx
 
Explore beautiful and ugly buildings. Mathematics helps us create beautiful d...
Explore beautiful and ugly buildings. Mathematics helps us create beautiful d...Explore beautiful and ugly buildings. Mathematics helps us create beautiful d...
Explore beautiful and ugly buildings. Mathematics helps us create beautiful d...
 
Ecological Succession. ( ECOSYSTEM, B. Pharmacy, 1st Year, Sem-II, Environmen...
Ecological Succession. ( ECOSYSTEM, B. Pharmacy, 1st Year, Sem-II, Environmen...Ecological Succession. ( ECOSYSTEM, B. Pharmacy, 1st Year, Sem-II, Environmen...
Ecological Succession. ( ECOSYSTEM, B. Pharmacy, 1st Year, Sem-II, Environmen...
 
1029 - Danh muc Sach Giao Khoa 10 . pdf
1029 -  Danh muc Sach Giao Khoa 10 . pdf1029 -  Danh muc Sach Giao Khoa 10 . pdf
1029 - Danh muc Sach Giao Khoa 10 . pdf
 
ICT Role in 21st Century Education & its Challenges.pptx
ICT Role in 21st Century Education & its Challenges.pptxICT Role in 21st Century Education & its Challenges.pptx
ICT Role in 21st Century Education & its Challenges.pptx
 
Unit-IV; Professional Sales Representative (PSR).pptx
Unit-IV; Professional Sales Representative (PSR).pptxUnit-IV; Professional Sales Representative (PSR).pptx
Unit-IV; Professional Sales Representative (PSR).pptx
 
Measures of Dispersion and Variability: Range, QD, AD and SD
Measures of Dispersion and Variability: Range, QD, AD and SDMeasures of Dispersion and Variability: Range, QD, AD and SD
Measures of Dispersion and Variability: Range, QD, AD and SD
 
Mixin Classes in Odoo 17 How to Extend Models Using Mixin Classes
Mixin Classes in Odoo 17  How to Extend Models Using Mixin ClassesMixin Classes in Odoo 17  How to Extend Models Using Mixin Classes
Mixin Classes in Odoo 17 How to Extend Models Using Mixin Classes
 
Introduction to Nonprofit Accounting: The Basics
Introduction to Nonprofit Accounting: The BasicsIntroduction to Nonprofit Accounting: The Basics
Introduction to Nonprofit Accounting: The Basics
 
Application orientated numerical on hev.ppt
Application orientated numerical on hev.pptApplication orientated numerical on hev.ppt
Application orientated numerical on hev.ppt
 
Making and Justifying Mathematical Decisions.pdf
Making and Justifying Mathematical Decisions.pdfMaking and Justifying Mathematical Decisions.pdf
Making and Justifying Mathematical Decisions.pdf
 
1029-Danh muc Sach Giao Khoa khoi 6.pdf
1029-Danh muc Sach Giao Khoa khoi  6.pdf1029-Danh muc Sach Giao Khoa khoi  6.pdf
1029-Danh muc Sach Giao Khoa khoi 6.pdf
 
Sociology 101 Demonstration of Learning Exhibit
Sociology 101 Demonstration of Learning ExhibitSociology 101 Demonstration of Learning Exhibit
Sociology 101 Demonstration of Learning Exhibit
 
Role Of Transgenic Animal In Target Validation-1.pptx
Role Of Transgenic Animal In Target Validation-1.pptxRole Of Transgenic Animal In Target Validation-1.pptx
Role Of Transgenic Animal In Target Validation-1.pptx
 
Asian American Pacific Islander Month DDSD 2024.pptx
Asian American Pacific Islander Month DDSD 2024.pptxAsian American Pacific Islander Month DDSD 2024.pptx
Asian American Pacific Islander Month DDSD 2024.pptx
 
Nutritional Needs Presentation - HLTH 104
Nutritional Needs Presentation - HLTH 104Nutritional Needs Presentation - HLTH 104
Nutritional Needs Presentation - HLTH 104
 
Unit-IV- Pharma. Marketing Channels.pptx
Unit-IV- Pharma. Marketing Channels.pptxUnit-IV- Pharma. Marketing Channels.pptx
Unit-IV- Pharma. Marketing Channels.pptx
 
General Principles of Intellectual Property: Concepts of Intellectual Proper...
General Principles of Intellectual Property: Concepts of Intellectual  Proper...General Principles of Intellectual Property: Concepts of Intellectual  Proper...
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
  • 2.
  • 3. Contents ● Distributed Architecture ● ROS Architecture ● Nodes ● Communication mechanisms ● Introspection Tools
  • 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 ●
  • 11. Message ● Data Structure my_package/msg/example.msg ● Message Interface Description File string field1 int8 field2 ● Code generation bool field3 other_pkg_msg/custom_msg field4 ● Specific language proxy code generation ● C++, Python.. ● Conveys ● Message packages ● ● geometry_msgs sensor_msgs .h .h .py .java ● navigation_msgs
  • 12. Messages (II) – Example $ rospack find geometry_msgs`/msg Point32.msg PoseWithCovarianceStamped.msg Polygon.msg Transform.msg PoseArray.msg TwistStamped.msg PoseWithCovariance.msg Vector3.msg WrenchStamped.msg QuaternionStamped.msg PointStamped.msg Twist.msg Pose2D.msg TwistWithCovarianceStamped.msg PoseStamped.msg Wrench.msg Quaternion.msg Point.msg TransformStamped.msg PolygonStamped.msg TwistWithCovariance.msg Pose.msg Vector3Stamped.msg ●
  • 13. Message (III) Examples geometry_msgs/PoseWithCovariance sensor_msgs/LaserScan Header header geometry_msgs/Pose pose uint32 seq geometry_msgs/Point position time stamp float64 x string frame_id float64 y float32 angle_min float64 z float32 angle_max geometry_msgs/Quaternion orientation float32 angle_increment float64 x float32 time_increment float64 y float32 scan_time float64 z float32 range_min float64 w float32 range_max float64[36] covariance float32[] ranges float32[] intensities
  • 14. Topics ● Publish/Subscribe Models ● Proactive nodes (agents) ● NxM ● Promotes the instrospection mechanisms ● Asynchronous ● Several configurations (buffer, latching, etc.) ● Underlying Transport Layer: ● TCP, UDP, Shared Memory ● Others Transport → rosserial, ethercat
  • 15. Services ● RPC my_package/srv/example.srv ● Purely Reactive string request_field1 int8 request_field2 --- ● Request/Response string response_field1 other_pkg_msg/custom_msg response_field2 ● Stable Functionality Interface ● Specific language proxy code generation ● C++, Python.. .h .h .py .java ● Typical in others RSFs
  • 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
  • 23. Tools - Remote Introspection ● Topics (rostopic) ● Services (rosservice) ● Nodes (rosnode) ● Parameters (rosparam) ● Messages (rosmsg) ● Services (rossrv) ● General debugging (roswtf)
  • 26. Introspection tools - Rxplot ● Monitor numerical data field at runtime ● Example $ rxplot /odom/pose/pose/position/x /odom/pose/pose/position/y
  • 27. Introspection tools - Rviz ● Graphical Representation of message ● Typical messages visualization plugins
  • 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).