ROS学习指导感悟(1)
| 分类: ROS系统-机器人 |
ROS虽然叫操作系统,但是真正底层的任务调度、编译、寻址等任务还是由Linux操作系统完成,也就是ROS充其量是一个运行在Linux上的次级操作系统。关于ROS的介绍有一篇大牛写的很不错的文章:机器人操作系统ROS | 简介篇。
第一步,安装Linux和ROS
https://static.leiphone.com/uploads/new/article/740_740/201703/58d8ef946a91e.png
学习ROS首先要安装Linux,为了不抛弃原Windows操作系统,有两个选择:一个是在VMvare等虚拟机上运行,另一个是安装Windows和Linux的双系统。我的建议是电脑有足够的空间的话,最好安装双系统,这样在Linux上使用ROS时运行速度更快。虚拟机跑ROS我没尝试过,但是网上也看到有人用虚拟机学习ROS,如果电脑不好装双系统或者内存不够的话可以尝试使用虚拟机。
Linux
有不同的发行版本,目前对ROS支持最好的版本是Ubuntu 14.04 LTS (Long Term
Support),对应的ROS的版本推荐为indigo,官网安装主页已更新为最新版本的Ubuntu。可以到Old
Ubuntu
Releases
需要说明的是,随着电脑的配置和操作系统的不同,安装过程大同小异,但是 有的电脑就是装不上,谷歌之后仍然无法解决问题,这时候可以尝试换台电脑或者装虚拟机,我之前用联想ideapad,折腾了一周,试了各种方法就是不成功,最后换了台华硕一下就好了。
装好Linux后可以根据这篇官方指导安装ROS:
第二步,学习Linux命令行
https://static.leiphone.com/uploads/new/article/740_740/201703/58d8f080b7980.jpg
对于熟悉Windows而没有接触过Linux系统的人来说,上一步安装的Ubuntu是一个很好的Linux过渡版本。在Linux中,一切任务都可以在终端(Terminal)通过命令行完成。因此非常有必要学习Linux命令行。学习Linux推荐在线编程学习环境实验楼的两门课程:Linux
基础入门(新版)和
同时Ubuntu 作为非商业操作系统,里面或多或少有dug,遇到问题多搜索,对于常见的问题,网上都有解决办法。我在安装完Ubuntu后就遇到一个很窘的问题:网络连接不上,但是神奇的是盖上盖子再打开后就好了,之后碰到的带耳机的时候没声音也是这样,一种解释如下:ubuntu14.04下外放有声音,耳机没声音。对于同样的遇到网络无法连接的同学可以在终端输入:
echo "options asus_nb_wmi wapf=4"| sudo tee /etc/modprobe.d/asus_nb_wmi.conf
重启即可。
第三步, 学习ROS基础
https://static.leiphone.com/uploads/new/article/740_740/201703/58d8f0075dd55.jpg
对于ROS的学习,最好的办法还是直接学习官方的Tutorial:
此外,ROS的编程语言主要是C++
和 Python。C++是国内大多数高校的教学语言,更加深入的学习可以阅读C++
Prime
第四步,做项目
https://static.leiphone.com/uploads/new/article/740_740/201703/58d8f0333e539.jpg
只有不断的学习和实践才能学好一门知识,学习ROS最好是一开始就挑战一个项目。在完成前三步的基础上,这时候就要根据尝试写第一个功能包(package)、第一个节点(node)了。碰到问题可以谷歌,官方问答平台ROS Q&A也很有用。同时要在实践中不断学习,因为基础20讲还远远不够,用到相关知识可以继续参见相关Tutorial。
总之,ROS的学习曲线在开始阶段很陡,需要很多预备知识,比如编程语言、Linux基础、熟练的英文阅读功底,甚至在理解ros::spin(),ros::spinOnce() (C++),rospy.spin() (Python)的时候只有理解线程才能搞清楚这三者之间的区别。总之,有志于学习ROS的同学要有不断学习的心理准备,但是同时,ROS的熟练使用绝对是以后找工作或实现项目的一块很有力的敲门砖。

加载中…