ROS2的介绍
结束了上一个小游戏,让我们正式开始学习ROS2!!
在此说明,我的文章是对鱼香ROS视频的总结,但顺序是不一样的,我按照自己的理解去划分章节,实例也不一样。
重点!!!
tab健可以补全,特别好用!!记住!!
ROS2的各部分关系
工作空间(类似于一个文件)下有一个src文件夹,用来存放不同功能包,每个功能包里面又存放不同节点。
ROS2的节点:什么是节点呢?为什么要有节点呢?
相信很多小伙伴们学习ROS2是为了制作机器人,那么机器人是不是由很多部分组成的,有获取激光雷达数据的,有处理数据的,有滚轮,有爪子,每一个部分只要负责好自己的部分,而每一个部分的消息串通就有ROS2负责。
所以每一个部分都是一个节点,每一个节点各司其职,将它们产生的信息交给需要的节点。
既然如此,节点直接是怎么通信的呢?ROS2给我们提供了四种方案(后面我也会对每一种通信进行详细分析):
1.话题–topics(发布者与订阅者)
2.服务–services(客户与服务者)
3.动作–action
4.参数–parameters
这张图展示的分别是话题与服务
话题是由发布者发布话题,对这个话题感兴趣的节点订阅这个话题,那么发布者的消息就会传递给订阅者
服务则是客户相服务者发出请求,服务者再去服务客户
什么是功能包呢?
主要功能也就是用来存放节点的,类似于节点组成的一个机器人。
根据编译语言的不同,分为三种类型:
1.ament_python,适用于python语言。
2.cmake,适用于c++语言。
3.ament_cmake,适用于c++语言,是cmake的增强版。
我个人是两种语言都用的,所以后续演示也会两个都有,这cmake和ament_cmake的区别是什么我暂时也不知道,或许后续会遇到。
创建一个工作空间
现在先让我们来学习一下工作空间的创建,我现在的计划呢,是工作空间叫factory(工厂),然后里面功能包叫robot_x(机器人几号),最后节点,节点名看到时的用途。
1.创建工作空间:mkdir -p factory/src
-p的意思是递归创建目录,按顺序创建。
2.进入工作空间:cd factory/src
ROS2的CLI帮助
所有cli网址:https://github.com/ros2/ros2cli
1.ros2 --help 查看所用命令
2.ros2 【command】 --help 查看指定命令的用法
3.ros2 【command】 【verb】 --help 查看特定命令的verbs