历史上的今天
返回首页

历史上的今天

今天是:2025年06月18日(星期三)

正在发生

2021年06月18日 | 采用超声波的移动机器人导航设计方法

2021-06-18 来源:eefocus

简介:本文 采用超声波的移动机器人导航设计方法, 采用一种精度高的新型超声波传感器,用软件方法克服了它在ARM9 中不利于检测回波的问题,成功应用于移动机器人的运行轨迹控制,使得机器人无论在行走和图像采集的即时性上都得到了很大的高。


1 引言


在项目开发中采用从英国进口的SRF05超声波传感器,它的回波反馈与测距方式与通常使用的超声波传感器相比较特别,在ARM中实现也稍有难度,但该传感器精度很高可达到1cm, 因此用该传感器去掉了用于近距离测距的红外测距模块节约了硬件资源。


该机器人的最小系统为,触摸屏模块,超声波模块,摄像头图像采集模块,直流电机闭环控制系统,在整个系统中测距是最总要的一环,它直接影响电机运行距离的精度,在有效范围内的图像采集控制。整个系统都是在ARM9 与linux 平台中完成,每个模块都是用设备驱动的方式实现使得模块的控制更加方便。


2SRF05超声波测距方法


提供一个10us 的脉冲触发超声波传感器,SRF05 会发出8 个周期的频率为40khz 的超频脉冲,此时在echo 也是就回波口上的电平变为高,此时定时器开始计时,等到echo 变为低电平证明有障碍物此时停止计时,高脉冲的宽度有测距的距离成正比,该超声波的有效测距范围为1cm~4m, 因此如果没有障碍物或障碍物大于4m,echo 依然会变为低电平此时定时器的时间为30ms, 因此在测距时定时器的周期应大于30ms 这样才能有效测距。


原理如图1 所示。


采用超声波的移动机器人导航设计方法

3 超声波测距软件实现


如图2 为超声波测距的流程图。



采用超声波的移动机器人导航设计方法


3.1 回波检测的采集方法


超声波的回波的检测是个难点,因为在ARM中一个端口设置中断只能设置一种触发方式,如果设为上升沿触发可以打开定时器定时但无法捕获下降沿,也就无法关闭定时器,从而不能测距,因此用软件的方式实现。首先设置两个时间延迟函数usdelay()和msdelay(),这样可以在给出高脉冲10us 后等超声波触发再打开定时期计时,在设置一个外部中断eint1 接到超声波传感器的echo 口并设置为下降沿触发,等下降沿来临关闭定时器读出值既为脉宽的时间长度,然后根据障碍物的距离=(ECHO高电平的时间)* 声纳速度/2 得出距离。空气中v 与温度关系:v=331.5√1+T/273 m/s,T 为摄氏温度。一般情况下超声波速近似声速,在室内温度影响下取约343.2m/s.


3.2 超声波触发的实现


利用数字示波器精确设计一个软件计时函数usdelay ,具体实现如下。

采用超声波的移动机器人导航设计方法


则usdelay(1)既为10us,该函数用于在给出激发高脉冲后延续10us 然后关脉冲。


还要设计一个msdelay()用于控制整个测距周期的时间值。


msdelay(1000)在主函数数中用于延迟1s,这样定时器可以完全有足够的回波检测时间同时也不会对其它三路超声波信号造成干扰。


如下所示。



采用超声波的移动机器人导航设计方法

3.3 超声波回波检测的实现


回波检测计算脉宽的时间需要用到定时器和外部中断,外部中断接超声波的echo 并设置为下降沿触发。定时器的初始化如下。


rTCFG0=0x9595; //预分频值为95


rTCFG1=0x00000; //分割值1/2


rTCNTB0=10000; /


根据T=[TCNTB0*(TCFG0+1)*(1/TCFG1)]/50MHZ 得出定时器的周期为60ms 在这个时间段里足以计算回波时间。


外部中断1 初始化如下


rGPFCON=0xaa; //GPF1 设置为EINT1


rINTMOD=0x0; //设置为普通中断


rGPFUP=0xf; //禁止GPF0 上拉电阻


