0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

基于STM32F103VCT6處理器和XBee協(xié)調(diào)實(shí)現(xiàn)家庭服務(wù)機(jī)器人系統(tǒng)的設(shè)計

電子設(shè)計 ? 來源:電子產(chǎn)品世界 ? 作者:胡振旺;陳益民; ? 2021-04-13 15:32 ? 次閱讀

作者:胡振旺;陳益民;李林 來源:電子產(chǎn)品世界

引言

隨著人工智能傳感器技術(shù)的發(fā)展,機(jī)器人已從工廠的結(jié)構(gòu)化環(huán)境進(jìn)入人們的日常生活環(huán)境,機(jī)器人不僅能自主完成工作,還能與人共同協(xié)作完成任務(wù)或在人的指導(dǎo)下完成任務(wù)[1]。家庭服務(wù)機(jī)器人是智能家居系統(tǒng)[2]的一個重要組成部分,在生活中的作用越來越重要。當(dāng)前,大部分的家庭服務(wù)機(jī)器人不具備行走功能或只具有簡單的避障能力,機(jī)器人的研究很多依賴于仿真實(shí)現(xiàn),但是現(xiàn)實(shí)情況和仿真結(jié)果可能大相徑庭。也有一些研究將問題復(fù)雜化,反而走了更多的彎路。

針對當(dāng)前家庭服務(wù)機(jī)器人的不足和現(xiàn)代智能服務(wù)機(jī)器人的要求,本文提出一種基于STM32的家庭服務(wù)機(jī)器人系統(tǒng)的設(shè)計方案。該方案模擬智能家居環(huán)境,簡化了定位方式,有效地利用了ZigBee技術(shù)低成本、低功耗的特點(diǎn)[3],設(shè)計出一個合適大小的輪式機(jī)器人進(jìn)行試驗(yàn),試驗(yàn)結(jié)果表明機(jī)器人能夠?qū)崿F(xiàn)預(yù)期目標(biāo)并體現(xiàn)出較強(qiáng)的自主決策能力。

1 系統(tǒng)整體設(shè)計方案

整個家庭服務(wù)機(jī)器人系統(tǒng)主要由四部分組成,包括鋪滿RFID智慧地板的模擬智能家居環(huán)境、移動的輪式機(jī)器人、XBee協(xié)調(diào)器以及上位機(jī)。

智能家居環(huán)境設(shè)計長為3.25米,寬為2米,鋪滿RFID智能地板,分隔成廚房和客廳兩個房間,中間的房門寬0.3米。廚房有水槽、擱板、智能冰箱等電器,客廳有餐桌、餐椅等。RFID智能地板的排列信息給機(jī)器人提供準(zhǔn)確定位。輪式機(jī)器人負(fù)責(zé)往返廚房與客廳之間給服務(wù)對象運(yùn)送物品,是整個系統(tǒng)的核心部分。XBee協(xié)調(diào)器是基于ZigBee技術(shù)的無線傳輸模塊,負(fù)責(zé)數(shù)據(jù)快速穩(wěn)定地傳遞。上位機(jī)主要負(fù)責(zé)數(shù)據(jù)的接收、處理和控制指令的下達(dá)等。

2 系統(tǒng)工作原理和流程

系統(tǒng)的主要工作流程是:上位機(jī)輸入任務(wù)命令,該命令通過XBee協(xié)調(diào)器發(fā)送給輪式機(jī)器人。機(jī)器人收到任務(wù)命令后從休眠模式啟動,讀取智能地板RFID定位信息,將該實(shí)時位置信息上傳到上位機(jī),以顯示機(jī)器人運(yùn)動軌跡。機(jī)器人通過傳感器模塊檢測自身姿態(tài)和周圍障礙物情況,自主決策移動至目標(biāo)位置抓取物品,運(yùn)送到最終目標(biāo)位置給服務(wù)對象使用。其中,輪式機(jī)器人是整個系統(tǒng)設(shè)計的重點(diǎn)。

2.1 XBee協(xié)調(diào)器工作流程

XBee協(xié)調(diào)器是最先啟動的XBee網(wǎng)絡(luò)節(jié)點(diǎn),主要完成XBee網(wǎng)絡(luò)的組網(wǎng)功能和數(shù)據(jù)的收發(fā)功能,其中組網(wǎng)功能包括XBee網(wǎng)絡(luò)的建立和子節(jié)點(diǎn)的入網(wǎng)。

