Agv、Rgv 车辆控制调度系统开发第二篇

系列文章目录

Agv、Rgv 车辆控制调度系统开发第二篇(理论片)

文章目录

  • 系列文章目录
  • 前言
  • 一、什么是调度系统?
    • 问题
  • 二、问题分析
    • 1.寻找路线
    • 2.避碰算法
    • 3.移车算法
    • 4.解锁算法
  • 总结
  • 预告
    • 系列文章链接
    • 其他文章
    • 新篇章


前言

这篇要讲什么我想了很久,最终还是决定将理论,没有好的理论知识是无法写出好的系统的。
我从一下几点分析下什么是调度系统

一、什么是调度系统?

个人见解,很直白的说调度系统就是让车从A点到B点的一个过程,但是在这个过程当中会有很多问题,只有解决了这些问题才能称为调度系统。

问题

  1. A点到B点的路线怎么走最合理(选路)
  2. 运行过程中如何避免和其他车辆产生冲突(避碰)
  3. 有其他的车挡住了路线怎么办(移车)
  4. 如果和其他有任务的车产生了冲突怎么办(解锁)
    上面的是移动过程中的主要问题,今天就先分析这几项

二、问题分析

1.寻找路线

对于找路线这件事,其实已经不是很大的问题了,现在市面上的这种算法有很多,比如:A*,D*,F*,这些算法都是很成熟的寻路算法,只需要找一个合适的算法去理解和使用就行了,不管用什么算法一定要做到熟练使用,如果不熟练,就会有很多问题,比如:比如屏蔽的路线,拣选点,入库口这些地方的处理,如果对算法不熟悉是很难精细化调整的。

2.避碰算法

避碰是调度系统的核心,我觉得只要不碰撞上其他问题都是好说的,一旦撞了就涉及到车辆和货物损伤和赔偿问题。
如何才能不碰撞哪,我的做法是在节点对象上加两个属性,一个是预约车辆,一个是占用车辆,
举例:A车预约了1001这个位置,其他的车就不允许在预约这个位置了,如果1001被A车占用了,其他车就不允许在过来了,如何确定预约位置,我的做法是(载货/空车刹车距离)根绝当前位置计算出安全距离,在安全距离内的路线只要没有被预约,就可以预约使用。、

3.移车算法

移车算法我使用的是定时任务,定时去路线对象里面去找有没有车在路线上,找到占用的车辆使用递归的方式找安全位置移动过去。

4.解锁算法

解锁算法其实就是移车算法的扩展,我的做法是定时去查当前路线是否和其他路线重叠,如果重叠可能会形成死锁,提前给能安排路线的车重新规划路线,把原路线的权重加大,如果已经形成死锁了,就调用移车算法,上面的流程是一个周期,3-5个周期就可以解锁了。

总结

上面的理论就是我完成整套系统的核心理论。
用几张实际截图验证上面的理论
Agv、Rgv 车辆控制调度系统开发第二篇_第1张图片
Agv、Rgv 车辆控制调度系统开发第二篇_第2张图片
Agv、Rgv 车辆控制调度系统开发第二篇_第3张图片
Agv、Rgv 车辆控制调度系统开发第二篇_第4张图片

预告

下期讲地图编辑器,因为只有有了地图编辑器才能编辑地图,测试代码。
Agv、Rgv 车辆控制调度系统开发第二篇_第5张图片
Agv、Rgv 车辆控制调度系统开发第二篇_第6张图片

系列文章链接

Agv、Rgv 车辆控制调度系统开发第一篇
Agv、Rgv 车辆控制调度系统开发第二篇
Agv、Rgv 车辆控制调度系统开发第三篇
Agv、Rgv 车辆控制调度系统开发第四篇
Agv、Rgv 车辆控制调度系统开发第五篇-避碰
Agv、Rgv 车辆控制调度系统开发第六篇-流程控制器
Agv、Rgv 车辆控制调度系统开发第七篇-选车算法
Agv、Rgv 车辆控制调度系统开发第八篇-错误纠正
Agv、Rgv 车辆控制调度系统开发第9篇-性能测试
Agv车辆控制调度系统开发第十篇-终结篇

其他文章

调度系统核心算法第一篇-交通管制
agv车辆调度系统-技术篇
agv调度系统3.0技术介绍
调度算法研究交流群的建立-欢迎加群交流
Agv、Rgv 车辆控制调度系统开发知识点篇

新篇章

新篇章:智能工厂软件生态第一篇

你可能感兴趣的:(车辆控制调度系统,车辆交通管制,dotnetCore,自动驾驶,机器学习,算法)