"ROS Robot Programming" Chapter 2 Robot Operating System ROS
This chapter mainly focuses on the robot operating system ROS, introducing the basic concepts of ROS, what is a "meta-operating system", and the basic characteristics of ROS; then further introducing the components of ROS , as well as the ROS ecosystem constructed by connecting hardware manufacturers, operating system companies, application (APP) developers, and smartphone users; finally, the development history and version installation content of the ROS system are introduced (this part describes It is relatively intuitive, so it is not generalized).
Chapter 2 Robot Operating System ROS
1 Basic concepts of ROS
1.1 Wikipedia’s definition of ROS
- ROS is an open source robot meta-operating system.
- It provides the services we expect from an operating system, including hardware abstraction, low-level device control, implementation of commonly used functions, messaging between processes, and feature package management.
- It also provides tools and libraries for getting, building, writing, and running code across multiple computers.
1.2 Meta operating system
- Meta operating system is a system that uses the virtualization layer between applications and distributed computing resources to use distributed computing resources to perform tasks such as scheduling, loading, monitoring, and error handling.
- ROS itself is not an operating system, but is based on existing operating systems, such as Ubuntu.
- ROS is a system that controls the robots and sensors necessary for robot applications by using hardware abstractions while using existing traditional operating systems. It is also a support system for developing users' robot applications.
- ROS data communication can occur between different systems, multiple hardware and programs.
1.3 Characteristics of ROS
- Distributed process: Programming is performed in the form of the smallest unit (Node) of an executable process. Each process runs independently and sends and receives data organically.
- Function package unit management: Because it manages multiple processes with the same purpose in the form of function packages.
- Public repository: The feature package is exposed to the developer's preferred public repository (such as GitHub) and identifies the license.
- API type: ROS is designed so that it can be loaded into code simply by calling the API.
- Support multiple programming languages
2 ROS components and ecosystem
2.1 Components of ROS
- Client libraries supporting multiple programming languages
- Hardware interface for controlling hardware
- data communication channel
- Robotics Application Framework for writing applications
- Framework-based service application-Robotics Application
- Software Development Tool
- Simulation tool for controlling robots in virtual space
2.2 ROS ecosystem
- Ecosystem:
refers to the structure that connects hardware manufacturers, operating system companies, application (APP) developers, and users of smartphones.