Concepts and Packages

Core Concepts of ROS 1

Playlist encapsualting important concepts

Tutorials: https://wiki.ros.org/ROS/Tutorials

ROS 1 is structured around several key concepts that enable modular, distributed, and scalable robot software development. The main ideas are organized at different levels25:

1. Nodes

  • Definition: Nodes are independent processes that perform computation. Each node is typically responsible for a single task (e.g., reading sensor data, controlling motors, localization).

  • Implementation: Nodes are written using ROS client libraries such as roscpp (C++) or rospy (Python).

  • Communication: Nodes communicate with each other using topics, services, or the parameter server, and are managed at runtime by the ROS Master235.

2. Master

  • Role: The ROS Master provides name registration and lookup for nodes, topics, and services, enabling nodes to discover and connect with each other.

  • Operation: Nodes register themselves and their communication interfaces with the Master, which acts like a DNS server for the ROS network. After discovery, nodes communicate directly25.

3. Parameter Server

  • Purpose: Stores global parameters (key-value pairs) accessible at runtime by all nodes. Used for configuration and tuning of nodes without code changes25.

4. Topics

  • Mechanism: Topics are named message buses for asynchronous, many-to-many communication. Nodes publish messages to topics, and other nodes subscribe to receive those messages.

  • Strong Typing: Each topic enforces a specific message type for data consistency.

  • Transport: Default is TCPROS (reliable TCP/IP), with UDPROS (UDP-based, low-latency) for specific use cases235.

5. Messages

  • Definition: Strictly defined data structures used to communicate over topics. Defined in .msg files and can include primitive types or nested messages35.

6. Services

  • Mechanism: Synchronous, request/response interactions for tasks that require confirmation or a result (e.g., requesting a sensor reading).

  • Definition: Defined in .srv files with request and response fields5.

7. Bags

  • Purpose: Files (with .bag extension) for recording and replaying topic data. Essential for debugging, simulation, and development5.

8. Filesystem Level

  • Packages: The basic unit of ROS software organization, containing nodes, libraries, configuration files, and more.

  • Workspaces: Directories for building and managing multiple packages together5.

While the importance of a package depends on your application, the following are widely used and considered essential in most ROS 1 projects467:

Package Name
Purpose/Description

tf / tf2

Coordinate frame transforms (essential for robot kinematics)

rviz

3D visualization tool for sensor data, robot models, and planning

ros_control

Framework for controller management and hardware abstraction

moveit

Motion planning and manipulation for robotic arms

navigation

Autonomous navigation stack for mobile robots

gazebo_ros_pkgs

Integration between ROS and Gazebo simulator

urdf

Unified Robot Description Format for robot models

robot_localization

State estimation from multiple sensors

rosbag

Data recording and playback

sensor_msgs, geometry_msgs, std_msgs

Standard message types for sensors, geometry, etc.

image_transport, cv_bridge

Tools for handling images and computer vision

robot_state_publisher

Publishes robot joint states to tf

actionlib

Tools for asynchronous task execution

ros_perception

Perception stack for vision and point cloud processing

rosparam, rosnode, rostopic, rosservice

Core tools for managing ROS system

ROS Industrial

Packages for industrial robot support

rqt

GUI plugins for introspection, plotting, and debugging

Other Notable Packages (from usage statistics)6:

  • cv_bridge, image_transport (vision)

  • robot_state_publisher, joint_state_publisher (robot state)

  • dynamic_reconfigure (runtime parameter tuning)

  • catkin (build system)

  • roslaunch, rosbag, rosmsg, rostopic, rosservice, rosnode (core utilities)

  • urdf_tutorial, turtlesim (learning and demos)

References and Further Reading

Last updated