一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

用于控制引导机器人的方法、装置、设备以及存储介质与流程

2022-02-20 14:38:04 来源:中国专利 TAG:


1.本技术实施例涉及计算机技术领域,具体涉及人工智能、机器人和多传感器融合技术领域,尤其涉及用于控制引导机器人的方法、装置、设备以及存储介质。


背景技术:

2.导盲犬可以在避障的情况下引导视力障碍者到达目的地,极大地提高了他们的日常生活质量。然而,我国导盲犬的普及率严重不足。主要原因在于导盲犬的训练耗时长,费用高,合格率低。现代导航辅助技术在帮助视力障碍者并提高他们的生活质量方面具有巨大的潜力。许多研究人员已经研究了潜在的解决方案。一般分为可穿戴设备、智能手杖和机器导盲犬。
3.针对机器导盲犬,现有技术通常假设视力障碍者会完全跟随机器导盲犬,与机器导盲犬所走的路径重合。因此,现有技术主要侧重于机器导盲犬自身的感知、规划和控制。


技术实现要素:

4.本技术实施例提出了用于控制引导机器人的方法、装置、设备以及存储介质。
5.第一方面,本技术实施例提出了一种用于控制引导机器人的方法,包括:获取引导机器人的状态、用户的状态和障碍物的位置,其中,引导机器人与用户通过刚性物连接;基于引导机器人的状态和用户的状态,生成引导机器人与用户的组合系统的状态更新方程;基于障碍物的位置,生成无碰撞全局路径;基于组合系统的状态更新方程和无碰撞全局路径,生成控制命令;基于控制命令驱动引导机器人运动。
6.第二方面,本技术实施例提出了一种用于控制引导机器人的装置,包括:信息获取模块,被配置成获取引导机器人的状态、用户的状态和障碍物的位置,其中,引导机器人与用户通过刚性物连接;方程生成模块,被配置成基于引导机器人的状态和用户的状态,生成引导机器人与用户的组合系统的状态更新方程;路径生成模块,被配置成基于障碍物的位置,生成无碰撞全局路径;命令生成模块,被配置成基于组合系统的状态更新方程和无碰撞全局路径,生成控制命令;运动驱动模块,被配置成基于控制命令驱动引导机器人运动。
7.第三方面,本技术实施例提出了一种电子设备,包括:至少一个处理器;以及与至少一个处理器通信连接的存储器;其中,存储器存储有可被至少一个处理器执行的指令,指令被至少一个处理器执行,以使至少一个处理器能够执行如第一方面中任一实现方式描述的方法。
8.第四方面,本技术实施例提出了一种存储有计算机指令的非瞬时计算机可读存储介质,计算机指令用于使计算机执行如第一方面中任一实现方式描述的方法。
9.第五方面,本技术实施例提供了另一种服务器,包括:接口;存储器,其上存储有一个或多个程序;以及一个或多个处理器,在操作上连接到上述接口和上述存储器,用于:获取引导机器人的状态、用户的状态和障碍物的位置,其中,引导机器人与用户通过刚性物连接;基于引导机器人的状态和用户的状态,生成引导机器人与用户的组合系统的状态更新
方程;基于障碍物的位置,生成无碰撞全局路径;基于组合系统的状态更新方程和无碰撞全局路径,生成控制命令;基于控制命令驱动引导机器人运动。
10.第六方面,本技术实施例提供了一种计算机程序产品,其上存储有计算机程序,其中,当上述计算机程序被一个或多个处理器执行时,使得上述一个或多个处理器:获取引导机器人的状态、用户的状态和障碍物的位置,其中,引导机器人与用户通过刚性物连接;基于引导机器人的状态和用户的状态,生成引导机器人与用户的组合系统的状态更新方程;基于障碍物的位置,生成无碰撞全局路径;基于组合系统的状态更新方程和无碰撞全局路径,生成控制命令;基于控制命令驱动引导机器人运动。
11.应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。
附图说明
12.通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本技术的其它特征、目的和优点将会变得更明显。附图用于更好地理解本方案,不构成对本技术的限定。其中:
13.图1是根据本技术的用于控制引导机器人的方法的一个实施例的流程图;
14.图2是根据本技术的用于控制引导机器人的方法的又一个实施例的流程图;
15.图3是用户位置推断过程的示意图;
16.图4是可行区域确定过程的示意图;
17.图5是人机系统的结构框图;
18.图6是根据本技术的用于检测障碍物的方法的一个实施例的流程图;
19.图7是障碍物检测过程的示意图;
20.图8是根据本技术的用于定位引导机器人的方法的一个实施例的流程图;
21.图9是根据本技术的用于定位用户的方法的一个实施例的流程图;
22.图10是根据本技术的用于规划路径的方法的一个实施例的流程图;
23.图11根据本技术的用于控制引导机器人的装置的一个实施例的结构示意图;
24.图12用来实现本技术实施例的用于控制引导机器人的方法的电子设备的框图。
具体实施方式
25.以下结合附图对本技术的示范性实施例做出说明,其中包括本技术实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本技术的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
26.需要说明的是,在不冲突的情况下,本技术中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本技术。
27.图1示出了根据本技术的用于控制引导机器人的方法的一个实施例的流程100。该用于控制引导机器人的方法包括以下步骤:
28.步骤101,获取引导机器人的状态、用户的状态和障碍物的位置。
29.在本实施例中,引导机器人上可以安装有传感器,用于获取引导机器人的状态、用
户的状态和障碍物的位置。
30.通常,用户可以是视力障碍者,例如盲人。引导机器人可以是机器导盲犬。引导机器人与用户通过刚性物连接,以使用户与引导机器人保持与刚性物长度大致相同的距离。其中,刚性物的形状通常是条状,包括但不限于刚性杆、刚性绳等等。这样,用户无需携带额外的传感器,而仅需使用安装在机器人上的传感器来确定用户的位置。
31.其中,安装在引导机器人上的传感器可以包括但不限于imu(inertial measurement unit,惯性测量单元)、lidar(light detection and ranging,激光雷达)和车轮里程表等等。引导机器人的状态可以包括引导机器人的位置和航向角。用户的状态可以包括用户的位置。
32.步骤102,基于引导机器人的状态和用户的状态,生成引导机器人与用户的组合系统的状态更新方程。
33.在本实施例中,基于引导机器人的状态和用户的状态,可以生成引导机器人与用户的组合系统的状态更新方程。也就是说,对引导机器人与用户的组合系统进行建模,建立人机运动学模型。
34.步骤103,基于障碍物的位置,生成无碰撞全局路径。
35.在本实施例中,基于障碍物的位置,可以生成无碰撞全局路径。其中,全局无碰撞路径以引导机器人的起始位置为起点,以目标位置为终点,且整个路径上不存在障碍物。
36.步骤104,基于组合系统的状态更新方程和无碰撞全局路径,生成控制命令。
37.在本实施例中,基于组合系统的状态更新方程和无碰撞全局路径,可以生成控制命令。其中,控制命令可以包括基于组合系统的状态更新方程和无碰撞全局路径生成的无碰撞局部运动控制量,用于驱动引导机器人运动。
38.步骤105,基于控制命令驱动引导机器人运动。
39.在本实施例中,对于引导机器人,考虑到用户将始终跟随刚性物的末端,可以假设用户通过刚性物施加到引导机器人的力可以得到完全补偿。因此,引导机器人的运动可以仅由其自身的控制命令驱动。
40.本技术实施例提供的用于控制引导机器人的方法,首先获取引导机器人的状态、用户的状态和障碍物的位置;之后基于引导机器人的状态和用户的状态,生成引导机器人与用户的组合系统的状态更新方程;而后基于障碍物的位置,生成无碰撞全局路径;然后基于组合系统的状态更新方程和无碰撞全局路径,生成控制命令;最后基于控制命令驱动引导机器人运动。对引导机器人与用户的组合系统进行建模,对人机运动学模型整体进行感知、路径规划和运动控制,从而确保引导机器人和用户同时避障,进而提高了引导机器人的实用性和可靠性。
41.继续参考图2,其示出了用于控制引导机器人的方法的又一个实施例的流程200。该用于控制引导机器人的方法包括以下步骤:
42.步骤201,获取引导机器人的状态、用户的状态和障碍物的位置。
43.在本实施例中,引导机器人上可以安装有传感器,用于获取引导机器人的状态、用户的状态和障碍物的位置。
44.其中,引导机器人的状态可以包括引导机器人的位置和航向角,表示为[xb,yb,θb],(xb,yb)是位置,θb是航向角。用户的状态可以包括用户的位置,表示为(xh,yh)。
[0045]
步骤202,基于引导机器人的状态,生成引导机器人的状态更新方程。
[0046]
在本实施例中,由于引导机器人独立于用户,因此基于引导机器人的状态,即可生成引导机器人的状态更新方程。
[0047]
由于引导机器人独立于用户,因此选择单轮脚踏车模型来描述引导机器人的运动。此时,引导机器人的运动学模型通常描述为:
[0048][0049]
其中,v是线速度,ω是角速度。
[0050]
在离散时间,等式(1)可以写为:
[0051][0052]
其中,k代表迭代步,δt是更新循环的周期。
[0053]
步骤203,基于引导机器人的状态、用户的状态和刚性物的长度,生成用户的状态更新方程。
[0054]
在本实施例中,由于用户将随刚性物的末端并保持与引导机器人的恒定距离,因此基于引导机器人的状态、用户的状态和刚性物的长度,才能生成用户的状态更新方程。
[0055]
由于与引导机器人的交互和用户的意图都会影响速度,如果不假设用户的速度等于引导机器人的速度,就很难制定用户的速度动力学。但是,由于用户将随刚性物的末端并保持与引导机器人的恒定距离,因此可以根据当前配置推断用户的下一步位置。
[0056]
如图3所示,hk和bk分别是第k步中用户和引导机器人的位置。刚性物的长度是r,在引导机器人移动时固定。在第k 1步,引导机器人将移动到b
k 1
。假定用户的下一个位置h
k 1
位于连接hk和b
k 1
的直线上,到b
k 1
的距离为r。基于此假设,可以进一步推导出用户的状态更新方程:
[0057][0058]
其中,d=||h
k-b
k 1
||。
[0059]
步骤204,结合引导机器人的状态更新方程和用户的状态更新方程,生成状态更新矩阵。
[0060]
在本实施例中,结合引导机器人的状态更新方程和用户的状态更新方程,可以生成状态更新矩阵。
[0061]
通过结合等式(2)和等式(3),可以得到状态更新矩阵a和b:
[0062][0063][0064]
其中,是单位矩阵,向量s定义为s=[cosθ
b sinθb]。
[0065]
步骤205,基于状态更新矩阵,生成组合系统的状态更新方程。
[0066]
在本实施例中,基于状态更新矩阵,可以生成组合系统的状态更新方程。
[0067]
可以进一步将引导机器人与用户的组合系统的状态更新方程表示为:
[0068]
x
k 1
=axk bukꢀꢀ
(6)
[0069]
其中,状态向量是控制输入向量是u=[v ω]
t

