0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

基于DSP和CAN总线实现移动机器人超声测距系统的软硬件设计

电子设计 来源:郭婷 作者:电子设计 2019-10-18 07:49 次阅读

介绍了自行设计的移动机器人CASIA-I中超声测距系统的软、硬件,以及超声测距数据与上位机通信的设计和实现过程。该系统以DSP—TMS320LP2407A作为核心处理器,以CAN总线为基础,实现了上述功能。经实验验证,测距范围为0.45m~3.5m,系统测距精度在0.7%以内,可以满足移动机器人室内导航的要求。

移动机器人要实现在未知和不确定环境下运行,必须具备自动导航和避障功能。在移动机器人的导航系统中,传感器起着举足轻重的作用。视觉、激光、红外、超声传感器等都在实际系统中得到了广泛的应用。其中,超声波传感器以其信息处理简单、速度快和价格低,被广泛用作移动机器人的测距传感器,以实现避障、定位、环境建模和导航等功能。

传统的轮式移动机器人超声数据采集系统大多采用单片机作为微处理器,以此来测量移动机器人到障碍物的距离,并将距离通过串口传输到上位机。采用这种设计,系统制作简单、成本低。但是,对于多超声传感器测距系统,如果仍采用单片机来完成测距任务,由于系统中超声传感器数量较多,为保证系统的实时性,就需要多个单片机才能完成数据采集,这使得采集系统不可避免地存在设计复杂和一些算法难以实现等缺陷。随着微电子工艺的发展,数字信号处理器(DSP)的应用领域已从通信行业拓展到工业控制领域。TI公司推出的TMS320LF2407A是专门针对控制领域应用的DSP,它具有高速信号处理和数字控制功能所必需

的体系结构,其指令执行速度高达40MIPS,且大部分的指令都可以在一个25ns的单周期内执行完毕。另外,它还具有非常强大的片内I/0端口和其它外围设备,可以简化外围电路设计,降低系统成本。正是基于这种思想,中国科学院自动化研究所在国家“863”计划的支持下,利用多DSP和嵌入式PCI04自行设计和研制了轮式移动机器人CASIA-I。本文着重介绍其超声数据采集系统,同时对通过CAN总线完成的超声数据与上位机通讯的原理和设计过程进行分析说明,并给出实验结果。

1 超声测距原理

超声测距的原理较简单,一般采用渡越时间法,即:

D=ct/2 (1)

其中D为移动机器人与被测障碍物之间的距离,c为声波在介质中的传输速率。声波在空气中传输速率为:

基于DSP和CAN总线实现移动机器人超声测距系统的软硬件设计

其中,T为绝对温度,c。=331.4m/s。在不要求测距精度很高的情况下,一般可以认为c为常数。渡越时间法主要是测量超声发射到超声返回的时间间隔t,即“渡越时间”,然后根据式(1)计算距离。

2 系统硬件设计

在距地面高度为45cm、相隔为22.5°的同一环上均匀分布着16个Polaroid生产的超声传感器,其编号为1#~16#(逆时针安排),超声传感器波束角为30°,超声传感器的最小作用距离为0.45m。超声数据采集板主要有两大模块:一是16路超声传感器的超声波发射和回波的接收模块,二是与上位机(机器人中央控制器)的CAN总线通讯模块。其硬件结构见图1。

基于DSP和CAN总线实现移动机器人超声测距系统的软硬件设计

TMS320LF2407A向I/0端口发出控制信号,启动内部定时器进行计时。此控制信号经功率放大后作为超声传感驱动电路的启动信号(1NIT),超声传感器产生的、遇到障碍物时返回的高频振荡信号经放大(为弥补传播过程中信号的衰减)使超声传感驱动电路的ECHO端产生高电平脉冲。ECHO电平变化经过门电路后引起TMS320LF2407A外部中断,在中断程序内获取定时器的计数值,根据式(1)计算距离;否则,认为传感器前方探测范围内无障碍物。

