?

基于嵌入式系統的六軸關節型機械臂系統

2024-04-13 15:22姜宇凡
自動化與信息工程 2024年1期
關鍵詞:STM32單片機嵌入式系統

本文引用格式:姜宇凡.基于嵌入式系統的六軸關節型機械臂系統[J].自動化與信息工程,2024,45(1):47-54;60.

JIANG Yufan. Six axis articulated robotic arm system based on embedded systems[J]. Automation & Information Engineering, 2024,45(1):47-54;60.

摘要:基于嵌入式系統設計了一款六軸關節型機械臂系統。六軸關節型機械臂的各關節零件通過3D打印后組裝;主控板的微型控制器選用STM32F103C8T6芯片;利用MatLab仿真軟件對六軸關節型機械臂進行運動學建模和仿真;采用Java語言開發六軸關節型機械臂的上位機軟件,使機械臂可以通過上位機或無線裝置實現姿態控制、抓取等操作,并支持動作記憶功能,可重復動作?;诤娇站_制導武器部裝產線,搭建溫度測試工業應用場景,進行六軸關節型機械臂的正逆解與點動實驗,為后續數字孿生技術的研究打下基礎。

關鍵詞:嵌入式系統;六軸關節型機械臂;STM32單片機;D-H參數法;運動學建模

中圖分類號:TP241.2? ? ? ? ? ? 文獻標志碼:A? ? ? ? ? 文章編號:1674-2605(2024)01-0008-09

DOI:10.3969/j.issn.1674-2605.2024.01.008

Six Axis Articulated Robotic Arm System Based on Embedded Systems

JIANG Yufan

(China Airborne Missile Academy, Luoyang 471009, China)

Abstract: A six axis articulated robotic arm system was designed based on embedded systems. The joint components of a six axis articulated robotic arm are assembled through 3D printing; The microcontroller of the main control board uses STM32F103C8T6 chip; Using MatLab simulation software to model and simulate the kinematics of a six axis articulated robotic arm; Developing the upper computer software of a six axis articulated robotic arm using Java language, enabling the robotic arm to achieve posture control, grasping, and other operations through the upper computer or wireless device, and supporting action memory function, with repeatable actions. Based on the aviation precision guided weapon assembly production line, a temperature testing industrial application scenario is constructed to conduct forward and inverse solutions and point motion experiments of a six axis articulated robotic arm, laying the foundation for subsequent research on digital twin technology.

Keywords: embedded systems; six axis articulated robotic arm; STM32 microcontroller; D-H parameter method; kinematic model

0? 引言

六軸關節型機械臂是一種模擬人類手臂運動的機械裝置,能夠實現精確地抓取、搬運、裝配等操作,可提高生產效率,為工業自動化提供了新的可能性。

文獻[1]搭建了一款小型的六自由度機械臂系統,該系統基于51單片機開發板進行控制系統開發,外設接口有限,且增加了額外的電氣連接,相比PCB更加復雜。文獻[2]通過藍牙手柄對多自由度機械臂姿態

進行控制,交互性有限。文獻[3]基于AVR1280單片機設計了一款六自由度多軸機械臂,基于LabVIEW進行上位機界面開發,交互性與可移植性有限。文獻[4]提出的機械臂系統利用Leap Motion傳感器獲取手勢信息,易受光照強度、動作遮擋以及背景顏色等外界因素干擾。

針對以上問題,本文基于嵌入式系統設計一款六軸關節型機械臂系統。首先,介紹六軸關節型機械臂

的伺服舵機選型、驅動芯片、驅動方式以及控制方法等;然后,基于航空精確制導武器部裝產線的真實場景,在仿真平臺上搭建一個六軸關節型機械臂的溫度測試工業應用場景,實現對機械臂位姿和運動軌跡的控制。

1? 系統總體設計

基于嵌入式系統的六軸關節型機械臂系統主要包括硬件系統、運動學建模和軟件系統3部分,框圖如圖1所示。

2? 硬件設計

基于嵌入式系統的六軸關節型機械臂系統的硬件系統主要由六軸關節型機械臂、伺服舵機、ARM微控制器STM32F103C8T6及其外圍電路(包含最小系統、電源模塊、通信模塊)、MYO肌電交互手環4部分構成。

2.1? 六軸關節型機械臂

六軸關節型機械臂主要利用三維軟件Solid- Works,參考開源的機械臂結構進行設計,增加了底座,并通過3D打印后進行組裝。

2.2? 伺服舵機