首先,在XBee協(xié)調(diào)器上電復(fù)位后對包括硬件和軟件的各個模塊進(jìn)行初始化。然后,開始掃描信道、進(jìn)行能量檢測、選擇信道以及選擇合適的PAN ID。成功之后就廣播網(wǎng)絡(luò)ID、信道,XBee網(wǎng)絡(luò)就建立了。之后,XBee協(xié)調(diào)器進(jìn)入監(jiān)聽狀態(tài),等待子節(jié)點(diǎn)發(fā)送入網(wǎng)請求信號,收到入網(wǎng)請求后協(xié)調(diào)器允許子節(jié)點(diǎn)入網(wǎng)并分配網(wǎng)絡(luò)短地址給子節(jié)點(diǎn),這就實(shí)現(xiàn)了節(jié)點(diǎn)的入網(wǎng)功能。最后,XBee協(xié)調(diào)器將上位機(jī)數(shù)據(jù)發(fā)送給子節(jié)點(diǎn)射頻模塊,啟動輪式機(jī)器人,在收到來自子節(jié)點(diǎn)的數(shù)據(jù)請求后,將接收數(shù)據(jù)并通過串口線傳輸給上位機(jī),這就是數(shù)據(jù)的收發(fā)功能。

2.2 輪式機(jī)器人工作流程

輪式機(jī)器人是任務(wù)的執(zhí)行設(shè)備,往返于廚房和客廳兩個房間之間,準(zhǔn)確和高效地執(zhí)行用戶對象發(fā)送的各種命令任務(wù),并發(fā)送機(jī)器人坐標(biāo)數(shù)據(jù)給XBee協(xié)調(diào)器進(jìn)行以下工作。

首先,輪式機(jī)器人上的XBee模塊需要初始化和發(fā)送入網(wǎng)請求,實(shí)現(xiàn)節(jié)點(diǎn)入網(wǎng)。然后,XBee模塊接收XBee協(xié)調(diào)器傳輸?shù)娜蝿?wù)命令數(shù)據(jù),主板對各傳感器模塊初始化。RFID讀卡器讀取智能地板坐標(biāo)數(shù)據(jù),發(fā)送給XBee協(xié)調(diào)器。電子羅盤獲取機(jī)器人當(dāng)前的姿態(tài)信息。紅外傳感器檢測機(jī)器人所處環(huán)境的障礙物距離,主板控制啟動由左右兩個連續(xù)旋轉(zhuǎn)舵機(jī)組成的移動輪。機(jī)器人通過自主決策規(guī)劃路徑,移動至目標(biāo)位置,啟動機(jī)械臂抓取物品,其中機(jī)械臂由多個角度舵機(jī)組成。在機(jī)械臂保持抓取物品的狀態(tài)下,再次規(guī)劃路徑移動至最終地點(diǎn),機(jī)械臂準(zhǔn)確將物品放在目標(biāo)位置。完成任務(wù)后機(jī)器人回到起始位置,進(jìn)入休眠模式。

3 關(guān)鍵環(huán)節(jié)設(shè)計

3.1 機(jī)器人硬件結(jié)構(gòu)設(shè)計

輪式機(jī)器人采用模塊化的設(shè)計原則,使機(jī)器人的設(shè)計為模塊化方式,并采用分層控制,有利于綜合性能的發(fā)揮[4] 。將機(jī)器人系統(tǒng)分為五個部分:主板、傳感器模塊、無線射頻模塊、舵機(jī)模塊和電源模塊。輪式機(jī)器人的結(jié)構(gòu)框圖如圖1所示。

o4YBAGB1ScaAZcX1AABvMt8DaNc743.png

3.1.1 主板

主板是針對該輪式機(jī)器人設(shè)計,采用ARM Cortex-M3內(nèi)核的STM32F103VCT6處理器,主板資源包括SDRAM、NAND Flash,UART接口、GPIO接口、SPI接口和JTAG接口。輔助的資源有USB接口、定時器等。

主板的設(shè)計專門為射頻模塊、傳感器模塊和機(jī)械臂模塊提供了接口,簡化了電路結(jié)構(gòu),使控制器集成度更高,運(yùn)行更加穩(wěn)定和高效,從而節(jié)約硬件成本。

3.1.2 傳感器模塊

傳感器模塊由傳感器和相應(yīng)的信號調(diào)理電路組成。輪式機(jī)器人使用的傳感器包括紅外傳感器、電子羅盤和RFID讀卡器。根據(jù)輪式機(jī)器人移動過程中檢測障礙物距離的精度要求,紅外傳感器采用的型號為Sharp GP2D12,分別安裝在機(jī)器人前方、左前方、右前方、左側(cè)和右側(cè)五個位置。電子羅盤采用GY-80九軸模塊中的HMC5883L三軸電子羅盤,可以在復(fù)雜環(huán)境下測得準(zhǔn)確方位值,抗磁電干擾能力較強(qiáng)。RFID讀卡器采用Parallax公司的低頻段28140讀卡器,可讀取125kHz標(biāo)簽。

