There are several frameworks and libraries, which can be used to develop a robot using ROS. Amongst the most widely used are the ROS navigation stack, the ROS message passing interface (M-P-I), ROS applications and the ROS activities. The navigation stack is a complete system for controlling a robot, including motion planning and control. It provides solutions for obstacle avoidance, collision detection, collision response, and navigation planning. The M-P-I is an application-centric communication mechanism for using and passing messages from ROS application nodes to ROS node publish/subscribe nodes. This mechanism is very powerful and suitable for robot applications in which communication between components is required. ROS activities provide the most flexibility for ROS applications. They can be used to achieve high flexibility in the applications, and are able to act as a stand-alone robot control application or be integrated with the navigation stack. These activities also allow for the development of sensor and actuator applications. ROS sensors and actuators can be programmed to perform various tasks, but the ROS node publishing/subscribing capabilities are required to be integrated within the ROS application to connect with the navigation stack.
ROS can be used to develop a variety of different robotic applications, including robot localization, robot-to-robot and robot-to-human communications, and collaborative robot platforms. The various applications are dependent on the type of robot they are intended to control and the purpose they are intended to achieve.
It is important to understand that the development of robotic applications can be done either using the ROS software architecture or using non-ROS approaches. However, the non-ROS software architectures must be based on the ROS interfaces and framework, such as the M-P-I and the ROS navigation stack. As a result, the developers of non-ROS applications should have some level of understanding of ROS development.
The ROS package manager can be used to distribute robot control code using standard packaging approaches. The package manager allows for the installation of ROS-authored packages and the installation of third-party packages into the ROS environment. The installation process is performed through the usage of the rostopic command-line tool, which is controlled by the package manager.
This talk aims to provide an overview of the most important ROS components that play a significant role in the development of a safe and reliable robot in an environment that shares autonomy with humans. A discussion on the different software layers such as user-level, time-critical, task-level, and system-level and their integration into a software stack will be provided. 827ec27edc