1 ROS2概述
ROS2是ROS的进阶版本,ROS的全称为机器人操作系统(Robot Operating System),但它本身并不是一个操作系统。它只是一个由很多独立软件和工具集合而成的库,可以将它类比于openCV,它是需要被安装在已有的操作系统上(Linux、Windows、Mac)才能使用的。
对于能落地的机器人项目而言,使用最频繁的只是ROS的三大通信机制,包括话题、服务和action。其它的功能只是作为一种快速调试和验证的方案。例如:rviz2用来显示与验证雷达点云、地图效果等信息;gzabe是快速验证方案可行性及调试逻辑策略的模拟器。故此,掌握了三大通信机制就可以快速的融入机器人开发中,将更多精力深入slam和navigation等算法中。
为何在落地的机器人项目中需要使用ROS的通信机制呢?因为ROS采用节点化的设计方式,每个节点是可以独立运行、开发和调试的。不同节点之间通过多种通信机制进行交互。这满足了机器人项目的基础需求,因为一个完整的机器人项目是复杂的,它需要由很多模块组成,模块之间是需要各种交互且由多人同时开发。若只有独立的一个进程,即影响了开发进度,在遇到问题时也无法立马追查到问题出现的模块。
以下形象的描述了三个节点(进程)进行交互的过程[摘自ROS2官网]。

本专栏将重点实用ROS2的通信机制,将采用工程上最常用的C++语言对其进行实现。本专栏是一类实用的教程,而非理论介绍与描述。毕竟最终目的是项目落地实现商业化而非学术性质。为了照顾从零开始学习的同学,本专栏的实战教程分为基础和进阶教程。
2 ROS2实战教程
2.1 基础教程
- ROS2基础 | 环境搭建
- ROS2基础 | 基础框架
- ROS2基础 | 编译与运行
- ROS2基础 | 通信方式概述
- ROS2基础 | 通用框架
- ROS2基础 | topic实战一
- ROS2基础 | topic实战二
- ROS2基础 | rate定频器实战
- ROS2基础 | timer实战
- ROS2基础 | service实战
- ROS2基础 | action实战
- ROS2基础 | parameter实战
- ROS2基础 | tf2实战
- ROS2基础 | rosbag应用
- ROS2基础 | 实用工具
2.2 进阶教程
- ROS2进阶 | 封装topic发布器
- ROS2进阶 | 封装topic订阅器
- ROS2进阶 | 执行器Executor
- ROS2进阶 | 重新封装topic订阅器
- ROS2进阶 | 封装service客户端
- ROS2进阶 | 封装service服务端
- ROS2进阶 | 封装action客户端
- ROS2进阶 | 封装action服务端
- ROS2进阶 | 多机与单机通信
3 ROS2高阶教程
高阶教程不会对外公布,有需求请私信
- ROS2高阶 | ROS2源码下载
- ROS2高阶 | ROS2源码编译
- ROS2高阶 | 源码裁剪 …
- ROS2高阶 | x86平台与ARM平台一键编译与应用
- ROS2高阶 | logger的时间戳修改
- ROS2高阶 | 性能(CPU与内存)优化
4 加入我们
目前博主正在组建机器人技术交流群,囊括ROS、SLAM、NAVIGATION。技术人以技术为主,大家互相学习,互相监督,共同成长。有兴趣的小伙伴请加入我们(Job_roy)。让我们从理论出发,回归于实践中。
5 订阅须知
上面给出的实战教程内容为大致大纲,后面可能会有顺序和内容的调整,但可以保证内容质量只增不减。
基础教程部分会免费开放,其它基础部分和进阶部分会进行付费订阅,望理解。
更新频率大致为一周两篇,篇篇都是精品。

5956

被折叠的 条评论
为什么被折叠?



