摘 要: 依據(jù)現(xiàn)代機器人技術(shù)的發(fā)展特點,提出了一種基于ARM(Advanced RISC Microprocessor)、DSP和arm-linux的嵌入式機器人控制系統(tǒng)的設(shè)計方法,介紹了嵌入式系統(tǒng),給出了功能設(shè)計、結(jié)構(gòu)設(shè)計、硬件設(shè)計、軟件設(shè)計的控制系統(tǒng)的設(shè)計過程,并分別從上述各方面對控制系統(tǒng)的通用性進行了探討。層次化的體系結(jié)構(gòu)、模塊化的硬件、結(jié)構(gòu)化的軟件使得設(shè)計出的機器人控制系統(tǒng)經(jīng)過簡單的硬件調(diào)整和軟件定制,就能適用于多種機器人。通過七自由度串聯(lián)機器人抓取工件的實例驗證,該機器人控制系統(tǒng)性能穩(wěn)定、具有一定的通用性。
關(guān)鍵詞: 嵌入式系統(tǒng),控制系統(tǒng),ARM,機器人
1 前言
隨著科學(xué)技術(shù)的發(fā)展,機器人將在太空探測、救災(zāi)防爆、海洋開發(fā)等領(lǐng)域有著廣闊的應(yīng)用前景,因而其發(fā)展正在成為國內(nèi)外研究人員關(guān)注的焦點[1,2,3]。分析上述各種用途的機器人,其構(gòu)成不外乎機構(gòu)本題和控制系統(tǒng)兩大部分。機構(gòu)本體在體現(xiàn)機器人特色的同時,也決定了其必然是無人系統(tǒng),在惡劣的環(huán)境下,機器人要具備一定的自主能力。這就要求機器人有一定的“判斷能力”和“想法”,需要復(fù)雜的算法,包括運動算法和模式識別算法。一般的微處理器是無法完成這項任務(wù),而上述各種機器人又無法使用計算機控制作業(yè),32位微處理器和嵌入式操作系統(tǒng)的出現(xiàn)解決了此問題。
嵌入式系統(tǒng)是指以應(yīng)用為核心、以計算機技術(shù)為基礎(chǔ)、軟硬件可裁剪,以及適應(yīng)應(yīng)用系統(tǒng)對功能、可靠性、成本、體積和功耗嚴格要求的專用計算機系統(tǒng)[4,5,6,7]。作為嵌入式系統(tǒng)的核心,嵌入式微處理器為8位、16位或32微處理器。但由于8位和16位微處理器的運行速度、尋址能力和功耗等問題,已較難滿足相對復(fù)雜的嵌入式應(yīng)用場合。在32位嵌入式應(yīng)用領(lǐng)域內(nèi),ARM(Advanced RISC Machine)獲得了巨大的成功[8,9,10,11]。ARM微處理器一般具有體積小、低功耗、低成本、高性能的特點;例如,由于它有大量的使用寄存器,指令執(zhí)行速度更快,于是大多數(shù)數(shù)據(jù)操作都在寄存器中完成;它的尋址方式靈活簡單,執(zhí)行效率高,指令長度固定等。在ARM中,可以嵌入嵌入式操作系統(tǒng),在此系統(tǒng)上可完成復(fù)雜的算法,可以代替PC機完成各種任務(wù)。
本文首先介紹了嵌入式系統(tǒng)的結(jié)構(gòu),然后介紹如何利用嵌入式操作系統(tǒng)和ARM 、DSP構(gòu)建機器人控制系統(tǒng),最后說明使用此控制系統(tǒng)控制7自由度串聯(lián)機器人[12]。
2 嵌入式系統(tǒng)的結(jié)構(gòu)
嵌入式系統(tǒng)主要由嵌入式操作系統(tǒng)和承載操作系統(tǒng)的硬件組成。
2.1 嵌入式操作系統(tǒng)
嵌入式操作系統(tǒng)是嵌入式系統(tǒng)的控制中心,主要用于對系統(tǒng)的信息處理部件和用戶交互界面加以控制。
2.1.1嵌入式操作系統(tǒng)的實時性
在嵌入式領(lǐng)域中,實時是一個非常重要的概念。實時系統(tǒng)是指在確定的時間內(nèi)完成規(guī)定功能,并能對外部異步事件作出正確響應(yīng)的計算機系統(tǒng)。
實時系統(tǒng)的核心是必須在確定的時間內(nèi)執(zhí)行完一項預(yù)先定義的操作,否則將引起性能下降甚至系統(tǒng)崩潰等嚴重后果。需要說明的是,實時系統(tǒng)并不是說系統(tǒng)的響應(yīng)和處理速度非常快,實時系統(tǒng)的實時性的實現(xiàn)需要軟硬件的配合來完成。首先應(yīng)該保證硬件的處理速度滿足實時性的要求,同時相對軟件而言,實時性體現(xiàn)在組成軟件系統(tǒng)的各個任務(wù)的執(zhí)行時限。
在嵌入式系統(tǒng)中,評價一個實時系統(tǒng)的性能要從任務(wù)調(diào)度功能、內(nèi)存管理功能、最小內(nèi)存開銷、任務(wù)切換時間、最大中斷禁止時間等方面考慮。
2.1.2 嵌入式系統(tǒng)中的軟件
嵌入式系統(tǒng)的軟件部分,具有以下特點:
1) 嵌入式軟件的開發(fā)與硬件緊密相關(guān)。由于嵌入式軟件的開發(fā)式針對具體硬件平臺進行的,它往往牽涉硬件驅(qū)動方面的一些軟硬結(jié)合部分。
2) 軟件代碼要求高效率和高可靠性。嵌入式系統(tǒng)中軟件運行空間有限,內(nèi)存空間非常寶貴,在軟件的編程過程中需時刻考慮軟件的運行效率。在實時系統(tǒng)中,處理器必須嚴格處理異步發(fā)生的各種任務(wù)。此外,嵌入式軟件系統(tǒng)還應(yīng)有異常處理、快速復(fù)位等特點。
3) 軟件一般固化在FLASH或ROM中。為了提高執(zhí)行速度和系統(tǒng)的可靠性,同時縮短系統(tǒng)復(fù)位時間,一般在嵌入式軟件調(diào)試完畢后,會下載固化到目標(biāo)板中的FLASH或ROM中。
2.1.3 嵌入式系統(tǒng)的應(yīng)用
嵌入式系統(tǒng)產(chǎn)品遍布人們的日常生活,從手機、PDA到家中的空調(diào)、冰箱,從小汽車到波音飛機,甚至武器庫中的巡航導(dǎo)彈,都有它的蹤跡。嵌入式產(chǎn)品已經(jīng)在很多領(lǐng)域得到廣泛的使用,如國防、工業(yè)控制、通信、辦公自動化和消費電子領(lǐng)域等。
2.2 嵌入式系統(tǒng)的硬件系統(tǒng)
與普通的PC硬件相比,嵌入式系統(tǒng)的硬件系統(tǒng)具有以下特性:
1) 體積小,集成效率高。嵌入式系統(tǒng)去除了冗余,力爭用最小的系統(tǒng)完成目標(biāo)功能。
2) 面向特定應(yīng)用。
3) 低功耗,電磁兼容性好,能在惡劣環(huán)境下工作,死機時能夠快速重啟。
嵌入式系統(tǒng)硬件在價格、功能、體積、重量、能耗等方面都有嚴格的限制。
3 系統(tǒng)功能與設(shè)計
3.1 系統(tǒng)功能
本著既能滿足多種類型機器人的實際需 要,又盡量節(jié)約資源的原則,控制系統(tǒng)提供的功能如下:
1) 上位機監(jiān)控.響應(yīng)控制臺發(fā)出的指令. 向下位機發(fā)送數(shù)據(jù)和命令;
2) 通訊總線. 現(xiàn)場總線,用于和其他控制器信息交互;
3) 傳感器集成.直接集成姿態(tài)、位置、深度、高度、速度、加速度等傳感器,或者預(yù)留接口;
4) 脈寬調(diào)制.用于調(diào)整電機的速度和位置,從而控制機器人的速度和姿態(tài)等;
5) A/D采集.監(jiān)視工作電壓、電流、壓力等A/D量,用于系統(tǒng)控制或狀態(tài)記錄;
6) I/O控制.用于對外圍開關(guān)量的監(jiān)控;
7) 數(shù)據(jù)記錄.用于設(shè)定參數(shù)的存儲、運動路線的定制或相關(guān)監(jiān)控數(shù)據(jù)的記錄;
8) 通訊協(xié)議.便于控制器之間及機器人與上位機之間信息可靠、高效傳遞;
9) 信息處理.各種傳感器輸出數(shù)據(jù)的提取、處理及多傳感器信息融合;
10) 控制算法.下位計算法主要是前饋算法和PID算法,上位機算法視具體的機器人而定。
3.2 系統(tǒng)設(shè)計
此系統(tǒng)的設(shè)計主要是為了能夠滿足多種機器人控制需求,同時兼顧機器人對控制器體積、重量、功耗等敏感的特性。
上位機CPU選用Samsung公司的基于ARM920T[5,6]核(適用于實時環(huán)境)的低功耗、16/32 bit、高性能RISC微控制器S3C2410,它的主頻為266MHz;操作系統(tǒng)選用源碼公開、專為ARM設(shè)計的、可靠性高的實時、多任務(wù)內(nèi)核arm-Linux;下位機選用Ti公司的具有低功耗、靈活指令集、內(nèi)部操作靈活、高速的運算能力等性能的DSP-TMS320LF2407。
3.2.1 體系結(jié)構(gòu)
基于ARM、DSP和arm-Linux的機器人控制系統(tǒng)硬件結(jié)構(gòu)圖如圖1所示。
圖1 機器人控制器硬件結(jié)構(gòu)
上位機主要解決算法問題,處理各個傳感器送回的信號,根據(jù)各個信號,向下位機發(fā)送控制命令,同時,上位機接收來自下位機的信號,判斷下位機的狀態(tài),以便發(fā)送相應(yīng)的數(shù)據(jù)和命令。下位機主要是對電機的控制,根據(jù)上位機發(fā)送過來的命令和數(shù)據(jù),結(jié)合前饋算法和PID算法,對電機進行速度、位置等控制。
不同類型的機器人,其主要區(qū)別在于上位機的算法編寫,上位機的算法與具體的機器人所要求完成的任務(wù)有關(guān)。在一個機器人系統(tǒng)中,只需一個上位機,作為機器人的“大腦”;下位機的個數(shù)則根據(jù)機器人需要而定。
3.2.2 硬件設(shè)計
硬件設(shè)計的原則是:部件模塊化,接口標(biāo)準(zhǔn)化,互換性、擴展性好,可靠性高。
硬件可劃分為CPU模塊、外設(shè)模塊。兩個模塊層可疊在一起,機械上可拆分,相互之間有接口相連,便于互換和維護。
1)CPU模塊:上位機包括S3C2410、SDRAM、NAND FLASH、晶振等系統(tǒng)運行的基本要素;下位機包括TMS320LF2407、SDRAM、晶振等系統(tǒng)運行的基本要素。
2)外設(shè)模塊:上位機包括電源接口、485總線接口、A/D接口、I/O接口、PWM接口、下位機通訊接口、USB HOST接口、USB SLAVE 接口、LCD接口等,同時它也是傳感器模塊和CPU模塊連接的橋梁;下位機包括電源接口、485總線接口、I/O接口、PWM接口、光電編碼器接口、上位機通訊接口、A/D接口,F(xiàn)LASH等。
S3C2410芯片本身集成了一些通用的外圍器件,所以像A/D、USB、I/O等通道直接利用其資源。片內(nèi)的2個UART分別用作485總線及與下位機通訊接口,這兩個串口屬于對外連接口,為了避免引入外界干擾,用高速光隔HCPL2630進行隔離。 TMS320LF2407芯片本身也集成了一些通用的外圍器件,可直接利用PWM、A/D、I/O、光電編碼器接口等資源。片內(nèi)UART用作與上位機通訊接口,也用了光電隔離。
針對不同的機器人,硬件部分只需做簡單的接口調(diào)整或傳感器增刪。
控制器集成尺寸:上位機模塊為60mm×45mm×35mm,總功耗約為5V ×200mA,其中CPU模塊功耗盡為3.3V×30mA;下位機模塊尺寸60mm×40mm×30mm,功耗也是很低的,而一般的PC104總線CPU模塊功耗約為5V×1000mA。
3.2.3 軟件設(shè)計
軟件設(shè)計的基本原則是:軟件結(jié)構(gòu)化,驅(qū)動標(biāo)準(zhǔn)化,系統(tǒng)可定制[13]。
軟件設(shè)計的主要工作是操作系統(tǒng)的移植、驅(qū)動程序的設(shè)計、常用API函數(shù)的封裝、多任務(wù)的分解與設(shè)計、上位機算法的編寫和下位機驅(qū)動程序與算法的編寫等。其中關(guān)鍵在于上下位機的同步性,當(dāng)多個控制器一起工作時,同步問題更加重要了。上位機把數(shù)據(jù)傳送給下位機,先把控制器的標(biāo)號給傳下去,只有與此號碼相對應(yīng)模塊才能接收下面的數(shù)據(jù),當(dāng)下位機接收到信號后,需要向上位機發(fā)送一個確認信號。需要同步多個處理器,分別占用總線。為了使多機通訊同步,不發(fā)生信號沖突,在設(shè)計硬件時,每個微處理器使用了一個I/O口,并把每個處理器的I/O口用線連在一起。當(dāng)一個控制器接收或發(fā)送數(shù)據(jù)時,向其它處理器發(fā)送一個高信號,來說明自己正在使用總線。接受到該信號的處理器得知總線正在忙,不再發(fā)送數(shù)據(jù),可避免總線沖突。事實證明這種方法是可行的,不會發(fā)生總線沖突,多處理器工作時同步性很好。
本軟件中傳感器數(shù)據(jù)的讀取、校驗、提取、處理均按照NMEA0183標(biāo)準(zhǔn)進行,便于系統(tǒng)升級。
系統(tǒng)可定制主要是考慮到針對不同機器人其上層軟件不盡相同。
4 實驗研究
應(yīng)用于7自由度串聯(lián)機器人
為了驗證該機器人控制系統(tǒng)的性能,設(shè)計了場景試驗:7自由度串聯(lián)機器人首先抓取第一工件放在加工臺上;把其它兩個工件依次前移;最后把加工完的工件放在最后的位置上,整個過程如圖6~圖9所示。
[align=center]

