本站小编为你精心准备了激光测距雷达的数据采集系统参考范文,愿这些范文能点燃您思维的火花,激发您的写作灵感。欢迎深入阅读并收藏。
随着汽车在日常生活中的普及,汽车的安全性也得到了人们的重视,特别是交通事故对人们造成的影响,使得汽车安全技术发展极为迅速。大量数据显示,汽车交通事故中大多数是由于司机的反应不及所引起的,其中又以追尾事故的车辆相撞为主。欧洲的一项研究表明:驾驶员只要在碰撞危险的0.5s之前得到“预警”,就可以避免至少60%的追尾撞车事故,30%的迎面撞车事故,50%的路面相关事故;若有1s的“预警”时间,则可避免90%的事故发生[1]。奔驰公司也对各类交通事故的研究表明,若驾驶员能够提早1~2s意识到有事故危险并采取相应的正确措施,则绝大多数交通事故都是可以避免的[2]。因此,研究汽车主动防撞系统来降低交通事故的发生率,意义重大。而如何测量与采集车与目标之间的距离是汽车主动防撞系统的基础,也是关键技术之一。通过对汽车主动防撞系统的几种主流测距方法的性能比较,综合经济条件、实验室条件、所测距离以及各种测距方法的优缺点,选择激光雷达测距方法。
1激光测距雷达
激光雷达是激光技术与现代光电探测技术结合的先进探测设备。激光雷达由发射系统、接收系统和信息处理系统等组成。发射系统是各种形式的激光器,如二氧化碳激光器、掺钕钇铝石榴石激光器、半导体激光器及波长可调谐的固体激光器等;接收系统采用望远镜和各种形式的光电探测器,如光电倍增管、半导体光电二极管、雪崩光电二极管、红外和可见光多元探测器件等[3]。激光雷达用激光器作为发射光源,是采用光电探测技术手段的主动遥感设备。激光测量系统基本原理为由发射系统发送一激光信号,经目标反射后被接收系统收集,通过测量反射光的运行时间而确定目标的距离。至于目标的径向速度,可以由反射光的多普勒频移来确定,也可以测量2个或多个距离,并计算其变化率而求得速度[4]。
2数据采集系统及测试
2.1系统参数及数据简介采用德国SICK公司的LMS221型激光雷达,其数据格式和传统的串口一样,每字节10位,包含1位开始位、8位数据位和1位结束位。激光雷达的报文结构如表1所示。STX即报文头,占用8位的1个字节,以02H开头;Adress为目标地址,占用8位的1个字节,地址为用户地址,这些地址可以在各个测量设备的端口应用;Length即不包含校验和的序列字节长度,占用2个字节;Command/Re⁃sponse即发送命令或是回复命令,占用1个字节;Data为发送报文的数据部分,占用N*8个字节;Checksum为对整帧数据,从STX到状态标记字节的CRC校验,占用户2个字节。激光雷达的主要相关参数主要有测量距离、分辨率、角度分辨率、扫描频率和扫描角度等。LMS221型激光雷达的测量距离范围最大为80m,测量距离分辨率为10mm。其测量结果主要由2个字节的数据表示,高低字节值相加得到测量点的距离值,该结果乘以设定的分辨率就是目标到雷达的径向距离。
2.2主要技术及算法1)用MSComm控件实现微机串口的数据通讯MSComm控件是Microsoft提供的简化Win⁃dows下串行通信编程的ActiveX控件,“隐藏”了大部分串口通讯的底层运行过程和许多烦琐的处理过程,同时支持查询方法和事件驱动的机制,事件驱动通讯是交互方式处理串口事务的一种非常有效的方法,特别适合Windows程序的编写。在串口通讯过程中,当发送数据、收到数据或产生传输错误时,触发MSComm控件的OnComm事件,然后可以通过判断CommEvent属性值获得事件类型,再根据事件类型进行相应数据处理。因此用其实现微机串口的数据通讯可以用较少的程序代码轻松实现串口的访问和数据通讯。2)采用MSComm事件驱动方式采集数据MSComm串口控件数据接收方式有2种:a.在MSComm事件中接收数据。这种方式能充分MSComm控件的特性。OnComm事件还可以检查和处理通讯错误;可以通过检查CommEvent属性的值来查询事件和错误。对于不定长数据以及对数据进行处理比较复杂的情况,此法不是很方便。b.定时器轮循法采集数据。对于数据包方式收发数据以及不需实时响应情况,用轮循法更好些。实际上轮循法最大的好处在于集中处理数据而且不太占用CPU。轮循法要注意定时采集的时间片段大小,这里用二进制收发模式,使属性RThreshold,SThreshold为0,屏蔽OnComm事件。本实时数据采集处理程序采用MSComm事件驱动方式。MSComm_OnComm的事件处理程序只处理comEvReceive事件。3)串行数据的发送在串行接收字程序当中,首先去掉待发送数据中的空格,然后要确保待发送字节为0~F的十六进制字符。得到正确格式的发送字节后,将其送入发送缓冲区中(MSComm.Output),最后再送入LMS221。4)串行数据的接收设置MSComm控件的接收数据采用二进制,即InputMode=comInputModeBinary,但用Input属性读取数据时,不能直接赋值给Byte类型变量,只能通过先赋值给1个Variant类型变量,返回1个二进制数据的数组,再转换保存到Byte类型变量中。设置MSComm控件的接收中断触发值为1,即Rthreshold=1。以数据采集状态为例,当有1个串行字符进入接收缓冲区后,触发串行中断事件。在串行中断程序中,先取得接收缓冲区中的数据,判断是否为帧头的开始,若是再取得下一字节数据,判断是否为帧头的第2个数据,直到找到帧头为止。找到帧头后,其后数据便是测量数据与帧尾,找到测量数据并将其存入数据中,送入下一步处理[5]。5)接收数据扫描绘图将扫描得到的数据进行解析之后,得到的是极坐标的数据,将极坐标转换为直角坐标的公式为X=Rcosθ;Y=Rsinθ(1)式中:R为由解析数据得到的测量点离原点的距离;θ为此点的扫描角度。在程序设计过程中应使扫描距离与扫描角度的值相吻合,以0.5°的角度分辨率为例:定义一个二维数组,用于暂存测量点距离和对应的角度。将每一帧数据的第1个测量点数据赋给数组第1列,再将其对应的角度赋给数组第2列相应的位置,依次把一帧数据存于这个二维数组。再将此二维数组中的数据绘制出来[6]。6)扫描数据的回放单击上位机中“数据回放”按键,从PC机中加载保存的测量数据,再从保存有测量数据的txt文件中找到测量数据,然后调用扫描绘图函数将其绘制。当数据不够完整一帧的时候需要舍弃。扫描数据回放流程图见图1,回放显示结果见图2。
2.3系统设计流程及功能本文中设计了LMS的数据采集系统,系统能设置LMS的各项参数,控制LMS的工作,并能将采集到的数据通过RS232总线采集到计算机中并保存。系统运行界面如图3所示。1)该系统应能够灵活选择LMS的工作方式,设置LMS的各项参数。在数据采集软件中应能对系统波特率、工作串口、扫描角度范围、扫描角度分辨率等做出选择。2)对采集到的数据进行处理分析后,能够以扫描绘图的形式显示出来。上位机所采集到的数据不能够生动形象、直观地表现出被测物体的距离和形状等特性,而扫描绘图显示部分不但能够实时地对采集到的数据进行距离成像,而且可以直观地反映出被测物体的主特性。3)该系统应能将LMS的数据通过RS232接口采集到计算机中并保存。采集系统采集到的是一组组动态数据流,存储系统的目的是能以一种快速有效的格式把该数据流源源不断地存入存储单元中。而且要求这种存储格式可以方便今后有需要时,随时对采集到的数据进行调用、修改和处理。4)对采集的数据分析处理后有数据回放功能。动态采集并保存的数据反映出了扫描雷达对被测物体的扫描过程,通过对测量数据的回放可得到被测物体的运动轨迹、运动速度等有用的信息,方便用户利用这些信息做一些有价值的判断。
2.4系统测试在LMS221数据采集系统的调试方案中,针对系统特性,调试将分为模拟调试和上机调试2种方案。其中模拟调试是上机调试的基础,2种调试方案都将遵循LMS从上电后的硬件复位到数据停止采集的过程进行一一调试。模拟仿真调试过程中用到了串口调试常用软件,即串口调试助手软件和虚拟串口软件。上机调试将LMS221激光雷达通过RS-232串口接至上位机计算机当中,调整好24V直流电源,打开LMS221,在上位机中对LMS221进行控制与调试。
3小结
基于激光测距雷达的数据采集系统用VB6.0开发完成,界面操作简单,易于功能扩充,能灵活配置LMS工作方式,设置各项参数,同时能将数据通过RS232接口传至上位机中进行扫描绘图,并可进行保存。系统经过反复测试,使用效果良好。
作者:黄连丽 周奎 朱贤成 单位:湖北汽车工业学院 电气与信息工程学院