ADIS16300四自由度IMU在姿态测量中的应用_胡炼

  • 格式:pdf
  • 大小:929.81 KB
  • 文档页数:4

ADIS16300四自由度IMU在姿态测量中的应用胡炼,赵祚喜,吴晓鹏(华南农业大学南方农业机械与装备关键技术省部共建教育部重点实验室,广东广州510642)

摘要:为了实现复杂的运动与导航控制,需获取控制对象的空间姿态信息,设计了基于四自由度(4DoF)IMU惯性测量传感器和C8051F330单片机的姿态测量系统。介绍了ADIS16300惯性测量传感器的特点及应用,详细说明其数据读取和数据转换,并设计了它与C8051F330单片机组成的姿态测量系统的硬件电路和软件程序。最后将其与AHRS500GA-226航向参考系统进行对比分析,结果表明,ADIS16300能够准确反应空间姿态,其中航向角速率、X轴

加速度、Y轴加速度和Z轴加速度4个空间姿态的平均误差分别为0.469(°)/s、0.009m/s2、0.010m/s2、0.003m/s2

关键词:ADIS16300;四自由度;姿态测量;C8051F330;AHRS中图分类号:TP212文献标识码:A文章编号:1674-6236(2010)07-0103-044DoFIMUADIS16300anditsapplicationinattitudemeasurement

HULian,ZHAOZuo-xi,WUXiao-peng(KeyLaboratoryofKeyTechnologyonAgriculturalMachineandEquipmentofSouthChinaAgriculturalUniversity,MinistryofEducation,Guangzhou510642,China)

Abstract:Inordertoachievecomplexmotionandnavigationcontrol,itisimportanttoaccessspaceattitudeinformationofcontrolobject.Asystemwasdesignedwhichbasedona4DoFIMUADIS16300andC8051F330.Thecharacteristicandusingofthesensorweredescribed.Itsdataacquisitionandconversionwasdescribedindetail.Thehardwareandsoftwareofthesystemwasalsodesigned.TheattitudedataofADIS16300andAHRSwereanalyzedandcompared.TheresultshowsthattheADIS16300measuredthespaceattitudeaccurately.Theaverageerrorsofheadingangularrate,X-axisacceleration,Y-axisaccelerationandZ-axisaccelerationare0.469(°)/s,0.009m/s2,0.010m/s2and0.003m/s2,respectively.Keywords:ADIS16300;4DoF;attitudemeasurement;C8051F330;AHRS

收稿日期:2010-01-28稿件编号:201001087基金项目:国家“863”高技术研究发展计划资助项目(2006AA10A304、2006AA10Z255),教育部留学人员科研启动基金作者简介:胡炼(1984—),男,湖南长沙人,博士研究生。研究方向:导航与自动控制。

近年来,微机电系统(MEMS)技术广泛用于汽车的系统和稳定系统、医学系统、便携式照相机、运动装置和三维鼠标等领域。简单和小体积的惯性测量系统尤其受到关注,因此,基于MEMS的高精度、重量轻、小体积的姿态测量系统将得到广泛的应用。本文将介绍一种ADI公司的惯性传感器以及由其组成的微小姿态测量系统。1ADIS16300简介ADIS16300四自由度(4DoF)IMU是一个完整的惯性测量传感器[1],其内置单轴陀螺仪和三轴加速计,每个传感器都实现了iMEMS(MotionSignalProcessingTechnology)技术与信号调理技术的完美结合,可提供最优化的动态性能。工厂校准为每个传感器提供灵敏度、偏置、对准和线性加速度特性。因此,每个传感器都拥有自身的动态补偿,从而可以在4.75~5.25V的电源范围内进行精确的传感器测量。由于ADIS16300所有必要的运动检测与校准都是在工厂完成,大幅缩短了系统集成时间,并降低了测试设备成本。ADIS16300采用改进的SPI接口,可提供更快的数据收集与配置控制,用户实现就像供电及连接SPI(串行外设接口)端口一样简单。ADIS16300采用23mm×31mm×7.5mm封装,具有2000g额定耐冲强度,并提供了一个标准的连接接口,使其能方便水平或垂直安装。ADIS16300角速度检测的动态范围具有±75、±150以及±300(°)/s3种选项,三轴加速度的动态范围为±3g,可提供

350Hz带宽,高达1200次/秒的采样速率,并具有嵌入式与

可编程数字滤波功能。ADIS16300其价格仅为其他同级产品的1/10,可广泛应用于医疗仪器、机器人、惯性测量单元、导航控制等领域。

2ADIS16300结构功能

如图1所示,图(a)为ADIS16300的坐标系,其标出了每个惯性传感器(陀螺仪和加速度计)的测量朝向[2]。图(b)为

ADIS16300的标准接口引脚配置图,引脚16,17,18,19,

22,23,24是没有连接的预留引脚;引脚10,11,12为电源

