您可以捐助,支持我们的公益事业。

1元 10元 50元





认证码:  验证码,看不清楚?请点击刷新验证码 必填



  求知 文章 文库 Lib 视频 Code iProcess 课程 认证 咨询 工具 火云堂 讲座吧   成长之路  
会员   
 
   
 
  
每天15篇文章
不仅获得谋生技能
更可以追随信仰
 
     
   
 订阅
  捐助
浅谈ROS的产品化探索(四)——生态系统篇
 
1340 次浏览     评价:  
 2018-5-31 
 
编辑推荐:

本文于exbot,介绍了生态系统,机器人资源,功能框架,机器人前沿科技等知识。

什么是生态系统?

维基百科的解释是:生态系统(Ecosystem)是指在一个特定环境内,相互作用的所有生物和此环境的统称。

ROS提供了一个庞大的开源社区,为ROS生态系统提供了基础环境,众多机器人的基础工具和应用功能不断融入这个系统,并且不断吸收第三方开源软件的精华,同时得到全球范围内众多开发者的支持,系统中的各部分协调统一、相互促进、共同成长,成为一个整体。

这个ROS生态系统应该是目前最大的机器人知识库了,在机器人产品化开发中,也必将成为一个重要的资源池。

一、机器人资源

目前国内外常用的机器人平台大部分都已经支持ROS系统,可以在wiki上查找:

http://robots.ros.org/

就算wiki上找不到的,基本也可以在github上找到其他开发者的分享。如果加上爱好者自己设计、实现的机器人,那就更加数不胜数了。

这些机器人资源对我们有什么用呢?

1. 机器人硬件设计参考

ROS中的机器人资源都是开源的,包括机器人的模型文件。如果我们需要做机器人设计,完全可以参考这些开源的机器人模型,毕竟包含了不少知名的机器人平台。

2. 辅助机器人原型搭建

使用ROS中已有的功能包,我们可以在自己的机器人上快速搭建功能原型,验证机器人设计中的问题。

3. 基于应用功能包的二次开发

ROS中的功能包非常丰富,一定可以找到与我们研究方向相关的应用功能,虽然不太可能直接应用在产品开发中,但还是可以减少类似重复造轮子的工作。

4. 算法验证

如果我们是算法工程师,手上又没有现成的机器人平台,那么使用ROS中的机器人可以随便挑随便选,放在物理仿真环境中,想怎么用怎么用,还分文不要。

5. 学习机器人系统

无论我们是机器人方向刚入门的初学者,还是资深工程师,都不可能掌握机器人方方面面的知识,那么借助ROS学习更多机器人相关的技能,一定可以事半功倍。

二、功能框架

设计一个完善的机器人系统并不是一件简单的事情,借用Python的一句名言:人生苦短,我用ROS。ROS中丰富的机器人框架,一定可以给你一些设计、实现上的灵感:

1. 机器人通信框架

ROS1的通信机制部分在机器人产品化中存在很多问题,但并不代表这种通信框架是不可用的,如果我们设计类似的通信功能,一样可以参考这个模型。

如果你不喜欢这种“中央集权”的通信模型,也可以看一下ROS2的通信模型。

这些通信模型的底层实现是开源透明的,真要拿来二次开发实现商业化,也不是没有可能。

2. 机器人导航框架

这个框架我们在上一篇已经说过,这里就不多说了,谁用谁知道。

3. ROS-I框架

工业机器人是机器人中非常重要的一个部分,在工业领域应用广泛而且成熟。ROS迅猛发展的过程中,也不断渗入到工业领域,从而产生了一个新的分支——ROS-Industrial(ROS -I)。

工业机器人的品牌众多,接口也各不统一,ROS-I框架为这些机器人提供了一个统一的控制平台,可以将ROS社区中的众多资源应用到生产环境中,或许会成为ROS最快落地的一个领域。

4. ros_control框架

硬件平台千差万别,如何将上层应用快速适配到不同的机器人硬件平台上,也是软件开发工程师头疼的一个问题,那就参考一下ros_control框架吧,仿真控制与实物控制轻松切换,类似于linux系统底层write、read机制一般的统一接口,可以帮助我们解决不少麻烦。

ROS中还有很多功能框架,都是全球范围内顶尖开发者的知识结晶,妈妈再也不用担心我不会机器人设计了。

三、机器人前沿科技

机器人绝对是走在当今科技最前沿的一个领域,更新换代也异常迅速,所以我们不仅要掌握机器人基础理论和技术,还要时刻关心前沿动态。ROS在机器人领域的地位越来越高,也是我们窥看前沿科技的一个窗口。

1. 机器人前沿

比如这款“百万级”的仿生手。

比如这款“不会伤人”的KUKA LWR iiwa。

再比如这款“机器僧人”Pepper。

2. 学术前沿

每年机器人顶级期刊和会议上的论文,很多都是基于ROS实现的,部分论文还会把成果和源码在ROS社区中分享。很多大公司或大牛也经常会把一些机器人算法在ROS社区分享。这就为我们接触学术前沿提供了机会,也可以从中汲取不少新的灵感和知识。

比如2016年Google在ROS社区中开源了一种SLAM实现算法——cartographer,同时也分享了ICRA会议上的相关论文:

https://research.google.com/pubs/pub45466.html

再比如基于ROS实现的无人驾驶平台:

http://www.ros.org/news/2017/06/simulated-car-demo.html

当然,也少不了当今热门的人工智能与ROS的结合:

此外,很多基于ROS实现的论文都可以在这里找到:

http://wiki.ros.org/Papers

ROS的生态系统在机器人领域保罗万象,还有更多资源可以让我们随意使用,无论是提高个人技能,还是进行商业开发,都可以让我们站在巨人的肩膀上看得更远。这也是ROS最初的设计目标:提高机器人领域的代码复用率,促进不同组织之间各施所长、合作共赢。

至此,《浅谈ROS的产品化探索》系列文章也就告一段落了,笔者使用四篇文章浅谈了个人在ROS学习、应用、产品化开发过程中的一些感悟和总结,欢迎各位批评指正。

总而言之,ROS能不能产品化应用,不能用一个“能”或者“不能”简而概之,而是需要剖析开来具体分析,在应用中取其精华去其糟粕。

祝各位有一段美妙的ROS机器人开发之旅!

   
1341 次浏览  评价: 差  订阅 捐助
相关文章

我们该如何设计数据库
数据库设计经验谈
数据库设计过程
数据库编程总结
 
相关文档

数据库性能调优技巧
数据库性能调整
数据库性能优化讲座
数据库系统性能调优系列
相关课程

高性能数据库设计与优化
高级数据库架构师
数据仓库和数据挖掘技术
Hadoop原理、部署与性能调优
每天2个文档/视频
扫描微信二维码订阅
订阅技术月刊
获得每月300个技术资源
 
 

关于我们 | 联系我们 | 京ICP备10020922号 京公海网安备110108001071号