六軸關節型機械臂的轉動系統選用伺服舵機進行驅動。轉動系統主要由Futaba S3003、Futaba S3305、Tower Pro MG90S和Hitec HS-55四款伺服舵機組成,其性能指標對比如表1所示。

1) Futaba S3003為標準尺寸的伺服舵機,通過PWM信號能平穩地控制運動,可輸出3 kg·cm的扭矩,并可在正逆兩個方向切換,適用于需要周期性輸出運動的應用場景。該伺服舵機安裝在六軸關節型機械臂的關節部位,提供關節的轉動扭矩。

2) Futaba S3305采用金屬齒輪,利用數字信號對伺服舵機的轉動角度進行控制,可輸出14 kg·cm的扭矩,具有響應速度快、精度高且輸出平滑等特點。該伺服舵機安裝在六軸關節型機械臂的底座上,提供底座轉動所需的扭矩。

3) Tower Pro MG90S和Hitec HS-55是兩款微型伺服舵機,具有尺寸小、質量輕、扭矩大等特點。這兩款伺服舵機安裝在六軸關節型機械臂的手腕和末端執行器部位,阻力小,可以提供足夠的扭矩來移動機械臂。

六軸關節型機械臂的位置反饋信息通過讀取伺服電機的位置獲取,而伺服電機的位置由電位計控制。因此,本文將單極電纜焊接到電位計的中心引腳,即位置信號上,以獲取伺服電機的位置。

2.3? 主控制器電路

2.3.1? 主控芯片

本文基于STM32F103C8T6芯片進行六軸關節型機械臂的硬件控制系統設計[5-6],該芯片含有定時器、ADC、DAC、I2C、SPI、USART等外設接口。

2.3.2? 最小系統

STM32F103C8T6的最小系統主要由電源模塊、STM32F103C8T6芯片、外部晶振、調試模塊、復位及濾波電路等組成,電路圖如圖2所示,主要實現控制與驅動信號的輸出以及反饋信號的采集等功能[7]。

通過配置主控芯片STM32F103C8T6可輸出PWM信號[8],改變PWM信號的頻率與占空比等參數,可實現伺服舵機位置與速度的控制。伺服舵機與主控制板的接口電路如圖3所示。

2.3.3? 電源模塊

根據六軸關節型機械臂系統的供電需求,本文的電源模塊主要由3個穩壓電路組成,分別輸出3.3、5、6 V的直流電壓給主控芯片、NRF24L01通信模塊以及伺服舵機供電。本文選用的穩壓芯片以及外圍電路圖如圖4所示。

2.3.4? 通信模塊

本文采用的NRF24L01通信模塊與主控芯片可通過SPI總線進行通信。NRF24L01通信模塊可在? 2.4 GHz ISM低功耗頻段無限地收發模塊,具有低功耗、長距離傳輸、高抗干擾能力等特點;內置的SPI接口,可實現六軸關節型機械臂系統的遠程無線控制。NRF24L01通信模塊與主控制器的接口連接圖如圖5所示。

2.4? MYO肌電交互手環

MYO肌電交互手環用于采集手勢動作執行過程中產生的肌電信號。不同手勢產生的肌電信號存在差異,通過對肌電信號的分類來對應不同的控制指令,實現六軸關節型機械臂的運動控制。MYO肌電交互手環包含8通道sEMG電極,肌電信號交互方式不受光照強度、背景顏色等因素的影響,具有便攜性。

3? 運動學模型搭建與仿真

3.1? 機械臂運動學模型

機械臂運動學模型在描述空間位置、速度和加速度時,一般選用笛卡爾坐標系[9]。本文在笛卡爾坐標系下分析六軸關節型機械臂相對于基座參考坐標系的運動,并利用標準D-H參數法[10-12]建立六軸關節型機械臂的運動學模型。

3.1.1? 機械臂坐標系的建立

根據六軸關節型機械臂的各個關節位置,建立的機械臂關節笛卡爾坐標系及實物尺寸參數如圖6所示。

六軸關節型機械臂的6個關節坐標系采用右手笛卡爾坐標系,坐標系的原點位于關節軸心,Z軸沿著關節的旋轉軸方向。通過對六軸關節型機械臂各關節角度的控制與轉換,可實現6個關節坐標系之間的轉換。

3.1.2? D-H參數表建立

D-H參數是一種對連桿的坐標描述。D-H參數法根據機械臂的長度、關節角等參數,確定每個關節引起的坐標系變換。該方法通過建立D-H參數表,推導出六軸關節型機械臂的運動學模型。D-H參數表的交換規則如下:

1) 關節角:繞軸旋轉,直到與平行(方向一致);

