<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 基于ARM的危險品搬運機器人的設計與實現(xiàn)

          基于ARM的危險品搬運機器人的設計與實現(xiàn)

          作者: 時間:2016-09-12 來源:網(wǎng)絡 收藏

          隨著科學技術(shù)的發(fā)展,自動化,智能化的程度進一步得到了提高,新一代搬運車的研發(fā)在國內(nèi)外受到越來越多的重視。由于有一些物品具有很高的危險性,不能用人工直接進行搬運,我們設計實現(xiàn)了危險物品搬運機器人系統(tǒng)??梢赃\用手動控制機器人的搬運,避免了人與危險物品的直接接觸,適用于搬運有毒、易爆的物品,在實際應用中很有意義。如果能夠用智能化機器人系統(tǒng)來替代人來到危險區(qū)的話,那樣將會大大減少許多事故的發(fā)生。

          本文引用地址:http://www.ex-cimer.com/article/201609/304032.htm

          1 搬運機器人系統(tǒng)的功能需求

          該系統(tǒng)分為兩部分:車載遠端控制系統(tǒng)和監(jiān)控平臺。車載遠端控制系統(tǒng)根據(jù)監(jiān)控平臺發(fā)出的控制指令執(zhí)行動作,并將采集到的實時視頻圖像發(fā)回監(jiān)控平臺;監(jiān)控平臺則不斷接收車載遠端控制系統(tǒng)發(fā)回的圖像和信息,根據(jù)情況遙控操作機器人,實現(xiàn)主從式遙控操作。該系統(tǒng)的設計具有以下的功能:

          1)具有輪式行走機構(gòu),控制性能好,靈活機動,速度快,平穩(wěn),可靠性高;

          2)具有視頻監(jiān)控的功能,能過看到周圍的環(huán)境;

          3)具有靈恬的,平穩(wěn)而快速地夾持危險品并搬運至指定位置。

          根據(jù)危險物品搬運機器人功能需求的特點可以歸納出該系統(tǒng)的性能需求主要包括:

          1)機器人直線行走和轉(zhuǎn)彎行走;

          2)USB攝像頭采集圖像;

          3)機械臂帶云臺,轉(zhuǎn)動范圍180度;

          4)AS-6DOFB型六自由度機械臂,用來抓取物品。

          該系統(tǒng)以ARM處理器S3C6410為核心,選用6410開發(fā)板作為主板。各個模塊都是由開發(fā)板控制。機器人主要由硬件系統(tǒng)和軟件系統(tǒng)構(gòu)成。硬件系統(tǒng)主要包括:ARM處理器、外圍接口電路、六自由度機械臂、攝像頭、小車車體以及電源等,其中ARM處理器核心;軟件包括:嵌入式LINUX操作系統(tǒng)、外設驅(qū)動程序、LINUX應用程序等。該系統(tǒng)的工作流程為:機器人通過人的控制前后移動,當攝像頭看到前方有危險物品時,機器人通過控制對危險物品進行搬運。

          根據(jù)實際情況,本系統(tǒng)實現(xiàn)了以下模塊,如圖1所示。

          基于ARM的危險品搬運機器人的設計與實現(xiàn)

          1):主要由電機的開關(guān)控制,電機轉(zhuǎn)向控制,電機轉(zhuǎn)速控制組合起來的。

          2)視頻監(jiān)控:主要由視頻開關(guān)控制,設置視頻圖像屬性,獲取視頻圖像屬性,視頻圖像數(shù)據(jù)傳送組成的。

          3)機械臂控制:由機械臂轉(zhuǎn)向,張開閉合控制所控制的。

          2 搬運機器人系統(tǒng)的

          2.1 系統(tǒng)的總體

          S3C6410是一個16/32位RISC微處理器,旨在提供一個具有成本效益、功耗低,性能高的應用處理器解決方案,采用了64/32位內(nèi)部總線架構(gòu)。危險物品搬運機器人的系統(tǒng)硬件框圖如圖2所示,攝像頭負責進行圖像采集,經(jīng)過USB集線器傳到6410處理器,中央控制器6410控制機械臂的運動,直流電機正反轉(zhuǎn)向,從而控制機器人行走。

          基于ARM的危險品搬運機器人的設計與實現(xiàn)

          2. 2 直流電機驅(qū)動模塊

          驅(qū)動板主要采用了雙Ha橋直流電機驅(qū)動芯片,我們采用ST公司的L298N典型雙H橋直流電機驅(qū)動芯片,用于驅(qū)動直流電機或雙極性步進電機驅(qū)動電路芯片外圍電路主要用由二極管構(gòu)成的電橋電路,兩組電機并聯(lián)而成。

          機器人通過采用L298N芯片驅(qū)動進行移動,紅綠端子分別為左右兩邊直流減速電機接線座;EA、I1、I2與EB、I3、I4分別為控制信號輸入接口,其中EA與EB分別是左右兩路電機控制接口使能端,高電平有效,可用于PWM調(diào)速。表1為接口使用真值表,輸入信號不同,對應電機運轉(zhuǎn)狀態(tài)不同。

          基于ARM的危險品搬運機器人的設計與實現(xiàn)

          這里EA、I1、I2控制左電機,EB、I3、I4控制右電機,EA、EB為PWM調(diào)速接口,加給高電平為全速。此處接口為單路四線兩相步進電機接口,同時也可以驅(qū)動2路直流減速電機。

          2.3 機械臂

          為保證機器人工作的靈活性,機械手設計為由腰身、大臂、小臂、手爪組成,共具有3個關(guān)節(jié)(腰身-大臂、大臂-小臂、小臂-手爪)7個自由度(腰身1dof,大臂1dof,小臂1dof,手腕4dof)。其中:腰身——1自由度,做旋轉(zhuǎn)運動。固定安裝在機器人車底盤上,以車體正前方為基準,可分別向左右旋轉(zhuǎn)135°,兩端各有限位裝置以避免自體碰撞。由液壓控制運動,在底部裝有電位計反饋準確位置以保證控制精度;大臂和小臂——各1自由度,分別相對于上級關(guān)節(jié)做上下運動,以車體水平面為基準,大臂可向上運動45°、向下運動30°,小臂可向上運動25°、向下運動60°。由液壓控制運動,用電位計回饋,保證關(guān)節(jié)位置準確;手爪——4自由度,分別做上下擺動、旋轉(zhuǎn)、伸縮、夾持運動,以小臂延長線為基準,手爪可上下擺動±90°,又可以小臂為基準軸旋轉(zhuǎn)±180°,伸1米,采用伺服電機提供動力,通過減速箱減速保證功率需求,由伺服電機控制器控制。有編碼盤反饋,保證位置準確。腰身,大小臂液壓回路有壓力傳感器保護。油壓有穩(wěn)定裝置。

          2.4 攝像頭模塊

          在視頻采集服務器端,接受視頻圖像屬性參數(shù),設置視頻采集設備。返回視頻設備信息嵌入式嵌入式系統(tǒng)建立起來之后,就可以利用嵌入式操作系統(tǒng)內(nèi)核提供的接口來開發(fā)視頻監(jiān)控軟件模塊了。它整體運行在服務器端,可以在沒有外接網(wǎng)絡的條件下獨立運行。本模塊實現(xiàn)了視頻的采集、播放等功能,客戶端與服務器端的數(shù)據(jù)交互如圖3所示。

          基于ARM的危險品搬運機器人的設計與實現(xiàn)

          3 搬運機器人系統(tǒng)的軟件設計

          3.1 服務器端軟件設計

          服務器端的軟件運行狀態(tài)圖如圖4所示,開始進入服務器端,當無命令進入時,為循環(huán)等待狀態(tài),等待接受命令;當接收到命令時,判斷是控制電機還是控制攝像頭命令:當控制電機狀態(tài),判斷為控制機器人還是機械臂;如果是控制機器人,則機器人循環(huán)等待控制命令,如果是控制機械臂,則機械臂循環(huán)等待控制命令。如果是控制攝像頭命令,則進行圖像、視頻傳輸;當接收到退出進入服務器狀態(tài)命令時,退出服務器運行狀態(tài)。


          上一頁 1 2 下一頁

          評論


          相關(guān)推薦

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

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();