移动机器人轨迹跟踪软件设计(站点设计)(DOC)
轮式移动机器人的路径规划和跟踪控制

中图分 类号 : P 0 文 献标 识码 : T 22 A
Pa h p o r mm ig a d ta kn o to fwh ee d l v d r o t r g a n n r c i g c n r l e ld mo e o mo e ob t
N NJ g f, I n bn N UG a g l H i nj n c neA dT c n l yC l g , abn1 0 2 , hn ) A i —u LUYa— i , I u n —i e o gi gS i c n eh oo ol e H ri 0 7 C ia n n( l a e g e 5
【 摘要 】 介绍了路径规划的设计及路径跟踪控制设计。 径规划设计是 当机器人感应到障碍物 路
后 , 用预 定轨 迹 来 实现 避 障功 能 , 采 而路 径跟 踪控 制 则通 过计 算 出轨 迹 目标 值和 现 时位 姿 的偏 差 ,
控 制 电机 来使 偏 差 减 小。并 通过 Maa 真 , tb仿 l 验证 了其 可行 性 与合理 性 。 关键词 : 式 移动 机器 人 ; 轮 路径设 计 ; 路径 跟踪 控 制
1 路径规划 问题描述
★来稿 日 :0 6 0 — 0 期 20 — 9 2
碍物的运 动轨迹 , 即最优或次优 有效 路径1 3 1 。
移动机器人 的导航问题 主要是 D r n— y . . 提 出 ur tWht H F[ a e 2 1
轨迹跟踪与拟合

轨迹跟踪与拟合(1)问题的提出近年来,服务机器人不断应用在银行、酒店、餐厅、展览馆等公共服务场所,代替人工为人们提供各种服务。
它们形似人,功能多样,智能性强,不仅可以在餐厅送菜、在展览馆迎宾、在银行服务客户,还能在安静的场所与客人进行固定词条的语音交互。
服务机器人一般具有巡航功能,可以按照事先规划好的线路巡线行走;具有RFID标签识别功能,能识别贴在指定位置或指定物品上的标签,判别预设的工作点或者进行相关的讲解介绍;具有紧急避障功能,在机器人前进路线上出现人和物体后,机器人会紧急停止,并等障碍物消失后恢复继续行走,防止触碰人和物体;具有语音识别及语音交互功能,能在安静的场所中识别人的说话,与人们进行固定词条的语音交互等。
图7.1是能够提供送餐服务的餐饮服务机器人,它可以按照餐厅内有黑线标记的轨迹来回行走,到达送餐的餐桌,通过语音交互与客户交流。
机器人身上的传感器可以判断前方是否有障碍物,决定是否暂停运动。
机器人身上的专门设计有红外或视觉传感器用来实时识别地面上的黑线轨迹,通过PID算法,对运动速度和方向进行比例、积分、微分控制,实现巡线功能。
图7.1 服务机器人的巡线导航方式(2)任务与目标①了解轨迹跟踪技术的基本原理、相关算法和应用框架;②掌握运用人工智能开源硬件设计智能应用系统的方法,掌握Python语言的编程方法;③应用人工智能开源硬件和Python相关算法模块设计轨迹跟踪功能;④针对生活应用场景,进一步开展创意设计,设计具有实用价值的轨迹跟踪应用系统。
(3)知识准备1)相关分析与回归分析在监督学习中,如果预测的变量是离散的,我们称其为分类(如决策树,支持向量机等),如果预测的变量是连续的,我们称其为回归。
①相关分析。
相关分析是研究两个或两个以上处于同等地位的随机变量间的相关关系的统计分析方法,它是描述客观事物相互间关系的密切程度并用适当的统计指标表示出来的过程。
相关分析研究的是现象之间是否相关、相关的方向和密切程度。
基于Lyapunov方法的轮式移动机器人全局轨迹跟踪控制

Usn h sc n r l t o i g t i o to h d,t er f r n e tae t r sa c r t l r c e .Me n i me h e e e c r jc o y i c u a ey ta k d a whl e,sa i t ft er l t bl y o h ue i
—
用 反 演方 法设 计 控制 律 , 免 了 以前采 用 线性 化方 避
口
法 处理 非线 性 问题 带来 的 局部稳 定 特性 。 文献 [ ] 4 利
Ke o d : e ld mo i o o , y p n v f n to go a s mp o ial tb e tae t r r c ig y w r s wh ee b l r b t I a u o u c in, l b la y t t l sa l ,r jco y ta k n e c y
f r W h e e o ie Ro o o e l d M b l b t
ZHAO o。 U i — on ZH O U a g— on Ta I I M ng y g, Li n r g ( olgeo rn ,lr t wetPoytc n c lUn v r iy, ’ n 10 7 Chi a) C le f Ma i e  ̄o h s r l e h i a i e st Xi a 7 0 2, n Ab t a t s r c :Ba e o whe ld sd n e e mo l r bo bie o t’8 ki ma is’ m o l t oug de i ni t c m p e ne tc de , hr h sg ng he o lx t a ki g e r ara e r c n r orv ibl s,a g o la y p o ia l t b e c nt o l ri s g d vi a no r c t od. l ba s m t tc ly s a l o r le s de i ne a Ly pu v die tme h
移动机器人滑模跟踪控制

移动机器人滑模跟踪控制针对移动机器人动力学模型,通过线性解耦,将该线性耦合系统解耦成两个独立的子系统,使用积分滑模来实现滑模函数的设计,进行相应的稳定性分析。
标签:线性解耦;积分滑模;控制器设计Abstract:According to the dynamic model of mobile robot,the linear coupling system is decoupled into two independent subsystems by linear decoupling,and the sliding mode function is designed using integral sliding mode,and the corresponding stability analysis is carried out.Keywords:linear decoupling;integral sliding mode;controller design1 介绍移动机器人可通过移动来完成一些比较危险的任务,如地雷探测、海底探测、无人机驾驶等,在科研、工业、国防等很多领域都有实用价值。
然而,移动机器人是一个多变量、强耦合的欠驱动系统,难以对其进行高性能轨迹跟踪控制。
本文针对移动机器人动力学模型,通过线性解耦将其转化为两个独立的子系统,分别针对子系统设计了滑模跟踪控制。
仿真结果表明,该控制系统能够快速跟踪给定的线速度和参考角度,在工程上有一定的应用价值。
2 动力学模型2.1 移动机器人动力学模型的建立假设两轮独立驱动刚性移动机器人在平面内移动,如图1所示,两个前轮各采用直流伺服电机驱动,通过调节输入电压实现驱动轮的速度差。
假设绝对坐标OXY固定在平面内,则移动机器人动态特性可用动力学方程来描述。
对于车体,根据力矩平衡原理,车体转动角度=右轮主动力矩-左轮阻力矩,即(1)根据牛顿定律,得(2)其中:Iv为绕机器人重心的转动惯量,Dr和Dl分别为左右轮的驱动力,l 为左右轮到机器人重心的距离,?准为机器人的位姿角,v为机器人的线速度。
移动机器人控制系统设计

一、绪论(一)引言移动机器人技术是一门多科学交叉及综合的高新技术,是机器人研究领域的一个重要分支,它涉及诸多的学科,包括材料力学、机械传动、机械制造、动力学、运动学、控制论、电气工程、自动控制理论、计算机技术、生物、伦理学等诸多方面。
第一台工业机器人于20世纪60年代初在美国新泽西州的通用汽车制造厂安装使用。
该产品在20世纪60年代出口到日本,从20世纪80年代中期起,对工业机器人的研究与应用在日本迅速发展并步入了黄金时代。
与此同时,移动机器人的研究工作也进入了快速发展阶段。
移动机器人按其控制方式的不同可以分为遥控式、半自动式和自主式三种;按其工作环境的不同可以分为户外移动机器人和室内机器人两种。
自主式移动机器人可以在没有人共干预或极少人共干预的条件下,在一定的环境中有目的的移动和完成指定的任务。
自主式移动机器人是一个组成及结构非常复杂的系统,具有加速、减速、前进、后退以及转弯灯功能,并具有任务分析,路径规划,导航检测和信息融合,自主决策等类似人类活动的人工智能。
(二)移动机器人的主要研究方向1.体系结构技术1)分布式体系结构分布式体系结构【1。
2.3】是多智能体技术在移动机器人研究领域的应用。
智能体是指具有各自的输入、输出端口,独立的局部问题求解能力,同时可以彼此通过协商协作求解单个或多个全局问题的系统。
移动机器人系统,特别是具有高度自组织和自适应能力的系统,它们的内部功能模块与智能体相仿,因此可以应用多智能体技术来分析和设计移动机器人系统的结构,实现系统整体的灵活性和高智能性。
在分布式体系结构中,各个功能模块具有不同的输入输出对象和自身的不同功能,并行各工作,整个系统通过一个调度器实现整体的协调,包括制定总体目标、任务分配、运动协调和冲突消解等。
2)进化控制体系结构面对任务的复杂性和环境的不确定性以及动态特性,移动机器人系统应该具有主动学习和自适应的能力。
将进化控制的思想融入到移动机器人体系结构的设计中,使得系统哎具备较高反应速度大的同时,也具备高性能的学习和适应能力。
移动机器人自主导航系统及上位机软件设计与实现

