同步操作将从 飞行器智能感知与控制/learn_ros 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
ROS的全称是Robot Operating System,即机器人操作系统。它提供一系列程序库和工具以帮助软件开发者创建机器人应用软件。 ROS的核心就是提供了一套针对机器人应用的进程间通讯系统,使得不同功能的模块之间可以很方便的互联。 如果把机器人的操纵比作一棵大树。而ROS充当的就是实现各个模块(树干,树叶)之间互通的脉络。让各个模块之间可以更方便,更快捷的互联互通。
不仅如此,经过ROS多年的发展,其内部早已完善了很多基础模块并且开源,比如:导航模块,机械臂控制模块,坐标系转换模块,各种SLAM模块等等。这将大大降低我们对于操控机器人的成本,不需要我们自己去造轮子,也不必从最底层的功能去实践。这对于初学者,无疑是十分友好的。
最后,ROS的优点就是针对机器人开发,ROS则提供了很好的可视化、模拟仿真和Debug的工具。可视化的工具RViz
,Stage
和Gazebo
就像通信工程师用的示波器,可以说没有RViz
这种可视化工具,很多功能是无法调校出来的;ROS下的模拟仿真做到了和硬件的无缝衔接。
并且针对行业来说,ROS已经逐步在与各行各业融合。如:机器人控制器中的大佬人物——KEBA,他们的控制器已经支持ROS。美国NASA基于ROS开发的Robonaut 2已经在国际空间站里干活了。 百度Apollo无人车的底层是基于ROS开发的。以及ROS-I最近正准备和微软、宝马合作,开发一套自动化解决方案,等等。这都是在说明ROS的影响正在逐步的扩大。
ROS可以说是现在对于机器人的学习无法绕开的一个关卡。而ROS其内部涉及着大量的对于机器人运动学的理论知识,我们不想只是成为一个仅仅会调包的“调包侠”。所以对于ROS的学习也是需要去深入,尝试去理解那些已有模块的内部方法。从而提高自己的能力。使自己对机器人的理解更上一层楼。希望大家能够脚踏实地,认真学习。
本教程只针对ROS1,不讲ROS2
Stage 0:基础知识(Linux,C++,Python)
Stage 1: ROS基础学习
安装ROS,去官方安装网站安装
rosdep
指令因访问不了外网可暂时跳过这条指令参照ROS基本教程学习
Topic
和Service
等Stage 2: ROS中期学习
roslaunch
的基本使用odom
,URDF
,TF
理解并掌握URDF
知识创建个仿真小车,并控制其移动Stage 3: ROS各个模块学习
这里就是真正进入机器人模块了,我这里把机器人分成六个模块来讲:上下位机通讯,建图,导航,机械臂,状态机,语音图像。这个学习没有先后顺序,可根据自己需要自行决定学习顺序
学习之前可以先看一下下方的学习建议
上下位机通讯
ros_control
的运作过程串口通讯
,socket
通讯roscontrol
,以及串口通讯方式等导航
建图(slam)
机械臂控制
状态机
语音图像
如何学习这些模块呢,我觉得需要经历三个过程用,读,写
昨夜西风凋碧树,独上高楼,望尽天涯路
首先是用,将官方代码跑起来,让其能够实现功能。在使用的过程中一定会遇到错误,在解决这些错误的过程就多少会对这个模块有一个新的认识。
衣带渐宽终不悔,为伊消得人憔悴
第二是读,尝试去读源码,理解其内部原理,通过读代码学习其代码的风格以及解决问题的逻辑思路,这也会对你的代码水平有较大的提高。
众里寻他千百度,蓦然回首,那人却在,灯火阑珊处
最后就是写,在积累了这么多之后,就可以尝试去改进其源码的一些东西,来达到自己想要的一个更好的效果,甚至自己操刀重新写一个新的包。
画重点: 这里给大家提供以十分好用的网站,这里你可以查到任何ros中使用的对象的方法。如,我想查找Costmap2D的方法,就点击这。对比这两个的网址,就可以找到你想要的各种类方法。
最后我也将rbx1
这个包放入到Module
目录里,大家可以去试着用和学习其简单样例,帮助学习。
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。