2) 連桿偏移:沿軸平移,直到與共線;

3) 連桿長度:沿軸平移,直到與原點重合;

4) 連桿扭轉角:繞軸旋轉,直到與共線。

根據圖6所示的六軸關節型機械臂尺寸參數以及D-H參數表變換規則,得到的六軸關節型機械臂D-H參數表如表2所示。

3.2? 算法實現

機械臂的運動學正逆解[13]主要用于位置控制和路徑規劃[14]。本文選用Denavit -Hartenberg算法進行六軸關節型機械臂的正運動學分解。

3.2.1? 正解(FK)算法

FK算法是在已知機械臂各關節姿態,求機械臂末端執行器位姿的過程[11]。假設六軸關節型機械臂6個關節的角度為,求解機械臂末端執行器的位姿的計算公式為

(1)

式中:表示繞Z軸旋轉角度,表示沿Z軸平移,表示沿X軸平移,表示沿X軸旋轉角度。

的矩陣形式表示為

(2)

將D-H參數表中的數據代入公式(2),得到末端執行器相對于基坐標系的齊次變換矩陣,即六軸關節型機械臂的運動方程[12]:

3.2.2? 逆解(LK)算法

LK算法是已知機械臂末端執行器的姿態,求機械臂各關節的旋轉角度[15]。利用MatLab仿真軟件構建六軸關節型機械臂的仿真模型,調用Link函數和Robot函數實現機械臂的運動仿真[16-17],如圖7所示。

3.2.3? 軌跡規劃

機械臂的軌跡規劃是確定機械臂末端執行器的起始位置到目標位置的無碰撞運動路徑[18-19]。

本文采用五次多項式插值算法[18]進行六軸關節型機械臂的軌跡規劃,同時對起始點和目標點的角度、角速度和角加速度給出約束條件。通過將六軸關節型機械臂的運動路徑離散化,利用五次多項式插值算法確定經過離散點的具體路徑,得到的空間軌跡以及角加速度與時間的關系曲線如圖8、9所示。

由圖9可以看出,六軸關節型機械臂的關節1~6的角加速度變化曲線平滑連續,沒有出現跳變現象,軌跡平穩,表明六軸關節型機械臂的電機運行平穩。

4? 軟件設計

基于嵌入式系統的六軸關節型機械臂系統軟件主要包括STM32控制程序和上位機軟件。

4.1? STM32控制程序

STM32控制程序采用C語言進行編程,集成開發環境為KEIL5,控制程序流程如圖10所示。

STM32控制程序分為主函數控制程序、中斷函數控制程序和通信模塊控制程序[3]。其中主函數控制程序主要用于控制命令的接收和六軸關節型機械臂的姿態控制;中斷控制程序主要用于六軸關節型機械臂的姿態控制;通信模塊控制程序主要用于控制命令的接收以及數據包的解算。

4.2? 上位機軟件

本文以Android Studio為集成開發環境,以Java為開發語言進行上位機軟件的編寫與開發,設計了基于手機APP的藍牙控制端。該APP可以通過藍牙與六軸關節型機械臂主控制板的通信模塊建立連接,實現機械臂的遠程控制。上位機主界面的部分截圖如圖11所示。

5? 實驗驗證

本文搭建的六軸關節型機械臂實物圖如圖12所示。

六軸關節型機械臂通過MYO肌電交互手環進行遠程姿態控制實驗。MYO肌電交互手環分別以50、200 Hz的頻率采集慣性測量單元(inertial measurement unit, IMU)信號與肌電信號。本文定義五指張開、手腕向上屈伸、五指握緊、手腕向下屈伸4個分類動作,對應的手勢動作如圖13所示。

在本文的控制實驗中,五指張開、手腕向上屈伸、五指握緊、手腕向下屈伸4個分類動作分別對應六軸關節型機械臂的向上移動、繞Z軸左轉運動、向下移動、繞Z軸右轉運動4個控制任務,對應采集的8路肌電信號如圖14所示。

解析MYO肌電交互手環采集的肌電信號,并將解析結果傳輸給六軸關節型機械臂的主控制板,實現機械臂姿態的控制,4個分類動作的控制結果如圖15所示。

6? 應用測試

本文以航空精確制導武器部裝產線的溫度測試工業應用場景為例,測試六軸關節型機械臂根據末端執行器的位姿,通過正運動學逆解,實時解算各關節的角度信息。六軸關節型機械臂抓取產品與放置產品的動作如圖16所示,根據當前抓取姿態解算出的各關節數據如表3所示。