3.1.3 射頻模塊

射頻模塊是設(shè)備之間通信的主要模塊,負(fù)責(zé)整個網(wǎng)絡(luò)的數(shù)據(jù)傳輸工作。射頻模塊采用基于ZigBee技術(shù)的XBee無線傳輸模塊,該模塊覆蓋面積大且易于配置,是機(jī)器人通訊組網(wǎng)的不錯選擇。

XBee協(xié)調(diào)器由XBee無線模塊和XBee USB適配板組成。XBee USB適配板是專門為XBee無線模塊配套設(shè)計,通過使用該模塊,可以在PC機(jī)使用配套的X-CTU軟件對XBee無線模塊進(jìn)行配置及串口通訊監(jiān)控。XBee協(xié)調(diào)器通過USB線與上位機(jī)連接通信。

3.1.4 舵機(jī)模塊

舵機(jī)模塊分為機(jī)械臂舵機(jī)和移動輪舵機(jī),機(jī)械臂由角度舵機(jī)和金屬桿件組成。五個角度舵機(jī)構(gòu)成五自由度機(jī)械臂,尺寸大小與搭建智能家居環(huán)境匹配,為保證機(jī)械臂動作精度,采用HS-322HD角度舵機(jī)。移動輪舵機(jī)使用Parallax連續(xù)旋轉(zhuǎn)舵機(jī)。3.1.5 電源模塊

根據(jù)各個組成部分工作的場合和特點(diǎn)的不同,采用不同的供電模式,輪式機(jī)器人采用電池供電的模式,而XBee協(xié)調(diào)器則要一直保持工作狀態(tài),所以采用上位機(jī)USB供電的模式。電源模塊與主板相連,而主板留有接口給傳感器模塊、射頻模塊和舵機(jī)模塊,通過接口給傳感器模塊、射頻模塊和舵機(jī)模塊進(jìn)行供電。由于RFID讀卡器對電流要求較高,因此主板和RFID讀卡器分開使用雙電源供電。

3.2 機(jī)器人軟件設(shè)計3.2.1驅(qū)動控制設(shè)計

驅(qū)動控制設(shè)計包括各個模塊的初始化、模塊之間的通信和上位機(jī)軟件設(shè)計。該文采用與STM32F103VCT6配套的MDK-ARM作為開發(fā)環(huán)境,完成各個模塊初始化和通信,上位機(jī)軟件采用VC++開發(fā)。具體的各個模塊軟件實(shí)現(xiàn)的功能及工作流程在系統(tǒng)的工作原理和流程中已經(jīng)介紹,這里不再敘述。

o4YBAGB1Sc2AUG-NAABdiuNwISM744.png

3.2.2 路徑規(guī)劃

路徑規(guī)劃主要可分為全局路徑規(guī)劃和局部路徑規(guī)劃,前者是指在環(huán)境信息完全已知的情況下,機(jī)器人規(guī)劃一條從初始位置到目標(biāo)位置的無碰撞最優(yōu)路徑;后者由于環(huán)境信息是未知的[5],需考慮局部的特定情況來進(jìn)行路徑調(diào)整。

機(jī)器人移動過程中利用電子羅盤進(jìn)行姿態(tài)調(diào)整,即調(diào)整前進(jìn)方向,努力尋找一條最快捷的路徑到達(dá)目標(biāo)位置。機(jī)器人姿態(tài)調(diào)整主要取決于當(dāng)前位置和前一位置與目標(biāo)位置的距離,包括橫向距離和縱向距離。若當(dāng)前位置與目標(biāo)位置的橫向距離和縱向距離分別小于或者等于前一位置與目標(biāo)位置的橫向距離和縱向距離,表明機(jī)器人與目標(biāo)位置的距離在逐漸縮小,機(jī)器人在朝目標(biāo)位置前進(jìn),否則就說明機(jī)器人沒有按預(yù)期的軌跡前進(jìn),需要再次進(jìn)行姿態(tài)調(diào)整。姿態(tài)調(diào)整示意圖如圖2所示。

局部路徑規(guī)劃包括避障處理、振蕩位置分析、房門位置搜索和過房門策略分析。在機(jī)器人移動過程中,需要不斷探測周圍環(huán)境,從而更好地決定下一步動作。五個紅外傳感器數(shù)據(jù)使機(jī)器人時刻掌握周圍環(huán)境,避障處理要求機(jī)器人合理避開障礙物,向目標(biāo)位置移動。

