摘 要:根據(jù)機器人控制性能的要求,設計了一個基于CAN總線的分布式機器人控制系統(tǒng),該控制系統(tǒng)由上位主控計算機、通訊部分和下位各關節(jié)控制器組成,具有連線簡單,擴充方便,通訊穩(wěn)定可靠,控制實時性高等特點。并對機器人關節(jié)控制器的硬件電路設計和控制軟件設計作了詳細闡述。該控制系統(tǒng)已用于研制的6DOF機械手,控制效果良好。
關鍵詞:CAN總線;Motorola DSP;分布式控制;機器人控制器
Abstract: According to the requirements of robot control performance, a distributed robot control system based on CAN bus is designed, which is composed of computer, communication module and joint controllers .The control system has many features, including simple connection, convenient extension, reliable communication and good real-time, and so on. Besides these, it mainly describes the design of hardware circuit and control software of joint controller. A 6DOF robot has been controlled by the control system, and the good control result has been gotten.
Key words: CAN bus; Motorola DSP; distributed control; robot controller
0 引言
機器人控制系統(tǒng)是機器人信息處理和控制的主體,其設計好壞將決定機器人系統(tǒng)的整體行為和性能。機器人控制系統(tǒng)結構一般可分為三種類型:(1)集中控制方式,利用一臺微型計算機實現(xiàn)全部功能,這種方式具有結構簡單、經(jīng)濟的特點,但處理能力有限,難以滿足高性能控制要求并且控制風險高度集中。(2)主從控制方式,用主從兩個CPU進行控制,主CPU擔當系統(tǒng)管理,機器人語言編譯和人機接口功能,同時也利用它的運算能力完成坐標變換、軌跡插補;從CPU完成全部關節(jié)位置數(shù)字控制,主從CPU間通過公用內(nèi)存交換數(shù)據(jù),對采用更多的CPU進一步分散功能比較困難。(3)分布式控制,普遍采用上、下位機二級分布式結構,上位機負責整個系統(tǒng)管理以及運動學計算、軌跡規(guī)劃等,下位機由多個CPU組成,每個CPU控制一個關節(jié)運動,這些CPU和上位機通過總線形式相聯(lián)系。這種結構的控制器工作速度和控制性能明顯提高,是一種比較理想的機器人控制方式[1]。傳統(tǒng)的機器人控制器采用MCU作為控制芯片,其運算速度和處理能力難以滿足日益復雜的機器人控制。在通訊方式上,常用的是RS422或RS485通訊,通訊的實時性較差,故障率較高,出現(xiàn)故障時,不容易排查[2]。本文所設計的機器人控制系統(tǒng)采用分布式控制方式,上位機采用高性能的工業(yè)PC機,下位關節(jié)控制器選用集成DSP的高速運算處理能力和MCU的控制特性于一體的Motorola DSP56F807作為控制芯片,上位機和下位各關節(jié)控制器之間采用了有效地支持分布式控制和實時控制的CAN(Controller Area Network)總線通訊方式,既能快速地實現(xiàn)機器人控制的復雜算法,又具有較高的控制實時性,是一個高性能的機器人控制系統(tǒng)。
1 控制系統(tǒng)結構
機器人是一個多自由度系統(tǒng)。機器人控制本質(zhì)上是對各個關節(jié)的運動進行控制,使其協(xié)調(diào)運動,從而完成一些相對復雜的動作。該控制系統(tǒng)采用分布式控制方式,由上位主控計算機模塊、通訊模塊和下位關節(jié)控制器模塊組成,如圖1 所示。上位主控計算機負責整個系統(tǒng)的調(diào)度管理、在線運動規(guī)劃、故障診斷和人機交互等功能;通訊模塊負責上位計算機與下位各關節(jié)控制器之間的實時信息交換;各關節(jié)控制器和驅(qū)動直流無刷電機集成在一起,各個關節(jié)的運動由各關節(jié)控制器發(fā)出PWM信號驅(qū)動直流無刷電機實現(xiàn)。
[align=center]
圖1控制系統(tǒng)簡圖[/align]
1.1 上位主控計算機模塊
上位計算機是控制系統(tǒng)的中樞,要求體積小,運算速度快,滿足機器人實時控制的要求,通常采用高性能工業(yè)控制計算機。上位機應用程序在可視化編程環(huán)境VC++6.0下編制,分為程序界面、通訊初始化部分和控制部分??刂撇糠质钦麄€上位機軟件控制的核心,可實現(xiàn)單關節(jié)控制和多關節(jié)協(xié)調(diào)控制,圖2為單關節(jié)控制部分流程圖,單關節(jié)控制是從上位機輸入關節(jié)應該運動的期望位置值,然后向下位關節(jié)控制器發(fā)送單關節(jié)控制指令,并從下位關節(jié)控制器接受關節(jié)實際位置信息;下位關節(jié)控制器從上位機接收位置信息并加以運算處理,輸出PWM信號驅(qū)動直流無刷電機運動到期望位置。上位計算機的控制周期為20ms,它通過CAN總線接口卡連接到通訊總線上,與通訊總線上的各關節(jié)控制器交互信息。
[align=center]
圖2上位機單關節(jié)控制程序流程圖[/align]
1.2 通訊模塊
機器人的分布式控制系統(tǒng)中,對通信方式的選擇至關重要,上位計算機和下位各關節(jié)控制器間的通信既要滿足硬件連接簡單,擴充方便,又要滿足通信的高可靠性和實時性。本設計采用CAN總線作為通信標準,CAN總線是一種有效支持分布式控制和實時控制的串行通訊網(wǎng)絡,與一般的通信網(wǎng)絡相比具有可靠性高、實時性和靈活性好的優(yōu)點,非常適合作為機器人控制系統(tǒng)中的通訊方式[3]。
本控制系統(tǒng)中,上位計算機通過周立功單片機公司的USBCAN-II智能CAN接口卡連接到CAN網(wǎng)絡,在上位機中調(diào)用隨卡提供的ZLGVCI驅(qū)動庫函數(shù),來實現(xiàn)CAN通信的管理和監(jiān)控。CAN網(wǎng)絡各設備間通過雙絞線連接,因為雙絞線的特性阻抗為120歐,為了增強CAN通信的可靠性和抗干擾性,在CAN網(wǎng)絡的兩個端點加入120歐的抑制反射的終端匹配電阻。
1.3 下位關節(jié)控制器模塊
下位關節(jié)控制器模塊是整個控制系統(tǒng)的底層,與各關節(jié)驅(qū)動電機集成在一起,實際上是一個單關節(jié)運動控制和驅(qū)動模塊,主要用來控制各個關節(jié)運動具體執(zhí)行過程。關節(jié)控制器接收主控計算機的控制命令,對各個關節(jié)的運動進行控制,同時把底層信息反饋給上位計算機,便于上位計算機協(xié)調(diào)規(guī)劃,統(tǒng)一管理。所有的下位關節(jié)控制器在硬件結構上完全相同,根據(jù)各關節(jié)運動控制的差異,內(nèi)部灌注的軟件程序有所不同。關節(jié)控制器是整個控制系統(tǒng)的核心,也是本文研究的重點,它的性能好壞直接關系到機器人的整體性能。
2 控制器硬件系統(tǒng)設計
控制器硬件系統(tǒng)按結構和功能可分為主處理器單元、電源電路、電機驅(qū)動電路、CAN接口電路、欠壓保護電路、過流檢測電路等模塊,具體電路如圖3所示。
[align=center]
圖3控制器硬件電路原理簡圖[/align]
2.1 主處理器芯片
本設計核心控制芯片采用Motorola DSP56F807,該芯片混合了DSP 的高速運算能力與MCU 的控制特性于一體,提供了許多專用于電動機控制的外設,包括兩個脈寬調(diào)制模塊(PWMA、PWMB)、2個相位檢測器模塊(quadrature decoder)、12位精度的模數(shù)轉(zhuǎn)換模塊(ADC)、4個定時器模塊、通訊外設模塊(SCI、SPI、CAN)等,因此非常適合于對實現(xiàn)機器人各關節(jié)運動的直流無刷電機進行數(shù)字控制[4]。
2.2 CAN接口電路
DSP56F807芯片內(nèi)集成了CAN控制器,要完成數(shù)據(jù)幀的收發(fā)還需外加CAN驅(qū)動器芯片,本設計采用Philips公司的PCA82C250為CAN驅(qū)動器。為了增強抗外部干擾,在DSP56F807的MSCAN_TX和MSCAN_RX引腳與CAN驅(qū)動器之間加兩個高速光電耦合器6N137。
2.3 電機驅(qū)動電路
電機驅(qū)動采用Motorola公司的MPM3003,它內(nèi)部由上橋臂的3個P-溝道功率型MOSFET 和下橋臂的3個N-溝道功率型MOSFET組成三相橋式電路,是理想的伺服電機驅(qū)動集成電路芯片[5]。因PWM輸出電壓不能直接推動MPM3003,在PWM輸出口和MPM3003之間加一個TTL到CMOS轉(zhuǎn)換芯片MC14504B。
2.4 電源電路
控制器上同時需要5.0V 和3.3V 兩種電源。外部采用的是直流24V電源,通過MAX724將24V 穩(wěn)壓到5.0V,再通過MAX604將5.0V穩(wěn)壓到3.3V。為了減少電磁干擾,使用磁珠隔離3.3V 的數(shù)字電源和模擬電源。
因篇幅有限,其它的電路模塊不再一一介紹。
3 控制器軟件設計
控制器軟件設計是在Codewarrior6.0集成開發(fā)環(huán)境下進行的,采用模塊化設計,可分為初始化模塊、主循環(huán)模塊和中斷子程序模塊,整個控制功能由各中斷子程序?qū)崿F(xiàn),如圖4所示。初始化模塊的作用是初始化DSP 及控制參數(shù),主循環(huán)模塊是一個死循環(huán),主要是查詢是否有中斷產(chǎn)生,如果有中斷則轉(zhuǎn)而去執(zhí)行相應的中斷服務子程序。數(shù)字PID控制子程序是實現(xiàn)控制功能的主體,完成對關節(jié)的位置、速度PID控制,通過定時器中斷實現(xiàn)。
[align=center]
圖4控制器軟件結構簡圖[/align]
對于數(shù)字PID控制子程序中的PID算法,采用了一種改進的變速積分PID算法,有效地克服了常規(guī)PID算法中出現(xiàn)積分飽和時,造成超調(diào)量增加,使調(diào)節(jié)品質(zhì)變壞的缺點。變速積分法的基本思想是設法改變積分項的累加速度,使其與偏差大小相對應,偏差大時,減弱積分作用,反之則加強。
常規(guī)PID算法數(shù)字離散化為:
式中,KP,KI,KD分別為調(diào)節(jié)器的比例、積分和微分系數(shù);E(k),E(k-1)分別為第k次和k-1次的期望偏差值;U(k)為第k次的調(diào)節(jié)器輸出。
改進后的變速積分PID算法為:
f[E(k)]是E(k)的函數(shù),當|E(k)|≤B時,進行常規(guī)的PID控制;當|E(k)|>(A+B)后,不再進行積分項的累加;而當B<|E(k)|>(A+B)時,f[E(k)]隨E(k)的減小而增大,累加速度加快。其中,A,B為分離區(qū)間。
4 結論
本文設計的機器人分布式控制系統(tǒng),采用CAN總線作為通信方式,和過去機器人控制中常用的RS485總線相比具有通訊穩(wěn)定可靠、實時性高等優(yōu)點。在下位關節(jié)控制器中選用了Motorola DSP56F807作為控制芯片,既能方便地利用豐富的外圍模塊實現(xiàn)控制功能,又能以較快的運算速度實現(xiàn)復雜的控制算法,克服了過去利用MCU作為控制芯片時,難以實現(xiàn)復雜的控制算法的缺點。在控制器軟件中采用了改進的變速積分PID算法,對關節(jié)位置、速度進行數(shù)字PID控制。該控制系統(tǒng)即插即用,功能擴展和故障處理方便;連線簡單,過去對6DOF的機械手進行控制,需118根線纜(包括電機線、傳感器線和其它開關量控制線),現(xiàn)在只需一根雙絞線,外觀也很美觀;另外,各關節(jié)控制器直接分布在控制現(xiàn)場,使模擬信號傳輸距離明顯縮短,有效地改善了抗干擾能力。
參考文獻:
[1] 范永,譚民. 機器人控制器的現(xiàn)狀及展望. 機器人. 1999,21
[2] 劉華,程莉等. 機器人控制器與被控機器人的通訊方法研究. 機器人技術與應用.2002,4
[3] 鄔寬明. CAN總線原理和應用系統(tǒng)設計. 北京:北京航空航天大學出版社,1996
[4] DSP56F800 User Manual. Rev.6.0 Motorola Inc,2004
[5] 陳粵初. Motorola 單片機及專用集成芯片應用系統(tǒng)設計. 北京:北京航空航天大學出版社,1994
[6] 楊飛,鄭貴林. 基于CAN總線的監(jiān)控系統(tǒng)設計. 微計算機信息.2005,21(7)