ros简介
什么是ROS?¶
ROS 是一个适用于机器人编程的框架,这个框架把原本松散的零部件耦合在了一起,为他们提供了通信架构。ROS 虽然叫做操作系统,但并非 Windows、Mac 那样通常意义的操作系统,它只是连接了操作系统和开发的 ROS 应用程序,所以它也算是一个中间件,基于 ROS 的应用程序之间建立起了沟通的桥梁,所以也是运行在 Linux 上的运行时环境,在这个环境上,机器人的感知、决策、控制算法可以更好的组织和运行。
ROS的特点¶
ROS 主要具有以下特点:
(1)分布式、点对点 ROS 采用了分布式的网络框架,使用了基于 TCP/IP 的通信方式,实现了模块间点对点的松耦合连接,可以执行多种类型的通信。通过点对点的设计让机器人的进程可以分别运行,便于模块化的修改和定制,提高了系统的容错能力。
(2)支持多种语言
ROS 支持多种编程语言。C++和 Pyhton 是目前应用最广的 ROS 开发语言。此外,ROS还支持 LISP、C#、Java、Octave 等多种不同的语言。为了支持更多应用的移植和开发,ROS采用了一种语言中立的接口定义语言来实现各模块之间消息传送。通俗的理解就是,ROS的通信格式和用哪种编程语言无关,它使用的是自身定义的一套通信接口。
(3)组件化工具包丰富
ROS 采用组件化的方式将已有的工具和软件进行了集成,比如 ROS 中三维可视化平台Rviz,Rviz 是 ROS 自带的一个图形化工具,可以方便地对 ROS 的程序进行图形化操作;ROS 中常用的物理仿真平台 Gazebo,在该仿真平台下可以创建一个虚拟的机器人仿真环境,还可以在仿真环境下添加一些需要的参数。
(4)免费且开源
ROS 具有一个庞大的开源社区 ROS WIKI(http://wiki.ros.org/)。ROS WIKI 中的应用代码以维护者来分类,主要包含由 Willow Garage 公司和一些开发者设计、维护的核心库部分,以及不同国家的 ROS 社区组织开发和维护的全球范围的开源代码。当前使用 ROS 开发的软件包已经达到数千万个,相关的机器人已经多达上千款。此外,ROS 遵从 BSD 协议,允许使用者修改和重新发布其中的应用代码,对个人和商业应用及修改完全免费。
历史版本¶
海报 | 版本名称 | 吉祥物 | 发布时间 | 截至支持时间 |
---|---|---|---|---|
![]() |
ROS Noetic Ninjemys HOTHOT | ![]() |
开发版本选择May 23rd, 2020 | May, 2025 (Bionic EOL) |
![]() |
ROS Melodic Morenia HOTHOT | ![]() |
开发版本选择May 23rd, 2018 | May, 2023 (Bionic EOL) |
![]() |
Lunar Loggerhead | ![]() |
May 23rd, 2017 | May, 2019 |
![]() |
ROS Kinetic Kame HOTHOT | ![]() |
May 23rd, 2016 | April, 2021 (Xenial EOL) |
![]() |
ROS Jade Turtle | ![]() |
May 23rd, 2015 | May, 2017 |
![]() |
ROS Indigo lgloo | ![]() |
July 22nd, 2014 | April, 2019 (Trusty EOL) |
![]() |
ROS Hydro Medusa | ![]() |
September 4th, 2013 | May, 2015 |
![]() |
ROS Groovy Galapagos | ![]() |
December 31, 2012 | July, 2014 |
![]() |
ROS Fuerte Turtle | ![]() |
April 23, 2012 | 废弃废弃 |
![]() |
ROS Electric Emys | ![]() |
August 30, 2011 | 废弃废弃 |
![]() |
ROS Diamondback | ![]() |
March 2, 2011 | 废弃废弃 |
![]() |
ROS C Turtle | ![]() |
August 2, 2010 | 废弃废弃 |
![]() |
ROS Box Turtle | ![]() |
March 2, 2010 | 废弃 |