Merge pull request #1 from Jieshoudaxue/dev

[feat] add doc
This commit is contained in:
界首大学
2023-06-12 16:21:24 +08:00
committed by GitHub
+233
View File
@@ -0,0 +1,233 @@
按照十步学习法搞ros进阶:
1 第一部分 只做一次
1.1 了解全局
1ros是什么:ros即robat operating system,机器人操作系统,实质是一个应用程序软件框架,本身也是一个机器人通信框架,提供一系列程序库,算法库,调试工具等,帮助开发者快速开发机器人应用程序,遵循BSD开源协议,ros支持unix系统,如ubuntu。
2ros有ros1和ros2,其中momenta主要使用ros1,也最成熟,也是学习ros2的基础。
(3)ros的发版历史看这里:http://wiki.ros.org/Distributions ros推荐:ROS Noetic NinjemysLTS到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 wikihttps://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.使用rvizhttp://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 practiceshttps://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.OShttps://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 创建学习计划和筛选资料
1ros高级组件:launchTFrvizGazebo
资料:
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
复杂的roslaunchhttps://wiki.ros.org/cn/ROS/Tutorials/Roslaunch%20tips%20for%20larger%20projects
理解TF: http://wiki.ros.org/tf
使用rvizhttp://wiki.ros.org/rviz/UserGuide
Gazebo: https://classic.gazebosim.org/tutorials
(2URDF机器人建模与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
URDFhttp://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_bridgehttp://wiki.ros.org/cv_bridge
opencv_appshttp://wiki.ros.org/opencv_apps
opencv: https://www.w3cschool.cn/opencv/opencv-2gnx28u3.html
tensorflow(机器学习平台):
githubhttps://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高级组件:复杂launchTFrvizGazebo
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