<s id="eoqoe"><xmp id="eoqoe">
<button id="eoqoe"><strong id="eoqoe"></strong></button>
<s id="eoqoe"><xmp id="eoqoe">
<button id="eoqoe"><strong id="eoqoe"></strong></button>
<wbr id="eoqoe"></wbr>
<wbr id="eoqoe"><strong id="eoqoe"></strong></wbr>
<wbr id="eoqoe"><strong id="eoqoe"></strong></wbr>
<wbr id="eoqoe"><strong id="eoqoe"></strong></wbr>
<wbr id="eoqoe"><label id="eoqoe"></label></wbr>
<button id="eoqoe"></button>
<wbr id="eoqoe"></wbr>
你的位置:首頁(yè) > 電路保護 > 正文

基于MCU的室外移動(dòng)機器人組合導航定位系統

發(fā)布時(shí)間:2021-05-21 責任編輯:lina

【導讀】對于在室外環(huán)境工作的移動(dòng)機器人通常使用慣導/衛星組合導航方式。慣性導航系統[1]具有完全自主、抗干擾強、隱蔽能力好和輸出參數全面等優(yōu)點(diǎn),但它的魯棒性極低,誤差會(huì )不斷隨時(shí)間累積發(fā)散。衛星導航系統具有精度高、定位范圍廣和誤差不隨時(shí)間累積等優(yōu)點(diǎn),但其自主性差、易受外界遮擋和干擾、接收機數據更新頻率低等缺點(diǎn)。因此工程上常常將兩者互補結合使用,組成衛星/慣性組合導航系統。

對于在室外環(huán)境工作的移動(dòng)機器人通常使用慣導/衛星組合導航方式。慣性導航系統[1]具有完全自主、抗干擾強、隱蔽能力好和輸出參數全面等優(yōu)點(diǎn),但它的魯棒性極低,誤差會(huì )不斷隨時(shí)間累積發(fā)散。衛星導航系統具有精度高、定位范圍廣和誤差不隨時(shí)間累積等優(yōu)點(diǎn),但其自主性差、易受外界遮擋和干擾、接收機數據更新頻率低等缺點(diǎn)。因此工程上常常將兩者互補結合使用,組成衛星/慣性組合導航系統。
 
本文以低功耗MSP430F149為核心,設計了能夠同時(shí)實(shí)現衛星導航(GNSS)接收機、慣性測量單元(IMU)、氣壓高度等導航信息的高速采集與高速合路傳輸,并進(jìn)行初步導航定位信息融合的導航系統,即可為室外移動(dòng)機器人提供直接的導航服務(wù),也可作為高精度組合導航系統的原始測量信息高速采集系統。
 
系統設計的關(guān)鍵是利用單片機有限的接口資源實(shí)現了多傳感器信息并行采集,設計了有效的數據同步方法,解決了氣壓傳感器數據手冊疏漏導致的無(wú)法接入問(wèn)題,給出了機器人組合定位的基本方法。系統充分利用了MSP430F149單片機的能力,具有結構簡(jiǎn)單、低功耗、對傳感器具有普適性等優(yōu)點(diǎn)。
 
1 總體設計
 
本系統由電源、氣壓計接口、IMU接口、GNSS接收機接口、SPI轉UART模塊及MSP430F149構成。系統組成如圖1所示。
 
組合導航系統的功能實(shí)現分為IMU數據接收與解析、GNSS數據接收與解析、氣壓計數據接收與解析、組合導航解算以及數據輸出五個(gè)部分。IMU數據接收與解析功能用來(lái)獲取導航解算中需要的加速度和角速度信息;GNSS數據接收與解析功能用來(lái)獲取導航解算中需要的位置和速度信息(松耦合組合)或者GNSS偽距和偽距率(緊耦合組合);氣壓計數據接收與解析功能用來(lái)獲取高度信息;組合導航解算功能為系統核心,用來(lái)進(jìn)行組合導航解算;數據的輸出包括原始數據包的整合輸出和解算結果的輸出。
 
基于MCU的室外移動(dòng)機器人組合導航定位系統
圖1 系統組成結構圖
 
本文所使用的慣性器件和GNSS接收機都是RS-232電平的UART接口,具有通用性,用戶(hù)可根據成本考慮不同精度的設備。氣壓計選用美國MEAS公司生產(chǎn)的MS5803-02BA,已經(jīng)固化在電路中。
 
2 硬件電路設計
 
2.1微控制器接口
 
