您的位置 首页 5G

根据MCU的机器人导航定位体系规划

对于在室外环境工作的移动机器人通常使用惯导/卫星组合导航方式。惯性导航系统[1]具有完全自主、抗干扰强、隐蔽能力好和输出参数全面等优点,但它的鲁棒性极低,误差会不断随时间累积发散。卫星导航系统具有精度

关于在室外环境作业的移动机器人一般运用惯导/卫星组合导航办法。惯性导航体系[1]具有彻底自主、抗搅扰强、荫蔽才干好和输出参数全面等长处,但它的鲁棒性极低,差错会不断随时刻累积发散。卫星导航体系具有精度高、定位规模广和差错不随时刻累积等长处,但其自主性差、易受外界遮挡和搅扰、接纳机数据更新频率低一级缺陷。因而工程上常常将两者互补结合运用,组成卫星/惯性组合导航体系。

本文以低功耗MSP430F149为中心,规划了可以一起完结卫星导航(GNSS)接纳机、惯性丈量单元(IMU)、气压高度等导航信息的高速收集与高速合路传输,并进行开始导航定位信息交融的导航体系,即可为室外移动机器人供给直接的导航服务,也可作为高精度组合导航体系的原始丈量信息高速收集体系。

体系规划的关键是运用单片机有限的接口资源完结了多传感器信息并行收集,规划了有用的数据同步办法,处理了气压传感器数据手册遗漏导致的无法接入问题,给出了机器人组合定位的根本办法。体系充分运用了MSP430F149单片机的才干,具有结构简略、低功耗、对传感器具有普适性等长处。

1 总体规划

本体系由电源、气压计接口、IMU接口、GNSS接纳机接口、SPI转UART模块及MSP430F149构成。体系组成如图1所示。

组合导航体系的功用完结分为IMU数据接纳与解析、GNSS数据接纳与解析、气压计数据接纳与解析、组合导航解算以及数据输出五个部分。IMU数据接纳与解析功用用来获取导航解算中需求的加速度和角速度信息;GNSS数据接纳与解析功用用来获取导航解算中需求的方位和速度信息(松耦合组合)或许GNSS伪距和伪距率(紧耦合组合);气压计数据接纳与解析功用用来获取高度信息;组合导航解算功用为体系中心,用来进行组合导航解算;数据的输出包含原始数据包的整合输出宽和算成果的输出。

图1 体系组成结构图

图1 体系组成结构图

本文所运用的惯性器材和GNSS接纳机都是RS-232电平的UART接口,具有通用性,用户可依据本钱考虑不同精度的设备。气压计选用美国MEAS公司出产的MS5803-02BA,现已固化在电路中。

2 硬件电路规划

2.1 微操控器接口

整个组合导航定位体系需求三个UART接口和两个SPI接口。其间两个UART接口由430单片机自带的UART资源供给,别的一个UART接口由GPIO模仿SPI经过MAX3111E芯片转化得到;两个SPI接口由GPIO模仿得到。别的需求一个外部中止引脚捕获秒脉冲信号(PPS)、一个外部中止引脚捕获MAX3111E中止信号。MSP430F149管脚资源分配如表1所示。

表1 MSP430F149管脚资源分配

2.2电源电路

本体系供电需求为3.3V供电,因而选用AMS1117稳压芯片,接入5V电源即可输出3.3V安稳电压,可供给1A电流,满意体系供电需求。电路规划如图2所示。

图2 电源电路

图2 电源电路

2.3 IMU器材及GNSS接纳机接口电路

IMU器材及GNSS接纳机都选用UART接口办法接入,选用RS232协议。因而可运用430单片机上自带的两个UART接口,可是需求进行TTL电平与RS232电平转化。这儿选用常见的MAX3232芯片,电路规划如图3所示。

图3 IMU及GNSS接口电路

图3 IMU及GNSS接口电路

2.4 气压计MS5803-02BA接口电路

