Keynote to ROS wiki I-Introduction
Concept
ROS has three levels of concepts: the FIlesystem level, Computation Graph level, and Community level.
1 ROS Filesystem Level
package contains nodes, ROS-dependent library, configuration files, etc.
Metapackage contains a group of related packages
Package Manifests Manifests (package.xml)
Repositories A collection of packages which share a common VCS system
Message (msg) types MyMessageType.msg
Service (srv) types MyServiceType.srv
2 ROS Computation Level
The basic Computation Graph concepts of ROS are nodes, Master, Parameter Server, messages, services, topics, and bags, all of which provide data to the Graph in different ways.
3 ROS Community Level
The ROS Community Level concepts are ROS resources includes Distribution, Repositories, ROS wiki, Bug Ticket System ,Mailing Lists, ROS Answers and Blog.
4 Name
4.1 Graph Resource Names
4.2 Package Resource Names
4.3 Code API
Higher-level Concepts
1 Coordinate Frames /Transforms
TF package
2 Actions/Tasks
Actionlib package
3 Message Ontology
The Common_msg stack includes:
actionlib_msgs representing actions
diagnostic_msgs sending diagnostic data
geometry_msgs common geometric primitives
nav_msgs message for navigation
sensor_msgs representing sensor data
4 Plugins
pluginlib provides a library for dynamically loading libraries in C++ code
5 Filters
filters package
6 Robot Model
urdf package
Client Libraries
1 Main Client libraries
roscpp C++ client library
rospy Python client library
roslisp a client library for LISP
2 Experimental client libraries
Technical Overview
1 Master
2 Parameter Server
3 Node
4 Topic Transports
5 Message serialization and msg MD5 sums
6 Establishing a topic connection
- Subscriber starts
- Publisher starts
- Subscriber registers with the Master. (XMLRPC)
- Publisher registers with the Master. (XMLRPC)
- Master informs Subscriber of new Publisher. (XMLRPC)
- Subscriber contacts Publisher to request a topic connection and negotiate the transport protocol. (XMLRPC)
- Publisher sends Subscriber the settings for the selected transport protocol. (XMLRPC)
- Subscriber connects to Publisher using the selected transport protocol. (TCPROS, etc…)
7 Establishing a service connection
- Service registers with Master
- Service client looks up service on the Master
- Service client creates TCP/IP to the service
- Service client and service exchange a Connection Header
- Service client sends serialized request message
- Service replies with serialized response message.