机电系统控制与机器人控制实验.

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

轮式机器人关键技术及其应用分析1、引言
随着电子技术和计算机技术的快速发展,机器人技术的研究和发展受到了越来越多的关注。

机器人是当代自动化技术和人工智能技术发展的典型体现,是高新技术的代表,它融合了精密机械、电子信息、传感器、计算机、人工智能、自动控制等许多学科的知识,涉及到当今许多科技前沿领域的技术,可应用到宇宙探测、海洋开发、工厂自动化、建筑、采矿、军事、农业等各个领域。

2、轮式机器人
机器人就驱动方式而言,可以分为轮式机器人、履带式移动机器人、腿式移动机器人等。

本文中主要介绍的是轮式机器人。

轮式机器人(Wheeled Mobile Robot)是移动机器人的一个重要分支,其应用领域广泛,应用前景十分可观。

轮式机器人的运动形式机构具有自重轻、承载大、机构简单、行走速度快、工作效率高、驱动和控制相对方便、机动灵活等众多优点。

轮式机器人按照车轮数目的同步又有不同的分类,本文主要讲和实验相同的四轮机器人。

当在平整地面上行走时,这种机器人是最合适的选择。

3、轮式机器人关键技术
3.1 轮式机器人系统概述
轮式移动机器人系统主要包括:机械结构、电器结构和控制系统等。

轮式机器人车体由车架、电池组、直流电机、车轮和传感器等组成,是整个机器人的基础部分,车体机构如下图所示。

3.1.1 机械系统
其机械部分包括传动系统、转向系统、行驶系统和传感器支架等。

智能车机械系统,对智能车是至关重要的一部分,机械系统的发挥空间很大。

机械系统主要包括转向舵机、传感器机械结构、车辆悬架系统等。

其中涉及的工作包括转向舵机改装、车模刚度调校、差速器调整等。

车模舵机原始支架不符合汽车转向关系,需要对其进行改装使其符合汽车转向关系。

传感器支架需要吸收车模震动对传感器的干扰,也需要减少车的转动惯量。

传感器会改变车模重心,让车模重心远离地面或车中心,这样会影响到车模轮胎附着力分配,影响车模加速和转向性能。

车模悬架系统调校可以使车模远离共振,有更好的地面附着性能。

车模整体
刚度调整让车模转向灵敏也不超调。

试验中舵机安装如下:
舵机安装
舵机是智能车的转向执行部分,对车模来说,转矩越大越好,原装舵机的支撑方面不能发挥出舵机转矩的极限,可以改装舵机使车模的转向系统更加灵敏。

目前舵机主要有三种安装方法:卧式(可前置、后置)、扣式和立式。

三种方式各有优缺点,实际安装视具体情况而定。

动力传动系统由电机、电机齿、差速器和半轴。

动力传送系统在智能车运行中可以实现倒车功能,减速增扭,还具有差速作用,在必要时还可以中断动力,使汽车停下来。

转向系统如下图所示,包括舵机、舵机支架、舵机圆盘、舵机连片、拉杆、车轮、车轮支撑臂。

转向系统是比较复杂的一个系统,转向系统调校的好,小车的行驶会特别顺畅和轻盈。

汽车转向系分为机械转向系和动力转向系两大类。

机械转向系以驾驶员的体力作为转向能源,传力件都是机械的;而动力转向系以发动机或电动机的动力作为主要转向能源,转向轻松省力。

主要有液压助力转向和电动助力转向两种类型。

智能车转向系统为机械转向系,结构上与汽车的转向结构类似。

汽车的转向系统因前悬挂不同分为非独立转向系统和独立式转向系统,智能车前悬架为独立式悬架,转向系统是参考汽车独立悬架转向系统设计的。

转向系统
汽车行驶系统包括:车架、车轮、悬架和车桥。

车架主要是接受传动系统的动力,通过驱动轮与路面的作用产生牵引力,使汽车正常行驶,要求具有足够的强度和适当的刚度即可。

车轮则通过和汽车悬架共同缓冲减振,从而保证汽车具有良好的乘坐舒适性和行驶平顺性,使用中保证车轮具有良好的附着性,与路面相互作用产生驱动力、制动力和侧向力,以提高汽车的牵引性、制动性和通过性,车轮同时还承受汽车重力,并传递其他方向的力和力矩,降低滚动阻力,提高汽车的燃油经济性。

