你知道市面上的机器人都采用了哪些操作系统吗?

  估计大多数人给出的答案就是 Android 了。从市面上的产品来看,基于 Android 系统开发的机器人确实是主流,但是还有一种操作系统却鲜为人知,它叫 ROS(机器人操作系统,Robot Operating System),是专门为机器人设计的一套开源操作系统,时至今日已经诞生八年时间了。

  ROS 究竟为何物?

  ROS 的前身是斯坦福人工智能实验室为了支持 STAIR(斯坦福大学人工智能机器人项目)而建立的交换庭(Switchyard)项目。要了解 ROS 的发展历程,则要从 2007 年开始谈起。

  当时,Morgan Quigley,Eric Berger 和 Andrew Ng 发布了一纸有关 STAIR 的论文,该文件讲述的就是用 Switchyard 可以在各软件程序之间传递信息,进而帮助机器人有效的完成一些复杂的任务。起初,这个项目是斯坦福大学和机器人技术公司 Willow Garage 的个人机器人项目(Personal Robots Program)合作进行的,2008 年后完全由这家公司推广。到 2009 年,相关文件提到 Switchyard 可以让机器人编译模块化,而且不需要重新设计框架,ROS 操作系统也就随之问世了。

  2012 年,ROS 团队从 Willow Garage 独立出来,并且成立了一个非盈利组织(OSRF)。经过这几年的发展,ROS 从最初的无人问津的小众操作系统,到现在已是主流的机器人操作系统之一。

  根据市场调查,目前已经有很多机器人公司采用了 ROS 系统来开发一些应用于全新市场的产品,如 ClearPath,Rethink,Unbounded,Neurala,Blue River,最典型的就是 Willow Garage 的 PR2 机器人。还有数据显示,仅 2015 年,相关风险投资机构就在基于 ROS 操作系统的机器人公司投资了超过 1.5 亿美元。

  除此之外,还有不少大型公司开始注意到了这个操作系统,例如,Nvidia、博世、高通、英特尔、宝马以及大疆等。

  当然,ROS 要普及离不开开发者的支持。据不完全统计,今年 5 月全球共有 70000 多个独立 IP 下载了 900 万次 ROS 程序包。另外,在 ROS 开发者社区里面的 1840 位成员一共写出了 1000 万行代码。

  ROS 有何特点?

  事实上,ROS 和 Android 一样是开源的,功能上也是相差无几,它可以提供硬件抽象,底层设备控制,常用功能实现,进程间消息以及数据包管理。其独特之处在于,能够支持多种语言,如C++、Python、Octave 和 LISP,甚至支持多种语言混合使用,这可以简化开发者的工作。因为它是基于 Linux 的系统,其可靠性也会更高,体积可以做到更小,适合嵌入式设备。

  另外,ROS 是一种分布式处理框架,开发者可以单独设计可执行文件。不同节点的进程能接收、发布各种信息(例如传感,控制,状态,规划等等)。

  但是就目前来看,在业界公认的机器人三大操作系统——Ubuntu,Android 和 ROS 中 ,就目前来看,使用 Android 操作系统的企业居多。

http://news.cnblogs.com/n/534695/