振蕩位置指的是機(jī)器人不能順利通過某一位置,而在這一點(diǎn)附近反復(fù)來回走動。如果起始位置和目標(biāo)位置分別在兩個房間,在全局路徑規(guī)劃思想的指導(dǎo)下,機(jī)器人會在兩間房的公用墻邊不斷徘徊。振蕩位置分析示意圖如圖3所示。

pIYBAGB1SdSAHOsGAAA78JPqkxo980.png

當(dāng)機(jī)器人到達(dá)振蕩位置時,需要調(diào)整路徑規(guī)劃策略,此時放棄全局路徑規(guī)劃策略,選擇直接以公用墻為基準(zhǔn)墻搜索房門。沿墻走算法的基本規(guī)則是:當(dāng)機(jī)器人不斷靠近墻面時需要調(diào)整兩輪速差使機(jī)器人朝偏離墻面的方向前進(jìn);當(dāng)機(jī)器人不斷遠(yuǎn)離墻面時,則需要調(diào)整兩輪速差,使機(jī)器人朝靠近墻面的方向前進(jìn)。綜合調(diào)整的結(jié)果是機(jī)器人的前進(jìn)軌跡是以基準(zhǔn)線為軸的類正弦曲線,沿墻走軌跡如圖4所示。

過房門是機(jī)器人完成任務(wù)必不可少的一個環(huán)節(jié),怎樣確保機(jī)器人順利穿過房門是任務(wù)成功的關(guān)鍵。機(jī)器人準(zhǔn)備過房門時并不是正對房門,可能向左側(cè)或者右側(cè)不同程度的傾斜。根據(jù)傾斜程度的劃分,機(jī)器人檢測相對應(yīng)的紅外傳感器距離值,不斷調(diào)整機(jī)器人姿態(tài),使機(jī)器人正對房門并順利通過。

o4YBAGB1SduAdxdFAABErIsVFKA946.png

4 結(jié)束語

本文設(shè)計的家庭服務(wù)機(jī)器人系統(tǒng),為智能家居環(huán)境服務(wù)對象的需求任務(wù)提出了詳細(xì)可行的解決方案。整個系統(tǒng)應(yīng)用了基于XBee模塊的主流無線通信技術(shù),以保證數(shù)據(jù)的傳輸速率。此外,對輪式機(jī)器人的模塊化設(shè)計具有結(jié)構(gòu)簡單和性能穩(wěn)定等特點(diǎn),大大提高了家庭服務(wù)機(jī)器人的可靠性,并且降低了系統(tǒng)的硬件成本。自主決策過程中的路徑規(guī)劃,使得機(jī)器人能夠快速沿著最合適的路線移動??傊?,該設(shè)計系統(tǒng)對家庭服務(wù)機(jī)器人相關(guān)問題的解決提供了可借鑒的方法。

責(zé)任編輯:gt

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 處理器
    +關(guān)注

    關(guān)注

    68

    文章

    19387

    瀏覽量

    230518
  • 機(jī)器人
    +關(guān)注

    關(guān)注

    211

    文章

    28571

    瀏覽量

    207736
  • 智能家居
    +關(guān)注

    關(guān)注

    1928

    文章

    9592

    瀏覽量

    185814
