技术领域
[0001] 本申请实施例涉及智能制造领域,尤其涉及一种料箱机器人的静态路径规划方法。
相关背景技术
[0002] 在自动化仓储领域,料箱机器人作为实现物料搬运和存储的关键设备,其高效、准确的路径规划能力对于提升仓库运作效率至关重要。传统上,料箱机器人的路径规划主要依赖于动态路径规划方法,即机器人在运行过程中实时感知环境并作出路径决策。然而,这种方法在复杂仓库环境中易受到实时障碍物、通信延迟等因素影响,导致路径规划效率低下,机器人运行不稳定,甚至发生碰撞事故。
[0003] 特别是,在需要频繁执行出入库任务的场景中,动态路径规划往往无法充分利用仓库环境的先验知识,如固定的障碍物位置、常用的通行区域等,从而导致每次任务都需重新探索路径,增加了计算负担和响应时间。此外,动态路径规划难以有效处理多任务并发情况,当多个料箱机器人同时作业时,易发生路径冲突,影响整体作业效率。
具体实施方式
[0050] 为了使本领域的人员更好地理解本申请实施例中的技术方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本申请实施例一部分实施例,而不是全部的实施例。基于本申请实施例中的实施例,本领域普通技术人员所获得的所有其他实施例,都应当属于本申请实施例保护的范围。
[0051] 图1为本申请实施例提供的一种料箱机器人的静态路径规划方法流程示意图。如图1所示,其包括:
[0052] 读取所述料箱机器人所在仓库的全局环境模型,所述全局环境模型中定义有障碍物区域以及自由运行区域;
[0053] 对所述料箱机器人的出入库指令进行解析,以确定所述料箱机器人的当前起始位置以及当前目标点位置;
[0054] 根据所述起始点位置与当前目标点位置与全局环境模型,进行料箱机器人出入库的静态路径的搜索,得到若干条可选静态路径,以组成可选静态路径集合;
[0055] 基于设定的静态路径约束,对所述可选静态路径集合求解,以从中选出满足所述设定的路径约束的可选静态路径并作为规划的静态路径。
[0056] 本发明中,通过读取料箱机器人所在仓库的全局环境模型,充分利用了仓库环境的先验知识。全局环境模型中定义了障碍物区域以及自由运行区域,这使得路径规划能够在已知的环境约束下进行,从而避免了动态路径规划在实时感知环境时可能遇到的通信延迟和感知误差问题。其次,对料箱机器人的出入库指令进行解析,确定了机器人的当前起始位置和目标点位置。这一步骤使得路径规划能够基于具体的任务需求进行,提高了路径规划的针对性和实用性。接着,根据起始点位置、目标点位置以及全局环境模型,进行料箱机器人出入库的静态路径搜索。通过搜索得到若干条可选静态路径,并组成可选静态路径集合。这一过程充分利用了全局环境模型的信息,减少了实时计算量,提高了路径规划的效率。最后,基于设定的静态路径约束,对可选静态路径集合进行求解,从中选出满足路径约束的可选静态路径作为规划的静态路径。这一步骤确保了所选路径的可行性和安全性,同时解决了多任务并发时的路径冲突问题。
[0057] 可选地,所述出入库指令包括入库指令和/出库指令,以根据任务订单完成一次出库或入库任务,一次可取或者可卸多个货物;
[0058] 所述入库指令用于调度所述料箱机器人从起始位置到入库工作台进行货物的放置;对应地,所述可选静态路径为:所述料箱机器人从其可选起始点位置到入库工作台、从入库工作台到第一个货架的路线、从第一个货架到下一个货架直至放置完所有货物的路线;
[0059] 所述入库指令用于调度所述料箱机器人从起始位置到入库工作台进行货物的拾取;对应地,所述可选静态路径包括:所述料箱机器人从起始位置点到第一个货架的路线、从第一个货架到下一个货架直至取完订单所需货物的路线、从最后一个货架到出库工作台的路线。
[0060] 可选地,所述读取所述料箱机器人所在仓库的全局环境模型,所述全局环境模型中定义有障碍物区域以及自由运行区域,之前还包括:
[0061] 获取所述料箱机器人所在仓库的全局环境模型文件,对所述全局环境模型文件进行解析,确定所述仓库中障碍物的中心坐标以及障碍物的轮廓;
[0062] 基于所述障碍物的中心坐标以及障碍物的轮廓,构建所述仓库的全局环境模型。
[0063] 在料箱机器人的路径规划中,首先获取并解析仓库的全局环境模型文件,进而构建出详细的全局环境模型,这一步骤带来了显著的技术好处。以下是对这些好处的详细阐述,以及一个简单的示例性代码片段。
[0064] 为此,此处的技术方案具有如下技术好处:
[0065] (1)通过解析全局环境模型文件,可以精确获取仓库中障碍物的中心坐标和轮廓,进而构建出精确的全局环境模型。这使得路径规划算法能够在准确的环境信息基础上进行计算,从而提高路径规划的准确性。
[0066] 同时,由于全局环境模型是预先构建好的,路径规划时可以直接利用,无需实时感知环境,从而大大提高了路径规划的效率。
[0067] (2)全局环境模型中包含了障碍物的详细信息,这使得路径规划算法能够充分考虑障碍物的存在,规划出避免与障碍物碰撞的路径,从而增强路径规划的安全性。
[0068] (3)在多任务并发的情况下,由于全局环境模型是共享的,各个任务可以在统一的环境模型基础上进行路径规划,从而便于处理路径冲突和协调多个任务。
[0069] (4)全局环境模型以文件的形式存在,便于更新和维护。当仓库环境发生变化时,只需更新全局环境模型文件,即可使路径规划算法适应新的环境。
[0070] 另外,提供了一种示例性代码,以说明上述方案的实现过程:
[0071]
[0072] 在上述示例代码中,首先定义了一个load_global_environment_model函数来加载全局环境模型文件,并将其解析为障碍物列表。然后,定义了一个build_global_environment_model函数来根据障碍物列表构建全局环境模型。最后,展示了如何使用这两个函数来加载和构建全局环境模型。
[0073] 可选地,所述基于所述障碍物的中心坐标以及障碍物的轮廓,构建所述仓库的全局环境模型,包括:
[0074] 对所述仓库所占区域进行网格划分得到若干网格以形成网格阵列;
[0075] 基于所述仓库中障碍物的中心坐标,对所述障碍物的轮廓与所述网格阵列进行匹配以确定障碍物与所述网格阵列的映射关系;
[0076] 基于所示映射关系,对所述网格阵列进行编码,得到障碍物位置编码以及自由区域位置编码;
[0077] 将所述障碍物位置编码以及自由区域位置编码投影到所述网格阵列上,以形成所述仓库的全局环境模型。
[0078] 通过基于障碍物的中心坐标和轮廓对仓库进行网格划分,并构建全局环境模型的技术方案,可以带来多方面的好处。以下是对这些好处的详细阐述,以及一个简单的示例性代码片段。
[0079] 为此,基于所述障碍物的中心坐标以及障碍物的轮廓,构建所述仓库的全局环境模型,具有如下技术好处:
[0080] (1)网格划分允许以更高的精度和分辨率表示仓库环境。每个网格可以代表仓库中的一个小区域,从而更精确地表示障碍物的位置和轮廓。
[0081] (2)通过将仓库划分为网格,并将障碍物与网格进行映射,可以将复杂的路径规划问题简化为在网格阵列上进行搜索和计算。这大大降低了计算的复杂性,并提高了路径规划的效率。
[0082] (3)当仓库环境发生变化时,如添加或移除障碍物,只需更新全局环境模型中的相应网格,而无需重新构建整个模型。这使得环境模型的动态更新和维护变得更加容易。
[0083] (4)网格化的全局环境模型可以很容易地可视化,从而帮助更好地理解和调试路径规划算法。可以直观地看到障碍物的位置、轮廓以及自由区域,从而更好地优化路径规划策略。
[0084] 另外,如下提供了一种示例性代码,说明基于所述障碍物的中心坐标以及障碍物的轮廓,构建所述仓库的全局环境模型:
[0085]
[0086]
[0087]
[0088] 在上述示例代码中,首先定义了一个grid_warehouse函数来创建网格阵列。然后,定义了一个map_obstacles_to_grid函数来将障碍物映射到网格上。接着,定义了一个encode_grid函数来对网格进行编码,得到障碍物位置编码和自由区域位置编码。最后,定义了一个build_global_environment_model函数来整合这些步骤,构建全局环境模型。
[0089] 可选地,所述基于所述障碍物的中心坐标以及障碍物的轮廓,构建所述仓库的全局环境模型,包括:
[0090] 基于所述障碍物的中心坐标以及障碍物的轮廓,定义所述料箱机器人在所述仓库中行进时要经过的多个指定位置坐标以形成指定位置坐标序列;
[0091] 确定所述料箱机器人从其起始位置点坐标到最近指定位置坐标的路线,从所述最近指定位置坐标出发到下一个指定位置坐标的路线,依次迭代,得到若干条路线;
[0092] 将每一条路线映射为一条边,并在每条边上障碍物标识;
[0093] 将加载了障碍物标识的所有边按照迭代的先后顺序拼接起来,以形成所述仓库的全局环境模型。
[0094] 基于障碍物的中心坐标和轮廓来构建仓库的全局环境模型,并通过定义料箱机器人在仓库中行进时要经过的多个指定位置坐标序列,进而确定一系列路线并映射为边,最终在全局环境模型中加载障碍物标识,这一技术方案带来了显著的技术好处。
[0095] 为此,上述基于所述障碍物的中心坐标以及障碍物的轮廓,构建所述仓库的全局环境模型具有如下技术好处:
[0096] (1)通过定义多个指定位置坐标并形成坐标序列,料箱机器人可以根据实际情况灵活选择行进路线,更好地适应仓库环境的复杂性和多变性。
[0097] (2)在每条路线上标识障碍物,可以确保料箱机器人在行进过程中能够及时发现并避开障碍物,从而避免碰撞和损坏,提高路径规划的安全性。
[0098] (3)将仓库环境模型表示为一系列带有障碍物标识的边,可以简化路径规划的计算过程。料箱机器人只需按照边的顺序行进,并在遇到障碍物时进行相应的处理,而无需对整个仓库环境进行复杂的搜索和计算。
[0099] (4)当仓库环境中的障碍物发生变化时,只需更新相应边上的障碍物标识,而无需重新构建整个全局环境模型。这使得路径规划的动态更新和维护变得更加容易和高效。
[0100] (5)将全局环境模型表示为一系列带有障碍物标识的边,可以直观地展示料箱机器人的行进路线和障碍物位置。这有助于更好地理解和优化路径规划策略,并提高路径规划的可解释性。
[0101] 另外,一下提供一种示例性代码,以实现基于所述障碍物的中心坐标以及障碍物的轮廓,构建所述仓库的全局环境模型示例性代码:
[0102]
[0103]
[0104] 在上述示例代码中,首先定义了Node和Edge类来表示节点和边。然后,实现了build_global_environment_model函数来构建全局环境模型。该函数接受障碍物列表和指定位置坐标序列作为输入,并返回节点列表和边列表。在构建边的过程中,检查每对节点之间是否存在障碍物,并在边上相应地设置障碍物标识。最后,展示了如何使用该函数来构建全局环境模型。
[0105] 可选地,所述基于所述障碍物的中心坐标以及障碍物的轮廓,构建所述仓库的全局环境模型,包括:
[0106] 基于所述障碍物的中心坐标以及障碍物的轮廓,生成代表不同障碍物的多边形;
[0107] 确定每个所述多边形的各个顶点的坐标,以建立所述可选起始点位置与所有顶点的连线、以建立所述可选目标点位置与所有顶点的连线、不同多边形的顶点之间的连线;
[0108] 将所述可选起始点位置、所述可选目标点位置、所述多边形、所述可选起始点位置与所有顶点的连线、以建立所述可选目标点位置与所有顶点的连线、不同多边形的顶点之间的连线,投影到所述仓库所占的区域上,以所述仓库的全局环境模型。
[0109] 上述基于所述障碍物的中心坐标以及障碍物的轮廓,构建所述仓库的全局环境模型,具有如下技术好处:
[0110] (1)通过基于障碍物的中心坐标和轮廓生成代表不同障碍物的多边形,可以更精确地表示仓库中的障碍物形状和位置。这种表示方法比简单的点或线条更能反映障碍物的实际占据空间,为路径规划提供更准确的环境信息。
[0111] (2)建立可选起始点位置与所有多边形顶点的连线、可选目标点位置与所有多边形顶点的连线,以及不同多边形顶点之间的连线,可以确保在路径规划时考虑到所有可能的路径和障碍物之间的相对位置关系。这有助于避免路径规划中的漏洞和碰撞风险。
[0112] (3)通过将可选起始点、目标点、多边形及其连线投影到仓库所占的区域上,可以形成一个完整的全局环境模型。在这个模型中进行路径规划,可以避免对无关区域的搜索和计算,从而提高路径规划的效率。
[0113] (4)全局环境模型为路径规划算法提供了一个清晰、结构化的环境表示。算法可以基于这个模型进行路径搜索和优化,而无需处理复杂的障碍物形状和位置关系。这简化了路径规划算法的实现过程。
[0114] (6)全局环境模型可以直观地展示仓库中的障碍物分布和路径规划结果。这有助于对路径规划算法进行可视化和调试,发现潜在的问题并进行优化。
[0115] 另外,以下提供基于所述障碍物的中心坐标以及障碍物的轮廓,构建所述仓库的全局环境模型示例性代码:
[0116]
[0117]
[0118] 在上述示例代码中,首先定义了一个Polygon类来表示多边形障碍物。然后,实现了generate_polygons函数来根据障碍物列表生成多边形列表。接下来,实现了build_global_environment_model函数来构建全局环境模型,包括建立起始点、目标点与所有多边形顶点的连线,以及建立不同多边形顶点之间的连线。最后,展示了如何使用这些函数来生成全局环境模型。这个模型可以为后续的路径规划算法提供清晰、结构化的环境表示。
[0119] 可选地,所述对所述料箱机器人的出入库指令进行解析,以确定所述料箱机器人的当前起始位置以及当前目标点位置,包括:
[0120] 对所述料箱机器人的出入库指令进行解析,得到出入库配置参数;
[0121] 根据所述出库参数,判断是出库指令还是入库指令、以及对应所述料箱机器人的当前起始点位置以及当前目标点位置。
[0122] 为此,上述对所述料箱机器人的出入库指令进行解析,以确定所述料箱机器人的当前起始位置以及当前目标点位置,具有如下技术好处:
[0123] (1)通过对料箱机器人的出入库指令进行解析,可以得到出入库配置参数,进而准确判断是出库指令还是入库指令,以及对应的起始点位置和目标点位置。这种解析方法避免了指令的歧义和误解,提高了指令解析的准确性和效率。
[0124] (2)将出入库指令解析为配置参数的方式,使得系统可以灵活地处理不同类型的出入库指令。当需要添加新的出入库类型或修改现有类型时,只需调整配置参数即可,无需修改底层代码,增强了系统的可扩展性。
[0125] (3)准确解析出入库指令后,可以得到明确的起始点位置和目标点位置。这为后续的路径规划和导航提供了清晰的目标和方向,有助于料箱机器人快速、准确地完成出入库任务。
[0126] (4)用户在使用料箱机器人进行出入库操作时,无需关心复杂的指令格式和参数设置。系统会自动解析用户发出的指令,并给出相应的反馈和执行结果,提升了用户的使用体验。
[0127] (5)将出入库指令解析为配置参数的方式,使得故障排查和日志记录变得更加方便。当出现故障或需要回溯历史操作时,可以通过查看配置参数和日志记录来快速定位问题和分析原因。
[0128] 另外,对所述料箱机器人的出入库指令进行解析,以确定所述料箱机器人的当前起始位置以及当前目标点位置实现,提供示例性代码解释:
[0129]
[0130]
[0131] 在上述示例代码中,定义了一个InventoryCommand类来解析出入库指令。该类接受一个指令字符串作为输入,并通过parse_command方法将其解析为配置参数。然后,该类提供了is_inbound和is_outbound方法来判断指令是入库还是出库,以及get_start_position和get_target_position方法来获取起始点位置和目标点位置。最后,展示了如何使用这个类来解析一个具体的出入库指令,并打印出解析结果。
[0132] 可选地,所述根据所述当前起始点位置与当前目标点位置与全局环境模型,进行料箱机器人出入库的静态路径的搜索,得到若干条可选静态路径,以组成可选静态路径集合,包括:
[0133] 根据所述起始点位置与当前目标点位置与全局环境模型,构建若干粒子,并为每个粒子分配一个初始适应度值以及初始惯性权重,以得到初始化粒子群,每个粒子代表一个初始化静态路径;
[0134] 对所述初始化粒子群进行迭代,以进行料箱机器人出入库的静态路径的搜索,得到若干条可选静态路径,以组成可选静态路径集合。
[0135] 为此,根据所述当前起始点位置与当前目标点位置与全局环境模型,进行料箱机器人出入库的静态路径的搜索,得到若干条可选静态路径,以组成可选静态路径集合,具有如下技术好处:
[0136] (1)使用粒子群算法进行路径搜索,可以在全局环境模型中同时考虑多个可能的路径,并通过迭代优化找到最优或次优解。这种方法相比传统的单一路径搜索算法,如Dijkstra或A*算法,能够更快地找到可行的路径集合,提高了搜索效率。
[0137] (2)粒子群算法中的每个粒子都代表一个可能的路径,通过迭代更新,算法能够探索不同的路径选择,从而增加了路径的多样性。这对于料箱机器人来说尤为重要,因为它可能需要在复杂的仓库环境中找到多条备选路径,以应对可能的障碍物或交通拥堵。
[0138] (3)由于粒子群算法具有迭代和优化的特性,它能够适应仓库环境的动态变化。例如,如果仓库中的某些区域突然变得不可通行,算法可以通过重新迭代来找到新的可行路径,而无需从头开始重新搜索。
[0139] (4)粒子群算法是一种通用的优化算法,可以很容易地集成到现有的料箱机器人控制系统中。此外,通过调整算法的参数(如粒子数量、迭代次数、适应度函数等),可以进一步优化路径搜索的性能和结果。
[0140] (5)通过生成可选静态路径集合,粒子群算法为料箱机器人的出入库任务提供了多种可能的路径选择。这使得机器人可以根据实际情况(如路径长度、通行时间、障碍物等)做出更明智的决策,选择最合适的路径执行任务。
[0141] 另外,根据所述当前起始点位置与当前目标点位置与全局环境模型,进行料箱机器人出入库的静态路径的搜索,得到若干条可选静态路径,以组成可选静态路径集合,以下提供示例性代码进行说明:
[0142]
[0143]
[0144] 在上述示例代码中,定义了一个Particle类来表示粒子群算法中的粒子,以及一个ParticleSwarmOptimization类来实现粒子群优化算法。算法通过迭代更新粒子的位置和速度来搜索料箱机器人的可选静态路径,并最终返回一组可选路径。
[0145] 可选地,所述初始适应度值代表对应初始化静态路径的初始性能强度,所述初始性能强度包括路径的长度、所述料箱机器人沿着所述初始化静态路径移动时的初始化转弯次数、与障碍物的平均安全距离。
[0146] 结合技术方案,初始适应度值代表对应初始化静态路径的初始性能强度,具有如下技术好处:
[0147] (1)初始适应度值综合考虑了路径的长度、料箱机器人沿着初始化静态路径移动时的转弯次数以及与障碍物的平均安全距离。这种综合评估方式能够更全面地反映路径的性能,而不仅仅是基于单一指标(如路径长度)进行判断。
[0148] (2)通过将转弯次数和与障碍物的平均安全距离纳入考虑范围,算法能够更倾向于选择那些不仅短而且平滑、安全的路径。这样的路径对于料箱机器人来说更加高效,因为它们可以减少转弯时的能量消耗和时间延误,同时降低与障碍物碰撞的风险。
[0149] (3)初始适应度值的设计使得算法更加灵活,可以根据不同的应用场景和需求进行调整。例如,在某些情况下,安全距离可能比路径长度更加重要,此时可以通过调整适应度函数中的权重来反映这一需求。
[0150] (4)通过为每个粒子分配一个初始适应度值,算法能够在迭代过程中更快地收敛到最优或次优解。这是因为粒子会根据其适应度值进行更新,而一个综合考虑了多个性能指标的适应度值能够更准确地指导粒子的搜索方向。
[0151] (5)在料箱机器人的出入库任务中,时间是一个重要的考虑因素。通过初始适应度值的设计,算法能够在较短的时间内生成一组高质量的可选静态路径,从而提升机器人的决策效率。这意味着机器人可以更快地选择一条合适的路径并执行任务,从而提高整体的工作效率。
[0152] 可选地,所述对所述初始化粒子群进行迭代,以进行料箱机器人出入库的静态路径的搜索,得到若干条可选静态路径,以组成可选静态路径集合,包括:
[0153] 基于设定的路径搜索机制,确定对所述初始化粒子群进行迭代时使用的自我认知度量、社会认知度量,所述自我认知度量用于表示粒子的当前路径长度与其最短路径长度的初始化语义距离,所述社会认知度量用于表示粒子的当前路径长度与全局最短路径长度的初始化语义距离;
[0154] 基于所述自我认知度量、社会认知度量,对所述初始化粒子群进行迭代,以进行料箱机器人出入库的静态路径的搜索,得到若干条可选静态路径,以组成可选静态路径集合。
[0155] 为此,通过对初始化粒子群进行迭代,并引入自我认知度量和社会认知度量来指导搜索过程,具有如下技术好处:
[0156] (1)自我认知度量和社会认知度量的引入,使得粒子在迭代过程中能够更加有针对性地调整其位置和速度,以搜索更优的路径。自我认知度量帮助粒子了解其自身路径的改进情况,而社会认知度量则让粒子知道与全局最优路径的差距,从而共同指导粒子的搜索方向。
[0157] (2)通过这两个度量的指导,粒子群算法能够更快地收敛到最优或次优解。粒子在迭代过程中会更加倾向于探索那些有可能产生更好路径的区域,从而减少了无效搜索,提高了整体搜索效率。
[0158] (3)虽然自我认知度量和社会认知度量会引导粒子向更优路径收敛,但由于粒子群算法本身的并行性和随机性,它仍然能够保持一定的路径多样性。这意味着算法能够探索并返回多条不同的可选路径,为料箱机器人的出入库任务提供更多选择。
[0159] (4)这种设计使得粒子群算法更加适应于复杂的仓库环境。无论是面对静态障碍物还是动态变化的交通状况,算法都能够通过调整自我认知度量和社会认知度量的权重来适应不同的环境条件,从而找到合适的路径。
[0160] (5)通过引入这两个度量,粒子群算法在搜索过程中不仅考虑了路径的长度,还隐式地考虑了路径的平滑性和安全性。这使得算法在为料箱机器人选择路径时能够做出更加智能的决策,选择那些既短又平滑、安全的路径。
[0161] 另外,以下提供一个示例性代码,用于说明如何在粒子群算法中引入自我认知度量和社会认知度量:
[0162]
[0163]
[0164] 在这个示例中,update_velocity方法被修改为包括自我认知部分和社会认知部分,它们分别由self_cognition和social_cognition计算得到。这两个部分共同指导粒子在迭代过程中调整其速度和位置,以搜索更优的路径。
[0165] 可选地,所述基于所述自我认知度量、社会认知度量,对所述初始化粒子群进行迭代,以进行料箱机器人出入库的静态路径的搜索,得到若干条可选静态路径,以组成可选静态路径集合,包括:
[0166] 基于所述自我认知度量、社会认知度量,在所述初始化粒子群所在的空间,对所述初始化粒子群进行迭代,以对所述初始化粒子群中的粒子进行实时更新得到动态粒子,以得到动态粒子群,每个动态粒子具有更新后的适应度值以及更新后的惯性权重;
[0167] 基于所述更新后的适应度值从所述动态粒子群筛选出部分动态粒子,以进行料箱机器人出入库的静态路径的搜索,得到若干条可选静态路径,以组成可选静态路径集合。
[0168] 为此,通过基于自我认知度量和社会认知度量对初始化粒子群进行迭代,并实时更新粒子得到动态粒子群,再从中筛选出部分动态粒子进行静态路径的搜索,具有如下技术好处:
[0169] (1)实时更新粒子得到动态粒子群,使得算法能够动态地适应仓库环境的变化。无论是静态障碍物的位置变动,还是动态障碍物的出现,算法都能够通过更新粒子的位置和速度来适应这些变化,从而找到新的可行路径。
[0170] (2)通过自我认知度量和社会认知度量的指导,动态粒子群能够更快地收敛到最优或次优解。粒子在迭代过程中会更加倾向于探索那些有可能产生更好路径的区域,减少了无效搜索,从而提高了搜索效率。
[0171] (3)由于粒子群算法本身的并行性和随机性,即使进行了实时更新,动态粒子群仍然能够保持一定的路径多样性。这意味着算法能够探索并返回多条不同的可选路径,为料箱机器人的出入库任务提供更多选择。
[0172] (4)实时更新粒子并得到动态粒子群的设计,使得算法对于初始粒子群的选择不再那么敏感。即使初始粒子群的质量不高,算法也能够通过迭代和更新逐渐找到较好的路径,从而增强了算法的鲁棒性。
[0173] (5)通过引入自我认知度量和社会认知度量,并结合实时更新的机制,粒子群算法在为料箱机器人选择路径时能够做出更加智能的决策。算法不仅考虑了路径的长度,还隐式地考虑了路径的平滑性和安全性,从而选择出更加合适的路径。
[0174] 另外,以下提供一个示例性代码,用于说明如何基于自我认知度量和社会认知度量对初始化粒子群进行迭代,并得到动态粒子群:
[0175]
[0176] 在这个示例中,Particle类增加了update方法,用于更新粒子的速度和位置,并计算新的适应度值和惯性权重。ParticleSwarmOptimization类的optimize方法则负责进行迭代优化,并在每次迭代后基于更新后的适应度值从动态粒子群中筛选出部分粒子,以进行料箱机器人出入库的静态路径的搜索。最后,返回适应度值大于某个阈值的粒子的位置作为可选静态路径集合。
[0177] 可选地,所述的方法,还包括:
[0178] 根据惯性权重更新的规则,对所述初始化粒子群中粒子的惯性权重进行线性更新,以使得所述惯性权重随着迭代次数的增加线性递减,所述线性递减使得在进行出入库的静态路径的搜索时,基于粒子在所述初始化粒子群所在的空间的最近搜索位置和搜索方向进行。
[0179] 将惯性权重进行线性更新的策略融入粒子群优化算法中,为料箱机器人出入库静态路径搜索带来了显著的技术优势:
[0180] 为此,基于上述惯性权重更新的规则的方案,具有如下技术好处:
[0181] (1)随着迭代次数递增,惯性权重线性递减,这意味着粒子在更新其速度和位置时,对当前位置和速度的依赖逐渐减少,而对自我认知和社会认知的依赖相对增加。这样的调整使得算法在迭代后期能更专注于局部搜索,有助于发现更优路径。
[0182] (2)惯性权重的线性递减策略在算法的全局搜索和局部搜索之间建立了动态平衡。迭代初期,较大的惯性权重有助于粒子探索更广泛的空间,而随着权重的递减,粒子则能更精细地搜索潜在的最优路径区域。
[0183] (3)通过调整惯性权重,算法能更有效地收敛至最优或次优解。线性递减策略确保了粒子在迭代过程中既保持足够的探索性,又逐渐聚焦于最有希望的搜索区域。
[0184] (4)该策略减少了不必要的广泛搜索,使算法能更快地定位到可行路径。这对于实时性要求较高的料箱机器人出入库任务尤为重要。
[0185] (5)线性递减的惯性权重策略使算法能灵活适应不同的仓库环境和任务需求。通过调整递减速率和初始权重,算法可针对不同场景进行优化。
[0186] 另外,如下提供一个代码示例,展示了如何在粒子群优化算法中实现惯性权重的线性更新:
[0187] classParticleSwarmOptimization:
[0188] def__init__(self,num_particles,num_iterations,inertia_weight_start,inertia_weight_end):
[0189] self.inertia_weight_start=inertia_weight_start#初始惯性权重[0190] self.inertia_weight_end=inertia_weight_end#最终惯性权重[0191] self.inertia_weight_decrement=(self.inertia_weight_start‑self.inertia_weight_end)/num_iterations#惯性权重递减量
[0192] def optimize(self):
[0193] for iin range(self.num_iterations):
[0194] current_inertia_weight=self.inertia_weight_start‑i*self.inertia_weight_decrement#计算当前惯性权重
[0195] for particle in self.particles:
[0196] particle.update(self.global_best,current_inertia_weight,self.c1,self.c2)#使用当前惯性权重更新粒子
[0197] 在此示例中,ParticleSwarmOptimization类的构造函数新增了inertia_weight_start和inertia_weight_end两个参数,分别代表惯性权重的起始和终止值。inertia_weight_decrement用于计算每次迭代时惯性权重的递减量。在optimize方法中,每次迭代都会根据当前迭代次数计算当前的惯性权重,并使用该权重更新粒子。这种策略有助于算法在搜索过程中逐步聚焦于更有希望的区域,从而提高搜索效率和路径质量。
[0198] 可选地,所述基于设定的静态路径约束,对所述可选静态路径集合求解,以从中选出满足所述设定的路径约束的可选静态路径并作为规划的静态路径,包括:
[0199] 所述静态路径约束定于的适应度阈值,以与所述可选静态路径集合中每条静态可选路径对应的更新后的粒子具有的更新后的适应度值进行全局求解,以从中选出更新后的路径的长度、转弯次数、与障碍物的平均安全距离全局匹配所述适应度阈值的可选静态路径为规划的静态路径。
[0200] 为此,通过基于设定的静态路径约束对可选静态路径集合进行求解,以从中选出满足路径约束的可选静态路径作为规划的静态路径,具有如下技术好处:
[0201] (1)通过设定适应度阈值,并考虑路径的长度、转弯次数以及与障碍物的平均安全距离等多个维度,能够确保所选路径在实际应用中具有可行性。这样的路径不仅符合机器人的运动能力,还能有效避免与仓库中的障碍物发生碰撞。
[0202] (2)全局求解过程综合考虑了多个路径评价指标,从而能够选出在多个方面都表现优异的路径。这样的路径往往更加平滑、高效,并且具有更好的安全性。
[0203] (3)通过设定不同的适应度阈值,可以灵活地调整算法对路径的选择标准。这使得算法能够适应不同的仓库环境和任务需求,为料箱机器人的出入库任务提供更加个性化的路径规划方案。
[0204] (4)综合考虑多个路径约束和评价指标进行全局求解,体现了算法在路径选择上的智能性。这样的决策过程更加全面、细致,能够确保所选路径在多个方面都符合最优或次优的标准。
[0205] (5)由于所选路径已经满足了所有的静态路径约束,因此在后续的处理流程中,无需再进行额外的路径验证和优化工作。这大大简化了处理流程,提高了算法的整体效率。
[0206] 另外,以下提供了示例性代码,用于说明如何基于设定的静态路径约束对可选静态路径集合进行求解:
[0207]
[0208]
[0209] 在这个示例中,PathConstraints类用于定义静态路径约束,包括路径的最大长度、最大转弯次数以及与障碍物的最小安全距离。evaluate_path函数用于评估一条路径是否满足这些约束条件。select_optimal_path函数则遍历可选静态路径集合,选出满足约束条件的路径作为规划的静态路径。这样的设计使得算法能够更加智能、灵活地选择出满足多种约束条件的优质路径。
[0210] 以上描述仅为本申请的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本申请中所涉及的发明范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离上述发明构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本申请中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。