机器人操作系统 除了Android还有一个ROS(转)的更多相关文章

  1. 机器人操作系统ROS | 简介篇

    同样,从个人微信公众号Nao(ID:qRobotics)搬运. 前言 先放一个ROS Industrial一周年剪辑视频. ROS已经发布八周年了,在国外科研机构中非常受欢迎.目前,以美国西南研究院为 ...

  2. 快速了解 Robot Operating System(ROS) 机器人操作系统

     http://www.ros.org/ 关于ROS About ROS http://www.ros.org/about-ros/ 机器人操作系统(ROS)是用于编写机器人软件的灵活框架.目的在简化 ...

  3. ROSCon 2016视频和幻灯片发布 ROS机器人操作系统重要参考资料

    ROSCon 2016视频和幻灯片发布 By Tully Foote on 十月19,2016 7:28 AM 全部PPT下载地址:http://pan.baidu.com/s/1gf2sn2F RO ...

  4. ROS(indigo)机器人操作系统学习有趣丰富的Gazebo仿真示例evarobot

    一直在寻找一个示例可以将ROS学习中常用的基础内容大部分都包含进去,最好还包括Gazebo仿真, 这样即使没有硬件设备,也可以很好的学习ROS相关内容,但又必须有对应的硬件,便于后续研究. 这里,介绍 ...

  5. ROS(indigo)机器人操作系统学习资料和常用功能包汇总整理(ubuntu14.04LTS)

    ROS(indigo)机器人操作系统学习资料和常用功能包汇总整理(ubuntu14.04LTS) 1. 网站资源: ROSwiki官网:http://wiki.ros.org/cn GitHub    ...

  6. 机器人操作系统——ROS,Robot Operating System

    Note:偶然看到的滴滴研究院的无人驾驶竞赛,了解一下. ROS:专为机器人软件开发所设计出来的一套电脑操作系统架构.是一个开源的元级操作系统(后操作系统),提供类似操作系统的服务,包括硬件抽象描述. ...

  7. ROS机器人操作系统相关书籍、资料和学习路径

    作者:Top Liu链接:https://zhuanlan.zhihu.com/p/30391098来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出处. 本文是易科机器人实验 ...

  8. 机器人操作系统(ROS)教程4:ROS的框架【转】

    转自:http://www.arduino.cn/thread-11351-1-1.html 在进行ROS的代码开发前,有必要了解一些ROS的概念.首先,ROS的系统代码分为两部分:main和univ ...

  9. 【2017.10.13 ROS机器人操作系统】ROS系统常用术语及资源

    ROS机器人操作系统是一种后操作系统,提供了类似于软件开发中使用到的中间件的功能. ROS: Robot Operating System 机器人操作系统 Package: 功能包 Stack: 功能 ...

随机推荐

  1. 轻松管理您的网络password

    在互联网在现在这个时代,,我们注册了很多帐户.支付宝账号password,各种宝账户password.微信,QQ,电话password,购买各种网站,金融password,它是不是让孩子们的鞋子瞬间淡 ...

  2. [WebView五学习]:调试Web Apps

    上一篇我们学习了([WebView学习之四]:迁移到Android4.4版本号的WebView),今天我们来继续学习. (博客地址:http://blog.csdn.net/developer_jia ...

  3. ICMP协议Ping命令的应用

    ICMP的全称是 Internet Control Message Protocol ,它是TCP/IP协议族的一个子协议,属于网络层协议,用于在IP主机.路由器之间传递控制消息.从技术角度来讲,就是 ...

  4. C语言程序代写(Linux下线程)

    联系QQ:928900200 CSCI 3120 Operating Systems Summer 2014 Handout 3Assignment 2Date Due: June 5, 2014 b ...

  5. network: Android 网络推断(wifi、3G与其它)

    public class NetworkProber {  /**  * 网络是否可用  *  * @param activity  * @return  */  public static bool ...

  6. 请注意CSDN社区微通道,许多其他的精彩等着你

    CSDN社区微信公众号"程序人生"(微信ID:coder_life)来了,每天我们会将CSDN社区中大量的优质内容浓缩成1~3篇文章.推送到您的手机中,让您不管何时何地都能感受到知 ...

  7. basename, dirname 在C语言中的使用

    basename作用是得到特定的路径中的最后一个'/',后面的内容 如/usr/bin,得到的内容就是bin 如果/sdcard/miui_recovery/backup 得到的内容就是backup ...

  8. sql 与linq的转换

    1. left Join 原始sql select t.[MINTAccountIdentifier] from BSS_Tenant t left join BL_SAPCustomer s on ...

  9. Lua 服务器与客户端实例(转)

    =============================================================== 服务器,main.lua ======================= ...

  10. 水题 hdu1002------用BigInteger解决大数问题

    Problem Description I have a very simple problem for you. Given two integers A and B, your job is to ...