孟慶仙
(云南機電職業(yè)技術學院,云南 昆明 650203)
機器人是一種自動控制的裝置,它能夠接受來自人類的語音或者按鍵的指揮,也可以去運行一系列我們輸入的編寫好的程序。它目前主要是服務于人類的車間生產、建筑行業(yè),還有一些非常危險消防這些工作。所以它對人類起到了至關重要的作用。近幾年國內外涌現的控制系統(tǒng)大多數都是采用分散控制,沒有統(tǒng)一的主控系統(tǒng),但是機器人作為一個類人的產品,它必須能夠保證每個關節(jié)之間的信息傳遞,那么該系統(tǒng)的控制就需要大量的I/O口,并且對數據采集的實時性要求非常高。由于FPGA具有豐富的I/O接口,高速的數據處理能力,所以采用當下比較流行的FPGA作為中央主控系統(tǒng)的主控板,可以高速、準確地傳遞信息,并且開啟舵機等待及運行模式,控制舵機的實時角度,本文主要是制定一系列動作編排的策略,編寫相應的程序,讓機器人能夠按照指定的動作平穩(wěn)運行[1]。
本文所使用的機器人是一個具有多自由度的類似人體的組織結構,那么這種機器人在運動過程中就需要多個關節(jié)同時運動,那么也就需要大量I/O口來控制。在控制方面有機械控制和手持設備兩種控制方式,該實驗使用手持設備通過無線裝置來控制機器人的運動[2]。同時,針對機器人的特殊要求,根據它的重量,功耗,以及考慮它的穩(wěn)定性、平衡性,提出了一整套完整的解決方案??刂葡到y(tǒng)結構如圖1所示。

圖1 機器人主控系統(tǒng)結構
該系統(tǒng)把機器人的主控制系統(tǒng)分為上位機和下位機兩個部分。上位機它主要的是處理是在使用ARM芯片來完成的,它還負責完成無線遙控器的信號發(fā)射和信號的接收。ARM芯片中包括了兩個主要的功能模塊:信號調制和解調模塊。而下位機就是我們的機器人主控系統(tǒng)的核心部分,它主要由FPGA以及控制機器人運動的舵機組成,當FPGA接收到ARM芯片傳遞過來的動作指令信號,就會將其按照之前預設的轉換模式,將其轉換成驅動舵機的PWM脈沖信號,通過實時改變脈沖的占空比,就可以改變舵機所運動的角度,并且我們在上位機中設計了幾個地址線,通過地址線來選擇哪個舵機工作。FPGA是整個下位機的主控核心部分,也是我們整個機器人平穩(wěn)運行的最重要的組成部分[3]。
該控制系統(tǒng)的上位機采用無線遙控器的發(fā)射接收兩個模塊信號來控制,ARM芯片作為上位機的核心控制系統(tǒng),負責處理來自遙控器的信息請求。下位機使用FPGA作為主控器,來完成機器人舵機角度的精準控制。最終實現機器人平穩(wěn)運行。
(1)機器人能夠在舵機的轉動角度范圍內自由活動。
(2)多個舵機能夠同時被控制,完成指定動作的協(xié)調與分配。
(3)控制舵機的各個系統(tǒng)、舵機還有一些外圍電路都放在了機器人身體內部,不至于放在外面影響機器人運動。
(4)手持的無線遙控器可以遠距離控制機器人的機械運動。(5)利用FPGA控制機器人的準確運動。(6)編寫高速有效的verilog程序。
目前國內大多采用一個伺服驅動器控制一個伺服電機的方式,這種方式機器人體積龐大,項目之間配合時出現延遲,而本課題采用一個FPGA主控芯片作為伺服驅動器,來完成驅動機器人腿部的伺服電機的工作,使機器人重量減輕,體積減小,達到精準控制。
在該實驗中,我們所使用的機器人一共有18個舵機,他們分別由PWM的內核模塊集中控制,每個舵機占用一個I/O口。每個舵機之間我們加入了光電耦合器TLP521-4。因為信號在傳輸過程中經過了反向,那么就必須把光電耦合出來的信號再次經過反向才能還原成原來的信號。系統(tǒng)整體硬件由一個能夠獨立行走的機器人,以及一個手持的遙控設備,還有一個arm板、FPGA主控系統(tǒng)構成,最終控制18路舵機分時運轉,達到讓機器人運動的目的[4]。系統(tǒng)實驗中FPGA管腳配置硬件接口電路分配圖如圖2所示。

