新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 基于嵌入式Linux的移動機器人控制系統

        基于嵌入式Linux的移動機器人控制系統

        作者: 時間:2016-09-12 來源:網絡 收藏

        使用select機制監控是否語音識別結果,在超出等待時間后,會退出等待并重新初始化語音模塊LD3320,釋放公共資源,這樣也使得系統能夠及時響應LD3320的MP3播放功能,避免了在長時間沒有語音識別結果時,系統進入卡死狀態。

        本文引用地址:http://www.104case.com/article/201609/304733.htm

        2.5 航向測量

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

        并寫入到共享內存區S中。

        2.6 超聲波測距

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

        S=V×△T/2 (1)

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

        2.7 電機控制

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

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

        3 路徑規劃和避障算法

        根據模糊邏輯法,移動平臺能夠在不確定環境中實現局部路徑規劃和避障。

        3.1 輸入輸出變量的模糊化

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

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

        基于嵌入式Linux的移動機器人控制系統

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

        基于嵌入式Linux的移動機器人控制系統

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

        3.2 建立規則

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

        3.3 模糊推理和解模糊化

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

        解模糊化是輸出模糊量映射到動作行為的過程。模糊控制器對移動平臺的動作進行了分解并編碼,將復雜的動作分解為一系列簡單動作的疊加,使得每一個輸出模糊量對應一套動作。

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

        4 實驗測試

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

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

        結語

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

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


        上一頁 1 2 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 元朗区| 嘉兴市| 津市市| 彭州市| 茌平县| 大姚县| 伊宁市| 镇巴县| 永州市| 安义县| 黄骅市| 松潘县| 阳信县| 阿拉善盟| 民乐县| 通山县| 墨玉县| 剑河县| 红桥区| 建平县| 新蔡县| 盐边县| 三原县| 桃园市| 陇南市| 大兴区| 张北县| 天津市| 大厂| 大埔区| 两当县| 天水市| 武清区| 西盟| 墨玉县| 大方县| 淄博市| 青浦区| 镇雄县| 凌源市| 雷波县|