tag 标签: 惯性导航

相关帖子
相关博文
  • 热度 13
    2016-1-10 08:45
    934 次阅读|
    0 个评论
    轮式遥控机器人已经应用在地震、火灾等一些危险的室内区域进行救援和探测,或执行反恐任务。由于在这些特殊的环境下存在诸多的未知因素,且室内无GPS信号,人们不得不依靠先进的科学技术和仪器来获取遥控机器人小车的导航信息。但是目前轮式运动小车主要采用的导航传感方式有视觉、光电、超声、里程计等,比较容易被外界环境干扰,不能满足广大市场的需求。 但是惯性导航装备安置在运载体内,工作时不依赖外界信息,也不向外界辐射能量,不容易遭到滋扰,是一种自立式导航系统,优于上述的导航传感例子。 并且近年来MEMS(微机电系统)结构的惯性传感器随半导体技术的进步得到了迅速发展,使其低成本而高精度的期望得到了实现。MEMS惯性传感器组成的惯性导航装置结合轮式小车的里程计,能够产生导航和定位信息,减少对外部环境的倚赖,实现在外部环境条件(例如光照、墙壁材质)未知情况下的导航。 由于是在室内区域进行勘测搜索,小车的运行特点与一般的飞机、船、车不同,它的运动轨迹变化较快,且在运动时存在一定的振动,因此常用的卡尔曼滤波算法需要进一步改进才能应用。惯性传感器采集数据量大,且进行惯性导航时需要大量的浮点运算,因此本项目采用了具有强大数字信号处理功能的DSP 28335芯片和PC控制终端,实现惯性传感器的数据采集、时序逻辑控制、与驱动系统通信和地图显示功能, 具有体积小、成本低、功耗低等优点。 综上所述,本文将选用低成本的MEMS器件,结合DSP和卡尔曼滤波算法,能实现较高精度的轮式小车导航和定位。 1 系统体系架构 本文的目标是研制一个轮式小车惯性导航系统,能够通过wifi实现PC终端和手持终端控制轮式小车行动以及小车所采集数据的传输。 搭建如下图1所示的系统,TI公司的浮点DSP TMS320F28335芯片作为主数字信号处理器,采集各MEMS惯性传感器的信号并处理,处理结果通过WIFI将数据输送到PC终端;PC终端负责显示定位结果和地图显示,并向小车驱动系统发送控制命令,同时接收驱动系统反馈的里程计信息。 图1 总体架构 【分页导航】 第1页: 轮式小车惯性导航系统体系架构 第2页: 核心板设计:电源电路/JTAG下载口电路 第3页: 小车驱动板设计 第4页: 传感器器件程序设计 第5页: 卡尔曼滤波算法应用 第6页: 航向角数据测试 2. 硬件计划及详细实现 硬件设计上,主要分为核心板和驱动板。核心板包括DSP最小系统,JTAG下载口设计,系统电源供给电路和MEMS传感器,WIFI模块等。而驱动板主要设计的内容是直流大电机的驱动模块。 2.1 核心板设计 2.1.1 电源电路设计 TMS320F28335工作时需要的电压不同:内核电压(1.9 V)与I/O供电电压(3.3 V),对于电源比较敏感,所以电源部分利用两路输出电源器件TPS767D318来实现,如图2所示。同时根据仿真实验和实际焊接电路的测试,电源模块输出端最好使用一些容值不小于10uf的保护电容,且不能使用贴片电容,否则工作不稳定。 图2 DSP电源设计 在电源设计中,考虑到TPS767D318芯片可以产生复位信号,所以在核心板上并没有再另外为DSP设计复位电路。 2.1.2 JTAG下载口电路设计 图3为JTAG电路,按照仿真器的通信引脚选择14脚的仿真接口,同时要注意EMU0和EMUl信号必须通过上拉电阻连接至电源,其中上拉电阻为10kΩ。 图3 JTAG电路设计 【分页导航】 第1页: 轮式小车惯性导航系统体系架构 第2页: 核心板设计:电源电路/JTAG下载口电路 第3页: 小车驱动板设计 第4页: 传感器器件程序设计 第5页: 卡尔曼滤波算法应用 第6页: 航向角数据测试 2.2 小车驱动板设计 在本装置中,我们采用BTS7960作为直流电机驱动芯片。BTS7960是集成的大电流半桥驱动,其内部包含了一片NMOS、一片PMOS和一片半桥门集驱动,在IOUT = 9 A,VS= 13.5V,Tj = 25 °C 时,其内阻抗为17mΩ。装置采用了两个直流大电机,如图4所示为驱动单个电机前后转向的电路图。 图4 驱动模块电路设计 在电机驱动这里,需要注意一个细节,就是电机在转动过程中有可能会产生反向的电动势,使电流一瞬间过大,导致单片机复位甚至有可能烧坏芯片。因此在设计过程中,可以考虑在单片机PWM输入到电机驱动接口的地方添加光耦器件隔离或者二极管。如图5所示,驱动板选择了tlp521-4这种光耦器件设计隔离电路,减小电压的干扰,减化电路的设计,同时也把四路PWM的I/O电平从3.3上拉到5V。 图5 TLP521隔离电路 【分页导航】 第1页: 轮式小车惯性导航系统体系架构 第2页: 核心板设计:电源电路/JTAG下载口电路 第3页: 小车驱动板设计 第4页: 传感器器件程序设计 第5页: 卡尔曼滤波算法应用 第6页: 航向角数据测试 3.软件设计及具体实现 在软件程序设计上,主要应用九自由度惯性导航传感器(ITG3200+ADXL345+HMC5883L ),结合DSP和卡尔曼滤波算法,能实现较高精度的轮式小车导航和定位。 3.1传感器器件程序设计 九自由度惯性导航传感器在许多领域都得到了实际的应用,如无人机,救灾机器人等。它包括ITG3200三轴陀螺仪,HMC5883L三轴磁感应传感器和ADXL345三轴加速度传感器,所以可以得到加速度,角速度以及角度实时的数值。 ITG3200是MEMS三轴陀螺仪,可以测量小车的旋转角速度,同时也可以通过积分把角速度转换为小车的倾角。程序中,ITG3200的初始化如下: unsigned char Init_ITG3200(void) { unsigned char Return1,Return2,Return3,Return4; unsigned char Data; Data = 0x00; Return1 = IIC_WriteData(0xD0, 0x3E, Data, 1); Data = 0x07; Return2 = IIC_WriteData(0xD0, 0x15, Data, 1); Data = 0x1E; Return3 = IIC_WriteData(0xD0, 0x16, Data, 1); Data = 0x00; Return4 = IIC_WriteData(0xD0, 0x17, Data, 1); if(Return1 Return2 Return3 Return4) return 1; else return 0; } 其具体功能实现可以在主程序中通过SCI读取其值。所读取的值为角速度,不会受到小车运动的影响,因此该信号噪声很小,同时可以由它积分得到小车倾斜角度,可以平滑信号使其更加稳定。 由于装置是要在不同的室内区域进行勘测搜索,再加上未知的环境,所以角速度信号可能存在一定的偏差,会导致积分后的角度出现大的误差,无法得到实际的数值。为了消除这个由于偏差而产生的累积误差,装置上加上ADXL345三轴加速度传感器对于获得的角度信息进行校正。ADXL345初始化如下: unsigned char Init_ADXL345(void) { unsigned char Return1,Return2,Return3,Return4; unsigned char Data; Data = 0x0b; byReturn1 = IIC_WriteData(0xA6, 0x31, Data, 1); Data = 0x08; Return2 = IIC_WriteData(0xA6, 0x2c, Data, 1); Data = 0x08; Return3 = IIC_WriteData(0xA6, 0x2d, Data, 1); Data = 0x80; Return4 = IIC_WriteData(0xA6, 0x2e, Data, 1); Data = 0x00; Return4 = IIC_WriteData(0xA6, 0x1e, Data, 1); Data = 0x00; Return4 = IIC_WriteData(0xA6, 0x1f, Data, 1); Data = 0x05; Return4 = IIC_WriteData(0xA6, 0x20, Data, 1); if(Return1Return2Return3Return4) return 1; else return 0; } 通过ADXL345所得到的角度,和陀螺仪积分后的角度进行对比,然后使用它们的偏差改变陀螺仪的输出,从而积分后的角度慢慢校正到实际的角度,如图5所示。 图5 通过加速度传感器校正角度 HMC5883L三轴磁感应传感器的作用相当于罗盘,在水平情况下,无需借助其他传感器便可以计算出航向。其初始化如下: unsigned char Init_HMC5883(void) { unsigned char Return1; unsigned char Data; // Bit4 Bit3 等于11时,选择2000度/秒的量程 Data = 0x00; Return1 = IIC_WriteData(0x3C, 0x02, Data, 1); if(Return1) return 1; else return 0; } 由于装置是要在不同环境下进行工作的,所以其并不能保持时刻水平,就需要加速度传感器来纠正由于倾斜引起的误差。 【分页导航】 第1页: 轮式小车惯性导航系统体系架构 第2页: 核心板设计:电源电路/JTAG下载口电路 第3页: 小车驱动板设计 第4页: 传感器器件程序设计 第5页: 卡尔曼滤波算法应用 第6页: 航向角数据测试 3.2 卡尔曼滤波算法应用 于是装置在室内区域进行勘测搜索,小车的运行特点与一般的飞机、船、车不同,它的运动变化快,轨迹不定,而且要适用于不同的环境下工作,因此常用的卡尔曼滤波算法需要进一步改进才能应用。卡尔曼过滤是用前一个估计值和最近一个观察数据,来估计信号的当前值,它是用状态方程和递推的方法进行估计的,它的解是以估计值形式给出的。其运用在加速度器和陀螺仪上的卡尔曼滤波程序如下: // float gyro_m:陀螺仪测得的量(角速度) //float incAngle:加速度器测得的角度值 #define dt 0.0015//卡尔曼滤波采样频率 #define R_angle 0.71 //测量噪声的协方差(即是测量偏差) #define Q_angle 0.0001//过程噪声的协方差 #define Q_gyro 0.0003 //过程噪声的协方差 过程噪声协方差为一个一行两列矩阵 float kalmanUpdate(const float gyro_m,const float incAngle { float K0;//含有卡尔曼增益的另外一个函数,用于计算最优估计值 float K1;//含有卡尔曼增益的函数,用于计算最优估计值的偏差 float Y0; float Y1; float Rate;//去除偏差后的角速度 float Pdot ;//过程协方差矩阵的微分矩阵 float angle_err;//角度偏量 float E;//计算的过程量 static float angle = 0; //下时刻最优估计值角度 static float q_bias = 0; //陀螺仪的偏差 static float n = {{ 1, 0 }, { 0, 1 }};//过程协方差矩阵 Rate = gyro_m - q_bias; //计算过程协方差矩阵的微分矩阵 Pdot = Q_angle - P - P ; Pdot = - n ; Pdot = - n ; Pdot = Q_gyro; angle += Rate * dt; //角速度积分得出角度 n += Pdot * dt; //计算协方差矩阵 n += Pdot * dt; n += Pdot * dt; n += Pdot * dt; angle_err = incAngle - angle; //计算角度偏差 E = R_angle + P ; K0 = n / E; //计算卡尔曼增益 K1 = n / E; Y0 = n ; Y1 = n ; n -= K0 * Y0; //跟新协方差矩阵 n -= K0 * Y1; n -= K1 * Y0; n -= K1 * Y1; angle += K0 * angle_err; //给出最优估计值 q_bias += K1 * angle_err;//跟新最优估计值偏差 return angle; } 通过滤波时数据平滑将加速度输出电压附近产生的波动噪声滤掉。 【分页导航】 第1页: 轮式小车惯性导航系统体系架构 第2页: 核心板设计:电源电路/JTAG下载口电路 第3页: 小车驱动板设计 第4页: 传感器器件程序设计 第5页: 卡尔曼滤波算法应用 第6页: 航向角数据测试 4 实验测试与结果分析 在装置硬件和软件搭建完成后,通过原先设计好的PC端软件和平板安卓软件,搜索到Wi-Fi,自动连入局域网。在实验室测试环境下,小车可以自由行驶并反馈回实时的数据并进行测试比较。 4.1 航向角数据测试 HMC5883L采集到的航向角存在随机波动性,因此可以对于进行多次采集平均值滤波,以提高系统输出的数据稳定性。如图6为一定时间内滤波前和滤波后航向角的数据。 图6 航行角数据采集和对比图 上图的数据对比可以得知,航向所采集到的数据进行平均值采样滤波优化后误差大大减小,比原有数据稳定许多,说明滤波效果明显。 4.2 角度数据测试 在角度获得的数据,可以使用ADXL345和ITG3200所得的数据,转换为横滚角和俯仰角。再结合卡尔曼滤波对数据进行滤波以达到更准确的实验结果。如下表1为滤波1前角度的数据及误差,表2为滤波后角度的数据及误差。 表1 滤波前角度的数据及误差 表2 滤波后角度的数据及误差 由表1和表2的测试数据可知,经过滤波后,最大的误差从3.8降到-0.4,而且大体上都在1°内,大大提高了角度的输出精度。 5 结束语 本文所设计的轮式小车室内惯性导航装置,分析了该软件设计的各个模块的具体实现方法。经实验结果表明,该设计能够实时监测到移动机器人的位置信息,并对其能实现有效控制。同时其低成本、高精度、易操作的特点将进一步应用于例如巡逻机器人、救援机器人等专业领域,必将吸引国内外众多的投资商对其投资并进行更进一步的研发与应用,使其有着十分广大的创新创业前景、应用前景和市场前景。 【分页导航】 第1页: 轮式小车惯性导航系统体系架构 第2页: 核心板设计:电源电路/JTAG下载口电路 第3页: 小车驱动板设计 第4页: 传感器器件程序设计 第5页: 卡尔曼滤波算法应用 第6页: 航向角数据测试
  • 热度 24
    2015-11-20 23:25
    1289 次阅读|
    0 个评论
    轮式遥控机器人已经应用在地震、火灾等一些危险的室内区域进行救援和探测,或执行反恐任务。由于在这些特殊的环境下存在诸多的未知因素,且室内无GPS信号,人们不得不依靠先进的科学技术和仪器来获取遥控机器人小车的导航信息。但是目前轮式运动小车主要采用的导航传感方式有视觉、光电、超声、里程计等,比较容易被外界环境干扰,不能满足广大市场的需求。 但是惯性导航装备安置在运载体内,工作时不依赖外界信息,也不向外界辐射能量,不容易遭到滋扰,是一种自立式导航系统,优于上述的导航传感例子。 并且近年来MEMS(微机电系统)结构的惯性传感器随半导体技术的进步得到了迅速发展,使其低成本而高精度的期望得到了实现。MEMS惯性传感器组成的惯性导航装置结合轮式小车的里程计,能够产生导航和定位信息,减少对外部环境的倚赖,实现在外部环境条件(例如光照、墙壁材质)未知情况下的导航。 由于是在室内区域进行勘测搜索,小车的运行特点与一般的飞机、船、车不同,它的运动轨迹变化较快,且在运动时存在一定的振动,因此常用的卡尔曼滤波算法需要进一步改进才能应用。惯性传感器采集数据量大,且进行惯性导航时需要大量的浮点运算,因此本项目采用了具有强大数字信号处理功能的DSP 28335芯片和PC控制终端,实现惯性传感器的数据采集、时序逻辑控制、与驱动系统通信和地图显示功能, 具有体积小、成本低、功耗低等优点。 综上所述,本文将选用低成本的MEMS器件,结合DSP和卡尔曼滤波算法,能实现较高精度的轮式小车导航和定位。 1 系统体系架构 本文的目标是研制一个轮式小车惯性导航系统,能够通过wifi实现PC终端和手持终端控制轮式小车行动以及小车所采集数据的传输。 搭建如下图1所示的系统,TI公司的浮点DSP TMS320F28335芯片作为主数字信号处理器,采集各MEMS惯性传感器的信号并处理,处理结果通过WIFI将数据输送到PC终端;PC终端负责显示定位结果和地图显示,并向小车驱动系统发送控制命令,同时接收驱动系统反馈的里程计信息。 图1 总体架构 【分页导航】 第1页: 轮式小车惯性导航系统体系架构 第2页: 核心板设计:电源电路/JTAG下载口电路 第3页: 小车驱动板设计 第4页: 传感器器件程序设计 第5页: 卡尔曼滤波算法应用 第6页: 航向角数据测试 2. 硬件计划及详细实现 硬件设计上,主要分为核心板和驱动板。核心板包括DSP最小系统,JTAG下载口设计,系统电源供给电路和MEMS传感器,WIFI模块等。而驱动板主要设计的内容是直流大电机的驱动模块。 2.1 核心板设计 2.1.1 电源电路设计 TMS320F28335工作时需要的电压不同:内核电压(1.9 V)与I/O供电电压(3.3 V),对于电源比较敏感,所以电源部分利用两路输出电源器件TPS767D318来实现,如图2所示。同时根据仿真实验和实际焊接电路的测试,电源模块输出端最好使用一些容值不小于10uf的保护电容,且不能使用贴片电容,否则工作不稳定。 图2 DSP电源设计 在电源设计中,考虑到TPS767D318芯片可以产生复位信号,所以在核心板上并没有再另外为DSP设计复位电路。 2.1.2 JTAG下载口电路设计 图3为JTAG电路,按照仿真器的通信引脚选择14脚的仿真接口,同时要注意EMU0和EMUl信号必须通过上拉电阻连接至电源,其中上拉电阻为10kΩ。 图3 JTAG电路设计 【分页导航】 第1页: 轮式小车惯性导航系统体系架构 第2页: 核心板设计:电源电路/JTAG下载口电路 第3页: 小车驱动板设计 第4页: 传感器器件程序设计 第5页: 卡尔曼滤波算法应用 第6页: 航向角数据测试 2.2 小车驱动板设计 在本装置中,我们采用BTS7960作为直流电机驱动芯片。BTS7960是集成的大电流半桥驱动,其内部包含了一片NMOS、一片PMOS和一片半桥门集驱动,在IOUT = 9 A,VS= 13.5V,Tj = 25 °C 时,其内阻抗为17mΩ。装置采用了两个直流大电机,如图4所示为驱动单个电机前后转向的电路图。 图4 驱动模块电路设计 在电机驱动这里,需要注意一个细节,就是电机在转动过程中有可能会产生反向的电动势,使电流一瞬间过大,导致单片机复位甚至有可能烧坏芯片。因此在设计过程中,可以考虑在单片机PWM输入到电机驱动接口的地方添加光耦器件隔离或者二极管。如图5所示,驱动板选择了tlp521-4这种光耦器件设计隔离电路,减小电压的干扰,减化电路的设计,同时也把四路PWM的I/O电平从3.3上拉到5V。 图5 TLP521隔离电路 【分页导航】 第1页: 轮式小车惯性导航系统体系架构 第2页: 核心板设计:电源电路/JTAG下载口电路 第3页: 小车驱动板设计 第4页: 传感器器件程序设计 第5页: 卡尔曼滤波算法应用 第6页: 航向角数据测试 3.软件设计及具体实现 在软件程序设计上,主要应用九自由度惯性导航传感器(ITG3200+ADXL345+HMC5883L ),结合DSP和卡尔曼滤波算法,能实现较高精度的轮式小车导航和定位。 3.1传感器器件程序设计 九自由度惯性导航传感器在许多领域都得到了实际的应用,如无人机,救灾机器人等。它包括ITG3200三轴陀螺仪,HMC5883L三轴磁感应传感器和ADXL345三轴加速度传感器,所以可以得到加速度,角速度以及角度实时的数值。 ITG3200是MEMS三轴陀螺仪,可以测量小车的旋转角速度,同时也可以通过积分把角速度转换为小车的倾角。程序中,ITG3200的初始化如下: unsigned char Init_ITG3200(void) { unsigned char Return1,Return2,Return3,Return4; unsigned char Data; Data = 0x00; Return1 = IIC_WriteData(0xD0, 0x3E, Data, 1); Data = 0x07; Return2 = IIC_WriteData(0xD0, 0x15, Data, 1); Data = 0x1E; Return3 = IIC_WriteData(0xD0, 0x16, Data, 1); Data = 0x00; Return4 = IIC_WriteData(0xD0, 0x17, Data, 1); if(Return1 Return2 Return3 Return4) return 1; else return 0; } 其具体功能实现可以在主程序中通过SCI读取其值。所读取的值为角速度,不会受到小车运动的影响,因此该信号噪声很小,同时可以由它积分得到小车倾斜角度,可以平滑信号使其更加稳定。 由于装置是要在不同的室内区域进行勘测搜索,再加上未知的环境,所以角速度信号可能存在一定的偏差,会导致积分后的角度出现大的误差,无法得到实际的数值。为了消除这个由于偏差而产生的累积误差,装置上加上ADXL345三轴加速度传感器对于获得的角度信息进行校正。ADXL345初始化如下: unsigned char Init_ADXL345(void) { unsigned char Return1,Return2,Return3,Return4; unsigned char Data; Data = 0x0b; byReturn1 = IIC_WriteData(0xA6, 0x31, Data, 1); Data = 0x08; Return2 = IIC_WriteData(0xA6, 0x2c, Data, 1); Data = 0x08; Return3 = IIC_WriteData(0xA6, 0x2d, Data, 1); Data = 0x80; Return4 = IIC_WriteData(0xA6, 0x2e, Data, 1); Data = 0x00; Return4 = IIC_WriteData(0xA6, 0x1e, Data, 1); Data = 0x00; Return4 = IIC_WriteData(0xA6, 0x1f, Data, 1); Data = 0x05; Return4 = IIC_WriteData(0xA6, 0x20, Data, 1); if(Return1Return2Return3Return4) return 1; else return 0; } 通过ADXL345所得到的角度,和陀螺仪积分后的角度进行对比,然后使用它们的偏差改变陀螺仪的输出,从而积分后的角度慢慢校正到实际的角度,如图5所示。 图5 通过加速度传感器校正角度 HMC5883L三轴磁感应传感器的作用相当于罗盘,在水平情况下,无需借助其他传感器便可以计算出航向。其初始化如下: unsigned char Init_HMC5883(void) { unsigned char Return1; unsigned char Data; // Bit4 Bit3 等于11时,选择2000度/秒的量程 Data = 0x00; Return1 = IIC_WriteData(0x3C, 0x02, Data, 1); if(Return1) return 1; else return 0; } 由于装置是要在不同环境下进行工作的,所以其并不能保持时刻水平,就需要加速度传感器来纠正由于倾斜引起的误差。 【分页导航】 第1页: 轮式小车惯性导航系统体系架构 第2页: 核心板设计:电源电路/JTAG下载口电路 第3页: 小车驱动板设计 第4页: 传感器器件程序设计 第5页: 卡尔曼滤波算法应用 第6页: 航向角数据测试 3.2 卡尔曼滤波算法应用 于是装置在室内区域进行勘测搜索,小车的运行特点与一般的飞机、船、车不同,它的运动变化快,轨迹不定,而且要适用于不同的环境下工作,因此常用的卡尔曼滤波算法需要进一步改进才能应用。卡尔曼过滤是用前一个估计值和最近一个观察数据,来估计信号的当前值,它是用状态方程和递推的方法进行估计的,它的解是以估计值形式给出的。其运用在加速度器和陀螺仪上的卡尔曼滤波程序如下: // float gyro_m:陀螺仪测得的量(角速度) //float incAngle:加速度器测得的角度值 #define dt 0.0015//卡尔曼滤波采样频率 #define R_angle 0.71 //测量噪声的协方差(即是测量偏差) #define Q_angle 0.0001//过程噪声的协方差 #define Q_gyro 0.0003 //过程噪声的协方差 过程噪声协方差为一个一行两列矩阵 float kalmanUpdate(const float gyro_m,const float incAngle { float K0;//含有卡尔曼增益的另外一个函数,用于计算最优估计值 float K1;//含有卡尔曼增益的函数,用于计算最优估计值的偏差 float Y0; float Y1; float Rate;//去除偏差后的角速度 float Pdot ;//过程协方差矩阵的微分矩阵 float angle_err;//角度偏量 float E;//计算的过程量 static float angle = 0; //下时刻最优估计值角度 static float q_bias = 0; //陀螺仪的偏差 static float n = {{ 1, 0 }, { 0, 1 }};//过程协方差矩阵 Rate = gyro_m - q_bias; //计算过程协方差矩阵的微分矩阵 Pdot = Q_angle - P - P ; Pdot = - n ; Pdot = - n ; Pdot = Q_gyro; angle += Rate * dt; //角速度积分得出角度 n += Pdot * dt; //计算协方差矩阵 n += Pdot * dt; n += Pdot * dt; n += Pdot * dt; angle_err = incAngle - angle; //计算角度偏差 E = R_angle + P ; K0 = n / E; //计算卡尔曼增益 K1 = n / E; Y0 = n ; Y1 = n ; n -= K0 * Y0; //跟新协方差矩阵 n -= K0 * Y1; n -= K1 * Y0; n -= K1 * Y1; angle += K0 * angle_err; //给出最优估计值 q_bias += K1 * angle_err;//跟新最优估计值偏差 return angle; } 通过滤波时数据平滑将加速度输出电压附近产生的波动噪声滤掉。 【分页导航】 第1页: 轮式小车惯性导航系统体系架构 第2页: 核心板设计:电源电路/JTAG下载口电路 第3页: 小车驱动板设计 第4页: 传感器器件程序设计 第5页: 卡尔曼滤波算法应用 第6页: 航向角数据测试 4 实验测试与结果分析 在装置硬件和软件搭建完成后,通过原先设计好的PC端软件和平板安卓软件,搜索到Wi-Fi,自动连入局域网。在实验室测试环境下,小车可以自由行驶并反馈回实时的数据并进行测试比较。 4.1 航向角数据测试 HMC5883L采集到的航向角存在随机波动性,因此可以对于进行多次采集平均值滤波,以提高系统输出的数据稳定性。如图6为一定时间内滤波前和滤波后航向角的数据。 图6 航行角数据采集和对比图 上图的数据对比可以得知,航向所采集到的数据进行平均值采样滤波优化后误差大大减小,比原有数据稳定许多,说明滤波效果明显。 4.2 角度数据测试 在角度获得的数据,可以使用ADXL345和ITG3200所得的数据,转换为横滚角和俯仰角。再结合卡尔曼滤波对数据进行滤波以达到更准确的实验结果。如下表1为滤波1前角度的数据及误差,表2为滤波后角度的数据及误差。 表1 滤波前角度的数据及误差 表2 滤波后角度的数据及误差 由表1和表2的测试数据可知,经过滤波后,最大的误差从3.8降到-0.4,而且大体上都在1°内,大大提高了角度的输出精度。 5 结束语 本文所设计的轮式小车室内惯性导航装置,分析了该软件设计的各个模块的具体实现方法。经实验结果表明,该设计能够实时监测到移动机器人的位置信息,并对其能实现有效控制。同时其低成本、高精度、易操作的特点将进一步应用于例如巡逻机器人、救援机器人等专业领域,必将吸引国内外众多的投资商对其投资并进行更进一步的研发与应用,使其有着十分广大的创新创业前景、应用前景和市场前景。 【分页导航】 第1页: 轮式小车惯性导航系统体系架构 第2页: 核心板设计:电源电路/JTAG下载口电路 第3页: 小车驱动板设计 第4页: 传感器器件程序设计 第5页: 卡尔曼滤波算法应用 第6页: 航向角数据测试
  • 热度 11
    2015-9-17 13:35
    836 次阅读|
    1 个评论
         随着科学技术的不断进步,近年来无人驾驶飞机的发展非常迅猛,技术水平不断提高,其功能也在不断完善。用途非常广泛,除军事用途之外,还可广泛用于工农业生产,如航拍、灭虫喷洒农药等等领域。      我记得前些年,我们自己制造的遥控飞机模型,动力源一种是高速电动机的,另一种是甲醇燃料的航模发动机。遥控都是小功率的无线电发射,由于当时技术落后,无线电通信没有采用模拟通信,调制方式一般是调频和调幅,编码为比例遥控和开关编码,遥控舵机的动作,发动机油门的控制、起飞降落控制,实现遥控的空中飞行。飞行距离都控制在视距范围,一旦超出视距范围,很容易进入飞行盲区,导致失控坠毁失踪。     现代无人驾驶飞机有了新的发展,无人驾驶飞机的性能和续航能力都有了很大提高。    飞机框架结构采用了碳纤维复合材料,使得重量轻,机械强度高,相对体积载荷能力加强。同时实现了隐形的目的,雷达无法捕捉到反射波。      动力源的技术水平也在提高,多缸大功率甲醇燃料高速发动机的出现,一般转速都能达到10000转/分钟以上,使得大功率无人驾驶飞机变成现实。太阳能电池的出现和稀土高效率大功率电机的出现,使得无人驾驶飞机噪音低,续航能力强。涡轮喷气式发动机,有的国家也使用在无人驾驶飞机上面,使得飞机飞行速度得以提高,缺点是效率低续航能力小。     无人驾驶飞机的控制系统,大致有三部分组成:(1)通信网络部分,(2)惯性导航部分:(3)GPS定位控制部分。     网络通信部分,无人驾驶飞机要想全球飞行,离不开全球通信网络,网络通信通道哪里,无人驾驶飞机就能飞到哪里,目前多采用卫星中继网络与移动通信网络和GPS网络相结合的方法。地面控制台,可以随时为无人机编写更改飞行路线图。地面控制台也可随时向无人机发出任何指令完成某些临时性任务。地面控制台也可随时监控无人机的飞行姿态和地面的情况。      惯性导航部分主要是通过一些列陀螺仪、加速度传感器、磁阻传感器的数值送入单片机进行运算处理,控制舵机做相应动作,改变无人机的航向、姿态、俯仰状态。同时通过气压传感器个GPS的高度数据综合分析,控制飞行高度。     GPS系统是近几年迅速发展起来的全球卫星定位系统。民用汽车、航海,手机都广泛使用了GPS系统。这给无人驾驶飞机提供了准确定位依据。GPS与惯性导航系统进行融合,成了无人驾驶飞机安全准确飞行的中枢神经。只要起飞之前编写好飞行路线的程序,无人机就会按照飞行地图准确飞行。 (星波)
相关资源