整個(gè)組合導航定位系統需要三個(gè)UART接口和兩個(gè)SPI接口。其中兩個(gè)UART接口由430單片機自帶的UART資源提供,另外一個(gè)UART接口由GPIO模擬SPI通過(guò)MAX3111E芯片轉化得到;兩個(gè)SPI接口由GPIO模擬得到。另外需要一個(gè)外部中斷引腳捕獲秒脈沖信號(PPS)、一個(gè)外部中斷引腳捕獲MAX3111E中斷信號。MSP430F149管腳資源分配如表1所示。
 
基于MCU的室外移動(dòng)機器人組合導航定位系統
 
2.2電源電路
 
本系統供電需求為3.3V供電,因此采用AMS1117穩壓芯片,接入5V電源即可輸出3.3V穩定電壓,可提供1A電流,滿(mǎn)足系統供電需求。電路設計如圖2所示。
 
基于MCU的室外移動(dòng)機器人組合導航定位系統
圖2 電源電路
 
2.3 IMU器件及GNSS接收機接口電路
 
IMU器件及GNSS接收機都采用UART接口方式接入,采用RS232協(xié)議。因此可使用430單片機上自帶的兩個(gè)UART接口,但是需要進(jìn)行TTL電平與RS232電平轉換。這里采用常見(jiàn)的MAX3232芯片,電路設計如圖3所示。
 
基于MCU的室外移動(dòng)機器人組合導航定位系統
圖3 IMU及GNSS接口電路
 
2.4 氣壓計MS5803-02BA接口電路
 
MS5803-02BA[3]是由MEAS公司生產(chǎn)的數字壓力傳感器,分辨率達10cm。芯片內部包含一個(gè)高線(xiàn)性的壓力傳感器和一個(gè)內部工廠(chǎng)標定系數的超低功耗24位ΔΣ型ADC。該款芯片有SPI和I2C兩種接口方式,通過(guò)芯片的PS引腳配置了選擇不同的接口方式(PS置低時(shí),采用SPI工作模式;PS置高時(shí),采用I2C工作模式)。本文所闡述的定位系統將氣壓計配置為SPI工作模式。MS5803-02BA與微控制器間的接口電路設計如圖4所示。
 
基于MCU的室外移動(dòng)機器人組合導航定位系統
圖4 MS5803-02BA接口電路
 
MS5803-02BA的控制命令包括復位命令、溫度ADC命令、氣壓ADC命令、ADC讀取命令、PROM讀取命令??刂泼钊绫?所示。
 
控制命令通過(guò)SDI口移位輸入,響應結果從SDO移位輸出。輸入的電平判定在時(shí)鐘信號的上升沿,輸出的電平判定在時(shí)鐘信號的下降沿。輸出的氣壓值可以進(jìn)行溫度補償,需要利用芯片內部PROM中的系數來(lái)補償。ADC讀取命令輸入之后,輸出24位ADC結果;PROM讀取命令輸入之后,輸出16位補償系數。
 
基于MCU的室外移動(dòng)機器人組合導航定位系統
 
下面是讀取ADC的C語(yǔ)言代碼:
 
CSN_OFF_MS();//CS置低
SPI_WRITE_8BIT(CMD);//SDI移入8位CMD
delay_ms(10); //延時(shí)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語(yǔ)言代碼:
 
CSN_OFF_MS();//CS置低
SPI_WRITE_8BIT(CMD); //SDI移入8位CMD
result=SPI_READ_16BIT();//SDO移出24位
CSN_ON_MS();//CS置高
 
結合器件的使用手冊及手冊疏漏的地方,使用MS5803-02BA時(shí)需要注意:
 
1、溫度和氣壓ADC命令發(fā)送之后,芯片內部需要一定的時(shí)間進(jìn)行采樣轉換,具體時(shí)間與過(guò)采樣率(OSR)有關(guān),最大需求時(shí)間為10ms,因此本文采用的延時(shí)時(shí)間為10ms;
 
2、片選信號CS的下降沿到時(shí)鐘SCLK信號的第一個(gè)上升沿至少要有21ns的時(shí)間延遲,否則命令無(wú)法正確寫(xiě)入芯片;
 
3、8位的ADC讀取命令之后,必須保持CS片選信號持續為低,再產(chǎn)生24位時(shí)鐘信號輸入,將24位的ADC結果讀取出來(lái)(即一個(gè)命令字為8位,但實(shí)際需要32個(gè)連續的時(shí)鐘周期才能完整讀取ADC結果);
 