计算机测量与控制.2022.30(1) 犆狅犿狆狌狋犲狉犕犲犪狊狌狉犲犿犲狀狋牔犆狅狀狋狉狅犾 ·141 ·收稿日期:20210601; 修回日期:20210720。
基金项目:国家自然科学基金项目(61973275);浙江省省属高校基本科研业务费(RF-A2020004)。
作者简介:崔 奇(1997),男,安徽亳州人,硕士生,主要从事移动机器人路径规划方向的研究。
引用格式:崔 奇,夏 浩,滕 游,等.移动机器人自主导航系统及上位机软件设计与实现[J].计算机测量与控制,2022,30(1):141146.文章编号:16714598(2022)01014106 DOI:10.16526/j.cnki.11-4762/tp.2022.01.022 中图分类号:TP311文献标识码:A移动机器人自主导航系统及上位机软件设计与实现崔 奇,夏 浩,滕 游,刘安东(浙江工业大学信息工程学院,杭州 310023)摘要:针对移动机器人自主导航系统,采用C++语言设计了一款基于Qt的跨平台实时数据可视化上位机软件;该软件执行SLAM技术和路径规划算法,实现可视化移动机器人建图与导航过程以及实时读取数据参数等功能;首先介绍移动机器人的硬件结构和功能;其次给出了自主导航所运用到的改进RRT 算法和动态窗口法;在详细叙述上位机软件工作流程的基础上,开发和设计了实时话题显示、读取以及界面可视化等功能;最后基于ROS系统完成移动机器人自主导航功能,并通过实时地图与数据可视化来验证所设计上位机软件功能的有效性。
关键词:移动机器人;自主导航;Qt;上位机;数据可视化犇犲狊犻犵狀犪狀犱犐犿狆犾犲犿犲狀狋犪狋犻狅狀狅犳犎狅狊狋犆狅犿狆狌狋犲狉犛狅犳狋狑犪狉犲犳狅狉犕狅犫犻犾犲犚狅犫狅狋犃狌狋狅狀狅犿狅狌狊犖犪狏犻犵犪狋犻狅狀犛狔狊狋犲犿狊CUIQi,XIAHao,TENGYou,LIUAndong(CollegeofInformationEngineering,ZhejiangUniversityofTechnology,Hangzhou 310023,China)犃犫狊狋狉犪犮狋:Inthispaper,across-platformreal-timedatavisualizationsoftwareisdesigned,whichbasedonQtforautonomousnavigationsystemsofmobilerobotbyusingC++language.ThesoftwareimplementsSLAMtech nologyandpathplanningalgorithmtorealizevisualizationofmappingnavigationprocessofmobilerobotandreal-timedataparameterreading.Firstly,weintroducethehardwarestructureandfunctionofmobilerobot.Secondly,givetheimprovedRRT algorithmanddynamicwindowmethodusedinautonomousnavigation.Basedonthede taileddescriptionoftheworkflowofthehostsoftware,thefunctionsofreal-timetopicdisplay,readingandinterfacevisualizationaredeveloped.Finally,themobilerobotautonomousnavigationfunctioniscompletedunderROSsystem,bythereal-timemapanddatavisualization,thefunctionvalidityofthedesignedhostsoftwareisverified.犓犲狔狑狅狉犱狊:mobilerobot;autonomousnavigation;Qt;hostsoftware;datavisualization0 引言移动机器人是一种在复杂环境下工作,具有自行感知、自行规划、自我决策功能的智能机器人。
轮式移动机器人定位和导航系统设计

