A-A+

如何学习ROS——盛盛经验谈

2016年07月17日 ROS 评论 1 条 阅读 4,155 次

作者简介:盛盛目前在西工大学习,接触机器人2年。学习使用ROS大概1年多,玩过履带式全地型机器人、参加RoboCup Rescue项目,事无巨细、负责机器人上与图像有关的一切,2013年所在团队全国冠军。

本文发表于exbot.net,如需转载请注明出处!

如何系统学习ROS,发现Exbot的文本教程中貌似也没有介绍。个人的经验是初学者要么跑完20篇基础之后就不知道要干什么了,要么就是有各种前辈的指导可以从项目中练手来获取深一些的认知,当然更多还是根本无从下手。

我先说一下“西工大小学生”当初教我们如何学习ROS的过程吧,反正当时自己真的不知道这样的学习路线有什么用,直到做过项目之后才恍然大悟,知道原来是这样的。下面这一段算是题外话吧。当然下面主要是对没有参加课程的同学学习有帮助,你参加课程的话,应该已经有一些了解吧,当然看看无妨。

  1. 首先是ROS的20篇基础(http://wiki.ros.org/ROS/Tutorials),不用想太多,直接跑下来。不用很深入了解这是什么东西,把乌龟玩一玩,一定要快速跑下来,这个与背单词大概一样吧,一次一定要量大,反正你之后还是会忘记的。(学习基础可以去:http://www.rosclub.cn/post-69.html,这条是不要face的小编dajianli添加的广告

如何学习wiki?

在wiki里,什么ROS的组件有那一些啊,它的用处是什么啊,其实这种不是重点的东西一开始,根本没有必要看,扫一扫就行了,我是说看英文的教程。然后关于那个中级的教程,其实看一下无妨的,但是你真以为这就是中级教程那就呵呵了,中级教程具体的功能说实话,感觉就像是凑字数,直接说这是中级教程真是不敢恭维。至于中间出现的python版本,根据需要来看吧....不过为了理解,先看C++也就可以了。如果教程是有问题,当然一定是有问题的,对于具体的问题,还请使用(http://answers.ros.org/questions/)以及其他的搜索引擎,千万不要把群当作唯一的搜索引擎.....

  1. 跑完了一次20篇基础之后肯定茫然啊,这是什么东西啊,干嘛的啊?感觉就像是没看过一样啊。这是很正常的。一开始我们是看着古月居前辈的教程来走的,但是前辈的教程毕竟是涵盖了之后的一些内容,而且内容相对较杂,比如你没理解前面的基础知识,跑去搞搞slam,navigation是准备跑个例程搞一个大新闻吗?其实一开始真没必要看后面的那一些高级的。小学生之前告诫我们一定要把基础的知识学好,不要以跑例子为目的。所以搞一个例程来跑一下还不如去看论文呢,那才是力量。当然一开始谁都想跑一跑高级的东西嘛,不过跑起来还是不知道他是干嘛的,他是怎么实现的,以及ROS在里面起到了哪一些作用。 所以,跑完20篇之后虽然茫然,但是还请淡定,之后会不断温习的, 继续向下走就行。
  2. 之后看的部分就是API了(http://wiki.ros.org/APIs),这个怎么看呢,其实按照顺序看下来就ok,但是这个有三列(ROS,C++,python),我们一开始主要选择一列看就ok了,比如把C++的那一列看了。其中肯定会遇到问题,比如没有对应的数据啊,因为GFW导致的视频丢失等问题,有一些还是不知所云,还有一些是因为ROS中的引用繁多,往往是看到一个知识点时告诉你,需要掌握其他的先验知识,而相应的先验知识点又有各自的先验知识点,所以有的时候就会比较头痛。所以感到吃力的时候,果断放弃吧。换一个方向,继续看。把相关的简单的看完之后,再去看那一些复杂的,自然也就不会那么难受了。此外,由于ROS本身是为了放在硬件上跑,所以最好可以有自己的物理硬件,仿真的当然也可以,只是没有那么直接罢了。从硬件设计的教程可以参考HandsFree项目,当然硬件他卖得有点小贵。
  3. 在解决APIs的时候,因为本来前面就不知所云,看的时候一定是存在不断向前重复的迭代过程。这是必要的过程。在解决APIs的途中,也可以拿一些已有的例子上手,我不知道是否有一整个项目的开源例子,但是turtlebot那个应该可以为理解ROS保驾护航。但是注意并不是所有的例子都是有必要看的,并不是所有的例子都是可以根据example那本书正常跑起来的,针对自己的需求看就ok了,如果你搞激光导航,你一开始就花一大把时间纠结PCL的一些问题那真是浪费时间了。不过考虑到大家往往都有自己的项目,不像我们本科生就是按照兴趣玩一玩,应该可以正确的选择对应的APIs并很快上手ROS并理解它吧。
  4. 因为ROS本身具有一些高级的算法的实现,那么看那一些算法也就很有用处了。官网的packages(http://www.ros.org/browse/list.php)提供了一大批已有的包,根据需求来用吧。其他的一些,因为大家都有论文的辅助嘛,所以搭配论文一起食用就更方便了。
  5. 至于一些辅助工具,Tools页面(http://wiki.ros.org/Tools)有一些,常用的熟练使用就ok,不常用的反正也不必要记住。
  6. 总之,官网是个很好的入口,可以满足我们从初级开始一些需求,至少初步理解应该不成问题了。
  7. 其他的一些第三方库,比如OpenCV,PCL,EIGEN,BOOST等等,根据项目需求再组合吧。不过我们往往想要一步到位,一下子装上各种库来满足一下,个人感觉没必要,反正这个系统是经常坏的,指不定哪一天你把根目录的某一个权限改了,你就等着重装吧,毕竟这个东西经常折腾。当然使用remastersys为自己打包系统是很好的手法,但是打包之后的系统是否真的可以使用,还请注意,存在可以在虚拟机中使用但是无法安装在硬盘的情况。
  8. 至于虚拟机,个人不推荐,但是你一定要用,那也无法阻止你,一开始是无所谓,但是如果后面出现各种BUG,那到时候再换也ok。
  9. 由于基础知识的缺失或是理解出错,会导致难以解决之后项目中对的一些基本问题,所以基础的知识还是得不断温习...
  10. 最后记住:ROS只是一个工具,方便进行算法的验证。

编辑:TOPLiu

标签:

1 条留言  访客:1 条  博主:0 条

  1. 吾游春秋战国

    "学习基础可以去:http://www.rosclub.cn/post-69.html,这条是不要face的小编dajianli添加的广告"这里面的额网址打开后,不是对应的ROS基础知识哇,我记得以前打开好像是个导航帖,现在换了新版本后打不开了,小编有没有其他的网址能让我再看下那个导航帖?

给我留言

Copyright © ExBot易科机器人实验室 保留所有权利.   Theme   Robin modified by poyoten

用户登录

分享到: