王亞峰,陳 昊,張 軍,任杰夫
(北方工業(yè)大學(xué) 電氣與控制工程學(xué)院,北京100000)
基于CAN的分布式機(jī)器人控制系統(tǒng)設(shè)計(jì)
王亞峰,陳 昊,張 軍,任杰夫
(北方工業(yè)大學(xué) 電氣與控制工程學(xué)院,北京100000)
機(jī)器人控制,囊括了信息傳輸、多傳感器信息融合處理、多電機(jī)驅(qū)動等技術(shù)。因此對控制系統(tǒng)的通信能力有著較高的要求,傳統(tǒng)的通訊方式,如RS485等,往往具有通訊實(shí)時性差,擴(kuò)展不便等缺點(diǎn),本文介紹了一種基于CAN總線通信的分布式機(jī)器人控制系統(tǒng),CAN總線通信速率高并且可容納的節(jié)點(diǎn)數(shù)目多,使得分布式控制系統(tǒng)中各個模塊之間的數(shù)據(jù)傳輸和指令共享的性能大大提高。另外CAN總線的多主工作方式,使得總線網(wǎng)絡(luò)上各個節(jié)點(diǎn)之間的實(shí)時通訊能力大大增強(qiáng)。文章對系統(tǒng)的硬件、軟件設(shè)計(jì)做了詳細(xì)闡述,最后經(jīng)實(shí)驗(yàn)驗(yàn)證了系統(tǒng)的可行性。
機(jī)器人;CAN總線;分布式控制;人機(jī)交互
隨著計(jì)算機(jī)技術(shù)和電子技術(shù)的蓬勃發(fā)展,機(jī)器人控制技術(shù)較過去有著飛躍式的進(jìn)步,用戶對機(jī)器人性能的要求也越來越高。現(xiàn)如今的高端機(jī)器人產(chǎn)品大都具有十分強(qiáng)悍的性能,可以在非結(jié)構(gòu)化環(huán)境中進(jìn)行各種任務(wù),例如壁障、越野甚至淺水功能。然而隨著性能需求的提高,以往的控制方式和通信手段已經(jīng)不能充分滿足需求,越來越復(fù)雜的傳感設(shè)備被加裝在機(jī)器人上,意味著更加復(fù)雜的信息需要處理,面對越來越復(fù)雜的系統(tǒng)結(jié)構(gòu),傳統(tǒng)的控制方式也逐漸暴露出很多弊端。
文中根據(jù)機(jī)器人發(fā)展的需求和技術(shù)特點(diǎn),從系統(tǒng)的可擴(kuò)展性和可靠性出發(fā)設(shè)計(jì)了基于CAN的分布式機(jī)器人控制系統(tǒng)。并將系統(tǒng)應(yīng)用在SENPOWER-HR-8S機(jī)器人上,結(jié)果表明,系統(tǒng)調(diào)試和故障排查非常方便,且能夠勝任對仿人機(jī)器人的控制,驗(yàn)證了系統(tǒng)的可靠性和穩(wěn)定性。
將系統(tǒng)按照功能劃分成不同模塊,得到分布式體系結(jié)構(gòu),如圖1所示。系統(tǒng)可分為上位機(jī)PC模塊、通信模塊和下位執(zhí)行端模塊。上位機(jī)主要負(fù)責(zé)整個系統(tǒng)的數(shù)據(jù)處理、指令下達(dá)和人機(jī)交互等功能;通訊模塊即整個CAN通訊網(wǎng)絡(luò),負(fù)責(zé)指令和參數(shù)的傳輸;執(zhí)行端主要是處理指令并控制電機(jī)動作。

圖1 整體設(shè)計(jì)
文中采用個人電腦作為上位機(jī),上位機(jī)程序在開發(fā)環(huán)境Visual Studio下編制,操作界面即人機(jī)交互界面,在接收到使用者的操作指令后,程序依次完成指令解析、任務(wù)規(guī)劃、硬件配置、生成指令并最終將指令通過PC-CAN卡發(fā)送到總線網(wǎng)絡(luò)上[1]。PC-CAN卡采用普創(chuàng)電子公司生產(chǎn)的CANUSB-I智能CAN接口卡,在實(shí)際操作中,PC通過接口卡連接至CAN總線網(wǎng)絡(luò),如圖,上位機(jī)程序直接調(diào)用隨卡提供的庫函數(shù)實(shí)現(xiàn)PC對CAN網(wǎng)絡(luò)的數(shù)據(jù)處理和采集。
3.1 集中控制
集中式控制方式是在設(shè)計(jì)機(jī)器人控制系統(tǒng)時,比較傳統(tǒng)也是常見的一種控制方式[2],結(jié)構(gòu)如圖2所示。這種結(jié)構(gòu)往往存在以下缺點(diǎn):1)數(shù)字信號、模擬信號、動作指令、配置指令都直接接入下位機(jī),使得布線非常復(fù)雜,故障率較高而且故障排查十分困難。2)由于下位機(jī)要處理復(fù)雜的指令信息,所有程序就會十分復(fù)雜,出錯率較高,另外為滿足處理要求,要選擇較高性能的芯片,因此軟件開發(fā)成本和硬件成本都比較高。3)系統(tǒng)的可擴(kuò)展性差。

圖2 集中式控制系統(tǒng)簡圖
3.2 分布式控制
為了避免集中控制帶來的種種缺點(diǎn),本采用分布式控制方式[3],結(jié)構(gòu)如圖1。該結(jié)構(gòu)主要有以下優(yōu)點(diǎn):1)所有的節(jié)點(diǎn)均掛載在總線上,布線簡單,抗干擾能力強(qiáng),故障易于排查。2)主要的運(yùn)算和數(shù)據(jù)處理任務(wù)由上位機(jī)軟件進(jìn)行,對下位機(jī)的性能要求也隨之降低,自然成本也節(jié)約不少[4]。3)分布式控制方式是模塊化的系統(tǒng)設(shè)計(jì),結(jié)構(gòu)組成靈活,便于拓展[5]。
4.1 CAN總線網(wǎng)絡(luò)的優(yōu)勢
隨著機(jī)器人產(chǎn)業(yè)的不斷壯大,攝像頭、GPS等復(fù)雜的傳感裝置被逐步引入到機(jī)器人上[6],隨之而來的是對機(jī)器人信息處理能力要求的提升,龐大的信息網(wǎng)絡(luò)和復(fù)雜的信息采集與運(yùn)算方法,使得傳統(tǒng)的通信方式已經(jīng)不能滿足當(dāng)今機(jī)器人行業(yè)的發(fā)展需求。
早在上世紀(jì)80年代,德國的博世公司就提出將現(xiàn)場總線網(wǎng)絡(luò)(Controller Area Network,CAN)引入到汽車內(nèi)部設(shè)備通信體系的概念[7]。如今的北美和歐洲更是將CAN通信協(xié)議廣泛應(yīng)用到汽車工業(yè)和嵌入式控制系統(tǒng)中。近年來,現(xiàn)場總線技術(shù)不斷發(fā)展,并逐漸成為工程上通信方式的不二選擇,CAN總線技術(shù)是現(xiàn)場總線技術(shù)中應(yīng)用最為廣泛的[8]。
對于本設(shè)計(jì)中的分布式控制系統(tǒng),采用CAN總線作為通信標(biāo)準(zhǔn)有以下優(yōu)點(diǎn):
1)CAN總線通信速率高并且可容納的節(jié)點(diǎn)數(shù)目多,使得分布式控制系統(tǒng)中各個模塊之間的數(shù)據(jù)傳輸和指令共享的性能大大提高[9]。
2)CAN總線是多主工作方式,使得總線網(wǎng)絡(luò)上各個節(jié)點(diǎn)之間的實(shí)時通訊能力大大增強(qiáng)。
4.2 總線網(wǎng)絡(luò)的連接
上位機(jī)通過CAN接口卡連接至CAN總線,系統(tǒng)的其他各個模塊通過雙絞線連接至總線網(wǎng)絡(luò),為提高CAN通信的可靠性和抗干擾性加入120歐的終端電阻。
4.3 通信協(xié)議的制定
在本設(shè)計(jì)中,總線上傳輸?shù)男畔⒖煞譃橐韵聨最?
1)傳感器數(shù)據(jù)信息。包含避障傳感器信號、溫度傳感器信號和加速度傳感器信號等[10]。
2)指令信息,包括上位PC機(jī)對機(jī)器人下達(dá)的動作指令和系統(tǒng)的初始化指令等。
3)一半信息,如各節(jié)點(diǎn)的初始化信息 、數(shù)據(jù)的反饋信息和對指令的應(yīng)答信息等。
在CAN 2.0規(guī)范標(biāo)準(zhǔn)中,沒有規(guī)定應(yīng)用層協(xié)議,國際上很多公司推出了相應(yīng)的高層協(xié)議,為節(jié)約成本和降低系統(tǒng)復(fù)雜程度,這里自行設(shè)計(jì)了應(yīng)用層協(xié)議。
設(shè)計(jì)中,我們根據(jù)機(jī)器人的需求如運(yùn)動指令、傳感器數(shù)據(jù)等信息,定義不同的功能標(biāo)識并定義優(yōu)先級,協(xié)議將CAN標(biāo)識符依次劃分為功能標(biāo)識、多幀標(biāo)識和地址位.為功能標(biāo)識,ID28 ~ ID26、ID25、ID24~I(xiàn)D21和ID20~I(xiàn)D18分別定義為功能標(biāo)識、多幀標(biāo)識、地址位和幀類型標(biāo)識位。功能標(biāo)識用來區(qū)分指令的不同功能,如區(qū)分送達(dá)機(jī)器人的動作指令信息和上位機(jī)下達(dá)的各個節(jié)點(diǎn)初始化信息,多幀表示用來區(qū)分?jǐn)?shù)據(jù)是否為多幀傳輸,ID25為1時即為多幀,ID25為0時則為單幀傳輸,地址由ID24~I(xiàn)D21標(biāo)識,幀類型標(biāo)識符確定數(shù)據(jù)為何種數(shù)據(jù)類型,此處最多可表示8種幀類型,包括定義多幀傳輸中的 結(jié)束幀、非結(jié)束幀和廣播幀等類型[11]。指令信息和普通信息等信息包含在數(shù)據(jù)域內(nèi)。
對于機(jī)器人控制,傳統(tǒng)的控制方法是采用工控機(jī)作為主控芯片,工控機(jī)的運(yùn)算能力強(qiáng)、速度快,但也存在這功耗大,成本高而且體積較大比較笨重。考慮到設(shè)計(jì)中機(jī)器人是一個較小的 系統(tǒng),這里采用STM32F103系列單片機(jī)作為執(zhí)行端的主控芯片,在減小系統(tǒng)體積的同時降低了硬件成本和功耗[12]。STM32F103系列單片機(jī)內(nèi)部集成了CAN通信模塊,我們只需外加CAN收發(fā)模塊即可[13]。W48SHVB225型CAN總線收發(fā)模塊的原理圖如圖3所示。單片機(jī)的TxCAN與SW48SHVB225的輸入腳連接,即單片機(jī)數(shù)據(jù)回傳總線的通路,同時單片機(jī)的RxCAN與SW48SHVB225的輸出腳連接,即總線向單片機(jī)傳輸指令額通路,SW48SHVB225模塊采用光耦隔離,大大提高了系統(tǒng)的抗干擾能力。另外,我們在CANL和CANH腳處介入了120 Ω電阻作為終端電阻,以減小干擾[14]。CAN收發(fā)模塊的實(shí)際電路如圖4所示。單片機(jī)中的CAN總線收發(fā)函數(shù)在MDK4.0集成開發(fā)環(huán)境下使用C語言進(jìn)行編寫,主要代碼如下:



圖3 原理圖

圖4 實(shí)際電路
文中將基于CAN總線的機(jī)器人控制系統(tǒng)應(yīng)用到森漢機(jī)器人公司研發(fā)的SENPOWER-HR-8S仿人機(jī)器人上。SENPOWER-HR-8S身高300,寬165 mm,重1.2 Kg,17個自由度,關(guān)節(jié)采用森漢公司自主研發(fā)SENPOWER-SHM14伺服電機(jī),扭力在7.4 V供電狀態(tài)下可達(dá)14 kg.cm,機(jī)器人機(jī)身采用HR-8S金屬套件。在實(shí)際操作中,根據(jù)設(shè)計(jì)需要將機(jī)器人的主控芯片由STC12C5A60S2單片機(jī)換成STM32F103系列單片機(jī),并加裝了CAN[16]收發(fā)模塊,系統(tǒng)實(shí)物圖如圖5所示。通過實(shí)驗(yàn),說明系統(tǒng)能夠勝任對小型仿人機(jī)器人動作的控制,滿足基本的控制需求。

圖5 系統(tǒng)整體圖
結(jié)合機(jī)器人控制的特點(diǎn)和性能要求,設(shè)計(jì)了控制系統(tǒng)的軟件硬件,建立了基于CAN總線通信的機(jī)器人控制系統(tǒng),系統(tǒng)采用分布式控制,易于擴(kuò)展,模塊條理清晰。采用CAN總線作為通信標(biāo)準(zhǔn),較傳統(tǒng)通訊方式傳輸速率較快,出錯率低,且故障易于排查。最終在實(shí)測試驗(yàn)中驗(yàn)證了系統(tǒng)的可行性和穩(wěn)定性。單通信協(xié)議還比較簡單,傳輸?shù)闹皇呛唵蔚闹噶顢?shù)據(jù),下一步的改進(jìn)方向是進(jìn)一步優(yōu)化通信協(xié)議,使鏈路上的信息功能化。
[1]張薇,謝紅梅,王保平.一種新型的分段logistic混沌擴(kuò)頻通信算法[J].計(jì)算機(jī)科學(xué),2013,40(1):59-62.
[2]雷靜桃,王峰,俞煌穎.四足機(jī)器人軌跡規(guī)劃及移動能效率分析[J].機(jī)械設(shè)計(jì)與研究,2014,30(1):1-5.
[3]趙萬華,杜超,張俊,等.主軸轉(zhuǎn)子系統(tǒng)動力學(xué)解析建模方法[J].機(jī)械工程學(xué)報,2013,49(6):44-51.
[4]蔡自興,郭璠.中國工業(yè)機(jī)器人發(fā)展的若干問題[J].機(jī)器人技術(shù)與應(yīng)用,2013,3(5):8-12.
[5]周偉,廖文和,田威.基于空間插值的工業(yè)機(jī)器人精度補(bǔ)償方法理論與試驗(yàn) [J].機(jī)械工程學(xué)報,2013,49(3):42-47.
[6]JONE M.A brief history of awesome robots[EB/OL].[2013-06-02].http//www.motherjones.com/media/2013/05/robots-modern-unimate-watsonroomba-timeline.
[7]王棟,曹彤,宋虎,等.聯(lián)合實(shí)驗(yàn)和仿真的機(jī)器人參數(shù)標(biāo)定[J].機(jī)電工程,2013(10):1182-1187.
[8]張潔,李艷文.果蔬采摘機(jī)器人的研究現(xiàn)狀、問題及對策[J].機(jī)械設(shè)計(jì),2015,27(6):1-5.
[9]Rastegar J,F(xiàn)ardanesh B.Manipulator workspace analysis using the Monte Carlo method[J].Mechanism and Machine Theory,2013,25(2):233-239.
[10]ZHOU B,YANG J,WANG D P.Matching method of plane image based on random sample consensus algorithm [J].Journal of Computer Applications,2014,31(4):1053-1056.
[11]Lukashevich P,Zalesky B,Ablameyko S.Medicalimage registration based on SURF detector[J].Pattern Recognition and Image Analysis,2014,21(3):519-521.
[12]Strasdat H,Montiel J M M,Davison A J.VisualSLAM:Why filter[J].Image and Vision Computing,2012,30(2):65-77.
[13]蘇灝慶,何玉珠.某型導(dǎo)引頭測試系統(tǒng)的測量不確定度研究[J].電子測量技術(shù),2013(2):31-33.
[14]王晨晨,費(fèi)業(yè)泰,尚平.懸臂式坐標(biāo)測量機(jī)誤差分離與補(bǔ)償?shù)难芯?[J].電子測量與儀器學(xué)報,2013,26(5):413-418.
[15]LIT,SUN K,JIN Y,etal.A noveloptimal calibration algorithm on a dexterous 6 DOF serial robot-with the optimizationof measurement poses number[C]//Robotics and Automation (ICRA),2011 IEEE International Conferenceon.IEEE,2014:975-981.
[16]邱春婷,劉紅彥,齊靜.一種改進(jìn)的Canny邊緣檢測方法[J].紡織高校基礎(chǔ)科學(xué)學(xué)報,2014,27(3):380-384.
The design of distributed robot control system based on CAN bus
WANG Ya-feng,CHEN Hao,ZHANG Jun,REN Jie-fu
(School of Electrical and Control Engineering,North China University of Technology,Beijing 100000,China)
The control system of mobile robot in unstructured environment includes multi sensor information fusion,multi motor drive control and wireless communication technology,and the system has a higher communication system requirements.The design of distributed robot control system based on CAN Bus is introduced in the following and this paper also expounds the hardware and software of the system at length.
robot; CAN bus; distributed control; human-computer interaction
TN916
:A
:1674-6236(2017)14-0148-04
2016-06-01稿件編號:201606011
王亞峰(1994—),男,河北唐山人。研究方向:計(jì)算機(jī)系統(tǒng)結(jié)構(gòu)。