汽车前悬架最重要的是前轮定位,前轮定位参数是转向轮、主销和路面之间的相互位置关系。

具有自动回正作用,保证汽车直线行驶的稳定的作用。

电机是车模前进的动力装置,车模加减速特性、行驶过程中的速度响应都由
电机特性决定。

驱动系统包括电机、主减速器、差速器、电机驱动板、速度传感器及其支架。

该系统中电机是车模行驶快慢和反应响应的关键,驱动系统中车速传感器是速度闭环控制的关键,对车速传感器的要求是车辆在行驶过程中,速度记录丢失在5%以内。

电机驱动电流满足电机最大过载电流,通态电阻越小越好。

车轮差速器是车辆转向时的轮速差实现机构,需要经常维护。

电机驱动系统
传感器固定支架在智能车中不可缺少,设计传感器支架需要在结构、自由度以及材料上下功夫。

结构方面在满足功能的情况下,尽量将支架设计的更小、更巧妙。

这样不仅可以降低整车重量还可以有效避免支架与周边的干涉风险。

自由度方面主要考虑需要几个可调节的量、几个自由度,比如摄像头在做智能车的前期阶段是不能确定高度和仰角的。

此时需要设计可上下调节高度,同时可以调节俯仰角的支架。

材料方面需考虑加工方便、价格便宜且质量小,所以首选铝质材
料。

对于不需要折边的支架可以选用PCB加工。

3.1.2 电器系统
电器部分包括核心板、电源模块和驱动模块。

我们用到的是5225核心板,5225是目前客户使用比较少的芯片,中文资料比少,使用的用户不是特别多,主频一般是80M。

其外形如下图所示。

核心板必须使用下载器,不同的核心板需要不同的下载器。

下载器是系统板必需的调试工具,在使用下载器时,需要查看系统板的BDM脚和下载器定义的BDM下载脚。

5225核心板
电源模块把电池电压稳定地转换到系统各个部件需要的电压。

该电源模块把7.2V电压转化到3.3V、5V、6V、12V电压。

电源模块进行稳压时,特别是对传感器进行供电的电压,随着电池电压变化的幅度越小越好。

而转接模块是核心板与传感器、驱动模块、电源模块连接的桥梁,具有很好的通用性。

转接模块如下右图所示。

电源模块转接模块传感器是车模识别系统的关键,不同类别的传感器其识别原理不一样。

有光感传感器和磁感传感器。

主要目的是能够识别路径,尽量少丢线。

在智能车的制作过程中,传感器的图像识别需要做大量的工作。

光感传感器在识别路径时,外部光线变化和车模振动会导致图像识别误差。

传感器支架需要能够减少车模振动对传感器的影响,同时也是越轻越好。

电机驱动模块是连接单片机、电池和电机的模块,能够由单片机控制驱动电机的输出电流,来控制电机驱动力。

电机驱动模块能够满足驱动电机正转、反转、能耗制动功能要求。

电机驱动模块能够提供的电流必须大于电机的最大电流,这
样才能发挥电机的驱动力。

一般小车的驱动模块是BTN7970H桥或者是33886组成的H桥。

33886BTN7970H桥
4、轮式机器人的模糊控制避障模块研究
智能轮式机器人在行走过程中,会面临复杂变化环境,精确的数学模型较为难以建立,因此模糊控制方法非常适用于智能轮式机器人建立环境模型。

4.1 智能轮式机器人系统设计
智能轮式机器人系统由硬件系统和软件系统两部分组成。

硬件系统主要由电源模块、超声波测距模块和电机驱动模块成。

该轮式机器人有2个直流电机,分别驱动左右两个车轮。

直流电机得到正反相电压,分别产生正反转。

运用左右轮的不同正反转组合,驱动智能轮式机器人前后移动以及左右转向。

同时,电机驱动模块通过PWM 脉宽对电机进行调速。

4.1.1 硬件结构
电源模块采用嵌入式主控系统和非主控系统分别进行供电的方式。

