# 动手学ROS2-Foxy
各位同学大家好,我是小鱼,很高兴能和你一起学习机器人,学习ROS2。
## 1.为什么要学习ROS2?
随着智能制造2025的到来,国内机器人行业也随之兴起,越来越多的小伙伴接触并学习了ROS,国内关于ROS的教程也越来越多。
ROS2作为第二代机器人操作系统,比ROS更加的强大,有一些在ROS中不好实现或者无法实现的功能,在ROS2中就可以找到方法。
虽然ROS2很强大,但国内相关教程较少,影响大家对ROS2的了解和学习。所以本课程从基础开始讲起,带大家一起`动手学ROS2`。
> 本教程文字版课程还在随着ROS2的更新,不断的更新中,大家可以关注小鱼个人的微信公众号《鱼香ROS》,加入技术交流群第一时间获取更新通知
## 2.学了本课程能够做什么?
本课程为机器人学习实践基础课程,可以为您进一步学习机器人技术奠定基础,比如:
- 基于ROS2的移动机器人导航仿真 https://www.bilibili.com/video/BV1Ef4y1P7wt/
- 基于ROS2的Moveit2的机械臂运动规划https://mp.weixin.qq.com/s/Lx-xLO_C9NKxCcRBHj2gUw
- 基于ROS2的多机器人协同研究 https://osrf.github.io/ros2multirobotbook/intro.html 等
在本课程中你可以收获以下知识:
- 掌握ROS2的概念,了解ROS2和ROS1之间的异同
- 掌握安装Ubuntu系统和ROS2
- 掌握ROS2节点和工作空间概念及编译工具的使用
- 学会编写ROS2的C++和Python节点
- 掌握ROS2话题和服务通信机制以及Python和C++实现
- 掌握ROS2参数通信机制并了解Action通信机制
- 掌握ROS2常用工具如RQT、ROS2bag、ROS2launch等
## 3.本教程适合学习对象有哪些?
本教程会从最基础的部分开始讲起,章节中会穿插扩展阅读部分,帮助大家学习掌握,本教程主要适合人群有:
- 机器人相关的大学生和的研究生们
- 已有ROS基础想要了解ROS2的在职工程师
- 想要转行从事机器人的小伙伴
- 其他想要学习了解机器人技术的同学们
### 3.1 没有机器人基础可以学习吗?
没有任何问题,即使你不是机器人相关专业也没事,小鱼会在教程中给大家讲解。
### 3.2 没有编程基础可以学习吗?
本教程使用Python和C++编程语言实现,大家只需要掌握其中之一即可。
如果没有任何编程基础的小伙伴,可以简单的学习一下Python语言,两三天就可以上岗了。
## 4.课程介绍
### 4.1 课程规划
#### 4.1.1 一期课程
##### 本教程一期为1到6章为基础环节,主要介绍了ROS2的基本使用
- 第 1 章 ROS2介绍
- 第 2 章 准备环境与安装ROS2
- 第 3 章 ROS2基础知识
- 第 4 章 ROS2通信机制(话题与服务)
- 第 5 章 ROS2通信机制(参数与Action)
- 第 6 章 ROS2工具介绍
#### 4.1.2 二期课程安排
##### 机器人进阶环节
- 第 7 章 机器人基础
- 第 8 章 机器人建模
- 第 9 章 机器人仿真
##### 10到11章为实战环节
- 第 10 章 综合案例一:SLAM导航仿真
- 第 11 章 综合案例二:MoveIt机械臂建模
### 4.2 软件版本
- ROS2版本:foxy
- 系统版本:Ubuntu20.04
### 5.关于小鱼
小鱼目前主要在做基于ROS的复合机器人相关的工作,坐标深圳,有时间的小伙伴周末一起来喝个茶。
同时这也是小鱼第一次录制系列性的课程,有不足之处还请大家多多包涵!
因为制作时间仓促和作者个人能力有限,教程之中难免有错误之处,如果你有发现请联系小鱼,小鱼将第一时间修正。
最后欢迎关注小鱼的微信公众号《鱼香ROS》,和小鱼一起学习ROS2。公众号下方有小鱼的个人微信和机器人技术交流群,有问题可以联系。

#### 参考资料
- ROS2官方文档:http://docs.ros.org/en/foxy/index.html
- 小鱼搬运ROS2教学视频:https://www.bilibili.com/video/BV19U4y1n7CQ
------
技术交流&&问题求助:
- 课程合作:[睿慕课](https://www.aiimooc.com/)
- 微信公众号:鱼香ROS
- 小鱼微信:AiIotRobot