已阅读5页,还剩10页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
实用主义c大型行动项目报告AGV路径规划与执行模拟软件设计团队成员:日期:2015年6月16日地图老师:目录c大型行动项目报告1AGV路径规划和执行模拟软件设计1一、主题背景31.1案例背景31.2问题说明31.3任务目标31.4具体分析3二、系统设计42.1类系统设计42.2类定义和函数说明42.3程序流程图5三、方案优先事项分析73.1阅读文本文档结构图信息73.2 Dijkstra算法编程83.3动态显示部分9第四,程序运行结果显示104.1地图文件104.2执行视窗104.3动态显示窗口11更改4.5地图,更改AGV参数执行。12五、方案编制摘要145.1编程缺陷和缺陷145.2设计中的困难14六、参考资料15Vii .源程序和相关文档15Viii .面板成员个人报告15一、主题背景1.1案例背景自动引导卡(AGV)由于灵活的运动,广泛用于生产现场的物料处理。独立的有限承载能力通常要求同时承载多个AGV。AGV通常无法识别全局信息,因此必须与主机计算机派单系统通信,以避免多个AGV冲突并提高AGV处理效率,并按照计划的说明运行。1.2问题说明使用c创建单个AGV,前提是已知运行AGV的贴图和AGV运行速度路径规划的最短路径算法,动态显示AGV的运行情况。1.3任务目标为AGV处理调度要求开发一套AGV路径规划和执行监控模拟软件,以便合理规划单个AGV执行路径并动态显示执行轨迹。1.4具体分析如上所述,AGV广泛用于工业生产,对AGV诱导程序的研究具有非常实用的意义。要完成完整的AGV路径规划过程,需要考虑三个方面:贴图、AGV和路径。其中路径最重要。此程序要求显示仿真,因此显示部分也很重要。创建多个AGV的路径规划过程时,还必须考虑路径的冗馀,以避免产生冲突。二、系统设计2.1类系统设计包含两个基类CFixedMap和cavv:单个继承派生类CPathPlan和多个派生类CAGVShow。2.2类定义和函数说明每个类的成员和成员函数的作用显示在标题中。(1)。基类:CFixedMapClass CFixedMapStruct Coordinateint x;int y;Int num /记录点的结构Struct combpInt x1,y1;Int x2,y2; /连接点坐标Struct CombnameInt num1Int num2 /连接名称Public:Int mVexNum/顶点数Int mEdgNum/边数double mMatrixMAXMAX;/相邻矩阵combname combMAX;/连接名称combp CPMAX;/连接点坐标coordinate mVexsMAX;/顶点集int getx(int n1);int gety(int N2);void Input();/将地图信息输入到文件中void show map();/easyx显示映射(2)。基类CAGVClass CAGVInt speed/AGV速度Int width/AGV宽度Int length/AGV长度Public:CAGV();int getl();/返回AGV长度int getw();/返回AGV宽度int gets();/返回AGV速度(3)单个继承类CPathPlanclass cpath plan : public cfixed mapPublic:int pathMAX;/储存最后一个点双磁盘MAX;/储存路径距离Int v0/起点int route40;/路径Int rnum/路径顶点数coordinate rpointsMAX;/路径点集void MaptoGraph();void Dijstra();void Putpath();(4)多个继承类CAGVShowclass CAG v show : public cpath plan,public cavyPublic:# define k(ABS(y2-y1)/(ABS(x1-x2)Int a、b、c、d;Int x1、x2、y1、y2;/AGV实际坐标Int i、j;Int l、w、s;/该类CAGV中的相关数据void show();2.3程序流程图开始设定AGV资讯自动设置AGV?是自动加载地图?手动输入AGV信息手动输入地图文件名加载地图文件(文本)你看过多次了吗?否显示地图路径文件输出路径规划动态显示动态显示显示地图路径规划路径文件输出结束了吗?结束是否是否是否三、方案优先事项分析3.1阅读文本文档结构图信息在早期设计中,地图文本写得粗糙,以便于调试和信息输入,但实际上为程序编写提供了很多便利。优化之前的地图文件:都是由数字组成的,如果不知道程序的话,就可以知道文件中包含什么,以及如何修改。优化时添加了很多提示,也出现了问题。文件流输入无法确定输入的信息类型,因此输入信息时出现无法获取正确信息的错误。为了解决这个问题,我们使用了一种简单的方法,将地图信息和提示信息分开,单独输入后不再处理提示信息。改进的地图文本包括:程序的相应代码:/将地图信息输入到文件中Void CFixedMap:Input()Int panjuchar fname10= map 2 . txt ;是否加载“Cout”主地图?(1:是,23360否);CinpanjuIf(panju=2)输入Cout 地图信息文件名: Cinfnameifstream file(fname);char use 1100;char use 2100;char use3100;char use 4100;/use阵列用于储存提示资讯。Fileuse1FilemVexNum/端点数文件使用2;FilemEdgNum/边数文件使用3;for(int I=0);Imv exs I。nummvexs I。xmvexs I。y;文件使用4;for(I=0);icombI. num 1 combI. num 2;file . close();3.2 Dijkstra算法编程Dijkstra算法主要是查找和更新。最初创建为指针,后来将input函数的变量与地图中的输入结合使用,因此使用数组存储距离和路径。Diikstra算法首先初始化源点阵列,然后查找离源点最近的其他点,将该点合并到源点集,更
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论