4、對于PROM讀取命令同ADC讀取命令,一共需要24個(gè)連續的時(shí)鐘周期完成,其中8位命令字輸入,16位數據讀出。
 
5、對于所有從SDO移位輸出數據的同時(shí),都需要SDI輸入端保持低電平。
 
2.5 SPI轉UART電路
 
由于MSP430F149的片上UART資源都被IMU器件和GNSS接收機占用,因此需要擴充一個(gè)UART接口才能滿(mǎn)足定位系統與PC機間的通信。為此將MSP430F149上的GPIO模擬SPI,再通過(guò)MAX3111E芯片轉成UART接口。
 
MAX3111E是MAXIM公司推出的全功能收發(fā)器,內部包含UART和RS232電平轉換兩個(gè)獨立的部分。UART部分包括兼容于SPI的串行接口、可編程波特率發(fā)生器、發(fā)送移位寄存器、接收移位寄存器、8字長(cháng)的FIFO以及4種可屏蔽中斷發(fā)生器;RS232部分包括電泵電容、硬件關(guān)斷(SHDN管腳),具有±15kV靜電保護作用。它可以選擇1.8432MHz或3.6864MHz兩種晶振作為外部晶振,芯片能夠工作在300bps~230kbps波特率,本文使用的是3.6864MHz晶振。MAX3111E與MSP430F149連接電路如圖5。
 
基于MCU的室外移動(dòng)機器人組合導航定位系統
圖5 SPI轉UART電路
 
MAX3111E的控制命令分為寫(xiě)配置命令、讀配置命令、寫(xiě)數據命令以及讀數據命令四種。本文寫(xiě)入芯片的配置命令是0xE809,8bit數據長(cháng)度、使能FIFO、發(fā)送中斷使能、波特率38400bps。數據的寫(xiě)入需要在每個(gè)字節前面加上0x81,例如若要發(fā)送字節0x55,則需要從DIN端移位輸入0x8155。
 
下面是連續發(fā)送n個(gè)字節的C語(yǔ)言代碼:
 
SPI_WRITE_16BIT(0xE809);//寫(xiě)配置命令
delay_ms(10);//延時(shí)10ms
SPI_WRITE_16BIT(0x8100+DATA1);//發(fā)送第1個(gè)數據DATA1
delay_ns(250);//延時(shí)250ns
SPI_WRITE_16BIT(0x8100+DATA2);//發(fā)送第2個(gè)數據DATA2
 
……
 
delay_ns(250);//延時(shí)250ns
SPI_WRITE_16BIT(0x8100+DATAn);//發(fā)送第n個(gè)數據DATAn
 
使用MAX3111E時(shí)需要注意:
 
1、片選信號CS的下降沿到時(shí)鐘SCLK信號的第一個(gè)上升沿至少要有100ns的時(shí)間延遲;
 
2、芯片判定片選信號CS失效時(shí),需要CS管腳保持高電平的時(shí)間至少為200ns。因此當需要連續發(fā)送數據時(shí),兩個(gè)寫(xiě)數據命令之間至少需要200ns,建議間隔250ns;
 
3、寫(xiě)配置命令需要晶振工作穩定,因此可以在寫(xiě)配置命令后再讀配置,直到寫(xiě)入和讀出的配置數據相應位相同時(shí)才保證芯片按需求配置完畢。
 
3 軟件設計
 
3.1 GPIO模擬SPI實(shí)現方法
 
使用GPIO模擬SPI,對選定的IO口進(jìn)行時(shí)序上的電平操作,模擬出SPI時(shí)序。本文將SPI的電平操作采用宏定義的方式,可參考表3中的源代碼。
 
基于MCU的室外移動(dòng)機器人組合導航定位系統
 
程序按照SPI邏輯關(guān)系使用上述的宏定義,可以在選定的IO端口產(chǎn)生SPI信號,并且可以靈活的控制每個(gè)CS有效期間的時(shí)鐘數。使用GPIO模擬的SPI具有操作直觀(guān)、靈活可變等優(yōu)點(diǎn)。相比較模擬得到的SPI,控制器上自帶的SPI接口基本不占用控制器資源,發(fā)送和接收的移位、時(shí)鐘信號的產(chǎn)生都交由內部SPI模塊處理。而GPIO模擬的SPI需要控制器不斷對IO進(jìn)行操作,因此會(huì )占用控制器處理時(shí)間。時(shí)鐘信號也因對電平操作消耗機器周期,導致時(shí)鐘信號速度有限。
 