pISR_EINT1=(unsigned)Eint1Handler; //建立中断向量


EnableIrq(BIT_EINT1); //使能中断


rEXTINT0 =0x492; // EINT1 下降沿触发


根据T=[TCNTB0*(TCFG0+1)*(1/TCFG1)]/50MHZ 得出定时器的周期为60ms 在这个时间段里足以计算回波时间。


3.4 在外部中断中计算机距离


采用超声波的移动机器人导航设计方法


3.5 循环控制与轮询测距


由于超声波之间有干扰,采用轮询的方式依次打开超声波,每次只测一个,这样可以有效地避免干扰,为了提高实时性可以控制定时器周期,比如设置为35ms,这样四路超声波轮询一次大约为140ms,足以满足实时要求。


4 机器人控制的实现


图3 为利用超声波的反馈信息控制机器人直流电机闭环系统的总体结构图。


采用超声波的移动机器人导航设计方法

linux 系统中超声波传感器为只读的字符设备,具体应用为在应用程序下打开超声波设备,然后在驱动中测距,测得的数据传到应用程序,应用程序中有超声波的避障算法,根据算法判断障碍物的位置给直流电机控制信号进行避障导航。


触摸屏中的图形界面中含有机器人的指令设置,可以设置运行速度,图像采集与超声波模块的打开与关闭,是否开启机器人模糊算法运行轨迹还是使用普通的PID 调节,这使得机器人有很多种方案可以选择。


机器人的每一次行为都是根据超声波传感器测得的值和当前机器人运行的即时速度来来给出将要运行的时间,在遇到障碍物时(0 ---- 30 us, 等于30微秒时达到超声波的最大探测距离),开启摄像头图像采集模块,这时摄像头会拍下障碍物的图像,并利用无线MODEM把图像传回控制电脑,这样用户就可以知道前方是什么障碍物,该系统实现了移动机器人的自主避障和采集障碍物信息的作用,可以用来探测未知环境。


5 结论


本文采用新型的超声波传感器,在ARM9 与嵌入式linux 为平台的移动机器人上实现了超声波的测距,并利用超声波传感器控制运动系统和图像采集系统。该机器人目前已经成功应用与本项目的开发并取得良好的效果。

推荐阅读

史海拾趣

Crocus公司的发展小趣事

Crocus公司成立于XXXX年,是一家专注于先进隧道磁阻(TMR)传感器技术的研发与生产的企业。创立初期,公司面临着资金紧张、技术壁垒等重重困难。然而,凭借创始团队对TMR技术的深刻理解和坚定信念,Crocus逐渐在行业中崭露头角。他们不断投入研发,优化产品性能,为后续的快速发展奠定了坚实的基础。

FUJI公司的发展小趣事

展望未来,Crocus将继续致力于TMR传感器技术的研发与创新。公司计划进一步拓展产品线,提升产品性能,满足更多领域的需求。同时,Crocus还将加强与产业链上下游企业的合作,共同推动整个电子行业的发展。

这五个故事展示了Crocus公司在电子行业中的发展历程和取得的成就。从创立初期的艰难探索到技术突破、产品升级、与Allegro的合并、市场拓展以及未来的持续创新,Crocus始终保持着积极进取的精神和不断创新的态度,为电子行业的发展做出了重要贡献。

Delta Electronics Manufacturing Corp公司的发展小趣事

随着公司实力的不断增强,Delta开始积极拓展全球市场。公司通过设立海外分支机构、参加国际展会等方式,不断拓宽销售渠道,提升品牌知名度。同时,Delta还与国际知名企业展开合作,共同开发新产品,扩大市场份额。如今,Delta的产品已远销全球多个国家和地区,成为国际电源市场的领军企业之一。

国产公司的发展小趣事
确保放大电路的增益不会过高,避免输入信号的幅度超过电路的处理能力。
格莱尔(GLE)公司的发展小趣事

