About ROS
Introduction and History
The Robot Operating System (ROS) is a collection of tools, software libraries, and documentation facilitating the development and sharing of robotics software. The term "Operating System" is a misnomer: ROS is more like a framework or middleware plus a developer community. Its federated package model allows unrelated entities to create and reuse compatible software.
Historically, people and companies developed robotics software specifically tailored to their own robots and needs. For example, industrial robotics companies developed proprietary control software and programming languages and there was no central location for robotics researchers to find useful software libraries. Over the years there have been several attempts at creating libraries for robotics engineers to share, and ROS can be seen as one of the more recent and popular of these attempts. For more information see Why ROS?.
In 2007, Willow Garage provided resources for researchers to create general-purpose robotics software that could be reused and shared. From the start, it was an effort involving a community of people at different institutions working on the core infrastructure and various packages. In 2014, stewardship of ROS was transferred to the Open Source Robotics Foundation (now referred to as Open Robotics) a 501(c)(3) non-profit organization. In late 2022 the majority of Open Robotics was acquired by Intrinsic, an Alphabet company. The Open Source Robotics Foundation controls the ROS trademarks and websites but the primary development team for ROS now works at Intrinsic.
In the intervening years, ROS has been adopted as a defacto standard in industry and academia. While proprietary systems from many major robot manufactures still exist (and perhaps predominate), there are now several robots on the market that explicitly support ROS (including the robots you will be using in this class). Many start-up robotics companies also use ROS because it enables them to take advantage of the work of others to start with a baseline working system. There are also initiatives such as ROS Industrial, which are bringing in more industrial robots into the fold of ROS. In academia, ROS enables easy sharing of code between research groups and allows people to use the latest code from experts in the field.
Why ROS?
- ROS has a large international community of users and contributors, so help is just a click or a forum-post away.
- Provides a framework with infrastructure for visualizing, controlling, and simulating robots.
- ROS has many packages, some of which include difficult-to-implement yet state-of-the-art algorithms.
- Many robots provide ROS interfaces: learn ROS once, be able to use many robots.
- ROS is Open Source. No black-boxes: it is possible to understand and modify to fit your needs.
- The ability to contribute back enables you to spread your discoveries and enhance your reputation in the field.
- Many companies view ROS as an essential skill. Even for companies not using ROS, knowledge of ROS demonstrates familiarity with robotics in general.
Why ROS 2?
ROS 2 was started in 2007, first announced in 2014, and first released in 2017. It was created to address several issues identified with ROS 1:
- ROS 1 was designed for use with a single robot and hence had a central component (
roscore
) that needed to be accounted for. - ROS 1 communicates all data unencrypted over the network and is insecure. ROS 2 has a formal security model.
- ROS 1 has no real-time performance guarantees. ROS 2 is working on enabling real-time control.
- ROS 1 used a custom service/message middleware whereas ROS 2 uses industry standard versions.
Overall ROS 2 is less complete than ROS 1 (in that it has fewer packages and more rough edges to its declared functionality), but it is growing every day..
The Future of ROS
For the latest ROS news see https://planet.ros.org and for ROS-related discussions see ROS Discourse
Usage Statistics
The ROS Metrics tracks statistics on ROS usage.
At the start of Fall 2024:
- 95% of commits to ROS are to ROS 2 repositories.
- 72% of ROS downloads are from ROS 2 repositories.
At the start of Fall 2023:
- 74% of commits to ROS are to ROS 2 repositories.
- 55% of ROS downloads are from ROS 2 repositories.
At the start of Fall 2024:
- 63% of commits to ROS are to ROS 2 repositories.
- 40% of ROS downloads are from ROS 2 repositories.
ROS Versions
- ROS names each version with an adjective and the name of a turtle species, both starting with the same letter.
- One thing I've learned from using ROS is that there are approximately 356 known species of turtle!
- Versions are usually referred to by the adjective only.
- The versions increase alphabetically.
- The latest (and final) stable version of ROS 1 is
noetic
, which was released in May 2020. - The most recent version of ROS 2 is
jazzy
(Jazzy Jalisco). - In ROS 2, there is a
rolling
distribution (Rolling Ridley) that integrates the latest updates to ROS packages and serves as a testing ground for future releases.
Devices that we own that run ROS (non-exhaustive)
Full-Size Robots
Small Robots
Other items that we own that are compatible with ROS (non-exhaustive)
- Intel RealSense D435i
- Hokuyo Laser Scanners
- RaspberryPi, Odroid, Beagle Bone Black, Jetson - These are embedded computers.