2024年2月28日发(作者:帛俊茂)
姿态传感器采集测试系统的设计与实现
毕盛;闵华清;李淳;黄斐全;陈必强
【摘 要】A wireless attitude sensor acquisition and estimation system was
designed based on the new generation microprocessor called STM32,
which made attitude sensor easily used. Firstly, the framework of the
system was proposed. Then the system hardware, two kinds of attitude
sensors (ADXL204 and ADXRS150) hardware and equation were described.
And the software processes and structure of STM32 MCU and PC were
presented. Finally ADXL204 and ADXRS150 were tested in our system.
Through the Kalman filtering fusion equation of the two kinds of sensors,
the noise was reduced.%设计了一套基于STM32单片机的姿态传感器无线采集测试系统,大大方便了姿态传感器的研究与应用.首先设计了姿态传感器采集测试系统的整体框架;接着对测试系统的各部分硬件电路进行了说明,描述了 ADXL204加速度和ADXRS150陀螺仪传感器的电路和计算公式,并说明了STM32单片机和PC 上位机程序的结构和流程;最后利用本测试系统对ADXL204和ADXRS150传感器进行了测试和分析;通过对这两种传感器数据进行卡尔曼滤波,消除陀螺仪的漂移,同时减少了加速度传感器有害的噪声,从而得到精确的角度.
【期刊名称】《计算机测量与控制》
【年(卷),期】2011(019)007
【总页数】3页(P1562-1564)
【关键词】陀螺仪;加速度传感器;姿态传感器
【作 者】毕盛;闵华清;李淳;黄斐全;陈必强
【作者单位】华南理工大学计算机科学与工程学院,广东广州510640;华南理工大学计算机科学与工程学院,广东广州510640;华南理工大学计算机科学与工程学院,广东广州510640;华南理工大学计算机科学与工程学院,广东广州510640;华南理工大学计算机科学与工程学院,广东广州510640
【正文语种】中 文
【中图分类】TP212
0 引言
在机器人平衡控制、汽车定位和捷联惯导等许多领域中需要获得载体姿态信息,姿态传感器应用越来越广泛[1-2]。需要专门的测试平台来对姿态传感器的性能进行测试和分析,而针对这方面的设计和研究还很少。本文设计出一套姿态传感器测试系统,通过无线蓝牙模块实现对姿态传感器的控制和数据的采集,方便对移动物体上的姿态传感器数据进行分析和研究。
1 系统框架
姿态传感器主要包括加速度传感器和陀螺仪。加速度传感器也叫倾角传感器,通过重力加速度可得到姿态倾斜角。陀螺仪也叫做角速度传感器用来测量姿态的角速度。目前,ADI公司、Freescale公司和ST公司等都开发出了一系列的姿态传感器芯片。
文中主要对ADI公司的ADXL204加速度传感器和ADXRS150陀螺仪传感器的数据处理进行了分析和研究。
整个系统采用Cortex-M3核的STM32单片机[3]作为主芯片,控制舵机使姿态传感器转动到设定的角度,同时采集姿态传感器的数据到主芯片,然后利用蓝牙模块把姿
态传感器测量的姿态数据无线传送给上位机,最后上位机把测量到的姿态数据处理后和设定的姿态数据进行比较,从而可对姿态传感器数据采集和处理方法进行分析和研究,如图1所示 。
图1 姿态传感器测试系统
姿态数据采集测试系统框架图如图2所示。
图2 姿态数据采集测试系统框图
上位PC机通过蓝牙模块向STM32单片机发送指令,使STM 32单片机控制舵机带动姿态传感器以一定的速度转到一定的角度,同时通过STM32单片机采集姿态传感器数据,最后通过蓝牙模块把采集到的数据送给上位PC机,PC机会把采集的数据保存下来。最后可利用Matlab软件对采集到的数据进行处理从而可计算出姿态转动的角度,并和设定的姿态角度进行比较。从而对姿态传感器的测量数据和处理方法进行分析和比较。
2 系统的硬件设计
系统硬件整体框图,如图3所示。
2.1 MCU模块
图3 系统硬件框架图
STM32单片机[3]是ST公司采用ARM Cortex-M3体系结构的32位单片机。本系统采用具体型号是STM32F103ZCT,它工作频率为72MHz,片上集成了Flash是512kB,SRAM 64kB,处理速度快适合对姿态传感器的数据进行处理。由于处理器接口丰富,适用于对各种传感器模块数据的采集,所以采用STM32F103ZCT作为整个系统的处理芯片。
2.2 蓝牙通信模块
蓝牙通信模块采用CSR公司的BlueCore4-External蓝牙芯片,V2.0协议标准,工业级标准,体积尺寸紧凑,自带高效板载天线,工作电压:2.7~3.3V。通过 RS232串行
口(T TL电平)与连接在PC机的各种蓝牙适配器通信。波特率最高可达到1382400。
2.3 姿态传感器接口
目前姿态传感器输出主要是模拟输出,所以采集系统提供多路模拟AD输入口。在每路传感器模拟接口电路处,为了抗干扰都有RC低通滤波电路,同时为满足多种传感器电平的需要都有电平转换电路。如有的传感器芯片电源是5V,模拟输出是0~5V的电平;而单片机芯片电源是3.3V,只能接收0~3.3V的模拟信号。所以就要通过电平转换电路把模拟电压从0~5V转到0~3.3V,本文采用电压分压电路来实现电平转换。
有些姿态传感器采用数字输出,主要是采用I2C或SPI接口作为输出口,所以电路中引出了I2C和SPI接口。
2.4 舵机控制电路
舵机是一个伺服系统,本文利用韩国 Robotis公司的RX64高精度舵机控制姿态传感器到一定的角度。RX64采用RS485总线和单片机通信,单片机根据RX64的通信协议,通过RS485总线可控制RX64以设定的速度转动设定的角度。电路是单片机的UART2串行通信接口通过RS485芯片和RX64舵机连接。
2.5 电源电路
电源电路采用锂电池供电 (7.6~8.4V),并利用LM1117-3.3和LM1117-5电源芯片分别产生3.3V电源和5V电源。其中3.3V电源向STM32F103ZCT芯片和其它3.3V电源芯片供电,5V电源主要是为有些是5V的传感器芯片提供电源。
3 姿态传感器
姿态传感器的型号很多,本文主要对 ADI公司的ADXL204加速度和ADXRS150陀螺仪传感器的数据进行采集和处理。
3.1 ADXL204加速度传感器[4]
ADXL204是一个双轴的加速度传感器,供电电压是3.3V,量程±1.7g。
加速度电路主要由ADXL204构成,并辅助一些滤波电路,如图4所示。其中Cx和Cy与 ADXL204芯片内部的RFIL T(32k)构成了低通滤波器,带宽是0.5Hz~2.5kHz。在本电路中 Cx和Cy是0.1μ F。Xout和Y out是 ADXL204在 x轴和y轴加速度的输出,输出0~3.3V的模拟量。
图4 ADXL204传感器电路图
Xa和Ya沿x轴和y轴方向上的加速度值可根据Xout和Yout求得,见式 (1)和式
(2)。
其中,VDD是芯片的供电电压3.3V;d是STM32芯片ADC位数,是12位;V0g是ADXL204在重力加速度为0g时的电压值,通过查手册可得1.65±0.1V;Kav是加速度值与测量电压比例系数:620±25mV/g。
根据传感器数据手册得到加速度和倾斜角度的关系,见式(3)(4)。可求得沿x轴和y轴的倾斜角度。
3.2 ADXRS150陀螺仪[5]
ADXRS150是一款陀螺仪芯片,供电电压5V,量程是150度/秒。具体电路如图 5所示。
图5 ADXRS150传感器电路图
其中C4和C5结合传感器内部电路构成了两个低通滤波器,主要用来抗干扰。C1和C2主要是用来升压用,把5V升到传感器内部要用的14~16V电压。
角速度值可以通过下式求得:
其中,OUT是角速度传感器的模拟输出数据;VDD是单片机供电电压3.3V;R1和 R2
是采集电路分压电阻,由于ADXRS150电压是5V,通过R1和R2把传感器输出转换到0~3.3V,R1=3.3kΩ,R2=1.7kΩ;V0w是ADXRS150在角速度为0时的电压值,通过查手册可得2.5±0.3V;Kwv是角速度值与测量电压比例系数:12.5±1.25
mV/(o/S)。
4 系统软件设计
4.1 单片机软件设计
STM32单片机程序主要是通过蓝牙接收上位机PC的控制指令,可控制舵机运动,并随时把采集到的数据通过蓝牙送给PC。具体的程序流程如图6所示。
图6 STM32单片机程序流程
4.2 PC机软件设计
PC机主要的工作是通过蓝牙控制单片机使舵机以一定的速度转动到一定的角度,并随时接收单片机通过蓝牙送上来的传感器数据,并保存起来。
图7 PC机程序流程
5 ADXL204和ADXRS150姿态传感器测试实验
控制舵机从10度到130度来回绕姿态传感器ADXL204的x轴和ADXRS150的测量轴转动,同时单片机把传感器的数据进行采集并送给上位 PC机。根据ADXL204数据和式(3)可得到偏转角度;根据ADXRS150数据和式(5)得到偏转角速度,接着通过梯形积分得到角度,如图8所示。
从图8可看出,采集到的ADXL204数据和ADXRS150数据并不理想。ADXL204数据容易受到噪声的影响,ADXRS150数据容易造成积分累计误差,所以单独使用陀螺仪或者加速度计,都不能得到可靠的姿态信息。
通过卡尔曼滤波[6-7],对采集到的加速度传感器ADXL204数据和陀螺仪ADXRS150数据进行融合。通过多次实验选取合适的模型和测量过程的噪声矩阵Q和R对卡尔曼滤波进行校正。其中取Q和R如下:
图8 传感器测试数据
通过卡尔曼滤波得到最终k时刻的最优角度值,其递推公式如下:
式中,Φk,k-1为转移矩阵,K为卡尔曼增益,Ck为测量矩阵,为第k-1时刻最优角度值,表示在k-1时刻对k时刻的预测值,yk为观测值。初始值为采集到的第一个数据。
经过卡尔曼滤波的处理,用加速度传感器测量的倾斜角度来消除陀螺仪的漂移,同时加速度传感器有害的噪声也被最小化了,从而得到精确的角度,如图8所示。
6 总结
设计了一套基于STM32处理器的姿态传感器无线采集测试系统。并利用本系统对ADXL204加速度传感器和ADXRS150角速度传感器进行了数据采集和处理。并把在采集测试系统上获得的数据处理用在了仿人机器人姿态稳定控制上,使仿人机器人实现稳定行走。本套系统不仅对ADXL204和ADXRS150芯片进行测试过,还针对 ENC03、XC3500、EWTS08N和LY530A L等多种模拟和数字姿态传感器测试过,获得了良好的效果。
参考文献:
【相关文献】
[1]彭荆明,徐良波,舒旭光.基于FPGA/DSP的捷联惯导系统设计[J].计算机测量与控制,2008,16(2):179-180.
[2]日本机器人学会.新版机器人技术手册[M].宗光华,程君实,等译.北京:科学出版社.2007.
[3]王永虹,徐 炜,郝立平.STM32系列ARM Cortex-M3微控制器原理与实践 [M].北京:北京航空航天大学出版社,2008.
[4]Analog 204 Datasheet[Z].2006:1-12.
[5]Analog 150 Datasheet[Z].2003:1-12.
[6]秦永元.卡尔曼滤波与组合导航原理[M].西安:西北工业大学出版.1998.
[7]秦 勇,臧希喆,王晓宇,等.基于MEMS惯性传感器的机器人姿态检测系统的研究 [J].传感技术学报,2007,20(2):298-301.
2024年2月28日发(作者:帛俊茂)
姿态传感器采集测试系统的设计与实现
毕盛;闵华清;李淳;黄斐全;陈必强
【摘 要】A wireless attitude sensor acquisition and estimation system was
designed based on the new generation microprocessor called STM32,
which made attitude sensor easily used. Firstly, the framework of the
system was proposed. Then the system hardware, two kinds of attitude
sensors (ADXL204 and ADXRS150) hardware and equation were described.
And the software processes and structure of STM32 MCU and PC were
presented. Finally ADXL204 and ADXRS150 were tested in our system.
Through the Kalman filtering fusion equation of the two kinds of sensors,
the noise was reduced.%设计了一套基于STM32单片机的姿态传感器无线采集测试系统,大大方便了姿态传感器的研究与应用.首先设计了姿态传感器采集测试系统的整体框架;接着对测试系统的各部分硬件电路进行了说明,描述了 ADXL204加速度和ADXRS150陀螺仪传感器的电路和计算公式,并说明了STM32单片机和PC 上位机程序的结构和流程;最后利用本测试系统对ADXL204和ADXRS150传感器进行了测试和分析;通过对这两种传感器数据进行卡尔曼滤波,消除陀螺仪的漂移,同时减少了加速度传感器有害的噪声,从而得到精确的角度.
【期刊名称】《计算机测量与控制》
【年(卷),期】2011(019)007
【总页数】3页(P1562-1564)
【关键词】陀螺仪;加速度传感器;姿态传感器
【作 者】毕盛;闵华清;李淳;黄斐全;陈必强
【作者单位】华南理工大学计算机科学与工程学院,广东广州510640;华南理工大学计算机科学与工程学院,广东广州510640;华南理工大学计算机科学与工程学院,广东广州510640;华南理工大学计算机科学与工程学院,广东广州510640;华南理工大学计算机科学与工程学院,广东广州510640
【正文语种】中 文
【中图分类】TP212
0 引言
在机器人平衡控制、汽车定位和捷联惯导等许多领域中需要获得载体姿态信息,姿态传感器应用越来越广泛[1-2]。需要专门的测试平台来对姿态传感器的性能进行测试和分析,而针对这方面的设计和研究还很少。本文设计出一套姿态传感器测试系统,通过无线蓝牙模块实现对姿态传感器的控制和数据的采集,方便对移动物体上的姿态传感器数据进行分析和研究。
1 系统框架
姿态传感器主要包括加速度传感器和陀螺仪。加速度传感器也叫倾角传感器,通过重力加速度可得到姿态倾斜角。陀螺仪也叫做角速度传感器用来测量姿态的角速度。目前,ADI公司、Freescale公司和ST公司等都开发出了一系列的姿态传感器芯片。
文中主要对ADI公司的ADXL204加速度传感器和ADXRS150陀螺仪传感器的数据处理进行了分析和研究。
整个系统采用Cortex-M3核的STM32单片机[3]作为主芯片,控制舵机使姿态传感器转动到设定的角度,同时采集姿态传感器的数据到主芯片,然后利用蓝牙模块把姿
态传感器测量的姿态数据无线传送给上位机,最后上位机把测量到的姿态数据处理后和设定的姿态数据进行比较,从而可对姿态传感器数据采集和处理方法进行分析和研究,如图1所示 。
图1 姿态传感器测试系统
姿态数据采集测试系统框架图如图2所示。
图2 姿态数据采集测试系统框图
上位PC机通过蓝牙模块向STM32单片机发送指令,使STM 32单片机控制舵机带动姿态传感器以一定的速度转到一定的角度,同时通过STM32单片机采集姿态传感器数据,最后通过蓝牙模块把采集到的数据送给上位PC机,PC机会把采集的数据保存下来。最后可利用Matlab软件对采集到的数据进行处理从而可计算出姿态转动的角度,并和设定的姿态角度进行比较。从而对姿态传感器的测量数据和处理方法进行分析和比较。
2 系统的硬件设计
系统硬件整体框图,如图3所示。
2.1 MCU模块
图3 系统硬件框架图
STM32单片机[3]是ST公司采用ARM Cortex-M3体系结构的32位单片机。本系统采用具体型号是STM32F103ZCT,它工作频率为72MHz,片上集成了Flash是512kB,SRAM 64kB,处理速度快适合对姿态传感器的数据进行处理。由于处理器接口丰富,适用于对各种传感器模块数据的采集,所以采用STM32F103ZCT作为整个系统的处理芯片。
2.2 蓝牙通信模块
蓝牙通信模块采用CSR公司的BlueCore4-External蓝牙芯片,V2.0协议标准,工业级标准,体积尺寸紧凑,自带高效板载天线,工作电压:2.7~3.3V。通过 RS232串行
口(T TL电平)与连接在PC机的各种蓝牙适配器通信。波特率最高可达到1382400。
2.3 姿态传感器接口
目前姿态传感器输出主要是模拟输出,所以采集系统提供多路模拟AD输入口。在每路传感器模拟接口电路处,为了抗干扰都有RC低通滤波电路,同时为满足多种传感器电平的需要都有电平转换电路。如有的传感器芯片电源是5V,模拟输出是0~5V的电平;而单片机芯片电源是3.3V,只能接收0~3.3V的模拟信号。所以就要通过电平转换电路把模拟电压从0~5V转到0~3.3V,本文采用电压分压电路来实现电平转换。
有些姿态传感器采用数字输出,主要是采用I2C或SPI接口作为输出口,所以电路中引出了I2C和SPI接口。
2.4 舵机控制电路
舵机是一个伺服系统,本文利用韩国 Robotis公司的RX64高精度舵机控制姿态传感器到一定的角度。RX64采用RS485总线和单片机通信,单片机根据RX64的通信协议,通过RS485总线可控制RX64以设定的速度转动设定的角度。电路是单片机的UART2串行通信接口通过RS485芯片和RX64舵机连接。
2.5 电源电路
电源电路采用锂电池供电 (7.6~8.4V),并利用LM1117-3.3和LM1117-5电源芯片分别产生3.3V电源和5V电源。其中3.3V电源向STM32F103ZCT芯片和其它3.3V电源芯片供电,5V电源主要是为有些是5V的传感器芯片提供电源。
3 姿态传感器
姿态传感器的型号很多,本文主要对 ADI公司的ADXL204加速度和ADXRS150陀螺仪传感器的数据进行采集和处理。
3.1 ADXL204加速度传感器[4]
ADXL204是一个双轴的加速度传感器,供电电压是3.3V,量程±1.7g。
加速度电路主要由ADXL204构成,并辅助一些滤波电路,如图4所示。其中Cx和Cy与 ADXL204芯片内部的RFIL T(32k)构成了低通滤波器,带宽是0.5Hz~2.5kHz。在本电路中 Cx和Cy是0.1μ F。Xout和Y out是 ADXL204在 x轴和y轴加速度的输出,输出0~3.3V的模拟量。
图4 ADXL204传感器电路图
Xa和Ya沿x轴和y轴方向上的加速度值可根据Xout和Yout求得,见式 (1)和式
(2)。
其中,VDD是芯片的供电电压3.3V;d是STM32芯片ADC位数,是12位;V0g是ADXL204在重力加速度为0g时的电压值,通过查手册可得1.65±0.1V;Kav是加速度值与测量电压比例系数:620±25mV/g。
根据传感器数据手册得到加速度和倾斜角度的关系,见式(3)(4)。可求得沿x轴和y轴的倾斜角度。
3.2 ADXRS150陀螺仪[5]
ADXRS150是一款陀螺仪芯片,供电电压5V,量程是150度/秒。具体电路如图 5所示。
图5 ADXRS150传感器电路图
其中C4和C5结合传感器内部电路构成了两个低通滤波器,主要用来抗干扰。C1和C2主要是用来升压用,把5V升到传感器内部要用的14~16V电压。
角速度值可以通过下式求得:
其中,OUT是角速度传感器的模拟输出数据;VDD是单片机供电电压3.3V;R1和 R2
是采集电路分压电阻,由于ADXRS150电压是5V,通过R1和R2把传感器输出转换到0~3.3V,R1=3.3kΩ,R2=1.7kΩ;V0w是ADXRS150在角速度为0时的电压值,通过查手册可得2.5±0.3V;Kwv是角速度值与测量电压比例系数:12.5±1.25
mV/(o/S)。
4 系统软件设计
4.1 单片机软件设计
STM32单片机程序主要是通过蓝牙接收上位机PC的控制指令,可控制舵机运动,并随时把采集到的数据通过蓝牙送给PC。具体的程序流程如图6所示。
图6 STM32单片机程序流程
4.2 PC机软件设计
PC机主要的工作是通过蓝牙控制单片机使舵机以一定的速度转动到一定的角度,并随时接收单片机通过蓝牙送上来的传感器数据,并保存起来。
图7 PC机程序流程
5 ADXL204和ADXRS150姿态传感器测试实验
控制舵机从10度到130度来回绕姿态传感器ADXL204的x轴和ADXRS150的测量轴转动,同时单片机把传感器的数据进行采集并送给上位 PC机。根据ADXL204数据和式(3)可得到偏转角度;根据ADXRS150数据和式(5)得到偏转角速度,接着通过梯形积分得到角度,如图8所示。
从图8可看出,采集到的ADXL204数据和ADXRS150数据并不理想。ADXL204数据容易受到噪声的影响,ADXRS150数据容易造成积分累计误差,所以单独使用陀螺仪或者加速度计,都不能得到可靠的姿态信息。
通过卡尔曼滤波[6-7],对采集到的加速度传感器ADXL204数据和陀螺仪ADXRS150数据进行融合。通过多次实验选取合适的模型和测量过程的噪声矩阵Q和R对卡尔曼滤波进行校正。其中取Q和R如下:
图8 传感器测试数据
通过卡尔曼滤波得到最终k时刻的最优角度值,其递推公式如下:
式中,Φk,k-1为转移矩阵,K为卡尔曼增益,Ck为测量矩阵,为第k-1时刻最优角度值,表示在k-1时刻对k时刻的预测值,yk为观测值。初始值为采集到的第一个数据。
经过卡尔曼滤波的处理,用加速度传感器测量的倾斜角度来消除陀螺仪的漂移,同时加速度传感器有害的噪声也被最小化了,从而得到精确的角度,如图8所示。
6 总结
设计了一套基于STM32处理器的姿态传感器无线采集测试系统。并利用本系统对ADXL204加速度传感器和ADXRS150角速度传感器进行了数据采集和处理。并把在采集测试系统上获得的数据处理用在了仿人机器人姿态稳定控制上,使仿人机器人实现稳定行走。本套系统不仅对ADXL204和ADXRS150芯片进行测试过,还针对 ENC03、XC3500、EWTS08N和LY530A L等多种模拟和数字姿态传感器测试过,获得了良好的效果。
参考文献:
【相关文献】
[1]彭荆明,徐良波,舒旭光.基于FPGA/DSP的捷联惯导系统设计[J].计算机测量与控制,2008,16(2):179-180.
[2]日本机器人学会.新版机器人技术手册[M].宗光华,程君实,等译.北京:科学出版社.2007.
[3]王永虹,徐 炜,郝立平.STM32系列ARM Cortex-M3微控制器原理与实践 [M].北京:北京航空航天大学出版社,2008.
[4]Analog 204 Datasheet[Z].2006:1-12.
[5]Analog 150 Datasheet[Z].2003:1-12.
[6]秦永元.卡尔曼滤波与组合导航原理[M].西安:西北工业大学出版.1998.
[7]秦 勇,臧希喆,王晓宇,等.基于MEMS惯性传感器的机器人姿态检测系统的研究 [J].传感技术学报,2007,20(2):298-301.