色婷婷AⅤ一区二区三区|亚洲精品第一国产综合亚AV|久久精品官方网视频|日本28视频香蕉

          新聞中心

          EEPW首頁(yè) > 機(jī)器人 > 設(shè)計(jì)應(yīng)用 > 一種倉(cāng)庫(kù)搬運(yùn)機(jī)器人的設(shè)計(jì)與實(shí)現(xiàn)*

          一種倉(cāng)庫(kù)搬運(yùn)機(jī)器人的設(shè)計(jì)與實(shí)現(xiàn)*

          作者:嚴(yán)毓培,尹雪梅,湯佩豫,黎偉,鄧澤霖,朱貴芳(珠海城市職業(yè)技術(shù)學(xué)院,廣東珠海 519090) 時(shí)間:2022-12-20 來(lái)源:電子產(chǎn)品世界 收藏
          編者按:大部分的機(jī)器人設(shè)計(jì)都是基于ROS系統(tǒng),該系統(tǒng)的優(yōu)點(diǎn)是功能豐富、設(shè)計(jì)快速,缺點(diǎn)是設(shè)計(jì)的硬件成本高、功耗高,ROS系統(tǒng)龐大,實(shí)時(shí)性不高。針對(duì)以上缺點(diǎn),本文闡述的物流機(jī)器人的設(shè)計(jì)是基于ARM架構(gòu)的S5PV210的CPU,運(yùn)行嵌入式Linux操作系統(tǒng),由單片機(jī)、S5PV210主板和APP3部分組成。該設(shè)計(jì)降低了硬件成本、節(jié)省了電池功耗,可根據(jù)定制需求開(kāi)發(fā),實(shí)時(shí)性較高,且運(yùn)行穩(wěn)定、負(fù)載量大,可在室內(nèi)動(dòng)態(tài)環(huán)境中自主導(dǎo)航并完成相關(guān)搬運(yùn)服務(wù)。目前該物流機(jī)器人已經(jīng)制作完成。

          *基金項(xiàng)目:廣東省普通高校特色創(chuàng)新類項(xiàng)目(自然科學(xué))(2018GKTSCX056);

          本文引用地址:http://cafeforensic.com/article/202212/441869.htm

          廣東普通高校重點(diǎn)項(xiàng)目(自然科學(xué))(2019GZDXM014);

          珠海城市職業(yè)技術(shù)學(xué)院2021年科研項(xiàng)目(KY2021Y01Z);

          2020年教育部高等學(xué)校項(xiàng)目(2020ITA03008)

          0 引言

          目前大部分的機(jī)器人都是基于ROS 系統(tǒng)實(shí)現(xiàn),一般ROS 在Ubentu 系統(tǒng)中的穩(wěn)定性最好,因此需要Intel或者高性能 架構(gòu)的CPU 的支撐,但存在的問(wèn)題是硬件成本高,功耗高,產(chǎn)品的體積大。同時(shí)ROS 系統(tǒng)中有很多功能對(duì)于某些特定的應(yīng)用場(chǎng)景而言是冗余的,這些冗余的功能會(huì)使系統(tǒng)龐大,占用很多內(nèi)存和CPU的資源,而且機(jī)器人反應(yīng)不夠靈敏,實(shí)時(shí)性較差。如果將ROS 移植到基于 架構(gòu)的低成本低功耗的CPU上,或者對(duì)ROS 系統(tǒng)進(jìn)行裁剪以去掉冗余的部分,存在工作難度大周期長(zhǎng)的問(wèn)題,而且ROS 后期運(yùn)行時(shí)不夠穩(wěn)定。因此要設(shè)計(jì)一款在特定應(yīng)用場(chǎng)景中運(yùn)行的低成本、低功耗的機(jī)器人,不應(yīng)采用ROS 系統(tǒng)開(kāi)發(fā),而應(yīng)根據(jù)具體需求采用適用于特定應(yīng)用場(chǎng)景下的定制化的軟硬件設(shè)計(jì)方案,在降低成本、功耗、體積的同時(shí)可以提高系統(tǒng)的穩(wěn)定性和實(shí)時(shí)性。

          1 硬件設(shè)計(jì)

          本文闡述的如圖1 所示,硬件部分由 主板和電路板組成,具體的硬件框架如圖2 所示。

          1671530396996146.png

          圖1

          1671530442295669.png

          圖2 硬件框架圖

          其中ARM 主板采用了S5PV210 的CPU,帶有512M 的RAM 和512 M 的flash,LCD 觸摸屏,SD 卡插槽,3 個(gè)USB接口和4 個(gè)串口,運(yùn)行 操作系統(tǒng)[1],如圖3 所示。利用該主板可實(shí)現(xiàn)機(jī)器人的激光雷達(dá)掃描,LCD 觸摸屏顯示,機(jī)器人與手機(jī)APP 之間的藍(lán)牙通信,運(yùn)行mjpeg-stream 的實(shí)時(shí)web 視頻顯示等功能。

          1671530516591047.png

          圖3 ARM開(kāi)發(fā)板

          因ARM 主板運(yùn)行的是 系統(tǒng),該系統(tǒng)是非實(shí)時(shí)系統(tǒng),無(wú)法準(zhǔn)確讀取25 kHz 的光電編碼器的脈沖,因此用進(jìn)行電機(jī)控制和光電編碼器的脈沖讀取,與S5PV210 主板之間用自定義的通信協(xié)議傳輸電機(jī)數(shù)據(jù)[2],如圖4 所示。

          1671584436499851.png

          圖4 單片機(jī)主板

          1671584657499366.png

          圖5 SCM6716電路板

          1671530894965914.png

          圖6 外接模塊

          SCM6716 的電流驅(qū)動(dòng)模塊,可輸出的最大瞬時(shí)電流達(dá)2 A,如圖5 所示。該機(jī)器人采用了直流電機(jī)搭配減速電機(jī)的方式,增強(qiáng)驅(qū)動(dòng)力,可以負(fù)載超100 kg 重物。

          機(jī)器人外接模塊可以為機(jī)器人提供更加豐富的功能,如圖6 所示,其中USB 攝像頭用來(lái)提供機(jī)器人現(xiàn)場(chǎng)的視頻,USB WiFi 模塊用來(lái)將攝像頭的視頻傳輸?shù)絯eb頁(yè)面瀏覽,串口藍(lán)牙模塊用來(lái)和手機(jī)APP 連接,飛控模塊包含GPS,陀螺儀,電子羅盤,加速度計(jì)等傳感器,并內(nèi)置了傳感器融合等算法,為室內(nèi)機(jī)器人判斷運(yùn)動(dòng)方向提供參考[3]

          機(jī)器人可連接激光傳感器,該傳感器可以掃描周圍的環(huán)境,得到周圍6 m 范圍內(nèi)的每個(gè)障礙物的角度和距離,如圖7 所示。

          1671530979259277.png

          圖7 激光傳感器

          2 軟件設(shè)計(jì)

          2.1 單片機(jī)的軟件設(shè)計(jì)

          機(jī)器人的直流電機(jī)連接著減速電機(jī),因此光電編碼器1 s 可以讀入25 kHz 的脈沖, 但 操作系統(tǒng)是非實(shí)時(shí)的操作系統(tǒng),讀取脈沖不夠準(zhǔn)確[4],因此用單片機(jī)來(lái)讀取25 kHz 的脈沖,并將脈沖值通過(guò)串口自定義的簡(jiǎn)單協(xié)議傳給ARM 開(kāi)發(fā)板。

          單片機(jī)采用STC15F2K60S2,其中外部中斷0 和外部中斷1 分別用來(lái)讀取左右兩個(gè)電機(jī)的光電編碼器的脈沖,定時(shí)器0 設(shè)置為8 位重裝用以設(shè)置波特率為115 200。定時(shí)器1 每4 ms 中斷1 次,在中斷服務(wù)程序里,生成可以驅(qū)動(dòng)直流電機(jī)轉(zhuǎn)速的占空比,每200 ms 計(jì)算1次輪子的速度,假設(shè)兩個(gè)電機(jī)的光電編碼器的脈沖數(shù)為P,輪子轉(zhuǎn)一圈是25 000 個(gè)脈沖,輪子的半徑是r,則輪子的速度為2×3.14×9/25 000,并進(jìn)行1 s 的定時(shí)[5]

          串口中斷服務(wù)程序根據(jù)從ARM 板獲取到的串口信息控制兩個(gè)電機(jī)的啟動(dòng)停止、轉(zhuǎn)動(dòng)方向、設(shè)定速度,如圖8 所示,可通過(guò)手機(jī)APP 或者機(jī)器人的液晶觸摸屏上的按鈕來(lái)發(fā)送這些指令,因點(diǎn)擊按鈕是間斷性的動(dòng)作,同時(shí)發(fā)送兩次設(shè)定速度的按鈕的時(shí)間間隔會(huì)比較久,所以在獲取設(shè)定速度時(shí)如果buffer[2]的值有可能等于13,即’/r’,也不會(huì)認(rèn)為這是新的一條指令。

          1671531186613163.png

          圖8 單片機(jī)串口中斷服務(wù)程序

          1671531256553963.png

          圖9 發(fā)送實(shí)時(shí)電機(jī)速度的協(xié)議

          主程序每秒鐘發(fā)送兩個(gè)電機(jī)的速度到ARM 板,因嵌入式系統(tǒng)底層讀取串口數(shù)據(jù)是不定時(shí)的,很多情況下會(huì)讀取到一個(gè)不完整的包[6],考慮到機(jī)器人的速度不可能達(dá)到65 535 mm/s,因此可以將通信協(xié)議簡(jiǎn)單設(shè)計(jì)如下:

          當(dāng)嵌入式Linux 讀到兩個(gè)連續(xù)的0xFF,則認(rèn)為是1個(gè)新的包的開(kāi)始,將后面接收到的數(shù)據(jù)存放起來(lái),直到讀滿6 個(gè)字節(jié)再開(kāi)始計(jì)算兩個(gè)輪子的速度。

          主程序中每秒將計(jì)算設(shè)定速度的上下限,上限是設(shè)定速度的105%,下限是設(shè)定速度的95%,當(dāng)電機(jī)的速度在上下限之間不需調(diào)節(jié)占空比,否則每200 ms 調(diào)節(jié)1次占空比。

          2.2 嵌入式Linux的軟件設(shè)計(jì)

          1671531340956601.png

          圖10 嵌入式Linux的軟件結(jié)構(gòu)

          系統(tǒng)從QT 的TMainForm 進(jìn)入后分別對(duì)mjpeg-stream,GPIO,串口,液晶屏,攝像頭進(jìn)行初始化,并啟動(dòng)QT的定時(shí)器,每1 秒刷新1 次控件。

          在robot_start 的進(jìn)程中設(shè)置1 個(gè)死循環(huán),不斷從串口0 連接的串口藍(lán)牙模塊來(lái)獲取手機(jī)APP 發(fā)送過(guò)來(lái)的命令并加以執(zhí)行,同時(shí)不斷從串口3 連接的單片機(jī)來(lái)獲取機(jī)器人的速度,通過(guò)與設(shè)定的速度對(duì)比后向單片機(jī)發(fā)送占空比,并根據(jù)累積的脈沖數(shù)計(jì)算機(jī)器人行走的總里程和某時(shí)刻的朝向。

          由于GPS 傳感器、陀螺儀、加速度計(jì)、磁力計(jì)和電子羅盤等傳感器在室內(nèi)無(wú)法使用,該方法使用里程計(jì)信息對(duì)機(jī)器人的位置和角度進(jìn)行計(jì)算,因此機(jī)器人的朝向可以通過(guò)剛體的運(yùn)動(dòng)進(jìn)行計(jì)算得出。

          移動(dòng)機(jī)器人的輪子由電機(jī)帶動(dòng),輪子的直徑為D,則輪子的周長(zhǎng)為πD,電機(jī)轉(zhuǎn)動(dòng)的圈數(shù)m 可以由光電編碼器獲取,當(dāng)機(jī)器人在前進(jìn)或者后退狀態(tài),移動(dòng)機(jī)器人移動(dòng)的距離S 可以由S = m×πD 得到[7]。

          image.png

          圖11 移動(dòng)機(jī)器人的旋轉(zhuǎn)示意圖

          當(dāng)移動(dòng)機(jī)器人在左轉(zhuǎn)或者右轉(zhuǎn)狀態(tài),左轉(zhuǎn)或者右轉(zhuǎn)的角度可以由圖11 中的弧線S 獲取,機(jī)器人的初始位置在黃色的位置,旋轉(zhuǎn)過(guò)一定角度θ2 后到了綠色的位置,從圖1 可知θ1 = θ2,如果可以得到圖11 中的長(zhǎng)度AC,則通過(guò)弧線S 和AC 則可求出機(jī)器人旋轉(zhuǎn)的角度θ1,則旋轉(zhuǎn)角度θ2 也可以得到[8]。

          1671532759442327.png

          圖12 移動(dòng)機(jī)器人的觀測(cè)模型

          從圖12 可知,機(jī)器人的重心位置在A,對(duì)于前后左右對(duì)稱的機(jī)器人,A 是機(jī)器人的中心位置,如果不是前后左右對(duì)稱的機(jī)器人,A 的位置可以通過(guò)測(cè)量得到,B 是機(jī)器人左邊沿的中點(diǎn),C 是左上輪的中心點(diǎn),因此ABBC 的長(zhǎng)度可以通過(guò)測(cè)量得到,則AC 的長(zhǎng)度可通過(guò)余弦定理得到:

          1671532832809884.png

          機(jī)器人后端的光電編碼器得到的反饋脈沖數(shù)的總數(shù)是P,如果機(jī)器人的輪子旋轉(zhuǎn)2π,光電編碼器得到的反饋脈沖數(shù)是F,則旋轉(zhuǎn)的圈數(shù)M = P/F,則旋轉(zhuǎn)角度θ2的弧度值為

          1671532892563912.png

          圖5 中綠色方塊代表在移動(dòng)機(jī)器人,紅色圓圈代表導(dǎo)航的終點(diǎn)位置,A 代表移動(dòng)機(jī)器人的初始位置,C 代表移動(dòng)機(jī)器人在某一時(shí)刻的位置,B 點(diǎn)為導(dǎo)航的終點(diǎn)位置[9],由圖5可知:

          1671532947860741.png

          其中:

          1671532990651181.png

          因?yàn)?em>AB 和α 為移動(dòng)機(jī)器人在初始位置時(shí)獲取的導(dǎo)航終點(diǎn)位置和終點(diǎn)角度,可以由手機(jī)APP 輸入,以便告知初始位置的機(jī)器人,導(dǎo)航終點(diǎn)的距離和角度,因此BXBY可以式(3)計(jì)算得出。

          接下來(lái)計(jì)算CXCY ,因?yàn)闄C(jī)器人運(yùn)動(dòng)的距離會(huì)不斷地累積,因此可知

          1671533084936118.png

          式(4)中i 為機(jī)器人根據(jù)表1 和表2 轉(zhuǎn)變運(yùn)動(dòng)狀態(tài)的次數(shù),S 為機(jī)器人在前進(jìn)和后退時(shí)移動(dòng)的距離,前進(jìn)時(shí)S 為正值,后退時(shí)S 為負(fù)值,β 為機(jī)器人在左轉(zhuǎn)和右轉(zhuǎn)時(shí)轉(zhuǎn)動(dòng)的角度,右轉(zhuǎn)時(shí)β 為正值,左轉(zhuǎn)時(shí)β 為負(fù)值,Sβ 可由里程計(jì)信息得出[10]

          由上得出BXBY , CXCY ,則BC 的值便可以求出,接下來(lái)求移動(dòng)機(jī)器人在任意一點(diǎn)C 的終點(diǎn)角度θ,首先γ 可由下式得出,

          1671564966928849.png

          由圖5 可知,θ =γ β, 因此機(jī)器人在任意位置的終點(diǎn)角度θ 便可求出,需要注意的是當(dāng)θ<0時(shí),θ=θ+2π,因此移動(dòng)機(jī)器人在任意位置相對(duì)于導(dǎo)航終點(diǎn)的距離和終點(diǎn)角度都可以求出,結(jié)合上面的分析,移動(dòng)機(jī)器人在未知室內(nèi)動(dòng)態(tài)環(huán)境中,在無(wú)傳感器,無(wú)地圖和動(dòng)態(tài)避障的情況下導(dǎo)航到終點(diǎn)。

          根據(jù)以上公式,機(jī)器人在每1 s 求1 次角度,并計(jì)算角度的累計(jì)和,以此判斷出機(jī)器人的朝向,因?yàn)榧す鈹?shù)據(jù)處理的進(jìn)程也會(huì)對(duì)角度數(shù)據(jù)進(jìn)行讀寫操作,因此在以上流程執(zhí)行前需要加上互斥鎖mutex_lock,執(zhí)行完畢后關(guān)閉互斥鎖[11]。

          串口3 連接飛控模塊,根據(jù)模塊提供的通信協(xié)議,每1 s 獲取1 次飛控模塊的經(jīng)緯度的數(shù)據(jù),經(jīng)度和緯度數(shù)據(jù)都是4 個(gè)字節(jié),需要拼接后得到十進(jìn)制的經(jīng)緯度,當(dāng)機(jī)器人如果到室外運(yùn)動(dòng)時(shí)可以通過(guò)經(jīng)緯度對(duì)機(jī)器人進(jìn)行粗略的定位。

          機(jī)器人每1 s 也會(huì)判斷設(shè)定速度是否發(fā)生改變,如果改變了就會(huì)根據(jù)新的設(shè)定速度計(jì)算占空比并下發(fā)到單片機(jī),如果機(jī)器人按照設(shè)定速度來(lái)調(diào)整占空比,會(huì)出現(xiàn)機(jī)器人的速度忽大忽小的情況,因此將速度上限定為設(shè)定速度的101%,速度下限定為設(shè)定速度的99%,誤差率為± 1%,當(dāng)機(jī)器人的速度在速度的上下限范圍內(nèi)則不用調(diào)整占空比,機(jī)器人可以運(yùn)行得更平穩(wěn)[12]

          1671565060414960.png

          圖13 機(jī)器人液晶觸摸屏設(shè)計(jì)

          機(jī)器人的液晶觸摸屏采用QT 的圖形界面進(jìn)行設(shè)計(jì),其中界面布局可以在QT designer 中完成,并在QT designer 中直接添加槽函數(shù),可通過(guò)qt_second() 函數(shù)每秒鐘對(duì)界面的控件進(jìn)行刷新,當(dāng)按鈕單擊后按鈕文本會(huì)發(fā)生變化,可通過(guò)  PushButton -> setText 函數(shù)完成按鈕文本的設(shè)計(jì),同樣設(shè)定速度的輸入框可以通過(guò) LineEdit1 -> setText (QString::number (setup_speed));完成設(shè)計(jì),單擊+、- 兩個(gè)按鈕可以修改機(jī)器人的設(shè)定速度,當(dāng)機(jī)器人的設(shè)定速度大于1000mm/s 或者小于0 時(shí),彈出警告框QMessageBox::information(this,”Error”,“speed should be in range 0-999 mm/s”);,設(shè)定速度、兩個(gè)電機(jī)的速度、經(jīng)緯度數(shù)據(jù)可通過(guò)以下TextLabel2->setText(QString::number(setup_speed)+”mm/s”);等函數(shù)完成顯示。

          1671586750172693.png

          1671565170793232.png

          圖14 遠(yuǎn)程監(jiān)控

          機(jī)器人通過(guò)以上mjpeg-streamer 組件的代碼完成了web遠(yuǎn)程監(jiān)控的功能,可在遠(yuǎn)程打開(kāi)fi refox 瀏覽器看到機(jī)器人上攝像頭拍到的視頻。

          image.png

          圖15 移動(dòng)機(jī)器人的旋轉(zhuǎn)決策

          激光探頭可以測(cè)量到周圍障礙物的距離和角度,當(dāng)激光探頭發(fā)現(xiàn)在320° ~ 40° 的范圍內(nèi),在距離激光探頭1 m 的范圍內(nèi)有移動(dòng)障礙物,則變量stop_forward = 1,否則該變量為0,該角度和距離可以根據(jù)實(shí)際機(jī)器人的情況做相應(yīng)調(diào)整。同理當(dāng)激光探頭發(fā)現(xiàn)在40°~140°的范圍內(nèi),在距離激光探頭1 m 的范圍內(nèi)有障礙物,則變量stop_right=1,否則該變量為0。

          如果變量stop_forward=1,則此時(shí)機(jī)器人需要旋轉(zhuǎn)到某個(gè)角度,從周圍障礙物的縫隙中出去,圖15中障礙物的縫隙的角度θ1~θ4 可以計(jì)算得出,例如θ1=θB-θA,OA,OB 的值可以通過(guò)激光探頭的輸出數(shù)據(jù)得出,則根據(jù)余弦定理,障礙物縫隙的大小可通過(guò)下式得出

          1671565351686395.png

          當(dāng)導(dǎo)航的終點(diǎn)在機(jī)器人的左側(cè)時(shí),此時(shí)機(jī)器人可以沿著θ3/2 的方向移動(dòng)出去。

          image.png

          圖16 移動(dòng)機(jī)器人的移動(dòng)決策過(guò)程

          圖16 中的紅色圓圈是導(dǎo)航的終點(diǎn),綠色的是機(jī)器人,黑色的是障礙物,機(jī)器人的初始位置在底部,此時(shí)機(jī)器人左右分別有障礙物1 和障礙物2,如果按照逆時(shí)針來(lái)計(jì)算角度,圖3 中的θ1 是機(jī)器人在初始位置的終點(diǎn)相對(duì)于機(jī)器人的角度,把這個(gè)角度叫做終點(diǎn)角度。

          表1 終點(diǎn)角度和旋轉(zhuǎn)方向的關(guān)系

          1671587209449504.png


          根據(jù)表1 的內(nèi)容,移動(dòng)機(jī)器人可判斷下一秒是前進(jìn)、右轉(zhuǎn)、左轉(zhuǎn)或者后退,如果沿著終點(diǎn)角度的方向有障礙物,則根據(jù)表2 的判斷,移動(dòng)機(jī)器人計(jì)算出一個(gè)與終點(diǎn)角度最近且縫隙間隔大于機(jī)器人寬度的角度,沿著該角度的中線方向移動(dòng)出去。

          表2 前方1 m范圍內(nèi)有障礙物時(shí)的判斷

          1671587377259203.png

          1671587628469770.png

          1671587663879292.png

          結(jié)合以上的內(nèi)容,可以了解到機(jī)器人在周圍布滿障礙物的情況下該如何決策,比如在圖4 中,機(jī)器人在初始位置position1 應(yīng)前進(jìn),但此時(shí)前方有障礙物,此時(shí)左邊無(wú)障礙物,根據(jù)表1 向左轉(zhuǎn)至position2 后再向前移動(dòng),在前進(jìn)的過(guò)程中一直監(jiān)測(cè)終點(diǎn)角度,當(dāng)移動(dòng)至position3時(shí)突然前方出現(xiàn)了移動(dòng)障礙物3,結(jié)合表1 和表2,則機(jī)器人應(yīng)向右轉(zhuǎn),在旋轉(zhuǎn)的過(guò)程中一直檢測(cè)終點(diǎn)角度,當(dāng)終點(diǎn)角度滿足表1 的前進(jìn)時(shí),機(jī)器人則向著終點(diǎn)前進(jìn),如果在前進(jìn)的過(guò)程中又出現(xiàn)了其他的障礙物,則機(jī)器人根據(jù)實(shí)時(shí)監(jiān)測(cè)到的終點(diǎn)角度和表1 與表2 的內(nèi)容,迭代地進(jìn)行決策,直到達(dá)到終點(diǎn)。

          以上導(dǎo)航過(guò)程不需要事先對(duì)周圍環(huán)境建圖,也不需要傳感器的數(shù)據(jù),在整個(gè)導(dǎo)航過(guò)程中可以根據(jù)實(shí)際移動(dòng)障礙物的情況做出實(shí)時(shí)判斷,適合在室內(nèi)未知?jiǎng)討B(tài)環(huán)境中進(jìn)行導(dǎo)航。該方法簡(jiǎn)單高效,使用成本較低的CPU甚至MCU 就可以實(shí)現(xiàn),同時(shí)可節(jié)省機(jī)器人的功耗和體積。

          在激光掃描的進(jìn)程中,機(jī)器人根據(jù)表1 和表2 進(jìn)行相應(yīng)的運(yùn)動(dòng)決策,激光傳感器7 圈/s,因激光傳感器的精度有限,加上環(huán)境噪聲的影響,在激光掃描的過(guò)程中會(huì)出現(xiàn)一些噪點(diǎn),通過(guò)計(jì)算7 個(gè)點(diǎn)/s 落在了哪個(gè)角度區(qū)域,選擇擁有點(diǎn)數(shù)最多的角度區(qū)域作為判斷下一步動(dòng)作的依據(jù),如圖17 所示, 20° ~ 160° 的區(qū)域有5 個(gè)黑色的點(diǎn), 200° ~ 340° 的區(qū)域有1 個(gè)紅色的點(diǎn), 340° ~360° 的區(qū)域有1 個(gè)紅色的點(diǎn), 20° ~ 160° 區(qū)域?qū)?yīng)的動(dòng)作是右轉(zhuǎn),因此機(jī)器人下一秒的動(dòng)作是右轉(zhuǎn)??衫脿顟B(tài)機(jī)處理該部分代碼,一共有3 種狀態(tài):①在左轉(zhuǎn)或者右轉(zhuǎn)中以尋找終點(diǎn)方位的狀態(tài),②前進(jìn)或者后退中不斷向終點(diǎn)靠近,③尋找新的空隙的狀態(tài)。

          2.3 安卓端軟件設(shè)計(jì)

          機(jī)器人通過(guò)串口藍(lán)牙模塊和安卓手機(jī)連接,主要修改的文件是安卓系統(tǒng)里的BluetoothChat.java 文件,以下是控件的初始化。

          APP 的其他控件功能如下:bluetooth data buffer 區(qū)域顯示的是機(jī)器人和安卓手機(jī)通過(guò)藍(lán)牙通信的數(shù)據(jù),full screen 按鈕可將該區(qū)域全屏顯示,hex display 單選框可以切換該區(qū)域數(shù)據(jù)的十六進(jìn)制和十進(jìn)制的顯示,clear screen 按鈕可以清空該區(qū)域的數(shù)據(jù)顯示,connect 按鈕可以啟動(dòng)或者關(guān)閉安卓手機(jī)和機(jī)器人之間的連接,stop 按鈕可以啟動(dòng)或者停止機(jī)器人,speed(mm/s) 用來(lái)顯示機(jī)器人的實(shí)時(shí)速度,hex output單選框用來(lái)切換速度的十六進(jìn)制或十進(jìn)制的顯示,longitude 顯示機(jī)器人所在位置的經(jīng)度,latitude顯示機(jī)器人所在位置的緯度,angle 需要輸入機(jī)器人相對(duì)于導(dǎo)航終點(diǎn)的朝向角度,distance 需要輸入機(jī)器人相對(duì)于導(dǎo)航終點(diǎn)的距離,這是一種角坐標(biāo)的表示,有了這兩個(gè)數(shù)據(jù)就可以確定導(dǎo)航終點(diǎn)相對(duì)于機(jī)器人的具體位置,laser scan stop 按鈕可以切換激光傳感器的啟動(dòng)和停止,send speed 按鈕可以發(fā)送機(jī)器人的設(shè)定速度,send position 按鈕會(huì)將angle 輸入框和distance 輸入框的內(nèi)容發(fā)送到機(jī)器人,以便機(jī)器人了解導(dǎo)航終點(diǎn)的位置,navigation 按鈕用來(lái)切換手動(dòng)移動(dòng)和自動(dòng)導(dǎo)航模式,整體界面左下方的上下左右四個(gè)箭頭按鈕可以控制機(jī)器人前進(jìn)、后退、左轉(zhuǎn)和右轉(zhuǎn),界面右下方顯示機(jī)器人的實(shí)時(shí)速度,電機(jī)1 和電機(jī)2 的速度,以及距離機(jī)器人最近的障礙物的距離。

          1671566080707153.png

          圖17 動(dòng)作判斷依據(jù)

          1671566129561882.png

          圖18 利用狀態(tài)機(jī)處理部分代碼

          1671566161553292.png

          圖19 軟件設(shè)計(jì)

          4 結(jié)束語(yǔ)

          本文闡述了一種非ROS 系統(tǒng)的定制化物流機(jī)器人的設(shè)計(jì)方法,通過(guò)該方法設(shè)計(jì),可以節(jié)省機(jī)器人的成本和功耗,在實(shí)現(xiàn)豐富的定制化功能的同時(shí),可根據(jù)手機(jī)APP 上輸入的終點(diǎn)位置和角度,在室內(nèi)動(dòng)態(tài)未知環(huán)境中導(dǎo)航到終點(diǎn),通過(guò)實(shí)驗(yàn)驗(yàn)證,機(jī)器人運(yùn)行穩(wěn)定高效,說(shuō)明該設(shè)計(jì)方法具有一定的實(shí)用性和可靠性。

          參考文獻(xiàn):

          [1] 蘇青.多機(jī)器人路徑規(guī)劃與協(xié)同避碰研究[D].南京:南京郵電大學(xué),2014.

          [2] 張文輝,齊乃明,尹洪亮.自適應(yīng)神經(jīng)變結(jié)構(gòu)的機(jī)器人軌跡跟蹤控制[J].控制與決策,2011(7):33-37.

          [3]鮑敦橋.仿真類人機(jī)器人設(shè)計(jì)及高層決策方法的研究[D].合肥:合肥工業(yè)大學(xué),2009.

          [4]余婷.多機(jī)器人隊(duì)列曲線運(yùn)動(dòng)研究[D].上海:上海交通大學(xué),2009.

          [5]韓雪峰.導(dǎo)盲機(jī)器人[D].哈爾濱:哈爾濱工程大學(xué),2009.

          [6] 馬斌奇.多機(jī)器人協(xié)作與控制策略研究[D].西安:西安電子科技大學(xué),2009.

          [7] YAN Y P, WONG S F, A navigation algorithm of the mobile robot in the indoor and dynamic environment based on the PF-SLAM algorithm[J].Cluster Computing,2019(12):133-139.

          [8] YAN Y P, LI Y M. Mobile robot autonomous path planning based on fuzzy logic and filter smoothing in dynamic environment[C].12th World Congress on Intelligent Control and Automation,2016,6.

          [9] HE P. Consensus of uncertain parabolic PDE agents via adaptive unit-vector control scheme[J]. IET Control Theory & Applications,2018,12(18):2488-2494.

          [10] ZHU S P, XIA L M. Human action recognition based on fusion feathers extraction of adaptive background subtraction and optical flow model, mathematical problems in engineering [J].2015(4).

          [11] YAN Y P, LI Y M, Autonomous path planning and navigation of a mobile robot with multi-sensors based on fuzzy logic in dynamic environment[J].International Journal of Intelligent Systems and Applications in Robotics, 2016,7(1):1-14.

          [12] YAN Y P, WONG S F. A navigation algorithm for the mobile robot in the indoor and dynamic environment based on the image recognition algorithm[J].The Hong Kong Institution of Engineers,2018.

          (本文來(lái)源于《電子產(chǎn)品世界》雜志2022年12月期)



          評(píng)論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