使用2块15V 的电池,每块电池分别使用LM 2678 芯片将电源电压降至5V,输出端分别接入嵌入式主控系统和非主控系统。

超声波驱动部分以嵌入式控制器为核心,包括超声波发射驱动和超声波接收中断驱动。

在超声波发射驱动部分,嵌入式控制器产生40kHz的方波信号,通过74HC14M 芯片的调制,由超声波发射换能器发射超声波。

由于超声波在传输过程中,会产生能量衰减,因此需要在接收超声波回波后进行放大操作。

在超声波接收驱动电路中,由接收换能器接收回波,进行两级放大电路。

前级使用NE5532 电路进行放大和滤波,将信号放大10000 倍。

后级使用LM 311 比较器,获得超声波信号触发嵌入式控制器中断,最后由74HC14 进行调制,嵌入式控制器获得信号并进行相应处理。

智能轮式机器人的电机驱动模块采用左右轮驱动。

左右轮前后转动组合以及机器人运动方向关系为:
1)左轮正转,右轮正转,机器人前进;
2)左轮反转,右轮反转,机器人后退;
3)左轮正转,右轮反转,机器人右转;
4)左轮反转,右轮正转,机器人左转。

左右轮各由一个24W 直流电机驱动。

电机驱动芯片选择ST 公司的L298N芯片,该芯片包含2 个并联的H 桥,进行电流闭环控制以提高控制效率。

嵌入式控制器控制PWM 脉宽,经过施密特触发器74HC14 进行调制,对电机进行速度调节。

4.1.2 避障模糊控制器
1)采集障碍物信息。

智能轮式机器人通过传感器采集障碍物的方向、距离等信息。

控制器根据采集到的障碍物信息和自身运行状态,调整电机运行动作,完成避障功能。

2)建立模糊控制规则。

智能轮式机器人的转向和速度分别与障碍物的分布、距离相关。

因此建立模糊控制规则为速度变量v 和转角变量φ。

不同方位的障碍物信息,改变转角变量φ,障碍物的距离改变速度变量v。

3)去模糊化处理。

为了获得确定控制信息,需要将模糊量转换为精确量,因此将模糊变量进行去模糊化处理。

本文使用加权平均算法得到转角变量φ 的最终输出量。

对于速度变量v 可做同样处理。

4.1.3 软件系统
首先,嵌入式控制器对GPIO 进行初始化。

嵌入式控制器输出40kHz的信号后,打开中断,同时,定时器开始计数。

如果定时器计数溢出,说明在预定的距离内没有障碍物,智能轮式机器人不需要进行避障行为。

如果外部中断产生,说明预定距离内有障碍物,此时关闭中断。

从定时器获得时间T。

时间T就是超声波的传播时间。

根据测距公式计算出智能轮式机器人和障碍物之间距离。

超声波在空气中的传播速度需要考虑温度的影响。

速度v=331.5+t/273 (m/s),其中,t 为空气温度。

在室温下,取超声波速度约为343.2m/s。

智能轮式机器人通过 5 路超声波传感器(前侧、左前侧、右前侧、左侧、右侧)探测到的障碍物信息,根据障碍物距离与即时速度,经过通过模糊控制算法计算后,控制直流电机执行自主避障动作。

根据不同的方向的障碍物,驱动智能轮式机器人进行左转或右转动作。

经过恒速试验,智能轮式机器人避障动作正确,可以完成避障效果。

5、收获心得
通过课程的学习,让我对轮式机器人有了略微详细的了解,对运动形成的流程有了比较清晰的认识。

通过自己动手组装,对具体的机械部件和各个控制模块有了更深的了解。

我总结的是:控制系统=宏观构想+硬件开发+软件调试+系
统联调。

如果把轮式机器人比作有思想的活机器的话,那么软件的调试和硬件电路板的开发就是它的灵魂,系统模块化的设计构建就是它的基础。

但是在几周实验课程上,在软件的调试上我还只是停留在通过设置来使用系统自动生成的程序,要自己来编译程序还是有很大的困难,语言的学习还是有待加强。

值得一提的是,在学习新东西的过程中,难免会遇到一些难题,但是现在都能够自己耐心寻找解决方法,循序渐进的学习也是继续科研的必备技能之一。

