博客
关于我
夜光精讲 Opentcs 三大算法(二)任务分配算法
阅读量:261 次
发布时间:2019-03-01

本文共 904 字,大约阅读时间需要 3 分钟。

夜光序言:

 

原谅不是无视,而是容纳。一个意味含蓄的笑容。只能是各自的担当。

 

 

 

 

 

 

正文:

白启动任务

自启动任务分为充电任务和停靠任务。不同于订单类型的任务,自启动任务通过实时检测AGV电量状态和任务池完成状态而自动发起的任务,因此无需由控制中心指派AGV,任务产生时己绑定了相应的车辆。

1.充电任务:

AGV在运行过程中会产生大量的电量消耗,因此需能够及时充电以保证后续的正常运转。我们设计充电时电量剩余指标:critical   level, good  level 和perfect  level。

三段式电量百分比设计充分提高系统中车辆的利用率。

 

通常情况下,车辆处于perfect  level或good  level状态。当电池电量低于critical  level百分比时,AGV进入电量严重不足状态,车体客户端通过调用getRechargeO peration函数发出充电请求信号通知控制中心、控制中心、指派充电任务给此AGV,同时指定空闲的充电站点。此间AGV接受任何订单,AGV将当前子任务执行完毕后执行充电任务,其他尚未执行的任务进行重新分配。

当AGV进行充电将电量回升至高于good  level时,可以接受订单,若无订单,则继续充电。
当AGV充电完成100%时,结束充电任务,若无订单任务的指派,能自启动停靠任务进行停泊,让出空闲的充电站点。


2.停靠任务:当AGV当前完成所有任务且无其他新的任务,就近停泊,可以节省电量消耗的同时,为地图减少一个动态障碍点,使得系统的行驶夏加通畅。

(1)调用isParkPosWon(Point*a)函数:判断当前点是否可停靠;
(2)调用getParkPoints(car,points)函数:收集当前可W停靠的点,排除臣经被其他vehicle占用的或被其他小车订单预定的点(状态数为2),即小车不会停靠到其他车辆未来将要经过的路径上。
(3)从(2)的点中调用getNearestPoint(vehicle,points)函数:找到当前离小车最近的未被占用的目标停靠点;
 


2 . 任务执行状态

任务执行状态枚举类为enumTASK_STATUS{枚举值表}

转载地址:http://xebo.baihongyu.com/

你可能感兴趣的文章
并发控制
查看>>
A - 数据结构实验之图论一:基于邻接矩阵的广度优先搜索遍历(BFS)
查看>>
L - 病毒扩散(暴力)
查看>>
AcWing 1432. 棋盘挑战(DFS回溯+n皇后问题变形)
查看>>
2021-04-15
查看>>
free(): double free detected in tcache 2 如何解决
查看>>
c语言-单链表
查看>>
《软件方法》第1章 建模和UML
查看>>
Rhapsody的文件能转到EA里面吗
查看>>
188_半波整流的二极管为什么两个串联
查看>>
设计模式(C#)——01单例模式
查看>>
一张图让你了解——mysql高可用:分库分表
查看>>
《程序猿的第n+3天》bootstrap做收缩导航
查看>>
linux项目部署常用命令
查看>>
autotools教程
查看>>
android instant app
查看>>
ubuntu非root用户如何访问vmware共享文件夹
查看>>
如何使用Postman保存请求和返回,离线查看请求数据
查看>>
系统架构
查看>>
图解HTTP (chap4 Http状态码) 5XX
查看>>