小鱼 ROS 2 新书上线!点击链接查看, 新书配套视频点击链接查看。
提问前必看的发帖注意事项—— 提问前必看!不符合要求的问题拒绝回答!!
社区使用指南—如何添加标签修改密码
关于一些学习nav2的思考
-
我入坑ros的时候比较叛逆,当时装了ubuntu22.04,环境都配好了,装不了ros1,网上的ros1教学就不想看,直接从humble开始学了。学了快一年了,进度一直很慢,总结了一些原因。
- ros2的教学很详细,但是有时候你会有一些问题解决不了,很多时候不是你没理解到位,而是ros2默认你都知道了。这时候就需要你去看ros1的相关文档,很多api里面都会介绍
- nav2也同理,它默认你了解了很多机器人学的相关知识,所以很多东西就说的没那么详细
- 学习nav2的时候,最大的问题是nav2的官方文档很多东西没有把接口写出来,只是告诉你这个功能怎么配置参数。很长一段时间都卡在这里。后来感觉不能硬靠教学文档,去看了开源的代码逻辑,很多问题得到了解决。
- 学习nav2时,很多时候不知道接口如何使用。而且不是那种不知道接口功能的,而是不知道这个地方如何写,或者写的更优雅一点。这时候可以找nav2相关功能的实现代码。比如nav2没有实现c++的simple_commander,只告诉你使用action。你如果你熟悉ROS1,大可以学习像写move_base的action那样写出nav2的动作服务。如果你不熟悉,即使知道了动作服务的基础写法,可能也一团雾水。这时候可以尝试去把python的simple_commander的逻辑学了,在c++中实现。或者参考相关的实现代码,比如rviz2的nav2插件的实现,或者waypoint_follower等。
以上这些都是踩的坑,其实还是感觉得从ros1相关功能学起来,然后再迁移到ros2来的快。或者要边学ros2跟上时代的脚步,但也要把ros1的相关功能学了。如果你们也是装了ubuntu22.04以上,我觉得可以同时装一个noetic的docker(小鱼有一键安装),或者我记得网上有个网站,提供了在线的ros环境和图形界面,在那里学效果很好,还能随时切换ros环境。还有,教程不足的话一定要看源码理解,时在能力不足可以把源码发给gpt问,能快速解决很多问题。我感觉之前我太受学生思维限制了,一个开源没有详细的文档就无从下手。或者都可以不用理解它的功能怎么实现的,解决好如何调用的功能就可以
-
你的学习经历和思考非常宝贵,特别是在面对ROS2和nav2这样复杂且不断发展的系统时。确实,直接从ROS2开始可能会遇到一些挑战,尤其是当文档和教程不够详细时。不过,你的坚持和通过查看源码来解决问题的方法是非常值得赞赏的。以下是一些建议,希望能帮助你继续提升学习效率和效果:
-
结合ROS1和ROS2学习:
- 正如你所提到的,ROS1的许多基本概念和API在ROS2中仍然有效,只是实现方式有所不同。了解ROS1的知识可以帮助你更快地理解ROS2中的类似概念。
- 可以选择性地学习ROS1中的关键概念和工具,比如服务(Services)、话题(Topics)、动作(Actions)等,并在ROS2中实践这些概念。
-
深入阅读官方文档和源码:
- 官方文档虽然有时不够详细,但它是理解框架设计和API使用的最佳起点。
- 当文档不足时,阅读源码是了解系统内部工作原理和解决问题的重要方法。
- 可以使用工具如Doxygen或Source Insight来辅助阅读和理解C++源码。
-
参与社区和论坛:
- ROS和nav2都有非常活跃的社区和论坛,如ROS Answers、GitHub Issues等。
- 在这些平台上提问和回答问题,与同行交流经验,可以大大加快你的学习进程。
- 也可以关注一些ROS和nav2的开发者或博主的博客和社交媒体账号,获取最新的教程和资讯。
-
实践项目:
- 理论学习之外,实践项目是学习ROS和nav2不可或缺的一部分。
- 尝试自己搭建机器人平台,编写导航和定位的代码,解决实际问题。
- 可以从简单的项目开始,逐步增加难度,挑战自己。
-
利用现代工具辅助学习:
- 如你所提到的,使用GPT等AI工具可以帮助你快速解决一些编程和概念理解上的问题。
- 还可以利用Docker等容器化技术来快速搭建不同版本的ROS环境,方便学习和测试。
-
保持耐心和毅力:
- 学习ROS和nav2这样的复杂系统需要时间和耐心。
- 遇到难题时不要气馁,多尝试不同的方法,多向他人请教。
最后,你的学习态度和方法非常值得肯定。通过不断努力和实践,相信你一定能够在ROS和nav2领域取得更大的进步。
以上为生成回答,仅供参考~
-
-
@2429148505 推荐个Nav2中文文档: http://fishros.org/doc/nav2/
-
@小鱼 之前看到了,已经寄里。估计原因是nav2的英文文档的网址变了吧
-
@2429148505 不能访问了吗,我刚试了下还行
-
@小鱼 我这边一直是502,挂不挂梯子都这样
-
@2429148505 是不是走了https
-
@小鱼 还真是这样