Technical center
Basic information for ROS robot history and today
Release time:2018-11-03Browsing times:1979Font:smallmediumlarge
In recent years, the field of robotics has made remarkable progress. Robot platforms with high cost performance include
ground mobile robots, rotorcraft UAVs and humanoid robots. It has been widely used. What is more exciting is that
more and more advanced intelligent algorithms have gradually improved the autonomy level of robots. Nevertheless, for
robot soft developers, there are still many challenges.
The Robot Operating System (ROS) is a flexible framework for writing robot software. It is a collection of tools, libraries,
and conventions that aim to simplify the task of creating complex and robust robot behavior across a wide variety of
robotic platforms.
Why? Because creating truly robust, general-purpose robot software is hard. From the robot's perspective, problems
that seem trivial to humans often vary wildly between instances of tasks and environments. Dealing with these
variations is so hard that no single individual, laboratory, or institution can hope to do it on their own.
As a result, ROS was built from the ground up to encourage collaborative robotics software development. For example,
one laboratory might have experts in mapping indoor environments, and could contribute a world-class system for
producing maps.
Another group might have experts at using maps to navigate, and yet another group might have discovered a computer
vision approach that works well for recognizing small objects in clutter. ROS was designed specifically for groups like
these to collaborate and build upon each other's work, as is described throughout this site.
The predecessor of ROS is the switchyard project established by Stanford Artificial Intelligence Laboratory in 2000 to
support Stanford intelligent robot STAIR. By 2008, ROS was mainly developed and maintained by Willow Garage
Company. At present, the latest stable version of ROS is LUNAR.
ROS provides some standard operating system services, such as hardware abstraction, underlying device control,
implementation of common functions, inter-process message and packet management. ROS is the base in a graphical
architecture, the processes of different nodes can accept, publish and aggregate various information (such as sensing,
control, status, planning, etc.).
Current ROS support Ubuntu, this is one of the most common LINUX operating systems. Obviously, although ROS is
translated into Robot Operating System, it is not the operating system (OS) that we understand everyday, but is
specially developed on LINUX Operating System.
A specification and function package set for communication coordination between the functional packages of a robot.
ROS, as a powerful robot software development system, is strong.
The first is distributed computing:
Modern robot systems often require multiple computers to run multiple processes at the same time, for example.
1. Some robots are equipped with several computers, each of which is used to control part of the driver or sensor of
the robot.
2. Even if there is only one computer, it is common to divide the program into small modules which run
independently and cooperate with each other to accomplish complex control tasks.
3. When multiple robots need to cooperate to complete a task, they often need to communicate with each other to
support the completion of the task.
4. Users usually send instructions to control robots through desktop computers, notebooks or mobile devices. This
kind of man-machine interface can be considered as part of robot software.
Second: software reuse:
With the rapid development of robotics research, a number of algorithms have been developed to deal with general \
tasks such as navigation, path planning, mapping and so on. Of course, before any algorithm is practical, Mention is that
it can be applied to new fields without duplication. In fact, how to quickly transplant existing algorithms to different
systems has always been a challenge, and ROS has been through there are two ways to solve this problem.
1. the ROS standard package (Standard Packages) provides a stable and adjustable algorithm for all kinds of
important robot algorithms.
2. ROS communication interface is becoming the standard for software interoperability of robots, that is to say, most
of the latest hardware drivers and cutting-edge algorithms can be implemented. Found in ROS. For example, there
are a large number of open source software libraries on the official web pages of ROS, which use ROS universal
interfaces to avoid integrating them redevelop the new interface program.
Third: rapid testing: Developing
Software for robots is more challenging than other software development, mainly because debugging preparation
time is long and debugging process is complex. Besides, because of hardware maintenance, limited funds and other
factors may not always be available for robots. ROS provides two strategies to solve the above problems.
1. The carefully designed ROS system framework separates the bottom hardware control module from the top data
processing and decision-making module, so that the simulator can be used instead of the bottom hardware
module independently test the top level to improve test efficiency.
2. ROS also provides a simple method to record sensor data and other types of message data during debugging
and play back by time stamp after testing. In this way, each running robot can get more test opportunities. For
example, you can record sensor data and test multiple data through multiple playback algorithm. In ROS
terminology, such recorded data is called a bag, and a tool called rosbag can be used to record and play back
package data.
Last one:No
Next article:ROS robot localization and navigation with GPS