摘 要: 針對當前以DSP為機器人控制器中的串口數量有限、通信抗干擾能力差等問題,提出了基于CANopen協議的輪式機器人運動控制系統,并給出其在DSP上的應用實現。首先介紹了機器人運動控制方法,然后介紹了CANopen協議在DSP上的具體實現,最后在實際機器人系統中進行測試。實驗結果表明,基于CANopen協議的輪式機器人控制系統可以滿足機器人控制的實時性和穩定性。
關鍵詞: 輪式機器人;運動控制系統;DSP;CANopen
CAN總線是一種串行通信協議,具有較高的通信速率和較強的抗干擾能力,現已被廣泛地應用于工業自動化、交通工具、醫療器械、機械制造、樓宇控制、自動化儀表等眾多領域。CANopen協議是由CiA(CAN in Automation)組織在CAN標準協議CAN 2.0協議、國際標準ISO 11898定義物理層和數據鏈路層的基礎上監督開發出的一種高層協議,是一個開放的、標準化的應用層協議,在各種控制系統中均有著廣泛的應用[1]。
當前,基于DSP的機器人控制系統中仍存在許多使用串口實現機器人執行機構(如電機)的驅動。這種方法存在一些缺點,如當機器人執行機構(即電機)數量較多時,DSP串口數量會不足,需要擴展串口。而串口通信速率較慢且抗干擾性不強,且串口通信無法實現多電機的同步控制。針對這些問題,本文主要提出了基于CANopen協議的輪式機器人控制系統,并給出其在TMS320F2812 DSP上的具體實現。本文首先介紹了兩輪差動式移動機器人的動力學模型、基于雙碼盤的機器人運動控制方法,然后介紹了CANopen協議在機器人運動控制系統的應用及實現,并在實際機器人系統中驗證了該控制系統的可行性、實時性和穩定性。
1 機器人導航
1.1 機器人動力學模型
圖1是典型的兩輪差動式機器人簡化模型。其后輪是兩個同軸的驅動輪,每個輪子由單獨的電機驅動;前輪是一個起支撐作用的萬向輪,保持車體穩定。設機器人的質心為底盤中軸線上的點M,兩驅動輪之間間距為L,驅動輪半徑為r,左右驅動輪電機角速度分別為?棕l和?棕r,機器人自身角速度為?棕,機器人線速度為v,則其運動學方程為[2]:
2.1.2 CANopen通信機制
CANopen通信模型定義了4種報文(通信對象):管理報文NMT、服務數據對象SDO、過程數據對象PDO以及特殊功能對象。
NMT用來傳遞主節點對整個網絡系統的管理信息。每個CANopen從節點都有初始化、預操作、操作和停止4個狀態。NMT負責由組節點控制從節點在各個狀態間的轉換,如圖3所示。SDO用來傳遞網絡系統中的配置信息。PDO用來實施傳送過程數據信息。特殊功能對象用于同步、應急指示和時間標記對象。
2.2 硬件設計
本文主要研究基于CANopen協議的輪式機器人控制系統在DSP上的實現,系統結構如圖4所示。該系統使用TMS320F2812 DSP作為主控芯片,使用3個ELMO公司生產的Harmonica型伺服電機驅動器以及3個MAXON公司生產的伺服電機作為機器人運動的動力系統,其中兩個用于底盤運動控制,一個用于提升機構運動控制。DSP與ELMO電機驅動器之間通過CAN總線及CANopen協議進行通信,主要交換控制命令以及碼盤讀回的信息。
CAN總線上的信號使用差分電路進行傳送,兩條信號線被稱為CAN_H和CAN_L,靜態時均為2.5 V左右,這時的狀態表示邏輯1,用CAN_H的電平比CAN_L的電平高的狀態表示邏輯0。此時,CAN_H的電平為3.5 V,CAN_L的電平為1.5 V。
由于TMS320F2812芯片內已集成了CAN總線控制器eCAN模塊,所以外部CAN總線的電路設計較簡單,只需將TMS320F2812的CANTX、CANRX引腳連入CAN總線中的CAN_H和CAN_L即可。但是eCAN模塊的引腳電平為3.3 V,為了使其電平符合高速CAN總線的電平特性,在eCAN模塊和CAN總線之間增加CAN的電平轉換器件SN65HVD230,同時,總線高低電平之間需要跨接120 ?贅的終端匹配電阻。硬件電路圖如圖5所示。
2.3 軟件設計
電機控制的通信流程如圖6所示。首先,通過ELMO自帶的配置軟件將各個電機驅動器的節點配置完成并檢查電路無誤后上電,DSP經過相關初始化后等待各個節點返回的boot-up信息,等待完畢后通過SDO寫入各個節點的參數配置并將各節點的狀態轉變為操作狀態,之后通過PDO獲取相應信息或者發送控制命令。
2.4 實驗驗證
首先驗證電機的同步啟動問題。為了能更加清晰地觀察多電機控制效果,在給每個電機發送控制命令之間引入較大的時間間隔,如5 s。當用串口控制時,可以清楚地觀察到一個電機是在另一個電機啟動后5 s才啟動的,而用CAN總線和CANopen協議控制時,雖然每個電機接收到啟動命令具有5 s的間隔,但是在SYNC同步命令發送到總線之前,各個電機均不會啟動,只會保存接收到的信息,等待DSP(即主站)發送統一的同步命令或其他更新信息。當每個電機的驅動器接收到SYNC同步命令后,所有電機同時啟動。從這點上可以看出,基于CAN總線和CANopen協議的電機控制系統具有串口控制無法比擬的同步優勢,這在機器人控制中是十分重要的,雖然在實際情況中,每個電機控制命令之間的間隔較短,但是具有同步控制的電機控制系統顯然將會具有更高的控制精度。
再驗證控制算法以及整個系統的可行性。將機器人置于坐標零點,角度偏差為0°,然后啟動它追蹤一條預定義的路徑,該路徑由兩條直線和3個半圓構成,如圖7所示。該圖中設定路徑以實線表示,實際運動路徑以點線表示,在最大速度為1 m/s的實驗中,機器人對路徑的跟蹤效果良好,只是在路徑的曲率變化處有一定的偏移,全局過程中偏移最大量僅12 cm,且最終的定位精度可以達到1 cm以內。
本文首先介紹了兩輪差動式移動機器人的動力學模型以及基于雙碼盤的機器人運動控制方法;然后介紹了CANopen協議在以DSP為主控芯片的機器人運動控制系統中的應用及實現,其中詳細介紹了部分軟硬件設計;最后通過實際效果驗證了該控制系統的可行性、實時性和穩定性,為機器人的實時同步運動控制提供參考。
參考文獻
[1] 林茂,賈凱,王金濤,等.CANopen協議在機器人控制器中的應用[J].微計算機信息,2010,26(3-2):152-154.
[2] 王金.雙碼盤定位機器人的位姿辨識算法[J].硅谷,2010, 12:53.
[3] 李紀文.基于陀螺儀的競賽機器人嵌入式控制系統的研究[D].成都:電子科技大學,2008.
[4] Elmo Motion Control. Elmo motion control CANopen DS 301 implementation guide[Z]. 2003.
[5] Elmo Motion Control. Elmo motion control CANopen DSP 402 implementation guide[Z]. 2003.