Agv、Rgv 车辆控制调度系统开发第二篇
系列文章目录
Agv、Rgv 车辆控制调度系统开发第二篇(理论片)
文章目录
- 系列文章目录
- 前言
- 一、什么是调度系统?
- 问题
- 二、问题分析
- 1.寻找路线
- 2.避碰算法
- 3.移车算法
- 4.解锁算法
- 总结
- 预告
- 链接
- 详细算法讲解新篇章
前言
这篇要讲什么我想了很久,最终还是决定将理论,没有好的理论知识是无法写出好的系统的。
我从一下几点分析下什么是调度系统
一、什么是调度系统?
个人见解,很直白的说调度系统就是让车从A点到B点的一个过程,但是在这个过程当中会有很多问题,只有解决了这些问题才能称为调度系统。
问题
- A点到B点的路线怎么走最合理(选路)
- 运行过程中如何避免和其他车辆产生冲突(避碰)
- 有其他的车挡住了路线怎么办(移车)
- 如果和其他有任务的车产生了冲突怎么办(解锁)
上面的是移动过程中的主要问题,今天就先分析这几项
二、问题分析
1.寻找路线
对于找路线这件事,其实已经不是很大的问题了,现在市面上的这种算法有很多,比如:A*,D*,F*,这些算法都是很成熟的寻路算法,只需要找一个合适的算法去理解和使用就行了,不管用什么算法一定要做到熟练使用,如果不熟练,就会有很多问题,比如:比如屏蔽的路线,拣选点,入库口这些地方的处理,如果对算法不熟悉是很难精细化调整的。
2.避碰算法
避碰是调度系统的核心,我觉得只要不碰撞上其他问题都是好说的,一旦撞了就涉及到车辆和货物损伤和赔偿问题。
如何才能不碰撞哪,我的做法是在节点对象上加两个属性,一个是预约车辆,一个是占用车辆,
举例:A车预约了1001这个位置,其他的车就不允许在预约这个位置了,如果1001被A车占用了,其他车就不允许在过来了,如何确定预约位置,我的做法是(载货/空车刹车距离)根绝当前位置计算出安全距离,在安全距离内的路线只要没有被预约,就可以预约使用。、
3.移车算法
移车算法我使用的是定时任务,定时去路线对象里面去找有没有车在路线上,找到占用的车辆使用递归的方式找安全位置移动过去。
4.解锁算法
解锁算法其实就是移车算法的扩展,我的做法是定时去查当前路线是否和其他路线重叠,如果重叠可能会形成死锁,提前给能安排路线的车重新规划路线,把原路线的权重加大,如果已经形成死锁了,就调用移车算法,上面的流程是一个周期,3-5个周期就可以解锁了。
总结
上面的理论就是我完成整套系统的核心理论。
用几张实际截图验证上面的理论
预告
下期讲地图编辑器,因为只有有了地图编辑器才能编辑地图,测试代码。
链接
Agv、Rgv 车辆控制调度系统开发第三篇
详细算法讲解新篇章
调度系统核心算法第一篇-交通管制
Agv、Rgv 车辆控制调度系统开发第二篇相关推荐
- Agv、Rgv 车辆控制调度系统开发第一篇
Agv.Rgv 车辆控制调度系统第一篇 为什么要做这个系统 先看作品 从头讲起 算法讲解 编程语言 从哪里开始 继续深入 预告 链接 问题解答 为什么要做这个系统 说白了是为了赚钱,在一个项目中发现公 ...
- Agv、Rgv 车辆控制调度系统开发知识点篇
拖欠更新说明 因为最近工作比较忙,把更新的事给忘了,看到好多人的催更,然后紧急补上一篇大家先了解下知识点 创建目录结构 上一次讲到,做调度系统需要的几个目录 1.寻路 2.避碰 3.解锁 4.任务调度 ...
- Agv、Rgv 车辆控制调度系统开发第三篇
Agv.Rgv 车辆控制调度系统开发第三篇地图编辑器 Agv.Rgv 车辆控制调度系统开发第三篇地图编辑器 Agv.Rgv 车辆控制调度系统开发第三篇地图编辑器 前言 一.GOJS 二.使用步骤 1. ...
- Agv、Rgv 车辆控制调度系统开发第四篇
Agv.Rgv 车辆控制调度系统开发第四篇 车辆调度模拟器 前言 一.车辆模拟器是什么? 二.如何做模拟器 1.动作仿真模拟器 2.完全仿真模拟器 总结 下期预告 系列文章链接 其他文章 新篇章 前言 ...
- Agv、Rgv 车辆控制调度系统开发第五篇-避碰
Agv.Rgv 车辆控制调度系统开发第五篇-避碰 前言 上期结束的时候说讲避碰,这期就主要谈一下避碰的原理,避碰是之前给其他人讲调度时,别人提了一个场景里面有三种车,10种货架问我怎么调度,当时确实被 ...
- Agv、Rgv 车辆控制调度系统开发第六篇-流程控制器
Agv.Rgv 车辆控制调度系统开发第六篇-流程控制器 Agv.Rgv 车辆控制调度系统开发第六篇-流程控制器 Agv.Rgv 车辆控制调度系统开发第六篇-流程控制器 前言 一.PCS是什么? 二.P ...
- Agv、Rgv 车辆控制调度系统开发第八篇-错误纠正
Agv.Rgv 车辆控制调度系统开发第八篇-错误纠正 前言 开始写博客到现在也有一年多了,这一年多分析了调度的很多东西,我也全网搜索过,网上真正分享调度知识的基本没有,虽然我也没有把核心的代码展示出来 ...
- 车辆控制调度系统(问题解答)
文章目录 前言 一.为什么把算法单独列出来? 前言 刚才有同学私信我说为什么把算法单独列出来,在这里我单独开一篇问题解答的博客,有问题都可以在这下面评论,不用私信,我肯定会解答的. 另外留下我的微信方 ...
- 公安情报指挥一体化合成作战平台建设,指挥调度系统开发
公安情报指挥一体化合成作战平台建设,指挥调度系统开发 华盛恒辉软件开发公安情报指挥一体化分解作战平台围绕"集成"."场景"."工具"三个关键 ...
最新文章
- 分享我设计的iOS项目目录结构
- 【易创课堂】第3期,最后2天报名啦!
- yii2之原生sql
- DM入门之Apriori小结
- 牛客 13822 Keep In Line(枚举与暴力、Python)
- spark-sql建表语句限制_SparkSQL
- 使用ZooKeeper实现分布式队列、分布式锁和选举详解
- PDE9 wave equation: general solution
- 微信小程序保存canvas绘制的图片到本地,拒绝图片授权后继续授权
- Ps 初学者教程,如何使用图层蒙版合成图像?
- Flyod和Warshall
- 【验证码识别】基于matlab GUI不变矩验证码识别(带面板)【含Matlab源码 095期】
- AAA和radius协议学习
- python pptx 替换图片_python win32com批量导出.ppt/.pptx文件所有图片
- 存储单元,字,MAR,存储字长,存储字,存储容量
- 关于流式计算和Excel的练习题
- leedcode.203移除链表元素
- layui向body添加html_layui使用教程 html引入layui教程-layui下载
- thinkpadt410接口介绍_T410 DisplayPort接口详解
- 嵌入式计算机是专用计算机吗,什么是嵌入式计算机?