AGV调度:路径规划

        这是我在参与AGV调度系统开发工作中形成的一些认识,是我的个人观点,想到什么写到什么。我自己也在学习,有不同观点可以一起讨论,由于涉及企业知识产权,所以我不会写具体实现以及一些核心的定制化的算法,文章内容仅供参考。

        AGV调度系统的路径规划通常是在已有的路径图上进行路径搜索规划,区别于此的是在自由空间上的路径规划。

        AGV的路径规划模块通常是提供AGV路径规划所需要的规划算法的模块,之所以独立成模块,而不是提供一个算法工具包DLL是因为路径规划中通常会涉及一些状态的使用。例如车辆的交管热力图,地图的区域配置以及库位货物信息等。所以独立成一个模块更利于状态的保存与获取,这样设计会更合理一些(?)。

        在不考虑库位及交管信息的情况下,通常AGV路径规划是需要提供一个规划接口的,这个接口传入规划起点和终点,返回规划出的路径线的数组。这个接口调用规划模块里面的具体实现。

        路径规划依赖于现场的地图,有些时候,为了避免单张地图过大,会对地图分区域。那么路径规划首先会根据任务的起点和终点以及车号,加载同时含有上述3者的区域地图(一般会做缓存)。

        在加载完地图之后就可以调用A*、双向A*、D*或者Dijkstra之类的算法去进行路径规划。这里需要注意一点,为使几种算法结果保持一致,同时也为了规划出的路径更合理,对于曲线以及变向线之类的需要增加其代价,否则启发式算法得到的解很可能不是最优的,会找出长度一样,但是多次变向的路径。另外对于双向A*算法,就算调整了代价,得到的也很可能不是最优解,这个后续说A*与双向A*算法的时候再分析。

        对于交管解锁的场景的时候,经常会频繁计算两点之间的规划距离以提供解锁的启发方向,这个时候规划模块还需要提供一个全局连通矩阵,这个矩阵不需要考虑状态,只需要快速给出两点间距离以避免每次都进行路径规划。这时候需要使用Flody算法或者多次堆优化Dijkstra算法在地图初始化的时候去生成这个矩阵。实践证明,使用多次堆优化Dijkstra算法来生成这个矩阵要比Flody算法的快的多(我的实现测下来差距是50倍)。

 

        

  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 多个AGV无碰撞路径规划算法可以分为集中式和分布式两种。 集中式算法:由一个中心控制器计算所有AGV的路径,保证所有AGV的路径不会发生碰撞。常用的集中式算法有基于图论的A*算法、Dijkstra算法等。 分布式算法:每个AGV都有自己的路径规划算法,各自计算路径并避免碰撞。常用的分布式算法有基于协作的算法、基于反应式的算法等。 其中,基于协作的算法是将AGV分为多个组,每个组内的AGV协作完成路径规划,各组之间进行协作,避免碰撞。基于反应式的算法则是让AGV根据周围环境的变化,实时调整路径,避免碰撞。 ### 回答2: 多AGV无碰撞路径规划算法主要用于在多个自动引导车(AGV)同时工作的环境中,确保它们在路径规划过程中不会发生碰撞。 这些算法通常包括以下步骤: 1. 地图建模:首先,需要对工作环境进行地图建模。可以使用传感器、激光扫描仪或摄像头等设备来获取环境的实时数据,然后将其转换成可用的地图形式。 2. AGV位置和目标设置:为每辆AGV设置其当前位置和目标位置。这些信息可以通过AGV上的传感器或者通过其他设备提供。 3. 碰撞检测:在进行路径规划之前,需要对可能发生碰撞的位置进行检测。可以使用物理模型或运动学模型来模拟AGV的动态行为,并根据这些模型进行碰撞检测。 4. 路径规划:基于地图、AGV的位置和目标,以及碰撞检测的结果,进行路径规划。常用的路径规划算法有A*算法、Dijkstra算法和遗传算法等。 5. 决策和调度:根据路径规划的结果,决定AGV的移动方向和速度。考虑到AGV之间的安全距离和优先级等因素,可以采用一些调度算法来进行决策和调度。 6. 实时更新和优化:由于环境可能发生变化,AGV之间的距离和状态也可能发生变化,需要对路径规划进行实时更新和优化,以确保AGV能够在最短的时间内到达目标位置。 总之,多AGV无碰撞路径规划算法可以通过建模、检测、规划、决策和优化等步骤,来确保AGV在工作环境中的路径规划过程中不会发生碰撞。这样可以大大提高自动化物流系统的效率和安全性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值