3.2 數據的采集和處理方法
 
IMU和GNSS接收機的數據會(huì )主動(dòng)發(fā)送到430單片機的UART接口,本文采用中斷接收的方式接收數據,將每次到來(lái)的一個(gè)字節循環(huán)存儲在指定的存儲區;氣壓計需要430單片機查詢(xún)式獲取高度信息。因此當需求IMU或者GNSS信息的時(shí)候,需要在存儲區內掃描數據,掃描依據是設備發(fā)送一幀數據的協(xié)議(幀頭、幀尾、CRC等),再根據協(xié)議獲取相應物理量的數值;當需要高度信息的時(shí)候,需要430單片機對氣壓計發(fā)送控制字獲取信息。在對IMU和GNSS信息掃描時(shí)需要一個(gè)變量ptr保存有效數據的首地址在存儲區內的偏移地址,為了不重復使用已用數據,需要在利用完信息后,破壞這一幀有效數據的幀頭幀尾。
 
另外需要注意,使用循環(huán)存儲數據和掃描取用這種方式,需要數據的處理速度比數據的接收速度快,否則舊數據會(huì )被新數據覆蓋。
 
3.3 高度計算方法
 
高度信息的獲取需要通過(guò)MS5803-02BA獲取的氣壓信息轉換得到。對這款氣壓計的操作,需要先在芯片內部的PROM獲取C1~C6六個(gè)參數,再獲取溫度ADC結果D1和氣壓ADC結果D2,最后利用官方提供的計算公式計算得到帶補償的氣壓值。氣壓值獲取的軟件流程圖如圖6。
 
基于MCU的室外移動(dòng)機器人組合導航定位系統
圖6 高度計算流程圖
 
按照氣壓計的用戶(hù)手冊中提供的計算公式,最后可以計算得到一個(gè)經(jīng)過(guò)溫度補償的標準氣壓值,單位mbar。高度信息的獲取還需要將氣壓值經(jīng)過(guò)函數關(guān)系轉換。高度h和標準大氣P之間有如下函數關(guān)系:
 
基于MCU的室外移動(dòng)機器人組合導航定位系統
 
Th=288.15K,是g0對應高度下的溫度下限值;β=-6.5K/km,是溫度的垂直變化率;H=0m,是g0對應的高度;Ph=101325Pa,是g0對應高度下的氣壓下限值;R=287.05287m2/(K●s2),是氣體常數;g0=9.80665m/s2,是海平面重力加速度。
 
在氣壓與高度的關(guān)系轉換中,本文采用分段線(xiàn)性化的方法擬合它們的非線(xiàn)性關(guān)系。在不同氣壓值區間內,線(xiàn)性化公式得到h=a●P+b,取得不同的線(xiàn)性參數a、b,參考表4。
 
基于MCU的室外移動(dòng)機器人組合導航定位系統
 
3.4 組合導航的時(shí)間對準
 
進(jìn)行組合導航濾波解算時(shí),從IMU和GNSS接收機接收到的數據在時(shí)間上應該是同步的,因為如果在一個(gè)數據融合點(diǎn)上,進(jìn)入Kalman濾波器的來(lái)自?xún)蓚€(gè)子系統中的數據來(lái)自不同的時(shí)間點(diǎn),會(huì )給濾波計算帶來(lái)誤差,同時(shí)也會(huì )給校正計算帶來(lái)影響。GNSS接收機輸出的導航數據都帶有精確的時(shí)間標簽,而從 IMU 輸出的數據只有一個(gè)相對時(shí)間標簽。以GNSS接收機的時(shí)間標簽作為時(shí)間基準,分析時(shí)間差的組成。系統時(shí)間示意圖如圖7所示。
 
基于MCU的室外移動(dòng)機器人組合導航定位系統
圖7 系統時(shí)鐘示意圖
 
3.4.1 時(shí)間差分析
 
當一個(gè)GNSS數據(1Hz)到來(lái)時(shí),接收機產(chǎn)生一個(gè)秒脈沖信號(PPS),用于時(shí)間對準。GNSS接收機本身存在數據時(shí)延:接收機整個(gè)計算過(guò)程會(huì )產(chǎn)生一個(gè)解算時(shí)間延遲△t1、從衛星導航接收機和慣導系統輸出的數據分別經(jīng)過(guò)McBSP和RS-232數據接口輸入導航解算處理器會(huì )產(chǎn)生一定的傳輸延遲△t2。因此在PPS信號前的△t1+△t2時(shí)刻才是當前接收到的GNSS數據幀的真實(shí)時(shí)刻。IMU數據處理時(shí)間相對于遞推時(shí)間來(lái)說(shuō)很小,可以忽略。另外PPS脈沖信號和慣性測量信號之間的時(shí)間差△τ,它描述GNSS絕對時(shí)間和IMU相對時(shí)間之間的關(guān)系,使得GNSS和IMU統一在同一個(gè)時(shí)間標準下。
 
