<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 基于嵌入式Linux的移動(dòng)機器人控制系統

基于嵌入式Linux的移動(dòng)機器人控制系統

作者: 時(shí)間:2016-09-12 來(lái)源:網(wǎng)絡(luò ) 收藏

使用select機制監控是否語(yǔ)音識別結果,在超出等待時(shí)間后,會(huì )退出等待并重新初始化語(yǔ)音模塊LD3320,釋放公共資源,這樣也使得系統能夠及時(shí)響應LD3320的MP3播放功能,避免了在長(cháng)時(shí)間沒(méi)有語(yǔ)音識別結果時(shí),系統進(jìn)入卡死狀態(tài)。

本文引用地址:http://dyxdggzs.com/article/201609/304733.htm

2.5 航向測量

為了使移動(dòng)機器人能夠沿指定的方向行駛并能修正由外界干擾因素產(chǎn)生的航向偏差,系統采用陀螺儀航向測量模塊MPU-6050,該模塊將其測量的模擬量轉換為可輸出的數字量,并通過(guò)串口發(fā)送到S3C2440。系統通過(guò)read(fd_uartl,buf,10)函數讀取相應串口,得到航向數據

并寫(xiě)入到共享內存區S中。

2.6 超聲波測距

本系統采用渡越時(shí)間法,超聲波測距模塊在收到發(fā)射控制信號時(shí),換能器將發(fā)出40 kHz的連續脈沖信號。接收器的輸出高電平時(shí)間和距離成正比,同時(shí)觸發(fā)處理器的中斷,上升沿中斷開(kāi)啟定時(shí)器,下降沿關(guān)閉定時(shí)器,利用處理器內部的定時(shí)器1測量出輸出信號的高電平的持續時(shí)間△T,經(jīng)過(guò)式(1)的計算,可得到檢測距離S:

S=V×△T/2 (1)

式中,V為超聲波的傳播速度,常溫下超聲波在空氣中的傳播速度是340 m/s。程序中根據所編寫(xiě)的驅動(dòng)程序,使用ioctl(fd_chao,SEN D_BEGIN)、ioctl(fd_chao,SEND_STOP)控制GPIO以實(shí)現超聲波的發(fā)射和停止。系統中對某個(gè)方向連續測量5次,進(jìn)行中值濾波并將濾波后數據傳遞到信息處理進(jìn)程。

2.7 電機控制

移動(dòng)平臺中采用L298驅動(dòng)直流減速電機,平臺尚未安裝速度反饋單元,簡(jiǎn)化了控制模式。程序通過(guò)ioctl()控制L298以實(shí)現電機的正反轉以及停止操作。

在電機驅動(dòng)程序中定義了相應GPIO的輸入/輸出方式:ioctl(fd,TURN_LEFT)中,fd為驅動(dòng)程序的文件描述符;TURN_LEFT是命令掩碼CMD,驅動(dòng)程序根據命令掩碼CMD對相應的GPIO賦值以控制L298的狀態(tài)。

3 路徑規劃和避障算法

根據模糊邏輯法,移動(dòng)平臺能夠在不確定環(huán)境中實(shí)現局部路徑規劃和避障。

3.1 輸入輸出變量的模糊化

在路徑規劃過(guò)程中,信息分析模塊的輸入量為移動(dòng)平臺的行駛方向信息、與障礙物之間的相對位移信息;輸出量為移動(dòng)平臺的旋轉角度和平動(dòng)位移信息。

①定義移動(dòng)平臺與左側障礙物的距離為DL、與右側障礙物的距離為DR、前方障礙物的距離為DF。模糊子集定義為{S,M,B},分別表示小、中、大,相應的距離隸屬度函數如圖7所示。

基于嵌入式Linux的移動(dòng)機器人控制系統

②定義移動(dòng)平臺和目標點(diǎn)之間夾角為γ,模糊子集定義為{LB,LS,Z,RS,RB},分別表示左大、左小、零、右小和右大。相應的角度隸屬度函數如圖8所示。

基于嵌入式Linux的移動(dòng)機器人控制系統

③移動(dòng)平臺的旋轉角度中的模糊子集定義為{TLB,TLS,TZ,TRS,TRB}。分別表示左轉大、左轉小、不旋轉、右轉小、右轉大,相應的輸出隸屬度函數如圖9所示。

3.2 建立規則

在移動(dòng)機器人遠離障礙物或不存在障礙物的情況下,依據移動(dòng)平臺的行駛軌跡,可以先對行駛方向進(jìn)行調整。當檢測到障礙物接近移動(dòng)平臺時(shí),移動(dòng)平臺應改變行駛軌跡,避免發(fā)生碰撞。移動(dòng)平臺的部分規則如表1所列。

3.3 模糊推理和解模糊化

根據距離隸屬度函數,將超聲波測量得到的不同方位的距離數據轉換為模糊邏輯狀態(tài),再查找規則,查表得到相應的輸出模糊量。

解模糊化是輸出模糊量映射到動(dòng)作行為的過(guò)程。模糊控制器對移動(dòng)平臺的動(dòng)作進(jìn)行了分解并編碼,將復雜的動(dòng)作分解為一系列簡(jiǎn)單動(dòng)作的疊加,使得每一個(gè)輸出模糊量對應一套動(dòng)作。

例如在檢測到前方有障礙物并確定左轉時(shí),可以將機器人動(dòng)作分解為:后退(左轉,即先后退,再左轉。這樣可以減小機器人觸碰到前方障礙物的概率。

4 實(shí)驗測試

使用menuconfig命令為系統內核配置添加相應驅動(dòng)程序后,進(jìn)行make編譯生產(chǎn)zImage文件。啟動(dòng)移動(dòng)機器人系統并進(jìn)入BIOS模式,將配置好的內核通過(guò)Supervivi工具燒寫(xiě)到NAND Flash。在系統啟動(dòng)后,配置Linux目錄中的/etc/init.d文件,使系統啟動(dòng)后,自動(dòng)運行所設計的程序。

如果系統初始化正常,將聽(tīng)到由語(yǔ)音模塊發(fā)出的提示聲:“校準完成”。此時(shí),操作人員可以下達“前進(jìn)”、“后退”或“測距”等設計好的語(yǔ)音指令,機器人將按照操作人員的指令完成相應的動(dòng)作,還可以通過(guò)語(yǔ)音模塊播放出測量到的距離。

結語(yǔ)

系統利用了Linux系統支持和可裁剪的特點(diǎn),結合處理器豐富的接口資源,實(shí)現了多方位超聲波測距、電機控制等功能,通過(guò)對多傳感器信息的融合和分析,為模糊邏輯法進(jìn)行路徑規劃提供了判斷依據。

語(yǔ)音識別功能使得機器人和操作人員之間的人機交互變得更靈活方便。在此基礎上,可以利用Linux操作系統強大的網(wǎng)絡(luò )功能,為進(jìn)一步研究服務(wù)機器人、機器人聯(lián)網(wǎng)、機器人與機器人通信等提供了一種方案。


上一頁(yè) 1 2 下一頁(yè)

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>