MS5803-02BA[3]是由MEAS公司出产的数字压力传感器,分辨率达10cm。芯片内部包含一个高线性的压力传感器和一个内部工厂标定系数的超低功耗24位ΔΣ型ADC。该款芯片有SPI和I2C两种接口办法,经过芯片的PS引脚装备了挑选不同的接口办法(PS置低时,选用SPI作业形式;PS置高时,选用I2C作业形式)。本文所论述的定位体系将气压计装备为SPI作业形式。MS5803-02BA与微操控器间的接口电路规划如图4所示。

图4 MS5803-02BA接口电路

图4 MS5803-02BA接口电路

MS5803-02BA的操控指令包含复位指令、温度ADC指令、气压ADC指令、ADC读取指令、PROM读取指令。操控指令如表2所示。

操控指令经过SDI口移位输入,呼应成果从SDO移位输出。输入的电平断定在时钟信号的上升沿,输出的电平断定在时钟信号的下降沿。输出的气压值可以进行温度补偿,需求运用芯片内部PROM中的系数来补偿。ADC读取指令输入之后,输出24位ADC成果;PROM读取指令输入之后,输出16位补偿系数。

表2 MS5803-02BA操控指令

下面是读取ADC的C言语代码:

CSN_OFF_MS();//CS置低

SPI_WRITE_8BIT(CMD);//SDI移入8位CMD

delay_ms(10); //延时10ms

CSN_ON_MS();//CS置高

CSN_OFF_MS();//CS置低

SPI_WRITE_8BIT(0x00);//SDI移入8位0x00

result = SPI_READ_24BIT();//SDO移出24位

CSN_ON_MS();//CS置高

下面是读取PROM的C言语代码:

CSN_OFF_MS();//CS置低

SPI_WRITE_8BIT(CMD); //SDI移入8位CMD

result=SPI_READ_16BIT();//SDO移出24位

CSN_ON_MS();//CS置高

结合器材的运用手册及手册遗漏的当地,运用MS5803-02BA时需求留意:

1、温度和气压ADC指令发送之后,芯片内部需求必定的时刻进行采样转化,详细时刻与过采样率(OSR)有关,最大需求时刻为10ms,因而本文选用的延时时刻为10ms;

2、片选信号CS的下降沿到时钟SCLK信号的第一个上升沿至少要有21ns的时刻推迟,不然指令无法正确写入芯片;

3、8位的ADC读取指令之后,有必要坚持CS片选信号继续为低,再产生24位时钟信号输入,将24位的ADC成果读取出来(即一个指令字为8位,但实践需求32个接连的时钟周期才干完好读取ADC成果);

4、关于PROM读取指令同ADC读取指令,总共需求24个接连的时钟周期完结,其间8位指令字输入,16位数据读出。

5、关于一切从SDO移位输出数据的一起,都需求SDI输入端坚持低电平。

2.5 SPI转UART电路

由于MSP430F149的片上UART资源都被IMU器材和GNSS接纳机占用,因而需求扩大一个UART接口才干满意定位体系与PC机间的通讯。为此将MSP430F149上的GPIO模仿SPI,再经过MAX3111E芯片转成UART接口。

MAX3111E是MAXIM公司推出的全功用收发器,内部包含UART和RS232电平转化两个独立的部分。UART部分包含兼容于SPI的串行接口、可编程波特率产生器、发送移位寄存器、接纳移位寄存器、8字长的FIFO以及4种可屏蔽中止产生器;RS232部分包含电泵%&&&&&%、硬件关断(SHDN管脚),具有±15kV静电保护效果。它可以挑选1.8432MHz或3.6864MHz两种晶振作为外部晶振,芯片可以作业在300bps~230kbps波特率,本文运用的是3.6864MHz晶振。MAX3111E与MSP430F149衔接电路如图5。

图5 SPI转UART电路

图5 SPI转UART电路

MAX3111E的操控指令分为写装备指令、读装备指令、写数据指令以及读数据指令四种。本文写入芯片的装备指令是0xE809,8bit数据长度、使能FIFO、发送中止使能、波特率38400bps。数据的写入需求在每个字节前面加上0x81,例如若要发送字节0x55,则需求从DIN端移位输入0x8155。

下面是接连发送n个字节的C言语代码:

