- Learning Robotics using Python
- Lentin Joseph
- 614字
- 2021-06-25 21:04:04
Introduction to ROS
ROS is a software framework used for creating robotic applications. The main aim of the ROS framework is to provide the capabilities that you can use to create powerful robotics applications that can be reused for other robots. ROS has a collection of software tools, libraries, and collection of packages that makes robot software development easy.
ROS is a complete open source project licensed under the BSD (https://opensource.org/licenses/BSD-3-Clause) license. We can use it for research and commercial applications. Even though ROS stands for Robot Operating System, it is not a real operating system. Rather, it is a meta-operating system, which provides the features of a real operating system. Here are the major features that ROS provides:
- Message passing interface: This is the core feature of ROS, and it enables interprocess communication. Using this message-passing capability, the ROS program can communicate with its linked systems and exchange data. We will learn more technical terms concerning the exchange of data between ROS programs/nodes in the coming sections and chapters.
- Hardware abstraction: ROS has a degree of abstraction that enables developers to create robot-agnostic applications. These kinds of application can be used with any robot; the developers need only worry about the underlying robot hardware.
- Package management: The ROS nodes are organized in packages called ROS packages. ROS packages consist of source codes, configuration files, build files, and so on. We create the package, build the package, and install the package. There is a build system in ROS that helps to build these packages. The package management in ROS makes ROS development more systematic and organized.
- Third-party library integration: The ROS framework is integrated with many third-party libraries, such as Open-CV, PCL, OpenNI, and so on. This helps developers to create all kinds of application in ROS.
- Low-level device control: When we work with robots, we may need to work with low-level devices, such as those that control I/O pins, sending data through serial ports, and so on. This can also be done using ROS.
- Distributed computing: The amount of computation required to process the data from robot sensors is very high. Using ROS, we can easily distribute the computation to a cluster of computing nodes. This distributes the computing power and allows you to process the data faster than you could using a single computer.
- Code reuse: The main goal of ROS is code reuse. Code reuse enables the growth of a good research and development community around the world. ROS executables are called nodes. These executables can be grouped into a single entity called a ROS package. A group of packages is called a meta package, and both packages and meta packages can be shared and distributed.
- Language independence: The ROS framework can be programmed using popular languages (such as Python, C++, and Lisp). The nodes can be written in any language and can communicate through ROS without any issues.
- Easy testing: ROS has a built-in unit/integration test framework called rostest to test ROS packages.
- Scaling: ROS can be scaled to perform complex computation in robots.
- Free and open source: The source code of ROS is open and it's absolutely free to use. The core part of ROS is licensed under a BSD license, and it can be reused in commercial and closed source products.
ROS is a combination of plumbing (message passing), tools, capabilities, and ecosystem. There are powerful tools in ROS to debug and visualize the robot data. There are inbuilt robot capabilities in ROS, such as robot navigation, localization, mapping, manipulation, and so on. They help to create powerful robotics applications.
The following image shows the ROS equation:

The ROS equation
Refer to http://wiki.ros.org/ROS/Introduction for more information on ROS.
- 圖書館發(fā)展中的知識產權問題研究
- 社會網絡分析方法在圖書情報領域的應用研究
- 單讀. 十周年特輯(時間的移民+在世界的門外)共2冊
- 中國城市遺址類博物館開發(fā)模式研究
- 圖書館知識整合與知識服務研究:以西部社會科學院圖書館為例
- 知中8·了不起的宋版書
- 知中16·西南聯(lián)大的遺產
- 博物館與文化浙江建設:浙江省博物館學會2017年學術研討會論文集
- 基于知識治理的競爭情報協(xié)同模型研究
- 四川文理學院校史(1976—2016)
- 中國人民大學復印報刊資料轉載指數(shù)排名研究報告2018(中國人民大學研究報告系列)
- 高校圖書館創(chuàng)新服務(谷臻小簡·AI導讀版)
- 圖書館保障弱勢群體公共信息獲取權益的對策研究
- 人文通識講演錄:歷史卷
- 梁思成林徽因影像與手稿珍集