1.本发明涉及机器人导航、计算机视觉、多机器人通讯等领域,具体涉及一种基于社交平台的多机器人动态环境搜索系统及方法。
背景技术:2.随着人工智能和机器人领域的快速发展,服务型机器人在人们的日常生活中变得常见,例如酒店中的机器人,可以帮助工作人员给客户及时配送日常生活用品或者餐食;家庭服务型机器人可以帮助搜索目标,查看房间状况等,实现智能家居的生活环境。为了实现机器人更加方便、智能的服务于使用者,首先需要建立人与机器人之间的交互模式,方便使用者对多机器人进行任务的分配和发布。其次,机器人在执行搜索任务的时候,还需要机器人能够根据自己所在的位置和对周围环境的感知进行自主导航和避障,提高目标搜素的效率。
3.当前人机交互的方式有很多,大多数采用网页窗口的形式实现人机交互,但是这种方法在实际应用并不能给用户带来很好的体验和方便。此外,当搜索空间中有多个机器人时,如何进行任务的分配和调度将会对执行任务的时间和效率带来很大的影响。最后,针对机器人对环境的搜索,要想实现快速、高效的搜索,需要给机器人限制一定的条件,如当前的研究者们大多使用先验知识,在机器人接收到任务后,根据先验知识推断目标对象或者目标搜索点可能存在的位置,然后进行搜索。但是这种先验知识具有一定的局限性,在真实场景下,由于人为的干预、物体的移动等变化,使得固定的先验知识的对动态场景下的泛化能力不强,因此如何解决动态场景下的高效、准确、有序的环境搜索仍是一个很重要的问题。
技术实现要素:4.本发明的目的是为克服已有技术的不足之处,提出一种基于社交平台的多机器人动态环境搜索系统及方法。本发明采用社交软件进行人机交互,采用多层次场景图谱解决动态场景下的环境变化,通过路径规划和任务分配实现高效、有序的多机器人环境搜索任务,通过交互将搜索的结果反馈给使用者,方便使用者对周围环境信息的及时掌握。
5.本发明实施例提出一种基于社交平台的多机器人动态环境搜索系统,包括:云端服务器、多机器人任务分配模块和多个机器人;所述云端服务器分别连接多机器人任务分配模块、每个机器人以及用户的移动终端设备,所述多机器人任务分配模块连接每个机器人;其中,所述移动终端设备上安装有社交软件,每个机器人分别拥有所述社交软件的对应账号;
6.所述云端服务器用于获取所述用户通过所述社交软件发布的搜索任务,将所述任务、地图信息和初始场景图谱发送给所述多机器人任务分配模块,所述云端服务器还用于接收所述机器人执行所述任务后采集的现场图像并通过所述社交软件发送给对应用户;
7.所述多机器人任务分配模块用于根据所述任务、所述地图信息和所述初始场景图
谱计算最优路径并将所述任务和所述最优路径发送给对应机器人执行,并接收所述机器人在执行所述任务过程中返回的实时信息用于更新所述初始场景图谱;
8.所述机器人用于根据所述最优路径执行所述任务,并将执行所述任务过程中的实时信息发送给所述多机器人任务分配模块;所述任务执行完毕后,所述机器人还用于采集现场图像并发送给所述云端服务器。
9.在本发明的一个具体实施例中,所述云端服务器包括:地图构建子模块,经验池子模块和人机交互子模块;
10.所述地图构建子模块用于存储所述任务所在搜索空间的地图信息并发送给所述多机器人任务分配模块;所述经验池子模块用于存储所述任务所在搜索空间的初始场景图谱并发送给所述多机器人任务分配模块;所述人机交互子模块用于通过所述社交软件从用户获取所述任务并发送给所述多机器人任务分配模块,然后通过所述社交软件从所述机器人获取所述任务执行完毕后的图像信息。
11.在本发明的一个具体实施例中,所述地图信息包括2d导航地图和3d语义地图;其中,
12.所述2d导航地图为一张栅格地图,所述栅格地图中包含所述搜索空间的多个导航点;
13.所述3d语义地图包括所述搜索空间中各静态物体及其中心点坐标。
14.在本发明的一个具体实施例中,所述多机器人任务分配模块包括:云端通讯子模块模块,任务分配子模块,记忆容器子模块,任务分配子模块和在线更新子模块;
15.所述云端通讯子模块用于接收所述人机交互子模块发送的任务,并获取所述地图构建子模块中的地图信息和所述经验池子模块中的初始场景图谱,然后将所述任务和所述地图信息发送给所述任务分配子模块,并根据请求将所述地图信息和所述初始场景图谱发送给所述记忆容器子模块;
16.所述记忆容器子模块用于根据从所述云端通讯子模块接收到的所述所述地图信息和所述初始场景图谱,生成多层次场景图谱并发送给所述任务分配子模块和所述在线更新子模块;所述记忆容器子模块还用于从所述在线更新子模块接收通过机器人执行所述任务后得到的更新后的多层次场景图谱,并根据所述更新后的多层次场景图谱提取相关信息然后通过所述云端通讯子模块发送给所述云端服务器的所述经验池子模块用于更新所述初始场景图谱;
17.所述任务分配子模块根据从所述云端通讯子模块接收到的所述任务、所述地图信息和从所述记忆容器子模块接收的所述多层次场景图谱,选择所述任务中待搜索目标对应的导航点,根据机器人的状态和位置坐标进行路径规划,选取执行任务的机器人及最优路径,然后将所述任务和所述最优路径发送给所述任务发布子模块;
18.所述任务发布子模块用于将所述任务和所述最优路径发送给对应的机器人;
19.所述在线更新子模块用于根据所述机器人执行任务过程中传送的视觉信息实时的在线更新所述多层次场景图谱,并将更新后的所述多层次场景图谱发送给所述记忆容器子模块。
20.在本发明的一个具体实施例中,所述多层次场景图谱生成方法如下:
21.1)记忆容器子模块接收到地图信息和初始场景图谱后,根据3d语义地图得到搜索
空间中存在的静态物体,从初始场景图谱中选出该静态物体以及与该静态物体有关的其他动态物体的语义关系,得到搜索空间下物体和物体之间的关系图谱;
22.2)根据3d语义地图中静态物体的中心坐标点,从2d导航地图中的所有导航点中找到与静态物体中心坐标点距离最近的导航点,在所述导航点上更新静态物体的信息,生成导航点和物体之间的关系图谱即为多层次场景图;
23.3)所述搜索空间下物体和物体之间的关系图谱与所述航点和物体之间的关系图谱构成多层次场景图谱。
24.在本发明的一个具体实施例中,所述选取执行任务的机器人及最优路径的方法如下:
25.1)任务分配子模块根据搜索任务的目标从多层次场景图谱中选择导航点,具体如下:
26.1-1)如果目标是多层次场景图谱中已经存在的静态物体,则任务分配子模块从多层次场景图谱中输出与该静态物体中心点最近的可导航点;如果目标是多层次场景图谱中已经存在的半动态物体,则任务分配子模块从多层次场景图谱中输出与该半动态物体相关的可导航点或者静态物体周围的可导航点;其中可导航点是指靠近物体周围的机器人可以到达的导航点;
27.然后进入步骤2);
28.1-2)如果在多层次场景图谱中没有所述目标,则记忆容器子模块通过云端通讯子模块向云端服务器请求数据,云端服务器输出可能与目标有关系的所有物体和导航点然后发送给记忆容器子模块用于更新多层次场景图谱,然后再次执行步骤1-1);
29.2)根据机器人当前的状态和位置坐标进行路径规划,具体步骤如下:
30.2-1)若当前任务为非定向任务,则根据机器人的当前状态从多机器人中选择处于等待态的机器人作为可执行任务的机器人获取可执行任务的机器人当前的位置坐标;其中,所述等待态表示机器人没有搜索任务,处于停止或者巡逻状态;
31.若当前任务为定向任务,则将该任务指定的机器人作为作为可执行任务的机器人;
32.获取可执行任务的机器人的当前位置坐标;
33.2-2)当任务中只有一个搜索目标时,根据可执行任务的机器人的当前位置坐标,选择距离搜索目标点最近的可执行任务的机器人执行该搜索任务;
34.当任务中有多个搜索目标时,采用路径长度加权方法对所有可能的路径进行计算,得到最终的执行任务的机器人选取结果及最优路径规划结果。
35.在本发明的一个具体实施例中,所述路径长度加权方法,包括:
36.记任务中一共有n个搜索目标,共有k个可执行任务的机器人,则n个搜索目标对应的导航点分配给k个机器人一种有nk种方案;
37.对于任一方案,机器人的路径长度加权计算表达式如下:
[0038][0039]
其中,k代表第k个可执行任务的机器人,该机器人被分配的所有导航点一共有nk种排列方式,li代表机器人从上一个导航点下一个导航点之间的距离,rel(t,si)表示目标对象和静态物体之间的关系值,p(t)表示导航点上存在与目标有关系的物体个数,α和β代表相关系数;
[0040]
则该方案下,k个机器人的路径长度加权值的总和为:
[0041][0042]
根据wpl值最小的方案得到最终的执行任务的机器人选取结果及最优路径规划结果。
[0043]
本发明实施例还提出一种上述系统的动态环境下多机器人的环境搜索方法,包括:
[0044]
1)云端服务器中的人机交互子模块接收用户通社交软件发送的任务;
[0045]
2)多机器人任务分配模块从人机交互子模块获取任务,从经验池子模块获取初始场景图谱,从地图构建子模块获取2d导航地图和3d语义地图;
[0046]
3)云端通讯子模块将任务、初始场景图谱、2d导航地图、3d语义地图发送给任务分配子模块;
[0047]
4)记忆容器子模块向云端通讯子模块请求数据,得到初始场景图谱、2d导航地图、3d语义地图;根据3d语义地图得到搜索空间中存在的静态物体和导航点,从初始场景图谱中选出搜索空间下存在的静态物体以及与静态物体有关的其他动态物体的语义关系,得到搜索空间下物体和物体之间的关系图谱,并在导航点上更新静态物体的信息,最终生成多层次场景图谱;
[0048]
5)基于多层次场景图谱,任务分配子模块根据任务的目标点和机器人的状态信息进行路径规划,得到执行任务的机器人及执行任务的最优路径的选取结果,并将最优路径通过任务发布子模块送给对应的机器人;
[0049]
6)机器人在接收到任务后,根据最优路径中的导航点进行自主导航;机器人在搜索到目标后,实时采集现场图像并利用自身的社交软件账号通过人机交互子模块发送到用户的社交软件账号上;
[0050]
7)机器人在执行任务过程中将采集到的视觉信息发送给在线更新子模块,以更新多层次场景图谱。
[0051]
本发明的特点及有益效果在于:
[0052]
1)现有的技术通常采用网页端或者app的形式与机器人进行交互,很少有采用社交软件如微信客户端的形式实现用户与机器人之间的通信。本发明采用社交软件进行人机交互,由于社交软件在人们的日常生活中的通信占据着非常重要的作用,所以采用社交软件的方式给使用者带来了极大的便利。
[0053]
2)为了解决对多机器人的任务分配,本发明为每一个机器人分配一个专属社交软件账号,可通过例如微信群聊实现多目标任务的分配和调度;此外,通过私聊或者群功能中的@操作,还可以实现与机器人之间的专线通信,给特定机器人分配特定的专属任务,操作灵活,易于实现。
[0054]
3)本发明提出采用在线更新多层次场景图谱的方法,其多层次场景图谱包含搜索
空间下物体和物体之间的关系图谱以及搜索空间下的导航点和物体之间的关系图谱。机器人在环境搜索或者巡逻过程中通过对现场环境的感知在线更新物体与导航点之间的关系和物体与物体之间的关系值,由此实现长期目标搜索下的信息更新。
附图说明
[0055]
图1是本发明实施例的一种基于社交平台的多机器人动态环境搜索系统的结构示意图。
[0056]
图2是本发明一个具体实施例的云端服务器模块结构示意图。
[0057]
图3是本发明一个具体实施例的多机器人任务分配模块结构示意图。
[0058]
图4是本发明一个具体实施例的多层次场景图谱示意图。
[0059]
图5是本发明一个实施例的机器人五个状态的关系图。
[0060]
图6是本发明一个实施例的动态环境下多机器人的环境搜索方法流程图。
具体实施方式
[0061]
本发明实施例提出一种基于社交平台的多机器人动态环境搜索系统及方法,下面结合附图和具体实施方式对本发明作进一步详细的说明。
[0062]
本发明实施例提出一种基于社交平台的多机器人动态环境搜索系统,结构如图1所示,包括云端服务器、多机器人任务分配模块和多个机器人。所述云端服务器分别连接多机器人任务分配模块、每个机器人以及用户的移动终端设备,所述多机器人任务分配模块连接每个机器人;其中,所述移动终端设备上安装有社交软件,每个机器人分别拥有所述社交软件的对应账号。
[0063]
所述云端服务器用于获取所述用户通过所述社交软件发布的搜索任务(以下简称任务),将所述任务以及与所述任务相关的地图和场景图谱发送给所述多机器人任务分配模块,所述云端服务器还用于接收所述机器人执行所述任务后采集的现场图像并通过所述社交软件发送给对应用户。
[0064]
所述多机器人任务分配模块用于根据所述任务计算最优路径并将所述任务和最优路径发送给对应机器人执行,并接收所述机器人在执行所述任务过程中返回的实时信息用于更新场景图谱。需要说明的是,本实施例中,所述任务分为定向任务和非定向任务。所述定向任务为用户指定特定机器人完成的任务,当多机器人任务分配模块接收到定向指任务时,多机器人任务分配模块根据执行该任务的机器人计算该任务的最优路径然后发送给对应机器人。所述非定向任务为用户不指定机器人完成的任务,当多机器人任务分配模块接收到非定向指任务时,多机器人任务分配模块通过计算得到执行该任务的最优路径及最优机器人,然后将该任务发送给这些最优机器人。
[0065]
所述机器人用于根据所述最优路径执行所述任务,并将执行所述任务过程中的实时信息发送给所述多机器人任务分配模块;任务执行完毕后,所述机器人还用于采集现场图像并发送给所述云端服务器。在本发明的一个具体实施例中,机器人根据目标导航点进行自主导航,并采用yolov5实现在自主导航过程中对物体的识别和避障。
[0066]
进一步地,所述社交软件可为任一社交软件。在本发明的一个具体实施例中,所述社交软件采用微信。本实施例为每一个机器人分配一个专属微信账号,可通过例如微信群
聊实现多目标任务的分配和调度;此外,通过私聊或者群功能中的@操作,还可以实现与机器人之间的专线通信,给特定机器人分配特定的专属任务。
[0067]
进一步地,所述云端服务器结构如图2所示,包括:地图构建子模块,经验池子模块和人机交互子模块,三个子模块分别分别连接多机器人任务分配模块,所述人机交互子模块还连接每个机器人和用户的移动终端设备。所述地图构建子模块用于存储执行任务所在搜索空间的的2d导航地图和3d语义地图。所述经验池子模块用于存储执行任务所在搜索空间的初始场景图谱。所述人机交互子模块通过社交软件实现用户和机器人之间的信息交互,所述人机交互子模块用于通过社交软件从用户获取任务并发送给所述多机器人任务分配模块,然后通过社交软件从机器人获取任务执行完毕后的图像信息。
[0068]
需要说明的是,在执行任务之前,所述经验池子模块存储的是初始场景图谱。在本发明的一个具体实施例中,所述初始场景图谱由视觉基因组数据集(visual genome)生成,主要包括现实场景中基本常见的物体关系,如笔记本电脑经常出现在办公桌上,但是笔记本电脑不会出现在厨房的水池旁,所以笔记本电脑和桌子的关系值将会大于笔记本电脑与水池的关系值。机器人开始执行任务后,所述初始场景图谱会进行相应更新。
[0069]
在本发明的一个具体实施例中,所述人机交互子模块使用微信平台实现人机交互:每个机器人分配专属微信号,用户可以通过微信群对多机器人进行控制、任务的分配和调度,或者通过私聊或者群功能中的@操作实现与机器人之间的专线通信,给特定机器人分配特定的专属任务。用户通过移动终端设备上的微信客户端发布任务,其中用户可以通过微信群指定专属机器人完成特定的搜索任务,也可以同时发布多个任务目标,之后由多机器人任务分配模块主分配和调度机器人。所述人机交互子模块通过基于传输控制协议(tcp)的套接字(socket)与用户移动终端设备中的微信端进行通信,同时通过地图构建子模块和经验池子模块来构建和存储地图信息和先验知识,并利用传输控制协议(tcp)的套接字(socket)将信息传输给多机器人任务分配模块。
[0070]
在本发明的一个具体实施例中,所述2d导航地图和3d语义地图构建方法如下:
[0071]
1)2d导航地图的构建
[0072]
利用机器人携带的激光雷达对待搜索的室内场景建立初始2d导航地图,然后根据生成的初始2d导航地图和机器人自身的体积对导航地图进行栅格化,生成栅格图作为最终的2d导航地图并存储在地图构建子模块中,所述栅格图中包含多个导航点,本发明一个具体实施例中,栅格图中相邻两个导航点之间的距离为0.25m。
[0073]
具体栅格化的过程如下:机器人从导航地图上的起始点坐标开始进行搜索,如果机器人从当前位置出发,依次向前(或者向后、向左、向右)移动0.25m后未有障碍物存在,则移动后的点记为可导航点。对于边缘可导航点,由于机身存在一定的占地面积(假设机身的半径为0.20m),为了在实际运行中不发生碰撞,则需要考虑在边缘点的移动距离为0.20m。
[0074]
2)3d语义地图的构建:
[0075]
首先根据待搜索空间下物体存在的状态将物体分为三类:
[0076]
·
静态物体:房间中大型且不易移动位置的物体称为静态物体,例如:冰箱是厨房场景的静态物体,床是卧室的静态物体。
[0077]
·
半动态物体:在搜索的过程中是静态的,但是其位置容易被改变。例如:苹果、杯子。
[0078]
·
动态物体:物体的位置很容易变化,即使在搜索的过程中也可能会发生变化。例如移动的人和移动的宠物狗。
[0079]
由于半动态物体和动态物体在搜索空间中很容易发生位置的变化,因此本实施例仅仅针对静态物体建立3d语义地图,具体方法如下:
[0080]
在每个房间的中间和每个走廊的中间各选择两个点作为采样点并进行采样,记录采样点在导航地图中的位置,机器人在每个采样点上每旋转18
°
则拍摄一张rgb-d图,获得局部的点云信息;然后机器人将收集到的采样点的坐标位置和局部点云信息上传到云端服务器,云端服务器根据坐标位置和局部点云信息生成待搜索空间上的全局3d语义地图并存储在地图构建子模块中;最后机器人根据生成的语义地图获得不同静态物体相对于全局空间上的中心坐标点。
[0081]
进一步地,所述多机器人任务分配模块结构如图3所示,包括:云端通讯子模块模块,任务分配子模块,记忆容器子模块,任务分配子模块和在线更新子模块;
[0082]
所述云端通讯子模块用于接收云端服务器中的人机交互子模块发送的任务,并获取地图构建子模块中的地图信息和经验池子模块中的初始场景图谱,然后将任务信息和地图信息发送给任务分配子模块,并根据请求将地图信息和初始场景图谱发送给所述记忆容器子模块;
[0083]
所述记忆容器子模块用于根据从云端通讯子模块接收到的地图信息和场景图谱,生成多层次场景图谱并发送给任务分配子模块和在线更新子模块,为任务分配子模块提供先验知识,实现快速、有效的环境搜索;记忆容器子模块还用于接收从在线更新子模块获得的通过机器人执行任务后得到的更新后的多层次场景图谱,并根据更新后的多层次场景图谱提取相关信息然后通过云端通讯子模块发送给云端服务器的经验池子模块用于更新初始场景图谱。
[0084]
所述任务分配子模块根据从云端通讯子模块接收的任务、地图信息和从记忆容器子模块接收的多层次场景图谱,选择任务中待搜索目标对应的可导航点,然后根据机器人的状态和位置坐标进行路径规划,选取执行任务的机器人及该机器人执行所述任务的最优路径,将所述任务和和所述机器人及最优路径的选取结果发送给任务发布子模块。
[0085]
所述任务发布子模块用于将从任务分配子模块接收的最优路径和任务发送给对应的机器人;
[0086]
所述在线更新子模块用于根据机器人执行任务过程中传送的视觉信息实时的在线更新多层次场景图谱以记录动态场景中的变化,并将更新后的多层次场景图谱发送给记忆容器子模块。
[0087]
需要说明的是,本发明一个具体实施例中,所述多层次场景图谱如图4所示,包括:一部分是搜索空间下物体和物体之间的关系图谱,其中每一个圆圈代表不同的物体,圆圈之间的连线代表两个物体之间存在关系,并记录关系值;另一部分是搜索空间下的导航点和物体之间的关系图谱,导航点和物体之间的连线代表在该导航点与物体之间存在关系,具体生成方法如下:
[0088]
1)记忆容器子模块接收到3d语义地图和初始场景图谱后,根据3d语义地图得到实际搜索空间中存在的静态物体,从初始场景图谱中选出在实际搜索空间中存在的静态物体以及与静态物体有关的其他动态物体的语义关系,得到搜索空间下物体和物体之间的关系
图谱。
[0089]
2)根据3d语义地图中静态物体的中心坐标点,从2d导航地图中的所有导航点中找到与静态物体中心坐标点距离最近的可导航点,然后在这些导航点上更新静态物体的信息,生成导航点和物体之间的关系图谱
[0090]
3)所述搜索空间下物体和物体之间的关系图谱与所述航点和物体之间的关系图谱构成多层次场景图谱。。
[0091]
在本发明的一个具体实施例中,所述任务分配子模块用于机器人的路径规划,根据从云端通讯子模块接收的搜索目标、地图信息和从记忆容器子模块接收的多层次场景图谱,选择目标搜索的可导航点,然后根据机器人的状态和位置坐标进行路径规划,选出最优规划路径搜索,具体实现过程如下:
[0092]
1)任务分配子模块根据搜搜任务的目标从多层次场景图谱选择导航点,,具体过程如下:
[0093]
1-1)如果目标是多层次场景图谱中已经存在的静态物体,则从多层次场景图谱中输出与该静态物体中心点最近的可导航点;如果目标是多层次场景图谱中已经存在的半动态物体,则从多层次场景图谱中输出与该半动态物体相关的可导航点或者静态物体周围的可导航点。其中可导航点是指靠近物体周围的机器人可以到达的导航点。
[0094]
其中,本发明实施例中静态物体和动态物体的定义如下:
[0095]
·
静态物体:房间中大型且不易移动位置的物体称为静态物体,例如,冰箱是厨房场景的静态物体,床是卧室的静态物体。
[0096]
·
半动态物体:在搜索的过程中是静态的,但是其位置容易被改变。例如苹果,杯子。根据生活经验半动态物体经常出现在静态物体的附近。
[0097]
·
动态物体:物体的位置很容易变化,即使在搜索的过程中也可能会发生变化。例如移动的人,和移动的宠物狗。
[0098]
然后进入步骤2)
[0099]
1-2)如果在多层次场景图谱中没有该搜索目标,则记忆容器子模块通过云端通讯子模块向云端服务器请求数据,云端服务器输出可能与搜索目标有关系的所有物体和导航点然后发送数据给多机器人任务分配模块,然后在记忆容器子模块中更新多层次场景图谱,并再次执行步骤1)。
[0100]
2)根据机器人当前的状态和位置坐标进行路径规划,具体方法如下:
[0101]
为方便机器人后续任务的分配和执行,将机器人按照状态分为五类,各个状态之间的关系如图3所示:
[0102]
等待态:机器人没有搜索任务,处于停止或者巡逻状态。
[0103]
执行态:机器人有一个搜索目标,并且还未找到该搜索目标。
[0104]
暂停态:机器人可由用户干预,从执行态进入到此状态;进入到暂停态,机器人可以恢复执行态,也可以直接终止本次任务。
[0105]
结束态:清空本次运行期间的任务目标(也可以重新移动到指定坐标待命),然后进入等待态。
[0106]
完成态:机器人正常寻找到目标进入的状态,在本状态下,发送寻找成功的信息并保存结果,然后进入结束态。
[0107]
2-1)若当前任务为非定向任务,则根据机器人的当前状态从多机器人中选择处于等待态的机器人作为可执行任务的机器人获取可执行任务的机器人当前的位置坐标;若当前任务为定向任务,则将该任务指定的机器人作为作为可执行任务的机器人。
[0108]
获取可执行任务的机器人当前的位置坐标。
[0109]
2-2)当任务中只有一个搜索目标点时,根据可执行任务的机器人的当前位置坐标,选择距离搜索目标点最近的可执行任务的机器人执行该搜索任务。当任务中有多个搜索目标点时,需要对寻找的路径长度与发现物体的概率进行权衡,采用路径长度加权的方法,对所有可能的路径进行计算,得到最终的任务分配。假设任务中一共有n个需要搜索的目标点,有k个可执行任务的机器人,则n个目标对应的导航点分配给k个机器人一种有nk种情况,对于每一种分配方案,机器人的路径长度加权公式如下:
[0110][0111]
其中k代表第k个可执行任务的机器人,针对k号机器人被分配的所有导航点一共有nk种排列方式,li代表机器人从上一个导航点下一个导航点之间的距离,rel(t,si)表示目标和静态物体之间的关系值,p(t)表示导航点上存在与目标对象有关系的物体个数(包括目标对象),α和β代表相关系数,2i的主要目的是降低排序靠后的导航点对wpl的影响。则该方案下,k个机器人的路径长度加权值的总和为:
[0112][0113]
最终选择wpl值最小的方案。
[0114]
3)根据步骤2)中规划的路径对机器人进行任务的分配,通过任务发布子模块将搜索目标点发送给对应的机器人去执行。本实施例中,任务发布子模块也采用人机交互模块中消息队列遥测传输(mqtt)的方式实现各个进程之间的通信。
[0115]
本发明一个具体实施例中,所述在线更新子模块用于在线更新多层次场景图谱,机器人在环境搜索或者巡逻过程中在线更新记忆容器中物体与导航点之间的关系和物体与物体之间的关系值。当在导航点观察到新的物体时,则在该导航点上记录下新增的物体id号,并从云端请求数据,获取经验池子模块中与新增物体相关的其他物体和关系值以更新多层次场景图谱,然后发送给记忆容器子模块;当机器人在导航点的视角中没有观察到已经存储在导航点中的物体,则在线更新子模块在当前多层次场景图谱中删除该导航点与物体之间的关系,以更新多层次场景图谱,然后发送给记忆容器子模块;由此实现长期环境搜索下的信息更新。
[0116]
进一步地,所述机器人在接收到多机器人任务分配模块中的任务发布子模块发送的最优规划路径和任务后,进行自主导航和避障,直到到达搜索目标点,完成任务,;此外,机器人在执行任务的过程中不断收集第一视角下的视觉信息,并将信息反馈给多机器人任务分配模块中的在线更新子模块,在线更新子模块在接收到反馈信息后在线更新多层次场景图谱,为下一次搜索任务提供实时的动态信息。同时机器人在完成任务后,将当前视角下的视觉信息通过机器人自身的微信账号通过云端服务器的人机交互子模块与用户的微信端进行交流。
[0117]
进一步地,本实施例提出一种基于上述系统的动态环境下多机器人的环境搜索方法,整体流程如图6所示,包括以下步骤:
[0118]
1)云端服务器中的人机交互子模块接收用户通社交软件(本实施例为微信)发送的任务;
[0119]
2)多机器人任务分配模块从人机交互子模块获取任务,从经验池子模块获取初始场景图谱,从地图构建子模块获取2d导航地图和3d;
[0120]
3)云端通讯子模块将任务、初始场景图谱、2d导航地图、3d语义地图传送给任务分配子模块;
[0121]
4)记忆容器子模块向云端通讯子模块请求数据,得到初始场景图谱、2d导航地图、3d语义地图;根据3d语义地图得到实际搜索空间中存在的静态物体和导航点,然后从初始场景图谱中选出实际搜索空间中存在的静态物体以及与静态物体有关的其他动态物体的语义关系,得到搜索空间下物体和物体之间的关系图谱,并在导航点上更新静态物体的信息,最终生成多层次场景图谱。
[0122]
5)基于多层次场景图谱,任务分配子模块根据任务的目标点和机器人的状态信息进行路径规划,得到执行任务的机器人及执行任务的最优路径规划结果,并将该结果通过任务发布子模块送给对应的机器人。
[0123]
6)机器人在接收到任务后,根据最优路径中的导航点进行自主导航,在自主导航过程中对物体的识别和避障。机器人在搜索到目标后,实时采集现场图像并利用自身的社交软件账号通过云端服务器的人机交互子模块发送到用户的社交软件账号上。
[0124]
7)机器人在执行任务过程中将采集到的视觉信息发送给在线更新子模块,以更新多层次场景图谱。
技术特征:1.一种基于社交平台的多机器人动态环境搜索系统,其特征在于,包括:云端服务器、多机器人任务分配模块和多个机器人;所述云端服务器分别连接多机器人任务分配模块、每个机器人以及用户的移动终端设备,所述多机器人任务分配模块连接每个机器人;其中,所述移动终端设备上安装有社交软件,每个机器人分别拥有所述社交软件的对应账号;所述云端服务器用于获取所述用户通过所述社交软件发布的搜索任务,将所述任务、地图信息和初始场景图谱发送给所述多机器人任务分配模块,所述云端服务器还用于接收所述机器人执行所述任务后采集的现场图像并通过所述社交软件发送给对应用户;所述多机器人任务分配模块用于根据所述任务、所述地图信息和所述初始场景图谱计算最优路径并将所述任务和所述最优路径发送给对应机器人执行,并接收所述机器人在执行所述任务过程中返回的实时信息用于更新所述初始场景图谱;所述机器人用于根据所述最优路径执行所述任务,并将执行所述任务过程中的实时信息发送给所述多机器人任务分配模块;所述任务执行完毕后,所述机器人还用于采集现场图像并发送给所述云端服务器。2.根据权利要求1所述的系统,其特征在于,所述云端服务器包括:地图构建子模块,经验池子模块和人机交互子模块;所述地图构建子模块用于存储所述任务所在搜索空间的地图信息并发送给所述多机器人任务分配模块;所述经验池子模块用于存储所述任务所在搜索空间的初始场景图谱并发送给所述多机器人任务分配模块;所述人机交互子模块用于通过所述社交软件从用户获取所述任务并发送给所述多机器人任务分配模块,然后通过所述社交软件从所述机器人获取所述任务执行完毕后的图像信息。3.根据权利要求2所述的系统,其特征在于,所述地图信息包括2d导航地图和3d语义地图;其中,所述2d导航地图为一张栅格地图,所述栅格地图中包含所述搜索空间的多个导航点;所述3d语义地图包括所述搜索空间中各静态物体及其中心点坐标。4.根据权利要求3所述的系统,其特征在于,所述多机器人任务分配模块包括:云端通讯子模块模块,任务分配子模块,记忆容器子模块,任务分配子模块和在线更新子模块;所述云端通讯子模块用于接收所述人机交互子模块发送的任务,并获取所述地图构建子模块中的地图信息和所述经验池子模块中的初始场景图谱,然后将所述任务和所述地图信息发送给所述任务分配子模块,并根据请求将所述地图信息和所述初始场景图谱发送给所述记忆容器子模块;所述记忆容器子模块用于根据从所述云端通讯子模块接收到的所述所述地图信息和所述初始场景图谱,生成多层次场景图谱并发送给所述任务分配子模块和所述在线更新子模块;所述记忆容器子模块还用于从所述在线更新子模块接收通过机器人执行所述任务后得到的更新后的多层次场景图谱,并根据所述更新后的多层次场景图谱提取相关信息然后通过所述云端通讯子模块发送给所述云端服务器的所述经验池子模块用于更新所述初始场景图谱;所述任务分配子模块根据从所述云端通讯子模块接收到的所述任务、所述地图信息和从所述记忆容器子模块接收的所述多层次场景图谱,选择所述任务中待搜索目标对应的导航点,根据机器人的状态和位置坐标进行路径规划,选取执行任务的机器人及最优路径,然
后将所述任务和所述最优路径发送给所述任务发布子模块;所述任务发布子模块用于将所述任务和所述最优路径发送给对应的机器人;所述在线更新子模块用于根据所述机器人执行任务过程中传送的视觉信息实时的在线更新所述多层次场景图谱,并将更新后的所述多层次场景图谱发送给所述记忆容器子模块。5.根据权利要求4所述的系统,其特征在于,所述多层次场景图谱生成方法如下:1)记忆容器子模块接收到地图信息和初始场景图谱后,根据3d语义地图得到搜索空间中存在的静态物体,从初始场景图谱中选出该静态物体以及与该静态物体有关的其他动态物体的语义关系,得到搜索空间下物体和物体之间的关系图谱;2)根据3d语义地图中静态物体的中心坐标点,从2d导航地图中的所有导航点中找到与静态物体中心坐标点距离最近的导航点,在所述导航点上更新静态物体的信息,生成导航点和物体之间的关系图谱即为多层次场景图;3)所述搜索空间下物体和物体之间的关系图谱与所述航点和物体之间的关系图谱构成多层次场景图谱。6.根据权利要求4所述的系统,其特征在于,所述选取执行任务的机器人及最优路径的方法如下:1)任务分配子模块根据搜索任务的目标从多层次场景图谱中选择导航点,具体如下:1-1)如果目标是多层次场景图谱中已经存在的静态物体,则任务分配子模块从多层次场景图谱中输出与该静态物体中心点最近的可导航点;如果目标是多层次场景图谱中已经存在的半动态物体,则任务分配子模块从多层次场景图谱中输出与该半动态物体相关的可导航点或者静态物体周围的可导航点;其中可导航点是指靠近物体周围的机器人可以到达的导航点;然后进入步骤2);1-2)如果在多层次场景图谱中没有所述目标,则记忆容器子模块通过云端通讯子模块向云端服务器请求数据,云端服务器输出可能与目标有关系的所有物体和导航点然后发送给记忆容器子模块用于更新多层次场景图谱,然后再次执行步骤1-1);2)根据机器人当前的状态和位置坐标进行路径规划,具体步骤如下:2-1)若当前任务为非定向任务,则根据机器人的当前状态从多机器人中选择处于等待态的机器人作为可执行任务的机器人获取可执行任务的机器人当前的位置坐标;其中,所述等待态表示机器人没有搜索任务,处于停止或者巡逻状态;若当前任务为定向任务,则将该任务指定的机器人作为作为可执行任务的机器人;获取可执行任务的机器人的当前位置坐标;2-2)当任务中只有一个搜索目标时,根据可执行任务的机器人的当前位置坐标,选择距离搜索目标点最近的可执行任务的机器人执行该搜索任务;当任务中有多个搜索目标时,采用路径长度加权方法对所有可能的路径进行计算,得到最终的执行任务的机器人选取结果及最优路径规划结果。7.根据权利要求4所述的系统,其特征在于,所述路径长度加权方法,包括:记任务中一共有n个搜索目标,共有k个可执行任务的机器人,则n个搜索目标对应的导航点分配给k个机器人一种有n
k
种方案;
对于任一方案,机器人的路径长度加权计算表达式如下:其中,k代表第k个可执行任务的机器人,该机器人被分配的所有导航点一共有n
k
种排列方式,li代表机器人从上一个导航点下一个导航点之间的距离,rel(t,s
i
)表示目标对象和静态物体之间的关系值,p(t)表示导航点上存在与目标有关系的物体个数,α和β代表相关系数;则该方案下,k个机器人的路径长度加权值的总和为:根据wpl值最小的方案得到最终的执行任务的机器人选取结果及最优路径规划结果。8.一种基于如权利要求4-7任一项所述系统的动态环境下多机器人的环境搜索方法,其特征在于,包括:1)云端服务器中的人机交互子模块接收用户通社交软件发送的任务;2)多机器人任务分配模块从人机交互子模块获取任务,从经验池子模块获取初始场景图谱,从地图构建子模块获取2d导航地图和3d语义地图;3)云端通讯子模块将任务、初始场景图谱、2d导航地图、3d语义地图发送给任务分配子模块;4)记忆容器子模块向云端通讯子模块请求数据,得到初始场景图谱、2d导航地图、3d语义地图;根据3d语义地图得到搜索空间中存在的静态物体和导航点,从初始场景图谱中选出搜索空间下存在的静态物体以及与静态物体有关的其他动态物体的语义关系,得到搜索空间下物体和物体之间的关系图谱,并在导航点上更新静态物体的信息,最终生成多层次场景图谱;5)基于多层次场景图谱,任务分配子模块根据任务的目标点和机器人的状态信息进行路径规划,得到执行任务的机器人及执行任务的最优路径的选取结果,并将最优路径通过任务发布子模块送给对应的机器人;6)机器人在接收到任务后,根据最优路径中的导航点进行自主导航;机器人在搜索到目标后,实时采集现场图像并利用自身的社交软件账号通过人机交互子模块发送到用户的社交软件账号上;7)机器人在执行任务过程中将采集到的视觉信息发送给在线更新子模块,以更新多层次场景图谱。
技术总结本发明提出一种基于社交平台的多机器人动态环境搜索系统及方法,涉及机器人导航、计算机视觉、多机器人通讯等领域。其中所述系统包括云端服务器、多机器人任务分配模块和多个机器人;所述云端服务器分别连接多机器人任务分配模块、每个机器人以及用户的移动终端设备,所述多机器人任务分配模块连接每个机器人;其中,所述移动终端设备上安装有社交软件,每个机器人分别拥有所述社交软件的对应账号。本发明采用社交软件进行人机交互,采用多层次场景图谱解决动态场景下的环境变化,通过路径规划和任务分配实现高效、有序的多机器人环境搜索任务,通过交互将搜索的结果反馈给使用者,方便使用者对周围环境信息的及时掌握。方便使用者对周围环境信息的及时掌握。方便使用者对周围环境信息的及时掌握。
技术研发人员:刘华平 梁兰军 卞港晖 袁小虎 赵怀林
受保护的技术使用者:清华大学
技术研发日:2022.03.28
技术公布日:2022/7/5