ROS2
ROS2学习心得
说明:
- 从ros2发布第一个长期版本foxy,就开始参与公司ros产品相关的迭代和迁移开发工作,对于ros2也有一定使用方面的总结。
- 在这里提供一个相关资源,可以帮助到都是学习ros2的朋友们。大家可以更快的学习ros2
1. ros1还是ros2
- 首先学习ros2,不一定需要学习ros1,如果是初接触ros操作系统,直接学习ros2也没有问题。
- 毕竟两个版本的差异还不小。如果已经学习过ros1的,学ros2那就更快,毕竟两个概念还是继承的相通的。
- 可以看看我们整理的 ros1与ros2的比较: ros2入门教程-比较ros1和ros2的异同 - 创客智造
- 官方资料:ROS官网 | 官方文档教程 | 官方论坛 | 官方问答 | ROS设计 | 官方github
- Awesome ROS2各种资源汇总:https://fkromer.github.io/awesome-ros2/
- Awesome ROS2各种资源汇总github:https://github.com/fkromer/awesome-ros2
2. ros2环境搭建
ros2的环境搭建,跟ros1的搭建是类似。经过官方的一系列完善,步骤已经是一样的。都比较简单。
可以看看我们整理的资料: ROS2入门教程 | ROS2探索总结 | ROS2与launch入门教程
目前我使用最顺畅的ros2版本是 galactic ,建议从这个版本开始。
从foxy版本开始也没问题。这个也是长期支持的版本, 未来还会有更强大的的版本。可以慢慢升级。
3. ros2软件包
核心的外围功能包,基本都是有迁移的ros2版本,比如建图,导航,控制等。
一些外围算法应用的迁移不一定都有相应的ros2版本,不过自己有编程能力,这个迁移都可以自己完成。比如一些硬件的驱动。
传感器的专栏: ROS2与传感器教程 - 创客智造
激光slam算法专栏: ROS2与SLAM入门教程 - 创客智造
导航算法专栏: ROS2与Navigation2入门教程 - 创客智造
视觉slam算法专栏: ROS2与VSLAM入门教程 - 创客智造
4. 编程语言
核心的开发语言还是C、C++和Python,这个是没疑问的。
一般硬件相关软件包,还是多为C++的,算法相关的软件包,还是Python比较多,界面相关的Python qt为多。
手机相关的就是rcljava, 网页相关就是rclnodejs 等。
根据自己的需要,在官网wiki和github库多学习就可以使用。
对于C++编程熟悉,可以学习:ROS2与C++入门教程 - 创客智造
对于Python语言熟悉的,可以学习:ROS2与Python入门教程 - 创客智造
5. ros2仿真
搭建好ros2环境,那就做做仿真,进一步看看如果使用激光,相机,建图,导航等功能
首推turtlebot3的仿真 ROS2与Turtlebot3仿真 - 创客智造
其次walking的仿真 ROS2与walking机器人仿真教程 - 创客智造
gazebo仿真相关知识: ROS2与Gazebo11入门教程 - 创客智造
Ignition仿真相关知识:Ignition入门教程 - 创客智造
webots仿真相关知识:ROS2与webots入门教程 - 创客智造
6. ros2真机
可以通过仿真来开发功能,但是功能始终要在真机做验证的。毕竟仿真和真机还是有不少差异。
仿真的数据都是比较理想的,可能功能开发出来,在仿真运行得好好,到了真机都出现各种意想不到的问题。
所以有一个真机做验证还是必要的。
首推还是turtlebot3的真机,foxy版Turtlebot3-burger入门教程 - 创客智造
其次walking的真机 ROS2与walking机器人入门教程 - 创客智造
7. 总结
turtlebot3和walking机器人是我们用于开发ros2和验证算法的移动平台。
基于这两个平台,我们学习和整理了上面的相关专栏。
目前我们也在继续整合和整理更多相关专栏。比如界面相关,web相关,更多算法的,更多支持硬件。
一句话,掌握扎实的编程能力,什么都好说。要不只停留在做调包,进步肯定会比较慢。
学编程也不是短时间能做好的事情,多参考别人现成的包,多练习,多做不同项目。坚持下来,总有收获。