VCC;引脚13,14,15为电源GND;引脚3,4,5,6分别为

电子设计工程ElectronicDesignEngineering第18卷Vol.18第7期No.72010年7月Jul.2010

-103-《电子设计工程》2010年第7期

表1输出数据格式SPI接口的时钟,数据输出,数据输入和器件选择引脚;引脚1,2,7,9分别为配置数据输入/输出引脚;引脚8为复位引脚;引脚21,22分别为12位的ADC输入和DAC输出引脚。ADIS16300功能模块框图如图2所示,温度传感器、MEMS角速度传感器和三轴MEMS加速度传感器分别感知环境温度、器件所受角速度和三维加速度,将信号调理并转换,经校准和数字信号处理后将数据存入输出寄存器供外部SPI主控器件读取。ADIS16300是一个智能的传感器,传感器上电后便自动以819.2次/秒采样速率进行惯性测量。每个采样周期结束后,传感器测量结果存放至输出寄存器,并且DIO1引脚向器件外产生一个脉冲,表示一个完整的新惯性测量数据已经采集准备好,可供外部SPI主控器件读取。3ADIS16300基本操作3.1ADIS16300的SPI连接ADIS16300是一个全数字接口的智能传感器系统,其SPI接口与各种微处理器SPI主控制器件接线如图3所示。微处理器作为SPI主器件各引脚功能分别为:SS为从器件选择;IRQ为中断请求;MOSI为主器件输出,从器件输入;MISO为器件输入,从器件输出;SCLK为连续时钟。ADIS16300对SPI时钟需满足:正常模式下SCLK不高于2MHz;数据迸发模式下SCLK不高于1MHz;在低电压模式下SCLK不高于300kHz。3.2传感器数据读取

通过ADIS16300的SPI接口可读取其传感器的供电电压,陀螺仪值,X,Y,Z轴加速度值,温度值,纵摇角,横摇角等数据。根据ADIS16300读取数据时序,读取每个寄存器的内容分为两步,即2个16位的时序:第1个16位时序向ADIS16300写入读取命令和寄存器地址;第2个16位时序将

对应寄存器内容发送至DOUT数据线上。例如:如果第1个16位时序DIN=0x0A00,那么第2个时序时,XACCL_OUT(X轴加速度值)将被发送到DOUT数据线上。数据迸发模式是连续读取ADIS16300数据的最好方式。在10个连续的时序周期内,9个常用寄存器数据可方便读到,它们分别是:SUPPLY_OUT(供电电压)、GYRO_OUT(陀螺仪)、XACCL_OUT(X轴加速度)、YACCL_OUT(Y轴加速度)、ZACCL_OUT(Z轴加速度)、TEMP_OUT(温度)、PITCH_OUT(俯仰角)、OLL_OUT(横滚角)和AUX_ADC(ADC转换结果)。数据迸发模式操作为:在连续10个时序周期内,DIN引脚对应的10个输入数据以0011111000000000(0x3E00)开始,之后9个数据可任选,同时在DOUT引脚上依次输出如上所述9个输出寄存器内的数据。3.3数据处理

表1说明了ADIS16300数据输出的格式和比例因子。从表1中可知,SUPPLY_OUT和AUX_ADC数据格式都为12位的二进制数据,各惯性传感器输出的数据格式均为14位2的补码,温度传感器输出数据格式和AUX_ADC数据格式都是12位2的补码,而横摇角和纵摇角数据格式为13位的2

的补码。也就是说0x0000是0LSB,0x0001是+1LSB,2n-1

(n=12,13,14)为-1LSB,LSB为满量程输入范围的最小单位。若为GYRO_OUT时,1LSB=0.05(°)/s。下式可用来将输出数据转换成浮点形式的姿态数据。

OUTi=DATA_OUTi×Scale,DATA_OUTi≤2n-1

(2n-DATA_OUTi)×(-Scale),DATA_OUTi>2n-1≤

式中,DATA_OUTi为表1中输出数据,OUTi为转换后浮点形式的姿态数据,Scale为表1中最小单位,n为表1中数据位数。

例如:GYRO_OUT=0x3B4A,由于0x3B4A>214-1=0×2000,

则角速率Rate=(0x4000-0x3B4A)×(-0.05)(°)/s=1206×(-0.05)

图1ADIS16300坐标定义与引脚配置图2ADIS16300功能模块框图图3SPI连接示意图输出数据数据位数格式最小单位SUPPLY_OUT12二进制,5V=0x08142.42mVGYRO_OUT142的补码0.05(°)/sXACCL_OUT142的补码0.6mgYACCL_OUT142的补码0.6mgZACCL_OUT142的补码0.6mgTEMP_OUT122的补码,25℃=0x00000.14℃ROLL_OUT132的补码0.044°PITHC_OUT132的补码0.044°AUX_ADC12二进制,1V=0x04D90.81mV

-104-