圖2 硬件接口電路管腳分配圖
基于FPGA的工業(yè)機器人控制系統(tǒng)不但可以讓機器人平穩(wěn)地行走,而且能夠穿越一些坡度較陡的路,甚至樓梯,為機器人重心與行走的穩(wěn)定性最佳參數配合的研究與開發(fā)起到指導作用。
該控制系統(tǒng)由上下兩部分構成,一部分是來自上位機的ARM板子和無線遙控器,另一部分是下位機中的FPGA主控系統(tǒng)。無線遙控器經過調制解調后輸出4個控制信號,信號連接至ARM板子作為他的輸入信號,arm將其轉換成可以控制的1位confirm線,1位run線,3位地址輸入線,1位讀寫信號線,2位數據信號線;最后由arm板子編譯后輸出到相對應得FPGA主控板上,3位地址輸入線主要是控制9個舵機選擇哪個舵機運動,2位數據信號線主要是控制對應的舵機轉動相應的角度,這個角度就代表了機器人動作的變化模式。
使用無線遙控器按下某個按鍵,它將觸發(fā)系統(tǒng)模塊產生相應的動作編碼,然后經過arm板處理后送到FPGA來處理[5]。而動作譯碼模塊主要功能就是在接收到的編碼信號后,對信號進行分析,判斷按鍵的動作,并進行舵機的選擇。我們將根據動作的不同產生相應的控制信號,FPGA產生不同的PWM波來控制舵機的轉動角度,那么機器人也就完成了動作變化。
在實驗過程中對控制機器人的舵機進行了相應的簡化,一共使用8個舵機,無線遙控器的1到8按鈕主要是針對8個舵機的選擇,當按下某個按鍵的時候,系統(tǒng)鎖存器進行鎖存,那么后面所有的操作都是針對該舵機進行控制,其余均不受到影響。遙控器上第9個按鍵和第10個按鍵是針對機器人的動作進行控制,如果按下第9鍵,那么代表該舵機要在原有角度的基礎上轉動加上45度,如果按下第10鍵,那么代表該舵機要在原有的角度基礎上減去45度,按下11鍵的時候,系統(tǒng)確認該操作,機器人開始執(zhí)行相應的轉動。按下12鍵得時候,系統(tǒng)恢復初始化,回到初始狀態(tài)。
實驗所用機器人模型主要是描繪出機器人在完成規(guī)定動作時舵機安裝的位置,各姿態(tài)下PWM信號參數如表1所示(空格處參數與相應的直立時參數相同),論文主要完成了以下工作:主要是設計FPGA來控制兩個以上的舵機的控制策略,它們能夠同時完成機器人一系列動作的協(xié)調,并且在保持機器人平衡上準確地調整角度,來改變由于重心變化引起的不平衡。完成了FPGA引腳的分配,PWM 信號的發(fā)生程序設計,使用verilog語言實現了對機器人角度的精確控制,使得機器人能夠平穩(wěn)運動。

表1 仿人機器人各姿態(tài)下PWM 信號參數 單位:0.1 ms
基于FPGA的工業(yè)機器人控制系統(tǒng)的研究具有很大的現實意義,現在我國新增工業(yè)機器人中超過70%依賴國外進口,而我國近幾年工業(yè)機器人需求量增大,學生如果可以掌握該技術,那么對于學生的就業(yè)有很大的幫助。目前高職高專組進行的工業(yè)機器人大賽就是為了促進機器人技術的推廣與發(fā)展,而這個項目的研究正是對大賽后續(xù)的一個補充,讓學生可以多方面地掌握機器人運動的控制技術?,F在學院開設了FPGA項目化教學,該系統(tǒng)的研究正是與這門課程的融合,既體現了當代機器人物聯(lián)網要求,又拓展了學生對FPGA學習的動手能力,讓學生對課程融會貫通,不再獨立教學就能夠讓學生綜合運用所學知識。