由表3可知,通過在場景中選取不同密度的點,上位機可以通過配置好的運動學逆解算模型,根據空間點的姿態求解對應的關節姿態,以此界定各關節轉動的范圍。同時,通過記錄各關節姿態的方式記錄空間點,以此生成六軸關節型機械臂的運動路徑,來測試機械臂不同精度的分段運動控制和軌跡規劃的控制效果,如圖17所示。

7? 結論

本文基于STM32F103C8T6微控制器設計了一款六軸關節型機械臂系統,該機械臂各關節零件經3D打印后組裝。首先,完成六軸關節型機械臂硬件系統的搭建;然后,通過KEIL完成軟件程序的編寫和調試;接著,通過MYO肌電交互手環對六軸關節型機械臂進行遠程的姿態控制實驗;最后,以航空精確制導武器部裝產線的溫度測試工業應用場景為例,進行六軸關節型機械臂的正逆解與點動測試。本文后續研究將完成仿真模型與實物之間的通信和數據傳輸解算,監測六軸關節型機械臂的運行狀態,實現真實場景中機械臂的狀態在仿真機械臂上的實時反應與控制。

參考文獻

[1]王鳳祥,張志杰,陳昊澤.六自由度機械臂系統設計與控制方式研究[J].電子測量技術,2021,44(4):1-8.

[2]王慧,李偉.基于Arduino控制的多自由度機械臂系統設計[J]. 安徽電子信息職業技術學院學報,2017,16(4):6-9;13.

[3]劉忠超,肖東岳,翟天嵩.AVR單片機控制的多軸機械臂系統設計[J].自動化儀表,2015,36(5):40-42.

[4]金高威,董錚.基于Arduino的六自由度機械臂控制系統設計[J].科學技術創新,2019(35):64-65.

[5]寧春雷,劉凡齊,孫在尚.基于STM32的多自由度機械臂設計[J].電子世界,2017(9):143.

[6]焦江麗,李鳳蓮.以ARM Cortex-M3為基礎的STM32開發板的設計與實現[J].中國新通信, 2013,15(9):94-96.

[7]唐成方.基于ARM微控制器的旋轉電極電刺激儀[J].自動化與信息工程,2021,42(3):44-49.

[8]伍期哲.基于無刷直流電機直驅的三關節機械臂設計與實現[D].廣州:華南理工大學,2021.

[9]冷舒,吳克,居鶴華.機械臂運動學建模及解算方法綜述[J]. 宇航學報,2019,40(11):1262-1273.

[10]代彥輝.六自由度機械臂避障路徑規劃研究[D].綿陽:西南科技大學,2024.

[11]CRAIG John J. 機器人學導論[M].機械工業出版社,2006.

[12]HARTENBERG R S. Kinematic Synthesis of Linkages[J]. McGraw-Hill Google Schola, 1964,2:198-202.

[13]彭建文.串聯六軸工業機器人的關節軌跡規劃[D].哈爾濱:哈爾濱工業大學,2017.

[14]王文萍,張培恒,衛勇.基于Kinova Mico六自由度機械臂運動學及其路徑規劃的研究[J].現代機械,2022(5):58-65.

[15]吳強,鄧慶文,胡澤啟,等.基于RBF神經網絡與代數法的6R機器人逆運動求解[J].數字制造科學,2019,17(3):201-206.

[16]黃玥,張興華,莊國銳,等.六軸焊接機械臂的逆運動學控制程序設計[J].內燃機與配件,2017(22):11.

[17]周霏,陳富林,沈金龍,等.基于MATLAB的四自由度機械臂運動學仿真研究[J].機械制造與自動化,2016,45(1):115-119.

[18]馬強.六自由度機械臂軌跡規劃研究[D].哈爾濱:哈爾濱工程大學,2007.

[19]李海龍.六軸工業機械臂的結構設計與軌跡規劃[D].淮南:安徽理工大學,2018.

作者簡介:

姜宇凡,女,1998年生,碩士研究生,助理工程師,主要研究方向:智能制造、控制工程。E-mail: 18847162723@163.com

猜你喜歡
STM32單片機嵌入式系統
基于STM32芯片的移動機器人的避障研究
基于STM32的兩輪自平衡遙控小車設計
基于STM32單片機的智能手環設計與實現
辦公自動化系統的設計
基于物聯網項目驅動的嵌入式系統教學改革的研究與實踐
嵌入式系統課程“中斷、異常與事件”教學實踐及啟示
面向實踐創新人才培養的嵌入式系統教學研究
基于STM32單片機的數碼相框顯示系統設計
基于STM32的中老年人跌倒監測裝置研究
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合