




已阅读5页,还剩53页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
南京工程学院车辆工程系本科毕业设计(论文) 基于超声信息的智能小车环境地图创建研究毕业论文目 录第一章 绪 论11.1 引言11.2 移动机器人的发展及分类11.3 智能小车的主要研究内容21.4 智能小车的传感系统31.5 本次设计的任务及要求51.6 本文的结构5第二章 Labwindows/CVI软件编程62.1 虚拟仪器62.1.1 虚拟仪器的基本概念62.1.2 虚拟仪器的特点62.2 LabWindows/CVI编程语言72.2.1 LabWindows/CVI的功能和特点72.2.2 LabWindows/CVI的工作空间82.3 环境地图主界面创建92.3.1 建立工程文件102.3.2 创建用户界面文件102.3.3 生成源代码文件15第三章 超声传感器原理及建模183.1 超声波的一般性质183.1.1 超声波的传播速度183.1.2 超声测距原理183.1.3 超声波的反射与折射现象183.1.4 超声波传播中的衰减193.1.5 超声波的方向性193.2 超声模型的建立193.2.1 中线模型203.2.2 弧线模型21第四章 基于超声信息的环境地图创建244.1 坐标系的建立244.1.1 全局坐标系244.1.2 局部坐标系244.1.3 全局坐标系与局部坐标系转换244.2 地图创建方法介绍264.2.1 栅格地图264.2.2 几何特征地图264.2.3 拓扑地图264.3 使用超声信息建立栅格地图27第五章 数字滤波法305.1 滤波的方法305.2 均值滤波法305.2.1 均值滤波算法305.2.2 均值滤波法CVI编程305.3 中值滤波法325.3.1 中值滤波算法325.3.2 中值法CVI编程325.4 最小方差法335.4.1 最小方差滤波算法335.4.2 最小方差法CVI编程335.5 数据的筛选355.6 实验结果及数据分析37第六章 结 论406.1 论文总结406.2 感想40致谢41参 考 文 献42附录A:英文资料43附录B:英文资料翻译47附录C:栅格地图CVI程序5056第一章 绪 论1.1 引言机器人学是现今高科技发展的研究方向之一,其发展己有近半个世纪的历1984年国际标准化组织对机器人作了如下的定义:“机器人是一种自动控制下通过编程可完成某些操作或移动作业的机器”。从总体上看,机器人学是一门包含多个学科的综合性技术,涉及到机械工程、自动控制、传感器技术、人工智能以及计算机理论等多个学科的内容。从发展来看,机器人的研究与发展大致可以分为以下三个阶段:第一阶段是可编程的示教一再现型机器人,这类机器人一般采用简单的开关控制、示教再现控制和可编程控制,作业路径或运动参数需要示教或编程给定;该类机器人没有配备任何外部传感器,无法感知外部的环境。第二阶段是具有一定的感知功能和适应能力的离线编程机器人。这类机器人配备了简单的内部传感器,能感知自身运动的速度、位置、姿态等物理量;并且还配备了简单的外部传感器如视觉、力觉传感器等,因而具有部分适应外界环境的能力。第三阶段是指智能机器人的研究。随着机器人应用领域的不断拓宽,以及计算机技术和人工智能理论的不断发展,机器人技术已经超出了特指工业机器人的范畴。从二十世纪六十年代末开始,国际上广泛开展了智能机器人的研究。一般而言,智能机器人装备了由多种外部传感器组成的传感系统,可通过对外部环境信息的获取、处理,来描述外部环境。通过自身配备的知识库及多信息处理系统,并利用人工智能技术智能机器人能够进行独立地识别、理解和推理,并做出正确的判断和决策,自主地完成一些复杂工作,实现预定的工作目标。1.2 移动机器人的发展及分类移动机器人属于智能机器人的范畴,是机器人学中的一个重要分支。所谓移动机器人,就是集环境感知、动态决策与规划、行为控制与执行等多种功能于一体的综合智能体。它可以根据预先给定的任务,按照已知或部分已知的地图做出运动规划,在行进过程中不断感知周围环境的信息,实时地进行避障、导航及目标跟踪等,使其沿着正确的路径前进。一般而言,移动机器人包括以下几个组成部分:(1)执行机构:用来驱动移动机器人行动的机械、马达和控制模块等;(2)传感器系统:用来感知周围的环境,常使用的传感器包括视觉、超声、红外、激光雷达等;另外还包括传感器数据处理模块及多传感器数据融合模块等; (3)定位系统:用来在移动机器人移动过程中,实时地确定机器人当前的位置和姿态;(4)路径规划:根据移动机器人的工作任务,以及传感系统及定位系统的信息,对移动机器人的运动路径进行规划及调整,使其能够成功地躲避障碍物,并沿着正确的路径行进,从而完成给定的工作任务;(5)其他:通常移动机器人是被设计成完成特定任务的,因此需要一定的专门模块来完成这些给定的特殊任务。另外,为了方便操作人员的管理,还需要提供人机界面来实现任务下达和机器人工作状态监视等管理功能。目前,己经研制出了许多种类的移动机器人。根据不同的分类方式,它可以大致分为如下几类,如表1.1所示: 表1.1移动机器人分类表分类方式分类情况 工作环境室内移动机器人、室外移动机器人移动方式轮式移动机器人、步行移动机器人、蠕动机器人履带式移动机器人、爬行机器人、水下推进式机器人等控制体系功能式(水平式)结构机器人、行为式(垂直式)结构机器人、混合式结构机器人功能用途医疗机器人、军用机器人、助残机器人、清洁机器人、管道检测机器人等作业空间陆地移动机器人、水下机器人、无人飞机、空间机器人1.3 智能小车的主要研究内容智能小车(轮式移动机器人)要想走向实用,必须拥有精确的感知能力、可靠的定位系统、能胜任的运动系统和与人一起安全而又友好地工作的能力。因此,智能小车需要满足三个智能指标:适应性、自主性和交互性。适应性是指智能小车具有适应复杂工作环境的能力,不但能识别和测量周围的物体,还有理解周围环境和所要执行任务的能力,并做出正确的判断及操作和移动等能力;自主性是指智能小车能根据工作任务和周围环境情况,确定工作步骤和工作方式;交互性是机器人智能产生的基础,交互包括智能小车与环境、智能小车与人及智能小车之间三种,主要涉及信息的获取、处理和理解等。针对上述智能指标,智能小车主要包括以下几方面的研究内容:(1)定位与导航 定位是移动机器人研究中的一个重要问题。作为智能小车导航的最基本环节,定位是确定智能小车在工作环境中相对于全局坐标的位置与姿态。定位方法根据智能小车工作环境复杂性、配备传感器的种类和数量等不同而有多种方法。根据环境信息的完整程度、导航指示信号类型、导航地域等因素的不同,智能小车的导航方式可分为:基于环境信息的地图模型匹配导航、基于各种导航信号的陆标导航、基于视觉导航以及基于传感器导航等。(2)路径规划 路径规划是在一个存在障碍物的环境中,为智能小车寻找一条无碰撞路径。对于自由运动的智能小车,即小车的运动不受限制,路径规划问题可以通过在自由位移空间内计算一条路径加以解决,这样的一条路径与工作空间内的一条可行的自由路径相对应。(3)智能技术智能技术是用机器来模拟人的外在认识和思想行为的技术总称。对于智能小车来说,智能技术是基于传感的智能和自动规划技术,包括知识理解、推测、感觉、认识、推理、归纳、推断、计划、反应、学习和问题求解等,涉及的领域包括图像理解、语音和文字符号的处理与理解、知识的表达和获取、学习、智能运动。目前,对于智能技术的研究,主要分为两大类:间接进化和直接进化。前者主要以符号主义的人工智能为代表;后者以计算智能技术为代表,包括神经网络技术,模糊技术,进化计算(遗传算法、进化策略、进化规划等)和基于个体的复杂系统的研究。(4)运动控制运动控制是研究自主智能小车技术较为活跃的课题之一。自主智能小车按照存储在其内部的地图信息,或根据外部环境所提供的引导信号(即通过对环境的实时探测所获得的信息)规划出一条路径后,它还必须能够沿着该路径在有人工干预的情况下,采用跟踪控制和避障技术移动到预定目标点,实现智能小车的导航。(5)多传感器系统与信息融合智能小车技术中多传感器信息融合技术是一项内容广泛的技术,涉及传感器、信号处理、机器人学、控制理论、系统分析、概率统计、计算机科学、仿生学等很多方面的知识;同时,也是一项用途广泛的技术。多传感器信息融合的常用方法有:加权平均法、贝叶斯估计、卡尔曼滤波、统计决策理论、D-5证据推理、神经网络和模糊推理法以及带置信因子的产生式规则。1.4 智能小车的传感系统智能小车的传感系统负责获取小车的内部状态和外部工作环境的信息,是智能小车感知、决策和动作的三大要素之一。传感器的硬件组成单元是传感器,其功能是为小车提供诸如视觉、力觉触觉等对外部环境的感知能力,同时还可以感知小车本身的工作状态和位置。目前,智能小车常采用的传感器有视觉传感器、超声传感器、里程计、激光雷达、红外传感器、微波雷达、陀螺仪、电子罗盘、速度或加速度计、触觉或接近觉传感器等。(1)视觉传感器视觉传感器是将景物的光信号转换成电信号的器件,目前常用的是CCD摄像机,它是由时钟脉冲电位来产生和控制半导体势能的变化,以实现存储和传递电荷信息的固态电子器件。CCD摄像机是以CCD为核心部件的数字传感器,是现代最为理想的仿生可见光传感器,虽然严格说来它比生物视网膜的功能还相差较远,但其图像质量足以与生物视觉传感器相当。因此,人们在自主智能小车研究之初,首先想到了将它作为主要环境传感器。因为视觉信息是对环境最全面、最深入的反映。运用视觉传感器,可进行与移动机器人大多数低层行为控制有关的环境感知,如测距、避障与道路跟踪,局部定位以及路标识别等功能。(2)超声传感器超声传感器具有测距精度高、价格低及处理速度快等优点,因此在智能小车上得到了广泛应用。在工作时,它既是超声波发射器又是超声波接收器;在发射超声波的时候,通过超声波换能器,将电能转换超声波,并将其按一定频率发射出去;而在接收到回波的时候,则将超声振动转换成相应的电信号。本次设计将采用超声传感器进行地图创建研究。(3)光电编码器作为小车位移传感器,光电编码器应用最为广泛。光电编码器输出表示位移增量的编码器脉冲信号,并带有符号。光电编码器在圆盘上有规则地刻有透光和不透光的线条,在圆盘两侧,安放发光元件和光敏元件。当圆盘旋转时,光敏元件接收的光通量随透光线条同步变化,光敏元件输出波形经过整形后变为脉冲,码盘上有相应标志,每转一圈输出一个脉冲。根据检测原理,编码器可分为光学式、磁式、感应式和电容式。根据其刻度方法及信号输出形式,可分为增量式编码器和绝对式编码器。(4)红外传感器红外线是一种只有少数生物才能感觉到的广波,其波长为1nm1000nm,具有定向传播和反射能力。智能小车上的红外传感器探测原理为:红外传感器发出红外信号并检测返回的信号,通过返回的强度并依据环境物体的反射系数估计传感器本身到目标物体的距离。红外传感器的探测特性与超声传感器恰好相反,即角度分辨率高,而距离分辨率低。当然,它同样具有灵敏度高,反应速度快,结构简单,成本低等优点,其缺点是探测距离依赖与物体反射的光强度。1.5 本次设计的任务及要求本次设计是对基于超声信息的智能小车进行环境地图创建研究。首先,对超声波进行建模,要求使用弧线模型。其次,对于地图建模方法,所用到的是较为常用栅格地图。最后将数据进行筛选,再利用虚拟仪器软件Labwindows/CVI对地图进行描述。在软件的编程过程中,要求用均值法、中值法、最小方差法对有效数据进行处理,从而模拟出环境地图。1.6 本文的结构本文以基于超声信息的智能小车的研发工程项目作为应用背景,对地图创建技术进行了研究。全文共分为七章,各章的主要内容如下:第一章扼要地介绍了智能小车发展、分类、主要研究内容以及传感系统;第二章介绍了虚拟仪器LabWindows/CVI的特点、功能及举例应用;第三章对超声传感器及建模方法进行了介绍;第四章对基于超声信息地环境地图创建进行了研究,介绍了坐标系的建立、地图创建方法、不确定信息的描述和处理方法以及使用超声信息建立栅格地图等。第五章对超声建模的算法进行了介绍;第六章总结了全文的研究工作,给出了存在的问题和进一步研究的方向。第二章 Labwindows/CVI软件编程通过学习虚拟仪器的基本概念、虚拟仪器开发语言LabWindows/CVI的编程环境和程序结构以及基本控件的使用方法,并通过简单实例的练习,迅速掌握利用LabWindows/CVI开发平台构建一般应用程序的基本思想、方法和步骤。2.1 虚拟仪器虚拟仪器是计算机技术、仪器技术和通信技术相结合的产物。虚拟仪器的目的是利用计算机强大资源使硬件技术软件化,分立元件模块化,降低了程序开发的复杂程度,增强系统的功能和灵活性。2.1.1 虚拟仪器的基本概念虚拟仪器(VirtualInsturment,简称VI)的概念,是NI公司于1986年提出的。所谓虚拟仪器技术,就是用户在通用计算机平台上,根据任务的需要来定义和设计仪器的功能,其实质是软硬件结合,虚实结合的产物,是充分利用最新的计算机技术来实现和扩展传统仪器功能。虚拟仪器的基本思想是利用计算机来管理仪器,组织仪器系统,进而逐步代替仪器完成某些功能,最终达到取代传统电子仪器的目的。虚拟仪器技术综合运用了计算机技术,数字信号处理技术,标准总线技术和软件工程方法,代表了测量仪器与自动测试系统未来的发展方向。虚拟仪器是一个开放式的结构,它以通用计算机为核心,通过配置I/O接口设备(如数据采集卡DAQ、GPIB总线仪器、VXI总线仪器模块、串口总线仪器等)实现信号的获取与控制,还可以用数字信号处理器DSP实现信号的处理,加上实现不同测量功能的软件对采集获得的信号数据进行分析处理及显示,从而实现仪器的功能。2.1.2 虚拟仪器的特点虚拟仪器是用计算机应用程序实现仪器的功能,而不是用硬件实现,这是与传统仪器的最大区别。另外,虚拟仪器技术与计算机测控技术有所不同,主要是两者的着重点有区别,计算机测控技术着重计算机的硬件和各种标准协议,虚拟仪器技术则是着重仪器的功能,并充分利用了计算机测控技术。虚拟仪器在以下几个方面具有传统仪器所无可比拟的特点:(1)虚拟仪器的功能、性能、指标可由用户定义,即可以根据用户的不同要求对同一仪器的功能、性能、指标进行修改或增删,彻底打破了传统仪器一经设计制造完成后,其功能、性能、指标不可改变的封闭性、单一性。(2)可以将多种仪器的功能、性能、指标等以软件的形式集成在一个“功能软件库”虚拟仪器库内,通过它们的不同组合以及与各种不同类型的硬件接口搭配,使得在一台个人计算机上就可实现各种仪器的不同功能,大大提高了仪器功能的灵活性,甚至可以进行非常复杂的测试工作,如配以专用探头和软件可以检测特定系统的参数,如汽车发动机参数、汽油标号、炉窑温度、心电参数等多种数据。(3)由于计算机具有强大的图形界面功能和数据运算功能,因此虚拟仪器的操作简单直观,符合传统设备的使用习惯。数据分析及数据处理、结果与图形曲线的显示功能也非常强大。(4)集成方便,不但可以和高速数据采集设备构成自动测量系统,而且可以和控制设备构成自动控制系统。随着计算机技术在测控领域的广泛应用,传统的仪器设备缺乏相应的计算机接口,因而配合数据采集和数据处理十分困难,而且,传统仪器在对多种数据测量时纷乱繁杂,而在集成的虚拟测量系统中,不仅可以从繁复的仪器堆中解放出来,而且还可以实现自动测量、自动记录、自动数据处理。(5)可以在同一总线系统的仪器之间或通过网络进行数据交换,实现资源共享,进行远程操作,用数据库管理数据。(6)开发周期短、成本低、维护方便,易于应用新理论、新算法和新技术,实现仪器的换代升级。(7)测量精度高,测量范围宽并且性能稳定,可靠性高。(8)智能程度高,具有自学习和决策能力。2.2 LabWindows/CVI编程语言 LabWindow/CVI是NationalInstruments公司(美国国家仪器公司,简称为Nl公司)推出的交互C语言开发平台。LabWindows/CVI将功能强大、使用灵活的C语言平台与用于数据采集分析和显示的测控专业工具有机地结合起来,利用它的集成化开发环境、交互式编程方法、函数面板和丰富的库函数大大增强了C语言的功能,为熟悉C语言的开发设计人员编写检测系统、自动测试环境、数据采集系统、过程监控系统等应用软件提供了一个理想的软件开发环境。2.2.1 LabWindows/CVI的功能和特点使用LabWindows/CVI可以完成如下工作:(1)交互式的程序开发;(2) 具有功能强大的函数库,用来创建数据采集和仪器控制的应用程序;(3) 充分利用完备的软件工具进行数据采集、分析和显示;(4) 利用向导开发IVI仪器驱动程序和创建ActiveX服务器;(5) 为其他程序开发C目标模块、动态连接库(DLL)、C语言库。在LabWindows/CVI开发环境中可以利用其提供的库函数来实现程序设计、编辑、编译、链接和标准C语言程序调试。在该开发环境中可以用LabWindows/CVI丰富的函数库来编写程序,此外每个函数都有一个叫做函数面板(FunctionPanel)的交互式操作界面,在函数面板中可以执行该函数并可以生成调用该函数的代码,也可以通过右击面板或控件获得有关函数、参数、函数类和函数库的帮助。LabWindows/CVI的功能强大在于它提供了丰富的函数库,利用这些库函数不仅可以实现常规的程序设计,还可以实现更加复杂的数据采集和仪器控制系统的开发,其中比较重要的函数库如图2.1所示函数库标准C函数数据分析数据表示数据采集格式化和I/O库数据库和高级分析库库用户界面库动态数据交换(DDE)库传输控制协议(TCP)库ActiveX库DataSocket库图2.1 LabWindows/CVI的函数库2.2.2 LabWindows/CVI的工作空间如图2.2所示工作空间窗口分成5个主要区域 工程文件目录树(Project Tree)区域、库文件目录树 (Library Tree)区域、窗口限制区域(Window Confinement Region)、 输出区域(Output Region)和调试区域 (Debugging Region)。(1)工程文件目录树包含了工作空间中的任一工程下的所有文件。你可以在工程目录树的列表上右击,获得多种选项,例如:源文件、编译文件,以及将文件从工程选项中删除。在目录树中你所选择的文件不一样,右击菜单选项也会不一样。你还可以浏览每个文件的信息、自定义工程和工作空间、添加或移除工程,并且可以指定工程目录树中各个工程的排列方式。你可以使用编辑工程对话框在工程中添加、移除或替代工程中的某个文件。你还可以在这个对话框中指定头文件路径和源代码控制选项。(2)库文件目录树包含了一个树型视窗,可以查看所有的LabWindows/CVI库函数、载入的设备以及设备驱动。树型视图可以直观地去寻找函数并演示。你 图2.2 LabWindows/CVI的工作空间还可以使用库文件目录树来获取已知的函数。要快速寻找某个函数,只需在目录树上右击,并选择Find。(3) 窗口控制区域包含了打开源代码、用户界面编辑器、函数面板编辑器、函数树型编辑器窗口和函数面板。当你打开任一窗口时,菜单和工具条会相应地随着该窗口而改变。如果你更喜欢传统的LabWindows/CVI工作空间风格,你可以很方便地从窗口控制区域中释放出该窗口。(4) 输出区域包含了标签化错误显示、调试输出和搜寻结果窗。LabWindows/CVI寻找到工程中的结构错误、运行时间错误和源代码控制错误时,它将在输出区域显示这些错误。双击输出区域中的某个错误,来高亮显示代码中的相应错误行。你还可以双击输出区域中的某个搜寻结果,来高亮显示代码中的寻找到的相应项目。(5)调试区域包含了标签化变量、观察和存储显示窗口。变量窗口中列出了所有变量(包含局部变量和全局变量),以及它们在当前范围内的对应值。变量窗口中还包含了堆栈区域之间的跳转选项。Watch窗口仅显示用户选择的变量和其相应值。存储显示窗口显示了存储地址和值信息。你可以从源代码窗口、交互式执行窗口、变量窗口或者观察窗口中将变量拖拽到存储显示窗口中。2.3 环境地图主界面创建本章将介绍如何利用LabWindows/CVI构建一个程序。LabWindows/CVI编程的基本步骤如下:(1) 建立工程文件,根据任务所要实现的功能,确定程序基本框架,包括各类控件所需的各类函数。(2) 创建用户图形界面。根据第一步的方案,添加控件,设置控件属性及确定控件的回调函数名。(3) 编辑程序源代码。由计算机自动生成程序代码及回调函数的基本框架,然后向源文件中添加程序代码,完成所要实现的功能。(4) 调试程序和生成可执行文件。2.3.1 建立工程文件在LabWindows/CVI的集成开发环境中,单击FileNewProject(*.prj)菜单,新建一个空的工程目录,默认名为Untitled.prj,该工程存储在名为Untitled.cws的工作空间中,如图2.3所示单击工作空间窗口菜单的FileSave Untitled Project As,保存新建的工程文件为“地图.prj”。 图2.3 新建工程2.3.2 创建用户界面文件选择菜单FileNewUser Interface(*.uir),创建一个用户界面文件 LabWindows/CVI会自动生成带有一个空面板的窗口。如图2.4所示图2.4 新建的用户界面窗口 面板的设置双击面板控件,即可弹出面板设置对话框,面板的各项设置如图2.5所示:(1)Constant Name:常量名,每个面板必须有唯一的常量名,一般用大写字母和下划线组成。(2) Callback Function:回调函数名。(3) Panel Title:面板标题。(4) Menu Bar:如果存在菜单,可以选择是否装载。(5) Close Control:选择一个面板上的控件,用于响应关闭面板命令。(6) Auto-Center Vertically(when loaded):选择是否在面板装载时,使面板垂直居中显示。(7) Auto-CenterHorizontally(when loaded):选择是否在面板装载时,使面板水平居中显示。图2.5 面板属性设置窗口点击Other Attributes按钮,则弹出其他属性对话框,设置如图2.6所示,可以对程序运行时窗口的显示状态进行设置。图2.6 面板其他属性设置窗口(1) Sizable:程序运行时是否可以改变面板的大小。(2) Movable:程序运行时是否可以通过拖曳标题栏移动窗口。(3) Can Maximize:程序运行时是否可以最大化。(4) Can Minimize:程序运行时是否可以最小化。(5) Title Bar Visible:程序运行时是否使标题栏可见。(6) Has Taskbar Button:程序运行时是否在任务栏显示按钮。(7) Conform to System Colors:是否使面板颜色与系统颜色一致。(8) Scale Contents On Resize:当面板改变大小时,是否使面板上的控件同时按比例改变大小。(9) Floating Style:面板是否在最前端显示,有三种选择:Never指从不;When App Is Active指当程序激活时在最前端显示;Always指总是在最前端显示。 向面板中添加控件(1) 创建控件 从菜单中选择CreateGraphStrip Graph创建一个滚屏显示随机温度图表控件。Strip Graph是整屏显示一组静态数据,而Strip Graph是滚屏显示数据的,能够动态的添加数据点。从菜单中选择CreateNumericThermometer创建一个显示随机温度的温度计控件。从菜单中选择CreateNumericNumeric创建两个用于显示随机温度值的最大值和最小值的控件。从菜单中选择CreateBinarySwitchVertical Toggle Switch创建一个开关按钮,用来控制采集的开始和关闭状态。从菜单中选择CreateLedRound Led创建一个用于显示采集开始和关闭状态的LED显示灯。从菜单中选择CreateCommand ButtonSquare Command Button创建一个按钮实现退出程序的功能。编辑好的用户界面控件布局如图2.7所示: 图2.7 用户界面控件面板 (2) 设置各个控件的属性通过上面的操作创建的控件,其属性并没有设置,下面需要设置各个控件的属性。各个控件此时的属性都是系统的默认值,需要根据控件所需要完成的具体任务,对各个控件进行设置。控件的设置属性如表2.1所示。 表2.1 控件属性设置表 常量名控件类型控件的主要属性GRAPH_MAPEdit Graph标题:环境坐标系COM_OPENCommand Button标题:打开地图MODEL_SELECT_DATARing标题:数据选择MODEL_SELECTRing标题:绘制方式MODEL_SELECT_METHODRing标题:方法选择MODEL_PER_CLICKRing标题:绘制的点数/每次COM_CLEARCommand Button标题:清除地图COM_START_DRAWCommand Button标题:开始绘制回调函数:AcquireCOM_QUITCommand Button标题:退出程序回调函数:QuitCOM_SAVECommand Button标题:储存地图 修改Panel的属性,在Untitled Panel中双击一下,便会弹出Panel的一个Edit Panel窗口。将Panel Title项中的Untitled Panel 改为超声环境地图。修改控件属性(Command Button),双击该控件,或右击鼠标弹出快捷菜单,选择Edit Control,即可弹出属性编辑对话框,进行控件设置后如图2.8所示:在对话框中可以设置以下属性:Const Name:常量名,是该控件区别于其他控件的唯一标示。Callback Function:回调函数。Control Mode:控件显示类型,有四种类型,其中Indicator为指示类型,不能响应用户操作事件;Hot类型能响应控件所有事件。 图2.8 按钮控件属性设置窗口重复上述步骤,参照表2.1修改各个控件的属性。2.3.3 生成源代码文件 生成全部源代码框架设置完成用户界面文件后,在用户界面窗口中点击CodeGenerateAll Code,弹出产生所有代码对话框,如图2.9所示。首先,要确定程序启动时要显示的面板(Select panels to load and display and display at startup)。温度显示仪中只存在一个面板,所以选择该面板作为程序启动时显示的面板,此时就需要在所需要启动时显示的那个面板名前打勾。其次,可以在窗口的下半部的Program Termination中选择回调,用来实现结束程序的功能。用户界面文件所声明的回调函数均会出现在列表框内。图2.9 生成全部代码窗口 源代码框架主函数(1)主函数的一般流程主函数是程序的入口,包括初始化运行时库、装载用户面板、显示用户面板、删除面板、关闭运行时库等操作。(2)主函数中常用函数.InitCVIRTE函数:初始化CVI运行时库。函数原型为: int InitCVIRTE (void *hInstance, char *argv, void *reserved);*hInstance:如果采样main作为主函数,则输入值必须为0.*argv:指向调试时生成的可执行文件的文件名。*reserved:保留参数,一般设置为0。.LoadPanel函数:将用户界面文件载入内存中。函数原型为:int LoadPanel (int parentPanelHandle, char filename, int panelResourceID);panelResourceID:面板的常量名,此参数是在用户编辑界面文件中定义的常量名。parentPanelHandle:父面板句柄,此参数是面板常量名所指代的父面板,如果设置为0,则说明该面板就是处在最顶层的面板。filename:文件名,此参数的设置的是被载入的用户界面文件的文件名。. DisplayPanel函数:在屏幕上显示面板。其函数原型为:int DisplayPanel (int panelHandle);panelHandle:面板句柄,此参数是设置所要显示的面板句柄。. RunUserInterface函数,运行用户界面。函数原型为:int RunUserInterface (void);. DiscardPanel函数:从内存中生成面板及子面板,并在屏幕中清除。函数原型为:int DiscardPanel (int panelHandle);panelHandle:面板句柄,此参数是设置所要删除的面板句柄。向源代码框架中添加回调函数温度显示仪程序中用到了两个回调函数Quit和Acquire。(1)Quit回调函数这个函数所要实现的功能是当按下该按钮时,退出用户界面。QuitUserInterface函数:在进行用户界面时,执行该函数会退出用户界面。函数原型为:int QuitUserInterface (int ReturnCode);ReturnCode:返回代码,一般设置为0。(2)Acquire回调函数 按下打开地图,选择预先准备好的数据,载入虚拟仪器。选择绘制的点数/每次、绘制方式、数据选择、方法选择等,最后点击开始绘制,这样在坐标系中我们就可以看见虚拟仪器,一步一步地完成地图的绘制。第三章 超声传感器原理及建模利用超声测距原理检测周围环境的障碍物信息,从而避开障碍物,是移动机器人避障的常用方法。超声传感器具有成本低,实现方法简单。技术成熟等优点。但是,超声传感器也存在一些缺点,例如超声波的方向性不好,对障碍物的定位不精确,存在探测盲区等。本章介绍了超声测距的原理,对超声传感器的模型也进行了分析,并解决了超声传感器在环境探测过程中存在的一些问题。3.1 超声波的一般性质声波是一种能在气体、液体和固体中传播的机械波,它的波形由纵波、横波、表面波三种。在空气中,声波是以纵波的形式传播。根据声波振动频率的范围,可分为次声波、声波、超声波和特超声波。人的耳朵能够听到的声音的频率为20Hz20kHz。频率高于20kHz的声波,称为超声波。超声波有如下特点:(1) 超声波的频率很高,波长较短,可以向光线一样沿着一定方向传播其传播的能量较为集中。(2) 超声波的振幅较小,加速度很大,因此可以产生很大的能量。(3) 在两种不同的媒质接口上,超声波的大部分能量会反射回来。3.1.1 超声波的传播速度 超声波的传播速度与介质的密度和弹性特性有关, 也与环境条件有关。在气体中,传播速度与气体的种类、压力、湿度及温度有关,在空气中传播速的为 (3.1)式3.1中,为环境温度。移动机器人安装了温度传感器,可提供温度信息,控制系统可以据此对超声传感器测量结果进行校正,从而提高测距的精度。3.1.2 超声测距原理超声波测距一般采用时间差测距法,即超声波发射器向某一方向发射超声波,在发射时刻的同时开始计时,超声波在空气中传播,碰到障碍物就立刻返回来,超声波接收器收到反射波就立刻停止计时.根据超声波在空气中的传播速度为c和记录的时间t,就可以计算出发射点距障碍物的距离s,计算公式如下: (3.2)式3.2中c为超声波在空气中的传播速度,t为发射与接收超声波的时间差。3.1.3 超声波的反射与折射现象超声波在通过两种不同的介质时,会产生反射和折射现象。发生折射现象时,有如下关系 (3.3)式3.3中,、为超声波在两种介质中的传播速度;为入射角:为折射角。3.1.4 超声波传播中的衰减 随着超声波在介质中传播距离的增加,由于介质吸收能量而使超声波强度有所衰减。若超声波进入介质的强度为,通过介质后的强度为,则它们之间的关系为: (3.4)式3.4中,d为介质的厚度;A为介质对超声波能量的吸收系数。 介质中的能量吸收程度与超声波的频率及介质的密度由很大关系。介质的密度越小,衰减越快,尤其在频率高时则衰减更快。因此,在空气中通常用频率较低(几十千赫)的超声波,而在固体、液体中则采用较高的超声波。3.1.5 超声波的方向性 超声换能器发出的超声波并不是一条理想的直线,而是有一定的角度,这就是超声波的方向性问题。如图3.1所示,图中底部为超声换能器,上部为换能器发出的超声波剖面示意图。由图中可以明显地看出,换能器所发出的超声波能量主要集中在主瓣部分,而副瓣部分非常少,因此换能器发出的超声波就具有了方向性。是超声波主瓣的角度,称为波束角,它的大小和具体的超声发生器件有关,也和具体的应用要求有关,一般在25O左右。其较宽的波束角导致了其分辨率不高,较低的频率(典型值为40kHz)意味着距离测量精度的相对有限。 图 3.1 超声波束角示意图3.2 超声模型的建立 超声波传感器具有电路简单、数据处理方便、性能稳定、价格低廉等优点,因此被广泛应用于移动机器人的环境探测,提供障碍物距离信息。然而,在测距方面超声波传感器也存在一些缺点。 超声传感器的测距精度一般可以满足大部分应用的需求,但其方向性差,如图3-1所示。建立相应的超声模型以获得障碍物的方向是超声建模的主要目的。常见的超声模型又中线模型(Centerline model)和弧线模型(Arc model)。3.2.1 中线模型就如模型名称所提示的,中线模型认为障碍物位于波束角的中线方向,如3-2所示。 图3.2 波束角 图3.3 窄通道问题 如图3.2所示,A为实际障碍点,A为中线模型的估计点。这种模型最大的优点就是建模简单。但其方向性误差大是不言自明的。当超声传感器探测障碍的边缘时,会在方向上产生一定的偏差。如图3.2所示,为超声波传感器的波束角,Ra、Rb分别为探测到的障碍点A、B的距离。由图可知,当超声波波束被物体的边缘反射回来且被超声传感器接收时,移动机器人将会误认为在超声波波束锥轴上存在一个障碍点A(或者B)。因此,在移动机器人的探测障碍过程中,测得的障碍会有方向上的偏差,即AA和BB。而且,在超声传感器的测距范围内,障碍物边缘越远,探测到的边缘点在方向上的偏差就越大,例如,图中AA要大于BB。同时中线模型带来一个常见问题,即所谓的“窄通道”问题。如图3.3所示,障碍物间的实际距离为,而在这种模型下,认为通道宽度为,从而做出错误的判断,认为机器人无法通过。Moravec和Elfes在创建栅格地图的时候采用了这种模式。针对方向角偏差问题提出了如下方法:当探测过程中,发生从物障碍到有障碍这一变化时,则剔除第一个障碍点;发生从有障碍到无障碍物这一变化时,则剔除最后一个障碍点。3.2.2 弧线模型3.2.2.1 弧线模型弧线模型假设超声距离测量是准确的,并假设障碍物位于以超声传感器为中心,以障碍物间的距离R为半径,以超声传感器的波束角为圆心角的弧线Arc上,如图3.4所示。 图3.4 弧线模型 图3.5 高斯分布 基于这种弧线模型,通常采取两种方法解释障碍物的实际位置:基于高斯分布的概率模型和基于平均分布的概率模型。 基于高斯分布的模型认为障碍物位于弧线上某一点的概率是以弧中心为中心的高斯分布,如图3.5所示。 基于平均模型的方法认为障碍物位于弧线上的任一点的概率是相等的,即是平均分布的。显然,不管采取哪种模型,单一的超声信息是无法确定障碍物的位置的。 Moravec和Elfes也采取了高斯模型作为另一种尝试创建了他们的栅格地图,取得了不错的效果。迄今为止,高斯模型已经在应用中取得了巨大的成功。但是得到广泛应用的Polaoid式超声传感器的技术文档却暗示着平均分布模型更能准确地描述回波的位置。利用平均分布的模型,McKerrow在探测多边 图3.6 线模型估计障碍位置形障碍物的应用中,放弃了传统的障碍物点模型,提出了一种新的障碍物模型:线模型,如图3.6所示。这种方法取两次测量所得弧线Arc1,Arc2的切点A,B的连线为障碍物。Leonard也使用了平均分布模型,他采用了RCD(region of constant depth method)方法,分辨结构环境中的拐角和直线。3.2.2.2 弧线模型实验如下图3.7所示为障碍物平面图,当小车自行探路时,我们可以获得基于平均分布的弧线模型的原始环境地图如图3.8所示。我们可以看到该地图基本能反映出环境的真实面目,所以本次设计将采用弧线模型对地图进行创建。 图3.7 二楼方庭平面图 图3.8弧线模型图(1) 图3.8弧线模型图(2) 图3.8 弧线模型图(3) 图3.8 弧线模型图(4) 图3.8弧线模型图(5) 图3.8弧线模型图(6)第四章 基于超声信息的环境地图创建超声传感器通常存在波束角,探测盲区,易发生多次反射等缺点,所以,超声信息存在着较大的不确定性,仅仅依靠某种特定的规则难以对超声信息去伪存真,且难以期保证鲁棒性。本章主要针对超声传感器以发生多次反射的缺点且采用AIEF算法未能有效处理的情况下进行算法改进。栅格法是移动机器人地图创建中常用的环境描述方法,是将环境划分为许多大小相等的矩形栅格,并给出每个栅格存在障碍物的可能性。因此,使用栅格法创建环境地图的关键是,建立能够描述和处理超声传感器不确定信息的模型和方法,并且映射到栅格地图中去。描述不确定性信息的理论主要有概率理论,模糊逻辑理论和灰色系统理论,处理的是不同种类的不同信息。本章对三种理论进行了分析比较,选择灰色系统理论对超声传感器不确定信息进行了描述和处理,并使用栅格法创建环境的障碍地图。针对多次反射产生镜像误点的机理,在计算栅格存在障碍的可能性的同时,考虑障碍存在的相关性,对地图创建方法进行了改进。4.1 坐标系的建立在创建地图之前,需要建立两个坐标系,局部坐标系和全局坐标系。根据超声传感器给出的距离信息,超声传感器在局部坐标系中的位置以及移动机器人在全局坐标系中的位置,计算出障碍物。4.1.1 全局坐标系全局坐标系用于描述移动机器人整个环境的信息,记为XOY,如图4-1所示。移动机器人的全局坐标值描述了当前机器人在整个环境中所处的位置,因此,可以用于建立全局地图,进行全局导航与定位。4.1.2 局部坐标系局部坐标系,也称机器人坐标系,是以移动机器人中心为坐标原点,以移动机器人正前方为中轴建立的坐标系。局部坐标系记为XOY,如图4.1中所示。在局部坐标系中,探测的障碍物距离信息是以当前机器人的运动位置来测量的。建立局部坐标系是为了描述障碍物相对于移动机器人的局部信息,可用于建立局部地图和局部导航。4.1.3 全局坐标系与局部坐标系转换在图4-1种,XOY为全局坐标系, XOY为局部坐标系,A点位超声传感器探测到的障碍,则全局坐标系和局部坐标系的转换关系为 (4.1)式4.1中,为障碍点
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- GB/T 45505.5-2025平板显示器基板玻璃测试方法第5部分:光电性能
- 机械考试题库及答案解析
- 森林火灾知识培训
- 森林扑火知识培训方案课件
- 2025年建筑设计公司招聘项目管理经理面试题集与答案
- 肠梗阻的护理常规考试试题及答案
- 2025年注册验船师资格考试(A级船舶检验专业案例分析)复习题及答案一
- 2025年乡村道路交通安全管理员招聘考试指南
- 2025年物流行业运营经理面试题集萃
- 2025年非遗传承师刺绣方向中级考试复习资料与
- 2025年福建闽投工业区开发有限公司招聘笔试参考题库含答案解析
- 建筑工程常见施工质量通病及防治措施图文
- 家庭房产分割协议书
- 北师大版《心理健康》九年级上册全套教学课件
- 《液压与气动控制》课件
- 邮政快递员技能大赛理论考试题库(含答案)
- 《电动航空器电推进系统技术规范》
- 结肠造瘘还纳术手术配合
- 2024年山东省建筑施工企业主要负责人A类考试题库及答案(典型题)
- 特种设备目录新旧对照表
- 2024年初一英语阅读理解专项练习及答案
评论
0/150
提交评论