CN110270998A - 机器人调度方法、电子设备和计算机可读存储介质 - Google Patents
机器人调度方法、电子设备和计算机可读存储介质 Download PDFInfo
- Publication number
- CN110270998A CN110270998A CN201910507464.4A CN201910507464A CN110270998A CN 110270998 A CN110270998 A CN 110270998A CN 201910507464 A CN201910507464 A CN 201910507464A CN 110270998 A CN110270998 A CN 110270998A
- Authority
- CN
- China
- Prior art keywords
- task
- robot
- target
- middle control
- state
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 40
- 239000002131 composite material Substances 0.000 claims abstract description 66
- 230000009471 action Effects 0.000 claims abstract description 50
- 230000005540 biological transmission Effects 0.000 claims description 21
- 230000007704 transition Effects 0.000 claims description 7
- 230000002159 abnormal effect Effects 0.000 claims description 5
- 230000005856 abnormality Effects 0.000 claims description 5
- 238000012544 monitoring process Methods 0.000 claims description 4
- 238000004590 computer program Methods 0.000 claims description 3
- 238000011161 development Methods 0.000 abstract description 9
- 238000005516 engineering process Methods 0.000 description 7
- 150000001875 compounds Chemical class 0.000 description 4
- 238000012790 confirmation Methods 0.000 description 4
- 238000012545 processing Methods 0.000 description 4
- 238000006243 chemical reaction Methods 0.000 description 3
- 238000004891 communication Methods 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 229940125904 compound 1 Drugs 0.000 description 1
- 238000000354 decomposition reaction Methods 0.000 description 1
- 238000007667 floating Methods 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000012552 review Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000003466 welding Methods 0.000 description 1
Classifications
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Programme-controlled manipulators
- B25J9/16—Programme controls
- B25J9/1656—Programme controls characterised by programming, planning systems for manipulators
- B25J9/1664—Programme controls characterised by programming, planning systems for manipulators characterised by motion, path, trajectory planning
Landscapes
- Engineering & Computer Science (AREA)
- Robotics (AREA)
- Mechanical Engineering (AREA)
- Control Of Position, Course, Altitude, Or Attitude Of Moving Bodies (AREA)
Abstract
本发明实施例涉及多移动机器人调度技术领域,公开了一种机器人调度方法、电子设备和计算机可读存储介质。该方法包括:接收待执行的复合任务;复合任务包含有至少一个目标位置以及与该至少一个目标位置对应的目标动作;将复合任务分解为若干个元任务;其中,每个元任务具有一目标位置以及一在目标位置执行的目标动作;调度被分配复合任务的目标机器人逐一执行元任务以执行复合任务。本发明实施方式不仅可提高中控平台的易用性和通用性,而且可极大减少中控平台开发的时间和人力成本。
Description
技术领域
本发明涉及多移动机器人调度技术领域,特别涉及一种机器人调度方法、电子设备和计算机可读存储介质。
背景技术
随着科技的发展,很多人力工作逐渐被机器人所取代,尤其是工厂中流水线一样重复的机械工作,比如,越来越多的工厂开始采用机器人搬运货物,承担焊接工作等。同时,机器人的种类也开始多种多样,比如全向轮AGV(Automated Guided Vehicle,自动导航车),激光导航AGV,叉车AGV、巡检机器人等等。
发明人发现相关技术至少存在以下问题:现有技术中,机器人的中央控制系统(简称中控)一般是针对具体的应用场景和AGV(Automated Guided Vehicle,自动导航车)类型进行定制的。为了调度不同种类的机器人,需要为中控开发针对不同种类机器人的不同模型和接口,比如需要针对每一种具体的任务类型(例如轨迹任务,充电任务,取货放货任务等)开发对应的任务接口,而不同类型的任务接口适用范围窄、难以通用,且不同类型任务接口存在大量的重复开发工作,提高了中控开发成本。
发明内容
本发明实施方式的目的在于提供一种机器人调度方法、电子设备和计算机可读存储介质,不仅可提高中控平台的易用性和通用性,而且可极大减少中控平台开发的时间和人力成本。
为解决上述技术问题,本发明的实施方式提供了一种机器人调度方法,应用于中控端,包括:
接收待执行的复合任务;所述复合任务包含有至少一个目标位置以及与所述至少一个目标位置对应的目标动作;
将所述复合任务分解为若干个元任务;其中,每个所述元任务具有一目标位置以及一在所述目标位置执行的目标动作;
调度被分配所述复合任务的目标机器人逐一执行所述元任务以执行所述复合任务。
本发明的实施方式还提供了一种电子设备,包括:存储器和处理器,存储器存储计算机程序,处理器运行所述计算机程序以实现如前所述的机器人调度方法。
本发明的实施方式还提供了一种计算机可读存储介质,用于存储计算机可读程序,所述计算机可读程序用于供计算机执行如前所述的机器人调度方法。
本发明实施方式相对于现有技术而言,将包含有至少一个目标位置以及目标动作的复合任务分解为若干个元任务,并调度被分配该复合任务的目标机器人逐一执行该复合任务的各个元任务,从而完成该复合任务。因此,本发明实施方式通过将繁杂的复合任务的调度简化为统一的元任务的调度,从而不仅可提高中控平台的易用性和通用性,而且可极大减少中控平台开发的时间和人力成本。
作为一个实施例,所述调度被分配所述复合任务的目标机器人逐一执行所述元任务以执行所述复合任务,具体包括:
根据所述中控端内预设的中控状态机监控所述目标机器人执行所述元任务;
其中,所述中控状态机包括用于监控所述元任务的执行情况的多个状态以及所述多个状态的状态转换逻辑。
作为一个实施例,所述多个状态包括以下任务状态:
注册状态、请求许可状态、发送任务状态、运行任务轨迹状态、完成任务轨迹状态、发送动作状态、运行动作状态以及完成动作状态;
所述根据所述中控端内预设的中控状态机监控所述目标机器人执行所述元任务,具体包括:
所述中控状态机通过以下状态转换逻辑监控所述目标机器人执行所述元任务:
在将所述元任务分配至所述目标机器人时,将所述中控状态机从所述注册状态切换为所述请求许可状态;
在所述目标机器人许可接收用于到达所述元任务的目标位置的路径信息时,将所述中控状态机从所述请求许可状态切换为所述发送任务状态;
在接收到所述目标机器人反馈的所述路径信息接收成功时,将所述中控状态机从所述发送任务状态切换为所述运行任务轨迹状态;
在所述目标机器人到达所述元任务的目标位置时,将所述中控状态机从所述运行任务轨迹状态切换为所述完成任务轨迹状态;
在确定所述目标机器人满足执行所述元任务的目标动作的条件时,将所述中控状态机从所述完成任务轨迹状态切换为所述发送动作状态;
在接收到所述目标机器人反馈的所述元任务的目标动作接收成功时,将所述中控状态机从所述发送动作状态切换为所述运行动作状态;
在接收到所述目标机器人反馈的所述目标动作执行完成时,将所述中控状态机从所述运行动作状态切换为所述完成动作状态。从而可高效调度目标机器人完成元任务;
在所述中控状态机处于所述完成动作状态时,将所述中控状态机从所述完成动作状态切换为所述注册状态。
作为一个实施例,所述路径信息包括多个批次的子路径信息;
在所述发送任务状态,向所述目标机器人发送当前批次的子路径信息,在所述当前批次的子路径信息发送成功时,将所述中控状态机从所述发送任务状态切换为所述运行任务轨迹状态,在所述目标机器人执行完成所述当前批次的子路径信息时,确定所述目标机器人是否达到所述目标位置,若未到达所述目标位置,则将所述中控状态机从所述运行任务轨迹状态切换为所述请求许可状态,重复上述子路径信息的分批发送步骤直到所述目标机器人到达所述目标位置。通过分批下发子路径信息,可以提高机器人调度的灵活性。
作为一个实施例,各所述子路径信息唯一许可给所述目标机器人。通过将各子路径信息唯一许可给目标机器人,避免其它机器人进入目标机器人的路径,从而减少机器人行进过程中可能出现的避障情况,并且通过分批下发子路径信息,可以避免机器人长时间占据路径资源,保证调度效率。
作为一个实施例,所述多个状态还包括:异常状态、暂停状态或者错误状态;
所述中控状态机通过以下状态转换逻辑监控所述目标机器人执行所述元任务,还包括:
在满足暂停条件时,将所述任务状态切换为所述暂停状态,并在所述暂停条件结束时,将所述中控状态机恢复至暂停前的任务状态;
在满足异常条件时,将所述任务状态切换为所述异常状态,并在所述异常条件结束时,将所述中控状态机恢复至发生异常前的任务状态;
在满足错误条件时,将所述任务状态切换为所述错误状态,并在所述错误条件结束时,将所述中控状态机切换为所述注册状态之前的在线状态。从而可以灵活处理元任务执行过程中的各种例外情况。
作为一个实施例,所述调度被分配所述复合任务的目标机器人逐一执行所述元任务以执行所述复合任务,具体包括:
通过任务发送接口向所述目标机器人发送所述元任务的目标位置以及目标动作,并通过任务反馈接口接收所述目标机器人反馈的所述元任务的执行状况。
作为一个实施例,还包括:
在所述复合任务执行完成后将所述目标机器人调度至待命区。从而可以避免机器人之间出现对目标位置的竞争。
附图说明
图1是根据本发明第一实施方式机器人调度方法的流程图;
图2是根据本发明第二实施方式机器人调度方法的一般状态转换逻辑示意图;
图3是根据本发明第二实施方式机器人调度方法的例外状态转换逻辑示意图;
图4是根据本发明第三实施方式电子设备的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合附图对本发明的各实施方式进行详细的阐述。然而,本领域的普通技术人员可以理解,在本发明各实施方式中,为了使读者更好地理解本发明而提出了许多技术细节。但是,即使没有这些技术细节和基于以下各实施方式的种种变化和修改,也可以实现本发明所要求保护的技术方案。
本发明的第一实施方式涉及一种机器人调度方法,应用于中控端。
如图1所示,该方法包括步骤101至步骤103。
步骤101:接收待执行的复合任务。
其中,复合任务包含有至少一个目标位置以及与至少一个目标位置对应的目标动作。复合任务可以是点对点任务或者多点任务。点对点任务比如为(起点A,起点动作1-举升货物,终点B,终点动作2-放下货物)的运输任务。多点任务比如是巡检类的多点任务。此外,复合任务还可以是由不同类型的机器人所执行的复合任务,比如巡检机器人的复合任务、叉车机器人的复合任务等。复合任务可以由外部添加至中控端。
步骤102:将复合任务分解为若干个元任务。
其中,每个元任务具有一目标位置以及一在目标位置执行的目标动作。换言之,元任务(task simplex)即是到达一个目标位置并在该目标位置执行一个目标动作的简单任务。将复合任务分解为若干个元任务即是针对复合任务中的每一个目标位置(Destination)以及对应的目标动作(Action)生成一个元任务。比如,针对一个点到点复合任务,例如(起点A,起点动作1-举升货物,终点B,终点动作2-放下货物)的运输任务,该复合任务会被分解为(起点A,动作1)和(终点B,动作2)等的两个元任务。也就是说,复合任务中的每个点(亦可称目标位置)以及该点对应的动作均会被分解为一个单独的元任务。因此,分解后的元任务可以采用通用的调度逻辑进行调度。在实际应用中,来自顶层系统的复合任务均会被分解为元任务。将复合任务分解为元任务的核心代码如下:
步骤103:调度被分配复合任务的目标机器人逐一执行元任务以执行复合任务。
具体而言,针对复合任务中的每一个元任务,中控端会规划出到达目标位置的路径信息,并将路径信息下发给目标机器人控制其到达目标位置,中控端还会下发目标动作,控制目标机器人在到达目标位置后执行该目标动作。其中,若复合任务被分解为两个元任务,则调度目标机器人分别执行该两个元任务即可完成该复合任务的调度,类似地,无论复合任务被分解为多少个元任务,均可通过调度目标机器人逐一执行各个元任务从而完成该复合任务。由于元任务的任务架构相同,因此可以采用统一的方式进行调度。
在一个例子中,本实施方式还包括:在复合任务执行完成后将目标机器人调度至待命区。具体地,可将目标机器人调度至待命区的任务添加至复合任务分解后的若干个元任务之后。其中,待命区可以为预先设定的机器人休息区,或者也可以由中控临时指定具有其他用途的空闲区域作为待命区。这样,目标机器人在执行完成复核任务之后,会自动转移至待命区待命,而不是停留在该复合任务的最后一个元任务的目标位置,避免了不同的机器人之间可能产生的对于同一目标位置的竞争。因此,本实施方式具有更佳的易扩展性和灵活性。
本发明实施方式相对于现有技术而言,将复合任务分解为若干个元任务,并调度目标机器人逐一执行该复合任务的各个元任务,从而完成该复合任务。本发明实施方式通过将繁杂的复合任务的调度简化为单一类型的元任务的调度,从而不仅可提高中控平台的易用性和通用性,而且可极大减少中控平台开发的时间和人力成本,并且具有更佳的易扩展性和灵活性。
本发明的第二实施方式涉及一种机器人调度方法,第二实施方式在第一实施方式的基础上做出进一步改进,主要改进之处在于,在第二实施方式中,提供了元任务的具体调度方式,从而可高效调度目标机器人执行元任务。
在实际应用中,当添加至中控的复合任务派发完成以后,进入执行阶段。中控通过内部有限状态机(Finite State Machine,FSM)来管理任务的执行。在中控端,每一台机器人都被抽象成如图2右侧的一个状态机(中控状态机)。中控通过中控状态机对机器人进行描述和管控。中控状态机包括用于监控元任务的执行情况的多个状态以及多个状态的状态转换逻辑。根据中控状态机监控目标机器人执行元任务。其中,中控状态机多个状态包括以下任务状态:在线状态(OnlineState)、注册状态(RegisteredState)、请求许可状态(PermittingState)、发送任务状态(SendingState)、运行任务轨迹状态(RunTaskTrajState)、完成任务轨迹状态(DoneTaskTrajState)、发送动作状态(SendingActionState)、运行动作状态(RunActionState)、完成动作状态(DoneActionState)、充电状态(CharingState)、暂停状态(PauseState)、异常状态(ExceptionState)以及错误状态(ErrorState)。本实施方式对于中控状态机的状态不做具体限制。
如图2所示,本实施方式中,中控状态机通过以下状态转换逻辑监控目标机器人执行元任务以执行对应的复合任务。
当目标机器人正常启动后并不断向中控反馈状态信息时,中控会检测到该机器人的存在,并将该机器人记录为Online状态。
在将元任务分配至目标机器人时,将中控状态机从注册状态切换为请求许可状态,即当人工点击图形界面的按钮或者通过网络通信请求将机器人注册时,中控内部会触发RegistrationEvent(注册事件),中控端描述的机器人状态由Online状态切换为Registered State。处于Registered状态的机器人可以被中控分配任务。
在目标机器人许可接收用于到达元任务的目标位置的路径信息时,将中控状态机从请求许可状态切换为发送任务状态。即当中控从顶层系统接收到新任务时,会对新任务进行规划和派发(即获取元任务事件),被派发了新任务的目标机器人的状态将从RegisteredState切换到PermittingState。
在接收到目标机器人反馈的路径信息接收成功时,将中控状态机从发送任务状态切换为运行任务轨迹状态。即当中控状态机的状态为PermittinState时,中控会计算允许目标机器人通行的路径,并试图将该许可的路径发送给目标机器人(即协调路径事件),此时中控状态机切换到SendingState。
在目标机器人到达元任务的目标位置时,将中控状态机从运行任务轨迹状态切换为完成任务轨迹状态。
在一个例子中,路径信息包括多个批次的子路径信息。在中控状态机处于发送任务状态时,向目标机器人发送当前批次的子路径信息,在当前批次的子路径信息发送成功时,将中控状态机从发送任务状态切换为运行任务轨迹状态,在目标机器人执行完成当前批次的子路径信息时,确定目标机器人是否达到目标位置,若未到达目标位置,则将中控状态机从运行任务轨迹状态切换为请求许可状态,重复子路径信息的分批发送步骤直到目标机器人到达目标位置。换言之,当中控状态机的状态为SendingState时,中控会尝试通过任务发送接口(请见下文)给目标机器人发送一批路径任务(即用于到达目标位置的部分子路径信息),该任务发送接口可采用service模型(即请求-响应模型)。中控发送任务给机器人,机器人收到发送的任务或反馈确认信号。当机器人反馈该批次的子路径信息接收成功时,中控状态机的状态从SendingState切换为RunTaskTrajState。如果机器人未成功接收发送的路径任务,例如拒收,或者中控没有收到机器人确认接收成功的信号,中控会以一定频率持续发送路径任务,直到收到机器人接收成功的确认信号。处于RunTaskTrajState的机器人应当正在执行路径跟随任务,机器人会一边执行路径跟随任务,一边向中控反馈状态信息。中控根据机器人的状态反馈,确定机器人是否已经到达目标位置,若未到达目标位置,则确定需要许可下一批次的子路径信息给目标机器人。如果需要许可下一批次的子路径信息给目标机器人,则中控状态机的状态会从RunTaskTrajState再次切换到PermittingState,并再次计算需要许可的路径。在机器人到达目标位置时,中控状态机会从RunTaskTrajState切换到DoneTaskTrajState。
在一个例子中,路径信息的各子路径信息可以唯一许可给目标机器人,即其它机器人不可以进入该目标机器人的路径。通过唯一许可方式允许机器人独占路径资源,可以避免出现不同的机器人共享路径资源时潜在的避障隐患。并且,通过分批次发送路径信息,待目标机器人执行完成后再继续下发,可以避免机器人长时间占用路径资源,提高调度的效率。因此,本实施方式的唯一许可以及分批下发子路径信息使得调度更具智能性、灵活性以及安全性。然不限于此,在实际应用中,也可以一次性地将路径信息发送给机器人,或者允许多个机器人共享路径资源。
在确定目标机器人满足执行元任务的目标动作的条件时,将中控状态机从完成任务轨迹状态切换为发送动作状态。
在接收到目标机器人反馈的元任务的目标动作接收成功时,将中控状态机从发送动作状态切换为运行动作状态。类似发送任务状态,对处于SendingActionState的机器人,中控会尝试通过任务发送接口给机器人发送动作任务(即目标动作),如果机器人没有接收成功,例如拒收,或者单机没有反馈确认成功信号,中控会以一定频率持续发送,直到收到确认信号,此时,中控描述状态机从SendingActionState状态切换为RunActionState。
在接收到目标机器人反馈的目标动作执行完成时,将中控状态机从运行动作状态切换为完成动作状态。处于RunActionState的机器人应当在执行目标动作,并持续反馈机器人目标动作执行情况到中控,中控据此判断机器人是否执行完成目标动作。如果目标动作执行完成,将中控状态机的状态从RunActionState切换到DoneActionState。
在中控状态机处于完成动作状态时,将中控状态机从完成动作状态切换为注册状态。当中控状态机处于DoneActionState状态时,表明机器人已执行完成该元任务的目标动作,中控会触发执行下一元任务事件(GoNextEvent),中控状态机切换到RegisteredState,从而可以开始下一个元任务的执行循环,进而依次执行完成复合任务的各个元任务以执行完成该复合任务。从而使得中控状态机具有很强的通用性。
上文描述了中控状态机的正常执行方式,下面结合图3描述中控状态机的异常处理方式。如图3所示,在满足暂停条件时,将任务状态切换为暂停状态,并在暂停条件结束时,将中控状态机恢复至暂停前的任务状态。在满足异常条件时,将任务状态切换为异常状态,并在异常条件结束时,将中控状态机恢复至发生异常前的任务状态。在满足错误条件时,将任务状态切换为错误状态,并在错误条件结束时,将中控状态机切换为注册状态之前的在线状态。其中,暂停条件、异常条件以及错误条件可自行定义,异常状态以及错误状态也可以自行定义。
中控状态机的核心代码结构如下:
本实施方式中,中控端通过任务发送接口向目标机器人发送元任务的目标位置以及目标动作,并通过任务反馈接口接收目标机器人反馈的元任务的执行状况。在一个例子中,中控分批将元任务的路径信息发送给机器人。在机器人反馈到达目标位置后,再发送元任务的目标动作给机器人。通过任务反馈接口接收机器人反馈的元任务的执行状态,使得中控可以时刻监控机器人执行元任务的状态。
其中,任务发送接口以及任务反馈接口均可采用ROS(Robot Operating System,机器人系统)实现,或者也可以采用超文本传输协议(HyperText Transfer Protocol,HTTP),亦或采用Socket(插口)实现。不同实现方式中接口包含相同的数据结构。
具体地,任务反馈接口传输的任务状态反馈信息的的名称可以为”/{yg...serial}/agent_task_feedback/bito_as”其中{yg...serial}表示机器人的用户名和主机名,即22为以yg开头的序列号,它的信息定义为ROS Message(消息),位于TaskFeedback2dMsg.msg文件内,并包含以下内容:
int64 timestamp
string agent_serial
int64 task_simplex_id
int64 task_simplex_seq
int32 type
string name
Trajectory2dMsg trajectory
int32 trajectory_index
TrajectoryPoint2dMsg agent_pose
int32 task_status
int32 agent_status
string agent_status_name
上述反馈信息参数说明如下:
timestamp是64bit(位)整型数,用以表示一条信息的时间戳,如果系统没有时间信息,可以缺省,不影响系统运行。
agent_serial是机器人的序列号,数据类型为字符串型,应当全局唯一,推荐使用规范的机器人序列号,比如宾通智能科技有限公司的22位序列号,例如yg00a00019010113005n00,其中yg是机器人大类,不推荐改变;00是占位符,可以任意修改;a00是版本号,可以任意修改;019表示2019年,0101表示1月1号,13表示24小时制的13点,005n00可以任意修改。简言之,22位序列号前两位必须为yg,其余位皆可以修改。
task_simplex_id是整型数,当机器人刚上电启动时,默认为-1;当机器人接收到来自中控的元任务后,该整型数应该与中控发送的Task Simplex保持一致。
task_simplex_seq是整型数,当机器人刚上电启动时,默认为-1;当机器人接收到来自中控的元任务后,该整型数应该与中控发送的Task Simplex保持一致。
type是整型数,用以表示动作类型,默认为0,当机器人接收到来自中控的元任务后,该整型数应该与中控发送的Task Simplex保持一致。
name是字符串型,表示任务的名称,目前没有实际功能,可缺省,即设置为空字符串。
trajectory的数据结构是一条轨迹,目前没有实际功能,可缺省。
trajectory_index是整型数,当机器人刚上电启动时,默认为0;当机器人接收到来自中控的任务后,其表示机器人目前所执行完成的轨迹序号,例如机器人收到的TaskSimplex中包含一条由5个节点组成的路径,这5个路径节点的序号比如为0,1,2,3,4,当机器人处于序号为2,3的路径中时,机器人反馈的trajectory_index为2,当机器人到达序号3或者超过序号为3的节点时,trajectory_index为3。
agent_pose为机器人位置。机器人通过该数据项向中控报告自己所处的位置,其数据结构为TrajectoryPoint2dMsg,定义在TrajectoryPoint2dMsg.msg文件,包括以下数据项:std_msgs/Header header,int64 timestamp,float64 x,float64 y,float64theta,float64 x_dot,float64 y_dot,float64 theta_dot。其中header为ROS中定义的标准数据,默认可缺省;timestamp表示该点的时间戳,可以缺省;x,y,theta表示机器人当前所处的坐标,其中theta为弧度制,表示机器人旋转角度;x_dot,y_dot,theta_dot表示速度信息,可缺省。
task_status为机器人当前所执行的任务状态。其中,状态定义及切换如图2所示。
agent_status为机器人当前所处状态,该数据和task_status相同,两者保持一致即可。
agent_status_name为机器人状态的字符串描述,可以缺省。
以上举例说明了机器人反馈给中控的任务反馈接口的反馈信息,本实施方式对于反馈信息不做具体限制。
本实施方式中,任务发送接口定义为ROS Service,其中ROS Service服务器端在机器人侧运行,ROS Service客户端在中控端运行。Service的名称比如为“/{yg...serial}/task_simplex/bito_as”其中{yg...serial}表示机器人的用户名和主机名,即22位以yg开头的序列号,它的数据格式定义在TaskSimplex2dSrv.srv文件中。
TaskSimplex2dSrv文件中包含以下内容:
navigator_ros/TaskSimplex2dMsg task_simplex
---
bool confirm
当中控要向机器人发送任务信息时,中控对机器人上的服务器端进行一次Service(服务)请求,请求的数据为TaskSimplex2dMsg,定义在TaskSimplex2dMsg.msg文件中。机器人上的服务器端接收到请求数据后,对中控进行反馈,反馈信息为一个bool(布尔)类型的变量confirm(确认),若为true,表示接收成功,若为false表示拒收。
TaskSimple2dMsg文件包含以下内容:
int64 id
int64 seq
int32 type
float32 height
int32 task_status
int32 priority
TrajectoryPoint2dMsg destination
TrajectoryPoint2dMsg home
string name
Trajectory2dMsg task_trajectory
Trajectory2dMsg homing_trajectory
bool trajectory_continue
下面对中控发送给机器人的请求数据TaskSimplex2dMsg的参数说明如下:
id是一个64位整型数,表示该task simplex的id(识别)号。
seq是一个64位整型数,表示该task simplex的sequence(序列)号,每一个tasksimplex的路径和动作会分批发送给机器人,所以一个task simplex会有多个seq号并多次发送。(id,seq)一起,构成了每一个task simplex全局唯一的标识符。
type是一个32位的整型数,表示该task simplex的动作类型,例如举升,放下,空,等等。
height是一个浮点数,表示动作的高度,可以缺省,默认设置为0即可,接收端不用处理。
task_status是当前发送task simple的状态,可以缺省,接收端不用处理。
priority是当前发送task simplex的优先级,可以缺省,接收端不用处理。
destination是当前task simplex的目标位置,数据类型为TrajectoryPoint2dMsg,其中,x,y,theta表示机器人当前task simplex的目的地的坐标。
home,name,home_trajectory无含义,接收端可以忽略。
task_trajectory是当前task simplex包含的轨迹,需要机器人进行执行。task_trajectory包括当前轨迹的id号以及points,points是一个以TrajectoryPoint2dMsg作为数据的数组,其中每一个TrajectoryPoint2dMsg都表示一个轨迹节点。在每一个轨迹节点中,x,y,theta表示轨迹节点的坐标。
trajectory_continue是一个bool量,true表示当前发送的task simplex也是一个轨迹类型的task simplex,延续上一个task simplex的轨迹。若为false表示当前发送的task simplex并不延续上一个task simplex的轨迹,可能上一个task simplex本身不是一个轨迹任务,或者当前任务自身是一个动作任务。
本发明实施方式相对于现有技术而言,将复合任务分解为若干个元任务,并调度目标机器人逐一执行该复合任务的各个元任务,从而完成该复合任务。本发明实施方式通过将繁杂的复合任务的调度简化为单一类型的元任务的调度,使中控能够以统一的任务架构、状态机以及通信接口对不同类型的移动机器人进行调度,从而不仅可提高中控平台的易用性和通用性,而且可极大减少中控平台开发的时间和人力成本。并且,本实施方式提供了中控状态机以及中控内部有限状态机以保证高效、可靠地实现任务的调度。
本发明的第三实施方式涉及一种电子设备。本实施方式的电子设备可以是独立的服务器,也可以是服务器群。如图4所示,该电子设备包括:存储器402和处理器401;
其中,所述存储器402存储有可被所述至少一个处理器401执行的指令,所述指令被所述至少一个处理器401执行以实现如第一或者第二实施方式所述的机器人调度方法。
该电子设备包括一个或多个处理器401以及存储器402,图4中以一个处理器401为例。处理器401、存储器402可以通过总线或者其他方式连接,图4中以通过总线连接为例。存储器402作为一种非易失性计算机可读存储介质,可用于存储非易失性软件程序、非易失性计算机可执行程序以及模块。处理器401通过运行存储在存储器402中的非易失性软件程序、指令以及模块,从而执行设备的各种功能应用以及数据处理,即实现上述机器人调度方法。
存储器402可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序。此外,存储器402可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实施方式中,存储器402可选包括相对于处理器401远程设置的存储器,这些远程存储器可以通过网络连接至外接设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
一个或者多个模块存储在存储器402中,当被一个或者多个处理器401执行时,执行上述任意方法实施方式中的机器人调度方法。
本发明实施方式相对于现有技术而言,将复合任务分解为若干个元任务,并调度目标机器人逐一执行该复合任务的各个元任务,从而完成该复合任务。本发明实施方式通过将繁杂的复合任务的调度简化为单一类型的元任务的调度,从而不仅可提高中控平台的易用性和通用性,而且可极大减少中控平台开发的时间和人力成本。并且,本实施方式提供了中控状态机以及中控内部有限状态机以保证高效、可靠地实现任务的调度。
上述设备可执行本发明实施方式所提供的方法,具备执行方法相应的功能模块和有益效果,未在本实施方式中详尽描述的技术细节,可参见本发明实施方式所提供的方法。
本发明的第四实施方式涉及一种非易失性存储介质,用于存储计算机可读程序,所述计算机可读程序用于供计算机执行上述部分或全部的方法实施例。
即,本领域技术人员可以理解,实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序存储在一个存储介质中,包括若干指令用以使得一个设备(可以是单片机,芯片等)或处理器(processor)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
本领域的普通技术人员可以理解,上述各实施方式是实现本发明的具体实施例,而在实际应用中,可以在形式上和细节上对其作各种改变,而不偏离本发明的精神和范围。
Claims (10)
1.一种机器人调度方法,应用于中控端,其特征在于,包括:
接收待执行的复合任务;所述复合任务包含有至少一个目标位置以及与所述至少一个目标位置对应的目标动作;
将所述复合任务分解为若干个元任务;其中,每个所述元任务具有一目标位置以及一在所述目标位置执行的目标动作;
调度被分配所述复合任务的目标机器人逐一执行所述元任务以执行所述复合任务。
2.根据权利要求1所述的机器人调度方法,其特征在于,所述调度被分配所述复合任务的目标机器人逐一执行所述元任务以执行所述复合任务,具体包括:
根据所述中控端内预设的中控状态机监控所述目标机器人执行所述元任务;
其中,所述中控状态机包括用于监控所述元任务的执行情况的多个状态以及所述多个状态的状态转换逻辑。
3.根据权利要求2所述的机器人调度方法,其特征在于,所述多个状态包括以下任务状态:
注册状态、请求许可状态、发送任务状态、运行任务轨迹状态、完成任务轨迹状态、发送动作状态、运行动作状态以及完成动作状态;
所述根据所述中控端内预设的中控状态机监控所述目标机器人执行所述元任务,具体包括:
所述中控状态机通过以下状态转换逻辑监控所述目标机器人执行所述元任务:
在将所述元任务分配至所述目标机器人时,将所述中控状态机从所述注册状态切换为所述请求许可状态;
在所述目标机器人许可接收用于到达所述元任务的目标位置的路径信息时,将所述中控状态机从所述请求许可状态切换为所述发送任务状态;
在接收到所述目标机器人反馈的所述路径信息接收成功时,将所述中控状态机从所述发送任务状态切换为所述运行任务轨迹状态;
在所述目标机器人到达所述元任务的目标位置时,将所述中控状态机从所述运行任务轨迹状态切换为所述完成任务轨迹状态;
在确定所述目标机器人满足执行所述元任务的目标动作的条件时,将所述中控状态机从所述完成任务轨迹状态切换为所述发送动作状态;
在接收到所述目标机器人反馈的所述元任务的目标动作接收成功时,将所述中控状态机从所述发送动作状态切换为所述运行动作状态;
在接收到所述目标机器人反馈的所述目标动作执行完成时,将所述中控状态机从所述运行动作状态切换为所述完成动作状态;
在所述中控状态机处于所述完成动作状态时,将所述中控状态机从所述完成动作状态切换为所述注册状态。
4.根据权利要求3所述的机器人调度方法,其特征在于,所述路径信息包括多个批次的子路径信息;
在所述发送任务状态,向所述目标机器人发送当前批次的子路径信息,在所述当前批次的子路径信息发送成功时,将所述中控状态机从所述发送任务状态切换为所述运行任务轨迹状态,在所述目标机器人执行完成所述当前批次的子路径信息时,确定所述目标机器人是否达到所述目标位置,若未到达所述目标位置,则将所述中控状态机从所述运行任务轨迹状态切换为所述请求许可状态,重复上述子路径信息的分批发送步骤直到所述目标机器人到达所述目标位置。
5.根据权利要求4所述的机器人调度方法,其特征在于,各所述子路径信息唯一许可给所述目标机器人。
6.根据权利要求3所述的机器人调度方法,其特征在于,所述多个状态还包括:异常状态、暂停状态或者错误状态;
所述中控状态机通过以下状态转换逻辑监控所述目标机器人执行所述元任务,还包括:
在满足暂停条件时,将所述任务状态切换为所述暂停状态,并在所述暂停条件结束时,将所述中控状态机恢复至暂停前的任务状态;
在满足异常条件时,将所述任务状态切换为所述异常状态,并在所述异常条件结束时,将所述中控状态机恢复至发生异常前的任务状态;
在满足错误条件时,将所述任务状态切换为所述错误状态,并在所述错误条件结束时,将所述中控状态机切换为所述注册状态之前的在线状态。
7.根据权利要求1所述的机器人调度方法,其特征在于,所述调度被分配所述复合任务的目标机器人逐一执行所述元任务以执行所述复合任务,具体包括:
通过任务发送接口向所述目标机器人发送所述元任务的目标位置以及目标动作,并通过任务反馈接口接收所述目标机器人反馈的所述元任务的执行状况。
8.根据权利要求1至7中任一项所述的机器人调度方法,其特征在于,还包括:
在所述复合任务执行完成后将所述目标机器人调度至待命区。
9.一种电子设备,其特征在于,包括:存储器和处理器,存储器存储计算机程序,处理器运行所述计算机程序以实现如权利要求1至8中任一项所述的机器人调度方法。
10.一种计算机可读存储介质,其特征在于,用于存储计算机可读程序,所述计算机可读程序用于供计算机执行如权利要求1至8中任一项所述的机器人调度方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910507464.4A CN110270998A (zh) | 2019-06-12 | 2019-06-12 | 机器人调度方法、电子设备和计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910507464.4A CN110270998A (zh) | 2019-06-12 | 2019-06-12 | 机器人调度方法、电子设备和计算机可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110270998A true CN110270998A (zh) | 2019-09-24 |
Family
ID=67960713
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910507464.4A Pending CN110270998A (zh) | 2019-06-12 | 2019-06-12 | 机器人调度方法、电子设备和计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110270998A (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111015631A (zh) * | 2019-12-24 | 2020-04-17 | 上海理工大学 | 一种基于有限状态机的柔性外骨骼手辅助抓握训练控制方法 |
CN111597018A (zh) * | 2020-04-21 | 2020-08-28 | 清华大学 | 一种机器人作业调度方法及装置 |
CN112549029A (zh) * | 2020-12-03 | 2021-03-26 | 天津(滨海)人工智能军民融合创新中心 | 一种基于行为树的机器人行为控制方法及装置 |
CN113848924A (zh) * | 2021-09-30 | 2021-12-28 | 乐聚(深圳)机器人技术有限公司 | 机器人的调度控制方法、装置、设备及存储介质 |
CN114578823A (zh) * | 2022-03-04 | 2022-06-03 | 深圳鹏行智能研究有限公司 | 机器人动作仿生规划方法、电子设备及存储介质 |
CN115145233A (zh) * | 2022-07-25 | 2022-10-04 | 西安热工研究院有限公司 | 一种机器人多级小粒度运动调度控制方法、装置及设备 |
CN115229799A (zh) * | 2022-08-29 | 2022-10-25 | 珠海格力智能装备有限公司 | 机器人的位置确定方法、确定装置以及机器人系统 |
CN119067419A (zh) * | 2024-11-07 | 2024-12-03 | 成都明途科技有限公司 | 处理任务的方法及装置、电子设备、存储介质 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105116785A (zh) * | 2015-06-26 | 2015-12-02 | 北京航空航天大学 | 一种多平台远程机器人通用控制系统 |
CN105751196A (zh) * | 2016-04-12 | 2016-07-13 | 华南理工大学 | 一种基于主从式的工业机器人协作作业方法 |
US20170144304A1 (en) * | 2014-09-02 | 2017-05-25 | The Johns Hopkins University | System and method for flexible human-machine collaboration |
CN107234616A (zh) * | 2017-07-07 | 2017-10-10 | 上海木爷机器人技术有限公司 | 多机器人控制方法及装置 |
CN108764739A (zh) * | 2018-05-31 | 2018-11-06 | 西安艾润物联网技术服务有限责任公司 | 智能机器人控制系统及方法、可读存储介质 |
CN108960506A (zh) * | 2018-07-02 | 2018-12-07 | 北京极智嘉科技有限公司 | 一种机器人调度方法、装置、服务器和存储介质 |
CN108960687A (zh) * | 2018-08-29 | 2018-12-07 | 广州市君望机器人自动化有限公司 | 任务区调度方法、装置、送餐机器人及存储介质 |
CN109048952A (zh) * | 2018-09-12 | 2018-12-21 | 北京极智嘉科技有限公司 | 一种机器人控制系统和方法、计算设备及存储介质 |
CN109108973A (zh) * | 2018-08-29 | 2019-01-01 | 广州市君望机器人自动化有限公司 | 单向式路径调度方法及系统 |
-
2019
- 2019-06-12 CN CN201910507464.4A patent/CN110270998A/zh active Pending
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170144304A1 (en) * | 2014-09-02 | 2017-05-25 | The Johns Hopkins University | System and method for flexible human-machine collaboration |
CN105116785A (zh) * | 2015-06-26 | 2015-12-02 | 北京航空航天大学 | 一种多平台远程机器人通用控制系统 |
CN105751196A (zh) * | 2016-04-12 | 2016-07-13 | 华南理工大学 | 一种基于主从式的工业机器人协作作业方法 |
CN107234616A (zh) * | 2017-07-07 | 2017-10-10 | 上海木爷机器人技术有限公司 | 多机器人控制方法及装置 |
CN108764739A (zh) * | 2018-05-31 | 2018-11-06 | 西安艾润物联网技术服务有限责任公司 | 智能机器人控制系统及方法、可读存储介质 |
CN108960506A (zh) * | 2018-07-02 | 2018-12-07 | 北京极智嘉科技有限公司 | 一种机器人调度方法、装置、服务器和存储介质 |
CN108960687A (zh) * | 2018-08-29 | 2018-12-07 | 广州市君望机器人自动化有限公司 | 任务区调度方法、装置、送餐机器人及存储介质 |
CN109108973A (zh) * | 2018-08-29 | 2019-01-01 | 广州市君望机器人自动化有限公司 | 单向式路径调度方法及系统 |
CN109048952A (zh) * | 2018-09-12 | 2018-12-21 | 北京极智嘉科技有限公司 | 一种机器人控制系统和方法、计算设备及存储介质 |
Non-Patent Citations (2)
Title |
---|
薛红香: "水下机器人任务规划方法研究", 《中国优秀硕士学位论文全文数据库》 * |
郭琦等: "《空间机器人运动控制方法》", 31 December 2010, 中国宇航出版社 * |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111015631A (zh) * | 2019-12-24 | 2020-04-17 | 上海理工大学 | 一种基于有限状态机的柔性外骨骼手辅助抓握训练控制方法 |
CN111015631B (zh) * | 2019-12-24 | 2022-11-11 | 上海理工大学 | 一种基于有限状态机的柔性外骨骼手辅助抓握训练控制方法 |
CN111597018A (zh) * | 2020-04-21 | 2020-08-28 | 清华大学 | 一种机器人作业调度方法及装置 |
CN111597018B (zh) * | 2020-04-21 | 2021-04-13 | 清华大学 | 一种机器人作业调度方法及装置 |
CN112549029A (zh) * | 2020-12-03 | 2021-03-26 | 天津(滨海)人工智能军民融合创新中心 | 一种基于行为树的机器人行为控制方法及装置 |
CN112549029B (zh) * | 2020-12-03 | 2022-05-27 | 天津(滨海)人工智能军民融合创新中心 | 一种基于行为树的机器人行为控制方法及装置 |
CN113848924A (zh) * | 2021-09-30 | 2021-12-28 | 乐聚(深圳)机器人技术有限公司 | 机器人的调度控制方法、装置、设备及存储介质 |
CN114578823A (zh) * | 2022-03-04 | 2022-06-03 | 深圳鹏行智能研究有限公司 | 机器人动作仿生规划方法、电子设备及存储介质 |
CN115145233A (zh) * | 2022-07-25 | 2022-10-04 | 西安热工研究院有限公司 | 一种机器人多级小粒度运动调度控制方法、装置及设备 |
CN115229799A (zh) * | 2022-08-29 | 2022-10-25 | 珠海格力智能装备有限公司 | 机器人的位置确定方法、确定装置以及机器人系统 |
CN119067419A (zh) * | 2024-11-07 | 2024-12-03 | 成都明途科技有限公司 | 处理任务的方法及装置、电子设备、存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110270998A (zh) | 机器人调度方法、电子设备和计算机可读存储介质 | |
CN110488807B (zh) | 用于运行机器人的方法、机器人和多智能体系统 | |
Srivastava et al. | Development of an intelligent agent-based AGV controller for a flexible manufacturing system | |
US11179843B2 (en) | Method for operating a robot in a multi-agent system, robot, and multi-agent system | |
Guo et al. | Multirobot data gathering under buffer constraints and intermittent communication | |
Rasmussen et al. | A brief introduction to unmanned systems autonomy services (UxAS) | |
CN110989582A (zh) | 基于路径预先占用的多agv自动避让式智能调度方法 | |
Shiroma et al. | CoMutaR: A framework for multi-robot coordination and task allocation | |
Cho et al. | Intelligent workstation controller for computer-integrated manufacturing: problems and models | |
JP2002023823A (ja) | 生産管理システム | |
EP3482265B1 (en) | Skill interface for industrial applications | |
Maimon | Real-time operational control of flexible manufacturing systems | |
JP2008530705A (ja) | 適応型機械プログラミングのためのシステム及び方法 | |
CN111898908A (zh) | 一种基于多智体的生产线调度系统及方法 | |
Tang et al. | Reactive multi-agent system for assembly cell control | |
CN113268352A (zh) | 面向通用服务机器人的多指令响应式任务协同管理方法 | |
US20190122157A1 (en) | Systems and methods for deploying groups of self-driving material-transport vehicles | |
Jiang et al. | Programming large-scale multi-robot system with timing constraints | |
Lavendelis et al. | Multi-agent robotic system architecture for effective task allocation and management | |
McDonnell et al. | A cascading auction protocol as a framework for integrating process planning and heterarchical shop floor control | |
Jungbluth et al. | Reinforcement learning-based scheduling of a job-shop process with distributedly controlled robotic manipulators for transport operations | |
Zhou et al. | A multi-agent-based agile scheduling model for a virtual manufacturing environment | |
CN112541709A (zh) | 一种智能仓储管理调配系统及其管理调配方法 | |
Hoffmann et al. | Developing self-organizing robotic cells using organic computing principles | |
Nath et al. | An approach for task execution in dynamic multirobot environment |
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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20190924 |