因为超声传感器之间的安装位置相差22.5°,而超声传感器的波束角为30°,如果超声波同时发射,必然会有干扰。如果采用轮循方式,即一个接一个地发射超声波,虽然可以消除串扰回波的影响,但是16个超声传感器轮循一次周期较长,降低了采集频率。为了在不降低采集频率的同时消除超声的相互干扰,本系统将16个超声传感器分成A(1#、3#、5#、7#、9#、11#、13#、15#)和B(2#、4#、6#、8#、10#、12#、14#、16#)两组,因为同一组内的两个超声传感器安装位置相差45°,通过计算可以知道,这种情况下超声传感器同时工作不会产生干扰,因而每一组里的超声传感器同时工作,组与组之间则采用轮循方式工作。这样既可以达到很高的采集频率,同时也满足了系统的实时性要求。每组8个超声传感器的ECHO端分别连接到一门电路,然后通过门电路连接DSP的XINTl和XINT2端。XINTl/2引脚电平发生跳变时会产生外部中断,通过I/0口可以知道是哪个或哪几个传感器引起中断。

TMS320LF2407A内部集成了CAN控制器,通过它可以方便地构成CAN控制局域网络。TMS320LF2407A的CANTX和CANRX接口与CAN收发器SN65HVD230相连,通过SN65HVD230连接CAN总线。SN65HVD230是TI公司生产的专门针对240X系列DSP内CAN控制器与物理总线

的接口。它的供电电压和TMS320LF2407A一样,仅为3.3V。由于CAN总线的数据通信具有突出的可靠性、实时性和灵活性,最高传输速率可达到1Mbps。超声采集板的数据能够快速、可靠地传给中央控制器。

3 软件设计

系统软件主要由两部分构成,即超声数据采集与处理模块、CAN总线通讯模块。

3.1 多路超声传感器数据采集模块

超声传感器被分为两组,两组循环交替工作。软件设计上采用两个定时器依次工作,分别对两组传感器进行计时。选择定时器的周期比超声传感器探测最大距离所需的渡越时间稍长。在每个定时器周期开始时,触发一组超声传感器同时开始工作。在定时器周期内,每个回波返回,都会触发一次外部中断(XINTl或XINT2中断),在外部中断处理程序内,将超声波返回时间进行纪录,并将相应的超声传感器关闭。外部中断处理程序非常简短,本系统只用了不到20条指令,并且TMS320LF2407A指令执行速度很快,因而即使因进入外部中断处理程序而延误了对后来回波的处理,但这种延误的时间根据计算不大于0.5μs,由此引入的距离误差根据(1)式计算小于83.5×10-6m。可见误差非常小,可以忽略不计。当定时器中断时,对于距离大于最大超声探测范围的,没有相应的时间记录,给它们加上超出测距范围的标志。其它的时间数据都有记录,根据(1)式计算距离,然后启动下一个定时器工作,并触发下一组超声传感器。本文的超声传感器的最大探测距离为3.5m,因而超声波探测的最长时间为20.58ms。所以每个定时器的周期选为20.6ms。图2只画出了一组超声传感器的处理框图,另一组与此相同,不再赘述。

基于DSP和CAN总线实现移动机器人超声测距系统的软硬件设计

由于受环境温度、湿度的影响,超声传感器的测量值与实际值总有一些误差,表1列出了本超声测距系统测量值与对应的实际值。采用最小二乘法对表1的数据进行拟合,结果为:

y=O.9986x+0.2111

式中,x为测量值,y为实际值。

基于DSP和CAN总线实现移动机器人超声测距系统的软硬件设计

3.2 基于CAN总线的数据通信

超声数据采集板发送测距数据以中断的方式完成。TMS320LF2407A有专门的mailbox中断,用于响应发送/接收中断。每个超声传感器的测距值在DSP内用两个字节存储,而CAN总线传输标准要求每个数据帧最多只能传输8个字节的数据。本系统共有16个超声传感器,共有32个字节存储所有测距值。CAN总线传输所有测距值需要4个数据帧才能传送完。本系统的通讯过程为:中央控制器发送远程请求,超声数据采集板进入接收中断,在中断服务程序内,采用查询方式发送4帧数据,每帧数据包含4个超声传感器的测距值。本系统采用的波特率是500kbps。TMS320LF2407A用mailbox0接收中央控制器的远程请求帧,用mailbox2发送测距数据值。图3是超声数据采集板的发送数据中断服务程序框图。其中,TA2是对应mailbox2发送数据帧完成的标志位,RMP0是对应mailbox0接收数据帧的标志位。关于TMS320LF2407A的CAN模块的具体说明,在此不作具体介绍。

基于DSP和CAN总线实现移动机器人超声测距系统的软硬件设计

中央控制器接收子程序由VC++编写。当机器人需要新的测距值时,即调用此子程序。程序框图见图4。接收程序收到一帧数据后,判断数据是否有错,若有错,则向采集板发送命令,要求重发此帧数据;若正确,发送确认命令,要求采集板发送下一组数据,直到所有的超声测距数据都接收完。

基于DSP和CAN总线实现移动机器人超声测距系统的软硬件设计

本文介绍的超声数据采集系统采用TMS320LF2407A为核心处理器,可以达到很高的采集速率和精度。通过CAN总线通讯,可以将测距值以很高的波特率可靠地发送给机器人中央控制器。此系统已经在自行设计的智能移动机器人CASIA-I上得到了实际应用。实验验证了硬件系统的可靠性和算法的有效性。


声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 处理器
    +关注

    关注

    68

    文章

    19156

    浏览量

    229071
  • dsp
    dsp
    +关注

    关注

    552

    文章

    7962

    浏览量

    348218
  • 机器人
    +关注

    关注

    210

    文章

    28189

    浏览量

    206454
收藏 人收藏

    评论

    相关推荐

    基于超声波传感器的自主移动机器人的探测系统

    实现的。视觉、红外、激光、超声波等传感器都在移动机器人中得到实际应用。超声波传感器以其性价比高、硬件实现
    发表于 01-19 13:45

    Labview My RIO 移动机器人

    初次使用 NI MyRIO控制器开发四轮全向移动机器人,由四个全向轮和直流电机与增量式编码器和NI 9001控制器组成,安装了红外距离和光电传感器。驱动板由官方提供的H桥驱动板。NI 9001由
    发表于 08-21 12:20

    机器人、协作机器人移动机器人,你分的清楚吗

    我觉得现在是时候讨论一些更有趣的话题,今天的话题是介绍工业机器人、协作机器人移动机器人。我想每个人都知道机器人是什么。机器人是可怕的大型
    发表于 10-30 11:33

    基于超声波传感器的自主移动机器人探测系统

      摘要:针对自主移动机器人沿墙导航过程,设计一种收发一体式超声波传感器与步进电机组成的探测系统。介绍此系统的结构和软硬件设计。实验总结
    发表于 11-02 16:04

    基于FPGA怎么实现三轮全方位移动机器人运动控制系统

    研究了一种用FPGA技术实现三轮全方位移动机器人运动控制系统的方法,与双DSP结构,DSP+CPLD结构,以及
    发表于 10-22 07:35

    基于LPC2119的自主式移动机器人设计方案

    了一种轮式移动机器人的设计方案。该机器人系统应用超声传感器、光敏传感器、碰撞传感器采集外部环境信息,采用PTR2000实现
    发表于 05-11 06:39

    家庭移动机器人避障常用传感器及相关技术

    移动机器人机器人的重要研究领域,人们很早就开始移动机器人的研究。世界上第一台真正意义上的移动机器人是斯坦福研究院(SRI)的人工智能中心于1966年到1972年研制的,名叫Shake
    发表于 05-14 08:15

    如何实现移动机器人的设计?

    管理移动机器人的导航算法的实现和多任务的执行。实验结果表明:该系统能够实现避障和导航功能并能顺利达到目的地。  
    发表于 11-23 15:08

    请问怎么设计一种室外移动机器人组合导航定位系统

    怎么设计一种室外移动机器人组合导航定位系统?如何实现室外移动机器人组合导航定位系统硬件设计?如
    发表于 04-19 10:50

    什么是移动机器人软硬件系统问题

    的实践经验,来系统的梳理一下什么是移动机器人软硬件系统问题。文中涉及到的开源项目网站地址如下:开源项目网站Handsfree
    发表于 08-06 06:13

    移动机器人的三种主要运动系统

    构建机器人 | 制作移动机器人 | 构建第一个机器人 | 机器人电子 | 机器人控制器 | 机器人
    发表于 09-01 08:12

    详解移动机器人软硬件系统问题

    什么是移动机器人软硬件系统问题?移动机器人软硬件系统有哪些问题呢?
    发表于 11-11 06:07

    【科普】干货!带你从0了解移动机器人(三) ——自主导航系统及上位机软件设计与实现

    发展。在前两篇文章中,我们介绍了移动机器人的基本概念和硬件组成。本文继续深入探讨移动机器人的自主导航系统及上位机软件****设计与实现
    发表于 06-28 09:36

    移动机器人超声测距和避障系统实现

    本文介绍了移动机器人超声测距和避障系统的设计方案,以及系统的软、硬件组成。该
    发表于 09-28 13:56 144次下载
    <b class='flag-5'>移动机器人</b><b class='flag-5'>超声</b>波<b class='flag-5'>测距</b>和避障<b class='flag-5'>系统</b>的<b class='flag-5'>实现</b>

    基于DSP和USB总线的开放式移动机器人控制系统

    一种基于DSP与USB总线的新型开放式移动机器人控制系统,其机器人以PC为上位计算机,用一块DSP
    发表于 04-26 16:35 20次下载
    基于<b class='flag-5'>DSP</b>和USB<b class='flag-5'>总线</b>的开放式<b class='flag-5'>移动机器人</b>控制<b class='flag-5'>系统</b>