大家好,我是早上被雨淋了肚子痛了一天的加班鱼。
昨晚临睡时,看到群里在讨论小米的机器人,原来雷总发布会上亮相了一个机器狗名字叫铁蛋。
既然是小米,价格肯定是低的,9999,依然是得了穷病的小鱼买不起的价格。
天下的机器人都很贵,贵在硬件上(GPU:384-core NVIDIA Volta™ GPU with 48 Tensor Cores
),所以小鱼就围观一下铁蛋软件,结果被小鱼看到了熟悉的Ubuntu 18.04+ROS 2
。
关注小鱼比较早的(五谷)鱼粉都知道小鱼最近一直在做ROS2的教程和视频(目前进度快完成前四章了,然后就会开始录制教学视频)
所以今天就谈谈对小米选择ROS2的一些看法,和自己写ROS2教程以来的一个感受。
正确姿势之ROS2
关注小鱼公众号的很多同学都是基于ROS在做开发,还有很多停留在ubuntu16.04的kinetic上(官方对kinetic已经停止维护了),所以对ROS2可能没啥概念。
ROS2小鱼曾写过很多篇文章介绍过,包括与ROS1的对比,以及ROS中间件的不同等等。小鱼在文末放了链接,大家可以按需自取。
小米选择ROS2为什么小鱼会觉得是正确的呢?除了ROS本身一堆问题,小鱼自己工作过程中也是有一项叫做去ROS。
什么是去ROS呢?就是前期在ROS上开发,后面为了规避ROS本身问题将ROS这个组件从代码中去除的过程。如果大家不是做工程,而是做研究就没有这个必要了哈。
有的同学可能会问,为什么前期直接不基于ROS开发,后面不就不用去ROS了吗?
你真是个机灵鬼。
的确是这样,但是ROS的生态实在是太好了,各种各样的功能包都能找得到,谁能拒绝短时间快速实现机器人原型验证方案的诱惑。
ROS1的很多问题,在ROS2中都得到了解决,口说无凭,这里从论文(Exploring the Performance of ROS2
)里摘抄一张图放这里.
后台回复
ROS2论文
可获取论文原文,该文中有详细的ROS2性能相关的测试分析。
二、要不要放弃ROS直接学ROS2
小鱼给的答案是,不要,至少在小鱼做完ROS2教程之前不要。
因为无论是做科研还是做工程算法,很多功能包还没有迁移到ROS2上,使用起来对新手不友好加上国内外教程比较少,遇到问题很难找得到答案。
甚至一些小bug只能到官方issue上才能找到一些解释。小鱼在写教程的时候是没少google,官方文档是远远不够的。
如果学了ROS再学ROS2一些上层的概念,比如话题、服务、参数、服务还是没有变的,学习成本会有所降低。
三、ROS还能用多久
很高兴的告诉大家,ROS1还能用上四年的时间,不过melodic版本只有最后一年半多的生命了。
四、写在最后
小米能选择ROS2作为开发平台,勇于迈出这一步,值得表扬,至少更多人了解ROS2,让国内机器人技术的更快的变革。
最后小鱼想说的是,无论ROS如何改变,终究是一个软件平台。作为一名技术人员,拥有扎实的编程功底、机器人学知识、优秀的算法能力和工程能力,才能下一个机器人时代王者。
ROS2文章
3. ROS2编译器colcon是个啥,比catkin好用吗?