女人自慰AV免费观看内涵网,日韩国产剧情在线观看网址,神马电影网特片网,最新一级电影欧美,在线观看亚洲欧美日韩,黄色视频在线播放免费观看,ABO涨奶期羡澄,第一导航fulione,美女主播操b

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

基于MCU的室外移動機器人組合導航定位系統

jf_pJlTbmA9 ? 來源:jf_pJlTbmA9 ? 作者:jf_pJlTbmA9 ? 2023-07-23 17:17 ? 次閱讀

對于在室外環境工作的移動機器人通常使用慣導/衛星組合導航方式。慣性導航系統[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協議即可。筆者將其實際運用,整個系統充分利用該款單片機的資源,結構簡單、功耗低、適用范圍廣,不僅可作為初步導航定位服務的設備,還可作為多路數據采集設備。

審核編輯:湯梓紅
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 單片機
    +關注

    關注

    6061

    文章

    44910

    瀏覽量

    646459
  • mcu
    mcu
    +關注

    關注

    146

    文章

    17822

    瀏覽量

    359981
  • 移動機器人
    +關注

    關注

    2

    文章

    784

    瀏覽量

    33985
  • uart
    +關注

    關注

    22

    文章

    1264

    瀏覽量

    103189
收藏 人收藏

    評論

    相關推薦
    熱點推薦

    基于MCU室外移動機器人組合導航定位系統

    對于在室外環境工作的移動機器人通常使用慣導/衛星組合導航方式。慣性導航系統[1]具有完全自主、抗干擾強、隱蔽能力好和輸出參數全面等優點,但它
    發表于 10-07 10:03 ?3337次閱讀
    基于<b class='flag-5'>MCU</b>的<b class='flag-5'>室外</b><b class='flag-5'>移動機器人</b><b class='flag-5'>組合</b><b class='flag-5'>導航</b><b class='flag-5'>定位</b><b class='flag-5'>系統</b>

    Labview My RIO 移動機器人

    LabView For MyRIO。myRIO組件包中有機器視覺處理模塊,多軸聯動插補運動解算模塊,移動機器人Robotic開發包,內部有全向輪運動解算模塊,移動機器人路徑規劃,定位
    發表于 08-21 12:20

    基于MSP430F149單片機設計的室外移動機器人組合導航定位系統

      對于在室外環境工作的移動機器人通常使用慣導/衛星組合導航方式。慣性導航系統具有完全自主、抗干擾強、隱蔽能力好和輸出參數全面等優點,但它的
    發表于 07-11 07:08

    家庭移動機器人避障常用傳感器及相關技術

    移動機器人機器人的重要研究領域,人們很早就開始移動機器人的研究。世界上第一臺真正意義上的移動機器人是斯坦福研究院(SRI)的人工智能中心于1966年到1972年研制的,名叫Shake
    發表于 05-14 08:15

    如何實現移動機器人的設計?

    導航技術,計算機技術,人工智能等多個領域,因而對移動機器人的控制部分提出很高的要求,特別是視覺傳感器的出現,要求控制系統不僅存儲量大,而且處理速度快等。以往基于PLC和單片機控制的移動機器人
    發表于 11-23 15:08

    請問怎么設計一種室外移動機器人組合導航定位系統

    怎么設計一種室外移動機器人組合導航定位系統?如何實現室外
    發表于 04-19 10:50

    什么是移動機器人軟硬件系統問題

    的實踐經驗,來系統的梳理一下什么是移動機器人軟硬件系統問題。文中涉及到的開源項目網站地址如下:開源項目網站Handsfree
    發表于 08-06 06:13

    【科普】干貨!帶你從0了解移動機器人(三) ——自主導航系統及上位機軟件設計與實現

    發展。在前兩篇文章中,我們介紹了移動機器人的基本概念和硬件組成。本文繼續深入探討移動機器人的自主導航系統及上位機軟件****設計與實現。 01移動機器人的內載算法 為了實現
    發表于 06-28 09:36

    【科普】干貨!帶你從0了解移動機器人(四) ——移動機器人導航技術

    ,施工較為方方便,能夠適應各種使用環境。 02二維碼導航 二維碼導航屬于視覺識別,實現原理是在地面鋪設二維碼陣列,通過移動機器人(AGV/AMR)下方的相機掃描二維碼實現機器人
    發表于 06-28 09:52

    移動機器人導航定位技術

    導航定位移動機器人應用中的一個瓶頸技術,針對移動機器人所處的不確定環境和自身狀態的不可測性,本文系統綜述了
    發表于 05-27 13:37 ?28次下載

    移動機器人導航定位技術

    移動機器人導航定位技術!資料來源網絡,如有侵權,敬請原諒!
    發表于 12-25 09:49 ?13次下載

    基于ARM的移動機器人組合導航系統設計與實現

    基于ARM的移動機器人組合導航系統設計與實現
    發表于 09-25 13:38 ?5次下載
    基于ARM的<b class='flag-5'>移動機器人</b><b class='flag-5'>組合</b><b class='flag-5'>導航系統</b>設計與實現

    9種常見導航系統的軟硬件設計

    ,許多車型原車自帶的GPS也屬于這種類型。而筆記本式產品在使用便捷性上受到一定的限制,除了一些發燒友外,很少有人將其用于汽車導航。 基于MCU室外移動機器人
    發表于 11-20 16:38 ?0次下載

    基于MSP430F149的室外移動機器人高精度組合導航系統

    本文以低功耗MSP430F149為核心,設計了能夠同時實現衛星導航(GNSS)接收機、慣性測量單元(IMU)、氣壓高度等導航信息的高速采集與高速合路傳輸,并進行初步導航定位信息融合的
    發表于 04-06 09:54 ?3197次閱讀
    基于MSP430F149的<b class='flag-5'>室外</b><b class='flag-5'>移動機器人</b>高精度<b class='flag-5'>組合</b><b class='flag-5'>導航系統</b>

    室外移動機器人分類

    在室內外移動機器人產業浪潮的推動下,移動機器人市場持續升溫,行業分工作業將機器人分為機器人行業應用端與模塊化機器人底盤 。 模塊化
    的頭像 發表于 12-14 10:58 ?2166次閱讀
    <b class='flag-5'>室外</b><b class='flag-5'>移動機器人</b>分類