博客
关于我
夜光精讲 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/

你可能感兴趣的文章
OpenCV透视校正perspective correction的实例(附完整代码)
查看>>
48.9%的企业会在人力资源场景中使用电子签约,君子签为HR赋能增效
查看>>
Linux部署sendmail邮件服务器
查看>>
Centos7部署NFS-V4
查看>>
C语言和32位汇编语言关于if-else分支结构的对比分析
查看>>
阿里云服务器中XAMPP(Apache)无法用外网访问的原因之一
查看>>
Java小白的入门之路
查看>>
Linux自学之旅-基础命令(系统痕迹之who命令)
查看>>
css 设置背景图片铺满固定不动
查看>>
【TSP】基于混合粒子群求解TSP问题matlab源码
查看>>
ie http 中文传参 400错误
查看>>
JAVA_集合
查看>>
mvc+webservice+存储过程分页
查看>>
openlayer展示热力图
查看>>
mongodb中文档的特殊更新--upsert、remove(根据条件删除数据 )
查看>>
微信小程序中的自定义组件
查看>>
HTML表单跨行跨列操作
查看>>
Eclipse-更改Eclipse中SVN用户名及密码
查看>>
Mybatis-PageHelper分页插件-Spring
查看>>
MyBatis5_动态SQL
查看>>