轮式机器人的开发是一门很深奥的学科,仅仅这几周的学习肯定是远远不够的,但是在这段时间的学习中也收获了很多,不仅仅对智能车有了进一步的认识,更学会了思考问题,培养了自己对轮式机器人的兴趣。

参考文献:
[1]赵冬斌,易建强.全方位移动机器人导论.北京:科学出版社,2010.
[2]张毅,罗元,郑太雄.移动机器人技术及应用.北京:电子工业出版社,2007.
[3]李磊,叶涛.移动机器人技术研究现状与未来[J].机器人,2002,24(5):475-480.
[4]常勇等.轮式移动机器人运动学建模方法[J].机械工程学报,2010,46(5):30-36.
[5]蔡自兴.智能控制及移动机器人研究进展.中南南大学学报,2005,36(5):721-726.
[6]孙炜等.模糊小波基神经网络的机器人轨迹跟踪控制[J].控制理论与应用,2003,20(1):49-53.
机器人控制实验报告
一、实验目的
掌握XS128单片机普通I/O口输出功能的使用。

二、实验原理
MCU的很多引脚和片上功能模块复用。

当引脚的复用功能未使用到时,那么引脚作为普通I/O口使用。

关于I/O口的设置主要注意以下几点:
2.1功能设置
每个I/O子系统都有一个功能设置寄存器,其中的几个位用于部分或者全部引脚的功能设定,设定为专用功能后,方向设置功能可能自然禁止,但上拉、下拉及降功率驱动功能一般仍然有效,具体取决于I/O子系统的要求。

通常复位后,各引脚默认为通用I/O输入功能,具体取决于MCU的工作模式。

2.2方向设置
当引脚设定为通用I/O后,通过方向寄存器指定引脚的输入/输出,一般复位后默认为输入。

设定为输出后,上拉、下拉功能禁止,但降功率驱动功能允许,而设定为输入后,降功率驱动功能禁止,而上拉、下拉功能允许。

2.3上拉/下拉
输入引脚一般可以设定是否激活上拉/下拉功能,激活后可以保证浮空引脚的输入值固定,对于非浮空引脚有时可以提高响应速度,增强抗干扰能力。

2.4驱动能力
输出引脚可以选择是否降低驱动功率,如果激活可以使驱动能力降低至约50%,这样可以减小对其他部分的射频辐射干扰,同时降低功率消耗,但可能少量延长过渡时间、降低响应速度,因此必须根据引脚的外部负载情况确定是否采用。

三、实验内容和步骤
该实验对实验板上的蜂鸣器进行控制,对蜂鸣器进行控制的管脚为PK5,具体实验步骤如下:
(1)将BDM下载器连接到开发板上,打开开发板电源;
(2)打开光盘文件中的“演示代码\蜂鸣器\蜂鸣器.mcp”。

(3)点击(Debug)按钮,将源代码下载到单片机中,进入调试窗口。

(4)点击调试窗口的(Start)按钮,程序开始执行。

(5)观察实验现象,蜂鸣器发出“嘀嘀”的响声。

四、实验结果
若蜂鸣器发出“嘀嘀”的响声,说明智能车安装及软件安装实现没有问题,可以继续后续试验。

实验二电机实验
一、实验目的
了解H桥电路的工作原理,掌握电机的驱动方法。

二、实验原理
H桥电路是电机控制的重要电路,可以实现电机正反转和速度大小的连续调节。

下图为一个H桥电路的原理图。

H桥的主要部分是4个MOS管。

控制时令Q31和Q34导通,Q32和Q33关断,则电流由VBAT经由motor+流到motor-再回到GND,电机正转;令Q32和Q33导通,Q31和Q34关断,则电流由VBAT经由motor-流到motor+再回到GND,电机反转。

用PWM波来控制MOS管,通过调节PWM波的占空比就可以实现转速的连续调节。

在这个实验中我们用本店在售的一路或两路BTS7970电机驱动模块来驱动
智能车的电机进行实验。

单片机采用P0~P3口输出PWM信号,对H桥进行控制。

本店销售的电机驱动模块如下面两图所示。

BTS7970芯片是集成的半桥芯片,两片BTS7970芯片可以组成一个完整的H 桥。