3.4.2 處理思想
 
根據總時(shí)間差△T =△t1+△t2+△τ,找到IMU數據對應的插值時(shí)刻。通過(guò)時(shí)間△T就可以獲得對準時(shí)間點(diǎn)與最近的兩個(gè)慣性采集時(shí)刻,其后對時(shí)間同步點(diǎn)兩側時(shí)間點(diǎn)上,即圖中t(k-1)和t(k)時(shí)間點(diǎn)的慣性數據進(jìn)行線(xiàn)性插值運算,就可以獲得了慣導數據和GNSS接收機數據在同一時(shí)間點(diǎn)上的同步化測量數據。
 
3.4.3 實(shí)施方法
 
GNSS接收機解算時(shí)間△t1由接收機提供。
 
傳輸時(shí)間△t2通常為一個(gè)固定時(shí)間,使用示波器分別測量GNSS接收機發(fā)送時(shí)間和導航解算電路的接收時(shí)間,再將兩個(gè)時(shí)間作差即可獲得。
 
△τ的獲取需要開(kāi)啟MSP430F149的計時(shí)器和外部中斷,通過(guò)中斷計時(shí)的方式獲得。具體方法是:通過(guò)將PPS信號接入導航處理器的外部中斷接口,采用邊沿觸發(fā)方式觸發(fā)中斷事件的發(fā)生。中斷事件啟動(dòng)計時(shí)器工作。當通過(guò)串口中斷方式接收到IMU數據時(shí),讀取計時(shí)器的值,即可得到IMU數據相對于PPS的延遲時(shí)間△τ。
 
結論
 
本文基于MSP430F149單片機設計的室外移動(dòng)機器人組合導航定位系統,通過(guò)接口的擴展使得該款定位系統能夠接入IMU、GNSS接收機、氣壓計三路信息,完成初步導航定位服務(wù)功能,同時(shí)可作為多路數據采集設備,將多路數據整合到一路高速輸出接口,用于進(jìn)一步的高精度導航解算。該系統根據使用者的需求不同,可接入不同成本和精度的設備,只要滿(mǎn)足RS-232協(xié)議即可。筆者將其實(shí)際運用,整個(gè)系統充分利用該款單片機的資源,結構簡(jiǎn)單、功耗低、適用范圍廣,不僅可作為初步導航定位服務(wù)的設備,還可作為多路數據采集設備。
 
免責聲明:本文為轉載文章,轉載此文目的在于傳遞更多信息,版權歸原作者所有。本文所用視頻、圖片、文字如涉及作品版權問(wèn)題,請電話(huà)或者郵箱聯(lián)系小編進(jìn)行侵刪。
 
 
推薦閱讀:
MPS 全集成電源模塊為云計算助力
具有超快瞬態(tài)響應和低功耗的有源整流控制器,真是讓人愛(ài)不釋手呀!
SiC功率器件篇之SiC SBD
鋰電池充電電路設計
新一代內存DDR5帶來(lái)了哪些改變?
特別推薦
技術(shù)文章更多>>
技術(shù)白皮書(shū)下載更多>>
熱門(mén)搜索
?

關(guān)閉

?

關(guān)閉

久久无码人妻精品一区二区三区_精品少妇人妻av无码中文字幕_98精品国产高清在线看入口_92精品国产自产在线观看481页
<s id="eoqoe"><xmp id="eoqoe">
<button id="eoqoe"><strong id="eoqoe"></strong></button>
<s id="eoqoe"><xmp id="eoqoe">
<button id="eoqoe"><strong id="eoqoe"></strong></button>
<wbr id="eoqoe"></wbr>
<wbr id="eoqoe"><strong id="eoqoe"></strong></wbr>
<wbr id="eoqoe"><strong id="eoqoe"></strong></wbr>
<wbr id="eoqoe"><strong id="eoqoe"></strong></wbr>
<wbr id="eoqoe"><label id="eoqoe"></label></wbr>
<button id="eoqoe"></button>
<wbr id="eoqoe"></wbr>