ROS Overview

poonam
4 min readJan 22, 2021

--

A software framework (A set of libraries with some rules which can be re-used for recreation of robot application) for robot

Alternatively,

ROS = Collaborative robotic software development

Where one Collaborative group is working for — Mapping Indoor environment, others in computer vision approach where robot can find the object in cluster.

ROS was designed to be distributed and modular way(i.e. have many separate modules which can be mix and match for your application) — it has very fantastic features available like

  1. Communication Infrastructure
  2. Robot Specific Tools
  3. Diagnostic Tools
  4. Also It has integration capabilities with other popular libraries like GAZEBO, OpenCV, PointCloudLibrary, MoveIT and ROS_Industrial
ROS Features with elaborated details

Communication Infrastructure :

At lowest level, ROS provides a basic interface that provides inter-process communication ← Commonly known as middleware.

ROS Middleware provides below facilities

a) publish/subscribe anonymous message passing : Topics

b) Recording and playback of messages

c) Request / response remote procedure calls

d) Distributed parameter system : A way of tasks to share configurations through ‘global key value store’

Message passing is base of the ROS applications

  • Internally manages the details of comm. Between nodes via anonymous publish/subscribe mechanism
  • Another benefit is that we have clear interface between nodes
  • Structure of these messages interface is defined in message IDL format
  • Message IDL — message interface description language

Robot Specific Tools:

ROS provides robot specific tools as mentioned below in picture

  • Set of std message formats — like msg format for geometry : pose, transform, vector,
  • Msg format for sensors like IMU, camera, lasers etc.
  • Robot Description language: to describe the robot in machine level language
  • It also provide tools communicate others like tf library, to visualize in rviz
  • Format : URDF — Unified Robot Description Format
  • Other than this dedicated packages like pose estimation, localization, mapping and navigation
  • A robot geometry is shown below in image
  • Tf library keeps track of each mobile and stationary part by their transform data
(source: ROS wiki)

TOOLS: Ros provide the tools for visualization and diagnosis

  • Rviz is a diagnosis tool which provides visualization of what we want to see as well what robot see
  • Here is the picture of the kobuki robot in the simulator.
(right image source: ROS wiki)
  • An example of the RViz is shown below. One robot model and laser scan is added as an example for visualization purposes. Red color shows the wall or obstacle which the robot sees while running.
An example of the RViz

A demonstration on the online simulator for the programs available in the ros examples

As ROS have different modules available,

  • like perception module,
  • Exploration module,
  • Path navigation module,
  • SLAM module,

ROS uses the standard communication protocol. Each sensor or module called NODE. Master does handle the data on itself just to monitor. If anyone ask/(wants to subscribe) data master node pass it client.

ROS handles its communication through ‘topics’(std message mechanism). And more complex system through services & actions (these two also depends on Topic)

Some basic commands for running ROS

  • Command #1 roslaunch bb_8_teleop keyboard_teleop.launch
  • Command #1 roslaunch publisher_example move.launch

“ with this command, robot keeps listening to last message that has been published on topic”

  • Command #1 roslaunch publisher_example stop.launch

Publisher: A ROS program that writes message to topic

Service: Another functionality to communicate

Service allows you to code a specific functionality for your robot and then provide for call it. Its structured in 2 parts

  1. Service server : provide functionality to anyone who wants to use it.
  2. service client: one who calls/requests

NOTE: To use the previously created service, service must up and running before you can call it. (run the service in one terminal window and call in another terminal window)

Actions: They are similar to ROS service.

  • Difference is that when you call service, you have to wait until service ended before doing something else.
  • When you call action, your robot can still keep doing something else while performing action
  • Action also allows you to provide f/b while action is being performed.

Sign up to discover human stories that deepen your understanding of the world.

Free

Distraction-free reading. No ads.

Organize your knowledge with lists and highlights.

Tell your story. Find your audience.

Membership

Read member-only stories

Support writers you read most

Earn money for your writing

Listen to audio narrations

Read offline with the Medium app

--

--

poonam
poonam

Written by poonam

An Engineer and philosopher

Responses (1)

Write a response