有关H桥模块的详细说明可以参考光盘“芯片资料”文件夹下的关于BTS7970模块的说明。

注意:本实验的演示代码是针对本店销售的BTS7970模块的,如果使用其它店铺的模块,演示代码不一定能用。

三、实验步骤
3.1 一路电机实验(这个实验针对光电组,电磁组和摄像头组可以不进行此实验)
在第九届智能车比赛上,光电组采用B车模,车模上只有一个电机,因此采用一路的BTS7970模块对电机进行控制。

(1)电机耗电量比较大,请用电池给开发板供电,将电池的正负极分别接到开发板上的接口J_S2的BAT+和BAT-上。

不要使用电源适配器给开发板供电,以免烧毁电源。

将电池的正负极分别接到一路BTS7970模块的J1接口上的BAT+和BAT-上。

注意开发板的BAT-和BTS7970模块的BAT-必须连在一起,即二者要共地。

将电机两端连接在模块的J2接口的OUT1和OUT2上。

用跳线帽将BTS7970模块的J3接口上的(EN-GND)、(INH-VCC)插针短接。

用杜邦线将开发板上的J_H与BTS7970模块的J3接口相连,连接关系为:5V与VCC相连,PWM1与PWM1相连,PWM2与PWM2相连,GND与GND相连,其它不连。

将BDM下载器连接到开发板上,打开开发板电源。

(2)打开光盘文件中的“演示代码\一路电机转动\一路电机转动.mcp”。

(3)点击(Debug)按钮,将源代码下载到单片机中,进入调试窗口。

(4)点击调试窗口的(Start)按钮,程序开始执行。

(5)观察实验现象,电机先正转逐渐加速,之后逐渐减速直到停下,再反转逐渐加速,再逐渐减速直到停下,之后重新正转,如此反复。

在这个实验中我们采用两路PWM信号来控制一个H桥,PWM信号的频率为10kHz。

通过匹配PWM1和PWM2的占空比,可以控制电机正转和反转,以及调速。

PWM2占空比为0,控制PWM1的占空比,可以实现电机的正向调速,PWM1的占空比为0,控制PWM2的占空比,可以实现电机的反向调速。

3.2 按键控制一路电机实验(这个实验针对光电组,电磁组和摄像头组可以不进行此实验)
(1)电机耗电量比较大,请用电池给开发板供电,将电池的正负极分别接到开发板上的接口J_S2的BAT+和BAT-上。

不要使用电源适配器给开发板供电,以免烧毁电源。

将电池的正负极分别接到一路BTS7970模块的J1接口上的BAT+和BAT-上。

注意开发板的BAT-和BTS7970模块的BAT-必须连在一起,即二者要共地。

将电机两端连接在模块的J2接口的OUT1和OUT2上。

用跳线帽将BTS7970模块的J3接口上的(EN-GND)、(INH-VCC)插针短接。

用杜邦线将开发板上的J_H与BTS7970模块的J3接口相连,连接关系为:5V与VCC相连,PWM1与PWM1相连,PWM2与PWM2相连,GND与GND相连,其它不连。

将BDM下载器连接到开发板上,打开开发板电源。

(2)打开光盘文件中的“演示代码\按键控制一路电机\按键控制一路电机.mcp”。

(3)点击(Debug)按钮,将源代码下载到单片机中,进入调试窗口。

(4)点击调试窗口的(Start)按钮,程序开始执行。

(5)观察实验现象,电机处于静止状态,反复按下KEY1按键,电机正转并且速度逐渐增大;反复按下KEY2按键,电机速度降低,并最终变为反转,之后速度逐渐增大。

3.3 两路电机实验(这个实验针对电磁组和摄像头组,光电组可以不进行此实验)
在第九届智能车比赛上,电磁组采用C车模,摄像头组采用C、D或E车模,这些车模上都有两个电机,因此采用两路的BTS7970模块对电机进行控制。

(1)电机耗电量比较大,请用电池给开发板供电,将电池的正负极分别接到开发板上的接口J_S2的BAT+和BAT-上。

不要使用电源适配器给开发板供电,以免烧毁电源。

将电池的正负极分别接到两路BTS7970模块的J1接口上的BAT+和BAT-上。

