CN118226860B - 机器人运动控制方法、装置、机器人和存储介质 - Google Patents
机器人运动控制方法、装置、机器人和存储介质 Download PDFInfo
- Publication number
- CN118226860B CN118226860B CN202410613739.3A CN202410613739A CN118226860B CN 118226860 B CN118226860 B CN 118226860B CN 202410613739 A CN202410613739 A CN 202410613739A CN 118226860 B CN118226860 B CN 118226860B
- Authority
- CN
- China
- Prior art keywords
- robot
- speed
- obstacle
- obstacle avoidance
- preset
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 230000033001 locomotion Effects 0.000 title claims abstract description 62
- 238000000034 method Methods 0.000 title claims abstract description 49
- 238000003860 storage Methods 0.000 title claims description 14
- 238000001514 detection method Methods 0.000 claims abstract description 192
- 230000003068 static effect Effects 0.000 claims abstract description 119
- 238000004364 calculation method Methods 0.000 claims description 27
- 238000004590 computer program Methods 0.000 claims description 21
- 238000009499 grossing Methods 0.000 claims description 8
- 238000006073 displacement reaction Methods 0.000 claims description 4
- 238000010586 diagram Methods 0.000 description 33
- 238000004422 calculation algorithm Methods 0.000 description 14
- 230000008859 change Effects 0.000 description 10
- 238000004140 cleaning Methods 0.000 description 9
- 230000006870 function Effects 0.000 description 8
- 238000005452 bending Methods 0.000 description 7
- 230000008569 process Effects 0.000 description 7
- 230000004888 barrier function Effects 0.000 description 6
- 238000004891 communication Methods 0.000 description 6
- 238000005457 optimization Methods 0.000 description 4
- 230000004044 response Effects 0.000 description 3
- NAWXUBYGYWOOIX-SFHVURJKSA-N (2s)-2-[[4-[2-(2,4-diaminoquinazolin-6-yl)ethyl]benzoyl]amino]-4-methylidenepentanedioic acid Chemical compound C1=CC2=NC(N)=NC(N)=C2C=C1CCC1=CC=C(C(=O)N[C@@H](CC(=C)C(O)=O)C(O)=O)C=C1 NAWXUBYGYWOOIX-SFHVURJKSA-N 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 238000009826 distribution Methods 0.000 description 2
- 239000000284 extract Substances 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- OKTJSMMVPCPJKN-UHFFFAOYSA-N Carbon Chemical compound [C] OKTJSMMVPCPJKN-UHFFFAOYSA-N 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 229910021389 graphene Inorganic materials 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 238000003064 k means clustering Methods 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000010606 normalization Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000008447 perception Effects 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
- 238000010845 search algorithm Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05D—SYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
- G05D1/00—Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
- G05D1/40—Control within particular dimensions
- G05D1/43—Control of position or course in two dimensions
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05D—SYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
- G05D1/00—Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
- G05D1/60—Intended control result
- G05D1/617—Safety or protection, e.g. defining protection zones around obstacles or avoiding hazards
- G05D1/622—Obstacle avoidance
Landscapes
- Engineering & Computer Science (AREA)
- Aviation & Aerospace Engineering (AREA)
- Radar, Positioning & Navigation (AREA)
- Remote Sensing (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Automation & Control Theory (AREA)
- Manipulator (AREA)
- Control Of Position, Course, Altitude, Or Attitude Of Moving Bodies (AREA)
Abstract
本申请涉及一种机器人运动控制方法、装置、计算机设备。所述方法包括:基于当前机器人位置、当前动态障碍物位置、机器人相对速度和预设检测时间段进行位置距离计算,得到预设检测时间段中各个检测时间点对应的相对位置距离;获取预设静态避障路径,从各个检测时间点对应的相对位置距离中确定符合预设碰撞起始距离条件的目标相对位置距离,基于目标相对位置距离对应的检测时间点在静态避障路径的各个静态避障位置中确定碰撞起始位置;基于当前机器人位置、碰撞起始位置、目标相对位置距离对应的检测时间点进行避障速度计算,得到避障速度,并按照预设静态避障路径以避障速度进行运动。采用本方法能够提高机器人运动控制的安全性。
Description
技术领域
本申请涉及机器人控制技术领域,特别是涉及一种机器人运动控制方法、装置、机器人、存储介质和计算机程序产品。
背景技术
随着机器人的普及,机器人的应用越来越广泛,比如执行清洁任务的清洁机器人、执行配送任务的机器人、执行导引任务的机器人等。在机器人的实际工作中,为了保障机器人安全快速地到达指定的目的地,需要机器人安全避开行驶路径中的障碍物。
然而,目前在进行机器人的移动轨迹规划时通常考虑的是对静态障碍物的避让,并未考虑到动态障碍物对机器人移动轨迹的影响。而现有技术中对动态障碍物避让是通过机器人的传感器感知到动态障碍物时进行避障处理,但是容易出现当动态障碍物的运动速度过快时会由于机器人来不及反应而发生碰撞,从而导致机器人运动安全性低的问题。
发明内容
基于此,有必要针对上述技术问题,提供一种能够提高机器人的运动安全性的机器人运动控制方法、装置、机器人、计算机可读存储介质和计算机程序产品。
第一方面,本申请提供了一种机器人运动控制方法,包括:
获取当前机器人位置、当前动态障碍物位置和机器人相对速度,所述机器人相对速度是根据机器人速度和障碍物速度得到的;
基于所述当前机器人位置、所述当前动态障碍物位置、所述机器人相对速度和预设检测时间段进行位置距离计算,得到所述预设检测时间段中各个检测时间点对应的相对位置距离;
获取预设静态避障路径,从所述各个检测时间点对应的相对位置距离中确定符合预设碰撞起始距离条件的目标相对位置距离,基于所述目标相对位置距离对应的检测时间点,在所述预设静态避障路径的各个静态避障位置中确定碰撞起始位置;
基于所述当前机器人位置、所述碰撞起始位置、所述目标相对位置距离对应的检测时间点进行避障速度计算,得到避障速度,并按照所述预设静态避障路径以所述避障速度进行运动。
第二方面,本申请还提供了一种机器人运行控制装置,包括:
获取模块,用于获取当前机器人位置、当前动态障碍物位置和机器人相对速度,所述机器人相对速度是根据机器人速度和障碍物速度得到的;
距离计算模块,用于基于所述当前机器人位置、所述当前动态障碍物位置、所述机器人相对速度和预设检测时间段进行位置距离计算,得到所述预设检测时间段中各个检测时间点对应的相对位置距离;
碰撞位置确定模块,用于获取预设静态避障路径,从所述各个检测时间点对应的相对位置距离中确定符合预设碰撞起始距离条件的目标相对位置距离,基于所述目标相对位置距离对应的检测时间点,在所述预设静态避障路径的各个静态避障位置中确定碰撞起始位置;
避障模块,用于基于所述当前机器人位置、所述碰撞起始位置、所述目标相对位置距离对应的检测时间点进行避障速度计算,得到避障速度,并按照所述预设静态避障路径以所述避障速度进行运动。
第三方面,本申请还提供了一种机器人,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
获取当前机器人位置、当前动态障碍物位置和机器人相对速度,所述机器人相对速度是根据机器人速度和障碍物速度得到的;
基于所述当前机器人位置、所述当前动态障碍物位置、所述机器人相对速度和预设检测时间段进行位置距离计算,得到所述预设检测时间段中各个检测时间点对应的相对位置距离;
获取预设静态避障路径,从所述各个检测时间点对应的相对位置距离中确定符合预设碰撞起始距离条件的目标相对位置距离,基于所述目标相对位置距离对应的检测时间点,在所述预设静态避障路径的各个静态避障位置中确定碰撞起始位置;
基于所述当前机器人位置、所述碰撞起始位置、所述目标相对位置距离对应的检测时间点进行避障速度计算,得到避障速度,并按照所述预设静态避障路径以所述避障速度进行运动。
第四方面,本申请还提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
获取当前机器人位置、当前动态障碍物位置和机器人相对速度,所述机器人相对速度是根据机器人速度和障碍物速度得到的;
基于所述当前机器人位置、所述当前动态障碍物位置、所述机器人相对速度和预设检测时间段进行位置距离计算,得到所述预设检测时间段中各个检测时间点对应的相对位置距离;
获取预设静态避障路径,从所述各个检测时间点对应的相对位置距离中确定符合预设碰撞起始距离条件的目标相对位置距离,基于所述目标相对位置距离对应的检测时间点,在所述预设静态避障路径的各个静态避障位置中确定碰撞起始位置;
基于所述当前机器人位置、所述碰撞起始位置、所述目标相对位置距离对应的检测时间点进行避障速度计算,得到避障速度,并按照所述预设静态避障路径以所述避障速度进行运动。
第五方面,本申请还提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现以下步骤:
获取当前机器人位置、当前动态障碍物位置和机器人相对速度,所述机器人相对速度是根据机器人速度和障碍物速度得到的;
基于所述当前机器人位置、所述当前动态障碍物位置、所述机器人相对速度和预设检测时间段进行位置距离计算,得到所述预设检测时间段中各个检测时间点对应的相对位置距离;
获取预设静态避障路径,从所述各个检测时间点对应的相对位置距离中确定符合预设碰撞起始距离条件的目标相对位置距离,基于所述目标相对位置距离对应的检测时间点,在所述预设静态避障路径的各个静态避障位置中确定碰撞起始位置;
基于所述当前机器人位置、所述碰撞起始位置、所述目标相对位置距离对应的检测时间点进行避障速度计算,得到避障速度,并按照所述预设静态避障路径以所述避障速度进行运动。
上述机器人运动控制方法、装置、机器人、存储介质和计算机程序产品,通过根据机器人速度和障碍物速度得到机器人相对速度,然后根据当前机器人位置、当前动态障碍物位置和机器人相对速度计算预设检测时间段中各个检测时间点对应的相对位置距离,能够根据相对位置距离确定机器人和动态障碍物之间的距离变化,并能够及时判断机器人与动态障碍物是否会发生碰撞,从而保证了机器人与动态障碍物的碰撞检测的准确性。然后根据各个检测时间点对应的相对位置距离确定发生碰撞的目标相对位置距离,并根据目标相对位置距离对应的检测时间点在预设静态避障路径中确定碰撞起始位置,实现了碰撞起始位置的识别准确性。然后根据当前机器人位置、碰撞起始位置和目标相对位置距离对应的检测时间点进行避障速度计算,得到避障速度,通过控制机器人以避障速度按照静态避障路径进行运动,能够安全地避开动态障碍物,从而提高了机器人运动的安全性。
附图说明
为了更清楚地说明本申请实施例或相关技术中的技术方案,下面将对实施例或相关技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为一个实施例中机器人运动控制方法的应用环境图;
图2为一个实施例中机器人运动控制方法的流程示意图;
图3为一个实施例中机器人碰撞轨迹示意图;
图4为一个实施例中速度曲线的示意图;
图5为一个实施例中速度曲线规划的示意图;
图6为一个实施例中初始规划路径的示意图;
图7为一个实施例中截取路径段的示意图;
图8为一个实施例中搜索路径的示意图;
图9为一个实施例中轨迹点的示意图;
图10为一个实施例中离散轨迹点的示意图;
图11为一个实施例中静态避障路径的示意图;
图12为一个实施例中静态障碍物的示意图;
图13为一个实施例中动态障碍物的示意图;
图14为一个实施例中障碍物点聚类示意图;
图15为一个实施例中包围障碍物点的示意图;
图16为一个实施例中障碍物搜索框的示意图;
图17为一个实施例中障碍物运动方向是示意图;
图18为一个实施例中碰撞检测范围的示意图;
图19为一个实施例中轨迹点的示意图;
图20为一个实施例中机器人避障控制的流程示意图;
图21为一个实施例中机器人运行控制装置的结构框图;
图22为一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请实施例提供的机器人运动控制方法,可以应用于如图1所示的应用环境中,包括机器人102和服务器104、终端(未示出)。机器人102与服务器104、终端之间可以通过蓝牙、USB(Universal Serial Bus,通用串行总线)或者网络等通讯连接方式进行连接,本申请在此不做限制。在一个实施例中,机器人102可以通过通讯连接来接收服务器104或终端发送的移动指令,比如是服务器104向机器人102发送的室内清洁指令,机器人102响应于室内清洁指令进行移动和地面清洁。又比如,终端向机器人102发送的地图采集指令,机器人102响应于地图采集指令在目标区域进行移动和地图创建,并将创建的地图发送至服务器104进行存储。在一个实施例中,机器人102还部署有控制屏,机器人102通过控制屏响应于用户对控制屏上控件的点击操作,执行相应的移动操作,控件比如是自动清洁控件等。
在一个实施例中,机器人102在响应于服务器104或终端发送的移动指令执行移动任务的过程中,获取当前机器人位置、当前动态障碍物位置和机器人相对速度,机器人相对速度是根据机器人速度和障碍物速度得到的;机器人102基于当前机器人位置、当前动态障碍物位置、机器人相对速度和预设检测时间段进行位置距离计算,得到预设检测时间段中各个检测时间点对应的相对位置距离;机器人102获取预设静态避障路径,从各个检测时间点对应的相对位置距离中确定符合预设碰撞起始距离条件的目标相对位置距离,基于目标相对位置距离对应的检测时间点在静态避障路径的各个静态避障位置中确定碰撞起始位置;机器人102基于当前机器人位置、碰撞起始位置、目标相对位置距离对应的检测时间点进行避障速度计算,得到避障速度,并按照预设静态避障路径以避障速度进行运动。其中,服务器104可以是独立的物理服务器,也可以是区块链系统中的服务节点,该区块链系统中的各服务节点之间形成组成点对点(P2P,Peer To Peer)网络,P2P协议是一个运行在传输控制协议(TCP,Transmission Control Protocol)协议之上的应用层协议。此外,服务器104还可以是多个物理服务器构成的服务器集群,可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、内容分发网络(ContentDelivery Network,CDN)、以及大数据和人工智能平台等基础云计算服务的云服务器。终端可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑、物联网设备和便携式可穿戴设备,物联网设备可为智能车载设备等。便携式可穿戴设备可为智能手表、智能手环、头戴设备等。
在一个实施例中,如图2所示,提供了一种机器人运动控制方法,以该方法应用于图1中的机器人为例进行说明,该方法包括以下步骤:
步骤202,获取当前机器人位置、当前动态障碍物位置和机器人相对速度,机器人相对速度是根据机器人速度和障碍物速度得到的。
其中,当前机器人位置是指当前时刻机器人在设定区域中的位置坐标,设定区域可以是机器人地图中设定的运行区域,比如清洁区域、配送区域、导引区域等。机器人地图可以是全局地图,也可以是局部地图,也可以是机器人的感知地图,感知地图比如是根据机器人传感器实时生成的局部地图。设定区域中还设置有初始规划路径,初始规划路径可覆盖整个设定区域,用于指示机器人在设定区域内运动的路径,比如清洁区域中的清扫路径、配送区域中的配送路径、导引区域中的导引路径等。
当前动态障碍物位置是指当前时刻检测到的动态障碍物在设定区域中的位置坐标。机器人速度是指机器人当前执行的移动速度,可以是指矢量速度,可表征机器人的运动方向和运动速度。障碍物速度是指动态障碍物的移动速度,可以是指矢量速度。机器人相对速度是指机器人相对于动态障碍物的移动速度。
具体地,机器人按照预设频率采集环境中的障碍物信息,并在机器人地图中实时标记障碍物位置。机器人可以通过比较障碍物的位置来识别障碍物的类型,比如动态障碍物和静态障碍物,具体可以是机器人检测当前帧的机器人地图相比于上一帧的机器人地图中障碍物位置发生变化,则确定障碍物为动态障碍物。一般地,动态障碍物可以是指存在于初始规划路径中的动态障碍物。然后机器人根据当前帧的障碍物位置和上一帧的障碍物位置计算障碍物速度,并获取当前帧的机器人地图中机器人的当前机器人位置,以及获取当前帧的机器人地图中动态障碍物的当前动态障碍物位置。
步骤204,基于当前机器人位置、当前动态障碍物位置、机器人相对速度和预设检测时间段进行位置距离计算,得到预设检测时间段中各个检测时间点对应的相对位置距离。
其中,预设检测时间段是指预先设置的用于检测机器人是否与障碍物发生碰撞的时间段。相对位置距离是指在某个检测时间点时机器人相对于障碍物之间的距离。
具体地,机器人使用当前机器人位置和机器人相对速度预测机器人在未来一段时间内机器人移动到的位置,具体是机器人根据当前机器人位置、机器人相对速度和预设检测时间段进行位置计算,得到机器人在预设检测时间段中各个检测时间点对应的机器人检测位置。然后分别计算各个检测时间点对应的机器人检测位置和当前动态障碍物位置之间的差值,得到预设检测时间段中各个检测时间点对应的相对位置距离。
步骤206,获取预设静态避障路径,从各个检测时间点对应的相对位置距离中确定符合预设碰撞起始距离条件的目标相对位置距离,基于目标相对位置距离对应的检测时间点在静态避障路径的各个静态避障位置中确定碰撞起始位置。
其中,预设静态避障路径是指根据当前帧的机器人地图中动态障碍物的位置规划得到的避障路径,具体可以是根据动态障碍物在初始规划路径中的位置,在初始规划路径中以机器人所在位置为起点,截取一段动态障碍物所在的路径段,使用路径搜索算法(如A*算法)搜索出从机器人所在位置到路径段终点的新路径,作为避障路径。碰撞起始位置是指在预设静态避障路径中机器人与动态障碍物开始碰撞时的位置。
具体地,机器人根据当前帧的机器人地图检测到初始规划路径中存在动态障碍物时,根据动态障碍物在初始规划路径中的位置生成预设静态避障路径。预设静态避障路径可以理解为,由于在当前帧的机器人地图中动态障碍物的位置固定,则可以在当前帧的机器人地图中将动态障碍物作为静态障碍物进行避障路径规划得到预设静态避障路径。预设静态避障路径中包括机器人在各个路径点的机器人位姿,可以从机器人在路径点的机器人位姿中提取机器人位置作为静态避障位置,则预设静态避障路径可以是根据当前执行的机器人速度进行避障路径规划得到的机器人位置序列,包括各个规划时间点和各个规划时间点对应的静态避障位置。
机器人获取到预设静态避障路径后,从各个检测时间点对应的相对位置距离中,确定符合预设碰撞起始距离条件的目标相对位置距离,包括获取预设相对位置距离,按照时序将各个检测时间点对应的相对位置距离与预设相对位置距离阈值进行比较,将首个未超过预设相对位置距离阈值的相对位置距离确定为目标相对位置距离。
机器人获取目标相对位置距离对应的检测时间点,按照预设匹配算法将目标相对位置距离对应的检测时间点与各个规划时间点进行匹配,将匹配成功的规划时间点确定为目标规划时间点,获取目标规划时间点对应的静态避障位置,得到碰撞起始位置。
步骤208,基于当前机器人位置、碰撞起始位置、目标相对位置距离对应的检测时间点进行避障速度计算,得到避障速度,并按照预设静态避障路径以避障速度进行运动。
具体地,机器人根据当前机器人位置、碰撞起始位置和目标相对位置对应的检测时间点进行碰撞速度计算,得到碰撞速度。机器人可以将碰撞速度作为避障速度阈值;机器人也可以获取预设碰撞速度误差,根据碰撞速度和预设碰撞速度误差进行速度阈值计算,得到避障速度阈值。预设碰撞速度误差是指预先设置的用于校正碰撞速度的误差值,且预设碰撞速度误差可以是根据动态障碍物的障碍物速度确定的,两者具有正相关,比如当障碍物速度较大时设定的碰撞速度误差也较大。
机器人根据避障速度阈值确定避障速度条件,在预设机器人运动速度范围内选择满足避障速度条件的机器人运动速度作为避障速度,然后机器人按照预设静态避障路径以避障速度进行运动。
在一个实施例中,避障速度为避障线速度,机器人根据预设静态避障路径中的机器人位姿和避障线速度,计算避障线速度对应的避障角速度;机器人按照预设静态避障路径以避障速度和避障角速度进行运动。
具体来说,预设静态避障路径具有对应的路径弯曲程度,路径弯曲程度表征预设静态避障路径中曲线偏离直线的程度,由机器人运动的线速度和角速度控制。机器人在移动过程中需始终满足预设静态避障路径的路径弯曲程度,以保证机器人在运动过程中不偏离预设静态避障路径。
机器人在得到避障线速度后,获取预设静态避障路径对应的路径弯曲程度,使用路径弯曲程度和避障线速度计算避障角速度,然后机器人按照预设静态避障路径以避障线速度和避障角速度进行运动。
上述机器人运动控制方法中,通过根据机器人速度和障碍物速度得到机器人相对速度,然后根据当前机器人位置、当前动态障碍物位置和机器人相对速度计算预设检测时间段中各个检测时间点对应的相对位置距离,能够根据相对位置距离确定机器人和动态障碍物之间的距离变化,并能够及时判断机器人与动态障碍物是否会发生碰撞,从而保证了机器人与动态障碍物的碰撞检测的准确性。然后根据各个检测时间点对应的相对位置距离确定发生碰撞的目标相对位置距离,并根据目标相对位置距离对应的检测时间点在预设静态避障路径中确定碰撞起始位置,实现了碰撞起始位置的识别准确性。然后根据当前机器人位置、碰撞起始位置和目标相对位置距离对应的检测时间点进行避障速度计算,得到避障速度,通过控制机器人以避障速度按照静态避障路径进行运动,能够安全地避开动态障碍物,从而提高了机器人运动的安全性。
在一个实施例中,步骤204,基于当前机器人位置、当前动态障碍物位置、机器人相对速度和预设检测时间段进行位置距离计算,得到预设检测时间段中各个检测时间点对应的相对位置距离,包括:
基于机器人相对速度和预设检测时间段中各个检测时间点进行移动距离计算,得到各个检测时间点对应的机器人移动距离;
分别计算当前机器人位置和各个检测时间点对应的机器人移动距离的和,得到各个检测时间点对应的机器人检测位置;
分别计算各个检测时间点对应的机器人检测位置和当前动态障碍物位置的差值,得到各个检测时间点对应的相对位置距离。
具体地,机器人分别使用各个检测时间点和机器人相对速度进行乘积计算,得到各个检测时间点对应的机器人移动距离,然后分别计算当前机器人位置和各个检测时间点对应的机器人移动距离的和,得到各个检测时间点对应的机器人检测位置。机器人分别计算各个检测时间点对应的机器人检测位置和当前动态障碍物位置的差值,得到各个检测时间点对应的相对位置距离。
在一个具体实施例中,机器人和动态障碍物在运动过程中,机器人的机器人速度为,动态障碍物的障碍物速度为,则机器人和动态障碍物之间的机器人相对速度如公式(1)所示。
公式(1)
机器人的当前机器人位置为 ,动态障碍物的当前动态障碍物位置为,则机器人和动态障碍物之间的相对位置如公式(2)所示。
公式(2)
根据机器人与动态障碍物之间的相对速度与相对位置计算是否会发生碰撞以及碰撞发生时间,具体步骤包括:
设定一个小于时间阈值的检测时间序列作为检测时间段,机器人在设定的检测时间序列下的位置随着时间的变化情况如公式(3)所示,表示各个检测时间点对应的机器人检测位置,可表征预测的机器人移动后的位置,表示某个检测时间点机器人移动前所的位置。
公式(3)
机器人在各个检测时间点相对于动态障碍物的相对位置距离如公式(4)所示,表示各个检测时间点对应的相对位置距离。
公式(4)
机器人计算各个检测时间点对应的相对位置距离,并设定一个安全距离阈值作为预设相对位置距离阈值,当相对位置距离小于安全距离阈值时,确定机器人与动态障碍物发生碰撞。
本实施例中,通过计算机器人相对速度,并根据机器人相对速度和当前机器人位置计算各个检测时间点对应的相对位置距离,能够体现机器人与动态障碍物之间的位置变化,从而能够实现根据相对位置距离对机器人和动态障碍物进行碰撞检测,提高了机器人碰撞检测的准确性。
在一个实施例中,步骤208,基于当前机器人位置、碰撞起始位置、目标相对位置距离对应的检测时间点进行避障速度计算,得到避障速度,包括:
基于当前机器人位置和碰撞起始位置进行位置距离计算,得到碰撞起始距离;
计算碰撞起始距离和目标相对位置距离对应的检测时间点的比值,得到碰撞速度;
获取预设碰撞速度误差,基于预设碰撞速度误差和碰撞速度进行速度阈值计算,得到避障速度阈值,并基于避障速度阈值确定避障速度。
具体地,机器人计算当前机器人位置和碰撞起始位置之间的差值,得到碰撞起始距离,碰撞起始距离是指当前机器人位置到碰撞起始位置之间的距离。然后计算碰撞起始位置和目标相对位置距离对应的检测时间点的比值,得到碰撞速度。其中,目标相对位置距离s对应的检测时间点t表示为机器人与动态障碍物开始发生碰撞时的时间,则碰撞速度v表示机器人与动态障碍物发生碰撞时的机器人速度。碰撞速度v如公式(5)所示。
公式(5)
由于根据上一帧的机器人地图中动态障碍物的位置和当前帧的机器人地图中动态障碍物的位置计算得到障碍物速度存在误差,则根据公式(1)-(5)计算得到的碰撞速度也存在误差,因此,为保证机器人的避障速度的准确性需使用预设碰撞速度误差对碰撞速度进行校正。
机器人得到碰撞速度后获取预设碰撞速度误差,根据预设碰撞速度误差和碰撞速度进行速度阈值计算,得到避障速度阈值,然后机器人根据避障速度阈值确定避障速度。
本实施例中,通过根据碰撞起始距离计算碰撞速度,并根据碰撞速度和预设碰撞速度误差计算避障速度阈值,保证了机器人避障速度的准确性,从而提高了机器人避障的安全性。
在一个具体实施例中,如图3所示,提供一种机器人碰撞轨迹示意图。获取到动态障碍物对应的障碍物速度,并获取动态障碍物的运动方向,根据动态障碍物的障碍物速度和运动方向得到动态障碍物的运动轨迹,灰色箭头线段为动态障碍物的运动轨迹,连续的虚线圆形表示按照运动轨迹移动的动态障碍物。然后获取机器人的预设静态避障路径生成机器规划轨迹,黑色箭头线段表示机器规划轨迹,连续的虚线框(包括黑色和灰色虚线框)表示按照机器规划轨迹移动的机器人。按照时间序列将动态障碍物的运动轨迹和机器人的机器规划轨迹进行叠加,则可如图3所示。
由图可知,将实线框的机器人的位置作为机器人的起始位置,将实线圆形的动态障碍物的位置作为动态障碍物的起始位置。机器人沿着机器规划轨迹的从起始位置开始运动,并且动态障碍物沿着运动轨迹从起始位置开始运动。在时刻,机器人移动到的位置与起始位置之间的移动距离为,此时,动态障碍物也运动到时刻对应的位置,动态障碍物与机器人开始重叠。然后机器人与动态障碍物继续运动,在时刻,机器人运动到的位置与起始位置之间的移动距离为,此时,动态障碍物也运动到时刻对应的位置,动态障碍物与机器人结束重叠。
显然,机器人的机器规划轨迹与动态障碍物的运动轨迹在机器人位置发生重叠,是指机器人在运动距离到之间的机器人位置,表示机器人在运动至到的过程中持续与动态障碍物发生碰撞,可以由连续的黑色虚线框表示,则灰色虚线框表示机器人与动态障碍物未发生碰撞。机器人与动态障碍物发生碰撞的机器人位置对应的时间是,表示机器人按照机器规划轨迹运动,在时刻的对应的机器人位置时,机器人与动态障碍物开始碰撞,在时刻的对应的机器人位置时,机器人与动态障碍物结束碰撞。以当前机器人位置为起始位置时,将机器人与动态障碍物开始碰撞时的为碰撞起始距离,为目标相对位置距离对应的检测时间点。
在一个实施例中,避障速度阈值包括避障速度上限值或避障速度下限值;基于预设碰撞速度误差和碰撞速度进行速度阈值计算,得到避障速度阈值,并基于避障速度阈值确定避障速度,包括:
计算碰撞速度和预设碰撞速度误差的差值,得到避障速度上限值,在预设候选避障速度范围内确定小于避障速度上限值的候选避障速度,得到碰撞速度;或
计算碰撞速度和预设碰撞速度误差的和,得到避障速度下限值,在预设候选避障速度范围内确定大于避障速度下限值的候选避障速度,得到碰撞速度。
具体地,机器人获取预设碰撞速度误差,计算碰撞速度和预设碰撞速度误差的差值,得到避障速度上限值,如公式(6)所示:
公式(6)
其中,max(a,b)函数表示取a,b中的最大值,a为,b为0。公式(6)表示机器人按照碰撞速度运动时刚好会在位置处发生碰撞,则为了保证机器人运动安全可以设置安全阈值,即预设碰撞速度误差。通过计算碰撞速度和预设碰撞速度误差的差值,得到避障速度上限值,以使机器人可以以不超过避障速度上限值的较慢速度在机器规划轨迹上运动,能够让动态障碍物先行通过以实现机器人的避障。
机器人计算碰撞速度和预设碰撞速度误差的和,得到避障速度下限值,如公式(7)所示:
公式(7)
表示机器人通过计算碰撞速度和预设碰撞速度误差的和,得到避障速度下限值,以使机器人可以以超过避障速度下限值的较快速度在机器规划轨迹上运动,能够让机器人先行通过以实现机器人的避障。
本实施例中,通过根据碰撞速度和预设碰撞速度误差计算避障速度上限值和避障速度下限值,并根据避障速度上限值或避障速度下限值确定避障速度,满足了机器人的避障需求,从而保证了机器人的安全避障。
在一个具体实施例中,如图4所示,提供一种速度曲线的示意图。其中,箭头线段是表征机器人运动速度的机器速度曲线。图中s-t图表述的是机器人沿着机器规划轨迹运动时,在t时刻会运动到轨迹的s位置处。图中因变量s表示机器人从起始位置沿着机器规划轨迹方向运动到该轨迹上任意一点处的位置时的移动距离,自变量t表示时间,比如,t=0时s=0,s=0就是机器当前所处位置。根据障碍物速度预测得到动态障碍物在时间段内会经过机器人的机器规划路径中的路径段,则机器人与动态障碍物的运动轨迹在机器规划轨迹中位置和是重叠的。
由于机器人在某一帧的机器人地图中的运动速度是固定的,则机器人的机器人速度曲线在s-t图中呈现的是一条直线,如图4中所示的直线,也是机器人的碰撞速度,可通过或确定。其中,点和点之间的线段表示机器人的机器规划轨迹。
由于动态障碍物预测的障碍物速度具有误差,则根据障碍物速度预测的碰撞位置和以及机器人的碰撞速度也存在误差,可以通过动态障碍物的障碍物速度和其存在的误差转换为避障速度和预设碰撞速度误差,根据避障速度和预设碰撞速度误差在s-t图中构建动态障碍物的运动轨迹区域,如图4中所示的灰色方形区域,则图4中灰色方形区域和机器速度曲线的线段的重叠区域表示动态障碍物的运算轨迹与机器人的机器规划轨迹的重叠区域。比如,t0时刻对应的机器规划轨迹中的一个机器人位置,且对应灰色方形区域中动态障碍物可能存在的多个障碍物位置。
因此,为了避免机器人与动态障碍物发生碰撞,则需要机器人的机器速度曲线不经过上图4中灰色方形区域表征重叠区域。因此,机器人的机器速度曲线可以通过设定一条旋转点为坐标原点的旋转直线,通过改变直线与坐标轴之间的夹角可以得到不同速度值的曲线,如图5所示的速度曲线规划的示意图。
为保证旋转直线与障碍物区域不发生重叠,则可以根据动态障碍物与机器轨迹重叠部分区域的边界点确定两个临界安全速度曲线,比如图5所示的临界安全速度曲线1和临界安全速度曲线2,将临界安全速度曲线1作为避障速度上限值,将临界安全速度曲线2作为避障速度下限值,则可以根据两个临界安全速度曲线1和2分别确定两个安全的速度曲线范围为Range1范围和Range2范围。其中,Range1表示临界安全速度曲线1与横坐标轴之间的夹角,Range1范围的安全速度曲线表示让机器人减速以更低的速度行驶让动态障碍物先行通过;Range2表示临界安全速度曲线2与纵坐标轴之间的夹角,Range2范围的安全速度曲线表示让机器人加速且在动态障碍物还未通过之前让机器人先行通过。由于Range2范围内的机器人速度大于Range1范围内的机器人速度,为避免出现未知的动态障碍物的速度变化,导致机器人在以较大的机器人速度先行通过的过程中,与动态障碍物发生碰撞,选择较小的机器人速度移动并等待动态障碍物先行通过,可保证机器人的运动安全。则优选地,在Range1范围内选择安全速度曲线,比如是与横坐标轴之间的夹角小于Range1的直线表征的机器速度曲线,即选择小于避障速度上限值的机器人速度。
在一个具体实施例中,机器人可以根据s-t图选择安全的速度曲线范围内任意一个机器速度曲线,获取该机器速度曲线与坐标轴的夹角;根据预设时间长度对该夹角进行反三角函数计算,得到距离长度;然后根据时间长度和距离长度确定选择的机器速度曲线对应的速度值,得到避障速度。
在一个实施例中,在步骤202,获取当前机器人位置、当前动态障碍物位置和机器人相对速度之前,还包括:
获取当前障碍物地图和初始规划路径,基于当前障碍物地图中的障碍物位置在初始规划路径中确定障碍物路径;
基于障碍物路径对应的路径起点和路径终点在当前障碍物地图中进行避障路径规划,得到初始避障路径;
基于初始避障路径进行路径平滑处理,得到预设静态避障路径。
其中,障碍物路径是指初始避障路径中存在障碍物的路径段。
具体地,机器人获取当前障碍物地图,当前障碍物地图可以包括初始规划路径。当前障碍物地图可以是根据当前环境信息对历史障碍物地图更新后的地图。机器人根据当前障碍物地图中的障碍物位置,将初始规划路径中存在障碍物的局部路径确定为障碍物路径。
在障碍物路径中确定路径地点和路径终点,根据路径地点和路径终点进行避障路径规划,机器人可以使用路径搜索算法从路径起点到路径终点搜索出一条路径,得到初始避障路径,路径搜索算法比如是A*算法、DFS(Depth Frist Search,深度优先搜索)算法、Dijkstra(最短路径)算法等。初始避障路径用于替代障碍物路径。然后机器人可以使用平滑算法对初始避障路径进行路径平滑处理,得到预设静态避障路径。
在一个具体实施例中,机器人获取当前帧的机器人地图,当前帧的机器人地图中存在障碍物时,将该机器人地图作为静态障碍物场景的地图并进行静态障碍物的轨迹规划,具体步骤如下:
机器人在设定区域中进行路径规划时,在设定区域中生成可覆盖整个区域的初始规划路径,比如是清扫路径,如图6所示的初始规划路径的示意图。黑色填充的矩形为机器人,带箭头的黑色实线为初始规划路径,最外围的矩形框为设定区域。
然后根据机器在初始规划轨迹上的位置从初始规划路径上截取一段设定路径长度为PATH_LENGTH的路径段,如图7所示的截取路径段的示意图。
机器人检测截取路径段上是否存在静态障碍物,若不存在,则根据截取路径段生成机器人的运动轨迹;若存在静态障碍物则确定该截取路径段为障碍物路径,调用路径搜索算法从机器人所处位置到截取路径段的终点处搜索出一条路径来代替截取路径段,路径搜索算法比如是A*算法,得到初始避障路径(A*搜索路径),如图8所示的搜索路径的示意图。
将初始避障路径转换为初始避障轨迹,预先设定初始避障轨迹由一系列的轨迹点组成,如图9所示的轨迹点的示意图。其中,黑色填充的矩形为机器人,黑色箭头表示轨迹点在该点是与初始避障轨迹的切线方向,表示轨迹点的坐标与朝向,表示机器人从当前轨迹点运动到下个轨迹点需要的时间。时间可用于计算机器人应该执行的速度,根据当前轨迹点与下个轨迹点的坐标计算两个轨迹点之间的距离,然后计算距离和时间的比值,得到机器人的速度,表示机器从当前轨迹点运动到下个轨迹点的速度。
可以通过对初始避障路径进行离散化处理,得到初始避障轨迹,比如,设定离散采样的点间距为DIST_OFFSET,根据点间距对初始避障路径进行离散化,得到初始避障轨迹对应的离散轨迹点,如图10所示的离散轨迹点的示意图。
从初始避障轨迹获取离散轨迹点坐标,根据两个离散轨迹点坐标计算离散轨迹点的朝向为,如公式(8)所示:
公式(8)
然后根据机器最大运行速度SPPED_MAX与离散轨迹点的点间距DIST_OFFSET计算离散轨迹点的时间,为固定值,如公式(9)所示:
公式(9)
由于离散轨迹点并不是十分平滑,无法直接用于控制机器人运动,需要对离散轨迹点进行迭代优化求解,使得最终优化后的轨迹点生成的路径足够平滑、路径可执行且不会撞到障碍物,以及速度在机器人的可执行范围内。
路径平滑公式如公式(10)所示:
公式(10)
离散轨迹点远离障碍物的表达公式如公式(11)所示:
公式(11)
其中是对于避障距离的惩罚函数,若x≥0,,若x<0,,表示当前轨迹点距离最近的障碍物点的距离,是离散轨迹点需要和最近障碍物点保持的最小距离。
速度约束表达式如公式(12)所示:
公式(12)
其中是速度惩罚函数,若x≤0,,若x>0,,为设定的机器最大运行速度值。
路径优化求解的目标函数如公式(13)所示:
公式(13)
其中为轨迹平滑项的权重,为避障项的权重,为速度项的权重。
优化函数如公式(14)所示:
公式(14)
该优化函数可通过优化器(ceres、g2o等)进行优化求解,求解出来的结果为优化后的轨迹点,根据优化后的轨迹点生成最终输出的静态避障路径,作为后续使用的预设静态避障路径,预设静态避障路径包括各个路径点,如图11所示的静态避障路径的示意图。
本实施例中,通在初始规划路径中确定存在障碍物的障碍物路径,并进行避障路径规划得到初始避障路径,避免机器人按照障碍物路径进行运动发生碰撞,保证了机器人运动的安全性。然后对初始避障路径进行路径平滑处理,得到静态避障路径,提高了静态避障路径的安全性。
在一个实施例中,在步骤202,获取当前机器人位置、当前动态障碍物位置和机器人相对速度之前,还包括:
获取历史时间段中起始时间点对应的障碍物起点位置和结束时间点对应的障碍物终点位置;
基于障碍物起点位置和障碍物终点位置计算障碍物移动距离,当障碍物移动距离超过预设位移阈值时,获取当前障碍物位置得到当前动态障碍物位置;
基于障碍物移动距离和历史时间段进行速度计算,得到障碍物速度;
获取当前机器人速度,计算当前机器人速度和障碍物速度的差值,得到机器人相对速度。
具体地,机器人采集历史时间段中连续多帧的障碍物地图,提取起始时间点对应的障碍物地图中的障碍物位置为障碍物地点位置,然后提取结束时间点对应的障碍物地图中的障碍物位置为障碍物终点位置,并计算障碍物起点位置和障碍物终点位置的差值,得到障碍物移动距离。当障碍物移动距离超过预设位移阈值时,确定障碍物为动态障碍物。
机器人获取当前障碍物位置得到当前动态障碍物位置,并计算障碍物移动距离和历史时间段的比值,得到障碍物速度。
在一个具体实施例中,由于静态障碍物在障碍物地图中的坐标不会随时间变化而变化的,如图12所示的静态障碍物的示意图,其中,横坐标t表示时间,纵坐标p表示障碍物在障碍物地图中的坐标,图12表示随着时间变化而坐标不变的静态障碍物;而动态障碍物在障碍物地图中的坐标会随时间变化而变化,如图13所示的动态障碍物的示意图,其中,横坐标t表示时间,纵坐标p表示障碍物在障碍物地图中的坐标,图13表示随着时间变化坐标变化的动态障碍物。
机器人检测障碍物后需要对障碍物进行动态障碍物检测,具体步骤如下:
由于单个障碍物在感知地图中可能表示为多个障碍物点,则通过预设聚类算法(比如K-Means聚类算法、DBSCAN聚类算法等)对障碍物点进行聚类,将属于同一个障碍物的障碍物点标记为一个类,如图14所示的障碍物点聚类示意图。
然后可以用一个最小外接圆将聚类的障碍物点进行包围,然后根据聚类的障碍物点的包围范围确定障碍物的中心点坐标以及半径大小,如图15所示的包围障碍物点的示意图,显示聚类的障碍物点a的中心点坐标和半径大小为(x,y,r)。
可以在上一帧的机器人地图中标记各个障碍物的位置,并设定一个搜索框,然后在当前帧的机器人地图中检测搜索框内障碍物的位置是否发生变化,若搜索框内障碍物的位置相比于上一帧的障碍物位置未发生变化,则确定该障碍物为静态障碍物,若位置发生了变化则确定该障碍物为动态障碍物,如图16所示的障碍物搜索框的示意图,显示搜索框中动态障碍物的当前障碍物位置相比于上一帧障碍物位置右向偏移,以及静态障碍物的当前障碍物位置相比于上一帧障碍物位置相同。
机器人在确定障碍物为动态障碍物后,根据当前帧的障碍物位置和上一帧的障碍物位置确定动态障碍物的运动方向和障碍物速度,障碍物速度为有向速度,如图17所示的障碍物运动方向是示意图,显示动态障碍物从上一帧的障碍物位置 运动至当前帧的障碍物位置。
机器人根据上一帧的障碍物位置和当前帧的障碍物位置,以及两帧之间的时间间隔计算障碍物的运动朝向heading,如公式(15)所示:
公式(15)
动态障碍物的标量速度v如公式(16)所示:
公式(16)
动态障碍物的有向速度如公式(17)所示:
公式(17)
本实施例中,通过根据障碍物移动距离对障碍物进行动态障碍物检测,然后根据障碍物移动距离和历史时间段计算障碍物速度,以使后续根据障碍物速度对机器人进行碰撞检测,从而根据碰撞检测结果实现对机器人的避障控制,保留了机器人的运动安全性。
在一个实施例中,步骤204,基于当前机器人位置、当前动态障碍物位置、机器人相对速度和预设检测时间段进行位置距离计算,得到预设检测时间段中各个检测时间点对应的相对位置距离,包括:
基于当前动态障碍物位置和当前机器人位置确定障碍物相对方向,基于机器人相对速度确定相对速度方向;
计算相对速度方向和障碍物相对方向之间的方向夹角,当方向夹角小于预设碰撞检测角度时,基于当前机器人位置、当前动态障碍物位置、机器人相对速度和预设检测时间段进行位置距离计算,得到预设检测时间段中各个检测时间点对应的相对位置距离。
具体地,机器人根据当前动态障碍物位置和当前机器人位置确定障碍物相对方向,并根据机器人相对速度确定相对速度方向。然后计算相对速度方向和障碍物相对方向之间的方向夹角,机器人根据方向夹角进行碰撞检测。
当机器人检测到方向夹角小于预设碰撞检测角度时,说明在机器人按照当前的机器人速度运动过程中存在与动态障碍物碰撞的风险,则需要对机器人进行碰撞检测,即根据当前机器人位置、当前动态障碍物位置、机器人相对速度和预设检测时间段进行位置距离计算,得到预设检测时间段中各个检测时间点对应的相对位置距离,通过各个检测时间点对应的相对位置距离与预设相对位置距离阈值的比较判断机器人与动态障碍物是否发生碰撞。
若检测到方向夹角小于预设碰撞检测角度时,说明在机器人按照当前的机器人速度运动过程中未存在与动态障碍物碰撞的风险,则不进行处理,控制机器人以当前的机器人速度按照预设静态避障路径运动。
在一个具体实施例中,如图18所示,提供一种碰撞检测范围的示意图。
机器人根据当前动态障碍物位置和当前机器人位置确定障碍物相对方向,并计算当前动态障碍物位置和当前机器人位置之间的差值,得到当前位置距离。
机器人可以根据当前机器人位置和当前位置距离设定一个碰撞检测范围,碰撞检测范围用于确定是否进行机器人碰撞检测。具体可以是以当前机器人位置为圆心,障碍物相对方向作为碰撞检测范围的中线,然后以当前位置距离为半径生成一个预设角度的扇形区域,预设角度比如是90°。
然后机器人根据机器人相对速度确定相对速度方向,当检测到相对速度方向未处于碰撞检测区域对应的扇形区域内时,则确定机器人按照当前的机器人速度在机器人运动过程中是安全的;若检测到相对速度方向处于碰撞检测区域对应的扇形区域内时,则对机器人进行碰撞检测。
本实施例中,通过构建碰撞检测区域,并根据相对速度方向和碰撞检测区域确定是否存在机器人与动态障碍物的碰撞风险,从而能够避免不必要的计算碰撞检测,能够节省算力资源。
在一个实施例中,按照预设静态避障路径以避障速度进行运动,包括:
获取目标曲率,目标曲率是根据预设静态避障路径中路径点对应的位姿和间隔时间计算,得到预设静态避障路径对应的机器人线速度和机器人角速度,并根据机器人角速度和机器人线速度的比值得到的;
基于目标曲率和避障速度进行乘积计算,得到避障角速度;
按照预设静态避障路径以避障速度和避障角速度进行运动。
具体地,机器人计算得到避障速度阈值后,可以在预设静态避障路径中选取距离机器人最近的路径点及其下一个路径点,如图19所示的路径点的示意图,其中,黑色填充的矩形为机器人,黑色箭头表示轨迹点在该点是与初始避障轨迹的切线方向,表示已选取的距离机器人最近的路径点(靠近机器人的黑色点)以及用于计算速度控制信息的下一个路径点,该下一个路径点的位姿与时间为。
设定机器人当前路径点的位姿为,下一路径点的位姿与时间为,则机器人按照预设静态避障路径进行运动的线速度如公式(18)所示:
公式(18)
机器人按照预设静态避障路径进行运动的角速度如公式(19)所示:
公式(19)
其中normal_angle()用于归一化保证其输出值的值域在(-π,π]。
机器人获取预设静态避障路径对应的路径弯曲程度,路径弯曲程度一般是目标曲率,目标曲率curv的计算如公式(20)所示,目标曲率表示按照目标曲率控制机器人在预设静态避障路径中运动,不发生路径偏离的机器人运动参数。
公式(20)
为避免机器人与动态障碍物发生碰撞,则可设定机器人在预设静态避障路径上运动的目标线速度为,即避障速度,其中满足,可以是指避障速度上限值;或者满足,可以是指避障速度下限值,a是指避障速度的最大上限值。因此,机器人在预设静态避障路径上运动的避障角速度为。
机器人以目标线速度和目标角速度按照预设静态避障路径进行运动,能够实现对动态障碍物的避障。
在一个具体实施例中,如图20所示,提供一种机器人避障控制的流程示意图。机器人将当前帧的机器人地图中的所有障碍物作为静态障碍物并进行避障轨迹规划;然后根据上一帧的机器人地图中障碍物的位置和当前帧的机器人地图中障碍物的位置进行动态障碍物检测,判断障碍物是否为动态障碍物。当障碍物为静态障碍物时,控制机器人以当前的机器人速度按照避障轨迹进行运动。
当障碍物为动态障碍物时,根据动态障碍物当前的速度和运动方向生成动态障碍物在未来一段时间内的运动轨迹;根据动态障碍物的运动轨迹与机器人的初始避障路径中,动态障碍物与机器人的相对位置距离,判别机器人是否会与动态障碍物发生碰撞;若会发生碰撞,则进行避障速度规划,确定机器人的避障速度,然后控制机器人以避障速度按照避障轨迹进行运动;若不会发生碰撞,则控制机器人以当前的机器人速度按照避障轨迹进行运动。
应该理解的是,虽然如上所述的各实施例所涉及的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,如上所述的各实施例所涉及的流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
基于同样的发明构思,本申请实施例还提供了一种用于实现上述所涉及的机器人运动控制方法的机器人运行控制装置。该装置所提供的解决问题的实现方案与上述方法中所记载的实现方案相似,故下面所提供的一个或多个机器人运行控制装置实施例中的具体限定可以参见上文中对于机器人运动控制方法的限定,在此不再赘述。
在一个示例性的实施例中,如图21所示,提供了一种机器人运行控制装置2100,包括:获取模块2102、距离计算模块2104、碰撞位置确定模块2106和避障模块2108,其中:
获取模块2102,用于获取当前机器人位置、当前动态障碍物位置和机器人相对速度,机器人相对速度是根据机器人速度和障碍物速度得到的;
距离计算模块2104,用于基于当前机器人位置、当前动态障碍物位置、机器人相对速度和预设检测时间段进行位置距离计算,得到预设检测时间段中各个检测时间点对应的相对位置距离;
碰撞位置确定模块2106,用于获取预设静态避障路径,从各个检测时间点对应的相对位置距离中确定符合预设碰撞起始距离条件的目标相对位置距离,基于目标相对位置距离对应的检测时间点在静态避障路径的各个静态避障位置中确定碰撞起始位置;
避障模块2108,用于基于当前机器人位置、碰撞起始位置、目标相对位置距离对应的检测时间点进行避障速度计算,得到避障速度,并按照预设静态避障路径以避障速度进行运动。
在一个实施例中,距离计算模块2104,包括:
移动距离计算单元,用于基于机器人相对速度和预设检测时间段中各个检测时间点进行移动距离计算,得到各个检测时间点对应的机器人移动距离;分别计算当前机器人位置和各个检测时间点对应的机器人移动距离的和,得到各个检测时间点对应的机器人检测位置;分别计算各个检测时间点对应的机器人检测位置和当前动态障碍物位置的差值,得到各个检测时间点对应的相对位置距离。
在一个实施例中,避障模块2108,包括:
碰撞速度计算单元,用于基于当前机器人位置和碰撞起始位置进行位置距离计算,得到碰撞起始距离;计算碰撞起始距离和目标相对位置距离对应的检测时间点的比值,得到碰撞速度;获取预设碰撞速度误差,基于预设碰撞速度误差和碰撞速度进行速度阈值计算,得到避障速度阈值,并基于避障速度阈值确定避障速度。
在一个实施例中,避障模块2108,包括:
速度阈值确定单元,用于计算碰撞速度和预设碰撞速度误差的差值,得到避障速度上限值,在预设候选避障速度范围内确定小于避障速度上限值的候选避障速度,得到碰撞速度;或计算碰撞速度和预设碰撞速度误差的和,得到避障速度下限值,在预设候选避障速度范围内确定大于避障速度下限值的候选避障速度,得到碰撞速度。
在一个实施例中,机器人运行控制装置2100,还包括:
路径规划单元,用于获取当前障碍物地图和初始规划路径,基于当前障碍物地图中的障碍物位置在初始规划路径中确定障碍物路径;基于障碍物路径对应的路径起点和路径终点在当前障碍物地图中进行避障路径规划,得到初始避障路径;基于初始避障路径进行路径平滑处理,得到预设静态避障路径。
在一个实施例中,机器人运行控制装置2100,还包括:
相对速度计算单元,用于获取历史时间段中起始时间点对应的障碍物起点位置和结束时间点对应的障碍物终点位置;基于障碍物起点位置和障碍物终点位置计算障碍物移动距离,当障碍物移动距离超过预设位移阈值时,获取当前障碍物位置得到当前动态障碍物位置;基于障碍物移动距离和历史时间段进行速度计算,得到障碍物速度;获取当前机器人速度,计算当前机器人速度和障碍物速度的差值,得到机器人相对速度。
在一个实施例中,距离计算模块2104,包括:
方向夹角检测单元,用于基于当前动态障碍物位置和当前机器人位置确定障碍物相对方向,基于机器人相对速度确定相对速度方向;计算相对速度方向和障碍物相对方向之间的方向夹角,当方向夹角小于预设碰撞检测角度时,基于当前机器人位置、当前动态障碍物位置、机器人相对速度和预设检测时间段进行位置距离计算,得到预设检测时间段中各个检测时间点对应的相对位置距离。
上述机器人运行控制装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个示例性的实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图22所示。该计算机设备包括处理器、存储器、输入/输出接口(Input/Output,简称I/O)和通信接口。其中,处理器、存储器和输入/输出接口通过系统总线连接,通信接口通过输入/输出接口连接到系统总线。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质和内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储当前机器人位置、当前机器人位置等数据。该计算机设备的输入/输出接口用于处理器与外部设备之间交换信息。该计算机设备的通信接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种机器人运动控制方法。
本领域技术人员可以理解,图22中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,还提供了一种机器人,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现上述各方法实施例中的步骤。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述各方法实施例中的步骤。
在一个实施例中,提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述各方法实施例中的步骤。
需要说明的是,本申请所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据,且相关数据的收集、使用和处理需要符合相关规定。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-OnlyMemory,ROM)、磁带、软盘、闪存、光存储器、高密度嵌入式非易失性存储器、阻变存储器(ReRAM)、磁变存储器(Magnetoresistive Random Access Memory,MRAM)、铁电存储器(Ferroelectric Random Access Memory,FRAM)、相变存储器(Phase Change Memory,PCM)、石墨烯存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器等。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic RandomAccess Memory,DRAM)等。本申请所提供的各实施例中所涉及的数据库可包括关系型数据库和非关系型数据库中至少一种。非关系型数据库可包括基于区块链的分布式数据库等,不限于此。本申请所提供的各实施例中所涉及的处理器可为通用处理器、中央处理器、图形处理器、数字信号处理器、可编程逻辑器、基于量子计算的数据处理逻辑器等,不限于此。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本申请专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请的保护范围应以所附权利要求为准。
Claims (10)
1.一种机器人运动控制方法,其特征在于,所述方法包括:
获取当前机器人位置、当前动态障碍物位置和机器人相对速度,所述机器人相对速度是根据机器人速度和障碍物速度得到的;
基于所述当前机器人位置、所述当前动态障碍物位置、所述机器人相对速度和预设检测时间段进行位置距离计算,得到所述预设检测时间段中各个检测时间点对应的相对位置距离;
获取预设静态避障路径,从所述各个检测时间点对应的相对位置距离中确定符合预设碰撞起始距离条件的目标相对位置距离,基于所述目标相对位置距离对应的检测时间点,在所述预设静态避障路径的各个静态避障位置中确定碰撞起始位置;所述预设静态避障路径是在当前帧的机器人地图中将动态障碍物作为静态障碍物进行避障路径规划得到的路径;所述碰撞起始位置是根据所述预设静态避障路径中,与所述目标相对位置距离对应的检测时间点匹配的目标规划时间点的静态避障位置得到的;所述目标相对位置距离是根据所述各个检测时间点对应的相对位置距离中,首个未超过预设相对位置距离阈值的相对位置距离确定的;
基于所述当前机器人位置、所述碰撞起始位置、所述目标相对位置距离对应的检测时间点进行避障速度计算,得到避障速度,并按照所述预设静态避障路径以所述避障速度进行运动。
2.根据权利要求1所述的方法,其特征在于,所述基于所述当前机器人位置、所述当前动态障碍物位置、所述机器人相对速度和预设检测时间段进行位置距离计算,得到所述预设检测时间段中各个检测时间点对应的相对位置距离,包括:
基于所述机器人相对速度和所述预设检测时间段中所述各个检测时间点进行移动距离计算,得到所述各个检测时间点对应的机器人移动距离;
分别计算所述当前机器人位置和所述各个检测时间点对应的机器人移动距离的和,得到所述各个检测时间点对应的机器人检测位置;
分别计算所述各个检测时间点对应的机器人检测位置和所述当前动态障碍物位置的差值,得到所述各个检测时间点对应的相对位置距离。
3.根据权利要求1所述的方法,其特征在于,所述基于所述当前机器人位置、所述碰撞起始位置、所述目标相对位置距离对应的检测时间点进行避障速度计算,得到避障速度,包括:
基于所述当前机器人位置和所述碰撞起始位置进行位置距离计算,得到碰撞起始距离;
计算所述碰撞起始距离和所述目标相对位置距离对应的检测时间点的比值,得到碰撞速度;
获取预设碰撞速度误差,基于所述预设碰撞速度误差和所述碰撞速度进行速度阈值计算,得到避障速度阈值,并基于所述避障速度阈值确定所述避障速度。
4.根据权利要求3所述的方法,其特征在于,所述避障速度阈值包括避障速度上限值或避障速度下限值;所述基于所述预设碰撞速度误差和所述碰撞速度进行速度阈值计算,得到避障速度阈值,并基于所述避障速度阈值确定所述避障速度,包括:
计算所述碰撞速度和所述预设碰撞速度误差的差值,得到所述避障速度上限值,在预设候选避障速度范围内确定小于所述避障速度上限值的候选避障速度,得到所述碰撞速度;或,
计算所述碰撞速度和所述预设碰撞速度误差的和,得到所述避障速度下限值,在预设候选避障速度范围内确定大于所述避障速度下限值的候选避障速度,得到所述碰撞速度。
5.根据权利要求1所述的方法,其特征在于,在所述获取当前机器人位置、当前动态障碍物位置和机器人相对速度之前,还包括:
获取当前障碍物地图和初始规划路径,基于所述当前障碍物地图中的障碍物位置在所述初始规划路径中确定障碍物路径;
基于所述障碍物路径对应的路径起点和路径终点在所述当前障碍物地图中进行避障路径规划,得到初始避障路径;
基于所述初始避障路径进行路径平滑处理,得到所述预设静态避障路径。
6.根据权利要求1所述的方法,其特征在于,在所述获取当前机器人位置、当前动态障碍物位置和机器人相对速度之前,还包括:
获取历史时间段中起始时间点对应的障碍物起点位置和结束时间点对应的障碍物终点位置;
基于所述障碍物起点位置和障碍物终点位置计算障碍物移动距离,当所述障碍物移动距离超过预设位移阈值时,获取当前障碍物位置得到所述当前动态障碍物位置;
基于所述障碍物移动距离和所述历史时间段进行速度计算,得到障碍物速度;
获取当前机器人速度,计算所述当前机器人速度和所述障碍物速度的差值,得到所述机器人相对速度。
7.根据权利要求1所述的方法,其特征在于,所述基于所述当前机器人位置、所述当前动态障碍物位置、所述机器人相对速度和预设检测时间段进行位置距离计算,得到所述预设检测时间段中各个检测时间点对应的相对位置距离,包括:
基于所述当前动态障碍物位置和所述当前机器人位置确定障碍物相对方向,基于所述机器人相对速度确定相对速度方向;
计算所述相对速度方向和所述障碍物相对方向之间的方向夹角,当所述方向夹角小于预设碰撞检测角度时,基于所述当前机器人位置、所述当前动态障碍物位置、所述机器人相对速度和预设检测时间段进行位置距离计算,得到所述预设检测时间段中各个检测时间点对应的相对位置距离。
8.一种机器人运动控制装置,其特征在于,所述装置包括:
获取模块,用于获取当前机器人位置、当前动态障碍物位置和机器人相对速度,所述机器人相对速度是根据机器人速度和障碍物速度得到的;
距离计算模块,用于基于所述当前机器人位置、所述当前动态障碍物位置、所述机器人相对速度和预设检测时间段进行位置距离计算,得到所述预设检测时间段中各个检测时间点对应的相对位置距离;
碰撞位置确定模块,用于获取预设静态避障路径,从所述各个检测时间点对应的相对位置距离中确定符合预设碰撞起始距离条件的目标相对位置距离,基于所述目标相对位置距离对应的检测时间点,在所述预设静态避障路径的各个静态避障位置中确定碰撞起始位置;所述预设静态避障路径是在当前帧的机器人地图中将动态障碍物作为静态障碍物进行避障路径规划得到的路径;所述碰撞起始位置是根据所述预设静态避障路径中,与所述目标相对位置距离对应的检测时间点匹配的目标规划时间点的静态避障位置得到的;所述目标相对位置距离是根据所述各个检测时间点对应的相对位置距离中,首个未超过预设相对位置距离阈值的相对位置距离确定的;
避障模块,用于基于所述当前机器人位置、所述碰撞起始位置、所述目标相对位置距离对应的检测时间点进行避障速度计算,得到避障速度,并按照所述预设静态避障路径以所述避障速度进行运动。
9.一种机器人,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至7中任一项所述的方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410613739.3A CN118226860B (zh) | 2024-05-17 | 2024-05-17 | 机器人运动控制方法、装置、机器人和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410613739.3A CN118226860B (zh) | 2024-05-17 | 2024-05-17 | 机器人运动控制方法、装置、机器人和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN118226860A CN118226860A (zh) | 2024-06-21 |
CN118226860B true CN118226860B (zh) | 2024-09-20 |
Family
ID=91502519
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410613739.3A Active CN118226860B (zh) | 2024-05-17 | 2024-05-17 | 机器人运动控制方法、装置、机器人和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN118226860B (zh) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108227706A (zh) * | 2017-12-20 | 2018-06-29 | 北京理工华汇智能科技有限公司 | 机器人躲避动态障碍的方法及装置 |
CN114647248A (zh) * | 2022-05-23 | 2022-06-21 | 风林科技(深圳)有限公司 | 机器人避障方法、电子设备及可读存储介质 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11813753B2 (en) * | 2020-02-19 | 2023-11-14 | Fanuc Corporation | Collision avoidance motion planning method for industrial robot |
CN117073707A (zh) * | 2023-08-30 | 2023-11-17 | 重庆大学 | 一种基于预测碰撞时间地图的动态环境路径规划方法 |
CN117970925A (zh) * | 2023-12-29 | 2024-05-03 | 上海交大智邦科技有限公司 | 机器人实时避障与动态路径规划方法及系统 |
-
2024
- 2024-05-17 CN CN202410613739.3A patent/CN118226860B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108227706A (zh) * | 2017-12-20 | 2018-06-29 | 北京理工华汇智能科技有限公司 | 机器人躲避动态障碍的方法及装置 |
CN114647248A (zh) * | 2022-05-23 | 2022-06-21 | 风林科技(深圳)有限公司 | 机器人避障方法、电子设备及可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN118226860A (zh) | 2024-06-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111971574B (zh) | 用于自动驾驶车辆的lidar定位的基于深度学习的特征提取 | |
CN109782763B (zh) | 一种动态环境下的移动机器人路径规划方法 | |
US10802494B2 (en) | Method for motion planning for autonomous moving objects | |
JP7060625B2 (ja) | 自動運転車において3dcnnネットワークを用いてソリューション推断を行うlidar測位 | |
CN111771135B (zh) | 自动驾驶车辆中使用rnn和lstm进行时间平滑的lidar定位 | |
Petrich et al. | Map-based long term motion prediction for vehicles in traffic environments | |
CN111813101B (zh) | 机器人路径规划方法、装置、终端设备及存储介质 | |
JP2022160538A (ja) | 衝突検出方法、装置、電子機器、記憶媒体、自動運転車両及びコンピュータプログラム | |
CN111630460A (zh) | 自主移动装置的路径规划 | |
Babinec et al. | VFH* TDT (VFH* with Time Dependent Tree): A new laser rangefinder based obstacle avoidance method designed for environment with non-static obstacles | |
KR101585504B1 (ko) | 자율 이동 차량의 경로 생성 방법 및 경로 생성 장치 | |
CN106406320A (zh) | 机器人路径规划方法及规划路线的机器人 | |
US11300663B2 (en) | Method for predicting a motion of an object | |
Haj Darwish et al. | Using the Bees Algorithm for wheeled mobile robot path planning in an indoor dynamic environment | |
KR102303126B1 (ko) | 사용자 선호에 따른 강화학습 기반 자율주행 최적화 방법 및 시스템 | |
CN113110521A (zh) | 移动机器人路径规划控制方法及其控制装置、存储介质 | |
Potthast et al. | Active multi-view object recognition and online feature selection | |
CN114594772A (zh) | 机器人、路径规划方法、装置和存储介质 | |
Kumar et al. | An intelligent optimize path planner for efficient mobile robot path planning in a complex terrain | |
Liu et al. | SMART: Vision-based method of cooperative surveillance and tracking by multiple UAVs in the urban environment | |
CN118226860B (zh) | 机器人运动控制方法、装置、机器人和存储介质 | |
CN115908498A (zh) | 一种基于类别最优匹配的多目标跟踪方法及装置 | |
JP7459238B2 (ja) | ユーザ選好による強化学習基盤の自律走行最適化方法およびシステム | |
AL-Kafaf et al. | A three-phase decision making approach for self-adaptive systems using web services | |
Kumar et al. | A Robust Algorithm for Local Obstacle Avoidance |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |