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

          關(guān) 閉

          新聞中心

          EEPW首頁 > 工控自動化 > 設(shè)計應(yīng)用 > 移動機(jī)器人無線實(shí)時反饋控制系統(tǒng)的設(shè)計

          移動機(jī)器人無線實(shí)時反饋控制系統(tǒng)的設(shè)計

          作者: 時間:2010-04-12 來源:網(wǎng)絡(luò) 收藏
          技術(shù)是當(dāng)今科學(xué)技術(shù)發(fā)展的前沿學(xué)科。研究領(lǐng)域中的一個重要分支,它集人工智能、控制理論、信息處理、圖像處理等專業(yè)技術(shù)于一體,跨計算機(jī)、自動控制、通信、機(jī)械、電子等多學(xué)科,成為當(dāng)前智能機(jī)器人研究的重點(diǎn)之一。如何方便、快捷、廉價地控制機(jī)器人,己經(jīng)成為機(jī)器人技術(shù)的一個突出問題。在當(dāng)前的控制領(lǐng)域中,控制技術(shù)已經(jīng)成為一種重要而便利的控制技術(shù)。美國、日本、德國以及包括中國在內(nèi)的很多國家都對機(jī)器人的控制技術(shù)這一課題進(jìn)行了研究并取得了一定的成果。本文研究的重點(diǎn)是,通過PC機(jī)、無線通信模塊和機(jī)器人構(gòu)成的系統(tǒng),成功地實(shí)現(xiàn)了PC機(jī)對機(jī)器人的無線控制[1-2]。
          1 機(jī)器人平臺
          本實(shí)驗(yàn)所采用的機(jī)器人是上海廣茂達(dá)公司生產(chǎn)的AS-U32能力風(fēng)暴機(jī)器人,該機(jī)器人是AS-UⅡ的升級版,主要升級部件是微控制器,AS-UⅡ使用的是Motorola公司的單片機(jī)68HC11,而AS-U32使用的是飛利浦公司的RAM7 LPC2103,這使得機(jī)器人有更強(qiáng)大的處理功能。AS-U32有如下特點(diǎn):
           (1)自主輪式移動機(jī)器人,是一個對外界環(huán)境高度開放的智能系統(tǒng)。它采用左右兩輪驅(qū)動,前后兩輪隨動。驅(qū)動方式采用的是差動驅(qū)動方式,即2個有差異的或獨(dú)立的運(yùn)動合成為1個運(yùn)動。當(dāng)把2個電機(jī)的運(yùn)動合成為1個運(yùn)動時,則為差動驅(qū)動。如讓機(jī)器人走直線,左右兩個輪的速度必須相等;讓機(jī)器人走弧線時,左右兩個輪子的速度必須不相等。
           (2)機(jī)器人帶有專用的軟件開發(fā)環(huán)境,即圖形化交互式的C語言(簡稱VJC)。VJC由兩部分組成:編譯環(huán)境(包含交互式命令行編輯和調(diào)試功能)和機(jī)器人操作系統(tǒng)。VJC實(shí)現(xiàn)了C 語言的一個子集, 它包括控制語句(for,while, if else)局部變量和全局變量、數(shù)組、指針、結(jié)構(gòu)體、16位和32 位整數(shù)、32 位浮點(diǎn)數(shù)。VJC 的一大優(yōu)點(diǎn)是支持多任務(wù)程序的運(yùn)行。
          (3)機(jī)器人配有一定數(shù)量的傳感器,具有一定的感知周圍環(huán)境的能力。傳感器包括2支紅外發(fā)射管和1個紅外接收模塊,2個光傳感器和4個碰撞傳感器。另外,還包括旋轉(zhuǎn)角度編碼器和麥克風(fēng)。紅外傳感器可以判斷前方約120°內(nèi)、距離在10~50 cm 范圍內(nèi)的物體;光傳感器可判斷光線的強(qiáng)弱;碰撞傳感器安裝在機(jī)器人外部的碰撞環(huán)上,能感受到8個方向上的碰撞;麥克風(fēng)沒有方向性,能感知聲音的強(qiáng)弱;旋轉(zhuǎn)編碼器用來測量輪子旋轉(zhuǎn)的角度數(shù)。
          (4)機(jī)器人借助LPC2103來完成數(shù)據(jù)處理。雖然該處理器具有很強(qiáng)大的處理功能,但用于反饋控制還是不夠的,所以必須由PC機(jī)來共同完成。機(jī)器人自帶有4針SCI總線,可為機(jī)器人的擴(kuò)展帶來方便[3]。
          2 PC機(jī)與機(jī)器人之間的無線通信硬件平臺
          2.1 無線通信模塊

           考慮到自主式移動機(jī)器人的特點(diǎn),無線通信是計算機(jī)與機(jī)器人通信較為理想的通信方式。實(shí)驗(yàn)中采用的是CC1000單片射頻無線收發(fā)模塊,該模塊主要性能如下:
           (1)發(fā)射功率為10 mW。
           (2)工作頻率在ISM頻段,無需申請點(diǎn)。
          (3)干擾能力和誤碼率:基于FSK的調(diào)制方式,采用高效前向糾錯信道編碼技術(shù),提高了數(shù)據(jù)抗突發(fā)干擾和隨機(jī)干擾的能力,在信道誤碼率為10~2時,可得到實(shí)際誤碼率為10.5~10.6。
           (4)傳輸距離:在視距情況下,天線高度>3 m,可靠傳輸距離>300 m。
          (5)多信道,多速率:無線通信模塊標(biāo)準(zhǔn)配置提供8個信道,可滿足用戶多種通信組合方式;可提供1 200 b/s、2 400 b/s、4 800 b/s、9 600 b/s等多種波特率,并且接口波特率與無線傳輸波特率一樣,以滿足客戶設(shè)備對不同波特率的需要。
          (6)雙串口,3種接口方式:無線通信模塊提供2個串口、3種接口方式。COM1為TTL電平UART接口,COM2由用戶自定義為標(biāo)準(zhǔn)的RS-232/RS-485接口??捎糜布渲贸?種不同的信道,選擇不同的接口方式以及不同的校驗(yàn)方式[3]。
          2.2 機(jī)器人無線通信的總體框架
           基于機(jī)器人與無線通信模塊的特點(diǎn),的無線控制機(jī)器人的總體框架如圖1所示。

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


          3 PC機(jī)與機(jī)器人構(gòu)成的反饋的設(shè)計
           本實(shí)驗(yàn)PC機(jī)(上位機(jī))所用的軟件是VC++6.0,用VC做串口通信可以有很多種方法:可以用控件MSComm,也可用Win32的API串行通信函數(shù),本文選擇CSerialPort類進(jìn)行串口通信編程(屬于Win32的API串行通信編程)。該編程方法是一個多線程的串口編程類,與MSComm控件相比,CSerialPort打包時,不需要加入其他的文件,而且函數(shù)都是開放透明的,允許進(jìn)行改造。此外,不需要去理解很難掌握的數(shù)據(jù)類型[4]。有關(guān)這方面的詳細(xì)介紹可以參看參考文獻(xiàn)[4]。下面主要介紹反饋是如何設(shè)計的。
          對被控對象進(jìn)行開環(huán)控制達(dá)不到理想的控制效果,所以必須對機(jī)器人進(jìn)行閉環(huán)控制。整個反饋控制系統(tǒng)如圖2所示。


           從圖2可以看出,首先必須對被控對象進(jìn)行建模,通過實(shí)驗(yàn)測得機(jī)器人左右兩電機(jī)的輸入輸出之間的關(guān)系,然后通過MATLAB進(jìn)行仿真得到如圖3所示的被控對象的模型圖。


          從圖可以看出,機(jī)器人的左右兩輪都是非線性的特性,電機(jī)的輸入?yún)?shù)大于60時,輸出的實(shí)際速率基本飽和了。所以必須加入PID控制來克服機(jī)器人這種非線性的特性。

          pid控制器相關(guān)文章:pid控制器原理



          上一頁 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); })();