注意开发板的BAT-和BTS7970模块的BAT-必须连在一起,即二者要共地。

将电机1两端连接在模块的J2接口的OUT1和OUT2上。

将电机2两端连接在模块的J3接口的OUT3和OUT4上。

用杜邦线将开发板上的J_H与BTS7970模块的J4接口相连,连接关系为:5V与VCC相连,PWM1与PWM1相连,PWM2与PWM2相连,PWM3与PWM3相连,PWM4与PWM4相连,GND与GND相连,其它不连。

将BDM下载器连接到开发板上,打开开发板电源。

(2)打开光盘文件中的“演示代码\两路电机转动\两路电机转动.mcp”。

(3)点击(Debug)按钮,将源代码下载到单片机中,进入调试窗口。

(4)点击调试窗口的(Start)按钮,程序开始执行。

(5)观察实验现象,两个电机同时转动。

电机先正转逐渐加速,之后逐渐减速直到停下,再反转逐渐加速,再逐渐减速直到停下,之后重新正转,如此反复。

在这个实验中我们采用四路PWM信号来控制两个H桥,PWM信号的频率为10kHz。

通过匹配PWM1,PWM2,PWM3和PWM4的占空比,可以分别控制两个电机的正转和反转,以及调速。

3.4 按键控制两路电机实验(这个实验针对电磁组和摄像头组,光电组可以不进行此实验)
(1)电机耗电量比较大,请用电池给开发板供电,将电池的正负极分别接到开发板上的接口J_S2的BAT+和BAT-上。

不要使用电源适配器给开发板供电,以免烧毁电源。

将电池的正负极分别接到两路BTS7970模块的J1接口上的BAT+和BAT-上。

注意开发板的BAT-和BTS7970模块的BAT-必须连在一起,即二者要共地。

将电机1两端连接在模块的J2接口的OUT1和OUT2上。

将电机2两端连接在模块的J3接口的OUT3和OUT4上。

用杜邦线将开发板上的J_H与BTS7970模块的J4接口相连,连接关系为:5V与VCC相连,PWM1与PWM1相连,PWM2与PWM2
相连,PWM3与PWM3相连,PWM4与PWM4相连,GND与GND相连,其它不连。

将BDM下载器连接到开发板上,打开开发板电源。

(2)打开光盘文件中的“演示代码\按键控制两路电机\按键控制两路电机.mcp”。

(3)点击(Debug)按钮,将源代码下载到单片机中,进入调试窗口。

(4)点击调试窗口的(Start)按钮,程序开始执行。

(5)观察实验现象,两个电机处于静止状态,反复按下KEY1按键,电机1正转并且速度逐渐增大;反复按下KEY2按键,电机1速度降低,并最终变为反转,之后速度逐渐增大。

反复按下KEY3按键,电机2正转并且速度逐渐增大;反复按下KEY4按键,电机2速度降低,并最终变为反转,之后速度逐渐增大。

四、实验心得
通过自己的动手和动脑经历,我的收获主要可以概括为以下几点:
在智能车的安装过程中,我曾犯过的一个错误——没有考虑各个部件之间的相互位置关系,这常常会导致安装好了舵机发现车架不能很好地连接上了,又要重新拆开一遍比较麻烦。

这让我意识到配合的重要性,在安装之前就要充分考虑清楚,避免做无用功。

此外,实验过程中我们都是用的现成程序,尽管如此,也常常会遇见许多问题。

比如对软件的不熟悉,常常导致下载的程序不一定完全正确。

有时,小车自身电源和USB接口连接电脑两电源之间的冲突也容易造成小车不能按照我的设计去运动。

造成这一类的问题原因一是对这一类编程语言并不了解,此外对各个部件的具体使用及注意不够深入。

不得不说,机器人控制实验是一个生动活泼的课堂,因为可以自己动手,体验过程中的失败和成功。

失败则自己寻找原因,成功则让人喜悦。

不同于课本的学习,真正的运用知识在这里体现无疑。

就我个人而言,机器人控制实验的部分学习激发了我的动手能力和学习积极性,在课程内容方面,让我对机械和电子方面都有了更深入的了解和认识。

相关文档
最新文档