收藏 人收藏

    評論

    相關(guān)推薦

    請問stm32f103VCT6的spi1的兩接口可以混用嗎?

    我在設(shè)計硬件時spi連岔了線,為了盡可能少改動已有的線,我發(fā)現(xiàn)spi1在stm32f103vct6上有兩。我想用PB5作為MOSI,用PA5PA6作為SCK和MISO,但是在cubemx設(shè)置發(fā)現(xiàn)不能同時設(shè)置,如果不用cubem
    發(fā)表于 07-22 07:32

    stn32f103vbt6stm32f103vct6的區(qū)別

    請問stm32103vbt6stm32f103vct6有什么區(qū)別?。课矣?b class='flag-5'>STM32F103VCT6驅(qū)動12864的程序移植到STM32F103VBT6上面就不好使了?請問問題出在哪里
    發(fā)表于 12-18 10:47

    stm32103vbt6stm32f103vct6

    請問stm32103vbt6stm32f103vct6有什么區(qū)別???我用STM32F103VCT6驅(qū)動12864的程序移植到STM32F103VBT6上面就不好使了?請問問題出在哪里
    發(fā)表于 12-18 10:49

    stm32f103vct6用uc/osii操作系統(tǒng)使用定時6配置

    stm32f103vct6用uc/osii操作系統(tǒng)使用定時6需要配置什么地方?同樣的代碼將6改為3就可以運(yùn)行,時鐘和中斷均已配置,求大神幫
    發(fā)表于 03-31 11:28

    【Aworks申請】家庭服務(wù)機(jī)器人

    申請理由:以開發(fā)板為處理器,利用深度傳感Kinect,實(shí)現(xiàn)家庭服務(wù)機(jī)器人的 物體識別技術(shù)、人體
    發(fā)表于 07-19 23:33

    STM32F103VCT6最小系統(tǒng)

    Cortex-M3的32位處理器芯片 STM32F103VCT6 LQFP100腳,片內(nèi)具有256KB FLASH,48KB RAM ( 片上集成12Bit A/D、D/A、PWM、CAN、USB、SDIO
    發(fā)表于 06-12 16:14

    STM32F103VCT6做多路數(shù)據(jù)采集系統(tǒng)處理函數(shù)不會寫

    小弟用STM32F103VCT6做多路數(shù)據(jù)采集系統(tǒng),ADC,USART,DMA,GPIO,RCC都配置了,最后的主處理函數(shù)(紅字部分)不會寫,求指點(diǎn)。 8路數(shù)據(jù)采集系統(tǒng).doc (49
    發(fā)表于 04-07 23:49

    智能家居—機(jī)器人保姆設(shè)計方案!

    、傳感模塊、射頻模塊、舵機(jī)模塊、電源模塊和機(jī)器人金屬主體組成,傳感模塊包括電子羅盤、紅外傳感和RFID讀卡。主板以ARM Corte
    發(fā)表于 09-04 16:10

    stm32f103zet6stm32f103vct6的區(qū)別在哪

    stm32f103zet6stm32f103vct6的區(qū)別1、STM32F系列屬于中低端的32位ARM微控制,該系列芯片是意法半導(dǎo)體(ST)公司出品,其內(nèi)核是Cortex-M3?!?/div>
    發(fā)表于 08-04 08:28

    stm32f103zet6stm32f103vct6有何不同

    STM32命名規(guī)則有哪些?stm32f103zet6stm32f103vct6有何不同?
    發(fā)表于 10-15 06:32

    用GD32F103VCT6替代STM32F103VCT6出現(xiàn)與DSP通訊失敗怎么解決?

    用GD32F103VCT6替代STM32F103VCT6出現(xiàn)與DSP通訊失敗怎么解決?
    發(fā)表于 02-08 06:36

    如何去實(shí)現(xiàn)基于STM32F103VCT6和VSCode的硬件驅(qū)動代碼呢

    如何去實(shí)現(xiàn)基于STM32F103VCT6和VSCode的硬件驅(qū)動代碼呢?
    發(fā)表于 02-15 07:15

    基于STM32F103VCT6單片機(jī)的微位移控制系統(tǒng)設(shè)計

    根據(jù)微位移控制系統(tǒng)的設(shè)計要求,首先應(yīng)保證控制系統(tǒng)的定位精度,其次應(yīng)盡量做到結(jié)構(gòu)簡單,成本低,操作簡便。基于上述考慮,本文設(shè)計了如圖1所示的微位移控制系統(tǒng)。其中,采用STM32F103VCT6
    發(fā)表于 03-26 14:39 ?8382次閱讀
    基于<b class='flag-5'>STM32F103VCT6</b>單片機(jī)的微位移控制<b class='flag-5'>系統(tǒng)</b>設(shè)計

    基于STM32家庭服務(wù)機(jī)器人系統(tǒng)工作原理及設(shè)計

    為解決當(dāng)前大部分家庭服務(wù)機(jī)器人不具備行走功能或只具有簡單的避障能力等問題,本文設(shè)計一種基于STM32家庭
    的頭像 發(fā)表于 04-06 08:26 ?1.4w次閱讀
    基于<b class='flag-5'>STM32</b>的<b class='flag-5'>家庭</b><b class='flag-5'>服務(wù)</b><b class='flag-5'>機(jī)器人</b><b class='flag-5'>系統(tǒng)</b>工作原理及設(shè)計

    stm32f103zet6stm32f103vct6的區(qū)別

    stm32f103zet6stm32f103vct6的區(qū)別1、STM32F系列屬于中低端的32位ARM微控制,該系列芯片是意法半導(dǎo)體(ST)公司出品,其內(nèi)核是Cortex-M3。 
    發(fā)表于 12-02 15:21 ?39次下載
    <b class='flag-5'>stm32f103zet6</b>與<b class='flag-5'>stm32f103vct6</b>的區(qū)別