CN104820621B - 基于分布共享存储的智能小车协同方法 - Google Patents
基于分布共享存储的智能小车协同方法 Download PDFInfo
- Publication number
- CN104820621B CN104820621B CN201510206612.0A CN201510206612A CN104820621B CN 104820621 B CN104820621 B CN 104820621B CN 201510206612 A CN201510206612 A CN 201510206612A CN 104820621 B CN104820621 B CN 104820621B
- Authority
- CN
- China
- Prior art keywords
- trolley
- behavior
- collaboration
- shared memory
- distributed shared
- 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
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02P—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
- Y02P90/00—Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
- Y02P90/02—Total factory control, e.g. smart factories, flexible manufacturing systems [FMS] or integrated manufacturing systems [IMS]
Landscapes
- Control Of Position, Course, Altitude, Or Attitude Of Moving Bodies (AREA)
Abstract
本发明公开一种基于分布共享存储的智能小车协同方法,对于单个智能小车本身的适应能力,采用分解再合成的方法,利用统一的行为分解和仲裁器调度的方法简化了智能小车的开发过程,并且利用分布共享存储将这项技术在多车协同的场景下进行了扩展。共享存储作为智能小车协同应用的一个关键元素而存在于每一个参与协同的小车当中,用于描述协同情况的协同变量为小车屏蔽通信细节并提供一致性的保证,小车通过简单的读写操作读取协同变量并且在这些协同变量基础上应用分布式算法实现协同。本发明中的技术能够有效地构建分布共享存储,并且融入到单车开发的过程当中去,在典型的实际协同场景中,能够保证很高的可用性。
Description
技术领域
本发明涉及一种基于分布共享存储的智能小车协同方法,属于计算机应用领域,针对多个智能小车在实际运行中的环境,基于分布共享存储实现智能小车的协同。
背景技术
随着计算机技术的高速发展,移动机器人和各种自适应***日渐成为一个热门的研究项目,并且逐步融入到人们的日常生活当中。自适应***期望在一定环境中的机器人能够通过自身装配的一些列传感器来自主地感知环境,通过一定的逻辑和计算方法去适应环境并且完成相应的任务,从而减少人的参与。现有一些针对现实环境的自适应***的开发方法能够有效地开发并且调试相应的***。另一方面,在计算机***日益复杂的今天,如何让分布的多个计算机通过合理的方式协同工作一直都是计算机领域的一个经典问题。针对不同的问题,已经有很多成熟的工作成果,它们在传统的计算机上都已经被证明了能够完成相应的协同任务。
尽管自适应***的开发方法和各类分布式算法都行之有效,现有的工作却很少将分布式问题应用到移动的智能小车上,这是因为移动的智能小车工作在实际的物理环境当中,它会遇到不同的实际的适应问题,需要硬件设备在适应环境的同时兼顾分布式的问题;智能小车的开发平台和开发方法和传统的计算机完全不同,要将分布式的方法应用于智能小车平台上将面临极大的挑战。
发明内容
发明目的:针对现有技术中存在的问题与不足,本发明提供一种基于分布共享存储的智能小车协同方法,该方法能够有效地开发小车协同***,并且在典型的智能小车分布式场景中,能够保证很高的可用性。
技术方案:一种基于分布共享存储的智能小车协同方法,以简化在智能小车上的协同问题开发过程,其主要包括以下步骤:
1)为各单个小车封装动作,在小车识别分布式场景之前为其创建环境适应逻辑,将单车任务逐步分解成一系列简单的行为。
2)针对协同场景选取协同变量,构建小车的分布式共享存储并设计协同行为对共享存储进行管理。
3)确定分布式场景被识别后的小车目标任务及小车面对环境,将任务逐步分解成一系列简单的行为。
4)设计仲裁规则来调度和协调小车控制行为,将行为重组成为完整的智能小车协同任务。
上述步骤1)的具体过程为:
11) 从基本马达动作到小车复杂动作进行封装以组装无差别的小车动作集合,让小车能够完成基本的运行动作;
12) 结合传感器数据组成适应逻辑条件集合;
13) 将单车任务分解成多个简单的行为并确定行为的触发条件;
任务的分解是一个递归的过程,复杂任务首先被分解成若干个简单行为,这些简单行为又可以通过更加基本的小车动作组合而成,最终都是由步骤11中最基本的小车基本动作拼装而成。行为的触发条件通常由各传感器和自身运行状况决定,这些逻辑条件通常都包含在步骤12中抽象的逻辑条件集合中。分解的行为包括正常运行行为以及发生意外后的容错行为等等。
上述步骤2)的具体过程为:
21) 确定分布共享存储的读写方式,分布共享存储需要保持共享存储内容的更新方式并且保证读写的一致性。底层网络在分布的设备之间传递消息,对数据的修改都会发送给各个分布式节点,同意这样数据修改的节点会发送确认返回给想要修改的节点。只有当超过半数节点的确认之后修改才会成功,所有节点会一起更新这个数据。底层网络的形态可能是多种多样的,可以是蓝牙,WIFI等等。分布共享存储会屏蔽底层通信的环节,为小车提供可靠的读写操作,使得小车不需要再运行过程当中考虑网络间的消息传递过程,而只需要使用共享存储提供的读操作和写操作就可以可靠地获取本机想要的协同数据;
22) 选取一组变量作为协同变量组成分布共享存储的内容,这些数据可以描述当前面临的协同问题并直接被有权限的小车读写;
23) 构建协同行为。由于在传统设备上的协同问题已经是比较经典的问题,因此已经有很多比较成熟的算法可以使用。比如对于互斥问题来说,经典的算法有“Bakery算法”,“Dekker算法”,“Peterson算法”等等;而对于资源分配来说,常用的算法有“银行家算法”。具体需要使用什么协同算法需要根据具体面对的协同问题来决定,分布共享存储利用这些算法维护协同变量的值以指示协同的状态提交给小车控制部件;
上述步骤3)的具体过程为:
31) 结合传感器条件以及协同条件确定小车在识别协同任务之后需要采取的适应逻辑;
32) 确定小车在协同场景发生之后采取的行为,并如步骤13中一样进行行为分解,仍然只是分解而不考虑执行的顺序问题;
上述步骤4)的具体过程为:
41) 构建仲裁器,来读取行为的触发条件执行具体行为,并且设计仲裁规则来规范各个行为的具体执行顺序;
仲裁器的目的是每次选取一个逻辑条件符合当前传感器条件的行为,执行行为中的小车控制过程,执行完成后退出当前行为并继续仲裁;仲裁规则为仲裁器的仲裁提供指导规则,使得仲裁器能够在合适的时机选取到合适的行为来执行小车的控制逻辑。
42) 为之前设计的所有行为排定优先级,如果有多个行为可以同时满足被调度的条件时按照优先级顺序由高到低调度。
附图说明
图1为本发明的基于分布共享存储实现智能小车协同方法的***结构图;
图2为任务递归分解的示意图;
图3为仲裁调度行为的示意图。
具体实施方式
下面结合具体实施例,进一步阐明本发明,应理解这些实施例仅用于说明本发明而不用于限制本发明的范围,在阅读了本发明之后,本领域技术人员对本发明的各种等价形式的修改均落于本申请所附权利要求所限定的范围。
本发明方法主要包括如下几个方面:
1)物理小车的层次化封装
小车的动作是本发明的基础,小车是由左右两个马达组成的,马达可以按照指定的速度正转,反转以及转相应的圈数。小车所具有的一系列动作最终都可以归结为左右马达转动的互相配合。小车最基本的动作是前进,后退,转弯,其中前进和后退是马达同时正转和反转,而转弯则采取一个马达正转另一个向反方向转的方法;除此之外,通过前进,后退,转弯可以组合出更多的更复杂的小车动作,比如后退一段距离后转弯,行进到某个指定的位置等等。这些动作都可以看作是小车应该具有的固定动作,和具体的环境和任务无关。
2)任务分解
无论是单车任务还是协同任务都需要进行任务的分解,任务分解是一个递归的过程,任务会首先被分解成相对简单的小车行为,这些行为会再次被分解成物理小车的动作,最终会成为物理小车层次化封装后的与任务,环境无关的基本行为,图2显示了分解的层次。行为被分解完成之后还需要确定这些行为被触发外部条件,这些条件可能是传感器收集到的外部环境条件,也可能是小车本身的电机状态,也有可能是协同过程中产生的协同条件,这些条件指示小车的行为会在何种情况下被小车的控制部件执行。这些经过分解的行为,连同它们得到执行的条件都会放在一个数组当中,等待仲裁器的调度。
将任务分解成行为的好处是能够先完成比较简单而且独立的模块,最终通过拼接它们完成具体的复杂任务,这些行为也有可能被其他的任务再次使用。行为分解的过程中只需要将整个任务分成一些不同的阶段,找出每个阶段的触发条件即可,尽管有些行为可能因为重叠的条件而可能引起任务执行顺序的混乱,但这样的乱序会通过仲裁器的调度来修复。
3)分布共享存储的建立和管理
多个小车间的分布共享存储是本发明在智能小车协同问题上的核心部分。共享存储的内容可能是一个或者是一组共享变量,这些变量要能够反映协同问题的本质,比如互斥变量,协商问题的协商内容等等。本发明通过构建多个小车间的分布共享存储来协调上层的协同算法和底层具体的通信内容。分布共享存储对下层操作网络消息传递来维护数据的一致性和读写权限,对上层的协同算法提供读和写两个操作,为小车控制过程屏蔽了多车网络消息传递的具体细节。在小车看来所有的数据都好像是本地的传感器数据一样可以按照自己的权限进行读写并且应用相应的算法解决具体的协同问题。由于智能移动小车的开发方法大都是针对本地单个小车的,这种技术为智能移动小车这个特殊平台的编程提供了极大的便利。
4)仲裁调度
由于任务分解而得到的行为是独立的,而且在分解过程当中只是考虑的一些触发条件而并没有考虑执行顺序的问题,因此需要仲裁的规则来调度这些行为使得行为执行时不会因为顺序问题而失效。仲裁调度可以使用状态机的模型,通过行为执行过程实现状态转换来维护各个行为的执行顺序。如果多个行为的条件同时被满足而且他们之间不存在状态迁移的关系,则为它们设定固定的优先级,优先级高的会首先被调度到。图3示意了仲裁对行为的调度方式。
下面,通过如下的一个具体实例来对本发明的技术方案进行详细的说明。选用一个典型的应用案例——互斥。互斥是分布式***中的典型问题,由于智能移动小车在实际环境时的种种限制,导致在很多情况下,对于一些实际存在的物理资源这些小车智能采用互斥的访问方式。因此我们采取的互斥的例子在移动智能小车这个特殊的平台上有着很强的典型性。具体的任务描述如下:
两个小车分别在一个房间的两侧行进,房间前有一个小门,这个门同时只容许一辆小车通过,当多个小车发现门时,需要依次绕过这个门。
1)硬件环境:
两辆小车分别在一个门两侧行进,小车靠墙的那一边各自有一个超声波传感器可以感知距离,小车的前方有触摸传感器,可以感知是否有物体压住这个传感器,门只能允许每次通过一辆小车。
小车的传输环境不会有信息丢失,传输速度比较快,小车之间通过无线通信的方式相互连接,小车之间是一个自主的网络,外部没有服务器。
2)***运行过程:
a)单车适应过程:小车分别沿着各自的墙壁向前行进,这个单车过程中小车没有发现意外就一直前进;如果发现离开墙壁越来越远或者越来越近则分别向对应的方向调整前进方向;另外如果小车发现自己长时间不动则通过执行一次后退然后转弯的动作来使自己重新获得可以行动的空间。
b)构建共享存储:在本例中面对的是一个互斥问题,我们采用经典的互斥算法Bakery算法来解决这个问题。我们为每个小车建立两个变量,number和state,其中number表示算法中应用的排队号,number是一个非负整数,0表示不在队列中,number数值越大,表示它在队列中排的位置越靠后;state表示小车当前所处的状态,状态有以下几种取值:FARFROMGATE (离门很远)、ATGATE (遇到了门)、PERMMITOBTAINED (获准过门)。我们就选取所有小车的这两个变量作为协同变量。number初始值为0,表示没有要过门的车,state取FARFROMGATE,即离门很远。小车可以读取其他小车的这两个变量,但是只能修改自己拥有的变量值。
c)发现协同场景:小车会通过外部的传感器条件发现和感知协同场景,在本例中,当小车前方的触摸传感器撞到障碍物被按下时,即标志小车到达了需要过门的位置,这时协同场景被发现,小车的状态取值从FARFROMEGATE变为ATGATE
d)当小车的状态变为ATGATE时,这两辆小车将自身的number置为其他所有小车最大的number+1 (即自己的number变为最大),表示自己在队列的最后端;
e)本地不断查询自己是否能够使用临界资源,即自己的number是否已经变为最小的非0值,如果是最小的非0值,表示本次临界资源的竞争中自己胜出,将自己的state变为PERMMITOBTAINED,此时可以进行具体的过门动作转到步骤f),否则转到步骤g);
f)对于获胜的小车,过门的具体动作开始实施:小车撞墙后分别会转向没有墙的一侧并且继续前进,发现出了墙壁范围(即到达可通行的门)后向门的一边转弯并且通过门,发现过门之后小车绕回到原来所在的路线;
g)失败的小车在原地等待,等待过程中小车依然会去申请资源,不断查询自己的number是不是队列中最小的非0值,但是只要通行的小车还没有过门并释放资源,等待的小车就不可能获得通行的权利。
h)过门动作完成后小车会修改共享存储,将自己的number置为0,即释放资源,目前不再参与排队,并且将自己的state重新置为FARFROMGATE。
i)当有小车将自己的number置为0时,如果还有小车处在ATGATE状态(即还有小车想要过门),一定有一个处在步骤g)的小车,其number变为当前所有小车当中最小的非0值,这表示这个小车获得了临界资源的使用权,因此会有新的小车获知资源被释放,这辆小车转到步骤f),最终所有参与协同的小车的number都变为0,即所有小车都通过门。
Claims (4)
1.一种基于分布共享存储的智能小车协同方法,其特征在于,包括如下步骤:
步骤1、为各单个小车封装动作,在小车识别分布式场景之前为其创建环境适应逻辑,将单车任务逐步分解成一系列行为;
步骤2、针对协同场景选取协同变量,构建小车的分布式共享存储并设计协同行为对共享存储进行管理;
步骤3、确定分布式场景被识别后的小车目标任务及小车面对环境,将任务逐步分解成一系列的行为;
步骤4、设计仲裁规则来调度和协调控制小车行为,将行为重组成为完整的智能小车协同任务;
步骤1的具体过程为:
步骤1-1、从马达动作到小车复杂动作进行封装以组装无差别的小车动作集合,让小车能够完成运行动作;
步骤1-2、结合传感器数据组成适应逻辑条件集合;
步骤1-3、将单车任务分解成多个行为并确定行为的触发条件;
任务的分解是一个递归的过程,复杂任务首先被分解成若干个行为,这些行为又可以通过小车动作组合而成,最终都是由步骤1-1中的小车动作拼装而成;行为的触发条件由各传感器和自身运行状况决定,这些行为的触发条件都包含在步骤1-2中抽象的逻辑条件集合中;分解的行为包括正常运行行为以及发生意外后的容错行为。
2.如权利要求1所述的基于分布共享存储的智能小车协同方法,其特征在于,步骤2的具体过程为:
步骤2-1、确定分布共享存储的读写方式,分布共享存储需要保持共享存储内容的更新方式并且保证读写的一致性;底层网络在分布的设备之间传递消息,对数据的修改都会发送给各个分布式节点,同意这样数据修改的节点会发送确认返回给想要修改的节点;只有当超过半数节点的确认之后修改才会成功,所有节点会一起更新这个数据;底层网络包括蓝牙和WIFI;分布共享存储会屏蔽底层通信的环节,为小车提供可靠的读写操作,使得小车不需要再运行过程当中考虑网络间的消息传递过程,而只需要使用共享存储提供的读操作和写操作就可以可靠地获取本机想要的协同数据;
步骤2-2、选取一组变量作为协同变量组成分布共享存储的内容,这些分布共享存储的内容可以描述当前面临的协同问题并直接被有权限的小车读写;
步骤2-3、确定协同算法构建协同行为,利用这些协同算法维护协同变量的值以指示协同的状态提交给小车控制部件。
3.如权利要求1所述的基于分布共享存储的智能小车协同方法,其特征在于,步骤3的具体过程为:
步骤3-1、结合传感器条件以及协同条件确定小车在识别协同任务之后需要采取的适应逻辑;
步骤3-2、确定小车在协同场景发生之后采取的行为,并如步骤1-3中一样分解行为,行为仍然只是分解而不考虑执行的顺序问题。
4.如权利要求1所述的基于分布共享存储的智能小车协同方法,其特征在于,步骤4的具体过程为:
步骤4-1、构建仲裁器来读取行为的触发条件执行具体行为,并且设计仲裁规则来规范各个行为的具体执行顺序;
仲裁器的目的是每次选取一个逻辑条件符合当前传感器条件的行为,执行选取行为中的小车控制过程,执行完成后退出当前行为并继续仲裁;仲裁规则为仲裁器的仲裁提供指导规则,使得仲裁器能够选取行为来执行小车的控制逻辑;
步骤4-2、为之前设计的所有行为排定优先级,如果有多个行为可以同时满足被调度的条件时按照优先级顺序由高到低调度。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510206612.0A CN104820621B (zh) | 2015-04-27 | 2015-04-27 | 基于分布共享存储的智能小车协同方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510206612.0A CN104820621B (zh) | 2015-04-27 | 2015-04-27 | 基于分布共享存储的智能小车协同方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104820621A CN104820621A (zh) | 2015-08-05 |
CN104820621B true CN104820621B (zh) | 2018-07-24 |
Family
ID=53730923
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510206612.0A Active CN104820621B (zh) | 2015-04-27 | 2015-04-27 | 基于分布共享存储的智能小车协同方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104820621B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3528449B1 (en) * | 2018-02-16 | 2022-10-05 | Sony Group Corporation | Electronic devices, systems and methods for vehicular communication |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101359225A (zh) * | 2008-08-29 | 2009-02-04 | 北京大学 | 一种多水下机器人协作控制*** |
CN101612733A (zh) * | 2008-06-25 | 2009-12-30 | 中国科学院自动化研究所 | 一种分布式多传感器移动机器人*** |
CN102033536A (zh) * | 2010-12-22 | 2011-04-27 | 大连理工大学 | 一种多机器人***的调度组织协作***及方法 |
CN102169347A (zh) * | 2011-03-08 | 2011-08-31 | 浙江工业大学 | 基于协作协进化和多种群遗传算法的多机器人路径规划*** |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20100100134A (ko) * | 2009-03-05 | 2010-09-15 | 한국전자통신연구원 | 네트워크 로봇 서비스를 위한 보안 서비스 방법 및 장치 |
US10802876B2 (en) * | 2013-05-22 | 2020-10-13 | Massachusetts Institute Of Technology | Multiprocessor scheduling policy with deadline constraint for determining multi-agent schedule for a plurality of agents |
-
2015
- 2015-04-27 CN CN201510206612.0A patent/CN104820621B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101612733A (zh) * | 2008-06-25 | 2009-12-30 | 中国科学院自动化研究所 | 一种分布式多传感器移动机器人*** |
CN101359225A (zh) * | 2008-08-29 | 2009-02-04 | 北京大学 | 一种多水下机器人协作控制*** |
CN102033536A (zh) * | 2010-12-22 | 2011-04-27 | 大连理工大学 | 一种多机器人***的调度组织协作***及方法 |
CN102169347A (zh) * | 2011-03-08 | 2011-08-31 | 浙江工业大学 | 基于协作协进化和多种群遗传算法的多机器人路径规划*** |
Non-Patent Citations (1)
Title |
---|
多移动机器人协作方法研究;姜健;《中国博士学位论文全文数据库 信息科技辑》;20100215(第02期);正文第2章第2.2、2.3节,第4章第4.1、4.2节,第5章第5.2节,图2、5 * |
Also Published As
Publication number | Publication date |
---|---|
CN104820621A (zh) | 2015-08-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Wu et al. | Modeling and deadlock avoidance of automated manufacturing systems with multiple automated guided vehicles | |
EP3425849B1 (en) | State control method and device | |
US9707681B2 (en) | Anti-collision management of overlapping robotic movements | |
Wu et al. | Modeling and deadlock control of automated guided vehicle systems | |
Lee | A Petri net design of command filters for semiautonomous mobile sensor networks | |
CN101201598B (zh) | 工业控制***以及在工业控制***中促进模块检索的方法 | |
CN105467997B (zh) | 基于线性时序逻辑理论的仓储机器人路径规划方法 | |
Lee et al. | An application of Petri nets to supervisory control for human-computer interactive systems | |
CN111465475A (zh) | 用于运行多代理***中的机器人的方法、机器人以及多代理*** | |
CN107407918A (zh) | 利用app扩展可编程逻辑控制器 | |
CN109508002A (zh) | 一种机器人清扫地面的方法、装置及机器人 | |
CN112464497B (zh) | 基于分布式***的故障演练方法、装置、设备及介质 | |
CN104820621B (zh) | 基于分布共享存储的智能小车协同方法 | |
Kawano | Hierarchical sub-task decomposition for reinforcement learning of multi-robot delivery mission | |
Pelc | Deterministic gathering with crash faults | |
Du et al. | Robust deadlock avoidance control for AMSs with assembly operations embedded in flexible routes using Petri nets | |
CN110505655A (zh) | 数据指令处理方法、存储介质及蓝牙盾 | |
Chao | An incremental approach to extracting minimal bad siphons | |
CN103699104B (zh) | 一种死锁避免控制方法、装置和自动化生产*** | |
CN104145260B (zh) | 一种分布式作业***的业务处理方法、执行单元和*** | |
EP3266570A1 (en) | Method for anti-collision management of overlapping robotic movements | |
Čapkovič | Modelling, analysing and control of interactions among agents in MAS | |
Schuppe et al. | Decentralized Multi-Agent Strategy Synthesis under LTLf Specifications via Exchange of Least-Limiting Advisers | |
Xing et al. | Optimal liveness Petri net controllers with minimal structures for automated manufacturing systems | |
Paikan et al. | A port-arbitrated mechanism for behavior selection in humanoid robotics |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
EXSB | Decision made by sipo to initiate substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |