mirror of
https://github.com/Jieshoudaxue/ros_senior.git
synced 2026-08-29 16:40:44 +08:00
+233
@@ -0,0 +1,233 @@
|
||||
按照十步学习法搞ros进阶:
|
||||
|
||||
1 第一部分 只做一次
|
||||
1.1 了解全局
|
||||
(1)ros是什么:ros即robat operating system,机器人操作系统,实质是一个应用程序软件框架,本身也是一个机器人通信框架,提供一系列程序库,算法库,调试工具等,帮助开发者快速开发机器人应用程序,遵循BSD开源协议,ros支持unix系统,如ubuntu。
|
||||
|
||||
(2)ros有ros1和ros2,其中momenta主要使用ros1,也最成熟,也是学习ros2的基础。
|
||||
|
||||
(3)ros的发版历史看这里:http://wiki.ros.org/Distributions ,ros推荐:ROS Noetic Ninjemys,LTS到2025.5,使用ubuntu20.04,具体看http://wiki.ros.org/cn/ROS/Installation
|
||||
|
||||
(4)学习ros是一个很宽泛的概念,主要包括两大部分:
|
||||
第一是ros本身的学习,包括ros环境搭建,ros基本概念,ros编译,ros命令,ros系列工具,ros c++ python编程;
|
||||
第二是基于ros环境的机器人和算法库的学习,包括机器人平台搭建,机器人建模,机器人仿真,机器人视觉,机器人slam建图,机器人导航,机器人语音
|
||||
|
||||
1.2 确定范围
|
||||
(1)刚完成的ros入门学习,主要专注在ros本身的学习,学习的顶峰就是编程实现ros的player和recorder。
|
||||
(2)此次进阶学习,就是利用ros生态,学习机器人及算法相关知识,完成算法入门,掌握脉络,掌握框架。
|
||||
|
||||
|
||||
1.3 定义目标
|
||||
(1)根据确定的学习范围,此次定义如下学习目标:会用ros的几个常用组件,如TF,rviz,gazebo,会写较为复杂的launch文件。能在gazebo仿真环境下,完成机器人系统搭建,初步掌握机器人领域主流的算法,包括机器人视觉,语音,slam建图,自主导航。在仿真环境下完成一个机器人迷宫寻宝的作业,也可以视为完成一个小游戏。最后参考ros catvehicle,搭建一个自己的无人驾驶仿真系统,形成无人驾驶技术的系统框架。
|
||||
|
||||
|
||||
1.4 寻找资源
|
||||
ros官方:
|
||||
官网:www.ros.org
|
||||
ros源码:https://github.com/ros
|
||||
ros wiki:https://wiki.ros.org/cn
|
||||
ros answer: https://answers.ros.org/questions/
|
||||
ros news(停用了):https://www.ros.org/news/
|
||||
ros discourse(用这个): https://discourse.ros.org/
|
||||
|
||||
ros Tutorials中文:https://wiki.ros.org/cn/ROS/Tutorials
|
||||
1.使用模拟器,这有几个选择
|
||||
a.PR2 模拟器(主要就是Gazebo)
|
||||
i. http://wiki.ros.org/pr2_simulator/Tutorials
|
||||
ii. Gazebo: https://classic.gazebosim.org/tutorials
|
||||
iii. xacro: http://wiki.ros.org/xacro
|
||||
b.Turtlebot 模拟器:http://wiki.ros.org/Robots/TurtleBot
|
||||
c.选一个实物机器人,使用他的模拟器(首页是TurtleBot4,京东有卖的,一两万):
|
||||
i. https://robots.ros.org/
|
||||
ii. https://item.jd.com/10042270072525.html#crumb-wrap
|
||||
d.使用'teleop'程序包控制模拟机器人
|
||||
2.使用rviz:http://wiki.ros.org/rviz/UserGuide
|
||||
3.理解TF: http://wiki.ros.org/tf
|
||||
4.学习URDF模型和URDF软件包:
|
||||
a. http://wiki.ros.org/cn/urdf/Tutorials
|
||||
b. http://wiki.ros.org/cn/urdf
|
||||
5.更进一步,学习导航和moveit!
|
||||
|
||||
书籍:
|
||||
《机器人操作系统(ROS)浅析》(已下载)
|
||||
《ROS机器人开发实践》胡春旭 (已下载)
|
||||
《机器人学导论》John J.Craig 斯坦福大学(已下载)
|
||||
|
||||
博客:
|
||||
ROS史话36篇:https://www.guyuehome.com/Blog/index/_cate/ros-history/category/13/p/1
|
||||
|
||||
古月博客
|
||||
ROS探索总结:
|
||||
1.链接:https://www.ncnynl.com/category/ros-learning/1/
|
||||
2.创客智造转载,但目录更清晰,原始链接:http://www.guyuehome.com/Blog/index/category/11/p/4
|
||||
3.该系列博客,可以视为ROS理论与实践的补充文档
|
||||
|
||||
ros2入门教程:http://www.guyuehome.com/Blog/index/category/14/p/4
|
||||
ros技术点滴:https://mp.weixin.qq.com/mp/appmsgalbum?__biz=MzU1NjEwMTY0Mw==&action=getalbum&album_id=1652733011081134091&scene=173&from_msgid=2247485886&from_itemidx=1&count=3&nolastread=1#wechat_redirect
|
||||
|
||||
|
||||
创客智造:
|
||||
https://www.ncnynl.com/
|
||||
|
||||
开源机器人学习指南:https://github.com/qqfly/how-to-learn-robotics
|
||||
zhangrelay博客:https://blog.csdn.net/ZhangRelay
|
||||
|
||||
快速安装ros:
|
||||
https://blog.csdn.net/KIK9973/article/details/118755045
|
||||
|
||||
|
||||
视频推荐:
|
||||
古月·ROS入门21讲 | 一学就会的ROS机器人入门教程 :https://www.bilibili.com/video/av59458869/
|
||||
|
||||
ros理论与实践 胡春旭:https://www.shenlanxueyuan.com/course/473/task/15655/show
|
||||
ROS机器人开发实践 胡春旭:https://www.bilibili.com/video/BV1qL4y177Cv/?from=search
|
||||
朱老师推荐的ros课程:
|
||||
b站:https://www.bilibili.com/video/BV1b5411g7hr?p=1
|
||||
网盘:https://pan.baidu.com/s/1tJyM1viiceBehBTxcOFPpw 提取码:s7l8
|
||||
|
||||
gitHub开源:
|
||||
ros best practices:https://github.com/leggedrobotics/ros_best_practices
|
||||
ros cheatsheet(已下载):https://github.com/ros/cheatsheet
|
||||
|
||||
硬件设备推荐:
|
||||
自动驾驶机器人小车:https://item.taobao.com/item.htm?spm=a1z10.1-c.w4004-23149348300.2.15ff718buPu1YA&id=645146809185
|
||||
|
||||
ros与无人驾驶:
|
||||
Apex.OS:https://www.guyuehome.com/4921
|
||||
Autoware: https://autowarefoundation.github.io/autoware-documentation/main/
|
||||
Autoware + ROS2: https://blog.csdn.net/qq_37464479/article/details/117729715
|
||||
|
||||
|
||||
1.5和1.6 创建学习计划和筛选资料
|
||||
(1)ros高级组件:launch,TF,rviz,Gazebo
|
||||
资料:
|
||||
ros理论与实践 胡春旭 第4章:https://www.shenlanxueyuan.com/course/473/task/15655/show
|
||||
《ROS机器人开发实践》胡春旭 第4章
|
||||
ROS探索总结 对应章节:https://www.ncnynl.com/category/ros-learning/1/
|
||||
ROS技术点滴 对应章节:
|
||||
https://mp.weixin.qq.com/mp/appmsgalbum?__biz=MzU1NjEwMTY0Mw==&action=getalbum&album_id=1652733011081134091&scene=173&from_msgid=2247485886&from_itemidx=1&count=3&nolastread=1#wechat_redirect
|
||||
ros Tutorials中文:https://wiki.ros.org/cn/ROS/Tutorials
|
||||
复杂的roslaunch:https://wiki.ros.org/cn/ROS/Tutorials/Roslaunch%20tips%20for%20larger%20projects
|
||||
理解TF: http://wiki.ros.org/tf
|
||||
使用rviz:http://wiki.ros.org/rviz/UserGuide
|
||||
Gazebo: https://classic.gazebosim.org/tutorials
|
||||
(2)URDF机器人建模与xacro优化
|
||||
资料:
|
||||
ros理论与实践 胡春旭 第5和6章:https://www.shenlanxueyuan.com/course/473/task/15655/show
|
||||
《ROS机器人开发实践》胡春旭 第6章
|
||||
ROS探索总结 对应章节:https://www.ncnynl.com/category/ros-learning/1/
|
||||
ros Tutorials中文:https://wiki.ros.org/cn/ROS/Tutorials
|
||||
URDF:http://wiki.ros.org/cn/urdf/Tutorials
|
||||
xacro: http://wiki.ros.org/xacro
|
||||
(3)基于Gazebo构建机器人仿真平台
|
||||
资料:
|
||||
ros理论与实践 胡春旭 第6章:https://www.shenlanxueyuan.com/course/473/task/15655/show
|
||||
《ROS机器人开发实践》胡春旭 第6章
|
||||
ROS探索总结 对应章节:https://www.ncnynl.com/category/ros-learning/1/
|
||||
ros Tutorials中文:https://wiki.ros.org/cn/ROS/Tutorials
|
||||
Gazebo: https://classic.gazebosim.org/tutorials
|
||||
(4)机器视觉处理
|
||||
资料:
|
||||
ros理论与实践 胡春旭 第7章:https://www.shenlanxueyuan.com/course/473/task/15655/show
|
||||
《ROS机器人开发实践》胡春旭 第7章和第11章,尤其是11章,讲解ros+tensorflow
|
||||
ROS探索总结 对应章节:https://www.ncnynl.com/category/ros-learning/1/
|
||||
机器视觉:https://www.ncnynl.com/archives/201609/849.html
|
||||
ros Tutorials中文:https://wiki.ros.org/cn/ROS/Tutorials
|
||||
cv_bridge:http://wiki.ros.org/cv_bridge
|
||||
opencv_apps:http://wiki.ros.org/opencv_apps
|
||||
opencv: https://www.w3cschool.cn/opencv/opencv-2gnx28u3.html
|
||||
tensorflow(机器学习平台):
|
||||
github:https://github.com/osrf/tensorflow_object_detector
|
||||
教程:https://tensorflow.google.cn/tutorials?hl=zh-cn
|
||||
(5)机器人语音交互
|
||||
资料:
|
||||
ros理论与实践 胡春旭 第8章:https://www.shenlanxueyuan.com/course/473/task/15655/show
|
||||
《ROS机器人开发实践》胡春旭 第8章
|
||||
ROS探索总结 对应章节:https://www.ncnynl.com/category/ros-learning/1/
|
||||
语音控制:https://www.ncnynl.com/archives/201609/848.html
|
||||
机器听觉:https://www.ncnynl.com/archives/201708/1929.html
|
||||
ros Tutorials中文:https://wiki.ros.org/cn/ROS/Tutorials
|
||||
讯飞开放平台:https://www.xfyun.cn/
|
||||
百度开放平台:http://ai.baidu.com/
|
||||
(6)机器人SLAM建图
|
||||
资料:
|
||||
ros理论与实践 胡春旭 第9章:https://www.shenlanxueyuan.com/course/473/task/15655/show
|
||||
《ROS机器人开发实践》胡春旭 第9章
|
||||
ROS探索总结 对应章节:https://www.ncnynl.com/category/ros-learning/1/
|
||||
如何发布里程计消息:https://www.ncnynl.com/archives/201609/859.html
|
||||
ros Tutorials中文:https://wiki.ros.org/cn/ROS/Tutorials
|
||||
http://wiki.ros.org/gmapping/
|
||||
http://wiki.ros.org/hector_slam
|
||||
http://wiki.ros.org/cartographer
|
||||
https://introlab.github.io/rtabmap/
|
||||
(7)机器人自主导航
|
||||
资料:
|
||||
ros理论与实践 胡春旭 第9章:https://www.shenlanxueyuan.com/course/473/task/15655/show
|
||||
《ROS机器人开发实践》胡春旭 第9章
|
||||
ROS探索总结 对应章节:https://www.ncnynl.com/category/ros-learning/1/
|
||||
如何配置机器人的导航功能:https://www.ncnynl.com/archives/201609/857.html
|
||||
发布导航需要的传感器信息:https://www.ncnynl.com/archives/201609/858.html
|
||||
如何发布里程计消息:https://www.ncnynl.com/archives/201609/859.html
|
||||
ros Tutorials中文:https://wiki.ros.org/cn/ROS/Tutorials
|
||||
http://wiki.ros.org/navigation
|
||||
(8)机器人综合应用--迷宫寻宝
|
||||
资料:
|
||||
ros理论与实践 胡春旭 第10章:https://www.shenlanxueyuan.com/course/473/task/15655/show
|
||||
《ROS机器人开发实践》胡春旭 第13章的1到3节
|
||||
|
||||
(9)参考ros catvehicle搭建自己的无人驾驶仿真系统
|
||||
资料:
|
||||
《ROS机器人开发实践》胡春旭 第13章的第4节 catvehicle(无人驾驶)
|
||||
catvehicle: https://jmscslgroup.github.io/catvehicle/
|
||||
|
||||
|
||||
|
||||
|
||||
2 第二部分--在各个知识模块循环往复
|
||||
|
||||
2.1 ros高级组件:复杂launch,TF,rviz,Gazebo
|
||||
(1)
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
------------------------------------------------------------------------------------------------
|
||||
|
||||
## 3.1 chatGPT4.0使用经验
|
||||
写代码的过程中,我大量使用了chatGPT4.0,从一开始无脑信任它,到最后不知道该不该信任它。多次受骗以后,我逐步摸索出了一套沟通方法,记录在此:
|
||||
(1)对于较为复杂的代码,chatGPT给出来的往往是有bug的,而且很隐蔽,需要你调试半天,所以千万不要无脑相信它。
|
||||
(2)对于编译运行出现的问题,chatGPT的回答也是模棱两可的,所以调试代码,千万不要无脑依赖chatGPT。
|
||||
(3)因此,使用chatGPT,需要开发者自己要有清晰的思路,当遇到问题的时候,也要有自己的思考,用自己的思路引导它帮你。
|
||||
(4)对于chatGPT给出的不准确的地方,一定要使用google及时进行校验,不要一直无脑的问它,否则肯定会浪费大量时间。
|
||||
|
||||
python多线程和多进程:https://www.liaoxuefeng.com/wiki/1016959663602400/1017627212385376
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user