ROS is a vital technology, and SPOTO will introduce it. SPOTO is an expert in training various certifications. The following is what ROS is.
1. The origin of ROS
The ROS system is a collaboration between the 2007 Stanford University Artificial Intelligence Laboratory project and the robotics company Willow Garage's Personal Robots Program.
Driven by Willow Garage after 2008
In 2010, Willow Garage released the open-source robot operating system ROS (robot operating system), and soon launched a wave of learning and using ROS in the field of robotics research.
2. Overview of ROS
ROS is open source, a post-operating system for robots, or a secondary operating system.
It provides functions similar to those provided by the operating system, including hardware abstract description, underlying driver management, execution of shared functions, message passing between programs, and program distribution package management. It also provides tools and libraries for acquiring, building, and Write and run multi-machine integrated programs, ROS is not a traditional operating system such as Windows, Linux, and Android
Instead, they are using existing operating systems. Before using ROS, you need to install a Linux distribution operating system such as Ubuntu before installing ROS. Now, win10 is also gradually supporting the installation of ROS.
3. The purpose of ROS
The primary goal is to increase code reuse in the field of robotics and to create an environment for collaborative development of robotics on a global scale.
ROS is a distributed processing framework (aka Nodes)
This allows executables to be designed separately and loosely coupled at runtime
These processes can be packaged into packages and stacks for easy sharing and distribution.
ROS also supports a federated system of code bases that enable collaboration to be distributed
This design from the file system level to the community level makes it possible to independently decide on development and implementation.
All of the above functions can be implemented by the basic tools of ROS.
4. Characteristics of ROS
ROS operating architecture: a processing architecture for loosely coupled network connections using P2P between modules using ROS communication modules
It performs several types of communication, including service-based synchronous RPC (remote procedure call) communication, Topic-based asynchronous data stream communication, and data storage on a parameter server.
But ROS itself is not real-time.
Distributed process
ROS uses a distributed framework
The point-to-point design allows the robot's processes to run separately, facilitating modular modification and customization, and improving the system's fault tolerance.
It is programmed in the form of the smallest unit of the executable process (Node Node), each process runs independently and sends and receives data organically.
Feature Pack Unit Management
Because it manages multiple processes with the same purpose in the form of a feature pack
So it's easy to develop and use, and it's easy to share, modify, and redistribute
Multi-language support
ROS supports multiple programming languages
C++, Python and compiled in ROS are the most widely used ROS development languages.
Test libraries for languages such as Lisp, C#, and Java have also been implemented.
To support multi-language programming, ROS uses a language-neutral interface definition language to implement messaging between modules.
The popular understanding is that the communication format of ROS is independent of which programming language to write. It uses a set of communication interfaces defined by itself.
Open source community
ROS has a large community ROS WIKI
The number of software packages currently being developed using ROS has reached tens of millions, and the number of related robots has reached thousands.
In addition, ROS complies with the BSD protocol and is completely free for personal and commercial applications and modifications.
5. ROS version
The ROS 1.0 release was released in 2010 and a series of robot-related basic packages were developed based on PR2 robots.
The ROS version was then iterated frequently and has been released to Melodic.
Although the most used ones are Kinetic and Indigo, the official website (2019.5.20) now recommends the Melodic version, but in general, different versions of file migration are also possible.