基于CAN總線(xiàn)的仿人機器人分布式控制系統
1引言
本文引用地址:http://dyxdggzs.com/article/201611/339605.htm隨著(zhù)計算機技術(shù)和網(wǎng)絡(luò )技術(shù)的發(fā)展,各種新型的控制方式應用于機器人控制。分布式控制系統是在計算機監督控制系統、直接數字控制系統和計算機多級控制系統的基礎上發(fā)展起來(lái)的,是生產(chǎn)過(guò)程的一種比較完善的控制與管理系統。與計算機多級控制系統相比,分布式控制系統在結構上更加靈活、布局更為合理和成本更低。分布式控制結構成為機器人控制系統發(fā)展的方向。文[2]中作者設計了一種基于CAN總線(xiàn)的分布式的仿人機器人的控制系統。
為此,我們研制了新型的小型仿人機器人控制系統。本實(shí)驗室研制的小型仿人機器人各關(guān)節采用舵機控制,根據要求,本設計需要實(shí)現小型仿人機器人腿部的運動(dòng)控制,達到小型化,低功耗。
2小型仿人娛樂(lè )機器人分布式控制系統
2.1總體方案設計
本文研究的小型仿人娛樂(lè )機器人運動(dòng)控制系統由主控制器ARM9,C8051F320單片機與4片CD4017外部計數器構成的控制單元組成,控制結構簡(jiǎn)單靈活。USB通信方案滿(mǎn)足了主從控制和通信速度的需求。關(guān)節執行機構采用舵機,控制方法簡(jiǎn)單實(shí)用??傮w控制方式簡(jiǎn)圖見(jiàn)圖1。

主控制器端,采用ARM9(S3C2410)作為管理控制器負責協(xié)調控制,向單片機發(fā)送規劃好的運動(dòng)控制數據并擴展語(yǔ)音,視頻等。S3C2410主控制器有一個(gè)USB host,連接C8051F320單片機。
單片機端,利用C8051F320中的PCA捕捉比較模塊產(chǎn)生PWM控制信號。當單片機通過(guò)USB總線(xiàn)接收到由ARM管理控制器發(fā)來(lái)的數據包時(shí),根據設定的對應關(guān)系將數據包中16位控制數據轉化為PCA比較值,由PCA模塊產(chǎn)生相應占空比的PWM控制信號,分別輸出給4片CD4017外部計數器。同時(shí)PCA模塊還定時(shí)產(chǎn)生一路復位脈沖,同時(shí)發(fā)送給4片CD4017,確保CD4017多路PWM輸出與單片機接收到多舵機控制數據對應關(guān)系正確。C8051F320控制器電路板如圖2。

CD4017外部計數器將CP引角輸入的PWM轉化為多路PWM,分別控制與之相連的各舵機轉動(dòng),實(shí)現各桿件位置的開(kāi)環(huán)控制。CD4017引腳功能及排列如圖3。
2.2 USB通信的實(shí)現
在計算機和單片機的控制數據傳輸領(lǐng)域內,長(cháng)期以來(lái)廣泛的使用RS-232,RS-485等通信方式,這些通信方式訊的實(shí)時(shí)性較差, 故障率較高, 出現故障時(shí), 不容易排查[3]。不能夠滿(mǎn)足小型仿人機器人的實(shí)時(shí)性和大批量數據傳輸的要求。USB總線(xiàn)通信方式作為新一代計算機外設的接口技術(shù),隨著(zhù)USB技術(shù)的日益成熟,及獨特的優(yōu)點(diǎn)(對多種設備的廣泛適用性,自動(dòng)配置,容易擴充,易于連接,熱插拔,即插即用、高可靠性,低成本,低功耗等),應用前景非常廣泛[4]。
本控制系統中的管理控制器ARM9(S3C2410)集成了一個(gè)USB host,采用Linux操作系統;C8051F320器件集成了全速/低速USB功能控制器,用于實(shí)現USB接口的外部設備,均支持USB2.0通信協(xié)議。單片機端設計了通信固件程序和應用程序,用于接收USB通信內容。
2.3基于C8051單片機和CD4017外部計數器的關(guān)節控制器設計
采用一片單片機與4片CD4017外部計數器的關(guān)節控制器設計方案,極大限度的精簡(jiǎn)了硬件數量,節省了空間,降低了軟硬件出錯的可能性,也為系統運動(dòng)功能的擴展提供了足夠空間和靈活性(自由度數量設置可在36個(gè)以?xún)热我庠鰷p)。
基于C8051的設計中有很多方法用于產(chǎn)生PWM波形:軟件循環(huán)、查詢(xún)或中斷驅動(dòng)的定時(shí)器等。使用可編程計數器陣列PCA產(chǎn)生PWM相對于任何查詢(xún)機制(基于軟件或定時(shí)器而言)可以大大降低所需要的CPU帶寬,并可以消除在中斷驅動(dòng)的基于定時(shí)器的設計中因中斷延遲不一致而產(chǎn)生的時(shí)序抖動(dòng)。PCA由一個(gè)專(zhuān)用的16位計數器/定時(shí)器和5個(gè)16位捕捉/比較模塊組成。每個(gè)捕捉/比較模塊有其自己的I/O線(xiàn)。計數器/定時(shí)器由一個(gè)可編程的時(shí)基信號驅動(dòng)。計數器/定時(shí)器有一個(gè)16位的計數器/定時(shí)器寄存器、一個(gè)用于選擇時(shí)間基準的方式寄存器和一個(gè)包含計數器/定時(shí)器運行控制及各模塊捕捉/比較標志的控制寄存器。每個(gè)捕捉/比較模塊有一個(gè)用于選擇模塊工作方式的配置寄存器和一個(gè)16位的捕捉/比較寄存器。每個(gè)捕捉/ 比較模塊的工作方式都可以被獨立配置。由于所有的捕捉/比較模塊共享一個(gè)時(shí)間基準,因此它們同步工作[5][6]。本文研究的小型娛樂(lè )機器人關(guān)節控制器設計中,將PCA配置為獨立工作;每個(gè)模塊的中斷服務(wù)程序只影響該模塊的捕捉/比較寄存器。PCA方式寄存器和配置寄存器設置一次后不再改變,讓計數器/定時(shí)器寄存器自由運行。
在高速輸出方式,每當PCA計數器與模塊的16位捕捉/比較寄存器發(fā)生匹配時(shí),模塊I/O線(xiàn)的引腳上的邏輯電平將發(fā)生高低轉換,并可以選擇產(chǎn)生中斷。本應用程序中選擇了該中斷。
CD4017基本功能是對CP端輸入脈沖的個(gè)數進(jìn)行十進(jìn)制計數,并按照輸入脈沖的個(gè)數順序將脈沖分配在Y0~Y9這10個(gè)輸出端,計滿(mǎn)10個(gè)數后計數器復零,同時(shí)CO端輸出一個(gè)進(jìn)位脈沖。當CR端有正脈沖輸入時(shí),該脈沖的上升沿將觸發(fā)CD4017復位,此時(shí)Y1~Y9輸出均變?yōu)榈碗娖?,只有Y0腳輸出變?yōu)楦唠娖?,故可以利用CR的正脈沖輸入中斷計數[7]。
本文研究的小型娛樂(lè )仿人機器人控制系統方案中,一個(gè)CD4017輸出7路脈沖,分別發(fā)送給7個(gè)舵機。
3 實(shí)驗
控制系統硬件實(shí)物連接圖如圖4。

機器人步行實(shí)驗完成5步的向前行和5步的后退的行走過(guò)程。步行實(shí)驗過(guò)程如圖5。
4 結論
根據小型仿人機器人的機構特點(diǎn)和性能要求,構建了以ARM9為主控制器的小型仿人機器人控制系統。設計開(kāi)發(fā)了C8051USB單片機和CD4017外部計數器組成關(guān)節控制器,該關(guān)節控制器能夠實(shí)現多舵機的協(xié)調控制任務(wù)。實(shí)踐證明,采用該結構之后,整個(gè)機器人系統的模塊化程度更高,系統的裝配和調試更加方便??刂葡到y實(shí)現了小型化、低功耗,而且機器人行走穩定性。
評論