Home Terms of ROS
Post
Cancel

Terms of ROS

Master

The Master acts like a nameserver for message communication and connection between nodes. roscore is a run command. If the Master is activated, you can register each node’s name and get information as you want. Without master, there is no connections between nodes and message communications. The Master communicates with the slaves by XMLRPC (XML-Remote Procedure Call), an HTTP-based protocol that does not keep a connection with the slave.



Node

A Node is the minimum unit processor that runs in ROS. It is an executable program. That is, sensor driving, obstacle judgment, and motor driving are developed as separate nodes. A Node uses XMLRPC when communicating with the Master and uses XMLRPC or TCPROS (TCP/IP based) when communicating with other nodes. More specifically, connection requests and responses between nodes use XMLPRC and message communications use TCPROS.



Package

A Package is the base unit of constructing ROS.



Metapackage

A set of packages that have the same purpose. For example, in the Navigation metapackage, it consists of about 10 packages: AMCL, DWA, EKF, map_server, etc.



Message

A Message is a way to give and take data between nodes. There are two ways of using message:

  • Topic : One-way message transmission.

  • Service : Two-way message request/response.

Topic

If the publisher node want to talk about one topic, the publisher will publish the topic. Any node (subscriber) that wants to receive the information of the topic can receive the information from the publisher node. Based on the information, subscriber can communicate with publisher directly by message.
Since topic transmission is asynchronous, it is a great way to send and receive messages. Also, it is used for sensor data because it sends and receives continuous messages through a single connection.

  • Publish : Sends the data in the form of message about topic.

  • Publisher node : Registers the information of publisher node itself including topic.

  • Subscribe : Receives the data in the form of message about topic and publisher node.

  • Subscriber node : Gets the message from publisher node directly.

Service

A Service is a synchronous two-way message communication between a service client (request) and a service server (response). Unlike topic, service is a one-off message communication. When the request and response are complete, the connection between two nodes is disconnected.

  • Service server : It is a message communication server that takes the request as input and outputs the response.
    All of the requests and responses consist of messages.
    It is used for the node which performs the fixed orders.

  • Service client : It is a message communication client that outputs the request and takes the response from service server as input.
    All of the requests and reponses are consisted of messages.
    It is used for the node which orders the fixed orders and gets the results.

Action

An Action is a message communication method used when two-way communication is required like a service, but it takes a long time from request processing to response and intermediate result values are required. It is very similar to a service, but the difference is that requests and responses are turned into goals and results.

  • Action server : An Action server is a message communication server that gets a goal from an action client as input and outputs the result and feedback.
    It is responsible for action execution.

  • Action client : AAn Action client is a message communication client that outputs a goal and gets the result and feedback from an action server as input.
    It is responsible for cancel the goal or order the next order.



Parameter

Parameter is used in node.
It is very useful because the setting value can be changed in real time according to the situation by using the write function from outside.



Parameter server

Parameter server is a server that registers each parameters when use parameter at parameter server package.
It is a function of master.



Catkin

Catkin is a build system of ROS.
It makes it possible to conveniently use ROS-related builds, package management, and dependencies between packages.



This post is licensed under CC BY 4.0 by the author.