A Brief Introduction to ROS.

CCNA 200-301

CCNA 200-301

CCNP Enterprise

CCNP Enterprise

CCNP Security

CCNP Security

CCIE Enterprise Lab

CCIE Enterprise Lab

CCIE Security Lab

CCIE Security Lab

CCNP Service Provider

CCNP Service Provider

CCNP Data Center

CCNP Data Center

CCNP Collaboration

CCNP Collaboration

CCIE DC Lab

CCIE DC Lab

ic_r
ic_l
A Brief Introduction to ROS.
images

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.