信 息 技 术DOI:10.16661/ki.1672-3791.2004-5154-8568轮式移动机器人定位和导航系统设计董明泽1 韩雨薇1 许凯成2 段睿劼1 朱天宇1(1.中国计量大学量新学院; 2.中国计量大学机电工程学院 浙江杭州 310018)摘 要:该文设计了一套基于开源机器人操作系统(ROS)和激光雷达的移动机器人控制系统方案,以满足当前室内机器人在定位与地图构建上的需求。
该系统以开源卡片式电脑树莓派3B+为核心控制器,使用STM32作为驱动控制板,在Linux系统下使用ROS分布式框架下进行软件算法的开发。
根据机器人的状态和用户命令可实现人机交互、SLAM地图扫描绘制、WiFi远程控制、即时定位和室内导航的功能。
实际调试结果表明,系统能够构建出与实际环境差别较小的特征图,并对平台实时位置进行精确的定位,能有效完成定位和导航的任务。
关键词:ROS SLAM 激光雷达 同步定位与地图构建 自主导航中图分类号:TP242 文献标识码:A 文章编号:1672-3791(2020)11(a)-0031-03 Design of Wheeled Mobile Robot Positioning and NavigationSystemDONG Mingze1 HAN Yuwei1 XU Kaicheng2 DUAN Ruijie1 ZHU Tianyu1(1.Liangxin College, China Jiliang University; 2.College of Mechanical and Electrical Engineering, ChinaJiliang University, Hangzhou, Zhejiang Province, 310018 China) Abstract: This paper designs a set of mobile robot control system solutions based on open source robot operating system (ROS) and lidar to meet the needs of current indoor robots in positioning and map construction. This system uses the open source card computer Raspberry Pi 3B+ as the core controller, uses STM32 as the drive control board, and uses the ROS distributed framework to develop software algorithms under the Linux system. According to the state of the robot and user commands, it can realize the functions of human-computer interaction, SLAM map scanning and drawing, WiFi remote control, instant positioning and indoor navigation. The actual debugging results show that the system can construct a feature map witha small difference from the actual environment, and accurately locate the real-time position of the platform,which can effectively complete the positioning and navigation tasks.Key Words: ROS; SLAM; Lidar; Synchronous positioning and map construction; Autonomous navigation机器人技术是一门快速发展的学科,它包含着深厚的科学理论,长期以来吸引了许多研究人员。
基于ABB机器人的动态追踪传送系统设计

