摘 要:模仿自然界軟體動物運動的軟體機器人,在人機交互、醫(yī)療服務等領域具有非常廣泛的應用前景?;谀P偷目刂圃诮鉀Q機器人運動學模型的前提下能夠很好地基于模型求解驅動輸出,從而進行較好的控制。針對線驅動軟體機器人進行軟硬件的設計,在ROS平臺進行各系統(tǒng)軟件節(jié)點設計,結合模糊控制與局部線性子系統(tǒng),設計多項式模糊模型控制器并對該系統(tǒng)進行穩(wěn)定性分析。實驗表明,基于多項式的模糊控制算法,可以控制軟體機器人實現跟蹤目標,達到預期效果。
關鍵詞:軟體機器人;模糊控制算法;運動學建模;線驅動
中圖分類號:TP273+.4;TP242 文獻標識碼:A 文章編號:2096-4706(2024)20-0111-06
Soft Robot System Based on Fuzzy Control Algorithm
GAO Jingru, GAO Ran, LIU Shuolin, LI Zhexuan, JIANG Jiahui, DU Jialing
(China University of Mining and Technology-Beijing, Beijing 100083, China)
Abstract: Soft Robot that imitates the movement of natural mollusks has a very wide application prospect in the fields of human-robot interaction and medical service. Model-based control can solve the drive output well based on the model under the premise of solving the robot kinematics model, so as to achieve better control. Aiming at the software and hardware design of the line drive soft robot, ROS platform is used to design the software nodes of each system. Combined with fuzzy control and local linear subsystem, a polynomial fuzzy model controller is designed and the stability of the system is analyzed. The experiment shows that the fuzzy control algorithm based on polynomial can control the soft robot to achieve the tracking target, and achieve the expected effect.
Keywords: soft robot; fuzzy control algorithm; kinematics modeling; line drive
0 引 言
機器人作為現代科學技術的結晶,它涉及機械工程、控制工程、電子技術等多個學科領域[1]。隨著計算機技術、控制方法、化學材料等領域飛速進步,傳統(tǒng)機器人的發(fā)展趨于成熟[2]。但是剛性機器人具有復雜的機械結構,人機安全系數低、較差的適應性等缺點,無法適用于尺寸小于自身尺寸或形狀復雜的通道。隨著人機交互的復雜度及頻率越來越高,要求機器人具有更高的柔順性、適應性和安全性[3],軟體機器人應運而生。軟體機器人由于自身材料的柔軟和可延展性,有很強的運動能力和靈活性,自適應性、低成本和被動安全性等優(yōu)點,使它在人機交互、醫(yī)療服務等領域具有非常廣泛的應用前景。由于軟體機器人具有高度的非線性,建立精確的運動模型變得十分困難,而模糊控制算法無須系統(tǒng)完整的精確模型,就能達到很好的控制效果。因此,立足于現狀背景,提出基于模糊模型的模糊控制算法。
1 線驅軟體機器人硬件設計
1.1 線驅軟體機器人實物設計
線驅動軟體機器人的靈感來自人的肌肉,在牽引線的過程中也選用同樣的方式:一側拉伸一側放松。布線形式選擇目前常用的中心截面夾角90度的四線驅動。軟體機器人操作臂內部有四個貫穿固定端和末端的通孔,通孔中穿入驅動線纜,共四根,分別通過對應四個電機拉驅動線的方式使膠體觸手彎曲。
軟體機器人制作流程:
1)準備好所需的丙烯酸改性環(huán)氧樹脂和硬化劑、催化劑,將兩種材料按照一比的比例倒入容器,緩慢攪拌至材料混合完全且無氣泡產生。
2)將模具組裝完全并加以固定。將準備好的驅動線纜與穿線針連接,將穿線針固定到模具內正確位置。
3)將混合物使用引流棒引流灌注至模具之中,將模具靜置冷卻。
4)將冷卻完畢后的成型觸手輕輕取出,并將穿線針輕輕抽出,使驅動線纜進入觸手之中,即可得到制備好的軟體機器人。
圖1為軟體機器人制作過程圖。
1.2 硬件結構設計
硬件系統(tǒng)的總體控制流程如圖2硬件系統(tǒng)結構框架圖所示:深度攝像頭采集數據輸入,定位目標,發(fā)送給主控板,主控板控制電機,電機控制機器人運動。
軟體機器人硬件包括主控制器、數據采集模塊和電機驅動模塊:
1)主控制器。選用Orin Nano主控板,用來接收輸入設備的信息。將信號發(fā)送給執(zhí)行單元,實現對軟起機器人的操控。Orin Nano主控板可以處理復雜的AI任務,在提供高性能的同時也注重了能效比。支持多種接口和協議,具有良好的集成性,可實現快速部署和應用。
2)數據采集模塊。選用Intel D435i相機進行輸入。通過對圖像進行目標檢測,采集軟體機器人末端位置信息,發(fā)送給主控板。該深度相機主要由2 000萬像素RGB攝像頭、深度和跟蹤模塊以及深度攝像頭組成。其視場角度為85×58度,深度距離在0.1~10 m,深度精度小于2%(2 m內)。
3)電機驅動模塊。選用57兩相混合式步進電機作為執(zhí)行器。電機接收主控板電信號,以相應的速度和加速度進行轉動,通過傳動機構拉伸驅動繩線,操控軟體機器人運動?;旌鲜讲竭M電機綜合了反應式和永磁式的優(yōu)點,既有較小的步距角,同時也具有輸出力矩大、動態(tài)性能好的特點,可以按照程序準確地旋轉一定的角度,且誤差較小,動態(tài)響應快,確保轉速和停止時的穩(wěn)定性。
1.3 線驅軟體機器人運動學建模
軟體機器人的運動學與動力學建模與傳統(tǒng)的剛性機器人不同,軟體機器人形變具有強非線性,在運動數據采集、分析等方面有一定難度,而且軟體機器人可以實現大幅度彎曲變形,具有無限多的自由度,難以建立精確的數學模型[4]。
區(qū)別主要在于,軟體機器人沒有傳統(tǒng)意義上的關節(jié),可以利用近似與無窮逼近這一思想,將軟體機器人的操作臂視為一條空間曲線,該條曲線包含的多段曲線可視為“連桿”,通過這些“關節(jié)”的參數求得末端的空間位置,進而求得速度關系,即分段常曲率模型。
分段常曲率(Piecewise Constant Curvature, PCC)模型被廣泛應用于模擬連續(xù)體機器人,假設主要結構近似地由一系列具有常曲率的連通切弧表示。這種簡化大大降低了計算彎曲角度的復雜性,使運動學建模和實時控制的實現更加方便[5]。
各段圓弧的參數皆為所設虛擬關節(jié)變量,具體可設為:中心弧線曲率k,彎曲平面角?,中心弧長l,圓心角θ以及圓弧半徑r。第i段操作臂虛擬關節(jié)變量示意圖如圖3第i段操作臂示意圖所示。在該圓柱上下兩個截面分別建立局部坐標系{oi?1 xi?1 yi?1 zi?1}和{oi xi yi zi},以截面中心為原點,x軸正方向指向1號驅動線的方向,z軸為中心軸切線方向,且指向下一截面,y軸結合x軸和z軸由右手定則確定。
首先求解驅動空間與虛擬關節(jié)空間的映射,第i段驅動空間與虛擬關節(jié)空間的映射如式(1)(2)和(3)所示:
i=1,…,N (1)
i=1,…,N (2)
i=1,…,N (3)
其中,qm表示驅動線的平均伸縮量,式(1)(2)和(3)建立了驅動變量與虛擬關節(jié)變量的關系。
其次再求解虛擬關節(jié)空間與任務空間的映射。按照D-H法列出第i段運動序列變換關系,獲得第i小段的上下截面坐標系之間的齊次變換矩陣為:
則坐標系{oi xi yi zi}相對于基坐標系{oo xo yo zo}的其次變換矩陣為:
(5)
至此,通過式(4)(5)建立了虛擬關節(jié)空間與工作空間的映射。
計算得到計算機器人運動學模型為:
(6)
其中,J表示機器人的運動學雅可比矩陣。
2 線驅軟體機器人軟件設計
軟件設計采用Python語言,在開發(fā)平臺ROS進行展開。主要包括控制器節(jié)點、通信節(jié)點、攝像頭數據采集節(jié)點。
控制器節(jié)點設計:控制器節(jié)點主要完成驅動電機以及獲取傳感器數據、參考軌跡和主控板的控制信息。電機驅動部分主要是生成電機速度信息。需要使用的函數包括初始化函數、模糊控制器函數、電機驅動函數、模糊控制參數、調用配置參數、時間參數、和中斷口的引腳設置等。void_main_loop()是系統(tǒng)的主程序,它主要發(fā)布對電機轉速的控制信息,同時訂閱跟蹤軌跡節(jié)點的參考軌跡話題/cmd_tra 和傳感器節(jié)點的位姿話題/cmd_pos,/cmd_pos接收接收并分析數據得出速度信息v。部分程序為:
ros::Subscriber<Flexsensor_msgs::Twist> sub(“cmd_pos”, CallBack)
ros::Subscriber<ReferTrajectory_msgs::Twist> sub(“cmd_tra”, CallBack)
voidCallBack(const Flexsensormsgs::Twist & velmsg, ReferTragectory msgs::Twist
& vel_msg){
v=vel_msg.linear.x;
通信節(jié)點設計:為了更好地完成系統(tǒng)內部通信,選用CAN總線網絡。CAN的工作模式主要有以下三種:初始化模式、正常模式和睡眠模式。軟件初始化只能在硬件初始化模式下完成后進行。其工作模式如圖4CAN總線工作模式圖所示。CAN單元初始化和工作模式選擇程序如下:
*import time
VCI_USBCAN2=4
STATUS_OK=1
class VCI_INIT_CONFIG(Structure):
_fields_=[("AccCode", c_uint),
("AccMask", c_uint),
("Reserved", c_uint),
("Filter", c_ubyte),
("Timing0", c_ubyte),
("Timing1", c_ubyte),
("Mode", c_ubyte)
Can1.Instance=CAN1;
Can1.Init. Raspberry=6;
Can1.Init.Mode=CAN_MODE_NORMAL;
Can1.Init.SyncWidth=CAN_SW_TQ; ]
攝像頭數據采集節(jié)點設計:首先進行圖像采集,需要做的工作為讀取左右泛光圖。隨后進行相機標定,相機標定是為了確定圖像像素點與相機拍攝空間對應某點的三維坐標關系建立的幾何模型。使用方格尺寸為17.6 mm的黑白棋盤格圖片作為標定物,通過改變攝像頭的朝向多角度拍攝標定物照片;從拍攝圖片中提取標定物的棋盤格點,計算畸變系數,用極大似然法優(yōu)化估計,提高精度。在做好準備工作及設置好相機之后,識別并采集軟體機器人操作臂末端的實時位置信息,實時獲取目標點即紅色小球的三維空間位置信息。
YOLOv5是一個開源項目,源代碼公開,并且提供了預訓練的模型權重。這使得使用YOLOv5進行目標檢測變得非常方便,無須從頭開始訓練模型,只需進行適當的微調即可。YOLO5使用了更小的模型,既保證了高精度,又減少了計算資源和存儲空間的消耗。它可以處理更高分辨率的圖像,同時保持精度。簡化了目標檢測任務,直接在圖像上預測邊界框和類別,提高了檢測效率。在保持較高準確性的同時,通過網絡結構的優(yōu)化和使用更高效的模型設計,實現了更快的推理速度。通過使用不同尺度的特征圖進行目標檢測,可以有效地檢測不同大小的目標??傊琘OLOv5憑借其高精度、高效性能、簡單易用、多平臺適用和多功能等優(yōu)勢,在目標檢測領域中表現出色,為各種實際應用提供了強大的支持。使用YOLOv5的5.0版本,準備好訓練數據集,用labelimg為數據集打標簽,對其進行預處理和標注。為了縮短網絡的訓練時間,并達到更好的精度,加載預訓練權重進行網絡的訓練。訓練模型,首先修改數據配置文件,修改兩個yaml文件中的參數;其次修改模型配置軟件,使用的是YOLOv5s.pt這個預訓練權重。訓練自己的模型,啟用tensorbord查看訓練過程。等到數據訓練好了以后,利用最好的權重文件來做推理測試,測試效果不錯。
對軟體機器人進行控制時,需要四個電機同時工作。單線程執(zhí)行程序時,需按照順序結構執(zhí)行程序,其效率通常低于多線程應用程序。多線程的實現采用了并發(fā)執(zhí)行機制,可以使多任務系統(tǒng)執(zhí)行多個互相獨立的程序,來完成不同的操作。在利用 Python 語言進行多線程編程時,主要使用三大模塊:thread 模塊、fork 進程和 Multiprocessing模塊。thread模塊進行多線程編程時進程只能目前利用一個CPU內核,無法使用主控板的全部資源;fork建立多個子進程時會導致代碼邏輯復雜;因此選用專用于多任務處理的multiprocessing模塊,建立多線程任務。部分代碼如下:
import multiprocessing as mp
import time, os
def my_process(num):
print("I'm process no.%d, PID=%d." %(num, os.getpid()))
time.sleep(3)
print("Creating new processes...")
p1=mp.Process(target=my_process, args=(1,))
p2=mp.Process(target=my_process, args=(2,))
p3=mp.Process(target=my_process, args=(3,))
p1.start()
p2.start()
p3.start()
print("Waiting for all the processes...")
p1.join()
p2.join()
p3.join()
3 控制算法設計
模糊控制是一種基于模糊數學的智能控制方法,其最大的優(yōu)點在于不依賴針對被控對象建立的精確數學模型,而能將操作人員積累的豐富經驗融入模糊控制器[6-8]。模糊控制系統(tǒng)能夠將人的定性思維和判斷方法定量化,以便計算機進行處理,使其更加接近人的表達方式[9]。模糊控制系統(tǒng)具有很強的魯棒性,外界干擾或系統(tǒng)參數變化對控制結果影響較小,可用于非線性且時變性、滯后性強的系統(tǒng)控制過程[10]。因此使用T-S模糊模型,構建基于模糊控制算法的控制系統(tǒng)。如圖5基于模糊模型方法的控制體系結構所示。
采用多項式模糊模型來表示連續(xù)介質機械手的系統(tǒng)狀態(tài)模型。利用隸屬函數,混合局部多項式模型,構造多項式模糊模型。
(7)
其中,x表示系統(tǒng)狀態(tài)向量,y表示輸出向量,ωi表示歸一化隸屬度,A和B分別表示已知多項式系統(tǒng)和輸入矩陣,表示x中的單項式向量,u(t)表示輸入矩陣,C表示常數輸出矩陣。當且僅當x=0時,。
聯立式(6)的雅可比矩陣,系統(tǒng)在控制層面的數學描述可表述為:
(8)
g表示式(1)(2)和(3)聯立得到的3×1階矩陣;在僅考慮末端執(zhí)行器位置表示的情況下,h僅取式(4)齊次變換矩陣T最后一列的前三個元素。
為了用模糊模型表示(8)中包含的軟體機器人狀態(tài)空間模型,采用局部近似技術。僅在一個點上近似,以降低計算需求。
根據制定的模糊控制規(guī)則進行邏輯推理,是模糊控制器設計的核心部分[11]。在定義的狀態(tài)空間模型基礎上,接著定義6個模糊規(guī)則來平滑地組合它們以形成整體模糊模型。6個模糊規(guī)則描述為:
規(guī)則1:IF x is and y is ,THEN
其中(i=1,2,…,6)表示規(guī)則的模糊項,對應于前提變量x,=0.015左右,=0.075左右;(i =1,2,…,6)表示規(guī)則i的另一個模糊項,對應于前提變量y,=-0.075左右,=0左右,=0.075左右。
系統(tǒng)采用全狀態(tài)反饋控制,C=I,Γ=I,代入式(7)得到模糊模型:
(9)
根據(9)的模糊模型,可以獲得模糊控制器:
控制器形式為:
在MATLAB中使用模糊推理系統(tǒng)的GUI進行控制器的設計,如圖6的FIS GUI所示,該系統(tǒng)為雙輸入單輸出T-S型模糊推理系統(tǒng),編輯好輸入輸出按照前文規(guī)則可得圖7所示規(guī)則庫。根據隸屬函數得到其在MATLAB中的函數形狀,如圖7規(guī)則庫所示。
4 實驗結果
深度相機拍攝照片,如圖8軟體機器人運動平臺初始狀態(tài)圖所示,準確識別紅色小球的位置信息,將信息傳遞給主控板,主控板分析后,發(fā)送指令給電機,隨著電機的驅動,軟體機器人發(fā)生彎曲,靠近小球,如圖9軟體機器人運動平臺運動控制效果圖所示。實驗表明基于多項式的模糊控制算法能對軟體機器人操作實現跟蹤目標,達到預期效果。
5 結 論
對軟體機器人進行總體設計,搭建了軟體機器人總體框架,包括系統(tǒng)設計即系統(tǒng)的軟硬件設計組成。硬件包括Orin Nano主控板、Intel D435i相機、57兩相混合式步進電機;對軟體機器人操作臂進行結構設計,結構確定為4線驅動軟體機器人。軟件設計采用Python語言,在ROS平臺進行設計。設計節(jié)點包括:控制器節(jié)點、通信節(jié)點、攝像頭數據采集節(jié)點。使用T-S模糊模型,構建基于模糊控制算法的控制系統(tǒng),完成了軟體機器人平臺目標識別跟蹤的實驗。
參考文獻:
[1] 肖偉,胡國良,肖毅華,等.氣動軟體致動器研究綜述 [J/OL].機械科學與技術:2024:1-14[2024-04-10].https://doi.org/10.13433/j.cnki.1003-8728.20240036.
[2] 王成軍,李帥.軟體機器人研究現狀 [J].微納電子技術,2019,56(12):948-955+991.
[3] GUAN Q H,SUN J,LIU Y J,et al. Status of and Trends in Soft Pneumatic Robotics [J].SCIENTIA SINICA Technologica,2020,50(7):897-934.
[4] 蔣國平,孟凡昌,申景金,等.軟體機器人運動學與動力學建模綜述 [J].南京郵電大學學報:自然科學版,2018,38(1):20-26.
[5] 黃煒成,周帥,秦龍輝.軟體機器人動力學建模與計算研究進展 [J].力學季刊,2024,45(1):1-18.
[6] 牛繼高,張兵,徐春華.基于模糊控制的純電動汽車制動能量回收研究 [J].中原工學院學報,2020,31(2):23-28.
[7] AI M,WANG P,MA W. Research and App Lication of Smart Streetlamp Based on Fuzzy Control Menthod [J].Pro-cedid Computer Science,2021,183:341-348.
[8] 張攀,劉新杰,張威,等.飛機牽引機器人路徑跟蹤模糊控制 [J].計算機工程與應用,2019,55(16):217-220+234.
[9] 賈玉文,段曉,張厚明,等.研究堆Mamdani型模糊控制器設計優(yōu)化方法 [J].原子能科學技術,2021,55(6):1091-1097.
[10] 牛繼高,牛丹彤,徐春華,等.增程式電動汽車最優(yōu)曲線模糊控制策略研究 [J].汽車工程,2018,40(7):757-763.
[11] BENYEZZA H,BOUHEDDA M,REBOUH S. Zoning Irrigation Smart System Based on Fuzzy Control Technology and IoT for Water and Energy Saving [J].Journal of Cleaner Production,2021,302:127001-127016.
作者簡介:高靖茹(2002—),女,漢族,陜西漢中人,本科在讀,研究方向:人工智能;高燃(2002—),女,漢族,重慶萬州人,本科在讀,研究方向:人工智能;劉碩林(2003—),男,漢族,安徽淮北人,本科在讀,研究方向:人工智能;李哲軒(2002—),男,漢族,內蒙古包頭人,本科在讀,研究方向:人工智能;江家輝(2001—),男,漢族,廣東廣州人,本科在讀,研究方向:人工智能;杜佳嶺(2001—),男,漢族,陜西延安人,本科在讀,研究方向:人工智能。