本发明涉及服务机器人任务规划与执行的技术领域,尤其是一种办公室内物品递送机器人任务规划与执行装置及方法。
背景技术:
随着服务机器人地快速发展,服务机器人开始广泛运用到各种服务场所,其中小型的移动服务机器人因其体积小、功能丰富、使用方便、市场巨大、成本较低等优势得到了迅速地发展和应用。在诸如博物馆、家庭等领域,移动服务机器人可以完成诸如递送茶水、搬运文件、运送物品等丰富的功能。小型的移动服务机器人在特定应用场景中具有不同的任务规划需求,应用在办公室内,人们需要传递的物品通常具有体积较小、传递较频繁、且任务轻重缓急的程度不同的特点,如果机器人不具备任务规划的能力,会导致任务执行效率低下。
任务规划技术是移动服务机器人作业的核心技术。任务规划是指生成一系列有序的行为指令使机器人完成指定的任务目标,任务规划在一定程度上标志着机器人的智能水平,要想机器人实现运用于真实的服务场所,机器人必须具备任务规划的能力。
技术实现要素:
发明目的:为解决上述技术问题,提供一种符合办公室物品传递需求,且具有任务规划能力的移动机器人任务规划方案,本发明提出一种办公室内物品递送机器人任务规划与执行装置及方法。
技术方案:为实现上述技术效果,本发明提出的技术方案为:
一种办公室内物品递送机器人任务规划与执行装置,包括:客户端设备、室内视觉传感器、服务器和移动机器人;其中,
客户端设备分别与室内视觉传感器、服务器和移动机器人通过无线网络交互,包括:向服务器发布任务、设定任务相关参数;接收并显示室内视觉传感器、服务器和移动机器人反馈的运行状态信息;运行状态包括:移动机器人空闲、使用中和故障信息以及服务器执行任务的进程、任务执行是否成功的状态信息;任务相关参数包括发布任务的用户的位置信息、图像信息、待递送物品的目的地位置信息;
室内视觉传感器用于采集环境信息并输出给服务器,环境信息包括移动机器人的位置信息、位姿信息和充电区位置信息;
服务器包括:更新监测器、信息存储器、任务管理器、规划求解器、封装器和派遣器;
信息存储器通过更新监测器分别与室内视觉传感器和客户端设备交互,用于存储客户端设备发送的任务相关参数和室内视觉传感器采集到的环境信息,并为服务器中的其他模块以及移动机器人提供访问、更新、删除和插入的接口;
更新监测器监测是否有来自信息存储器的数据更新请求,当接收到数据更新请求时,通知室内视觉传感器进行环境信息采集以及通过客户端设备通知用户进行任务相关参数设置,并将接收到的数据上传信息存储器保存;
任务管理器接收客户端发布的任务,将任务转换为规划求解器所支持的标准输入格式并将标准输入格式的任务发送给规划求解器;
规划求解器根据环境信息对接收到的任务进行规划求解,生成任务规划结果Plan,并将任务规划结果Plan发送给封装器;
封装器对接收到的规划结果Plan进行解析处理,将其封装成一个执行指令序列集合并发送给派遣器,执行指令序列集合中顺序存储了完成相应任务每一步行为动作的执行指令;
派遣器按照执行指令序列集合中行为动作的执行顺序依次向移动机器人的控制器派遣执行指令,并接收移动机器人执行完成的反馈结果,如果在预设的时间段内接收到反馈结果,则判定当前执行指令执行成功,继续派遣下一个执行指令,直到执行指令序列集合为空;如果在预设的时间段内未接收到反馈结果,则向客户端设备反馈当前执行指令执行失败的状态信息;
移动机器人包括执行单元和控制器;控制器为嵌入式开发平台Beaglebone Black;执行单元包括识别模块、跟踪模块、导航模块、定位模块和条件等待模块;控制器根据派遣器派遣的执行指令调用相应模块完成与执行指令对应的行为动作,并向派遣器反馈行为动作是否执行成功的执行结果信息。
进一步的,所述服务器为64位的计算机。
进一步的,所述信息存储器为非关系数据库Mongo DB。
进一步的,所述室内视觉传感器为kinect摄像头传感器。
本发明还提出一种利用上述办公室内物品递送机器人任务规划与执行装置实现的办公室内物品递送机器人任务规划与执行方法,该方法包括步骤:
(1)客户端上安装向用户提供人机交互界面的应用程序;客户端利用无线方式接入室内视觉传感器、服务器和移动机器人所在的局域网并搜索到局域网内的服务器;用户通过客户端人机交互界面,选定相应的递送任务并为任务设定优先级,将任务通过局域网下发给服务器;
(2)任务管理器接收客户端下发的任务并将接收到的任务放入任务缓冲池中;任务管理器从任务缓冲池中选取一个当前优先级最高的任务,进行预处理和具象化,将其转换为规划求解器所支持的标准输入格式并将标准输入格式的任务发送给规划求解器;
(3)规划求解器根据信息存储器内存储的环境信息对接收到的任务进行规划求解,生成任务规划结果Plan,并将任务规划结果Plan发送给封装器;
(4)封装器对接收到的规划结果Plan进行解析处理,将其封装成一个执行指令序列集合并发送给派遣器,执行指令序列集合中顺序存储了完成相应任务每一步行为动作的执行指令;
(5)派遣器按照执行指令序列集合中行为动作的执行顺序依次向移动机器人的控制器派遣执行指令,并接收移动机器人执行的反馈结果,如果反馈结果为执行成功,则继续派遣下一个执行指令,直到执行指令序列集合为空;
(6)移动机器人的控制器将各个执行指令分别与执行单元中功能模块相关联,根据接收到的执行指令调用相应模块完成对应的行为动作,并向派遣器反馈行为动作是否执行成功的执行结果信息;
(7)当执行完当前任务后,任务管理器判断任务缓冲池中是否存在未完成任务,若不存在未完成任务,则结束工作;否则,返回步骤(2)。
进一步的,所述步骤(2)中,在选取一个当前优先级最高的任务之前,还包括以下步骤:
任务管理器对任务缓冲池里的任务进行重复检测和冲突检测,如果检测到存在重复或者冲突,则剔除本次任务,并向客户端设备输出检测到存在重复或者冲突的反馈信息。
进一步的,所述步骤(4)中的执行指令包括:执行指令对应的行为动作序号、与执行指令关联的功能模块、对应功能模块执行行为动作所需的参数。
进一步的,所述步骤(5)中将执行指令序列集合中的各个执行指令分别与移动机器人执行单元中各个功能模块相关联的方法为:
定义执行指令序列集合为Action[],执行指令序列集合中的任意一个执行指令为Action[i],i∈[1,2,3,4,5,6];其中,
Action[0]与定位模块相关联;当移动机器人的控制器接收到执行指令Action[0]时,首先向信息存储器发出更新数据请求,根据信息存储器中存储的更新后的环境信息来获取自己的全局位置和位姿,然后调用定位模块实现定位,完成后向派遣器反馈行为动作已完成信息;
Action[1]与导航模块相关联;当移动机器人的控制器接收到执行指令Action[1]时,首先访问信息存储器查询用户的坐标信息,然后调用导航模块使移动机器人运动到用户所在位置,并向派遣器反馈行为动作已完成信息;
Action[2]与识别模块关联;当移动机器人的控制器接收到执行指令Action[2]时,调用识别模块识别用户,识别成功后向派遣器反馈行为动作已完成信息;
Action[3]与跟踪模块关联;当移动机器人的控制器接收到执行指令Action[3]时,调用跟踪模块使移动机器人跟踪用户到待传递物品所在位置,并向派遣器反馈行为动作已完成信息;
Action[4]与导航模块关联;当移动机器人取得待传递物品且控制器接收到执行指令Action[4]时,控制器首先访问信息存储器查询待传递物品递送目的地的位置信息,再调用导航模块使移动机器人运行到递送目的地;完成后,控制器向派遣器反馈行为动作已完成信息;
Action[5]与条件等待模块关联;当移动机器人的控制器接收到执行指令Action[5]时,调用条件等待模块使移动机器人保持静止,同时检测待传递物品是否被取走,当检测到待传递物品被取走后,控制器向派遣器反馈行为动作已完成信息;
Action[6]与导航模块关联;当移动机器人的控制器接收到执行指令Action[6]时,控制器首先访问信息存储器查询移动机器人充电区位置信息,然后调用导航模块使移动机器人返回充电区充电,并向派遣器反馈行为动作已完成信息。
有益效果:与现有技术相比,本发明具有以下优势:
综合考虑了办公室内环境的特点,从科学研究与市场需求出提出了一套有效的任务规划与执行方法及装置设计框架,提出的发明可以有效、灵活地运用于实际办公室环境,提高移动机器人执行递送任务的效率。
附图说明
图1为办公室内物品递送机器人任务规划与执行装置的模块架构示意图。
具体实施方式
本发明的目的在于提供一种符合办公室物品传递需求,且具有任务规划能力的办公室内物品递送机器人任务规划与执行装置及方法。下面结合附图具体说明本发明所提出的技术方案。
如图1所示为办公室内物品递送机器人任务规划与执行装置的模块架构示意图。该装置分为服务器、移动机器人、客户端设备和室内视觉传感器四个主要部分,其中,
服务器是整个系统的核心部分,主要完成任务接收与管理、规划求解、输出处理、数据封装、行为派遣等工作,这些工作通过更新监测器、信息存储器、任务管理器、规划求解器、封装器和派遣器来实现。
信息存储器通过更新监测器分别与室内视觉传感器和客户端设备交互,用于存储客户端设备发送的任务相关参数和室内视觉传感器采集到的环境信息,并为服务器中的其他模块以及移动机器人提供访问接口;本实施例中采用非关系数据库Mongo DB来进行数据的存储和管理。
更新监测器监测是否有来自信息存储器的数据更新请求,当接收到数据更新请求时,通知室内视觉传感器进行环境信息采集以及通过客户端设备通知用户进行任务相关参数设置,并将接收到的数据上传信息存储器保存。
任务管理器接收客户端发布的任务,将任务转换为规划求解器所支持的标准输入格式并将标准输入格式的任务发送给规划求解器。
规划求解器根据环境信息对接收到的任务进行规划求解,生成任务规划结果Plan,并将任务规划结果Plan发送给封装器。
封装器对接收到的规划结果Plan进行解析处理,将其封装成一个执行指令序列集合并发送给派遣器,执行指令序列集合中顺序存储了完成相应任务每一步行为动作的执行指令。
派遣器按照执行指令序列集合中行为动作的执行顺序依次向移动机器人的控制器派遣执行指令,并接收移动机器人执行完成的反馈结果,如果在预设的时间段内接收到反馈结果,则判定当前执行指令执行成功,继续派遣下一个执行指令,直到执行指令序列集合为空;如果在预设的时间段内未接收到反馈结果,则向客户端设备反馈当前执行指令执行失败的状态信息。
室内视觉传感器用来搜集环境信息,本实施例中,室内视觉传感器采用kinect摄像头传感器;办公室环境中分布安装了多个kinect摄像头传感器。
移动机器人是具体行为的执行者,本实施例中选取改装的轮式移动机器Turtlebot,并采用嵌入式Beaglebone Black作为移动机器人的本体控制器,同时机器人中装载一个Xtion PRO传感器,并同时在底盘安装三个碰撞传感器。
客户端设备是人机交互的重要实现装置,在本实施例中采用Android设备安装客户端软件作为客户端设备。
办公室内物品递送机器人任务规划与执行装置中服务器、移动机器人、客户端设备和室内视觉传感器之间通过局域网实现数据通信。
下面通过一个实施例来具体说明所述的装置在执行任务时,装置中的各个部件的工作流程。假设设计部A分部的员工“张三”需要将一个文件送到文档室,该文件可能在办公室某处。他通过客户端软件向服务器下达了一个任务,希望机器人帮助他将文件运送到文档室。在执行这个任务时,装置中的各个部件的工作流程如下:
1、客户端软件的配置与操作步骤:
①、安装相应的客户端应用软件;
②、将设备接入局域网,打开客户端软件,进行任务的下达,并点击“确认”按钮;
③、通过局域网搜索,搜索到服务器,向服务器发送数据;
④、通过人机交互界面监测任务的运行状态,并可以执行撤消、更改任务等操作。
2、信息的采集和存储:
①、开启相应的数据库Mongo DB;
②、信息存储器存储与任务相关的任何信息,并提供其它部分进行查询、更新、删除和插入等操作;
③、当收到更新操作的时候,执行信息更新操作;如在本例中,在规划的时候需要判断“张三”是否在办公室内以及“张三”的坐标信息,而在机器人执行定位动作行为时需要获取当前机器人的初始位姿信息等等。在这些情况下,信息存储器将会通过更新监测器通知环境中分布的视觉传感器和客户端设备,等待视传感器发回的环境信息更新数据或客户端设备发回的用户任务参数设置数据,并将这些数据进行保存。
3、服务器的配置与执行步骤
①、触发任务管理器:接收任务并将任务放入任务缓冲池,对任务缓冲池里的任务进行重复检测和冲突检测,如果检测到存在重复或者冲突,取消本次任务的添加,并输出反馈提示信息。选取当前优先级最高的任务,进行预处理和具象化,将其转换为规划求解器所支持的标准输入格式。
②、触发规划求解器:结合信息存储器的信息对输入任务进行规划求解,生成任务规划结果Plan并输出。
③、触发封装器:封装器将会对规划输出结果Plan进行自动解析和处理,将其封装成一个执行指令序列集合为Action[],集合中顺序存储了移动机器人执行当前任务每一步的行为动作。封装结果如下表所示:
④、触发派遣器:按照顺序依次派遣执行指令Action[i],利用TCP/IP协议族的相关协议完成报文的派遣,并接收机器人执行的反馈结果,如果反馈结果为执行成功,则继续派遣下一个执行指令Action[i+1],直到执行指令序列集合Action[]中的行为全部执行完毕;
⑤、如果任务缓冲池中还有其它等待执行的任务,则重复执行①-⑤步骤,直到所有给定的任务都执行完毕。
4、移动机器人根据该递送任务规划和派遣的结果,具体执行步骤如下:
①、移动机器人的控制器接收到执行指令Action[0]后,执行定位程序,首先控制器向信息存储器请求更新当前信息来获取自己的全局位置和位姿,然后利用移动机器人自身的Xtion PRO传感器调用定位模块实现定位,完成后向派遣器反馈该行为动作执行成功的结果;
②、机器人的控制器接收到执行指令Action[1]后,执行导航程序,控制器首先向信息存储器查询设计A分部的坐标信息,然后调用导航模块,使移动机器人运动到目标点,完成后控制器向派遣器反馈该行为动作执行成功的结果;
③、机器人的控制器接收到行为Action[2]后,执行人体识别程序,控制器首先向信息存储器查询获取到的“张三”的大致坐标信息,使移动机器人先运行到该坐标,然后控制器在该坐标附近调用识别模块识别出“张三”,完成后向派遣器反馈该行为动作执行成功的结果;
④、机器人的控制器接收到行为Action[3]后,执行人体跟踪程序,然后调用跟踪模块跟踪“张三”到文件所在处,完成后控制器向派遣器反馈该行为动作执行成功的结果;
⑤、机器人的控制器接收到行为Action[4]后,执行导航程序,在“张三”将文件放置在机器人上并通过语音交互示意结束跟踪后,控制器首先向信息存储器查询文档室的坐标信息,然后调用导航模块使移动机器人运动到文档室,完成后向派遣器反馈该行为动作执行成功的结果;
⑥、机器人的控制器接收到行为Action[5]后,执行条件等待程序,当检测有文件被成功取走后,结束等待,向派遣器反馈该行为动作执行成功的结果;
⑦、机器人的控制器接收到行为Action[6]后,执行导航程序,首先向信息存储器查询充电区的坐标信息,然后调用导航模块使移动机器人运动到充电区充电,完成后向派遣器反馈该行为动作执行成功的结果。
上述定位模块、导航模块、识别模块、跟踪模块和条件等待模块均为由对应算法程序封装成的、可以通过执行指令调用的软件功能模块,其中定位算法为蒙特卡罗MCL算法,导航算法为改进的A*算法,识别算法为特征匹配法,跟踪算法为多特征融合法。
以上所述仅是本发明的优选实施方式,应当指出:对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。