SPI_WRITE_16BIT(0xE809);//写装备指令

delay_ms(10);//延时10ms

SPI_WRITE_16BIT(0x8100+DATA1);//发送第1个数据DATA1

delay_ns(250);//延时250ns

SPI_WRITE_16BIT(0x8100+DATA2);//发送第2个数据DATA2

……

delay_ns(250);//延时250ns

SPI_WRITE_16BIT(0x8100+DATAn);//发送第n个数据DATAn

运用MAX3111E时需求留意:

1、片选信号CS的下降沿到时钟SCLK信号的第一个上升沿至少要有100ns的时刻推迟;

2、芯片断定片选信号CS失效时,需求CS管脚坚持高电平的时刻至少为200ns。因而当需求接连发送数据时,两个写数据指令之间至少需求200ns,主张距离250ns;

3、写装备指令需求晶振作业安稳,因而可以在写装备指令后再读装备,直到写入和读出的装备数据相应位相一起才确保芯片按需求装备结束。

3 软件规划

3.1 GPIO模仿SPI完结办法

运用GPIO模仿SPI,对选定的IO口进行时序上的电平操作,模仿出SPI时序。本文将SPI的电平操作选用宏界说的办法,可参阅表3中的源代码。

表3 GPIO模仿SPI操作办法

程序依照SPI逻辑联系运用上述的宏界说,可以在选定的IO端口产生SPI信号,而且可以灵敏的操控每个CS有用期间的时钟数。运用GPIO模仿的SPI具有操作直观、灵敏可变等长处。相比较模仿得到的SPI,操控器上自带的SPI接口根本不占用操控器资源,发送和接纳的移位、时钟信号的产生都交由内部SPI模块处理。而GPIO模仿的SPI需求操控器不断对IO进行操作,因而会占用操控器处理时刻。时钟信号也因对电平操作耗费机器周期,导致时钟信号速度有限。

3.2 数据的收集和处理办法

IMU和GNSS接纳机的数据会自动发送到430单片机的UART接口,本文选用中止接纳的办法接纳数据,将每次到来的一个字节循环存储在指定的存储区;气压计需求430单片机查询式获取高度信息。因而当需求IMU或许GNSS信息的时分,需求在存储区内扫描数据,扫描依据是设备发送一帧数据的协议(帧头、帧尾、CRC等),再依据协议获取相应物理量的数值;当需求高度信息的时分,需求430单片机对气压计发送操控字获取信息。在对IMU和GNSS信息扫描时需求一个变量ptr保存有用数据的首地址在存储区内的偏移地址,为了不重复运用已用数据,需求在运用完信息后,损坏这一帧有用数据的帧头帧尾。

别的需求留意,运用循环存储数据和扫描取用这种办法,需求数据的处理速度比数据的接纳速度快,不然旧数据会被新数据掩盖。

3.3 高度核算办法

高度信息的获取需求经过MS5803-02BA获取的气压信息转化得到。对这款气压计的操作,需求先在芯片内部的PROM获取C1~C6六个参数,再获取温度ADC成果D1和气压ADC成果D2,最终运用官方供给的核算公式核算得到带补偿的气压值。气压值获取的软件流程图如图6。

图6 高度核算流程图

图6 高度核算流程图

依照气压计的用户手册中供给的核算公式,最终可以核算得到一个经过温度补偿的规范气压值,单位mbar。高度信息的获取还需求将气压值经过函数联系转化。高度h和规范大气P之间有如下函数联系:

高度h和规范大气P之间有如下函数联系

Th=288.15K,是g0对应高度下的温度下限值;β=-6.5K/km,是温度的笔直改变率;H=0m,是g0对应的高度;Ph=101325Pa,是g0对应高度下的气压下限值;R=287.05287m2/(K●s2),是气体常数;g0=9.80665m/s2,是海平面重力加速度。

在气压与高度的联系转化中,本文选用分段线性化的办法拟合它们的非线性联系。在不同气压值区间内,线性化公式得到h=a●P+b,取得不同的线性参数a、b,参阅表4。

表4气压与高度的分段线性联系

3.4 组合导航的时刻对准

