CN113940198B - 多机器人水果采摘方法、装置、电子设备及存储介质 - Google Patents
多机器人水果采摘方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN113940198B CN113940198B CN202111242944.6A CN202111242944A CN113940198B CN 113940198 B CN113940198 B CN 113940198B CN 202111242944 A CN202111242944 A CN 202111242944A CN 113940198 B CN113940198 B CN 113940198B
- Authority
- CN
- China
- Prior art keywords
- picking
- point
- state
- target
- picking point
- 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
- 238000000034 method Methods 0.000 title claims abstract description 54
- 235000013399 edible fruits Nutrition 0.000 title claims abstract description 41
- 230000008569 process Effects 0.000 claims description 16
- 238000004590 computer program Methods 0.000 claims description 11
- 238000004891 communication Methods 0.000 description 14
- 230000002457 bidirectional effect Effects 0.000 description 4
- 230000000977 initiatory effect Effects 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 3
- 230000008859 change Effects 0.000 description 2
- 238000005265 energy consumption Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 238000010187 selection method Methods 0.000 description 2
- 230000006872 improvement Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Images
Classifications
-
- A—HUMAN NECESSITIES
- A01—AGRICULTURE; FORESTRY; ANIMAL HUSBANDRY; HUNTING; TRAPPING; FISHING
- A01D—HARVESTING; MOWING
- A01D46/00—Picking of fruits, vegetables, hops, or the like; Devices for shaking trees or shrubs
- A01D46/30—Robotic devices for individually picking crops
-
- 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
-
- 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
-
- 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/1679—Programme controls characterised by the tasks executed
-
- 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
- Engineering & Computer Science (AREA)
- Robotics (AREA)
- Mechanical Engineering (AREA)
- Life Sciences & Earth Sciences (AREA)
- Environmental Sciences (AREA)
- Manipulator (AREA)
Abstract
本申请属于机器人控制技术领域,公开了一种多机器人水果采摘方法、装置、电子设备及存储介质,通过获取采摘点坐标集合;采摘点坐标集合包含各采摘点的坐标数据;根据采摘点坐标集合建立采摘点状态缓存;采摘点状态缓存记录有各采摘点的状态;循环执行以下步骤直到采摘点状态缓存中没有采摘点的状态为未分配状态:选取一个状态为未分配状态的采摘点为目标采摘点,并把其状态更新为已分配状态;把目标采摘点的更新后的状态信息广播至其它采摘机器人,使其它采摘机器人更新本地的采摘点状态缓存;根据目标采摘点的坐标数据,移动至目标采摘点处进行采摘;从而各机器人之间可自主分配采摘任务,自动化程度较高,可减少人工分配采摘任务的工作。
Description
技术领域
本申请涉及机器人控制技术领域,具体而言,涉及一种多机器人水果采摘方法、装置、电子设备及存储介质。
背景技术
目前,一些水果种植园会使用采摘机器人进行水果采摘,这些采摘机器人一般为AGV车搭载多轴机器人(如6轴机器人)而成。为了提高采摘效率,通常会使用多个采摘机器人联合进行水果采摘,一般地,当使用多个采摘机器人联合进行种植园的水果采摘时,需要人工预先为各采摘机器人分配好采摘任务,使各采摘机器人负责不同采摘点的水果采摘任务,一旦采摘机器人的数量发生变化,就需要重新人工分配各采摘机器人的采摘任务,自动化程度较低。
发明内容
本申请的目的在于提供一种多机器人水果采摘方法、装置、电子设备及存储介质,各机器人之间可自主分配采摘任务,自动化程度较高,可减少人工分配采摘任务的工作。
第一方面,本申请提供了一种多机器人水果采摘方法,用于采摘机器人;包括以下步骤:
A1.获取采摘点坐标集合;所述采摘点坐标集合包含各采摘点的坐标数据;
A2.根据所述采摘点坐标集合建立采摘点状态缓存;所述采摘点状态缓存记录有各所述采摘点的状态;
A3.循环执行以下步骤,直到采摘点状态缓存中没有采摘点的状态为未分配状态:
A301.选取一个状态为未分配状态的所述采摘点为目标采摘点,并把所述目标采摘点的状态更新为已分配状态;
A302.把所述目标采摘点的更新后的状态信息广播至其它采摘机器人,使其它采摘机器人更新本地的采摘点状态缓存;
A303.根据所述目标采摘点的坐标数据,移动至所述目标采摘点处进行采摘。
该多机器人水果采摘方法,由各采摘机器人根据本地的采摘点状态缓存,自动选取状态为未分配状态的所述采摘点为目标采摘点,并自动移动到该目标采摘点处进行采摘,每次选取好目标采摘点后,把该目标采摘点的状态更新为已分配状态,并广播至其它机器人进行采摘点状态缓存的更新,从而保证所有采摘机器人的采摘点状态缓存一致,进而保证各机器人在后续选取目标采摘点的时候选采摘点均为真正未被分配的采摘点;从而,各机器人之间可自主分配采摘任务,自动化程度较高,可减少人工分配采摘任务的工作。
优选地,步骤A301包括:
以状态为未分配状态的所述采摘点中,离当前位置最近的一个所述采摘点为目标采摘点。
优选地,步骤A302包括:
周期性地把所述目标采摘点的更新后的状态信息广播至其它采摘机器人,直到接收到所有所述其它采摘机器人发回的回复信号。
从而确保所有其它采摘机器人均已进行采摘点状态缓存的更新,保证所有采摘机器人的采摘点状态缓存一致。
优选地,步骤A303包括:
到达所述目标采摘点处并停止移动后,若本采摘机器人与至少一个其它采摘机器人之间的路由不可达,则广播建立无线自组织网络路由请求信息,以建立与路由不可达的所述其它采摘机器人的路由。
由于采摘机器人的位置发生变化后,采摘机器人间的原先的路由可能不可达,因此需要重新建立与不可达的其它采摘机器人之间的路由;此处,只有当采摘机器人到达新的采摘点位置并引起路由不可达时才发起路由更新请求,与定期发起路由更新请求方式相比,可降低采摘机器人的功耗。
优选地,所述到达所述目标采摘点处并停止移动后,广播建立无线自组织网络路由请求信息,以建立与所有所述其它采摘机器人的路由的步骤之后,还包括:
把所述目标采摘点的状态更新为采摘中状态,并把所述目标采摘点的更新后的状态信息广播至其它采摘机器人,使其它采摘机器人更新本地的采摘点状态缓存。
优选地,所述把所述目标采摘点的状态更新为采摘中状态,并把所述目标采摘点的更新后的状态信息广播至其它采摘机器人,使其它采摘机器人更新本地的采摘点状态缓存的步骤之后,还包括:
完成所述目标采摘点的采摘任务后,把所述目标采摘点的状态更新为已完成状态,并把所述目标采摘点的更新后的状态信息广播至其它采摘机器人,使其它采摘机器人更新本地的采摘点状态缓存。
优选地,所述到达所述目标采摘点处并停止移动后,广播建立无线自组织网络路由请求信息,以建立与所有所述其它采摘机器人的路由的步骤包括:
若无法与其它采摘机器人建立路由,则在完成所述目标采摘点的采摘任务后,停止获取下一个目标采摘点。
第二方面,本申请提供了一种多机器人水果采摘装置,用于采摘机器人;包括:
第一获取模块,用于获取采摘点坐标集合;所述采摘点坐标集合包含各采摘点的坐标数据;
第一执行模块,用于根据所述采摘点坐标集合建立采摘点状态缓存;所述采摘点状态缓存记录有各所述采摘点的状态;
第二执行模块,用于循环执行以下步骤,直到采摘点状态缓存中没有采摘点的状态为未分配状态:
选取一个状态为未分配状态的所述采摘点为目标采摘点,并把所述目标采摘点的状态更新为已分配状态;
把所述目标采摘点的更新后的状态信息广播至其它采摘机器人,使其它采摘机器人更新本地的采摘点状态缓存;
根据所述目标采摘点的坐标数据,移动至所述目标采摘点处进行采摘。
该多机器人水果采摘装置,由各采摘机器人根据本地的采摘点状态缓存,自动选取状态为未分配状态的所述采摘点为目标采摘点,并自动移动到该目标采摘点处进行采摘,每次选取好目标采摘点后,把该目标采摘点的状态更新为已分配状态,并广播至其它机器人进行采摘点状态缓存的更新,从而保证所有采摘机器人的采摘点状态缓存一致,进而保证各机器人在后续选取目标采摘点的时候选采摘点均为真正未被分配的采摘点;从而,各机器人之间可自主分配采摘任务,自动化程度较高,可减少人工分配采摘任务的工作。
第三方面,本申请提供了一种电子设备,包括处理器和存储器,所述存储器存储有所述处理器可执行的计算机程序,所述处理器执行所述计算机程序时,运行如前文所述多机器人水果采摘方法中的步骤。
第四方面,本申请提供了一种存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时运行如前文所述多机器人水果采摘方法中的步骤。
有益效果:
本申请提供的多机器人水果采摘方法、装置、电子设备及存储介质,通过获取采摘点坐标集合;所述采摘点坐标集合包含各采摘点的坐标数据;根据所述采摘点坐标集合建立采摘点状态缓存;所述采摘点状态缓存记录有各所述采摘点的状态;循环执行以下步骤,直到采摘点状态缓存中没有采摘点的状态为未分配状态:选取一个状态为未分配状态的所述采摘点为目标采摘点,并把所述目标采摘点的状态更新为已分配状态;把所述目标采摘点的更新后的状态信息广播至其它采摘机器人,使其它采摘机器人更新本地的采摘点状态缓存;根据所述目标采摘点的坐标数据,移动至所述目标采摘点处进行采摘;从而各机器人之间可自主分配采摘任务,自动化程度较高,可减少人工分配采摘任务的工作。
本申请的其他特征和优点将在随后的说明书阐述,并且,部分地从说明书中变得显而易见,或者通过实施本申请了解。
附图说明
图1为本申请实施例提供的多机器人水果采摘方法的流程图。
图2为本申请实施例提供的多机器人水果采摘装置的结构示意图。
图3为本申请实施例提供的电子设备的结构示意图。
图4为一种示例性的采摘机器人的位置分布图。
具体实施方式
下面将结合本申请实施例中附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。同时,在本申请的描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
请参照图1,图1是本申请一些实施例中的一种多机器人水果采摘方法,用于采摘机器人;包括以下步骤:
A1.获取采摘点坐标集合;采摘点坐标集合包含各采摘点的坐标数据;
A2.根据采摘点坐标集合建立采摘点状态缓存;采摘点状态缓存记录有各采摘点的状态;
A3.循环执行以下步骤,直到采摘点状态缓存中没有采摘点的状态为未分配状态:
A301.选取一个状态为未分配状态的采摘点为目标采摘点,并把目标采摘点的状态更新为已分配状态;
A302.把目标采摘点的更新后的状态信息广播至其它采摘机器人,使其它采摘机器人更新本地的采摘点状态缓存;
A303.根据目标采摘点的坐标数据,移动至目标采摘点处进行采摘。
该多机器人水果采摘方法,由各采摘机器人根据本地的采摘点状态缓存,自动选取状态为未分配状态的采摘点为目标采摘点,并自动移动到该目标采摘点处进行采摘,每次选取好目标采摘点后,把该目标采摘点的状态更新为已分配状态,并广播至其它机器人进行采摘点状态缓存的更新,从而保证所有采摘机器人的采摘点状态缓存一致,进而保证各机器人在后续选取目标采摘点时的候选采摘点均为真正未被分配的采摘点;从而,各机器人之间可自主分配采摘任务,自动化程度较高,可减少人工分配采摘任务的工作。
其中,可预先把各采摘点的坐标数据记录在一个采摘点数据文件中,并把该采摘点数据文件下发到各采摘机器人;从而,步骤A1包括:加载采摘点数据文件,从该采摘点数据文件中提取各采摘点的坐标数据得到采摘点坐标集合。
在一些实施方式中,采摘点数据文件中还记录有各采摘点的编号,从而采摘点坐标集合还可包含各采摘点的编号,例如,在采摘点坐标集合中,每个采摘点的坐标数据和编号数据以一个组元(a,x,y)的形式记录,其中a为采摘点的编号,x、y为该采摘点的坐标数据。从而,采摘点状态缓存中还可包含各采摘点的编号。
在一些实施方式中,可预先为各采摘机器人分配一个初始采摘点作为第一个目标采摘点,从而,步骤A301包括:以预先分配的初始采摘点为第一个目标采摘点。
在另一些实施方式中,可以选取离当前位置最近的采摘点为第一个目标采摘点,从而,步骤A301包括:选取离当前位置(本采摘机器人的当前位置)最近的一个采摘点为第一个目标采摘点。其中,本采摘机器人当前的位置可通过本采摘机器人上的定位模块测得,通过计算当前位置与各采摘点的距离,从而可确定离当前位置最近的采摘点。
有时候,可能有多个采摘机器人选取的第一个目标采摘点相同(以下把这些选取同一个第一个目标采摘点的采摘机器人称为候选机器人),此时可根据各候选机器人的编号进行分配(每个采摘机器人均分配有一个编号),例如把该第一个目标采摘点分配给编号最小的候选机器人,其它候选机器人重新选取第一个目标采摘点。从而,“选取离当前位置最近的一个采摘点为第一个目标采摘点”的步骤之后,还包括:若有其它采摘机器人选取的第一个目标采摘点与本采摘机器人选取的第一个目标采摘点相同,则判断本采摘机器人的编号是否为所有候选机器人的编号中的最小编号,若是,则判定选取的第一个目标采摘点有效,否则,判定选取的第一个目标采摘点无效并重新选取其它采摘点为第一个目标采摘点。
其中,在重新选取其它采摘点为第一个目标采摘的时候,可在状态为未分配状态的采摘点中选取离当前位置最近的一个采摘点为第一个目标采摘。
对于第一个目标采摘点之后的目标采摘点,可采用随机选取的方式在状态为未分配状态的采摘点中选取,从而,步骤A301包括:在状态为未分配状态的采摘点中,随机选取一个采摘点为目标采摘点。
对于第一个目标采摘点之后的目标采摘点,也可以选取离当前位置最近的采摘点为目标采摘点,从而,步骤A301包括:以状态为未分配状态的采摘点中,离当前位置(本采摘机器人的当前位置)最近的一个采摘点为目标采摘点。与上一种方式相比,更有利于减少采摘机器人的移动的总路程,从而提高工作效率,降低能耗。
在一些优选实施方式中,步骤A302包括:
周期性地把目标采摘点的更新后的状态信息广播至其它采摘机器人,直到接收到所有其它采摘机器人发回的回复信号。
由于进行广播时,可能有其它采摘机器人发送位置变化而导致路由不可达或者存在干扰(尤其是当采用UDP协议进行通信时,容易受到干扰),从而无法及时接收到该信息,因此,需要重复地进行广播,直到接收到所有其它采摘机器人发回的回复信号,从而确保所有其它采摘机器人均已进行采摘点状态缓存的更新,保证所有采摘机器人的采摘点状态缓存一致。需要说明的是,其它采摘机器人在接收到该信息并更新本地的采摘点状态缓存后,会向发送该信息的源节点(即本采摘机器人)发回回复信号,以确认更新成功。当本采摘机器人接收到其它采摘机器人发送的状态信息后,也会进行本地的采摘点状态缓存的更新,并在更新完成后发回回复信号。
有时候,可能有多个采摘机器人在相近的时间内完成当前目标采摘点的采摘,并选取同一个采摘点为下一个目标采摘点,此时,该目标采摘点分配给这些采摘机器人中的编号最小的一个。例如,A,B机器人均完成采摘点任务,均选取同一个新的采摘点O为下一个目标采摘点,A节点广播选定结果(O->A),B节点广播选定结果(O->B);若 A先收到所有其它采摘机器人的回复信号,且A的编号较小,则A继续广播选定结果(O->A),否则停止广播该选定结果(O->A),并重新选取下一个目标采摘点;同理如果B先收到所有其它采摘机器人的回复信号,且B的编号较小,则B继续广播选定结果(O->B),否则停止广播该选定结果(O->B),并重新选取下一个目标采摘点。
在一些优选实施方式中,步骤A303包括:
A3031. 到达所述目标采摘点处并停止移动后,若本采摘机器人与至少一个其它采摘机器人之间的路由不可达,则广播建立无线自组织网络路由请求信息,以建立与路由不可达的所述其它采摘机器人的路由。
由于采摘机器人的位置发生变化后,采摘机器人间的原先的路由可能不可达,因此需要重新建立与不可达的其它采摘机器人之间的路由;此处,只有当采摘机器人到达新的采摘点位置并引起路由不可达时才发起路由更新请求,与定期发起路由更新请求方式相比,可降低采摘机器人的功耗。
具体地,步骤A3031包括:检测本采摘机器人的路由缓存中是否有与目标采摘机器人(即需要进行通信的其它采摘机器人)之间的有效路由,若没有,则广播第一RREQ(RouteRequest,路由请求)分组,以启动一个路由发现过程来找到一条到达该目标采摘机器人的可用路由。其它各采摘机器人在接收到该第一RREQ分组时,进行如下处理:
1)如果第一RREQ分组携带的源路由节点列表中包含本节点(节点为采摘机器人),则将该第一RREQ分组丢弃;
2)检查前一节点是否在本节点的通信范围内,若不在,则丢弃该第一RREQ分组,若不确定(是否在本节点的通信范围内),则向前一节点发送一TTL值为“1”的第二RREQ分组,如果接收不到前一节点回复的第二RREP(Route Reoly,路由回复)分组,则丢弃该第一RREQ分组;从而保证相邻的节点之间的链路为双向链路(若接收到前一节点回复的第二RREP分组,表示本节点与前一节点之间的链路为双向链路,继续对第一RREQ分组进行处理);
3)如果第一RREQ分组的目标节点为本节点,则向发起第一RREQ分组的源节点返回第一RREP分组;具体地,把本节点的IP地址追加到第一RREQ分组携带的源路由的节点IP地址列表中,将得到的源路由的节点IP地址列表作为返回给源节点的完整路由封装在第一RREP分组中发送给源节点,并将处理后的第一RREQ分组删除;
4)若本节点当地的路由请求表中有与发起第一RREQ分组的源节点对应的路由请求表入口(表示本节点以前接收过该第一RREQ分组),则在当地路由缓存中查看是否有与该第一RREQ分组的路由请求号和目的节点IP地址均相对应的入口,如果有,则把接收到的第一RREQ分组丢弃;
5)若本节点当地的路由请求表中没有与发起第一RREQ分组的源节点对应的路由请求表入口(表示本节点以前没有接收过该第一RREQ分组),则按以下方式处理该第一RREQ分组:根据该第一RREQ分组的路由请求序号和目的节点IP地址,为该第一RREQ分组在本节点的路由请求表中创建一入口,如果本节点在当地路由缓存中查找到通往第一RREQ分组的目的节点的路由,则向发起第一RREQ分组的源节点回复一第三RREP分组(称为“缓存路径回复(cached Route Reply)”),如果本节点在当地路由缓存中查找不到通往第一RREQ分组的目的节点的路由,则把本节点的IP地址追加到第一RREQ分组携带的源路由的节点地址列表中,并把更新后的第一RREQ分组广播出去。
进一步地,本采摘机器人(发起第一RREQ分组的源节点)接收到其它采摘机器人(其它节点)发回的RREP分组后,只保留通往目的节点的跳数最少的路由。
其中,对于本采摘机器人,当接收到其它采摘机器人发起的第一RREQ分组时,也需要进行前述的1)-5)步的处理。
在第5)步中,中间节点在自己的路由缓存中找到通往第一RREQ分组的目的节点的路由,则要向源节点回复一cached Route Reply分组。这种机制可以大大减小网络中因为路由发现过程所造成的开销,因为这种机制可以大大减少路由发现过程中的RREQ广播报文。中间节点发送完路由缓存回复后,就不再继续广播第一RREQ分组了。
在第3)步中,目的节点在把第一RREP分组发送至源节点时,可沿第一RREP分组中携带的源路由的逆向路由依次传输,该过程中,中间节点收到该第一RREP分组时,自动更新本中间节点到目的节点的路由信息。
通过上述方式建立路由,具有以下优点:使用路由缓存技术减少了路由建立的开销;保证了各节点之间(即各采摘机器人之间)的路由跳数最少;没有节点要发送数据时,网络中的没有通信开销,支持节点睡眠;不需要定时更新和维护路由信息。
例如图4,假设有A、B、C、D四个采摘机器人,采摘机器人之间无线网络传输的有效距离为40m,AB之间距离为30m,AC之间距离为30m,BD之间距离为30m,CD之间距离为30m,AD之间距离为42.42m。 A与D之间不直接可达(因为超过40m)。现由A发起到建立无线自组织网络路由请求信息,建立路由的过程如下:
A->B路由
假设A节点的路由表(路由表为路由缓存中的路由表)为空;
A向BCD广播要求建立从A通往B的路由的RREQ报文(A......B),其中RREQ报文(A......B)的括号中的A表示源节点地址、B表示目标节点地址;
当B接收到RREQ报文(A......B),执行前述的第3)步,从而A节点的路由表如下:
当C接收到RREQ报文(A......B),执行前述的第5)步,报文变为RREQ报文(A,C......B),并继续广播该RREQ报文(A,C......B),其中,RREQ报文(A,C......B)的括号中的C为A的下一跳节点地址;
当D接收到RREQ报文(A,C......B),执行前述的第5)步,报文变为RREQ报文(A,C,D......B),并继续广播该RREQ报文(A,C,D......B),其中,RREQ报文(A,C,D......B)的括号中的D为C的下一跳节点地址;
当B接收到RREQ报文(A,C,D......B),执行前述的第3)步,从而更新A节点的路由表,且B在执行第3)步时返回的RREP报文会依次经过D和C,从而D和C节点的路由表会更新,更新结果如下:
由于源节点只保留跳数最少的路由,再次更新A节点的路由表,更新结果如下:
A->C路由
A向BCD广播要求建立从A通往C的路由的RREQ报文(A......C),其中RREQ报文(A......C)的括号中的A表示源节点地址、C表示目标节点地址;
当C接收到RREQ报文(A......C),执行前述的第3)步,从而A节点的路由表如下:
当B接收到RREQ报文(A......C),执行前述的第5)步,报文变为RREQ报文(A,B......C),并继续广播该RREQ报文(A,B......C),其中,RREQ报文(A,B......C)的括号中的B为A的下一跳节点地址;
当D接收到RREQ报文(A,B......C),执行前述的第5)步,报文变为RREQ报文(A,B,D......C),并继续广播该RREQ报文(A,B,D......C),其中,RREQ报文(A,B,D......C)的括号中的D为B的下一跳节点地址;
当C接收到RREQ报文(A,B,D......C),执行前述的第3)步,从而更新A节点的路由表,且C在执行第3)步时返回的RREP报文会依次经过D和B,从而D和B节点的路由表会更新,更新结果如下:
由于源节点只保留跳数最少的路由,再次更新A节点的路由表,更新结果如下:
A->D路由
A向BCD广播要求建立从A通往D的路由的RREQ报文(A......D),其中RREQ报文(A......D)的括号中的A表示源节点地址、D表示目标节点地址;
当B接收到RREQ报文(A......D),执行前述的第5)步,报文变为RREQ报文(A,B......D),并继续广播该RREQ报文(A,B......D),其中,RREQ报文(A,B......D)的括号中的B为A的下一跳节点地址;
当D接收到RREQ报文(A,B......D),执行前述的第3)步,从而更新A节点的路由表,且D在执行第3)步时返回的RREP报文会经过B,从而B节点的路由表会更新,更新结果如下:
当C接收到RREQ报文(A......D),执行前述的第5)步,报文变为RREQ报文(A,C......D),并继续广播该RREQ报文(A,C......D),其中,RREQ报文(A,C......D)的括号中的C为A的下一跳节点地址;
当D接收到RREQ报文(A,C......D),执行前述的第3)步,从而更新A节点的路由表,且D在执行第3)步时返回的RREP报文会经过C,从而C节点的路由表会更新,更新结果如下:
若此后,B又发起建立无线自组织网络路由请求信息,建立路由的过程如下:
此时,B的初始路由表为:
B->A路由
B向ACD广播要求建立从B通往A的路由的RREQ报文(B......A),其中RREQ报文(B......A)的括号中的B表示源节点地址、A表示目标节点地址;
当A接收到RREQ报文(B......A),执行前述的第3)步,从而B节点的路由表如下:
当D接收到RREQ报文(B......A),执行前述的第5)步,报文变为RREQ报文(B,D......A),并继续广播该RREQ报文(B,D......A),其中,RREQ报文(B,D......A)的括号中的D为B的下一跳节点地址;
当C接收到RREQ报文(B,D......A),执行前述的第5)步,报文变为RREQ报文(B,D,C......A),并继续广播该RREQ报文(B,D,C......A),其中,RREQ报文(B,D,C......A)的括号中的C为D的下一跳节点地址;
当A接收到RREQ报文(B,D,C......A),执行前述的第3)步,从而更新B节点的路由表,且A在执行第3)步时返回的RREP报文会经过C、D,从而C、D节点的路由表会更新,更新结果如下:
由于源节点只保留跳数最少的路由,再次更新B节点的路由表,更新结果如下:
B->D路由
由于B节点的路由表中已有通往D节点的有效路由,无需发起RREQ报文,B节点的路由表保持为:
B->C路由
由于B节点的路由表中已有通往C节点的有效路由,无需发起RREQ报文,B节点的路由表保持为:
若此后,C又发起建立无线自组织网络路由请求信息,建立路由的过程如下:
此时,C的初始路由表为:
C->A路由
由于C节点的路由表中已有通往A节点的有效路由,无需发起RREQ报文,C节点的路由表保持为:
C->B路由
由于C节点的路由表中已有通往B节点的有效路由,无需发起RREQ报文,C节点的路由表保持为:
C->D路由
由于C节点的路由表中已有通往D节点的有效路由,无需发起RREQ报文,C节点的路由表保持为:
若此后,D又发起建立无线自组织网络路由请求信息,建立路由的过程如下:
此时,D的初始路由表为:
D->A路由
由于D节点的路由表中已有通往A节点的有效路由,无需发起RREQ报文,D节点的路由表保持为:
在采摘过程中,如果出现已有的D->A路由不可达,即从D到A没有有效路由,则将按照以下规则建立D->A路由:
D向ABC广播要求建立从D通往A的路由的RREQ报文(D......A),其中RREQ报文(D......A)的括号中的D表示源节点地址、A表示目标节点地址;
当B接收到RREQ报文(D......A),执行前述的第4)步,B节点已有B->A路由,B节点在自己的路由缓存中找到通往A的路由后向D节点回复一cached Route Reply分组,且回复后B节点不再广播该RREQ报文(D......A),D节点接收到该cached Route Reply分组后,更新D的路由表为:
当C接收到RREQ报文(D......A),执行前述的第4)步,C节点已有C->A路由,C节点在自己的路由缓存中找到通往A的路由后向D节点回复一cached Route Reply分组,且回复后C节点不再广播该RREQ报文(D......A),D节点接收到该cached Route Reply分组后,更新D的路由表为:
D->B路由
由于D节点的路由表中已有通往B节点的有效路由,无需发起RREQ报文,D节点的路由表保持为:
D->C路由
由于D节点的路由表中已有通往C节点的有效路由,无需发起RREQ报文,D节点的路由表保持为:
在一些实施方式中,步骤A3031之后,还包括:
A3032.把目标采摘点的状态更新为采摘中状态,并把目标采摘点的更新后的状态信息广播至其它采摘机器人,使其它采摘机器人更新本地的采摘点状态缓存。
若本采摘机器人在采摘过程中发生故障,导致对应的采摘点的采摘中状态持续时间过长,则其它采摘机器人可通过该采摘点的采摘中状态持续时间判断本采摘机器人是否发生故障,以便在判定本采摘机器人发生故障后及时通知管理人员。其中,在进行广播时,可周期性地进行广播,直到接收到所有其它采摘机器人发回的回复信号;从而保证各采摘机器人的采摘点状态缓存一致。
在一些实施方式中,步骤A3032之后,还包括:
A3033.完成目标采摘点的采摘任务后,把目标采摘点的状态更新为已完成状态,并把目标采摘点的更新后的状态信息广播至其它采摘机器人,使其它采摘机器人更新本地的采摘点状态缓存。
在完成采集后把采摘点的状态更新为已完成状态,避免该采集点的状态一直为采摘中状态而导致其它采摘机器人把本采摘机器人误判为发生故障。其中,在进行广播时,可周期性地进行广播,直到接收到所有其它采摘机器人发回的回复信号;从而保证各采摘机器人的采摘点状态缓存一致。
在一些优选实施方式中,步骤A3031包括:
若无法与其它采摘机器人建立路由,则在完成目标采摘点的采摘任务后,停止获取下一个目标采摘点。
其中,在连续N(N为预设的正整数)次发起第一RREQ分组后,均无法与其它采摘机器人建立有效路由,则判定本采摘机器人通信故障,从而在完成当前的目标采摘点的采摘任务后,不再获取下一个采摘任务,直到与其它采摘机器人的通信连接恢复。
需要说明的是,采用该多机器人水果采摘方法进行水果采摘,可在任意时刻加入或撤出采摘机器人,当加入新的采摘机器人时,新加入的采摘机器人可通过其它采摘机器人广播的信息快速地把自身的采摘点状态缓存更新至最新状态,从而可自主分配采摘任务,无需进行人工干预。
由上可知,该多机器人水果采摘方法,通过获取采摘点坐标集合;采摘点坐标集合包含各采摘点的坐标数据;根据采摘点坐标集合建立采摘点状态缓存;采摘点状态缓存记录有各采摘点的状态;循环执行以下步骤,直到采摘点状态缓存中没有采摘点的状态为未分配状态:选取一个状态为未分配状态的采摘点为目标采摘点,并把目标采摘点的状态更新为已分配状态;把目标采摘点的更新后的状态信息广播至其它采摘机器人,使其它采摘机器人更新本地的采摘点状态缓存;根据目标采摘点的坐标数据,移动至目标采摘点处进行采摘;从而各机器人之间可自主分配采摘任务,自动化程度较高,可减少人工分配采摘任务的工作。
请参考图2,本申请提供了一种多机器人水果采摘装置,用于采摘机器人;包括:
第一获取模块1,用于获取采摘点坐标集合;采摘点坐标集合包含各采摘点的坐标数据;
第一执行模块2,用于根据采摘点坐标集合建立采摘点状态缓存;采摘点状态缓存记录有各采摘点的状态;
第二执行模块3,用于循环执行以下步骤,直到采摘点状态缓存中没有采摘点的状态为未分配状态:
选取一个状态为未分配状态的采摘点为目标采摘点,并把目标采摘点的状态更新为已分配状态;
把目标采摘点的更新后的状态信息广播至其它采摘机器人,使其它采摘机器人更新本地的采摘点状态缓存;
根据目标采摘点的坐标数据,移动至目标采摘点处进行采摘。
该多机器人水果采摘装置,由各采摘机器人根据本地的采摘点状态缓存,自动选取状态为未分配状态的采摘点为目标采摘点,并自动移动到该目标采摘点处进行采摘,每次选取好目标采摘点后,把该目标采摘点的状态更新为已分配状态,并广播至其它机器人进行采摘点状态缓存的更新,从而保证所有采摘机器人的采摘点状态缓存一致,进而保证各机器人在后续选取目标采摘点时的候选采摘点均为真正未被分配的采摘点;从而,各机器人之间可自主分配采摘任务,自动化程度较高,可减少人工分配采摘任务的工作。
其中,可预先把各采摘点的坐标数据记录在一个采摘点数据文件中,并把该采摘点数据文件下发到各采摘机器人;从而,第一获取模块1用于在获取采摘点坐标集合的时候,执行:加载采摘点数据文件,从该采摘点数据文件中提取各采摘点的坐标数据得到采摘点坐标集合。
在一些实施方式中,采摘点数据文件中还记录有各采摘点的编号,从而采摘点坐标集合还可包含各采摘点的编号,例如,在采摘点坐标集合中,每个采摘点的坐标数据和编号数据以一个组元(a,x,y)的形式记录,其中a为采摘点的编号,x、y为该采摘点的坐标数据。从而,采摘点状态缓存中还可包含各采摘点的编号。
在一些实施方式中,可预先为各采摘机器人分配一个初始采摘点作为第一个目标采摘点,从而,第二执行模块3用于在选取一个状态为未分配状态的采摘点为目标采摘点的时候,执行:以预先分配的初始采摘点为第一个目标采摘点。其中,初始采摘点可由人工进行分配,也可由计算机进行自动分配,分配好后把各初始采摘点的编号下发到对应的采摘机器人。采用这种方式,当采摘机器人的数量发生变化时,需要重新分配初始采摘点,但与现有技术中重新分配采摘任务相比,工作量大大地降低。
在另一些实施方式中,可以选取离当前位置最近的采摘点为第一个目标采摘点,从而,第二执行模块3用于在选取一个状态为未分配状态的采摘点为目标采摘点的时候,执行:选取离当前位置(本采摘机器人的当前位置)最近的一个采摘点为第一个目标采摘点。其中,本采摘机器人当前的位置可通过本采摘机器人上的定位模块测得,通过计算当前位置与各采摘点的距离,从而可确定离当前位置最近的采摘点。
有时候,可能有多个采摘机器人选取的第一个目标采摘点相同(以下把这些选取同一个第一个目标采摘点的采摘机器人称为候选机器人),此时可根据各候选机器人的编号进行分配(每个采摘机器人均分配有一个编号),例如把该第一个目标采摘点分配给编号最小的候选机器人,其它候选机器人重新选取第一个目标采摘点。从而,第二执行模块3在执行选取离当前位置最近的一个采摘点为第一个目标采摘点的步骤之后,还执行:若有其它采摘机器人选取的第一个目标采摘点与本采摘机器人选取的第一个目标采摘点相同,则判断本采摘机器人的编号是否为所有候选机器人的编号中的最小编号,若是,则判定选取的第一个目标采摘点有效,否则,判定选取的第一个目标采摘点无效并重新选取其它采摘点为第一个目标采摘点。
其中,在重新选取其它采摘点为第一个目标采摘的时候,可在状态为未分配状态的采摘点中选取离当前位置最近的一个采摘点为第一个目标采摘。
对于第一个目标采摘点之后的目标采摘点,可采用随机选取的方式在状态为未分配状态的采摘点中选取,从而,第二执行模块3用于在选取一个状态为未分配状态的采摘点为目标采摘点的时候,执行:在状态为未分配状态的采摘点中,随机选取一个采摘点为目标采摘点。
对于第一个目标采摘点之后的目标采摘点,也可以选取离当前位置最近的采摘点为目标采摘点,从而,第二执行模块3用于在选取一个状态为未分配状态的采摘点为目标采摘点的时候,执行:以状态为未分配状态的采摘点中,离当前位置最近的一个采摘点为目标采摘点。与上一种方式相比,更有利于减少采摘机器人的移动的总路程,从而提高工作效率,降低能耗。
在一些优选实施方式中,第二执行模块3用于在把目标采摘点的更新后的状态信息广播至其它采摘机器人,使其它采摘机器人更新本地的采摘点状态缓存的时候,执行:
周期性地把目标采摘点的更新后的状态信息广播至其它采摘机器人,直到接收到所有其它采摘机器人发回的回复信号。
由于进行广播时,可能有其它采摘机器人发送位置变化而导致路由不可达或者存在干扰(尤其是当采用UDP协议进行通信时,容易受到干扰),从而无法及时接收到该信息,因此,需要重复地进行广播,直到接收到所有其它采摘机器人发回的回复信号,从而确保所有其它采摘机器人均已进行采摘点状态缓存的更新,保证所有采摘机器人的采摘点状态缓存一致。需要说明的是,其它采摘机器人在接收到该信息并更新本地的采摘点状态缓存后,会向发送该信息的源节点(即本采摘机器人)发回回复信号,以确认更新成功。当本采摘机器人接收到其它采摘机器人发送的状态信息后,也会进行本地的采摘点状态缓存的更新,并在更新完成后发回回复信号。
在一些优选实施方式中,第二执行模块3用于在根据目标采摘点的坐标数据,移动至目标采摘点处进行采摘的时候,执行:
到达所述目标采摘点处并停止移动后,若本采摘机器人与至少一个其它采摘机器人之间的路由不可达,则广播建立无线自组织网络路由请求信息,以建立与路由不可达的所述其它采摘机器人的路由。
由于采摘机器人的位置发生变化后,采摘机器人间的原先的路由可能不可达,因此需要重新建立与不可达的其它采摘机器人之间的路由;此处,只有当采摘机器人到达新的采摘点位置并引起路由不可达时才发起路由更新请求,与定期发起路由更新请求方式相比,可降低采摘机器人的功耗。
具体地,第二执行模块3用于在广播建立无线自组织网络路由请求信息,以建立与所有其它采摘机器人的路由的时候,执行:检测本采摘机器人的路由缓存中是否有与目标采摘机器人(即需要进行通信的其它采摘机器人)之间的有效路由,若没有,则广播第一RREQ(Route Request,路由请求)分组,以启动一个路由发现过程来找到一条到达该目标采摘机器人的可用路由。其它各采摘机器人在接收到该第一RREQ分组时,进行如下处理:
1)如果第一RREQ分组携带的源路由节点列表中包含本节点(节点为采摘机器人),则将该第一RREQ分组丢弃;
2)检查前一节点是否在本节点的通信范围内,若不在,则丢弃该第一RREQ分组,若不确定(是否在本节点的通信范围内),则向前一节点发送一TTL值为“1”的第二RREQ分组,如果接收不到前一节点回复的第二RREP(Route Reoly,路由回复)分组,则丢弃该第一RREQ分组;从而保证相邻的节点之间的链路为双向链路(若接收到前一节点回复的第二RREP分组,表示本节点与前一节点之间的链路为双向链路,继续对第一RREQ分组进行处理);
3)如果第一RREQ分组的目标节点为本节点,则向发起第一RREQ分组的源节点返回第一RREP分组;具体地,把本节点的IP地址追加到第一RREQ分组携带的源路由的节点IP地址列表中,将得到的源路由的节点IP地址列表作为返回给源节点的完整路由封装在第一RREP分组中发送给源节点,并将处理后的第一RREQ分组删除;
4)若本节点当地的路由请求表中有与发起第一RREQ分组的源节点对应的路由请求表入口(表示本节点以前接收过该第一RREQ分组),则在当地路由缓存中查看是否有与该第一RREQ分组的路由请求号和目的节点IP地址均相对应的入口,如果有,则把接收到的第一RREQ分组丢弃;
5)若本节点当地的路由请求表中没有与发起第一RREQ分组的源节点对应的路由请求表入口(表示本节点以前没有接收过该第一RREQ分组),则按以下方式处理该第一RREQ分组:根据该第一RREQ分组的路由请求序号和目的节点IP地址,为该第一RREQ分组在本节点的路由请求表中创建一入口,如果本节点在当地路由缓存中查找到通往第一RREQ分组的目的节点的路由,则向发起第一RREQ分组的源节点回复一第三RREP分组(称为“缓存路径回复(cached Route Reply)”),如果本节点在当地路由缓存中查找不到通往第一RREQ分组的目的节点的路由,则把本节点的IP地址追加到第一RREQ分组携带的源路由的节点地址列表中,并把更新后的第一RREQ分组广播出去。
进一步地,第二执行模块3还用于在广播建立无线自组织网络路由请求信息,以建立与所有其它采摘机器人的路由的时候,执行:在本采摘机器人(发起第一RREQ分组的源节点)接收到其它采摘机器人(其它节点)发回的RREP分组后,只保留通往目的节点的跳数最少的路由。
其中,对于本采摘机器人,当接收到其它采摘机器人发起的第一RREQ分组时,也需要进行前述的1)-5)步的处理。从而第二执行模块3还用于在本采摘机器人接收到其它采摘机器人发起的第一RREQ分组时,执行进行前述的1)-5)步的处理。
在第5)步中,中间节点在自己的路由缓存中找到通往第一RREQ分组的目的节点的路由,则要向源节点回复一cached Route Reply分组。这种机制可以大大减小网络中因为路由发现过程所造成的开销,因为这种机制可以大大减少路由发现过程中的RREQ广播报文。中间节点发送完路由缓存回复后,就不再继续广播第一RREQ分组了。
在第3)步中,目的节点在把第一RREP分组发送至源节点时,可沿第一RREP分组中携带的源路由的逆向路由依次传输,该过程中,中间节点收到该第一RREP分组时,自动更新本中间节点到目的节点的路由信息。
通过上述方式建立路由,具有以下优点:使用路由缓存技术减少了路由建立的开销;保证了各节点之间(即各采摘机器人之间)的路由跳数最少;没有节点要发送数据时,网络中的没有通信开销,支持节点睡眠;不需要定时更新和维护路由信息。
在一些实施方式中,第二执行模块3还用于在根据目标采摘点的坐标数据,移动至目标采摘点处进行采摘的时候,执行:
把目标采摘点的状态更新为采摘中状态,并把目标采摘点的更新后的状态信息广播至其它采摘机器人,使其它采摘机器人更新本地的采摘点状态缓存。
若本采摘机器人在采摘过程中发生故障,导致对应的采摘点的采摘中状态持续时间过长,则其它采摘机器人可通过该采摘点的采摘中状态持续时间判断本采摘机器人是否发生故障,以便在判定本采摘机器人发生故障后及时通知管理人员。其中,在进行广播时,可周期性地进行广播,直到接收到所有其它采摘机器人发回的回复信号;从而保证各采摘机器人的采摘点状态缓存一致。
在一些实施方式中,第二执行模块3还用于在根据目标采摘点的坐标数据,移动至目标采摘点处进行采摘的时候,执行:
完成目标采摘点的采摘任务后,把目标采摘点的状态更新为已完成状态,并把目标采摘点的更新后的状态信息广播至其它采摘机器人,使其它采摘机器人更新本地的采摘点状态缓存。
在完成采集后把采摘点的状态更新为已完成状态,避免该采集点的状态一直为采摘中状态而导致其它采摘机器人把本采摘机器人误判为发生故障。其中,在进行广播时,可周期性地进行广播,直到接收到所有其它采摘机器人发回的回复信号;从而保证各采摘机器人的采摘点状态缓存一致。
在一些优选实施方式中,第二执行模块3还用于在到达目标采摘点处并停止移动后,广播建立无线自组织网络路由请求信息,以建立与所有其它采摘机器人的路由的时候,执行:
若无法与其它采摘机器人建立路由,则在完成目标采摘点的采摘任务后,停止获取下一个目标采摘点。
其中,在连续N(N为预设的正整数)次发起第一RREQ分组后,均无法与其它采摘机器人建立有效路由,则判定本采摘机器人通信故障,从而在完成当前的目标采摘点的采摘任务后,不再获取下一个采摘任务,直到与其它采摘机器人的通信连接恢复。
需要说明的是,采用该多机器人水果采摘装置进行水果采摘,可在任意时刻加入或撤出采摘机器人,当加入新的采摘机器人时,新加入的采摘机器人可通过其它采摘机器人广播的信息快速地把自身的采摘点状态缓存更新至最新状态,从而可自主分配采摘任务,无需进行人工干预。
由上可知,该多机器人水果采摘装置,通过获取采摘点坐标集合;采摘点坐标集合包含各采摘点的坐标数据;根据采摘点坐标集合建立采摘点状态缓存;采摘点状态缓存记录有各采摘点的状态;循环执行以下步骤,直到采摘点状态缓存中没有采摘点的状态为未分配状态:选取一个状态为未分配状态的采摘点为目标采摘点,并把目标采摘点的状态更新为已分配状态;把目标采摘点的更新后的状态信息广播至其它采摘机器人,使其它采摘机器人更新本地的采摘点状态缓存;根据目标采摘点的坐标数据,移动至目标采摘点处进行采摘;从而各机器人之间可自主分配采摘任务,自动化程度较高,可减少人工分配采摘任务的工作。
请参照图3,图3为本申请实施例提供的一种电子设备的结构示意图,该电子设备包括:处理器301和存储器302,处理器301和存储器302通过通信总线303和/或其他形式的连接机构(未标出)互连并相互通讯,存储器302存储有处理器301可执行的计算机程序,当电子设备运行时,处理器301执行该计算机程序,以执行上述实施例的任一可选的实现方式中的多机器人水果采摘方法,以实现以下功能:获取采摘点坐标集合;采摘点坐标集合包含各采摘点的坐标数据;根据采摘点坐标集合建立采摘点状态缓存;采摘点状态缓存记录有各采摘点的状态;循环执行以下步骤,直到采摘点状态缓存中没有采摘点的状态为未分配状态:选取一个状态为未分配状态的采摘点为目标采摘点,并把目标采摘点的状态更新为已分配状态;把目标采摘点的更新后的状态信息广播至其它采摘机器人,使其它采摘机器人更新本地的采摘点状态缓存;根据目标采摘点的坐标数据,移动至目标采摘点处进行采摘。
本申请实施例提供一种存储介质,其上存储有计算机程序,计算机程序被处理器执行时,执行上述实施例的任一可选的实现方式中的多机器人水果采摘方法,以实现以下功能:获取采摘点坐标集合;采摘点坐标集合包含各采摘点的坐标数据;根据采摘点坐标集合建立采摘点状态缓存;采摘点状态缓存记录有各采摘点的状态;循环执行以下步骤,直到采摘点状态缓存中没有采摘点的状态为未分配状态:选取一个状态为未分配状态的采摘点为目标采摘点,并把目标采摘点的状态更新为已分配状态;把目标采摘点的更新后的状态信息广播至其它采摘机器人,使其它采摘机器人更新本地的采摘点状态缓存;根据目标采摘点的坐标数据,移动至目标采摘点处进行采摘。其中,存储介质可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(Static RandomAccess Memory, 简称SRAM),电可擦除可编程只读存储器(Electrically ErasableProgrammable Read-Only Memory, 简称EEPROM),可擦除可编程只读存储器(ErasableProgrammable Read Only Memory, 简称EPROM),可编程只读存储器(Programmable Red-Only Memory, 简称PROM),只读存储器(Read-Only Memory, 简称ROM),磁存储器,快闪存储器,磁盘或光盘。
在本申请所提供的实施例中,应该理解到,所揭露装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
另外,作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
再者,在本申请各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。
以上所述仅为本申请的实施例而已,并不用于限制本申请的保护范围,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (9)
1.一种多机器人水果采摘方法,用于采摘机器人;其特征在于,包括以下步骤:
A1.获取采摘点坐标集合;所述采摘点坐标集合包含各采摘点的坐标数据;
A2.根据所述采摘点坐标集合建立采摘点状态缓存;所述采摘点状态缓存记录有各所述采摘点的状态;
A3.循环执行以下步骤,直到所述采摘点状态缓存中没有采摘点的状态为未分配状态:
A301.选取一个状态为未分配状态的所述采摘点为目标采摘点,并把所述目标采摘点的状态更新为已分配状态;
A302.把所述目标采摘点的更新后的状态信息广播至其它采摘机器人,使其它采摘机器人更新本地的采摘点状态缓存;
A303.根据所述目标采摘点的坐标数据,移动至所述目标采摘点处进行采摘;
步骤A303包括:
到达所述目标采摘点处并停止移动后,若本采摘机器人与至少一个其它采摘机器人之间的路由不可达,则广播建立无线自组织网络路由请求信息,以建立与路由不可达的所述其它采摘机器人的路由。
2.根据权利要求1所述的多机器人水果采摘方法,其特征在于,步骤A301包括:
以状态为未分配状态的所述采摘点中,离当前位置最近的一个所述采摘点为目标采摘点。
3.根据权利要求1所述的多机器人水果采摘方法,其特征在于,步骤A302包括:
周期性地把所述目标采摘点的更新后的状态信息广播至其它采摘机器人,直到接收到所有所述其它采摘机器人发回的回复信号。
4.根据权利要求1所述的多机器人水果采摘方法,其特征在于,所述到达所述目标采摘点处并停止移动后,广播建立无线自组织网络路由请求信息,以建立与所有所述其它采摘机器人的路由的步骤之后,还包括:
把所述目标采摘点的状态更新为采摘中状态,并把所述目标采摘点的更新后的状态信息广播至所述其它采摘机器人,使所述其它采摘机器人更新本地的采摘点状态缓存。
5.根据权利要求4所述的多机器人水果采摘方法,其特征在于,所述把所述目标采摘点的状态更新为采摘中状态,并把所述目标采摘点的更新后的状态信息广播至所述其它采摘机器人,使所述其它采摘机器人更新本地的采摘点状态缓存的步骤之后,还包括:
完成所述目标采摘点的采摘任务后,把所述目标采摘点的状态更新为已完成状态,并把所述目标采摘点的更新后的状态信息广播至所述其它采摘机器人,使所述其它采摘机器人更新本地的采摘点状态缓存。
6.根据权利要求1所述的多机器人水果采摘方法,其特征在于,所述到达所述目标采摘点处并停止移动后,广播建立无线自组织网络路由请求信息,以建立与所有所述其它采摘机器人的路由的步骤包括:
若无法与所述其它采摘机器人建立路由,则在完成所述目标采摘点的采摘任务后,停止获取下一个目标采摘点。
7.一种多机器人水果采摘装置,用于采摘机器人;其特征在于,包括:
第一获取模块,用于获取采摘点坐标集合;所述采摘点坐标集合包含各采摘点的坐标数据;
第一执行模块,用于根据所述采摘点坐标集合建立采摘点状态缓存;所述采摘点状态缓存记录有各所述采摘点的状态;
第二执行模块,用于循环执行以下步骤,直到所述采摘点状态缓存中没有采摘点的状态为未分配状态:
选取一个状态为未分配状态的所述采摘点为目标采摘点,并把所述目标采摘点的状态更新为已分配状态;
把所述目标采摘点的更新后的状态信息广播至其它采摘机器人,使其它采摘机器人更新本地的采摘点状态缓存;
根据所述目标采摘点的坐标数据,移动至所述目标采摘点处进行采摘;
第二执行模块用于在根据所述目标采摘点的坐标数据,移动至所述目标采摘点处进行采摘的时候,执行:
到达所述目标采摘点处并停止移动后,若本采摘机器人与至少一个其它采摘机器人之间的路由不可达,则广播建立无线自组织网络路由请求信息,以建立与路由不可达的所述其它采摘机器人的路由。
8.一种电子设备,其特征在于,包括处理器和存储器,所述存储器存储有所述处理器可执行的计算机程序,所述处理器执行所述计算机程序时,运行如权利要求1-6任一项所述多机器人水果采摘方法中的步骤。
9.一种存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时运行如权利要求1-6任一项所述多机器人水果采摘方法中的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111242944.6A CN113940198B (zh) | 2021-10-25 | 2021-10-25 | 多机器人水果采摘方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111242944.6A CN113940198B (zh) | 2021-10-25 | 2021-10-25 | 多机器人水果采摘方法、装置、电子设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113940198A CN113940198A (zh) | 2022-01-18 |
CN113940198B true CN113940198B (zh) | 2022-07-12 |
Family
ID=79332556
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111242944.6A Active CN113940198B (zh) | 2021-10-25 | 2021-10-25 | 多机器人水果采摘方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113940198B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN118195111A (zh) * | 2024-03-20 | 2024-06-14 | 湖州暨芯半导体科技有限公司 | 茶园采茶位置规划方法、装置、设备及介质 |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102914967B (zh) * | 2012-09-21 | 2015-01-28 | 浙江工业大学 | 采摘机器人的自主导航和人机协同采摘作业系统 |
CN104067781B (zh) * | 2014-06-16 | 2016-05-18 | 华南农业大学 | 基于虚拟机器人与真实机器人集成的采摘系统及方法 |
AU2017357645B2 (en) * | 2016-11-08 | 2022-11-10 | Dogtooth Technologies Limited | A robotic fruit picking system |
CN106950581A (zh) * | 2017-04-27 | 2017-07-14 | 无锡北斗星通信息科技有限公司 | 定位系统 |
CN109863874B (zh) * | 2019-01-30 | 2021-12-14 | 深圳大学 | 一种基于机器视觉的果蔬采摘方法、采摘装置及存储介质 |
CN110235609A (zh) * | 2019-08-01 | 2019-09-17 | 孙弈骁 | 一种采摘成熟无花果的智能机器人 |
CN113115638A (zh) * | 2019-12-31 | 2021-07-16 | 季华实验室 | 一种智能采茶机器人 |
AU2021101375A4 (en) * | 2021-03-16 | 2021-05-13 | K. Aravindhan | IoT Based Agri Robotic Hands for Plucking Under Ground Crops & Automatic Spraying |
CN113246135B (zh) * | 2021-06-03 | 2021-10-12 | 季华实验室 | 机器人手眼标定方法、装置、电子设备及存储介质 |
-
2021
- 2021-10-25 CN CN202111242944.6A patent/CN113940198B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN113940198A (zh) | 2022-01-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111031544B (zh) | 一种多网络共存多频点无线通信组网方法 | |
KR100948383B1 (ko) | Ad hoc 네트워크 환경에서의 효율적인 ip 주소할당 및 중복 검출 방법 | |
EP1393507B1 (en) | Wireless distributed communications network | |
US7996558B2 (en) | Methods and systems for a routing protocol | |
CN107889185B (zh) | 一种电表无线数据采集系统的组网方法 | |
JP3947370B2 (ja) | 無線通信システム | |
CN113940198B (zh) | 多机器人水果采摘方法、装置、电子设备及存储介质 | |
US10075366B2 (en) | Communication device, communication system, communication control method, and communication control program | |
JP4203997B2 (ja) | センサネットワークにおけるアドレス割当方法 | |
CN103491590B (zh) | 一种下一代无线传感器网络路由的实现方法 | |
US10034211B2 (en) | Delegated channel switching for mesh-type networks | |
CN108199967A (zh) | 路由处理方法及装置 | |
CN113867382B (zh) | 一种无人机集群网络的拓扑控制方法 | |
CN109379288A (zh) | 一种基于宽带载波路由动态维护方法和系统 | |
US20110128131A1 (en) | Head node selection method for clustering in wireless sensor network and wireless sensor network | |
CN110248320A (zh) | 基于时间同步和频率同步的无线自组织网络管理方法 | |
CN106162802A (zh) | 一种无线传感网络拓扑发现的方法及装置 | |
CN105578558A (zh) | 一种无线自组网的路由方法 | |
CN110086684B (zh) | 一种基于动态规划的dcn网络自通方法 | |
US20080008201A1 (en) | Communication terminal, a method for communication, and a program strorage medium storing a program thereof | |
CN107659497A (zh) | 路由修复方法和装置 | |
CN105337801B (zh) | 一种适用于交换机协议的基于状态机的测试用例设计方法 | |
CN109379283A (zh) | 基于物联网异构设备的自组网通信方法、装置及自组网 | |
CN110868348B (zh) | 多网关通信的方法、装置、系统以及电子设备 | |
CN114430391B (zh) | 网络域创建的方法、网络系统、设备及存储介质 |
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 |