基于ABB机器人的动态追踪传送系统设计摘要:由于传统的工业机器人仅适用于单一的产品,且不能对不同的产品进行区分,从而造成在实际操作中必须切换到多个系统接口,从而大大降低了生产效率和工作质量。
针对以上问题,本文提出了一种可以根据实际情况迅速组合各种功能模块,并采用统一的软件实现多媒体调度的方法。
基于此,本论文以ABB机器人的虚拟模拟软件RobotStudio为例,以6轴机器人IRB1200为例,通过Solidworks软件构建码垛工作站的三维实体模型,导入RobotStudio,然后通过Smart组件设定动态效果,并进行模拟。
对分拣堆码过程进行了仿真,为实际生产中的机器人调试工作提供了设计、编程思路和理论依据。
关键词:通信基站;动环系统;远程监控引言:随着现代化的工业自动化生产线的发展,生产效率和稳定性的提高也越来越明显,ABB机器人将会在一定程度上替代传统的生产组织方式。
某些传统的木工设备必然会被数控、自动化设备所代替,而各种设备的制造过程也会被设备所代替。
很多企业都可以在原有设备的淘汰、新的设备、新的技术的投入、新的技术的基础上,逐步实现生产的智能化,进而提高生产能力,进而达到可持续发展的目的。
因此,对ABB机器人进行动态跟踪传输系统的设计是极为必要的。
一、绪论1.1项目研究意义工业机器人作为智能车间中的一个重要组成部分,它被广泛地应用于自动化仓库、智能车间、智能物流等领域。
随着智能化工厂的建设,工业机器人的智能化程度越来越高,越来越多地被应用到了流水线上,从而促进了生产线的高节拍和高柔性化。
在《中国制造2025》实施过程中,工业机器人逐渐取代了手工劳动,特别是多臂协作的流水线生产已经成为了工业生产和制造的主流方向。
但由于工业机器人价格昂贵,往往需要较多的个性化定制才能够实现技术操作,总体而言,开发门槛和开发成本较高,因此,ABB机器人的动态追踪传送系统设计是不可或缺的,能够最大程度地为企业节省试错成本,使其更好地适应未来复杂高端的工业生产环境,从而提高相关机器的工作效率和工作质量。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
燕山大学课程设计说明书题目:移动机器人轨迹跟踪软件设计(站点设计)学院(系):电气工程学院年级专业: 10级过程控制二班学号:学生姓名:指导教师:陈贵林李雅倩燕山大学课程设计(论文)任务书2013年11 月25 日目录前言……………………………………………………………………………第一章设计思路……………………………………………………………第二章程序……………………………………………………………第三章算法……………………………………………………………心得体会前言机器人的应用越来越广泛,几乎渗透到所有领域。
移动机器人是机器人学中的一个重要分支。
早在60年代,就已经开始了关于移动机器人的研究。
关于移动机器人的研究涉及许多方面,首先,要考虑移动方式,可以是轮式的、履带式、腿式的,对于水下机器人,则是推进器。
其次,必须考虑驱动器的控制,以使机器人达到期望的行为。
第三,必须考虑导航或路径规划,对于后者,有更多的方面要考虑,如传感融合,特征提取,避碰及环境映射。
因此,移动机器人是一个集环境感知、动态决策与规划、行为控制与执行等多种功能于一体的综合系统。
对移动机器人的研究,提出了许多新的或挑战性的理论与工程技术课题,引起越来越多的专家学者和工程技术人员的兴趣,更由于它在军事侦察、扫雷排险、防核化污染等危险与恶劣环境以及民用中的物料搬运上具有广阔的应用前景,使得对它的研究在世界各国受到普遍关注关键字:移动机器人第一章设计思路1.1 机器人的介绍机器人的诞生和机器人控制技术发展作为20世纪自动控制原理最具说服力的成就、人类科学技术进步的重大成果[1],是现代计算机与自动化等技术高速发展的产物,同时也是当代最高意义上的自动化。
自1956年第一台工业机器人诞生之日起,机器人的应用越来越普及。
20世纪60年代末机器人开始进入商业化和工业领域以来,机器人的应用范围已经遍及到工业、国防、宇宙空间、海洋开发、医疗保健、抢险救灾等人类生活的各个方面。
机器人由于具有高度的灵活性、快速的反应能力以及巨大的信息处理能力,使其能够在很多环境替代人进行工作。
从重复动作的流水线机械手到智能机器人,从平地到高山海底甚至太空,以至于在比较恶劣危险的工作环境,都是机器人发挥其作用的重要舞台,然而控制系统作为机器人的心脏,其性能的好坏直接决定了机器人的智能化水平。
近年来对移动机器人的研究已成为了一大热点,促进了移动机器人在各个领域中的进一步应用,本文也将在这一方面进行一些分析和研究。
智能移动机器人,是一个集环境感知、动态决策与规划、行为控制与执行等多功能于一体的综合系统。
它集中了传感器技术、信息处理、电子工程、计算机工程、自动化控制工程以及人工智能等多学科的研究成果,代表机电一体化的最高成就,是目前科学技术发展最活跃的领域之一。
随着机器人性能不断地完善,移动机器人的应用范围大为扩展,不仅在工业、农业、医疗、服务等行业中得到广泛的应用,而且在城市安全、国防和空间探测领域等有害与危险场合得到很好的应用。
因此,移动机器人技术已经得到世界各国的普遍关注。
1.2 实训任务分配本次的设计任务在老师的帮助下得到了细致地划分,而且也增加了一些项目,总体来说任务分为三大块:1.轨迹的识别与跟踪。
2.站的设计。
3.自定义轨迹的运行。
这三部分的任务既是相互独立的又是相互联系的。
首先来分析第一个任务:轨迹的识别与跟踪,这个任务包含了摄像头的初始化以及图像的采集以及图像的存取,轨迹的识别用到了一个算法。
机器人的控制也是这个任务包含的一个总要部分,其中包括了速度控制,方向控制等等。
第二个任务是站的设计,老师提到了“站”这个概念,这是在工厂的生产中的一些重要的机制,也是非常有实用性的一个设计。
第三个任务是自定义轨迹的运行,老师提到了可以设计一个圆形轨迹也可以设计一个方形轨迹,机器人的这种运动在生产生活中的应用也是很广泛的。
1.3 CCD摄像头的介绍CCD(电荷耦合器)摄像头基本知识现在科学级的摄像头比前几年更尖端,应用领域也更广了。
在生物科学领域,从显微镜、分光光度计到胶文件、化学放光探测系统,都用到了CCD的摄像头。
但是很多研究工作者对CCD的指标仍云里雾里。
下面对CCD的一些常见指标进行表述。
常见的CCD一般指:CCD摄像头和插在电脑的采集卡区别数字摄像头与模拟摄像头所有CCD芯片都属于模拟的设备。
当图像进入计算机是数字的。
如果信号在摄像头、采集卡两部分完成数字化的,这个CCD被认为是模拟CCD。
数字摄像头事实上是由内置于摄像头的数字化设备完成数字化过程,这样可以减少图像噪音。
与模拟摄像头相比,数字摄像头提高了摄像头的信噪比、增加摄像头的动态范围、最大化图像灰度范围。
科学级的绝大多数的CCD芯片都是由Kodak、Sony、SIT制造。
评价CCD的基本指标信噪比SNR真实体现摄像头的检测能力。
所有的CCD摄像头的厂家为提高摄像头的性能,都尽力使信号(可达到满井电子的数目)最大同时尽可能减少噪音。
SNR=满井电子/噪音电子=动态范围=最大灰阶=2bit数在相同满井电子的CCD,降低CCD噪音,就能提高CCD的监测能力,热或者暗电流对于CCD都是噪音,噪音在Cool CCD基本都可以被深度致冷的Peltier 消除。
在曝光超过5-10秒,CCD芯片就会发热,没有致冷设备的芯片,“热”或者白的像素点就会遮盖图像。
-20度的摄像头可以拍摄不超过5分钟的图像,-40度的摄像头拍摄时间可以超过1小时1.4机器人从一站到另一站的界面第二章2.1定义站点的程序#if !defined(AFX_DLGSETTING_H__036F7483_B3C7_4494_88D7_5DE026FE694 7__INCLUDED_)#defineAFX_DLGSETTING_H__036F7483_B3C7_4494_88D7_5DE026FE6947__INCLU DED_#if _MSC_VER > 1000#pragma once#endif // _MSC_VER > 1000// DlgSetting.h : header file//#include "resource.h"#include "XPButton.h"/////////////////////////////////////////////////////////////////////////////// CDlgSetting dialogstruct Pattern//定义结构体,保存0~99的站点的特征{int num; //站点序号int timer; //停靠时间BOOL bIsPositive; //滚筒是否正转BOOL bIsNegative; //滚筒是否反转};class CDlgSetting : public CDialog{// Constructionpublic:CDlgSetting(CWnd* pParent = NULL); // standard constructor// Dialog Data//{{AFX_DATA(CDlgSetting)enum { IDD = IDD_DIALOG_SETTING };CComboBox m_ComboLowVel;CComboBox m_ComboHighVel;CComboBox m_ComboHandVel;CComboBox m_ComboRollerNegative;CComboBox m_ComboRollerPositive;CComboBox m_ComboStopTime;CComboBox m_ComboStation;//按钮美化CXPButton m_XPbtn_1,m_XPbtn_2,m_XPbtn_3,m_XPbtn_4;//}}AFX_DATA// Overrides// ClassWizard generated virtual function overrides//{{AFX_VIRTUAL(CDlgSetting)protected:virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support //}}AFX_VIRTUAL// Implementationprotected:// Generated message map functions//{{AFX_MSG(CDlgSetting)virtual BOOL OnInitDialog();afx_msg void OnBUTTONSaveSpeed();afx_msg void OnBUTTONSaveStation();afx_msg void OnCloseupCOMBOStation();afx_msg void OnButtonPrior();afx_msg void OnButtonNext();//}}AFX_MSGDECLARE_MESSAGE_MAP()};//{{AFX_INSERT_LOCATION}}// Microsoft Visual C++ will insert additional declarations immediately before the previous line.#endif// !defined(AFX_DLGSETTING_H__036F7483_B3C7_4494_88D7_5DE026FE6947 __INCLUDED_)2.2对于前一站与后一站的定义/ DlgSetting.cpp : implementation file//#include "stdafx.h"#include "REBotW.h"#include "DlgSetting.h"#ifdef _DEBUG#define new DEBUG_NEW#undef THIS_FILEstatic char THIS_FILE[] = __FILE__;#endifconst int comboStopTime[5] = {0, 2, 15, 30, 40}; //停靠时间,单位:秒const double comboLowSpeed[5] = {0.50, 0.40, 0.30, 0.20, 0.10}; //低速const double comboHandSpeed[5] = {1.20, 1.00, 0.80, 0.60, 0.40}; //手动const double comboHighSpeed[5] = {1.30, 1.20, 1.10, 1.00, 0.80}; //高速const double g_dAGV_VEL_NORMAL = 8000;//21000; //每秒21000脉冲double g_dAGV_VEL_LOW;double g_dAGV_VEL_HAND;double g_dAGV_VEL_HIGH;Pattern pStation[100];/////////////////////////////////////////////////////////////////////////////// CDlgSetting dialogCDlgSetting::CDlgSetting(CWnd* pParent /*=NULL*/): CDialog(CDlgSetting::IDD, pParent){//{{AFX_DATA_INIT(CDlgSetting)//}}AFX_DATA_INIT}void CDlgSetting::DoDataExchange(CDataExchange* pDX){CDialog::DoDataExchange(pDX);//{{AFX_DATA_MAP(CDlgSetting)DDX_Control(pDX, IDC_COMBO_LOW, m_ComboLowVel);DDX_Control(pDX, IDC_COMBO_HIGH, m_ComboHighVel);DDX_Control(pDX, IDC_COMBO_HAND, m_ComboHandVel);DDX_Control(pDX, IDC_COMBO_Roller_negative, m_ComboRollerNegative);DDX_Control(pDX, IDC_COMBO_Roller_positive, m_ComboRollerPositive);DDX_Control(pDX, IDC_COMBO_StopTime, m_ComboStopTime);DDX_Control(pDX, IDC_COMBO_Station, m_ComboStation);//按钮美化DDX_Control(pDX, IDC_BUTTON_PRIOR, m_XPbtn_1);DDX_Control(pDX, IDC_BUTTON_NEXT, m_XPbtn_2);DDX_Control(pDX, IDC_BUTTON_SaveSpeed, m_XPbtn_3);DDX_Control(pDX, IDC_BUTTON_SaveStation, m_XPbtn_4);//}}AFX_DATA_MAP}BEGIN_MESSAGE_MAP(CDlgSetting, CDialog)//{{AFX_MSG_MAP(CDlgSetting)ON_BN_CLICKED(IDC_BUTTON_SaveSpeed, OnBUTTONSaveSpeed) ON_BN_CLICKED(IDC_BUTTON_SaveStation, OnBUTTONSaveStation) ON_CBN_CLOSEUP(IDC_COMBO_Station, OnCloseupCOMBOStation) ON_BN_CLICKED(IDC_BUTTON_PRIOR, OnButtonPrior)ON_BN_CLICKED(IDC_BUTTON_NEXT, OnButtonNext)//}}AFX_MSG_MAPEND_MESSAGE_MAP()/////////////////////////////////////////////////////////////////////////////// CDlgSetting message handlersBOOL CDlgSetting::OnInitDialog(){CDialog::OnInitDialog();// TODO: Add extra initialization here//打开"站点配置"文件CFile TheFile("Station.dat",CFile::modeRead);CArchive ar(&TheFile,CArchive::load,40960);TheFile.SeekToBegin();for(int i=0;i<100;i++){ar>>pStation[i].num;ar>>pStation[i].timer;ar>>pStation[i].bIsPositive;ar>>pStation[i].bIsNegative;CString str;str.Format(" %d",i);m_ComboStation.AddString(str);}ar.Close();TheFile.Close();m_ComboStation.SetCurSel(0);OnCloseupCOMBOStation();//打开"速度配置"文件CFile TheFile2("Velocity.dat",CFile::modeRead);CArchive ar2(&TheFile2,CArchive::load,40960);TheFile2.SeekToBegin();int num_vel;ar2>>num_vel;g_dAGV_VEL_LOW = g_dAGV_VEL_NORMAL * comboLowSpeed[num_vel]; //低速m_ComboLowVel.SetCurSel(num_vel);ar2>>num_vel;g_dAGV_VEL_HAND = g_dAGV_VEL_NORMAL * comboHandSpeed[num_vel]; //手动m_ComboHandV el.SetCurSel(num_vel);ar2>>num_vel;g_dAGV_VEL_HIGH = g_dAGV_VEL_NORMAL * comboHighSpeed[num_vel]; //高速m_ComboHighVel.SetCurSel(num_vel);ar2.Close();TheFile2.Close();return TRUE; // return TRUE unless you set the focus to a control// EXCEPTION: OCX Property Pages should return FALSE}void CDlgSetting::OnButtonPrior() //前一站{if(m_ComboStation.GetCurSel()>0){m_ComboStation.SetCurSel(m_ComboStation.GetCurSel()-1);OnCloseupCOMBOStation();}}void CDlgSetting::OnButtonNext() //后一站{if(m_ComboStation.GetCurSel()<m_ComboStation.GetCount()){m_ComboStation.SetCurSel(m_ComboStation.GetCurSel()+1);OnCloseupCOMBOStation();}}void CDlgSetting::OnCloseupCOMBOStation() //当IDC_COMBO_Station控件发生变化时{for(int i=0;i<5;i++){if(pStation[m_ComboStation.GetCurSel()].timer == comboStopTime[i]){m_ComboStopTime.SetCurSel(i);}}if(pStation[m_ComboStation.GetCurSel()].bIsPositive){m_ComboRollerPositive.SetCurSel(1);}else{m_ComboRollerPositive.SetCurSel(0);}if(pStation[m_ComboStation.GetCurSel()].bIsNegative){m_ComboRollerNegative.SetCurSel(1);}else{m_ComboRollerNegative.SetCurSel(0);}}void CDlgSetting::OnBUTTONSaveStation() //保存站点设置{if(MessageBox("您确定要更改当前的站点设置?","询问",MB_YESNO|MB_ICONQUESTION)==IDYES){pStation[m_ComboStation.GetCurSel()].timer = comboStopTime[m_ComboStopTime.GetCurSel()];pStation[m_ComboStation.GetCurSel()].bIsPositive = m_ComboRollerPositive.GetCurSel();pStation[m_ComboStation.GetCurSel()].bIsNegative = m_ComboRollerNegative.GetCurSel();CFile TheFile("Station.dat",CFile::modeCreate|CFile::modeReadWrite);CArchive ar(&TheFile,CArchive::store,40960);TheFile.SeekToBegin();for(int i=0;i<100;i++){ar<<pStation[i].num;ar<<pStation[i].timer;ar<<pStation[i].bIsPositive;ar<<pStation[i].bIsNegative;}ar.Close();TheFile.Close();MessageBox("新的站点设置完毕! 下次打开应用软件时有效!","提示",MB_ICONWARNING);}}void CDlgSetting::OnBUTTONSaveSpeed() //保存速度设置{if(MessageBox("您确定要更改当前的速度设置?","询问",MB_YESNO|MB_ICONQUESTION)==IDYES){CFile TheFile("Velocity.dat",CFile::modeCreate|CFile::modeReadWrite);CArchive ar(&TheFile,CArchive::store,40960);TheFile.SeekToBegin();ar<<m_ComboLowVel.GetCurSel();ar<<m_ComboHandVel.GetCurSel();ar<<m_ComboHighVel.GetCurSel();ar.Close();TheFile.Close();MessageBox("新的速度设置完毕! 下次打开应用软件时有效!","提示",MB_ICONWARNING);}}第三章算法1 算法目的:运动目标跟踪算法的目的就是对视频中的图象序列进行分析,计算出目标在每帧图象上的位置。