Skip to main content

01-ROS Introduction

ROS (Robot Operating System) is an open-source operating system designed for robots. It provides essential services including hardware abstraction, low-level device control, commonly used functionality, inter-process communication, and package management.

The primary goal of ROS is to support code reuse in robot research and development. ROS follows a distributed architecture based on nodes, which are organized into packages and can be shared and reused across projects.


1.1 Main Characteristics of ROS​

  1. Distributed Architecture
  2. Multi-language Support
  3. Good Scalability
  4. Open Source (BSD License)

1.2 Overall Architecture of ROS​

  • Open-source Community Level\
  • File System Level\
  • Computation Graph Level

1.2.1 Computation Graph Level​

Node​

roscore
rosrun turtlesim turtlesim_node
rosservice call /spawn "x: 3.0
y: 3.0
theta: 90.0
name: 'my_turtle'"
rqt_graph

ROS Node Graph

rosnode Commands​

Command Description


rosnode list List nodes rosnode info Node info rosnode kill Kill node rosnode ping Check node rosnode machine List by machine rosnode cleanup Clear stale nodes


Message​

rosmsg Commands​

Command Description


rosmsg show Display fields rosmsg list List messages rosmsg package Messages in pkg rosmsg packages Packages using message rosmsg md5 MD5 checksum


1.2.2 File System Level​

rospack Commands​

Command Description


rospack help Help rospack list List packages rospack depends Dependencies rospack find Locate package rospack profile Refresh


1.2.3 Open Source Community Level​

  • ROS Distributions
  • Software Libraries
  • ROS Wiki
  • Bug Tracking
  • Mailing Lists
  • ROS Answers

1.3 Communication Mechanisms​

Topic (Publish / Subscribe)​

rostopic Commands​

Command Description


rostopic bw Bandwidth rostopic echo View messages rostopic hz Frequency rostopic list List topics


Service (Client / Server)​

rosservice Commands​

Command Description


rosservice call Call service rosservice list List services rosservice info Service info


Action​

Supports: - Goal tracking - Continuous feedback - Task cancellation


1.4 Common ROS Components​

  • Launch
  • TF
  • RViz
  • Gazebo
  • Navigation
  • MoveIt

1.5 ROS Versions​

ROS Distributions

Version OS


Noetic Ubuntu 20.04 Melodic Ubuntu 18.04