隨著現代科學技術的飛速發展和社會的進步,服務機器人與人們的生活聯系越來越緊密,故日益受到關注。電機控制器作為機器人的核心部分,直接決定了其功能和性能。雖然用于工業機器人的伺服電機控制器技術已經成熟,但用于服務機器人的伺服電機控制器的研究和開發仍然存在許多問題。開發一種“具有開放式結構的模塊化、標準化、小型化的嵌入式電機控制器”已經成為當前服務機器人控制器的一個發展方向。 基于美國Microchip公司生產的PIC單片機具有速度快、體積小、低功耗、驅動能力大、可靠性高等優點,故采用該系列微型芯片:PIC18F452開發了一種小型嵌入式電機控制器。該控制器和主控微機、驅動器共同構成機器人伺服控制系統。伺服控制系統采取了可變的控制模式,并且控制器能和驅動電機一起安裝在機器人的各個關節,因此特別適合電池驅動的多軸服務機器人的應用。 本文著重介紹控制器的軟件構造、操作指令和通信模式。設計了一種使用方便的指令模式,該模式能識別幾十種指令語句,并容易實現對指令語句的擴展。同時用串口方式形成機器人伺服控制系統的神經網絡,各個小型控制器不但能和主控微機之間通信,而且各個控制器之間也可以進行信息交流。為了保證通信的連續性和可靠性,該伺服控制系統具有通信錯誤處理機制。 1 控制器的軟件構造 該控制系統最大的特點在于位置、速度、電流三種控制方式可隨時變更。為了獲得可調的直流電壓,利用電力電子器件的完全可控性,采用PWM脈寬調制技術,直接將恒定的直流電壓調制成可變大小和極性的直流電壓作為電機的電樞端電壓,實現系統的平滑調速。在每一個控制周期,三種控制模式獨立計算,控制器將計算結果以PWM信號形式輸出到電機驅動器,同時電機的位置、速度和電流能實時測量并送到主控微機,從而機器人的各個關節能根據不同的外部環境采取不同的控制方式。該控制器的控制原理如圖1所示。 為了實現上述目標,在控制器軟件的開發上,采用了模塊化和子程序嵌套的設計思想。控制器的計算周期T為400μs,每一個周期劃分成32個處理模塊,利用中斷處理在每一個處理模塊(t=12.5μs)中對電機位置譯碼的脈沖進行計數測量?刂破鬈浖䴓嬙旒爸饕K的功能如圖2所示。 2 操作指令 該控制器的操作指令包括控制指令、設定指令、詢問指令等。指令格式的最高字節為命令字節,即控制器的ID號和Code(指令號)。ID指出控制器的識別號碼,Code指出指令代碼,它們各占4位。 需要注意的是,對于控制和設定指令,緊隨命令字節的是n個字節組成的控制或設定指令數據,但詢問指令僅有命令字節,沒有指令數據。 2.1 控制指令 伺服控制系統的三種控制模式均有相應的控制指令。 位置控制應用于進行連續點控制的插補點位置控制。位置控制數據由三個字節的有符號數來表示,其最大值和最小值分別為223-1(=7FFFFFH)和-223+1(=800000H)。其中,0H~7FFFFF為電機的正方向,800000H~FFFFFFH為電機的負方向。位置控制指令的格式如圖3所示。 速度控制應用于機器人關節以一定速度運動的場合。速度控制數據由一個字節的有符號數來表示,其最大值和最小值分別為27-1(=7F)和-27+1(=80)。 其中,0H~7F為電機的正方向,80H~FFH為電機的負方向。在速度控制模式下,需要停止指令、目標值為零的速度或電流控制指令或到達極限位置時,系統才能停止運行。 電流控制(轉矩控制)不僅可以應用于電機的轉動方向和電流的控制方向相同的場合,還可以應用在外力作用下,電機處于停止狀態或電機的轉動方向和電流的控制方向相反的場合。電流控制指令的格式和數據字節的最大最小值與速度控制指令相同。在電流控制模式下,停止方式也和速度控制模式相同。 位置速度復合控制應用于一般位置控制,包括啟動階段的加速控制、速度控制、到達目標前的減速控制和位置控制四個部分。位置速度復合控制指令的控制數據包括3個字節的目標位置數據,1個字節的目標速度數據,1個字節的最大電流數據,共5個字節。各數據的最大最小值分別對應同上。 2.2 設定指令 控制增益設定指令用于設定位置、速度和電流控制的比例和積分常數。其指令格式如圖4所示。 運動范圍設定指令用于設定機器人關節的極限位置,其指令格式如圖5所示。其中動作端A和動作端B分別表示正方向的最大和最小位置。 系統設定主要用于根據控制系統的需要設定各種系統數據。設定數據由一個字節的無符號數來表示。 2.3 詢問指令 詢問指令的主要功能是查詢各電機的位置、速度和電流數據,并且發信側只有接收到受信側返回的數據后才能發送下一個詢問指令,即詢問指令通過一問一答的形式進行通信。詢問指令僅由命令字節組成。 位置詢問指令的返信數據格式同圖3。 速度和電流詢問指令的返信數據均只有一個命令字節和一個數據字節。其返信數據的格式如圖6所示。 3 通 信 3.1 控制系統連接方式 由于該控制器的通信接口為RS 485,PC機一般只有常用的RS 232串行通信口,主控微機通過轉換器將標準的RS 232C轉換為RS 485后與控制器連接。一個串口可接16個控制器?刂破靼ù撏ㄐ沤涌冢姍C位置傳感器脈沖接收接口,電機電流檢測A/D轉換接口,PWM控制輸出接口和其他I/O接口。主控微機、控制器、驅動器和電機的連接如圖7所示。 當主控微機對控制器進行控制時,所有的控制器均接收指令。每個控制器對接收的指令首先要進行ID校驗,如果接收的數據ID與本身的ID號一致,則執行該指令,否則忽略該指令,如圖8所示。 3.2 通信時間 主控微機和控制器之間的通信速率為38 400 b/s。在每一個控制周期,設計了兩次接收和送信程序,即控制器在一個控制周期最多可同時接收和送出兩個字節的數據。需要注意的是,主控微機和控制器之間采用的是10位為一幀的異步串行通信方式,因此每個字節的通信時間還應包括幀的起始位和停止位的傳輸時間。若傳輸兩個字節的數據,則通信時間為[2×(8+2)×1 000]/38 400=0.521 ms,依此類推,即可計算出各指令的通信時間。主要指令及其通信時間如表1所示。 3.3 通信錯誤處理機制 由于外界干擾或電壓波動等原因,主控微機和控制器之間的通信可能會出現錯誤,導致數據丟失,受信側不能正常接收數據或系統運行錯誤。為了確保通信的連續性和可靠性,設計了通信錯誤處理機制。 由于各指令的通信時間均在2 ms之內,如果受信側在2 ms之內依然沒有接收到完整的數據,則認為通信出現錯誤,系統將進行恢復處理。受信側會把已接收的數據清零并等待重新接收,送信側將再次發送數據。如此循環,如果發送三次之后依然不能恢復正常通信,系統將停止運行。 3.4 通信協議軟件 通信協議軟件在Windows XP操作系統上用匯編語言開發而成,其編制方案簡要介紹如下: (1)主控微機發送數據 當主控微機發送數據時,需要自動記錄指令的命令字節,即需要記錄接收該指令的控制器ID號以及指令號Code。 (2)控制器接收數據 控制器接收數據時,首先將會進行ID校驗,如果一致則接收,然后根據指令號Code決定需要接收的數據字節數。如果指令ID號與自身的ID號不一致或者在2 ms內沒有接收到完整的數據,控制器將會把已接收的數據清零并等待主控微機重新發送。 (3)控制器發送數據 當控制器接收到詢問指令,并確認ID一致后,將返回該指令的命令字節(ID+Code)和相應的詢問數據。對于控制指令和設定指令,則只返回一個命令字節(ID+Code)。 (4)主控微機接收數據 主控微機接收到控制器返回的數據后,對于控制和設定指令,將會把返回的數據與發送記錄相比較,如果一致則刪除發送記錄,否則,認為通信有誤,進行出錯處理;對于詢問指令,將把接收到的數據顯示或儲存以備后用。 4 實 驗 圖9是開發出來的控制器和驅動器。根據軟件設計方案編制和調試程序后進行了位置控制、速度控制、電流控制的實機實驗。 位置控制實驗結果如圖10所示。位置控制的單位是編碼器的脈沖數(Pulse)。圖10指出當目標位置是2 795時,位置控制能夠精確地控制電機到達指定的位置。通過多次重復實驗,其誤差均小于±0.2脈沖。 速度控制實驗結果如圖11所示。速度控制以脈沖數/周期(Pulse/0.4 ms)為單位。 圖11指出當目標速度是30 Pulse/O.4 ms時,速度控制能夠精確地控制電機以指定的速度運行。通過多次重復實驗,其誤差均小于±2 Pulse/O.4 ms。 電流控制實驗結果如圖12所示。電流控制以電機的額定電流與最大指令比(A/7 FH)為單位。圖12指出當目標電流是2 A時,電流控制能夠精確地控制電機在指定的電流下運行。通過多次重復實驗,其誤差均小于±O.1 A。 實驗表明本文提出的控制器位置精度、速度精度、電流精度能滿足多軸服務機器人的需要。 5 結 語 提出的控制器為嵌入式服務機器人控制器的研究和開發提供了一種新的控制和通信模式。實驗結果指出該控制器的控制精度能滿足多軸服務機器人的需要。該項目的研究將有助于推動我國服務機器人控制器的發展,具有較好的應用前景。 |