格莱尔积极响应国家“双碳”政策,将绿色生产理念贯穿于企业发展的全过程。公司不仅实现了产品的无铅化生产,还注重节能减排和资源循环利用。通过优化生产工艺、引进环保设备等措施,格莱尔有效降低了生产过程中的能耗和排放,为企业的可持续发展奠定了坚实的基础。

Concurrent Logic公司的发展小趣事

Concurrent Logic公司的创立源于一群工程师对并行计算和逻辑设计的热爱。在公司成立初期,他们面临着巨大的挑战。由于资金有限,他们不得不在狭小的办公室内开始他们的创新之旅。初创团队的成员们夜以继日地工作,开发并优化他们的第一个产品——一款高性能的并行处理芯片。尽管条件艰苦,但他们的努力和热情为公司的未来奠定了坚实的基础。

问答坊 | AI 解惑

如何鉴别芯片真假,cecclab为你解答

怎么判定芯片的真伪? 概述: 通过化学腐蚀及物理显微观察、简单电性能等方法,来检验鉴定器件是否为原半导体厂商的器件。 检验的内容: A、货品外包装、湿度标示卡、器件日期批号等检查确认及记录 B、外观检测,器件的表面状况、印字标准、重 ...…

查看全部问答>

WINCE SDK平台改变后出现的问题!求助!

WINCE SDK平台改变后出现的问题: fatal error LNK1112: module machine type \'ARM\' conflicts with target machine type \'SH3\' 这要怎么解决啊???…

查看全部问答>

串口读取数据过滤

在用ddk做驱动时,在对 IRP_MJ_READ截获后 然后改变指向的buffer中的数据 最总发现用串口调试助手读取数据时并没有改变串口读到数据的内容, 请问应该怎样做能够从底层改变收到数据,最终使用串口调试助手时显示的是我修改的数据…

查看全部问答>

求驱动函数

菜鸟请高手指点 有三个设备A、B、C A是最底层,然后挂载B到A上面,也就是原来设备栈的顺序是 A--B (由底到顶) 现在我想在A,B的设备栈里面加入C,但是我不希望设备栈的顺序是 A--B--C(由底到顶) ,而是希望希望设备栈的顺序 是 A--C--B(由底到顶) ...…

查看全部问答>

SEFS安全透明加密内核

软件名称:SEFS安全透明加密内核 软件版本:1.0 建议分类:系统安全/文件加密 软件大小:635K 安装平台:Win2000/xp/2003 软件语言:简体中文/繁体中文/英文 软件授权:共享软件 软件主页:http://www.sefs.net 支持邮箱:admin@sefs.ne ...…

查看全部问答>

LPC2141的无刷直流电机控制系统设计

LPC2141的无刷直流电机控制系统设计 导读: 无刷直流电机是最常用的无刷电机。它易于驱动,速度可调且工作寿命长,适用于各类大小型工业应用,诸如小型马达的控制(如12 V直流无刷电机)。 关键字 LPC2141   ...…

查看全部问答>

vb上位机 51单片机下位机 编程

Visual Basic设计完成了上位机界面;同时利用51单片机作为下位机微处理器,采集无刷电机运行工作中的电压、电流和转速等基本参数,通过串行通讯口将数据上传至上位机系统中。上位机系统对下位机上传的数据加以分析计算,直观的绘制个参数的变化曲线 ...…

查看全部问答>

C2000/MSP430/电源的在线学习不能用了!!!!

C2000/MSP430/电源的在线学习不能用了!!!! 求关注,你们那里有这个现象没?…

查看全部问答>

电子工程师(开发)

电子专业本科以上学历,长期(至少五年以上)从事电子产品开发,能独立设计单片机软件、硬件,能独立完成产品研发,拥有丰富的开发和工艺经验。待遇从优。 五年以下工作经验者勿投 工资:3000-8000元。 福州名品电子科技有限公司现位于福州市科 ...…

查看全部问答>

xilinx FPGA 中的浮点运算的问题

请教各位兄弟:         项目中需要fpga zynq x702 的板子,要实现 y=atan((a-b)/(a+b)) 的公式运算,如何处理?        a b 分别为有符号整数,(a-b)/(a+b) 为小数    xi ...…

查看全部问答>