为什么我选择并且推崇用ROS开发机器人?-开云(中国)Kaiyun
本文摘要:如果我们现在想要研发一款机器人,应当自由选择哪一个操作系统呢?
如果我们现在想要研发一款机器人,应当自由选择哪一个操作系统呢?只不过我们大家平时认识到的操作系统寥寥无几,Windows,MacOS,Linux,iOS,Andoird。ROS虽然全名是RobotOperatingSystem,但本质上不是操作系统,是LinuxLinuxUbuntu下的一个用来研发机器人的Middleware,这个没什么好反驳的。
Android虽然意思是人形机器人,但是我实在这就只是名字而已,AndyRubin怎么会知道是想要通过智能手机探秘智能机器人?而且机器人学里的人形机器人一般写Humanoid。为了回避因“操作系统”产生的歧义,本文中我们辩论研发一款机器人必须怎样的“环境配备”?所以很多概念没区分否算是操作系统。
自由选择怎样的环境配备,有几点是我们再行要搞清楚的。首先我们必须告诉实时性是不是必需的。非常简单的说道,如果在系统中是关键变量,系统就必须动态,例如双足机器人动态行驶系统就必需动态,但是静态行驶的话只不过不动态也可以。
如果实时性是必需的,我们可以自由选择Windows+VxWorks,这是在传统运动控制领域十分少见的一个人组。也可以自由选择QNX操作系统,或者LabView,不过这两个动态的我并没很多经验。我最先认识的实时操作系统是Windows+ArdenceRTX,后来应当更名为IntervalZero。
还有就是否系统必须整体上动态?我们在做到双足机器人的时候,运动控制就用到了RTX,但是图像处理并没。后来我们将运动控制的部分移至了一个ARM7的下位机,上位机的Windows只必须发送到action的指令。
所以,即便是必须动态,架构也是很灵活性的。上位机是没实时性的强劲市场需求的。当我们期望略为提升一下机器人复杂度的时候,就不会找到另一个必须考虑到的问题,进程间通信。
在我们用Windows+RTX的时候,进程间通信用于RTX获取的sharedmemory,不过都是比较慢的图像处理进程向sharedmemory中写出数据,决策和运动控制进程读数据。sharedmemory似乎并不是很好的通信方式,这里仍然多特辩论。ROS则用于了一个很好的通信架构,并且是ROS整个框架的一个基础(不论是对于ROS中的topic,service,plugin,actionlib等基础概念还是rviz,navigationpackage等功能包在。
想要理解这些概念最近多注目下@TopLiu),所以很多人非常简单的解读ROS只不过是做到了一个通信的架构而已。我必需解释下,进程间通信并不是ROS需要攻占机器人研发环境的主要原因。在2010年,我们研发一款类似于Atlas的大型人形军用机器人的时候,就用到了进程间通信工具IPC。IPC就是InterProCESsCommunication,开发者是CMU的ReidSimmons,应当是经常出现在2000年左右。
后来我在协助本科生参与RoboCupStandardPlatformLeague的时候用过Nao的操作系统NAOqi,这个系统大约是经常出现在2006年。在NAOqi中,整个通信的架构和ROS十分像了,ROS中的Node在NAOqi中叫一个broker,都是闲置一个系统的端口。所以,2010年ROS月公布Boxturtle的时候,通信架构并不是颠覆性的。
Android的进程间通信的机制据我理解也是十分勇猛的。根据@邵天兰之前的一次讲座,我也了解到ROS的通信机制放在现在看只不过早已有点过时了。所以意味着从通信机制上评价ROS,意义并不大。再有,ROS中的通信机制并不是说道无法跨过,其程序本质上还是C++和Python。
我指出ROS仅次于的贡献就是制订了机器人研发的统一接口标准。因为WillowGarage当年是做到移动服务机器人,所以这些标准是首先在移动机器人界统一的。所以ROS的意义,我总结的时候就是六个字,“书同文,车同轨”,很大加快了交流与变革。也是因为这样,机器人学界才渐渐需要构成一些BenchMarking,需要在开源社区构成百花齐放的态势,需要让大家仍然身陷于又要搭起硬件又要搭起软件的反复建轮子的困境。
只不过最主要就是ROS的message,看上去不过是一些头文件,但是可以让我们精彩的更换各种传感器和执行机构,更换软件中的各个算法,现在搭起机器人在我们眼中,就像玩乐低积木,装配一台电脑。当然,作为一个开发工具,只做这里是过于的。我看完LabView的开发工具,反对硬件很多,应当标准也很好。
MicrosoftRoboticsDeveloperStudio是个不俗的开发工具,惜挂掉了,也却是风行了一段时间。针对机器人研发,ROS则获取了很好的可视化、仿真建模和Debug的工具,专业上谈是十分developerfriendly,这也是很多人说道为什么ROS合适自学和做到研发的原因。不过我实在这无法反对ROS不合适做到产品开发的观点,因为产品成型后,这些调试工具平时都是可以去除的。
关于可视化工具Rviz,仿真建模的Gazebo,Debug的log等级以及在线徵参的rosparam和rqt等等,ROS星火计划都有详尽的介绍。最后,就要说道说道基因,社区,反对和人才的问题。ROS的基因是移动式服务机器人,LabView的基因是NI,Android的基因是Google和智能手机。
ROS社区还却是活跃,虽然机器人的高端玩家较为多,但是整体开发者数量估算也就在十万的量级(ROSanswer登记用户也就三万吧),总量无法和如日中天的Android比起,也是现在背后反对OSRF和google的差距。我也在有所不同场合聊过很多次,硅谷的机器人创业公司基于ROS研发的较为多(比较国内而言,明确比例不确切,从RosCon的反对厂商就能看见一些端倪),但是国内用Android的公司显著在数量上占有绝对优势。所以最后要反对本文论点了。不辩论工业机器人(以及类工业机器人的医疗机器人等,以掌控为核心),我们把只剩的机器人品类再行区分的精细一些。
本文来源:开云(中国)Kaiyun-www.witzkw.com
相关内容
开云(中国)Kaiyun·官方网站-登录入口_中国商用飞机首飞
Nach mehr als acht J...
去中心化金融(DeFi)是区块链的杀手级应用程序‘开云(中国)Kaiyun·官方网站-登录入口’
去中心化金融(DeFi)的定位是牵头集中...
开云(中国)Kaiyun-建议收藏:智能锁10大常见疑问解析
1.智能门锁的安全性如何?
医疗率先迈向5G新时代智慧医疗生态体系开始发生变革:开云(中国)Kaiyun·官方网站-登录入口
5G概念第一次经常出现在公众视野,要追溯...
开云(中国)Kaiyun·官方网站-登录入口|小米人事大变动:雷军解放自己,安心备战5G竞赛
11月29日,雷军公布内部邮件,宣告了小...
区块链在物联网中应用的挑战|开云(中国)Kaiyun·官方网站-登录入口
物联网(IoT)是一个更有人的概念,但是...
【开云(中国)Kaiyun】聚焦进博会丨智能产品频频亮相,家庭场景或成科技产品掘金热土
为期六天的入博会于11月5日在上海拉开帷...
iPhone 6各方面是实实在在的升级:开云(中国)Kaiyun
“Bigger than Bigger”...
“开云(中国)Kaiyun”可编程货币会给我们带来什么?
区块链技术及其促成的加密货币、代币和其他...
开云(中国)Kaiyun·官方网站-登录入口:另眼看LED的发展:显示背板技术
在探究LED的发展趋势时,我们往往将其分...