[0070]
所选状态向量包含冗余状态向量。由于用户与引导机器人之间的距离是恒定的,因此可以通过人机体角替换用户的位置(xh,yh)来使用4种状态描述系统。这种具有冗余状态的状态向量的定义为局部运动规划的设计带来好处。设置无碰撞约束条件更加直观和方便。
[0071]
步骤206,基于障碍物的位置,生成无碰撞全局路径。
[0072]
在本实施例中,基于障碍物的位置,可以生成无碰撞全局路径。其中,全局无碰撞路径以引导机器人的起始位置为起点,以目标位置为终点,且整个路径上不存在障碍物。
[0073]
步骤207,利用模型预测控制技术设计成本函数和无碰撞约束条件,计算无碰撞局部运动控制量。
[0074]
在本实施例中,利用mpc(model predictive control,模型预测控制)技术可以进行局部运动规划。设计成本函数和无碰撞约束条件是为了确保无碰撞以及快速计算。
[0075]
通常,可以避障的一般mpc问题可以表示为:
[0076][0077][0078]
其中,n是预测范围,是优化目标(成本函数),xs是开始时的初始状态,xf是最终参考状态,f代表系统动力学,g代表系统状态和控制输入的不等式约束条件,e是受控对象在时间k占据的空间,o
(m)
是障碍物集合,而m是每个障碍物的索引。
[0079]
在等式(7)中,因为无碰撞约束条件通常非凸且不可微,使得问题难以解决。通常,有两个方向可以解决此问题。第一个方向是将这个约束条件公式化为可微函数,并使用非
凸优化求解器来解决该问题。另一个方向是构造序列凸优化问题,以将每次迭代公式化为凸次优化问题。此方法从一个猜测的解决方案开始并迭代运行。约束条件围绕上一步的解被线性化,从而形成一个凸优化问题。
[0080]
这里,采用了序列凸优化的思想。无碰撞约束条件在每次迭代时被线性化。建立成本函数是为了惩罚状态和控制效果的错误。在线性化状态更新方程的基础上构造等式约束条件,同时考虑到避障,利用不等式约束条件来调节状态和控制输入的上限和下限。然后将优化问题表述为:
[0081][0082][0083]
其中,c是矩阵,z是向量,不等式约束条件cxk≤z描述了无碰撞凸集。在等式(8)中,不等式约束条件x
min
≤xk≤x
max
和cxk≤z旨在确保生成的局部轨迹无碰撞。
[0084]
通过从引导机器人和用户中选择检查点来构造约束条件,并确保每个检查点均无碰撞。特别是,选择人体中心位置、引导机器人中心位置和沿刚性物的采样点作为检查点。
[0085]
给定每个检查点,可以构建局部网格地图以确定凸集。其中,凸集由矩阵c、向量z、x
min
和x
max
定义。如图4中的(a)所示,选择网格的分辨率为l,然后构建一个以检查点为中心的3
×
3的局部网格地图。通过遍历周围的8个网格,如果网格内有障碍物,将这个网格标记为占用。其中,白色的网格为未占用网格,黑色的网格为占用网格。如图4中的(b)所示,对于每个占用网格,进一步画一条线以连接检查点和占用网格的最近点。然后,可以确定最近点的切线,并选择包含检查点的半平面作为可行集。最终的凸可行区域是与各个占用网格相关的所有可行半平面的交集。其中,虚线为最近点的切线。图4中的(c)示出了可行区域。
[0086]
给定无碰撞全局路径,在等式(8)中为mpc局部规划器定义局部目标状态xf。假设用户与引导机器人之间的中间位置点应遵循无碰撞全局路径,并将局部目标状态定义为系统参考点。
[0087]
考虑无碰撞全局路径为t=(p0,p1,...,pn,...,p
2n
,...,p
3n
,...),其中p是二维点,n是选定的正整数,控制前视距离。假设当前参考系统位置位于p0,并将目标位置设置为p
2n
。通过对从p0到p
2n
的轨迹点应用线性回归,可以确定这部分轨迹的平衡。其中,平衡点用于线性化系统模型。通过对从pn到p
3n
的轨迹点再应用一次线性回归,可以计算出用户和引导机器人系统所需的偏航角ψ。假设参考系统位置坐标表示为(p
x
,py),则可以将局部目标状态向量计算为:
[0088][0089]
步骤208,基于控制命令驱动引导机器人运动。
[0090]
在本实施例中,对于引导机器人,考虑到用户将始终跟随刚性物的末端,假设用户通过刚性物施加到引导机器人的力可以得到完全补偿。因此,引导机器人的运动可以仅由其自身的控制命令驱动。
[0091]
从图2中可以看出,与图1对应的实施例相比,本实施例中的用于控制引导机器人的方法的流程200突出了生成状态更新方程的步骤和计算无碰撞局部运动控制量的步骤。由此,在本实施例描述的方案中,利用人机系统的测量数据和系统模型,应用ekf(extended kalman filter,扩展卡尔曼滤波器)输出状态向量的估计。这样,可以可靠地确定人机状态。这种设计的好处是在引导机器人上安装传感器,而用户无需携带额外的传感器。同时,利用mpc技术可以进行局部运动规划。设计成本函数和无碰撞约束条件可以确保无碰撞以及快速计算。
[0092]
进一步参考图5,其示出了人机系统的结构框图。如图5所示,人机系统包括3个模块:感知模块501、路径规划模块502和控制模块503。其中,感知模块501可以包括用于检测障碍物的障碍物检测单元5011、用于检测引导机器人的引导机器人位置测量单元5012、用于检测用户的用户位置测量单元5013和用于对引导机器人和用户的状态进行扩展卡尔曼滤波估计系统状态的扩展卡尔曼滤波单元5014。感知模块501将包括但不限于车轮里程表、激光雷达和imu等的原始传感器数据作为输入。它可以检测障碍物、引导机器人和用户的状态。路径规划模块502可以包括用于建立全局网格地图的地图建立单元5021和用于搜索无碰撞全局路径的图搜索单元5022。对于路径规划模块502,输入包括但不限于预构建的激光雷达环境地图、障碍物、系统状态和目的地信息等,输出是无碰撞全局路径。控制模块503可以包括用于生成局部目标状态的局部目标生成单元5031、用于建立局部网格地图的局部地图建立单元5032和用于生成驱动引导机器人运动的控制量的mpc控制单元5033。对于控制模块503,输入包括但不限于障碍物、系统状态和无碰撞全局路径等,输出是无碰撞局部运动控制量。
[0093]
其中,感知模块可以进行障碍物检测、引导机器人姿态测量和用户位置测量。
[0094]
为了便于理解,图6示出了用于检测障碍物的方法的一个实施例的流程600,该用于检测障碍物的方法包括以下步骤:
[0095]
步骤601,获取安装在引导机器人上的激光雷达扫描到的扫描点。
[0096]
步骤602,将扫描点与占用地图进行比对,得到障碍物的位置。
[0097]
在本实施例中,障碍物检测实现基于激光雷达扫描和占用地图信息。其中,占用地图又称为占用栅格地图。对于普通地图,一个点要么有障碍物,要么没有障碍物。而对于占
用栅格地图,一个格子对应一个点,用于记录这个点被占用(有障碍物)的概率。提出一种简单的方法来有效地减少由引导机器人定位和嘈杂的激光雷达扫描引起的错误而检测到的障碍物。通常,对于每个扫描点,在占用地图中确定扫描点的相邻像素。若相邻像素中存在处于占用状态的像素,说明扫描点靠近原始静态障碍物,并且很可能在该障碍物上,确定扫描点不是障碍点;若相邻像素中不存在处于占用状态的像素,确定扫描点是障碍点。在当前实现中,使用其n环相邻像素来检查扫描点。通常,n=1,扫描点位于中心,检查其1环相邻像素。如图7中的(a)所示,由于扫描点的所有8个相邻像素均处于“空闲”状态,因此扫描点被标记为障碍点。如图7中的(b)所示,由于扫描点的靠近左下像素处于“占用”状态,考虑到引导机器人定位和嘈杂的激光雷达扫描引起的错误,因此扫描点不被作为障碍点。
[0098]
为了便于理解,图8示出了用于定位引导机器人的方法的一个实施例的流程800,该用于定位引导机器人的方法包括以下步骤:
[0099]
步骤801,获取安装在引导机器人上的激光雷达扫描到的扫描点。
[0100]
步骤802,结合扫描点和占用地图,利用粒子滤波技术对引导机器人定位。
[0101]
在本实施例中,对引导机器人定位使用基于激光雷达的gmapping slam技术。首先对工作区域进行扫描建图,在工作时根据激光雷达的扫描点,结合占用地图信息,利用粒子滤波技术对引导机器人定位。
[0102]
其中,粒子滤波的思想基于蒙特卡洛方法,它是利用粒子集来表示概率,可以用在任何形式的状态空间模型上。其核心思想是通过从后验概率中抽取的随机状态粒子来表达其分布,是一种顺序重要性采样法。简单来说,粒子滤波法是指通过寻找一组在状态空间传播的随机样本对概率密度函数进行近似,以样本均值代替积分运算,从而获得状态最小方差分布的过程。这里的样本即指粒子,当样本数量趋近于无穷时可以逼近任何形式的概率密度分布。尽管算法中的概率分布只是真实分布的一种近似,但由于非参数化的特点,它摆脱了解决非线性滤波问题时随机量必须满足高斯分布的制约,能表达比高斯模型更广泛的分布,也对变量参数的非线性特性有更强的建模能力。因此,粒子滤波能够比较精确地表达基于观测量和控制量的后验概率分布,可以用于解决slam问题。
[0103]
为了便于理解,图9示出了用于定位用户的方法的一个实施例的流程900,该用于定位用户的方法包括以下步骤:
[0104]
步骤901,将以引导机器人为圆心,刚性物的长度为半径的环形区域确定为用户的候选位置区域。
[0105]
步骤902,利用k均值聚类算法对候选位置区域中的扫描点进行聚类,得到用户的位置。
[0106]
在本实施例中,用户无需携带额外的传感器,而仅需使用安装在引导机器人上的激光雷达来确定其位置。由于用户的扫描点应始终位于地图上无碰撞空间,因此,根据图6中提出的用于检测障碍物的方法,将用户识别为“障碍物”点。此外,由于用户与引导机器人保持恒定距离r,因此首先拾取位于引导机器人环形区域的所有障碍点。环形区域的宽度为2dr,用户到引导机器人的距离限制为[r-dr,r dr]。将所有合格点都放入列表l中,并使用k均值聚类算法来找到用户的位置。应用k均值聚类后,将计算先前的人体位置和每个人体位置候选点之间的距离保存在列表中。通过对列表进行排序,选择与最小距离结果相对应的候选对象作为用户位置的激光雷达测量。
[0107]
其中,路径规划模块可以用于规划无碰撞全局路径。
[0108]
为了便于理解,图10示出了用于规划路径的方法的一个实施例的流程1000,该用于规划路径的方法包括以下步骤:
[0109]
步骤1001,将地图区域化,生成全局网格地图。
[0110]
步骤1002,基于障碍物的位置,对全局网格地图中的网格进行占用标记,确定可用网格。
[0111]
步骤1003,利用图搜索技术查找可用网格中从起始位置对应的网格到目标位置对应的网格的最短路径。
[0112]
步骤1004,在最短路径上的相邻点之间进行插值,生成无碰撞全局路径。
[0113]
在本实施例中,全局网格地图生成的目标是在地图的基础上构建一个图形。该方法类似于图2中的局部网格地图生成。首先,选择网格长度为l。然后,根据地图的大小和分辨率,将m
×
n的正方形网格掩膜附加到地图上。最后,根据网格内的所有像素检查每个网格。如果任意像素处于“占用”或“未知”状态,则网格将标记为“不可用”。如果所有像素均处于“空闲”状态,则网格被标记为“可用”。全局网格地图随障碍物检测循环而更新。将检测到的障碍点映射到相应的网格。将每个障碍物网格都设置为“不可用”状态,并保持一小段时间以确保稳定性。生成全局网格地图的好处是它可以加快图搜索以找到可行的全局路径。
[0114]
其中,无碰撞全局路径的起始位置可以从本地获取,而目标位置可以由用户输入指定。应用图搜索技术来查找“可用”网格中从起始网格到目标网格的最短路径。通过在最短路径上的相邻点之间进行插值,可以生成无碰撞全局路径。无碰撞全局路径将发送到控制模块。
[0115]
进一步参考图11,作为对上述各图所示方法的实现,本技术提供了一种用于控制引导机器人的装置的一个实施例,该装置实施例与图2所示的方法实施例相对应,该装置具体可以应用于各种电子设备中。
[0116]
如图11所示,本实施例的用于控制引导机器人的装置1100可以包括:信息获取模块1101、方程生成模块1102、路径生成模块1103、命令生成模块1104和运动驱动模块1105。其中,信息获取模块1101,被配置成获取引导机器人的状态、用户的状态和障碍物的位置,其中,引导机器人与用户通过刚性物连接;方程生成模块1102,被配置成基于引导机器人的状态和用户的状态,生成引导机器人与用户的组合系统的状态更新方程;路径生成模块1103,被配置成基于障碍物的位置,生成无碰撞全局路径;命令生成模块1104,被配置成基于组合系统的状态更新方程和无碰撞全局路径,生成控制命令;运动驱动模块1105,被配置成基于控制命令驱动引导机器人运动。
[0117]
在本实施例中,用于控制引导机器人的装置1100中:信息获取模块1101、方程生成模块1102、路径生成模块1103、命令生成模块1104和运动驱动模块1105的具体处理及其所带来的技术效果可分别参考图1对应实施例中的步骤101-105的相关说明,在此不再赘述。
[0118]
在本实施例的一些可选的实现方式中,信息获取模块1101包括:获取子模块(图中未示出),被配置成获取安装在引导机器人上的激光雷达扫描到的扫描点;定位子模块(图中未示出),被配置成结合扫描点和占用地图,利用粒子滤波技术对引导机器人定位。
[0119]
在本实施例的一些可选的实现方式中,信息获取模块1101包括:确定子模块(图中未示出),被配置成将以引导机器人为圆心,刚性杆的长度为半径的环形区域确定为用户的
候选位置区域;聚类子模块(图中未示出),被配置成利用k均值聚类算法对候选位置区域中的扫描点进行聚类,得到用户的位置。
[0120]
在本实施例的一些可选的实现方式中,信息获取模块1101包括:获取子模块(图中未示出),被配置成获取安装在引导机器人上的激光雷达扫描到的扫描点;比对子模块(图中未示出),被配置成将扫描点与占用地图进行比对,得到障碍物的位置。
[0121]
在本实施例的一些可选的实现方式中,比对子模块进一步被配置成:在占用地图中确定扫描点的相邻像素;若相邻像素中存在处于占用状态的像素,确定扫描点不是障碍点;若相邻像素中不存在处于占用状态的像素,确定扫描点是障碍点。
[0122]
在本实施例的一些可选的实现方式中,方程生成模块1102进一步被配置成:基于引导机器人的状态,生成引导机器人的状态更新方程;基于引导机器人的状态、用户的状态和刚性杆的长度,生成用户的状态更新方程;结合引导机器人的状态更新方程和用户的状态更新方程,生成状态更新矩阵;基于状态更新矩阵,生成组合系统的状态更新方程。
[0123]
在本实施例的一些可选的实现方式中,路径生成模块1103进一步被配置成:将地图区域化,生成全局网格地图;基于障碍物的位置,对全局网格地图中的网格进行占用标记,确定可用网格;利用图搜索技术查找可用网格中从起始位置对应的网格到目标位置对应的网格的最短路径;在最短路径上的相邻点之间进行插值,生成无碰撞全局路径。
[0124]
在本实施例的一些可选的实现方式中,命令生成模块1104包括:计算子模块(图中未示出),被配置成利用模型预测控制技术设计成本函数和无碰撞约束条件,计算无碰撞局部运动控制量,其中,成本函数用于惩罚状态和控制效果的错误,无碰撞约束条件采用序列凸优化在每次迭代时被线性化。
[0125]
在本实施例的一些可选的实现方式中,计算子模块进一步被配置成:从引导机器人和用户中选择检查点;以检查点为中心构建局部网格地图;基于障碍物的位置,对局部网格地图中的网格进行占用标记,确定检查点的可行区域;基于无碰撞全局路径,确定局部目标状态;基于可行区域与局部目标状态,生成无碰撞局部运动控制量。
[0126]
根据本技术的实施例,本技术还提供了一种电子设备和一种可读存储介质。
[0127]
如图12所示,是根据本技术实施例用于控制引导机器人的方法的电子设备的框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本技术的实现。
[0128]
如图12所示,该电子设备包括:一个或多个处理器1201、存储器1202,以及用于连接各部件的接口,包括高速接口和低速接口。各个部件利用不同的总线互相连接,并且可以被安装在公共主板上或者根据需要以其它方式安装。处理器可以对在电子设备内执行的指令进行处理,包括存储在存储器中或者存储器上以在外部输入/输出装置(诸如,耦合至接口的显示设备)上显示gui的图形信息的指令。在其它实施方式中,若需要,可以将多个处理器和/或多条总线与多个存储器和多个存储器一起使用。同样,可以连接多个电子设备,各个设备提供部分必要的操作(例如,作为服务器阵列、一组刀片式服务器、或者多处理器系统)。图12中以一个处理器1201为例。
[0129]
存储器1202即为本技术所提供的非瞬时计算机可读存储介质。其中,存储器存储有可由至少一个处理器执行的指令,以使至少一个处理器执行本技术所提供的用于控制引导机器人的方法。本技术的非瞬时计算机可读存储介质存储计算机指令,该计算机指令用于使计算机执行本技术所提供的用于控制引导机器人的方法。
[0130]
存储器1202作为一种非瞬时计算机可读存储介质,可用于存储非瞬时软件程序、非瞬时计算机可执行程序以及模块,如本技术实施例中的用于控制引导机器人的方法对应的程序指令/模块(例如,附图11所示的信息获取模块1101、方程生成模块1102、路径生成模块1103、命令生成模块1104和运动驱动模块1105)。处理器1201通过运行存储在存储器1202中的非瞬时软件程序、指令以及模块,从而执行服务器的各种功能应用以及数据处理,即实现上述方法实施例中的用于控制引导机器人的方法。
[0131]
存储器1202可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储根据用于控制引导机器人的方法的电子设备的使用所创建的数据等。此外,存储器1202可以包括高速随机存取存储器,还可以包括非瞬时存储器,例如至少一个磁盘存储器件、闪存器件、或其他非瞬时固态存储器件。在一些实施例中,存储器1202可选包括相对于处理器1201远程设置的存储器,这些远程存储器可以通过网络连接至用于控制引导机器人的方法的电子设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
[0132]
用于控制引导机器人的方法的电子设备还可以包括:输入装置1203和输出装置1204。处理器1201、存储器1202、输入装置1203和输出装置1204可以通过总线或者其他方式连接,图12中以通过总线连接为例。
[0133]
输入装置1203可接收输入的数字或字符信息,以及产生与用于控制引导机器人的方法的电子设备的用户设置以及功能控制有关的键信号输入,例如触摸屏、小键盘、鼠标、轨迹板、触摸板、指示杆、一个或者多个鼠标按钮、轨迹球、操纵杆等输入装置。输出装置1204可以包括显示设备、辅助照明装置(例如,led)和触觉反馈装置(例如,振动电机)等。该显示设备可以包括但不限于,液晶显示器(lcd)、发光二极管(led)显示器和等离子体显示器。在一些实施方式中,显示设备可以是触摸屏。
[0134]
此处描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、专用asic(专用集成电路)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
[0135]
用于实施本公开的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
[0136]
这些计算程序(也称作程序、软件、软件应用、或者代码)包括可编程处理器的机器
指令,并且可以利用高级过程和/或面向对象的编程语言、和/或汇编/机器语言来实施这些计算程序。如本文使用的,术语“机器可读介质”和“计算机可读介质”指的是用于将机器指令和/或数据提供给可编程处理器的任何计算机程序产品、设备、和/或装置(例如,磁盘、光盘、存储器、可编程逻辑装置(pld)),包括,接收作为机器可读信号的机器指令的机器可读介质。术语“机器可读信号”指的是用于将机器指令和/或数据提供给可编程处理器的任何信号。
[0137]
为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,crt(阴极射线管)或者lcd(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
[0138]
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(lan)、广域网(wan)和互联网。
[0139]
计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。
[0140]
根据本技术的技术方案,首先获取引导机器人的状态、用户的状态和障碍物的位置;之后基于引导机器人的状态和用户的状态,生成引导机器人与用户的组合系统的状态更新方程;而后基于障碍物的位置,生成无碰撞全局路径;然后基于组合系统的状态更新方程和无碰撞全局路径,生成控制命令;最后基于控制命令驱动引导机器人运动。对引导机器人与用户的组合系统进行建模,对人机运动学模型整体进行感知、路径规划和运动控制,从而确保引导机器人和用户同时避障,进而提高了引导机器人的实用性和可靠性。
[0141]
作为又一方面,本技术实施例提供了另一种服务器,包括:接口;存储器,其上存储有一个或多个程序;以及一个或多个处理器,在操作上连接到上述接口和上述存储器,用于:获取引导机器人的状态、用户的状态和障碍物的位置,其中,引导机器人与用户通过刚性物连接;基于引导机器人的状态和用户的状态,生成引导机器人与用户的组合系统的状态更新方程;基于障碍物的位置,生成无碰撞全局路径;基于组合系统的状态更新方程和无碰撞全局路径,生成控制命令;基于控制命令驱动引导机器人运动。
[0142]
作为又一方面,本技术实施例提供了一种计算机可读存储介质,其上存储有计算机程序,其中,当上述计算机程序被一个或多个处理器执行时,使得上述一个或多个处理器:获取引导机器人的状态、用户的状态和障碍物的位置,其中,引导机器人与用户通过刚性物连接;基于引导机器人的状态和用户的状态,生成引导机器人与用户的组合系统的状态更新方程;基于障碍物的位置,生成无碰撞全局路径;基于组合系统的状态更新方程和无
碰撞全局路径,生成控制命令;基于控制命令驱动引导机器人运动。
[0143]
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发申请中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本技术公开的技术方案所期望的结果,本文在此不进行限制。
[0144]
上述具体实施方式,并不构成对本技术保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本技术的精神和原则之内所作的修改、等同替换和改进等,均应包含在本技术保护范围之内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献