室内路径规划和定位是实现基于DragonBoard 410c的家庭智能环保卫士的关键,根据前面方案的设计,家庭智能环保机器人能够在室内自由穿梭,根据预先规划的路径,或者室内环境情况来自由移动,对室内各个区域的环境进行巡逻和监测,这就需要机器人能够自主的记录自己的移动位置,并且可以根据传感器采集的环境数据,对移动的路径进行规划,本期blog将和大家一起分享如何在室内实现路径规划。
这里我们使用的机器人底盘是目前很热的kobuki机器人底盘,其自身携带了各种传感器,包括常用的避障、位置记录、速度监测等传感器,从底盘我们可以方便的获取机器人的位置信息和角度信息,同时在设计中我们还使用了超声波测距、空气质量监测等传感器,利用这些传感器和机器人底盘数据就可以实现一个简单的室内路径规划,实时的为家庭智能环保卫士规划出最佳的路径。
如下图1所示,是典型的常见的家居住房的室内空间平面结构这里我们假设家庭智能环保机器人放在一个固定的位置,通常是室内的一个固定角落,如图中A点所示,启动的时候kobuki机器人底盘会报告一个初始位置(0,0,0)这个位置刚好对应图中预先规划的室内网格的一个交叉点上,同时这个位置还包括了机器人的一个方向信息,通常我们将机器人靠墙放置(后续可以配置一个机器人停靠充电台),根据家庭环保卫士机器人的初始位置和方向,我们将室内划分为若干个20cm*20cm大小的网格,如图中虚线所示。
有了以上信息我们就可以很直观的来设计路径规划算法了,同时在设计之前我们还需要明确我们路径规划的输入参数和输出参数,具体如下:
1)输入参数
a、机器人底盘位置信息(x,y,z),其中x,y为机器人的位置坐标,原点为机器人的起点,y轴方向为机器人的正前方的右手坐标系,z为机器人相对于y轴的偏离角参数,偏向正x值为正,偏向-x轴值为负数,值为0-3.2之间,通过z可以计算出其偏离角度值。
b、超声波传感器距离值 sy,超声波探测的是正前方的距离
c、机器人底盘避障信息(r,p,l,d),四个值分别为右边红外、前方红外、左边红外探测障碍报警和底盘下面红外探测报警值
d、环境质量 q(x,y),表示(x,y)位置的环境质量
e、引导因子Dn=(xn,yn),该引导因子是一个相对位置因子,是各个房间相对于起点的一个大概位置值
2)输出参数
locationList(x,y,z),一个移动位置序列
确定了输入输出参数后,我们就需要根据这些输入输出参数来设计路径规划算法,其基本思路就是将室内的点分为边界点和非边界点两种,边界点表示不可穿越,非边界点表示可以穿越的点,同时边界点包括了一个方向信息,表示沿着某个方向是不可行的,边界点的信息是通过机器人移动的过程中的超声波和避障红外传感器探测出来,探测出来的边界点和非边界点信息将被保存在数据库中,在路径规划的时候会从数据库中查询相关的信息,然后根据引导因子计算最优路径,同时在第一次启动的时候,由于系统没有保存边界点和非边界点信息,所有的初始化为非边界点,系统将根据各个引导因子计算出最优的路径,机器人按照该路径进行移动和探测,然后实时的更新路径和移动方向。最终移动到引导因子附近开启净化和环境检测,同时机器人还会保存路径信息,后续就可以根据可行的路径信息来移动。
后期blog将详细向大家如何基于这思路在DragonBoard 410c上实现路径规划。