内容发布更新时间 : 2024/12/25 10:53:45星期一 下面是文章的全部内容请认真阅读。
山东建筑大学毕业论文
? Y 1 y0??tab?u??i??t?1% (2.22)
同样,用x1,y1记录蚂蚁j在t时刻所在方格的横坐标和纵坐标,有:
/ Y 1 x1??tab?u??j??t?1? (2.23) ? Y 1 y1??tab?u??j??t?1% (2.24)
如果
(x0?x1)2?(y0?y1)2?0(或者为1,2)则说明蚂蚁i,j 此刻相遇了。
步骤7:信息素全局更新。一次循环搜索完毕之后,要对最佳路径上的信息素进行更新。方法同ACS算法:
newoldhormoneij?(1?alfh)hormoneij?alfh*sumtao?Q,?ksumtao??bestd??0,当蚂蚁k走过的方格ij属于最佳路径时 (2.25) 否则2.7 本章小结
本章从机器人路径规划演示平台的历史和现状出发,对比了国内外的不同发展状况,并且对机器人路径规划领域的研究方向进行了综述。着重介绍了机器人在避障与路径规划中常用的算法,对其中的栅格法,人工势场算法,和神经网络算法进行了逐一的分析和详细阐述。此外,本章还着重分析了栅格法的实现原理和人工势场法的建模实现原理。
- 20 -
山东建筑大学毕业论文
3 机器人路径规划演示平台设计系统的VC++实现
3.1 软件介绍
3.1.1 VC简介
Visual C++ 6.0,简称VC或者VC6.0,是由微软公司推出的一款C++编译器,是将“高级语言”翻译为“机器语言”的程序。Visual C++6.0是一个功能强大的可视化软件开发工具,因此它不仅是一个C++编译器,而且是一个基于Windows操作系统的可视化集成开发环境(integrated development environment,IDE)。Visual C++6.0由许多组件组成,包括编辑器、调试器以及程序向导AppWizard、类向导Class Wizard等开发工具,这些组件通过一个名为Developer Studio的组件集成为和谐的开发环境,是Microsoft的主力软件产品,也是日常应用非常广泛的一个软件。
3.1.2 VC安装使用
VC的安装相对比较简单,将下载的VC软件按照提示,顺序安装即可。VC的安装步骤如下所示:
(1)双击VC的桌面图标VC++6.0
。
(2)在菜单文件中点击新建按钮,然后在projects里点击工程MFC AppWizard,下一步选择单文档,其余设置选择默认即可。
(3)然后再次点击文件的新建,然后在files里选择C++source file。 (4)一直默认下一步即可,然后就可以在出现的编辑区域中编写代码。 (5)写好代码后,点击工具栏中的compile按钮误,点击Build按钮
,编译源代码看是否报错,若无错
运行;若报错,则在编辑区下方有提示问题的所在,双击报错的代
码行,会在程序中显示出错的位置,在提示的位置中做修改后重复上面的工作,也可以点击工具栏中的感叹号或者直接点击快捷键F9运行。
3.1.3 VC功能优势
- 21 -
山东建筑大学毕业论文
Visual C++是一个功能强大的可视化软件开发工具。Visual C++已成为专业程序员进行软件开发的首选工具。
Visual C++6.0以拥有“语法高亮”,自动编译功能以及高级除错功能而著称。比如,它允许用户进行远程调试,单步执行等。还有允许用户在调试期间重新编译被修改的代码,而不必重新启动正在调试的程序。其编译及创建预编译头文件(stdafx.h)、最小重建功能及累加连结(link)著称。这些特征明显缩短程序编辑、编译及连结的时间花费,在大型软件计划上尤其显著。这也是选用VC实现机器人路径规划演示平台设计的重要原因。
3.2 机器人路径规划演示平台系统的总体设计
3.2.1 设计名称:机器人路径规划演示平台设计
3.2.2 设计说明:
本文介绍机器人路径规划演示平台的设计,该系统的实现是基于VC++6.0的界面设计和编程功能。为了实现机器人路径规划演示平台的设计,我们将通过利用VC++6.0编程,系统可以利用程序设置障碍物位置以及机器人的目前位置和目的地位置;然后我们再基于栅格法在VC++6.0软件中编写相关程序,以实现从机器人目前位置到目标点的无碰最优路径,并在界面窗口中显示,让我们一目了然。利用VC程序实现路径规划演示平台的操作界面是本次课题设计的最主要成果,在界面中,使用者可以通过操作相关界面按钮即可完成障碍物的设置、目标点的位置、机器人的初始位置以及最优路径的显示。
最后经过讨论算法的优缺点并给出算法仿真和分析结果,从而不断完善这个系统。
3.2.3 设计目的:
在科学探索和紧急抢险中经常会遇到一些危险地域或是人类不能直接到达的地域的探测,这些就需要用机器人来完成。而在机器人在复杂地形中行进时自动避障是一项必不可少也是最基本的功能。因此,机器人的自动避障有了重大的意义。路径规划是移动机器人领域的一个重要组成部分。它的任务是在具有障碍物的环境中,按照一定的评价标准,寻找一条从起始状态(包括位置及姿态)到达目标状态(包括位置及姿态)的无碰路径。 3.2.4 设计内容
- 22 -
山东建筑大学毕业论文
(1) 基于VC++6.0实现一个机器人路径设计演示平台,系统可在程序实现的平台界面中设置障碍物位置,机器人目前位置和目的地位置;
(2) 基于栅格法设计从机器人目前位置到目标点的无碰路径,并在窗口中显示。 (3) 实验结果与程序测试。
(4)软件平台: WindowsXP,VC++6.0。
(5)硬件平台: CPU主频大于等于1.2GHZ,内存大于等于512MB的电脑一台。
3.3 算法论述
3.3.1界面的设计运行
1.界面的设计
首先在Create函数调用时使用OnCreate函数,OnCreate主要用来创建窗口的风格,如最大化、最小化窗口、宽度等。OnCreate函数基本设置了机器人路径规划演示平台界面中的工具条、工具栏的显示方式和布局。 相关程序段:
int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct) {
if (CFrameWnd::OnCreate(lpCreateStruct) == -1)
return -1;
if (!m_wndToolBar.CreateEx(this, TBSTYLE_FLAT, WS_CHILD | WS_VISIBLE | CBRS_TOP
| CBRS_GRIPPER | CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_SIZE_DYNAMIC) ||
!m_wndToolBar.LoadToolBar(IDR_MAINFRAME)) { TRACE0(\ }
if (!m_wndStatusBar.Create(this) || {
TRACE0(\return -1; // fail to create
- 23 -
return -1; // fail to create如果创建或者加载失败则给出调试信息后退出。
!m_wndStatusBar.SetIndicators(indicators, sizeof(indicators)/sizeof(UINT)))