4

随想录(ros学习笔记)

 3 years ago
source link: https://feixiaoxing.blog.csdn.net/article/details/112388134
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

随想录(ros学习笔记)

费晓行 2021-01-09 10:50:46 108
分类专栏: 随想录

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】

    ros,全称robot operating system。说它是操作系统,其实也不全对,因为它实现的其实是一个类似于中间件的作用。使用者只需要在上面关注于自己算法的实现,这就可以了,不需要重复造轮子,因为通信、工具、仿真、通用算法、常用硬件驱动,所有这些别人都替你做好了。如果大家有这方面的兴趣,可以先了解下ros,再一步步去做,

1、找一个靠谱的学习视频

    在b站上面,有一个ros入门21讲,个人觉得还是比较适合的,https://www.bilibili.com/video/BV1zt411G7Vn。至于他的书,可以买,可以不买。比如,如果视频上面的内容都能理解,就可以不买。

2、ros的构成

    ros主要可以分成4个部分,分别是ros通信框架、ros基础命令工具(包括rviz、gazebo)、ros场景算法(导航、slam、moveit)、ros生态(比如第三方硬件厂商的ros包、各种网站,论坛、bbs、wiki等等)。

3、ros依赖的软件平台

    ros是运行在linux上面,一般使用ubuntu,不过注意不同的ubuntu版本对应不同的ros版本。

4、ros依赖的硬件平台

    通常而言,如果是学习的话,一般ros直接运行在pc上面,如果是开发和部署,一般运行在类似的树莓派这样的开发板上。

5、机器人的硬件平台

    不管是导航还是机械臂,除了ros运行在ubuntu的开发板上面,一般还是需要一个stm32的嵌入式开发板,这个是控制电机的,常采用rtos来控制。

6、ros安装

    ros的安装,其实非常简单,一句话就可以

sudo apt-get install ros-kinetic-desktop-full

    当然,第一次使用的时候,一般需要初始化一下,

    接着,将ros的path路径加到环境变量里面

source /opt/ros/kinetic/setup.bash

    这个时候,我们输入roscore,如果程序正常运行,其实代表ros已经安装好了,

roscore

    如果需要知道详细的安装细节,可以看一下这个链接,http://wiki.ros.org/cn/kinetic/Installation/Ubuntu

7、ros开发常用的语言

    主要是python和cpp,其他就是各种脚本的编写、命令的运行了

8、常用的ros命令有哪些

    有一些常用的命令都是以ros开头,这些命令都是为了让你调试目前的系统,分析下当前的分布式系统有哪些信息、哪些节点,或者是启动脚本等等,比如

9、创建自己的工作区

10、ros中比较值得学习的navigation和slam

    如果是navigation,那么就是amcl算法

    如果是slam,那么就是gmapping算法

    这两个在工业生产中是用的比较多的。但是,知道了这两个算法,并不等于,可以直接拿来在工业中使用,这还是远远不够的,必须要做一些修改和优化。比如,实际生产中,嵌入式开发板的算力和pc不能比,但是运行效率又不能太低,如何对算法进行加速就是各位小伙伴需要做的事情了。

11、ros其他值得学习的模块

    理论上,作为一个框架或者生态,ros除了上面说的导航、slam、moveit,还可以顺带学习下嵌入式电路、rtos、电机控制、图像处理、语音识别、机器学习、深度学习这些,对系统实时性有要求的同学可以看一下ros2、rtlinux这些,看自己的兴趣了。

12、ros生态或者第三方支持

    很多硬件厂商都有ros支持包,比如lidar、3d lidar、3d camera,直接github下载、拿过来就能用,不需要自己造轮子,这也算是ros的优势把。

13、ros学习的误区

    很多同学,特别是本科学习,或者刚进入研究生的同学,一下子进入ros的世界里面,不知道怎么下手,ros学的又比较杂,其实没有必要,一步一步来,只要按照自己的节奏来,就可以了。重点关注与自己的领域,其他的方面够用就好。比如说,你从来没有学过linux,甚至只用过windows,那么你可以这么做,

    14、最后的话

        ros本身内容比较多,也比较杂,专注于自己熟悉的领域就可以了。当然基础部分还是要掌握好,比如通信机制、ros命令,以及linux、python、cpp、cmake调试,这些都是基础中的基础,和专业没有很大的关系。等到领域知识和基础都没有大问题之后,就可以考虑一下如何用ros开发出合适的产品了,是选择工业机器人、消费、医疗,还是其他领域,这个就是另外一个topic了。 这个时候,或许你想做的,就是自己要不要做了扫地机器人呢?:-)反正,一步一步往前走就对了,没有什么捷径。


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK