ROS - Politecnico di Milano · ORCA AND ICE The main difference between OROCOS and ORCA is the...
Transcript of ROS - Politecnico di Milano · ORCA AND ICE The main difference between OROCOS and ORCA is the...
![Page 1: ROS - Politecnico di Milano · ORCA AND ICE The main difference between OROCOS and ORCA is the communication toolkit; OROCOS uses CORBA while ORCA uses ICE ICE is a modern framework](https://reader033.fdocuments.us/reader033/viewer/2022060308/5f0a0c697e708231d429c3d9/html5/thumbnails/1.jpg)
ROS
![Page 2: ROS - Politecnico di Milano · ORCA AND ICE The main difference between OROCOS and ORCA is the communication toolkit; OROCOS uses CORBA while ORCA uses ICE ICE is a modern framework](https://reader033.fdocuments.us/reader033/viewer/2022060308/5f0a0c697e708231d429c3d9/html5/thumbnails/2.jpg)
ABOUT ME
Mentasti Simone, PhD student in CS and MechanicsContacts:
Research field: Perception for autonomous vehicles
Slide and example link:https://goo.gl/GonArW
![Page 3: ROS - Politecnico di Milano · ORCA AND ICE The main difference between OROCOS and ORCA is the communication toolkit; OROCOS uses CORBA while ORCA uses ICE ICE is a modern framework](https://reader033.fdocuments.us/reader033/viewer/2022060308/5f0a0c697e708231d429c3d9/html5/thumbnails/3.jpg)
Schedule
L1 Middleware for robotics and ROS Installation Party
L6 ROS on multiple machines, time synchronization, stage
L2 Ros workspace, publisher/subscriber L7 Robot Navigation (Part I)
L3 Messages, services, parameters,launch file
L8 Robot Navigation (Part II)
L4 Bags, tf, actionlib, rqt_tools L9 Nodlet, openCV-CV-bridge
L5 Message filters, rospy. First project presentation
L10 Point Cloud Library. Second project presentation
![Page 4: ROS - Politecnico di Milano · ORCA AND ICE The main difference between OROCOS and ORCA is the communication toolkit; OROCOS uses CORBA while ORCA uses ICE ICE is a modern framework](https://reader033.fdocuments.us/reader033/viewer/2022060308/5f0a0c697e708231d429c3d9/html5/thumbnails/4.jpg)
ROBOTIC MIDDLEWARESROBOTICS
![Page 5: ROS - Politecnico di Milano · ORCA AND ICE The main difference between OROCOS and ORCA is the communication toolkit; OROCOS uses CORBA while ORCA uses ICE ICE is a modern framework](https://reader033.fdocuments.us/reader033/viewer/2022060308/5f0a0c697e708231d429c3d9/html5/thumbnails/5.jpg)
MIDDLEWARE ORIGINS
The origins1968 introduced by d’Agapeyeff80’s wrapper between legacy systems and new applicationsNowadays: widespread in different domain fields (including Robotics)Some (non robotics) examples: Android, SOAP, Web Services, …
![Page 6: ROS - Politecnico di Milano · ORCA AND ICE The main difference between OROCOS and ORCA is the communication toolkit; OROCOS uses CORBA while ORCA uses ICE ICE is a modern framework](https://reader033.fdocuments.us/reader033/viewer/2022060308/5f0a0c697e708231d429c3d9/html5/thumbnails/6.jpg)
MIDDLEWARE ORIGINS
The Middleware ideaWell-known in software engineeringIt provides a computational layerA bridge between the application and the low-level detailsIt is not a set of API and library
![Page 7: ROS - Politecnico di Milano · ORCA AND ICE The main difference between OROCOS and ORCA is the communication toolkit; OROCOS uses CORBA while ORCA uses ICE ICE is a modern framework](https://reader033.fdocuments.us/reader033/viewer/2022060308/5f0a0c697e708231d429c3d9/html5/thumbnails/7.jpg)
MIDDLEWARE ORIGINS
Issues in developing real robotsCooperation between hardware and softwareArchitectural differences in robotics systemsSoftware reusability and modularity
![Page 8: ROS - Politecnico di Milano · ORCA AND ICE The main difference between OROCOS and ORCA is the communication toolkit; OROCOS uses CORBA while ORCA uses ICE ICE is a modern framework](https://reader033.fdocuments.us/reader033/viewer/2022060308/5f0a0c697e708231d429c3d9/html5/thumbnails/8.jpg)
WHAT IS A MIDDLEWARE?
Software that connects different software components or applications:
Set of services that permits to several processes to interactFramework used to reduce the developing time in complex systems.
Operating system
Middleware
Applications
![Page 9: ROS - Politecnico di Milano · ORCA AND ICE The main difference between OROCOS and ORCA is the communication toolkit; OROCOS uses CORBA while ORCA uses ICE ICE is a modern framework](https://reader033.fdocuments.us/reader033/viewer/2022060308/5f0a0c697e708231d429c3d9/html5/thumbnails/9.jpg)
WHAT IS A MIDDLEWARE?
Middleware vs. Operating SystemThe middleware stays between software and different operating systems.The distinction between operating system and middleware is sometimes arbitrary.Some features of a middleware are now integrated in operating systems (e.g., TCP/IP stack).
Operating system
Middleware
Applications
![Page 10: ROS - Politecnico di Milano · ORCA AND ICE The main difference between OROCOS and ORCA is the communication toolkit; OROCOS uses CORBA while ORCA uses ICE ICE is a modern framework](https://reader033.fdocuments.us/reader033/viewer/2022060308/5f0a0c697e708231d429c3d9/html5/thumbnails/10.jpg)
MIDDLEWARES MAIN FEATURES
Portability: provides a common programming model regardless the programming language and the system architecture.
Reliability: middleware are tested independently. They permit to develop robot controllers without considering the low level details and using robust libraries.
Manage the complexity: low-level aspects are handled by libraries and drivers inside the middleware. It (should) reduce(s) the programming error and decrease the development time.
![Page 11: ROS - Politecnico di Milano · ORCA AND ICE The main difference between OROCOS and ORCA is the communication toolkit; OROCOS uses CORBA while ORCA uses ICE ICE is a modern framework](https://reader033.fdocuments.us/reader033/viewer/2022060308/5f0a0c697e708231d429c3d9/html5/thumbnails/11.jpg)
ROBOT MIDDLEWARES: A LIST
Several middleware have been developed in recent years:OROCOS [Europe]ORCA [Europe]YARP [Europe / Italy]BRICS [Europe]OpenRTM [Japan]OpenRave [US]ROS [US]…
Let’s see their common features and main differences
![Page 12: ROS - Politecnico di Milano · ORCA AND ICE The main difference between OROCOS and ORCA is the communication toolkit; OROCOS uses CORBA while ORCA uses ICE ICE is a modern framework](https://reader033.fdocuments.us/reader033/viewer/2022060308/5f0a0c697e708231d429c3d9/html5/thumbnails/12.jpg)
OROCOS: OPEN ROBOT CONTROL SOFTWAREThe project started in December 2000 from an initiative of the mailing list EURON then it become an European project with 3 partners: K.U. Leuven (Belgium), LAAS Toulouse (France), KTH Stockholm (Sweden)
OROCOS requirements:Open source licenseModularity and flexibilityNot related to robot industriesWorking with any kind of deviceSoftware components for kinematics, dynamics, planning, sensors, controllerNot related to a unique programming language
![Page 13: ROS - Politecnico di Milano · ORCA AND ICE The main difference between OROCOS and ORCA is the communication toolkit; OROCOS uses CORBA while ORCA uses ICE ICE is a modern framework](https://reader033.fdocuments.us/reader033/viewer/2022060308/5f0a0c697e708231d429c3d9/html5/thumbnails/13.jpg)
OROCOS STRUCTURE
Real-Time Toolkit (RTT)infrastructure and functionalities for real-time robot systemscomponent-based applications
Component Library (OCL)provides ready-to-use components,e.g., device drivers, debugging tools,path planners, task planners
![Page 14: ROS - Politecnico di Milano · ORCA AND ICE The main difference between OROCOS and ORCA is the communication toolkit; OROCOS uses CORBA while ORCA uses ICE ICE is a modern framework](https://reader033.fdocuments.us/reader033/viewer/2022060308/5f0a0c697e708231d429c3d9/html5/thumbnails/14.jpg)
OROCOS STRUCTURE
Bayesian Filtering Library (BFL)application independent framework, e.g., (Extended) Kalman Filter,Particle Filter
Kinematics & Dynamics Library (KDL)real-time kinematics & dynamics computations
![Page 15: ROS - Politecnico di Milano · ORCA AND ICE The main difference between OROCOS and ORCA is the communication toolkit; OROCOS uses CORBA while ORCA uses ICE ICE is a modern framework](https://reader033.fdocuments.us/reader033/viewer/2022060308/5f0a0c697e708231d429c3d9/html5/thumbnails/15.jpg)
OROCOS RTT FRAMEWORK
![Page 16: ROS - Politecnico di Milano · ORCA AND ICE The main difference between OROCOS and ORCA is the communication toolkit; OROCOS uses CORBA while ORCA uses ICE ICE is a modern framework](https://reader033.fdocuments.us/reader033/viewer/2022060308/5f0a0c697e708231d429c3d9/html5/thumbnails/16.jpg)
ORCA: COMPONENTS FOR ROBOTICS
The aim of the project is to focus on software reusefor scientific and industrial applicationsKey properties:◼ Enable software reuse defining commonly-use interfaces◼ Simplify software reuse providing high-level libraries◼ Encourage software reuse updated software repositories
ORCA defines itself as “unconstrained component-based system”
![Page 17: ROS - Politecnico di Milano · ORCA AND ICE The main difference between OROCOS and ORCA is the communication toolkit; OROCOS uses CORBA while ORCA uses ICE ICE is a modern framework](https://reader033.fdocuments.us/reader033/viewer/2022060308/5f0a0c697e708231d429c3d9/html5/thumbnails/17.jpg)
ORCA AND ICE
The main difference between OROCOS and ORCA is the communication toolkit; OROCOS uses CORBA while ORCA uses ICE
ICE is a modern framework developed by ZeroCICE is an open-source commercial communication systemICE provides two core services
IceGrid registry (Naming service): which provides the logic mapping between different componentsIceStorm service (Event service): which constitute the publisher and subscriber architecture
“A component can find the other components through the IceGrid registry and can communicate with them through the IceStorm service.”
![Page 18: ROS - Politecnico di Milano · ORCA AND ICE The main difference between OROCOS and ORCA is the communication toolkit; OROCOS uses CORBA while ORCA uses ICE ICE is a modern framework](https://reader033.fdocuments.us/reader033/viewer/2022060308/5f0a0c697e708231d429c3d9/html5/thumbnails/18.jpg)
RT MIDDLEWARERT-Middleware (RTM) is a common platform standard to construct the robot system by combining the software modules of the robot functional elements (RTC):
• Camera component
• Stereovision component
• Face recognition component
• Microphone component
• Speech recognition component
• Conversational component
• Head and arm component
• Speech synthesis component
OpenRTM-aist (Advanced Industrial Science & Technology) is based on the CORBA technology to implement RTC extended specification
![Page 19: ROS - Politecnico di Milano · ORCA AND ICE The main difference between OROCOS and ORCA is the communication toolkit; OROCOS uses CORBA while ORCA uses ICE ICE is a modern framework](https://reader033.fdocuments.us/reader033/viewer/2022060308/5f0a0c697e708231d429c3d9/html5/thumbnails/19.jpg)
BRICS: BEST PRACTICES IN ROBOTICS
Aimed at find out the "best practices" in the developing of the robotic systems:
• Investigate the weakness of robotic projects• Investigates the integration between hardware
& software• Promote model driven engineering in robot
development• Design an Integrated Development
Environment for robotic projects (BRIDE)• Define showcases for the evaluation of project
robustness with respect to BRICS principles.
“The prime objective of BRICS is to structure and formalize the robot development process itself and to provide tools, models, and functional libraries, which help accelerating this process significantly.”
![Page 20: ROS - Politecnico di Milano · ORCA AND ICE The main difference between OROCOS and ORCA is the communication toolkit; OROCOS uses CORBA while ORCA uses ICE ICE is a modern framework](https://reader033.fdocuments.us/reader033/viewer/2022060308/5f0a0c697e708231d429c3d9/html5/thumbnails/20.jpg)
ROS: ROBOT OPERATING SYSTEM
Presented in 2009 by Willow Garage, is a meta-operating system for robotics with a rich ecosystem of tools and programs
![Page 21: ROS - Politecnico di Milano · ORCA AND ICE The main difference between OROCOS and ORCA is the communication toolkit; OROCOS uses CORBA while ORCA uses ICE ICE is a modern framework](https://reader033.fdocuments.us/reader033/viewer/2022060308/5f0a0c697e708231d429c3d9/html5/thumbnails/21.jpg)
WHY ROS?
ROS has grown to include a large community of users worldwideThe community of developer is one of the most important characteristics of ROS
![Page 22: ROS - Politecnico di Milano · ORCA AND ICE The main difference between OROCOS and ORCA is the communication toolkit; OROCOS uses CORBA while ORCA uses ICE ICE is a modern framework](https://reader033.fdocuments.us/reader033/viewer/2022060308/5f0a0c697e708231d429c3d9/html5/thumbnails/22.jpg)
A LOT OF RESOURCES
ROS WikiArchive for the existing ROS componentInstallation and configuration guidesInformation about the middleware itselfLots of tutorials
ROS Q&AFor specific problemsThousand of already answered questionsActive communityLike Stack Overflow for ROS
![Page 23: ROS - Politecnico di Milano · ORCA AND ICE The main difference between OROCOS and ORCA is the communication toolkit; OROCOS uses CORBA while ORCA uses ICE ICE is a modern framework](https://reader033.fdocuments.us/reader033/viewer/2022060308/5f0a0c697e708231d429c3d9/html5/thumbnails/23.jpg)
SOME NUMBERS
ROS wiki:pages: 17058edits: 14,7/dayviews: 44794/day
ROS Q&A:total Q: 30243total A: 21697avg Q: 17,2/day
ROS deb:total DL: 8441279unique DL: 7582unique IP: 113345
![Page 24: ROS - Politecnico di Milano · ORCA AND ICE The main difference between OROCOS and ORCA is the communication toolkit; OROCOS uses CORBA while ORCA uses ICE ICE is a modern framework](https://reader033.fdocuments.us/reader033/viewer/2022060308/5f0a0c697e708231d429c3d9/html5/thumbnails/24.jpg)
ROBOT AND RESEARCH
years
num
ber o
f rob
ots
Total number of papers citingROS: an open-source Robot Operating System(Quigley et al., 2009)4806 (+29%)
![Page 25: ROS - Politecnico di Milano · ORCA AND ICE The main difference between OROCOS and ORCA is the communication toolkit; OROCOS uses CORBA while ORCA uses ICE ICE is a modern framework](https://reader033.fdocuments.us/reader033/viewer/2022060308/5f0a0c697e708231d429c3d9/html5/thumbnails/25.jpg)
ROS INTRODUCTIONROBOTICS
![Page 26: ROS - Politecnico di Milano · ORCA AND ICE The main difference between OROCOS and ORCA is the communication toolkit; OROCOS uses CORBA while ORCA uses ICE ICE is a modern framework](https://reader033.fdocuments.us/reader033/viewer/2022060308/5f0a0c697e708231d429c3d9/html5/thumbnails/26.jpg)
ROS: ROBOT OPERATING SYSTEM
ROS main features:Distributed frameworkReuse codeLanguage independentEasy testing on Real Robot & SimulationScaling
ROS ComponentsFile system toolsBuilding toolsPackagesMonitoring and GUIsData Logging
![Page 27: ROS - Politecnico di Milano · ORCA AND ICE The main difference between OROCOS and ORCA is the communication toolkit; OROCOS uses CORBA while ORCA uses ICE ICE is a modern framework](https://reader033.fdocuments.us/reader033/viewer/2022060308/5f0a0c697e708231d429c3d9/html5/thumbnails/27.jpg)
This instruction are for: Ubuntu 16.04 (suggested)
INSTALLATION
![Page 28: ROS - Politecnico di Milano · ORCA AND ICE The main difference between OROCOS and ORCA is the communication toolkit; OROCOS uses CORBA while ORCA uses ICE ICE is a modern framework](https://reader033.fdocuments.us/reader033/viewer/2022060308/5f0a0c697e708231d429c3d9/html5/thumbnails/28.jpg)
UPDATE
From this year you can try Ubuntu 18.04 and
ROS Melodic
![Page 29: ROS - Politecnico di Milano · ORCA AND ICE The main difference between OROCOS and ORCA is the communication toolkit; OROCOS uses CORBA while ORCA uses ICE ICE is a modern framework](https://reader033.fdocuments.us/reader033/viewer/2022060308/5f0a0c697e708231d429c3d9/html5/thumbnails/29.jpg)
Statistics
Downloads for ROS distro:
● Hydro and earlier: 0.17 % ● Indigo: 14.50 % (Long Term Support Release) ● Jade: 0.50 % ● Kinetic: 62.89 % (Long Term Support Release) ● Lunar: 2.70 % ● Melodic: 6.49 % (Long Term Support Release)
![Page 30: ROS - Politecnico di Milano · ORCA AND ICE The main difference between OROCOS and ORCA is the communication toolkit; OROCOS uses CORBA while ORCA uses ICE ICE is a modern framework](https://reader033.fdocuments.us/reader033/viewer/2022060308/5f0a0c697e708231d429c3d9/html5/thumbnails/30.jpg)
INSTALLATION
Check on ROS site for updated commands: http://wiki.ros.org/kinetic/Installation/Ubuntu
Initial setup for sources and keys for downloading the packages
sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list‘
sudo apt-key adv --keyserver hkp://ha.pool.sks-keyservers.net:80 --recv-key 421C365BD9FF1F717815A3895523BAEEB01FA116
![Page 31: ROS - Politecnico di Milano · ORCA AND ICE The main difference between OROCOS and ORCA is the communication toolkit; OROCOS uses CORBA while ORCA uses ICE ICE is a modern framework](https://reader033.fdocuments.us/reader033/viewer/2022060308/5f0a0c697e708231d429c3d9/html5/thumbnails/31.jpg)
INSTALLATION
Update the packaged indexsudo apt-get update
Choose between the four pre-packaged ROS installationDesktop-Full Install: sudo apt-get install ros-kinetic-desktop-full
Desktop Install: sudo apt-get install ros-kinetic-desktop
ROS-Base: sudo apt-get install ros-kinetic-ros-base
![Page 32: ROS - Politecnico di Milano · ORCA AND ICE The main difference between OROCOS and ORCA is the communication toolkit; OROCOS uses CORBA while ORCA uses ICE ICE is a modern framework](https://reader033.fdocuments.us/reader033/viewer/2022060308/5f0a0c697e708231d429c3d9/html5/thumbnails/32.jpg)
INSTALL
How to install single packages:sudo apt-get install ros-kinetic-PACKAGE
Examplesudo apt-get install ros-kinetic-slam-gmapping
To find the exact name of a package you can use the usual aptitude search:apt-cache search ros-kinetic
![Page 33: ROS - Politecnico di Milano · ORCA AND ICE The main difference between OROCOS and ORCA is the communication toolkit; OROCOS uses CORBA while ORCA uses ICE ICE is a modern framework](https://reader033.fdocuments.us/reader033/viewer/2022060308/5f0a0c697e708231d429c3d9/html5/thumbnails/33.jpg)
INITIALIZATION AND SETUP
rosdep enables you to easily install system dependencies and it’s required by some ROS packagessudo rosdep init
rosdep update
To use catkin (the compiling environment of ROS) you need to define the location of your ROS installation.In each new terminal type:source /opt/ros/kinetic/setup.bash
Or put it inside your .bashrc
echo "source /opt/ros/kinetic/setup.bash" >> ~/.bashrc
source ~/.bashrc
![Page 34: ROS - Politecnico di Milano · ORCA AND ICE The main difference between OROCOS and ORCA is the communication toolkit; OROCOS uses CORBA while ORCA uses ICE ICE is a modern framework](https://reader033.fdocuments.us/reader033/viewer/2022060308/5f0a0c697e708231d429c3d9/html5/thumbnails/34.jpg)
ROS STRUCTURE: COMPUTATIONAL GRAPH
Computation graph
Nodes
Master
Topics
ServicesMessages
Parameter server
BagsThe Computation Graph is the peer-to-peer network of ROS processes that are processing data together.
![Page 35: ROS - Politecnico di Milano · ORCA AND ICE The main difference between OROCOS and ORCA is the communication toolkit; OROCOS uses CORBA while ORCA uses ICE ICE is a modern framework](https://reader033.fdocuments.us/reader033/viewer/2022060308/5f0a0c697e708231d429c3d9/html5/thumbnails/35.jpg)
NODES
Executable unit of ROS:Scripts for PythonCompiled source code for C++
Process that performs computationNodes exchange information via the graphMeant to operate at fine-grained scaleA robot system is composed by various nodes
rosrun package_name node_name
rosrun turtlesim turtlesim_node
![Page 36: ROS - Politecnico di Milano · ORCA AND ICE The main difference between OROCOS and ORCA is the communication toolkit; OROCOS uses CORBA while ORCA uses ICE ICE is a modern framework](https://reader033.fdocuments.us/reader033/viewer/2022060308/5f0a0c697e708231d429c3d9/html5/thumbnails/36.jpg)
MASTER
Provides naming and registration servicesEssential for nodes interactionsOne master for each system, even on distributed architecturesEnables individual ROS nodes to locate one anotherOne of the functionalities provided by roscore
![Page 37: ROS - Politecnico di Milano · ORCA AND ICE The main difference between OROCOS and ORCA is the communication toolkit; OROCOS uses CORBA while ORCA uses ICE ICE is a modern framework](https://reader033.fdocuments.us/reader033/viewer/2022060308/5f0a0c697e708231d429c3d9/html5/thumbnails/37.jpg)
MASTER
Provides naming and registration servicesEssential for nodes interactionsOne master for each system, even on distributed architecturesEnables individual ROS nodes to locate one anotherOne of the functionalities provided by roscore
![Page 38: ROS - Politecnico di Milano · ORCA AND ICE The main difference between OROCOS and ORCA is the communication toolkit; OROCOS uses CORBA while ORCA uses ICE ICE is a modern framework](https://reader033.fdocuments.us/reader033/viewer/2022060308/5f0a0c697e708231d429c3d9/html5/thumbnails/38.jpg)
MASTER
Provides naming and registration servicesEssential for nodes interactionsOne master for each system, even on distributed architecturesEnables individual ROS nodes to locate one anotherOne of the functionalities provided by roscore
![Page 39: ROS - Politecnico di Milano · ORCA AND ICE The main difference between OROCOS and ORCA is the communication toolkit; OROCOS uses CORBA while ORCA uses ICE ICE is a modern framework](https://reader033.fdocuments.us/reader033/viewer/2022060308/5f0a0c697e708231d429c3d9/html5/thumbnails/39.jpg)
TOPICS
Named channels for communicationImplement the publish/subscribe paradigmNo guarantee of deliveryHave a specific message typeMultiple nodes can publish messages on a topicMultiple nodes can read messages from a topic
talker
listener
/chat
![Page 40: ROS - Politecnico di Milano · ORCA AND ICE The main difference between OROCOS and ORCA is the communication toolkit; OROCOS uses CORBA while ORCA uses ICE ICE is a modern framework](https://reader033.fdocuments.us/reader033/viewer/2022060308/5f0a0c697e708231d429c3d9/html5/thumbnails/40.jpg)
TOPICS
Named channels for communicationImplement the publish/subscribe paradigmNo guarantee of deliveryHave a specific message typeMultiple nodes can publish messages on a topicMultiple nodes can read messages from a topic
talker
lst_1
/chat
lst_2
![Page 41: ROS - Politecnico di Milano · ORCA AND ICE The main difference between OROCOS and ORCA is the communication toolkit; OROCOS uses CORBA while ORCA uses ICE ICE is a modern framework](https://reader033.fdocuments.us/reader033/viewer/2022060308/5f0a0c697e708231d429c3d9/html5/thumbnails/41.jpg)
TOPICS
Named channels for communicationImplement the publish/subscribe paradigmNo guarantee of deliveryHave a specific message typeMultiple nodes can publish messages on a topicMultiple nodes can read messages from a topic
listener
/chat
tlk_1 tlk_2
![Page 42: ROS - Politecnico di Milano · ORCA AND ICE The main difference between OROCOS and ORCA is the communication toolkit; OROCOS uses CORBA while ORCA uses ICE ICE is a modern framework](https://reader033.fdocuments.us/reader033/viewer/2022060308/5f0a0c697e708231d429c3d9/html5/thumbnails/42.jpg)
MESSAGES
Messages are exchanged on topicsThey define the type of the topicVarious already available messagesIt is possible to define new messages using a simple languageExisting message types can be used in new messages together with base types
std_msgs/Header.mgsuint32 seqtime stampstring frame_id
std_msgs/String.msgstring data
sensor_msgs/Joy.msgstd_msgs/Header header
float32[] axes
int32[] buttons
![Page 43: ROS - Politecnico di Milano · ORCA AND ICE The main difference between OROCOS and ORCA is the communication toolkit; OROCOS uses CORBA while ORCA uses ICE ICE is a modern framework](https://reader033.fdocuments.us/reader033/viewer/2022060308/5f0a0c697e708231d429c3d9/html5/thumbnails/43.jpg)
MESSAGES
Messages are exchanged on topicsThey define the type of the topicVarious already available messagesIt is possible to define new messages using a simple languageExisting message types can be used in new messages together with base types
Quick recap:14 base types32 std_msgs29 geometry_msgs26 sensor_msgs...and more
![Page 44: ROS - Politecnico di Milano · ORCA AND ICE The main difference between OROCOS and ORCA is the communication toolkit; OROCOS uses CORBA while ORCA uses ICE ICE is a modern framework](https://reader033.fdocuments.us/reader033/viewer/2022060308/5f0a0c697e708231d429c3d9/html5/thumbnails/44.jpg)
SERVICES
Work like remote function callsImplement the client/server paradigmCode waits for service call to completeGuarantee of executionUse of message structures
example/AddTwoInt.srvint64 A
int64 B
---
int64 Sum
![Page 45: ROS - Politecnico di Milano · ORCA AND ICE The main difference between OROCOS and ORCA is the communication toolkit; OROCOS uses CORBA while ORCA uses ICE ICE is a modern framework](https://reader033.fdocuments.us/reader033/viewer/2022060308/5f0a0c697e708231d429c3d9/html5/thumbnails/45.jpg)
PARAMETER SERVER
Shared, multivariable dictionary that is accessible via networkNodes use this server to store and retrieve parameters at runtimeNot designed for performance, not for data exchangeConnected to the master, one of the functionalities provided by roscore
rosparam [set|get] name value
rosparm set use_sim_time True
rosparam get use_sim_timeTrue
![Page 46: ROS - Politecnico di Milano · ORCA AND ICE The main difference between OROCOS and ORCA is the communication toolkit; OROCOS uses CORBA while ORCA uses ICE ICE is a modern framework](https://reader033.fdocuments.us/reader033/viewer/2022060308/5f0a0c697e708231d429c3d9/html5/thumbnails/46.jpg)
PARAMETER SERVER
Shared, multivariable dictionary that is accessible via networkNodes use this server to store and retrieve parameters at runtimeNot designed for performance, not for data exchangeConnected to the master, one of the functionalities provided by roscore
Available types:32-bit integersBooleansStringsDoublesISO8601 datesListsBase64-encoded binary data
![Page 47: ROS - Politecnico di Milano · ORCA AND ICE The main difference between OROCOS and ORCA is the communication toolkit; OROCOS uses CORBA while ORCA uses ICE ICE is a modern framework](https://reader033.fdocuments.us/reader033/viewer/2022060308/5f0a0c697e708231d429c3d9/html5/thumbnails/47.jpg)
BAGS
File format (*.bag) for storing and playing back messagesPrimary mechanism for data loggingCan record anything exchanged on the ROS graph (messages, services, parameters, actions)Important tool for analyzing, storing, visualizing data and testing algorithms.
rosbag record –a
rosbag record /topic1 /topic2
rosbag play ~/bags/fancy_log.bag
rqt_bag ~/bags/fancy_log.bag
![Page 48: ROS - Politecnico di Milano · ORCA AND ICE The main difference between OROCOS and ORCA is the communication toolkit; OROCOS uses CORBA while ORCA uses ICE ICE is a modern framework](https://reader033.fdocuments.us/reader033/viewer/2022060308/5f0a0c697e708231d429c3d9/html5/thumbnails/48.jpg)
ROSCORE
roscore is a collection of nodes and programs that are pre-requisites of a ROS-based systemMust be running in order for ROS nodes to communicateLaunched using the roscore command. Elements of roscore:
a ROS Mastera ROS Parameter Servera rosout logging node
![Page 49: ROS - Politecnico di Milano · ORCA AND ICE The main difference between OROCOS and ORCA is the communication toolkit; OROCOS uses CORBA while ORCA uses ICE ICE is a modern framework](https://reader033.fdocuments.us/reader033/viewer/2022060308/5f0a0c697e708231d429c3d9/html5/thumbnails/49.jpg)
ROS FILE SYSTEM
File system
Meta packages Packages
Package manifest
Messages
Service
Code
Others
![Page 50: ROS - Politecnico di Milano · ORCA AND ICE The main difference between OROCOS and ORCA is the communication toolkit; OROCOS uses CORBA while ORCA uses ICE ICE is a modern framework](https://reader033.fdocuments.us/reader033/viewer/2022060308/5f0a0c697e708231d429c3d9/html5/thumbnails/50.jpg)
ROS FILE SYSTEM
File system
Meta packages Packages
Package manifest
Messages
Service
Code
OthersUsually you skip this one
![Page 51: ROS - Politecnico di Milano · ORCA AND ICE The main difference between OROCOS and ORCA is the communication toolkit; OROCOS uses CORBA while ORCA uses ICE ICE is a modern framework](https://reader033.fdocuments.us/reader033/viewer/2022060308/5f0a0c697e708231d429c3d9/html5/thumbnails/51.jpg)
PACKAGES AND METAPACKAGES
PACKAGESAtomic element of ROS file systemUsed as a reference for most ROS commandsContains nodes, messages and servicespackage.xml used to describe the packageMandatory container
METAPACKAGESAggregation of logical related elementsNot used when navigating the ROS file systemContains other packagespackage.xml used to describe the packageNot required
![Page 52: ROS - Politecnico di Milano · ORCA AND ICE The main difference between OROCOS and ORCA is the communication toolkit; OROCOS uses CORBA while ORCA uses ICE ICE is a modern framework](https://reader033.fdocuments.us/reader033/viewer/2022060308/5f0a0c697e708231d429c3d9/html5/thumbnails/52.jpg)
STRUCTURE OF A PACKAGE
Folder structure:/src, /include, /scripts (coding)/launch (launch files)/config (configuration files)
Required files:CMakeList.txt: Build rules for catkinpackage.xml: Metadata for ROS