[/align]
機器人完成這個任務(wù)所要經(jīng)過的過程:①機器人抓取第一個工件,并把它放在加工臺上,如圖2~圖3所示;②機器人把第2個工件移到第一個位置,準(zhǔn)備進行加工,如圖4~圖5所示;③把第三個工件移到第二個位置上,圖6~圖7所示;④機器人抓取加工好的工件,并把它放在第三個位置上,如圖8~圖9所示。
這樣一個循環(huán)周期便完成了一個工件的加工,可使后面的工件依次得到加工。
在該控制系統(tǒng)內(nèi),上位機(S3C2410)首次算好1000個點,通過RS485總線傳送給每個下位機控制器并把這些點存于下位機FLASH中。每個下位機運行各自的點,每當(dāng)運行的點數(shù)超過500時,便向上位機要500個數(shù)據(jù)。這樣節(jié)省了上下位機交互的時間,改善了串聯(lián)機器人的同步性,提高了跟蹤精度。另外,由于ARM9的存在,不需要計算機的控制。上述7自由度串聯(lián)機器人的每個動作都是“自主”完成的,即沒有計算機的控制。
通過實驗證明,該控制系統(tǒng)穩(wěn)定性好,實時性,可以在惡劣的環(huán)境下工作,通用性較強。
5 結(jié)論
本文中設(shè)計的嵌入式機器人控制系統(tǒng)在七自由度串聯(lián)機器人上的應(yīng)用取得了一定成效,實時性、可靠性、通用性均有良好的表現(xiàn),其體積小、功耗低,實際情況比較令人滿意;此控制系統(tǒng)在上位機(ARM)中寫控制算法,通過總線方式對下位機(DSP)進行控制,而不需要計算機的控制,可獨立自主的判斷如何動作。目前,該嵌入式控制系統(tǒng)的性能上還存在著諸多不足,主要表現(xiàn)在控制器中的控制算法的設(shè)計和功能的完善上,這也是今后努力的方向。
本文的創(chuàng)新點是機器人的自主性質(zhì),即機器人有自己的“判斷能力”,不須計算機控制。
參考文獻
[1]Richard M.Murray, Li Zexiang, S.Shanker Sastry. A Mathematical Introduction to Robotic Manipulation[M]. America: CRC Press, 1994.
[2]Weihai Chen, Guilin Yang, Edwin Hui Leong Ho. Interactive-Motion Control of Modular Reconfigurable Manipulators[J]. Proceedings of the 2003 IEEE/RSJIntl. Conference on Intelligent Robots and SystemsLas Vegas, Nevada . October 2003.
[3]L. Romdhance. Design and analysis of a hybrid serial parallel manipulator[J]. Mechanism and Machine Theory.1999,34:1037-1055.
[4]Karim Yaghmour. Building Embedded Linux Systems[M]. America: O‘Reilly, 2004.
[5] Michael Barr. Programming Embedded Systems in C and C++[M]. America: O‘Reilly, 2001.
[6]John Catsoulis. Designing Embedded Hardware [M]. America: O‘Reilly,2001.
[7]嚴麗平,曾輝,宋凱.嵌入式智能家庭網(wǎng)關(guān)的研究與設(shè)計[J]. 微計算機信息. 2005,2: 14~16.
[8] 孫天澤,袁文菊,張海峰. 嵌入式設(shè)計及LINUX驅(qū)動開發(fā)指南——基于ARM 9處理器[M].北京:電子工業(yè)出版社,2005.
[9] 陳渝,李明,楊曄. 源碼開放的嵌入式系統(tǒng)軟件分析與實踐——基于SKYEYE和ARM開發(fā)平臺[M].北京:北京航空航天大學(xué)出版社,2004.
[10] 周立功.ARM微控制器基礎(chǔ)與實踐[M]. 北京:北京航空航天大學(xué)出版社,2003.
[11] 李駒光,聶雪媛,江澤明.ARM應(yīng)用系統(tǒng)開發(fā)詳解.[M]北京:清華大學(xué)出版社,2003.
[12] 劉和平,王維俊,江渝.TMS320LF240xDSPC語言開發(fā)應(yīng)用[M]. 北京:北京航空航天大學(xué)出版社.2003.
[13] 王松,李新軍,梁建宏.微小型機器人嵌入式自駕儀設(shè)計[J]. 北京航空航天大學(xué)學(xué)報.2005,31(7):775-779