跳转至

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 协议,允许使用者修改和重新发布其中的应用代码,对个人和商业应用及修改完全免费。

历史版本

海报 版本名称 吉祥物 发布时间 截至支持时间
img ROS Noetic Ninjemys HOTHOT img 开发版本选择May 23rd, 2020 May, 2025 (Bionic EOL)
img ROS Melodic Morenia HOTHOT img 开发版本选择May 23rd, 2018 May, 2023 (Bionic EOL)
img Lunar Loggerhead img May 23rd, 2017 May, 2019
img ROS Kinetic Kame HOTHOT img May 23rd, 2016 April, 2021 (Xenial EOL)
img ROS Jade Turtle img May 23rd, 2015 May, 2017
img ROS Indigo lgloo img July 22nd, 2014 April, 2019 (Trusty EOL)
img ROS Hydro Medusa img September 4th, 2013 May, 2015
img ROS Groovy Galapagos img December 31, 2012 July, 2014
img ROS Fuerte Turtle img April 23, 2012 废弃废弃
img ROS Electric Emys img August 30, 2011 废弃废弃
img ROS Diamondback img March 2, 2011 废弃废弃
img ROS C Turtle img August 2, 2010 废弃废弃
img ROS Box Turtle img March 2, 2010 废弃