进行组合导航滤波解算时,从IMU和GNSS接纳机接纳到的数据在时刻上应该是同步的,由于如果在一个数据交融点上,进入Kalman滤波器的来自两个子体系中的数据来自不同的时刻点,会给滤波核算带来差错,一起也会给校对核算带来影响。GNSS接纳机输出的导航数据都带有准确的时刻标签,而从 IMU 输出的数据只需一个相对时刻标签。以GNSS接纳机的时刻标签作为时刻基准,剖析时刻差的组成。体系时刻示意图如图7所示。

图7 体系时钟示意图

图7 体系时钟示意图

3.4.1 时刻差剖析

当一个GNSS数据(1Hz)到来时,接纳机产生一个秒脉冲信号(PPS),用于时刻对准。GNSS接纳机自身存在数据时延:接纳机整个核算进程会产生一个解算时刻推迟△t1、从卫星导航接纳机和惯导体系输出的数据别离经过McBSP和RS-232数据接口输入导航解算处理器会产生必定的传输推迟△t2。因而在PPS信号前的△t1+△t2时刻才是当时接纳到的GNSS数据帧的实在时刻。IMU数据处理时刻相关于递推时刻来说很小,可以疏忽。别的PPS脉冲信号和惯性丈量信号之间的时刻差△τ,它描绘GNSS肯定时刻和IMU相对时刻之间的联系,使得GNSS和IMU统一在同一个时刻规范下。

3.4.2 处理思维

依据总时刻差△T =△t1+△t2+△τ,找到IMU数据对应的插值时刻。经过时刻△T就可以取得对准时刻点与最近的两个惯性收集时刻,这以后对时刻同步点两边时刻点上,即图中t(k-1)和t(k)时刻点的惯性数据进行线性插值运算,就可以取得了惯导数据和GNSS接纳机数据在同一时刻点上的同步化丈量数据。

3.4.3 施行办法

GNSS接纳机解算时刻△t1由接纳机供给。

传输时刻△t2一般为一个固定时刻,运用示波器别离丈量GNSS接纳机发送时刻和导航解算电路的接纳时刻,再将两个时刻作差即可取得。

△τ的获取需求敞开MSP430F149的计时器和外部中止,经过中止计时的办法取得。详细办法是:经过将PPS信号接入导航处理器的外部中止接口,选用边缘触发办法触发中止事情的产生。中止事情发动计时器作业。当经过串口中止办法接纳到IMU数据时,读取计时器的值,即可得到IMU数据相关于PPS的推迟时刻△τ。

定论

本文依据MSP430F149单片机规划的室外移动机器人组合导航定位体系,经过接口的扩展使得该款定位体系可以接入IMU、GNSS接纳机、气压计三路信息,完结开始导航定位服务功用,一起可作为多路数据收集设备,将多路数据整合到一路高速输出接口,用于进一步的高精度导航解算。该体系依据运用者的需求不同,可接入不同本钱和精度的设备,只需满意RS-232协议即可。笔者将其实践运用,整个体系充分运用该款单片机的资源,结构简略、功耗低、适用规模广,不只可作为开始导航定位服务的设备,还可作为多路数据收集设备。

参阅文献

[1] 张宗麟. 惯性导航与组合导航[M], 航空工业出版社.2000. 7-8

[2]TEXAS INSTRUMENTS. MSP430x1xx Family User’s Guide[EB/OL]. [2006].http://www.ti.com.cn/cn/lit/ug/slau049f/slau049f.pdf

[3]MeasurementSpecialties Inc. MS5803-02BA Miniature Altimeter Module[EB/OL]. [2013-03].

http://www.meas-spec.cn/downloads/MS5803-02BA.pdf

[4]Maxim Integrated Products. MAX3110E/MAX3111EDatasheet[EB/OL]. [2005].http://datasheets.maximintegrated.com/en/ds/MAX3110E-MAX3111E.pdf

[5] 郝振海, 黄圣国. 高精度气压高度表的研发 [J]. 南京航空航天大学学报, 2009, 41(1): 134-138.

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/yingyong/5g/320509.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部