ROS学习之路

机器人操作系统,刚开始入门,从0开始,记录一下自己的学习历程吧

目前的状态:仅看过MOOC 上柴老师和古月居的ROS初级的入门教程,对ros仅仅有一个大概的认识,大概知道Topic,service等一些基本的概念,其他的像tf,slam,gazebo,rviz,urdf等基本没什么概念

注:柴老师和古月居的入门视频可以在b站上找到,直接搜ROS就可以,柴老师的mooc课程配套的练习项目https://github.com/DroidAITech/ROS-Academy-for-Beginners

目前计划先把基本代码看懂吧,结合ros的wiki官方教程


2019.10.12 更新

在看完 MOOC 和 古月 初级教程后 , 只是有一个很简单的认识,这个时候就需要开始查找相关资料开始学习了

推荐一本 机器人操作系统(ROS)浅析 ,Jason M. O'Kane 肖军浩 译 ,电子版网上可以搜到,结合这个 看ROS官方wiki的教程 ,就可以在原来的基础上更加了解一点ROS的结构和编程规范

前面的课程你应该已经可以自己创建一个简单的工作空间了,已经了解了如何简单的创建一个package,node,发布者(publisher),订阅者(subscriber),client,server等等,以及利用roslaunch文启动多个节点.

可以开始深入一下了:可以开始熟悉一下cmakelist.txt和package.xml文件和launch文件 的写法

cmakelist.txt :https://www.cnblogs.com/yongpan/p/6657400.html 如何添加库(自己写的或者是第三方库包括静态和动态等) ,http://wiki.ros.org/catkin/CMakeLists.txt 官方教程

https://blog.csdn.net/u013243710/article/details/35795841 cmakelist文件各部分的简要介绍.

光看不练也不行,必须结合相应的代码看一下,上面提到柴老师的针对初学者的代码,但是那个还是要求你对rviz gazebo有一定的认识之后才看得明白,不然对什么都不懂的小白来说看起还是很头疼的.所以我还是决定从简单的开始做起

这里推荐下载ROS 官方turorials的官方源代码,https://github.com/ros/ros_tutorials/tree/jade-devel,比如小乌龟程序就在里面,很多初级教程都有如何运行小乌龟的详细介绍,但是很少有提到用源码编译来构建自己的小乌龟程序的,所以如果想更深入一点,就不要只停留在那些简单的教程中, 尝试编译和修改源码吧,去构建你自己的小乌龟程序,你会学到更多的东西,

关于如何用源码编译,可以直接google ROS + 源码编译 或者 ROS +overlay 等关键词 你会学到很多东西,包括ROS中的overlay机制等会有简单的了解,你可以在源码中修改,尝试自己的一些想法,也能更清晰看到ros 节点的编程规范.

----出于项目的需要,以及学习ROS必不可少的要用到的东西,模拟器,接下来就要开始看 rviz和Gazebo了.


2019年10月15日更新

上周成功完成了将其他项目中的world模型和所以依赖的models提取出来,放到自己的项目中使用,然后做了两个小实验,

第一个:把柴老师的github上的代码中的中科院软件所展览管的world模型提取出来,放到我自己建的示例节点中.

第二个:将Autoware中使用的mcity模型成功剥离出来,放到了自己的项目中,

虽然关于gazebo的各种机器部件的插件是如何放进去的还没看,但是目前这部分我的小伙伴们已经把车的模型代码写出来了,所以这个可以暂缓一下,因为我接下来还有更重要的任务.


2019年10月19日

虽然自己想慢慢的看,但是项目进度不容许,所以只能加快速度,看我需要的那部分.

ROS 要进行图像处理的话,必然离不开大名鼎鼎的opencv库,所以为了接下来的进度,首先要简单了解ROS和opencv之间的一些接口之类的东西(虽然自己也不是很懂,但是大概知道了这其中的几个坑)

一.目前使用的ROS版本为kinetic,它集成了opencv3,所以如果项目中要用opencv2的话,要修改很多东西,查了很多博客,大概知道该修改那一部分了,主要就是一些cmakelist和cmake文件的修改,这都是一些配置文件,我之前也从没有接触过,所以如果你们和我一样是小白,看这些博客也没什么压力,也没必要去先把cmake整个的看一遍,当然如果你有时间的话,强烈建议你先熟悉cmake,毕竟越到后面越复杂,你就必须要知道内部的一些连接和编译规则,否则连出问题都不知道怎么调试.但我现在主要的目的是先装起来,能跑起来,至于原理,之后再花时间.

二.ROS中有一个cv_bridge用来将ROS中的image转变为cv::Mat格式,这个自动关联了cv3,所以用cv2的话要修改配置文件

三.一个用cv2写的程序如何改成cv3,我还要在去查一下

 

 

 

 

 

 

你可能感兴趣的:(ROS)