Ahmed Nouman
Saurav Khadka

Consider the example of a warehouse robot that slides along between shelves, picks up packages, and moves safely around moving coworkers, without a human utterance. Or a drone that surveys a building that is reduced to rubble and directs first responders to people trapped in the debris remotely. This is the shared vision driving modern robotics research.
For such systems to work, many parts must work together smoothly. Motors, cameras, sensors, and computers all need to share information quickly and reliably. One of the most widely used platforms for making this possible is Robot Operating System 2, or ROS 2. In this article, we will look at what ROS 2 is, where it came from, why it matters, and how a beginner can start using it.
What Is ROS 2?
ROS 2 is the name of Robot Operating System 2. It is not an operating system, however, in the traditional sense of the word, i.e., it does not substitute Windows or Linux. It is a middleware system: a set of software libraries, tools, and conventions that enable various components of a robot to communicate with each other. Consider it the postal service of the brain of a robot – messages sent by a camera to a navigation module, sensor data to the decision unit, instructions to the wheels or arms come in a well-structured and trusted manner (Macenski, Martín, White & Clavero 2020; Macenski, Foote, Gerkey, Lalancette & Woodall 2022).
One of the core ideas of ROS 2 is to support the reuse and redistribution of an existing code. For instance, if a person writes code to perform a specific manipulation task, the same code can be used by another person with the same setup without any changes. This significantly helps researchers and developers build robotic software systems more efficiently. ROS 2 achieves this by providing a specific organizational unit called packages (Open Robotics 2022). These packages can then be combined like Lego blocks to create a task-specific robotic software application.
ROS 2 Basic Architecture
ROS 2 packages store the code needed for an application. However, organizing code is only one part of the system. For a robotic system to work, different components must also communicate with each other. ROS 2 makes this possible through a core concept called nodes. A robotic application can have as many nodes as required. There are different methods by which these nodes can communicate. One of the basic approaches is to use topics, as illustrated in where a publisher node publishes certain information, such as images or motor positions, to a topic. This information can then be received by other nodes simply by subscribing to that topic, which makes the application extremely modular.

As an example, consider a mobile robot with a camera approaching a wall and needing to brake. One node may read images from the camera and publish that information to a topic. Another node may subscribe to that topic, receive the image data, process it on a computer, and then send a command to a third node that controls the robot’s motors. In this way, the different parts of the system work together to make the robot function.
Brief History and Rise to Mainstream
The initial Robot Operating System (ROS 1) was created in 2007 at Stanford University and then sustained by Willow Garage in California. By the early 2010s it was established as a mainstay of academic research in robotics across the globe (Quigley 2009). But with the migration of robots out of the lab and into the factory, hospitals, and on the street, the weakness of ROS 1 became apparent: it was built to be used in research, with good Wi-Fi connectivity, a single controlling node, and no serious concern over real-time or security.
In 2017, ROS 2 was released to overcome these very problems. It is based on the Data Distribution Service (DDS), an industrial communication standard that is applicable to aviation and healthcare. DDS provides ROS 2 with decentralized communication that does not have a single point of failure, real-time performance, multi-robot coordination, and inbuilt security. The outcome was the evolution of a research platform into a production-ready solution, which today is utilized by automotive manufacturers, logistics, agricultural enterprises, and space agencies, and significantly by Amazon, Microsoft, and Bosch (Open Robotics 2022).
Key ROS 2 Stacks and Applications
One of the key features of ROS 2 is that it provides access to most used software stacks in robotics. These specialized stacks are composed of modular software packages designed for specific robotic tasks. The most important of these are described below, along with the sensor technologies that provide input to them.

