一种机器人系统及定位导航方法
技术领域
本申请涉及人工智能技术领域,尤其涉及一种机器人系统及定位导航方法。
背景技术
目前移动机器人在日常工作和生产中得到了极大的应用,移动机器人在使用过程中可以构建地图和路径规划,但目前移动机器人构建地图还不够精确,路径规划也不合理,常常会出现碰撞障碍物的现象,自主导航和避障能力不够强,会降低工作效率,减少移动机器人的使用寿命。
发明内容
本申请实施例的目的在于提供一种机器人系统及定位导航方法,以解决机器人自主定位导航不精确的问题。具体技术方案如下:
第一方面,本申请提供了一种机器人系统,该系统包括:定位导航装置、驱动装置、控制装置、人机交互装置和环境感知装置,所述环境感知装置至少包括超声波传感器、激光雷达、深度摄像头,所述定位导航装置分别与所述驱动装置、所述控制装置、所述人机交互装置、所述超声波传感器、所述激光雷达和所述深度摄像头连接;
所述驱动装置,用于提供驱动力;
所述控制装置,用于控制所述机器人;
所述人机交互装置,用于将操作指令发送至所述定位导航装置,并接收所述定位导航装置的反馈信息;
所述环境感知装置,用于接收所述定位导航装置发送的采集数据指令,并将采集到的环境数据发送至所述定位导航装置;
所述定位导航装置,用于构建地图,并进行路径规划。
可选的,所述环境感知装置还包括防跌落传感器、惯性测量单元和碰撞传感器,所述定位导航装置分别与所述红外传感器、所述防跌落传感器、惯性测量单元和碰撞传感器连接;
所述红外传感器,用于进行红外测距;
所述防跌落传感器,用于探测地面高度,基于检测到的地面高度调整机器人前进方向;
所述惯性测量单元,用于测量所述机器人三轴姿态角以及加速度;
所述碰撞传感器,用于检测碰撞信号,并将所述碰撞信号传递至所述定位导航装置。
可选的,所述定位导航装置包括:定位模块和导航模块,所述定位模块与导航模块连接;
所述定位模块,用于进行位姿检测与重定位;
所述导航模块,用于进行避障处理、速度控制、路径平滑性控制、路径推演和3D障碍物检测。
可选的,所述定位导航装置包括建图模块;
所述建图模块用于进行图优化回环处理和构建地图。
可选的,所述定位导航装置包括:安全模块和微控制单元,所述安全模块与所述微控制单元连接;
所述安全模块,用于主控心跳检测、超声波碰撞检测,以及设置激光雷达围栏;
所述微控制单元,用于控制驱动装置运动。
可选的,所述定位导航装置包括监控模块;
所述监控模块,用于电量检测、定位准确性检测和安全预警。
可选的,所述人机交互装置包括:可视化软件模块和软件开发工具包模块,所述可视化软件模块和所述软件开发工具包模块分别与所述定位导航装置连接;
所述可视化软件模块,用于设置巡检点、管理地图、设定模式和实时监控;
所述软件开发工具包模块,用于发送建图指令、导航指令以及设置虚拟墙和获取位置。
可选的,所述定位导航装置包括:
碰撞开关,用于在所述机器人发生碰撞后断开电路;
急停模块,用于断开电路电源从而停止所述机器人运动。
可选的,所述定位导航装置包括:
记载模块,所述记载模块用于记载工作数据,并将所述工作数据发送至所述人机交互装置;
其中,所述工作数据包括:运行数据、异常数据和操作数据。
第二方面,本申请提供了一种定位导航方法,所述方法应用于上述任一所述的机器人系统,所述方法包括:
通过人机交互装置接收用户发送的操作信息;
根据所述操作信息,控制驱动装置运动;
通过环境感知装置检测环境数据;
根据所述环境数据,通过所述定位导航装置进行定位导航处理。
本申请实施例有益效果:
本申请实施例提供了一种机器人系统,系统包括:所述环境感知装置至少包括红外传感器、超声波传感器、激光雷达、深度摄像头,所述定位导航装置分别与所述驱动装置、所述控制装置、所述人机交互装置、所述红外传感器、所述超声波传感器、所述激光雷达和所述深度摄像头连接,本申请通过融合了多种环境检测器,并将定位导航装置与多种环境检测器连接,可以使机器人构建地图和规划路径更精确,实现导航智能化。
当然,实施本申请的任一产品或方法并不一定需要同时达到以上所述的所有优点。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的一种机器人系统结构图;
图2为本申请实施例提供的环境感知装置与定位导航装置连接图;
图3为本申请实施例提供的一种机器人系统框图;
图4为本申请实施例提供的一种机器人系统功能图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本申请实施例提供了一种机器人系统及定位导航方法,可以应用于机器人,用于自主构建地图并进行路径规划与导航。
下面将结合具体实施方式,对本申请实施例提供的一种机器人系统及定位导航方法进行详细的说明,如图1所示,机器人系统包括:定位导航装置、驱动装置、控制装置、人机交互装置和环境感知装置,定位导航装置分别与驱动装置、控制装置、人机交互装置和环境感知装置连接。其中,驱动装置,用于提供驱动力;控制装置,用于控制机器人;人机交互装置,用于将操作指令发送至定位导航装置,并接收定位导航装置的反馈信息;环境感知装置,用于接收定位导航装置发送的采集数据指令,并将采集到的环境数据发送至定位导航装置;定位导航装置,用于构建地图,并进行路径规划。
机器人导航过程为:用户通过人机交互装置发送任务指令至定位导航装置,定位导航装置根据任务指令分析导航信息,将该导航信息发送至驱动装置,以使驱动装置带动机器人运动,机器人运动的同时自动导航装置接收环境感知装置发送的环境数据,并根据环境数据实时更新导航信息,以控制机器人运动,直至任务结束。
如图2所示,图2为与定位导航装置连接的具体设备。定位导航分别通过12S接口与音频设备连接,通过AD接口或串口与红外传感器连接,通过AD接口与防跌落传感器连接,通过RS485接口与超声波传感器连接,通过网口与激光雷达连接,通过USB与深度摄像头和IMU(惯性测量单元)连接,通过IO接口与碰撞开关和防碰撞传感器连接。定位导航装置包括多种硬件接口,适用于与各种硬件连接,硬件接口包括:6路网口、CAN接口、IO接口、RS485或RS232、USB2.0或USB3.0、WIFI或4g。
环境感知装置包括用于构建地图的检测器件,具体包括:超声波传感器、激光雷达、深度摄像头,定位导航装置分别与超声波传感器、激光雷达和深度摄像头连接,其中,超声波传感器,用于进行超声波测距,适用于精确测量静止物体和移动物体之间的距离;激光雷达,用于全方位扫描测距,深度摄像头,用于获得三维方位,抗环境光干扰强,而且测量精度高,适用于对阳光要求较少的户外。其中,机器人可以适用于多种类型的激光雷达,包括:单线稀疏雷达、单线稠密雷达、多线稠密雷达和多线稀疏雷达。
下文对上述传感器做具体介绍。
超声波传感器是将超声波信号转换成其他能量信号(通常是电信号)的传感器。超声波是振动频率高于20kHz的机械波。它具有频率高、波长短、绕射现象小,特别是方向性好、能够成为射线而定向传播等特点。超声波对液体、固体的穿透本领很大,尤其是在阳光不透明的固体中。超声波碰到杂质或分界面会产生显著反射形成反射回波,碰到活动物体能产生多普勒效应。
激光雷达是以发射激光束探测目标的位置、速度等特征量的雷达系统。激光雷达向目标发射探测信号(激光束),然后将接收到的从目标反射回来的信号(目标回波)与发射信号进行比较,作适当处理后,就可获得目标的有关信息。工作在红外和可见光波段的,以激光为工作光束的雷达称为激光雷达。它由激光发射机、光学接收机、转台和信息处理系统等组成,激光器将电脉冲变成光脉冲发射出去,光接收机再把从目标反射回来的光脉冲还原成电脉冲,送到显示器。
深度摄像头抗环境光干扰强,而且它的测量精度高,可以达到毫米级。深度摄像头可以采用双目匹配进行深度检测,具体过程为:三角测量原理即目标点在左右两幅视图中成像的横坐标之间存在的差异,与目标点到成像平面的距离成反比例的关系,得到深度信息。双目匹配采用三角测量原理完全基于图像处理技术,通过寻找两个图像中的相同的特征点得到匹配点,从而得到深度值。
机器人在构建地图过程中,会同时采用超声波传感器、激光雷达和深度摄像头进行测距,并构建平面地图。目前机器人一般采用激光雷达测距构建地图,但这仅适用于部分机器人,本申请融合了深度摄像头、激光雷达和超声波传感器,可以复杂的环境中构建地图,适用于户外和户内,适用于各种机器人,如家用扫地机器人、商服机器人以及工业类无人叉车、自动导引运输车。
可选的,环境感知装置还包括用于导航的器件,具体包括:红外传感器、防跌落传感器、惯性测量单元和碰撞传感器,定位导航装置分别与防跌落传感器、惯性测量单元和碰撞传感器连接。
红外传感器,用于进行红外测距,适用于远距离测距;防跌落传感器,用于探测地面高度,基于检测到的地面高度调整机器人前进方向,实现防跌落功能;IMU(Inertialmeasurement unit,惯性测量单元),用于测量机器人三轴姿态角以及加速度,计算出机器人姿态,有助于机器人在遇到障碍物时及时进行减速控制;碰撞传感器,用于检测碰撞信号,并将碰撞信号传递至定位导航装置,从而在机器人发生碰撞时及时停止,保护机器人不被损坏。
红外传感器是一种传感装置,是用红外线为介质的测量系统,测量范围广,响应时间短。红外传感器具有一对红外信号发射与接收二极管,利用的红外测距传感器发射出一束红外光,在照射到物体后形成一个反射的过程,反射到传感器后接收信号,然后利用CCD(Charge Coupled Device,电荷藕合器件)图像处理接收发射与接收的时间差的数据,经信号处理器处理后计算出物体的距离。这不仅可以使用于自然表面,也可用于加反射板,测量距离远,频率响应高,适合于恶劣的工业环境中。
IMU是测量物体三轴姿态角(或角速率)以及加速度的装置。一般的,一个IMU包含了三个单轴的加速度计和三个单轴的陀螺,加速度计检测物体在载体坐标系统独立三轴的加速度信号,而陀螺检测载体相对于导航坐标系的角速度信号,测量物体在三维空间中的角速度和加速度,并以此解算出物体的姿态,在导航中有着很重要的应用价值。
机器人在运行过程中,如果遇到台阶或不平整地面,防跌落传感器会探测地面高度差,并在地面高度差大于预设高度时调整机器人前进方向,避免机器人跌落;如果机器人在运行过程中探测到安全距离内有障碍物出现,那么惯性测量单元会根据机器人的三轴姿态角和加速度进行减速,避免机器人因速度过快撞击障碍物;如果机器人发生碰撞,那么碰撞传感器会检测碰撞信号,并将碰撞信号发送至定位导航装置,以使机器人及时停止运动,减少更大损坏。
可选的,定位导航装置还包括:碰撞开关,用于在机器人发生碰撞后断开电路,使机器人停止运动;急停模块,用于断开电路电源从而停止机器人运动。
图3为机器人的系统框图。该系统包括人机交互层、硬件模块、核心算法和底盘与外部设备。其中,人机交互层包括可视化软件模块和SDK(Software Development Kit,软件开发工具包),硬件模块设于ARM(Advanced RISC Machines)硬件平台上,核心算法的功能包括导航与运动控制、定位和建图,底盘包括驱动装置,外部设备包括环境感知装置。
硬件模块通过通信接口接受人机交互层下发的任务指令,核心算法预设障碍物安全距离,分析并执行相应的任务信息并返回分析数据至可视化软件模块显示任务状态与进程。硬件模块通过串口和驱动装置中的电机驱动模块进行数据交互,将核心算法分析的导航信息发送至电机驱动模块,使电机驱动模块控制机器人移动,机器人开始运动的同时,自主导航控制模块接收环境感知装置采集的环境数据,并根据环境数据实时更新导航信息,以控制机器人运动,直至导航任务结束。
图4为本申请的系统功能图,下面将对图中的各模块分别进行详细描述。
可选的,定位导航装置包括:定位模块和导航模块,定位模块与导航模块连接,定位模块,用于进行位姿检测与重定位;导航模块,用于进行避障处理、速度控制、路径平滑性控制、路径推演和3D障碍物检测。
定位模块,用于检测移动机器人在地图中的位姿并判断定位信息是否准确,在移动机器人发生定位信息错误时,根据预设的重定位算法对移动机器人进行重定位,得到机器人的正确位姿,进行位姿丢失保护,提升建图和定位算法的鲁棒性,延长地图的有效期;
具体的,位姿跟踪检测的具体过程为:在前一刻位姿给定的情况下,试图追踪机器人的当前时刻的位姿(坐标和朝向)。机器人相对位姿的估计有多种方法,其中最为经典的是航位推算法。航位推算法是机器人利用内在传感器比如里程计等,通过计算两个轮子相对于前一时刻位置的位移来估算当前位置。航位推算法由于其算法简单和传感器价格低廉在早期经常被用于机器人定位中。航位推法的基本思想是根据机器人自身传感器信息如里程计信息计算机器人的相对位置,机器人位姿没有外界环境信息加以修正,随着时间的推移会存在车轮打滑等原因导致累积误差越来越大。因此,它不适合长距离的位姿估计。于是,本申请在航位推算法的基础上给机器人加上外在传感器来感知周围的环境,运用卡尔曼滤波技术对机器人的位姿进行估计。卡尔曼滤波相比于其它的滤波器,是一种原理十分简单的最优递推估计算法,滤波器只需要知道噪声的均值和方差就进行迭代求解。
导航模块,用于在导航过程中避开障碍物,控制行进速度,通过弗洛伊德路径平滑算法计算机器人运动的平滑性,通过解析后的导航信息推演出机器人的实时轨迹和通过点云数据检测3D障碍物。用户可以设置机器人通过的区域的最小尺寸,防止机器人卡住。
机器人在接收到人机交互装置发送的任务指令后,定位模块获取目的地的地址,同时对机器人自身进行定位,具体定位过程为:检测移动机器人在地图中的位姿并判断定位信息是否准确,在移动机器人发生定位信息错误时,根据预设的重定位算法对移动机器人进行重定位,得到机器人的正确位姿。然后将定位信息发送至导航模块,导航模块根据接收到的定位信息进行路径导航,具体为在导航过程中避开障碍物,防止碰撞对机器人造成损坏,缩短机器人寿命,控制行进速度,避免行进速度过快而无法及时减速撞击障碍物,通过弗洛伊德路径平滑算法计算机器人运动的平滑性,通过解析后的导航信息推演出机器人的实时轨迹和通过点云数据检测3D障碍物。
导航算法可以包括模糊算法、神经网络算法、模糊神经网络、遗传算法和进化神经网络。导航方式包括惯性导航、磁导航、视觉导航、基于传感器数据导航、卫星导航等。导航原理为:机器人采用激光雷达、编码器和IMU组合定位系统,两编码器分别装在机器人轮轴上,可实时记录轮子的行走距离,车体行走过程中的航向由IMU测定。车体四周布置一组超声波传感器,用于探测工作区域内各种障碍作时,机器人从某一基点出发,沿规划好的轨迹行走。用编码器和IMU测出机器人行走时的实时左右轮转角和航向,并通过数据采集系统记录这些数据。由此,可分别计算出车体左右轮在单位时间内运行的距离。
具体的,检测3D障碍物的方法为:确定从当前帧的3D点云和2D图像检测到的当前障碍物在2D图像中的2D图像区所对应的第二2D特征向量;将第二2D特征向量中的每一者与障碍物特征向量集中的每个第一2D特征向量进行比对,以获得多个差值特征向量,其中障碍物特征向量集中存储有表征先前检测到的先前障碍物的第一2D特征向量;对多个差值特征向量执行深度学习计算,以生成对应的多个概率值,每个概率值指示一当前障碍物与一先前障碍物为同一障碍物的概率;以及根据多个概率值确定当前障碍物与先前障碍物之间的对应关系,以实现障碍物跟踪。
可选的,定位导航装置包括建图模块;建图模块用于进行图优化回环处理、构建地图。
本申请通过回环优化模型,并结合g2o图优化方法对位姿累积误差进行快速优化,从而进一步提高自主定位精度和效率,提高了移动机器人的自主定位和建图精度,而且具有较好的实时性。定位导航装置还构建地图,用于辅助机器人的定位与导航,以及对地图边缘线进行处理,使其更平滑。
其中,构建的地图可以有多种形式,包括栅格地图和拓扑地图,本申请对拓扑地图的构建做具体描述。
拓扑地图的环境描述方法是通过节点和节点之间的连接关系来表示的,并不需要十分明确的几何信息。拓扑地图是基于栅格地图的基础建立起来的,栅格地图在拆分后可以被划分为一个个不同的区块,这些区块则共同生成一个同构图,图中的节点便和区块图中的弧连接着的相邻区域相对应,这个图就是环境的拓扑地图。所以,拓扑地图具体被定义为一个图的数据结构。拓扑地图以节点来表示环境中的重要的一些位置点,而环境中的路径信息则由节点之间的连线表示。如此一来,机器人则可以通过一些中间节点来表示在两个节点之间的导航。拓扑地图的构建过程可分为如下几个部分:第一步,栅格化;第二步,Voronoi(泰森多边形)图的构建:第三步,关键点的寻找;第四步,关键路线的寻找;第五步,拓扑图的构建。
可选的,定位导航装置包括:安全模块和微控制单元,安全模块与微控制单元连接。安全模块,用于主控心跳检测、超声波碰撞检测,以及设置激光雷达围栏,;微控制单元,用于控制驱动装置运动。
安全模块,接收发送单元发送的信息,如果超过预设阈值还没有接收到信息,则认为与发送单元的连接断开,则采取对应措施;用于设置虚拟墙,用于检测超声波的碰撞时间以计算与障碍物的距离。
微控制单元,本申请可以采用C51+AVR控制板,是拥有C51和AVR功能的单片机控制板。C51部分采用的是AT89S52单片机,AVR部分采用的是ALTMEGA8的单片机。微控制单元用于接收人机交互装置发送的任务指令,并根据该任务指令控制驱动装置运动,以及接收环境检测装置发送的环境数据,并根据该环境数据控制驱动装置运动。
可选的,定位导航装置包括监控模块,用于电量检测、定位准确性检测和安全预警。
监控模块用于检测电量将剩余电量显示在可视化软件上,并检测机器人定位是否准确,将检测结果发送至定位模块,还可以用于安全预警,具体为,提供全方位预警功能,一旦有预警范围内出现物体,机器人立即减速避免强力碰撞。
可选的,人机交互装置包括:可视化软件模块和软件开发工具包模块,可视化软件模块和软件开发工具包模块分别与定位导航装置连接;可视化软件模块,用于设置巡检点、管理地图、设定模式和实时监控;软件开发工具包模块,用于发送建图指令、导航指令以及设置虚拟墙和获取位置。
可视化软件模块的实质是利用计算机显示器的显示功能来模拟传统仪器的控制面板,以多种形式表达和输出检测结果;利用计算机强大的软件功能显现信号的运算、分析、处理;利用I/0接口设备完成信号的采集与调理,从而完成各种测试功能的计算机测试系统。用户通过鼠标、键盘或者触摸屏来操作虚拟面板、就如同使用一台专用的测量仪器一样,实现所需要的测量目标。
可视化软件模块用于使用户设置信息并查看机器人状态。具体的,用户可以设定巡检点,机器人定期巡检该巡检点,实现巡检的无人化和自动化。用户可以进行充电桩位置设定。用户可以进行地图管理,具体为设置各区域名称,用户还可以设置机器人工作模式。可视化软件模块可以展示机器人运行状态,使用户方便得知机器人状态,如工作中、充电中,还可以显示机器人当前所处位置,以使用户得知机器人当前所处位置。
用户通过可视化软件模块设置机器人任务,如:先进行地图管理,具体为设置各区域名称,然后设定巡检点。可视化软件模块将任务指令发送至定位导航装置,定位导航装置根据任务指令进行定位导航,并将机器人运行状态反馈至可视化软件模块,以使用户能够查看机器人状态。
SDK,是一些被软件工程师用于为特定的软件包、软件框架、硬件平台、操作系统等建立应用软件的开发工具的集合,包括能与某种嵌入式系统通讯的复杂的硬件,包括用于调试和其他用途的实用工具。SDK还经常包括示例代码、支持性的技术注解或者其他的为基本参考资料澄清疑点的支持文档,SDK可能附带了使其不能在不兼容的许可证下开发软件的许可证。
软件开发工具包模块,支持用户通过软件开发工具包模块进行二次开发,用于发送构建地图的指令和导航指令,获取机器人当前所处位置和目的地,以使机器人根据构建好的地图导航到目的地,还可以进行速度指令控制,使机器人及时减速避免碰撞到障碍物,防止给机器人带来损坏;可以设定导航参数。设定虚拟墙,方便指定机器人的禁止进入区域,保护机器人及用户隐私等安全,可以获取传感器数据,包括:防跌落传感器、惯性测量单元、碰撞传感器、红外传感器、超声波传感器、激光雷达和深度摄像头采集的数据,还可以设置机器人在电量不高于预设电量时进行自动回充。
可选的,定位导航装置包括:记载模块,记载模块用于工作数据,并将工作数据发送至人机交互装置;其中,工作数据包括:运行数据、异常数据和操作数据。
记载模块记载机器人在运行过程中产生的数据,并将该数据发送至控制模块,以使人机交互装置查看该数据,该数据包括机器人的运行数据、异常数据和操作数据。
机器人可以适配多种车轮,包括两轮差速、前轮单舵轮、后驱单舵轮、四驱麦克纳姆轮、双舵轮和三区全向。
机器人包括多种网络接口,如防火墙、NTP(Network Time Protocol,网络时间协议)、DHPC(Dynamic Host Configuration Protocol,动态主机配置协议)、路由器、端口映射、4G等,便于不同网络下运行。
该机器人还支持云端和OTA(Over the Air Technology,空中下载技术)在线更新,便于及时更新机器人系统,提高用户体验。
本申请还提供了一种定位导航方法,导航过程为:机器人通过人机交互装置接收用户发送的操作信息,并根据所述操作信息,并控制驱动装置运动,机器人在运动过程中,通过超声波传感器、激光雷达、深度摄像头检测到的环境数据构建地图,并通过红外传感器、防跌落传感器、惯性测量单元和碰撞传感器进行定位和导航,根据定位和导航信息使驱动装置改变运动方向和速度,实现自动定位导航。
需要说明的是,在本文中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上所述仅是本申请的具体实施方式,使本领域技术人员能够理解或实现本申请。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所申请的原理和新颖特点相一致的最宽的范围。