📢:如果你也对机器人、人工智能感兴趣,看来我们志同道合✨
📢:不妨浏览一下我的博客主页【https://blog.csdn.net/weixin_51244852】
📢:文章若有幸对你有帮助,可点赞 👍 收藏 ⭐不迷路🙉
📢:内容若有错误,敬请留言 📝指正!原创文,转载请注明出处
文章目录
- 一、移动机器人导航方式
- 1.1 人工标引的有轨导航
- 1.2 人工标识引导的无轨导航
- 1.3 无人工标识引导的无轨导航
- 二、视觉导航原理
- 2.1 建图
- 2.2 路径规划
- 2.3 导航重定位
- 三、机器人硬件系统结构分布
- 3.1 电源模块
- 3.2 ROS主机
- 3.3 运动控制核心
- 3.4 无线WiFi模块
- 3.5 电机与驱动模块
- 3.6 系统上下位机的通信设计
一、移动机器人导航方式
1.1 人工标引的有轨导航
导航规划类型1:通过人工标引的有轨导航,称为AGV。
优点:技术成熟、稳定可靠、价格优惠。
缺点:需要施工和维护、路线固定无法灵活调整。
1.2 人工标识引导的无轨导航
导航规划类型2:有人工标识引导的无轨导航,激光反射板导航。
优点:技术成熟、路径可调;
缺点:需要维护和施工、价格昂贵。
1.3 无人工标识引导的无轨导航
导航规划类型3:无人工标识引导的无轨导航,
优点:无需施工、路径可调、精确定位、室内外通用;
缺点:算法复杂,环境变化影响定位可靠性和稳定性。
以扫地机器人为例,分为视觉导航和激光导航。
二、视觉导航原理
📢:室外场景下,机器人视觉导航负责的工作:
1.定位:基于环境理解的全局定位。通过对环境中景物的理解,识别人造或是自然的路标,完成机器人的定位。
2.路径规划:包括对自然环境中道路的理解和可行通道方向的判别。
3.物体识别:包括对路面上障碍物的检测和对特定目标的识别。
案例:无人驾驶汽车(例如特斯拉)是如何通过纯视觉进行导航的?特斯拉视觉导航,大多数车企是通过多个传感器共同感知环境进行导航的。
📢:室内场景下,机器人视觉导航负责的工作:
1.目标跟踪导航
2.路径跟踪导航
3.基于平行线的视觉导航
4.视觉罗盘
实现自主导航的步骤
2.1 建图
1、建图:百度地图、谷歌地图 ,已经帮我们做好了。这部分关于地图是如何构建的?专业的测绘车在道路上行驶,采集原始的图像信息和激光数据以及部分静态控制点信息。将数据通过物理手段传递给云端后,进入生产环节,具体参考
2.2 路径规划
2、路径规划:跟建图一样,地图软件已经帮我们制定好了从出发点到终点的行驶轨迹,但是实时避障(局部路径规划)还是需要依靠汽车自己
2.3 导航重定位
3、导航重定位:机器人在全局地图中的位置,GPS已经帮我们做好了。因此想要实现汽车的无人驾驶(室外移动机器人的自主导航)。
那么还缺什么呢?通过视觉算法实现:
1.避障(障碍物检测+测距)
2.识别交通信号灯
3.车道线识别
实现室外场景下农业机器人自主导航的步骤
三、机器人硬件系统结构分布
3.1 电源模块
智能移动机器人要实现移动,电源模块是其实现运动的能量来源,由于线缆供电的供电方式对于移动机器人有很多限制,故选用移动电池模组为系统供电。目前市场上用于移动机器人等运动平台的常用电池类型有:铅酸电池、锂电池及其他化学成分的电池。
推荐使用磷酸铁锂电池,该型电池不仅保证了电池的安全高效,而且使用寿命更长、绿色环保。
3.2 ROS主机
ROS主机选用成本低且性能优异的卡片计算机RaspberryPi,该模块体积小巧,容易嵌入系统,其系统主要是基于Linux系统,但随着Windows 10 IoT的发布,RaspberryPi已经可以运行Windows系统,考虑到Linux系统的开源性以及目前Windows开发ROS的诸多局限性,本设计ROS主机仍选用在Linux系统下进行开发。如图所示为RaspberryPi 3B的实物及主要功能接口。
3.3 运动控制核心
机器人运动控制核心在机器人整个控制系统中起着至关重要的作用,通过分析比较,常用的是意法半导体公司(ST)的32位微控制器。
通信电路设计RS232通信电路数据的传输一般有并行和串行两种方式,由于串行接口的诸多优点,在很多领域得到应用,常用串行接口总线包括:RS232、RS422、RS485、USB,串行通信又可以分为同步通信和异步通信两种类型,异步通信又分为单工、半双工、全双工。同步通信与异步通信最大的区别就是:在数据的传输过程中同步通信要在同步时钟下传输而且数据之间不允许有间隙,而异步通信却无此限制,所以异步通信在字符发送开始和结束时都设置了一个标志位,以便接收端能够正确地将每一个字符接收下来。
RS232协议就一种串行异步全双工通信方式,下图就是异步通信原理示意图。
3.4 无线WiFi模块
在机器人控制系统中使用较广泛的近距离无线通信技术有WiFi、Mesh、蓝牙、ZigBee、Thread、Z—Wave、NFC、UWB、LiFi等,而随着通信业的发展,其中无线WiFi模块凭借低廉的成本、稳定的工作性能、快速的数据传输,使其进入各个行业,尤其在智能家居和智能机器人等终端产品通信技术中的使用最为广泛。无线WiFi模块直接与STM32通过RS232连接进行通信,主要负责非智能导航状态下的人工远程控制,并能建立一定范围的无线局域网。
核心板具体型号为联发科(MTK)MT7628 SOC芯片,该芯片系统采用Openwrt‘(Linux)系统,实物图如图。
3.5 电机与驱动模块
驱动电机是机器人运动的动力来源,机器人的控制实际上可以归结为对电机的控制,而针对不同的电机其控制方法各不相同,同种电机也会有不同的控制模式,所以电机的控制首先需要确定其就控制方法。
3.6 系统上下位机的通信设计
系统上下位机的通信方式如图所示,STM32下位机嵌入式系统与ROS主机Raspberry Pi 3B之间通过串口方式进行通信。
基于无线WiFi的多机分布式通信目的是通过PC端远程访问ROS主机,在一台PC上同时对多个Linux终端进行操作,通过SSH通信即可实现ROS主从机之间的文件互传、远程其他操作。
SSH通信程序分为有客户端程序openssh.client和服务端程序openssh—server。
同时为ROS主从机安装SSH服务,并且开启服务,终端执行命令如下:
$sudo apt—get install openssh-server
$sudops—e Igrep ssh
修改hosts文件,将ROS主从机hostname(主机名)和当前网段下的口地址
添加进该文件,保存退出。修改hosts文件终端执行的命令如下:
$sudo gedit/etc/hosts
编辑bashrc文件,设置ROS-MASTER.URI,终端执行的命令如下:
$gedit.bashrc
ROS主机添加如图所示的代码:
ROS从机添加如下图所示的代码,其中口为当前网段的地址,rosmater只运行于ROS主机。