




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、实验三 串口通讯控制机器人实验目的在前一实验基础上,利用现有的框架代码,学习基本的机器人控制。实验配置1、装有 windows 系统的 PC 一台2、安装 Visual C+ 6.0 3、安装与机器人控制方式相对应的无线通讯设备4、机器人处于可运行状态实验步骤1、 按实验二建立基本的对话框界面。2、 引入控制类将 IPhy.h SerialCom.h SerialCom.cpp FstarCmd.h FstarCmd.cpp IBehavior.h, NetSend.h,NetSend.cpp 拷贝到工程文件夹内(FstarTest)。由于 CFstarCmd 类中包含 有 CNetSend
2、类的对象,所以一并加入。另外,CFstarCmd 类中用到了 PlaySound 函 数,要正常编译,必须在工程中连接 winmm.lib 库,并在 stdafx.h 头文件中包含 mmsystem.h ,如图所示。图 3.1 连接库文件图 3.2 包含头文件向工程中引入串口类、协议类,行为类和网络发送类,即刚才拷贝的几个文件,这些类即可构成一个完整的机器人控制系统。 要使用这些类,我们还需要将其实例化,即在主窗体内创建他们的对象。首先在主窗体头文件引入控制类的头文件,然后在主窗体类的声明里生成三个类的对象。图 3.3 向工程中添加文件图 3.4 选取添加的文件图 3.5 包含头文件图 3.6
3、 实例化控制类3、 硬件层与协议层对接硬件通讯层和协议层的类已经实例化,要使他们工作起来还得进行对接。对接工作很简单,通过 CSerialCom 的 SetCmd 函数接口将协议类地址指针传递进去即可。图 3.7 硬件通讯层与协议层对接4、 建立控制按钮下面我们需要界面上的一些按钮来控制机器人的具体行动。在主窗体上建立 5个按钮控件,分别对应前进、后退、左转、右转和刹车。图 3.8 绘出按钮图 3.9 前进按钮控件属性图 3.10 后退按钮控件属性图 3.11 左转按钮控件属性图 3.12 右转按钮控件属性图 3.13 刹车按钮控件属性图 3.14 修改后的界面图 3.15添加映射函数相应的可
4、以添加其他四个按钮的响应函数,如下图:小结图 3.16函数体我们已经能够控制机器人进行基本的移动了,要实现自主功能还需要借助传感器。实验四 基于避碰开关的漫游行为设计实验目的能从机器人底层获取传感器信息并显示在软件界面上,为机器人决策提供依据。实验配置1、装有 windows 系统的 PC 一台2、安装 Visual C+ 6.0 3、安装与机器人控制方式相对应的无线通讯设备4、机器人处于可运行状态5、配置了避碰开关且工作正常实验步骤1、 按实验三建立已包含串口类、协议类和行为类的对话框界面。2、 绘制窗体显示控件,添加相关变量。为了直观的显示返回数据,我们需要在界面上设置四个图标。这里我们使
5、用 Picture 控件。为了形象的显示避碰开关的状态。我们首先给程序新建两个图标,红 色的表示避碰开关按下,绿色表示避碰开关未比按下。图 4.1 避碰开关未按下的图标图 4.2 避碰开关按下时的图标图 4.3 避碰开关未启用时的图标添加完图标后,为了便于使用。我们在主对话框类 CFstarTestDlg 中添加三个变量保存图标。如图 4.4。其中类 CFstarCmd 中应经添加,仅需要初始化,如图 4.5。图 4.4 添加图标变量图 4.5 图标变量的赋值添加完图标变量后,在界面上按下面步骤添加控件。首先删除“确定”和“取消”按钮。图 4.6 添加控件其中“避碰开关”“障碍方位”为静态文本
6、控件,只需修改属性-标题即可。图中的 4 个灰色方框即为 Picture 控件。属性设置如下:图 4.7 左前方避碰开关对应的 Picture 控件属性图 4.8 右前方避碰开关对应的 Picture 控件属性图 4.9 左后方避碰开关对应的 Picture 控件属性图 4.10 右后方避碰开关对应的 Picture 控件属性图 4.11 漫游行为开始按钮属性图 4.12 障碍方位静态文本控件属性设置添加完控件后,为四个 Picture 控件和静态文本控件添加相关变量。图 4.13 给控件添加相关变量3、 自动显示功能的实现给“漫游开始”按钮添加消息响应函数。这里只用一个按钮同时实现行为开始和
7、终止功能,具体实现见下图。图 4.14 添加按钮消息响应函数图 4.15 按钮消息响应函数的实现4、 编译运行程序。打开对应的端口后。点击“漫游开始”后,机器人即可开始漫游行为,同时按钮文 本变为“终止漫游”。机器人行进中,如果避碰开关触到障碍,机器人就会后退并改变 前进方向。再次点击按钮,即可终止漫游行为。如果想要了解漫游执行的具体策略,可以在 CFstarCmd 类中,m_AwayObstacle 函数中查看源代码。因为只有 4 个避碰开关,总共只有 16 种状态,在函数 m_AwayObstacle中,分别对 16 种情况作了处理。为了防止机器人进入死胡同,针对左前方和右前方避 碰开关按
8、下的状态做了特殊处理即如果避碰开关不停的在左前和右前避碰开关被 按下的状态之间循环,程序将加入一个扰动,使机器人跳出死循环。小结现在我们已经利用避碰开关实现了避障行为,下一节我们将讲述利用红外传感 器进行边缘检测的行为。实验五 基于红外传感器的边缘检测行为设计实验目的学习红外传感器的使用,应用红外传感器返回信息进行简单的决策。实验配置1、装有 windows 系统的 PC 一台2、安装 Visual C+ 6.0 3、安装与机器人控制方式相对应的无线通讯设备4、机器人处于可运行状态5、配置了红外传感器且工作正常实验步骤1、 本实验可以在实验三的基础上进行,只需按实验四添加图标变量即可,具体内容
9、参 考实验四。下面以实验四为基础来讲述本实验的步骤。所以请先按实验四建立程序。2、 绘制窗体显示控件,添加相关变量“红外传感器”静态文本控件只需设置标题即可。其他三个控件的设置和界面布局如下图。图 5.1 左边红外传感器图标属性图 5.2 左边红外传感器图标属性图 5.4 按钮属性图 5.5 给图标关联变量北京博创兴盛机器人技术有限公司3、 添加消息响应函数编辑完控件后我们需要添加消息响应函数。与实验四相似,我们仍然只用一个按钮同时实现行为开始和终止功能。图 5.2行为类对象图 5.3 消息响应函数的实现4、 编译运行程序。打开对应的端口后,点击“边缘检测开始”后,机器人即可开始边缘检测行为,
10、 同时按钮文本变为“终止边缘检测”。机器人行进中,如果红外传感器采集到的值大于 设定的阈值,机器人就会后退并改变前进方向。再次点击按钮,即可终止漫游行为。如果想要了解边缘检测执行的具体策略,可以在 CFstarCmd 类中,m_ForEdge 函数 中查看源代码。因为只有 2 个避碰开关,总共只有 4 种状态,在函数 m_ForEdge 中,分 别对 4 种情况作了处理。要说明的是,红外传感器返回的数据为 0-255,在该行为中, 用一个阈值分成两种状态有返回和无返回。有返回证明没有检测到边缘,无返回证 明存在边缘。这里的阈值在不同环境下需要重新设置。m_ForEdge 中的阈值就是判断条 件
11、中的 3。北京博创兴盛机器人技术有限公司小结我们已经完成了边缘检测行为的练习。到这里,我们已经用到了两种传感器,避碰开关和红外传感器。接下来,我们将用到超声传感器。实验六 基于超声传感器的避障行为设计实验目的学习使用超声传感器,使用传感器返回的数据进行逻辑决策。实验配置1、装有 windows 系统的 PC 一台 2、安装 Visual C+ 6.0 3、硬件上与机器人建立通讯连接4、机器人处于开启状态5、配置了超声传感器且工作正常实验步骤1、 本实验仍然可以从实验三出发,但为了保持连续性,我们从实验五出发。2、 绘制界面控件,并关联变量。 在界面添加一个静态文本控件用于显示超声传感器检测到的
12、距离,然后添加一个按钮用于行为的开始和结束。“超声传感器”和“cm”静态文本控件只需设置相应的标题即可。如图所示:图 6.1用于显示超声检测到的距离的静态文本属性图 6.2按钮控件属性图 6.3 为静态文本关联变量3、 添加消息响应函数为按钮“超声避障”添加消息响应函数,实现超声避障行为。图 6.4为按钮添加消息响应函数图 6.5消息响应函数具体内容4、 编译运行程序。打开对应的端口后,点击“超声避障”后,机器人即可开始超声避障行为,同 时按钮文本变为“终止避障”。机器人行进中,如果超声传感器采集到的值大于设定的 阈值,机器人就会左转。再次点击按钮,即可终止避障行为。如果想要了解超声避障执行的
13、具体策略,可以在 CFstarCmd 类中,m_UsAwayObstacle函数中查看源代码。小结这一章我们学习了使用超声传感器实现避障行为。接下里我们使用超声传感器 来进行跟踪。实验七 基于超声传感器的跟踪行为设计实验目的学习使用控制类使机器人在陀螺仪导航状态下运动。实验配置1、装有 windows 系统的 PC 一台 2、安装 Visual C+ 6.0 3、硬件上与机器人建立通讯连接4、机器人处于开启状态5、配置了超声传感器且工作正常实验步骤1、 按实验六建立程序。2、 绘制界面控件有了实验六的基础,本实验实现起来非常简单。只需添加一个按钮即可。如图 所示:图 7.1控制界面添加控件3、
14、 添加消息响应函数图 7.2 添加消息响应函数图 7.2消息响应函数内容4、 编译运行程序。打开对应的端口后,点击“超声跟踪”后,机器人即可开始超声跟踪行为,同 时按钮文本变为“终止跟踪”。机器人行进中,如果超声传感器采集到的值大于设定的 较大阈值,机器人就会前进;该值位于较大阈值和较小阈值之间,机器人停止;小于较 小阈值,机器人呢后退。再次点击按钮,即可终止避障行为。如果想要了解超声跟踪执 行的具体策略,可以在 CFstarCmd 类中,m_UsFollow 函数中查看源代码。小结这一张我们实现了超声跟踪行为。到这里,我们应用超声传感器进行了两个行 为的练习。接下来,我们将学习光敏传感器的使
15、用和寻光行为的实现。实验八 基于光敏的寻找光源行为设计实验目的学习使用控制类使机器人在陀螺仪导航状态下运动。实验配置1、装有 windows 系统的 PC 一台 2、安装 Visual C+ 6.0 3、硬件上与机器人建立通讯连接4、机器人处于开启状态5、配置了光敏传感器并且工作正常实验步骤1、 本实验以前面的实验七作为基础,实验前请先建立实验七的程序。2、 绘制界面控件本实验需要添加四个静态文本控件显示两个光敏返回的数值,他们的差值和均 值,另外再添加一个按钮用于行为的开始和终止。其他的其标识作用的静态文本控 件,如“光敏传感器”“左”“右”“均值”“差值”只需按照图示改变其标题属性即 可。
16、图 8.1 左光敏返回数值静态文本属性Http:/robot.up- Tel :86-10-82114870/4887/4890 Fax:总机转 828- 100 -图 8.2 右光敏返回数值静态文本属性图 8.3 左右光敏均值静态文本属性图 8.4 左右光敏差值静态文本属性图 8.5 按钮属性 然后给四个静态文本关联变量,如下图:图 8.6 为四个静态文本控件添加的关联变量3、 添加消息响应函数。图 8.7添加消息响应函数图 8.8 消息响应函数实现4、 编译运行程序打开对应的端口后,放置一个比环境光更亮的光源在机器人光敏可感知范围内, 然后点击“寻光开始”后,机器人即可开始寻光行为,同时按
17、钮文本变为“终止寻光”。 机器人将根据两个光敏采集到的光线强度进行调整,向着光线强的地方前进。移动光源, 可以看到机器人可以跟着调整前进方向。如果想要了解寻光行为执行的具体策略,可以 在 CFstarCmd 类中,m_Forligh 函数中查看源代码。寻光行为中需要人为设置两个阈值, 即 CFstarCmd 类中的 minLgt(最小阈值)和 maxLgt(最大阈值)。当光敏采集到的光强小于 最小阈值,机器人将原地转圈;大于最大阈值时,机器人做小幅度的调整,使自己面向 光源;位于最小阈值和最大阈值之间时,机器人将根据左右光敏的数值差做实时调整, 向着光源前进。小结这一章我们实现了机器人的寻光行
18、为。接下来在实现更高级行为之前,我们先来学习如何安装相关的 SDK。实验九 视频图像采集实验目的学习使用视频类对 USB 视频设备进行图像采集。实验配置1、装有 windows 系统的 PC 一台2、安装 Visual C+ 6.03、正确安装 DirectX 9.0 SDK 完整包4、USB 摄像装置实验步骤1、 建立新工程用 Visual C+新建一个 MFC 对话框工程。将通用类里的所有文件拷贝到工程目 录下,并将这些文件引入新工程中。设置工程属性,点击 Visual C+的“工程”菜单,选择“设置”。在弹出的选项卡中选择“连接”,在“对象/库模块”中输入 DirectShow 标准库路
19、径。如果 DirectX SDK 包安装时使用的是默认路径,则 Debug 编译的标准连接库是: C:DXSDKSamplesC+DirectShowBaseClassesDebugstrmbasd.libRelease 编译的标准连接库是: C:DXSDKSamplesC+DirectShowBaseClassesReleasestrmbasd.lib 需要注意的是这个路径和文件名是严格区分大小写的,务必保证准确无误。在 StdAfx.h 文件里包含三个 DirectShowSDK 的头文件:#include <atlbase.h>#include <streams.h&g
20、t;#include <qedit.h>编译一下工程,排除编译上的错误。图 9.1包含相应头文件图 9.2工程设置图 9.3新建对话框2、 添加界面控件在界面上划定一个范围,限定视频图像的显示位置和大小。这里我们使用一个 Picture 控件做显示。设置控件 ID 为 IDC_PREVIEW,类型为矩形。为了传递这个控 件的位置参数,需要在类向导里为它映射一个 CStatic 类型的控件变量。为视频预览的开启和关闭各自添加一个按钮,并生成相应的映射函数。北京博创兴盛机器人技术有限公司图 9.4添加界面控件图 9.5预览空间属性图 9.6映射控件变量3、 视频流捕捉的实现为了实现视频流的捕捉,我们的窗体程序中必须要有一个 CCaptureVideo 对象, 所以得在窗体类头文件里包含 CCaptureVideo 类头文件。由于 CCaptureVideo 类中 包含了前面用到的 CFstarCmd 类对象,所以如果不想修改代码的话,请添加相关的 文件。这里不再赘述。图 9.7包含视频类头文件CCaptureVideo 类的视频捕捉有多个模式,每个模式
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 房屋租赁合同和房屋买卖合同
- 人工养猪场租赁合同书
- 停车车库买卖合同
- 剧组管理人员劳动合同
- 租赁农村房屋租赁合同标准(2025年版)
- 道路土方测绘合同范本
- 英文资产评估合同范本
- (14)-专题14 口语交际
- 工人干活协议合同范本
- 油漆材料供货合同范本
- 经济学说史教程重点
- 通过PDCA降低住院精神病人的逃跑率
- 药剂科主任岗位权责目录及廉政风险防控措施登记表
- 沼气工程安全培训讲学
- 边坡植草技术交底书
- 中国现代史四民族团结与祖国统一课件- 历史中考一轮复习
- 中国动画发展史
- 优秀广告文案课件
- 八大特殊作业(八大危险作业)安全管理知识与规范培训课件
- 医院患者自杀应急预案
- 幼儿园大班绘本《爱书的孩子》无声PPT
评论
0/150
提交评论