Chapter 1: Robot Operating System
The Robot Operating System, sometimes known as ROS or ros, is a suite of open-source middleware for robotic computing. Despite the fact that ROS is not an operating system (OS), but rather a collection of software frameworks for the development of robot software, it offers services that are intended for a heterogeneous computer cluster. These services include hardware abstraction, low-level device control, implementation of functionality that is commonly used, message-passing between processes, and package management. Graph architecture is used to depict running sets of ROS-based processes. Processing occurs in nodes that can receive, post, and multiplex sensor data, control, status, planning, actuator, and other signals. Graph architecture is also used to represent the architecture of the network. ROS is not a real-time operating system (RTOS), despite the fact that reactivity and low latency are extremely important in the context of robot control system. Nevertheless, it is feasible to incorporate ROS with code that is used for real-time computing. The absence of support for real-time systems has been addressed through the development of ROS 2, which is a significant upgrade of the ROS application programming interface (API). ROS 2 will make use of contemporary libraries and technologies for basic ROS tasks, and it will also add support for real-time application code and embedded system hardware.
The ROS Ecosystem's software can be divided into three categories, which are as follows:
As a result of being provided under the rules of the BSD license, the language-independent tools as well as the primary client libraries (C++, Python, and Lisp) are open-source software that is free for usage in both commercial and research settings. The vast majority of other packages are licensed under a number of different open-source licenses. These additional packages are responsible for the implementation of features and applications that are often utilized. These include hardware drivers, robot models, datatypes, planning, perception, simultaneous localization and mapping (SLAM), simulation tools, and various algorithms.
The primary ROS client libraries are designed to work with a system that is similar to Unix. This is mostly due to the fact that they are dependent on comprehensive sets of open-source software applications. The Ubuntu Linux distribution is referred to as "Supported" for certain client libraries, whilst other operating systems, such as Fedora Linux, macOS, and Microsoft Windows, are referred to as "experimental" and are supported by the community. ROS-based applications may now be created for the Android operating system thanks to the native Java ROS client library known as rosjava. This library does not share these constraints with other ROS client libraries. Additionally, rosjava has made it possible for ROS to be incorporated into an officially supported MATLAB toolbox. This toolbox is compatible with Linux, macOS, and Microsoft Windows. In addition, a JavaScript client library known as roslibjs has been developed. This library makes it possible to incorporate applications into a ROS system by using any web browser that is consistent with the standards.
Stanford University was the location where the initial components of what would later become ROS began to come together at some point before to 2007. At the time, the Personal Robotics Program was being directed by Eric Berger and Keenan Wyrobek, both of whom were PhD students at Stanford University and were working in Kenneth Salisbury's robotics laboratory. While working on robots to perform manipulation tasks in human environments, the two students noticed that many of their colleagues were hampered by the diverse nature of robotics. For example, an excellent software developer might not have the necessary knowledge of hardware, and someone who is developing state-of-the-art path planning might not know how to perform the necessary computer vision. In an effort to find a solution to this problem, the two students decided to create a baseline system that would serve as a foundation upon which other academics may build their own systems. According to Eric Berger, "something that didn't suck, in all of those different dimensions" sums up the situation well.
The two individuals took their initial steps toward this unifying system by constructing the PR1 as a hardware prototype and then beginning to work on software based on it. They did this by borrowing the best practices from other early open-source robotic software frameworks, particularly switchyard, which was a system that Morgan Quigley, another Stanford PhD student, had been working on in support of the Stanford Artificial Intelligence Robot (STAIR) by the Stanford Artificial Intelligence Laboratory. Initial funding in the amount of fifty thousand dollars United States dollars was supplied by Joanna Hoffman and Alain Rossmann, which facilitated the creation of the PR1. While looking for funds for further development, Eric Berger and Keenan Wyrobek encountered Scott Hassan, the founder of Willow Garage, a technology incubator that was working on an autonomous SUV and a solar autonomous boat. Both of these projects were in the process of being developed. The concept that Berger and Wyrobek had of a "Linux for robotics" was shared by Hassan, and he extended an invitation to them to accept employment at Willow Garage. Willow Garage was established in January of 2007, and on November 7 of the same year, the very first ROS code commit was made to SourceForge.
As a follow-up to the PR1, Willow Garage started working on the PR2 robot, and ROS was intended to be the software that would be used to operate it. A increasing number of packages that integrated with ROS to establish a larger software ecosystem were developed with contributions from more than twenty different institutions. These contributions included both the core software and the expanding number of packages. Due to the fact that individuals from outside of Willow were contributing to ROS, particularly from Stanford's STAIR project, ROS was designed from the beginning to be a platform that could support several robots. Although Willow Garage had been working on other projects in the past, those projects were abandoned in favor of the Personal Robotics Program. The program's primary objective was to develop the PR2 as a research platform for academic institutions and ROS as an open-source robotics stack that would serve as the foundation for both academic research and technology startups. This was similar to how the LAMP stack served as the foundation for web-based startups.
The first of Willow Garage's three internal milestones was accomplished in December 2008, and it consisted of continuous navigation for the PR2 over a period of two days and a distance of pi kilometers. Shortly after that, an early version of ROS, known as 0.4 Mango Tango, was made available to the public. This was followed by the initial RVIZ documentation and the initial paper on ROS. The second internal milestone was accomplished at the beginning of the summer, which was the PR2 being able to navigate the workplace, open doors, and plug itself in simultaneously. The launch of the ROS.org website came on the heels of this event, which took place in August. When ROS 1.0 was released in January 2010, early lessons on the operating system were published in December, in preparation for its release. It was the third milestone, which consisted of developing a large amount of documentation and tutorials for the tremendous capabilities that the engineers at Willow Garage had produced over the course of the previous three years.
As a result of this, Willow Garage was able to accomplish one of its long-standing objectives, which was to donate ten PR2 robots to prestigious higher education institutions. Since the beginning, this had been one of the creators' primary objectives, as they believed that the PR2 had the potential to initiate robotics research all over the world. They ended up awarding eleven PR2s to different institutions, including University of Freiburg (Germany), Robert Bosch GmbH, Georgia Institute of Technology, KU Leuven (Belgium), Massachusetts Institute of Technology (MIT), Stanford University, Technical University of Munich (Germany), University of California, Berkeley, University of Pennsylvania, University of Southern California (USC), and University of Tokyo (Japan). All of this, in conjunction with the extremely fruitful internship program that Willow Garage offered (which Melonee Wise oversaw from 2008 to 2010), contributed to the dissemination of information regarding ROS throughout the robotics community. ROS Box Turtle, the first official release of the ROS distribution, was made available to the public on March 2, 2010. This event marked the first time that ROS was formally provided with a collection of versioned packages for the general public to utilize. As a result of these achievements, the first autonomous vehicle to run ROS, the first drone to run ROS, and the adaptation of ROS for Lego Mindstorms were all created. The PR2 robot was officially made available for purchase by the general public on September 9, 2010, after the PR2 Beta program had been running for quite some time.
With the launch of ROS Answers, a question and answer forum for ROS users, on February 15, 2011, the year was a landmark year for ROS. On April 18, 2011, the extremely successful TurtleBot robot kit was introduced, and on May 5, 2011, the total number of ROS repositories passed 100. The Open Source Robotics Foundation (OSRF) was established by Willow Garage in April of 2012, marking the beginning of the year. Almost immediately, the Defense Advanced Research Projects Agency (DARPA) decided to grant a software contract to the Open Source Resource...