Robot Navigation and Nav2
The term robotics Navigation is the capability of a robot to move in a planned and safe manner around the environment – knowing where it is, planning a path to a goal, and adapting this path to changes in the environment or obstacles. It is a combination of localization (awareness of personal location), mapping (construction of a representation of the environment), and path planning (how to move between A and B).
This is provided through Nav2 stack in ROS 2. It employs behavior trees – a hierarchical method of specifying conditional behavior – in such a manner that a robot can, say, try an alternative path when the planned path is blocked, or pause and seek help when no possible course exists. Nav2 is used to propel delivery robots in hospitals, service robots in airports, and autonomous guided vehicles in factories (Macenski, Martín et al. 2020; Macenski, Foote et al. 2022).
Robot Manipulation and MoveIt2
Manipulation is the skill of a robot to touch objects within its environment, i.e. to reach, grasp, move, place, or assemble objects with a robotic gripper or arm. Manipulation as compared to navigation is concerned with the fine-tuning movement of jointed limbs within a restricted working area as opposed to the whole-body movement that is involved in navigation.
MoveIt2 stack is the implementation of ROS 2 manipulation planning. It calculates the movement of a multi-jointed arm to achieve a target position – making the movement smooth, collision-free, and possible within the physical constraints of the arm. MoveIt2 relies on superior algorithms of the Open Motion Planning Library (OMPL) and a variety of arm types, including factory assembly robots and surgical systems (Coleman, Sucan, Chitta & Correll 2014).
3D Mapping, Sensors, and SLAM
Robots perceive and understand their surroundings through sensors. In mobile robotics, this is especially important for building maps, avoiding obstacles, and estimating the robot’s own position. In ROS 2, many commonly used sensors, such as LiDARs and IMUs, are supported by available driver packages, which often makes integration into robotic systems relatively straightforward.
Among these, 3D LiDAR sensors work by emitting thousands of lasers pulses to create rich, precise point clouds of the environment. These data are needed in autonomous vehicles and outdoor robots to detect obstacles, identify objects, and create high-resolution maps. In indoor navigation, however, a full 3D scan is often unnecessary. In such cases, 2D LiDAR sensors are usually a more practical and affordable option, since they scan a single horizontal plane, which is often sufficient for navigation on flat indoor floors. Similarly, Inertial Measurement Units (IMUs) measure acceleration and angular speed to provide the robot with a constantly changing sense of its own movement even when external reference points like GPS or visual features are not available at all. This is crucial in both aerial drones and ground vehicles traveling at high speed. Together, these sensors form the foundation for many robotic perception and navigation systems.
One of the most important methods which connects these sensors is SLAM (Simultaneous Localization and Mapping). SLAM enables a robot to construct a map of an unknown environment and locate itself within that map simultaneously, using only the sensor information available on the robot. Practically, a robot with a LiDAR and an IMU will be able to walk into a building it has never been to, gradually build a map of the building’s corridors and rooms, and move about with certainty, without GPS or a pre-existing map of the floor. This is the same basic technology that enables a robotic vacuum cleaner to memorize the layout of a house during its first run and recall it on subsequent ones. ROS 2 is used in multiple SLAM solutions, with SLAM Toolbox being the most widespread and now the default SLAM solution integrated with Nav2 and is widely used by autonomous systems as well as in mobile robotics research (Macenski & Jambrecic 2021).
For representing three-dimensional environments, one widely used solution is OctoMap. OctoMap constructs probabilistic maps of the environment in three dimensions using sensor data – space as a tree of cubic cells that are occupied, free, or unknown. The map is resistant to noisy or incomplete sensor measurements since each cell contains the score of probability instead of yes/no. OctoMap is popular with drone applications where a flying robot must avoid obstacles of all altitudes but also suitable in manipulation tasks where a robotic arm should be aware of nearby objects before grasping an object (Hornung, Wurm, Bennewitz, Stachniss & Burgard 2013).
Programming Language Support
ROS 2 is a first-class citizen of both Python and C++: a node (executable code) in one programming language can interact with a node in the other. The Python language is the most welcoming to new users: it is readable, easy to code, and supported by an extensive ecosystem, such as NumPy, OpenCV, and TensorFlow, to work with sensors and machine learning. C++ is a better choice when performance is important – real-time controllers and safety-critical components require their high-performance and predictable timing. A majority of ROS 2 projects combine the two, and this combination is what enables the same framework to be used by a student prototype on the first try and a commercial production robot.
How a Novice Can Begin
We recommend starting with ROS 2 Jazzy Jalisco, the latest long-term support release, which is free on Ubuntu Linux 24.04. Official documentation includes step-by-step tutorials on workspaces, publishers, subscribers, visualization using RViz2, and simulation of a robot in Gazebo. For those preferring not to install anything locally, browser-based ROS 2 courses are offered by The Construct, and easy visual instructions can be found on YouTube channels like Articulated Robotics.
An example of a first project is a simulated two-wheeled robot, which navigates an empty room, reads a virtual laser scanner, and shows its position in RViz2, which can be completed over a weekend, and provides enough experience to form a good mental model of the entire framework.
Conclusion
ROS 2 has become the essential infrastructure of modern robotics – an open, modular, and production-ready platform that connects sensors, decision-making, navigation, and manipulation into coherent autonomous systems. Its stacks (Nav2, MoveIt2, OctoMap) have collectively lowered the cost and complexity of building capable robots, while its support for Python and C++ keeps the ecosystem accessible to researchers and developers at every level. For students, engineers, and researchers in the world, ROS 2 is both a powerful tool and an open invitation to participate in the autonomous systems that are reshaping industry and daily life.
References
Coleman, D., Sucan, I., Chitta, S. & Correll, N. 2014. Reducing the Barrier to Entry of Complex Robotic Software: a MoveIt! Case Study. arXiv. Available at: https://doi.org/10.48550/ARXIV.1404.3785. Accessed 13.4.2026.
Hornung, A., Wurm, K. M., Bennewitz, M., Stachniss, C. & Burgard, W. 2013. OctoMap: an efficient probabilistic 3D mapping framework based on octrees. Autonomous Robots, 34(3), 189–206. Available at: https://doi.org/10.1007/s10514-012-9321-0. Accessed 13.4.2026.
Macenski, S., Foote, T., Gerkey, B., Lalancette, C. & Woodall, W. 2022. Robot Operating System 2: Design, architecture, and uses in the wild. Science Robotics, 7(66), eabm6074. Available at: https://doi.org/10.1126/scirobotics.abm6074. Accessed 13.4.2026.
Macenski, S. & Jambrecic, I. 2021. SLAM Toolbox: SLAM for the dynamic world. Journal of Open Source Software, 6(61), 2783. Available at: https://doi.org/10.21105/joss.02783. Accessed 13.4.2026.
Macenski, S., Martín, F., White, R. & Clavero, J. G. 2020. The Marathon 2: A Navigation System. 2020 IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS), Las Vegas, NV, USA: IEEE, 2718–2725. Available at: https://doi.org/10.1109/IROS45743.2020.9341207. Accessed 13.4.2026.
Open Robotics. 2022. ROS 2 Documentation: Jazzy Jalisco. Available at: https://docs.ros.org. Accessed 20.4.2026.
Quigley, M. 2009. ROS: an open-source Robot Operating System. IEEE International Conference on Robotics and Automation. Available at: https://api.semanticscholar.org/CorpusID:6324125. Accessed 13.4.2026.
Ahmed Nouman
RDI Expert
Centria University of Applied Sciences
p. 050 303 6086
Saurav Khadka
RDI Expert
Centria University of Applied Sciences
p. 050 595 2375


