RESOURCES
接下來我們?cè)龠M(jìn)階一下,算一下以對(duì)位平臺(tái)臺(tái)面上任意一點(diǎn)為中心,進(jìn)行旋轉(zhuǎn)運(yùn)動(dòng)的運(yùn)動(dòng)學(xué)方程正反解
我們首先解釋下什么是運(yùn)動(dòng)學(xué)的正解和反解,運(yùn)動(dòng)學(xué)正解,既是已知各可變結(jié)構(gòu)參數(shù),求末端執(zhí)行器的相對(duì)參考坐標(biāo)系的位姿;而運(yùn)動(dòng)學(xué)反解,則是已知末端執(zhí)行器的相對(duì)參考坐標(biāo)系的位姿,求各可變結(jié)構(gòu)如何能調(diào)參才能夠滿足。
由于對(duì)位平臺(tái)一般應(yīng)用于通過機(jī)器視覺獲取位姿再進(jìn)行調(diào)整糾偏的場(chǎng)景,所以,運(yùn)動(dòng)學(xué)反解使用的情況要比正解多得多,所以,我們還是從反解開始。
運(yùn)動(dòng)學(xué)反解:(終端→可變端)
各軸腳初始坐標(biāo)(固有值)
運(yùn)動(dòng)學(xué)正解:可變端→終端)
對(duì)位平臺(tái)的工作空間求解
工作空間指在一定條件下,終端執(zhí)行器所能到達(dá)的空間位置的集合。一般來說,并聯(lián)結(jié)構(gòu)的工作空間都比較小,所以在一定程度上限制了其應(yīng)用。因此對(duì)于并聯(lián)結(jié)構(gòu)的工作空間進(jìn)行分析就顯得尤為重要。
對(duì)于工作空間的求解一般采用解析法或數(shù)值法,解析法從工程角度而言十分繁瑣,直觀性不強(qiáng);數(shù)值法利用位置正解或逆解來求解工作空間。我們通過MATLAB軟件求解機(jī)構(gòu)的位置正解及電機(jī)和導(dǎo)軌行程作為限制條件進(jìn)行工作空間的求解。
定義平臺(tái)結(jié)構(gòu)參數(shù):X1 = X2 = Y = 137.89mm,電機(jī)行程范圍:-15mm ≤ (x1 = x2 = y) ≤ 15mm,導(dǎo)軌行程:-15mm ≤ d ≤ 15mm。
工作空間仿真圖
Matlab部分代碼參考:
close all; clear all; clc
%% 設(shè)置模板位置參數(shù)
figure(1)
grid on;axis([-200,200,-200,200]);hold on;
% 定義生成模板物體mode:x,y,theta(基于XYR平臺(tái)絕對(duì)坐標(biāo)系)
Template = [25, 35 , pi*0.2];
% 定義待糾偏物體re:x,y,theta(基于XYR平臺(tái)絕對(duì)坐標(biāo)系)
Rectify_deviation = [15, 22, pi*0.4];
% Y軸執(zhí)行機(jī)構(gòu)-目標(biāo)坐標(biāo)
yx = (Yx0 - at)*cos(THETA) - (Yy0 - bt)*sin(THETA) + at + X;
yy = (Yx0 - at)*sin(THETA) + (Yy0 - bt)*cos(THETA) + bt + Y;
% X1軸執(zhí)行機(jī)構(gòu)-目標(biāo)坐標(biāo)
x1x = (X1x0 - at)*cos(THETA) - (X1y0 - bt)*sin(THETA) + at + X;
x1y = (X1x0 - at)*sin(THETA) + (X1y0 - bt)*cos(THETA) + bt + Y;
% X2軸執(zhí)行機(jī)構(gòu)-目標(biāo)坐標(biāo)
x2x = (X2x0 - at)*cos(THETA) - (X2y0 - bt)*sin(THETA) + at + X;
x2y = (X2x0 - at)*sin(THETA) + (X2y0 - bt)*cos(THETA) + bt + Y;
% O坐標(biāo)
ox = (Ox0 - at)*cos(THETA) - (Oy0 - bt)*sin(THETA) + at + X;
oy = (Ox0 - at)*sin(THETA) + (Oy0 - bt)*cos(THETA) + bt + Y;
%求出第一次旋轉(zhuǎn)后,待糾偏物體新的位姿
rx1 = Rectify_deviation(1);
rx2 = Rectify_deviation(2);
Rectify_deviation(1) = (rx1 - at)*cos(THETA) - (rx2 - bt)*sin(THETA) + at + X;
Rectify_deviation(2) = (rx1 - at)*sin(THETA) + (rx2 - bt)*cos(THETA) + bt + Y;
Rectify_deviation(3) = Rectify_deviation(3) + THETA_M; PX(incr)=-sin(Theta1).*(d2+sin(Theta4).*sin(Theta5).*d6)+cos(Theta1).*(cos(Theta2).*cos(Theta4)*sin(Theta5)*d6+sin(Theta2)*(d3+cos(Theta5)*d6)); PY(incr)=cos(Theta1).*(d2+sin(Theta4).*sin(Theta5).*d6)+sin(Theta1).*(cos(Theta2).*cos(Theta4)*sin(Theta5)*d6+sin(Theta2)*(d3+cos(Theta5)*d6));
PZ(incr)=-cos(Theta4)*sin(Theta2)*sin(Theta5)*d6+cos(Theta2)*(d3+cos(Theta5)*d6);
以對(duì)位臺(tái)面重心為參照點(diǎn),則有:
位置正解 |
輸入(mm) |
輸出(mm,10-2弧度) |
||||
|
X1 |
X2 |
Y |
X |
Y |
|
5 |
-5 |
0 |
-5 |
0 |
0 |
|
5 |
-5 |
-3 |
-5 |
3 |
0 |
|
-5 |
5 |
-5 |
0 |
0 |
0.05009 |
|
4 |
2 |
3 |
3 |
2 |
-0.01031 |
|
位置反解 |
輸入(mm,10-2弧度) |
輸出(mm) |
||||
|
X |
Y |
θ´ |
X1 |
X2 |
Y |
-5 |
5 |
0 |
-5 |
5 |
-5 |
|
-5 |
-3 |
0 |
5 |
-5 |
3 |
|
0 |
0 |
0.03491 |
-3.462 |
3.462 |
-3.462 |
|
2 |
-3 |
--0.05236 |
2.969 |
-6.969 |
7.969 |
Copyright ? 2020 Zolix .All Rights Reserved 地址:北京市通州區(qū)中關(guān)村科技園區(qū)通州園金橋科技產(chǎn)業(yè)基地環(huán)科中路16號(hào)68號(hào)樓B.
ICP備案號(hào):京ICP備05015148號(hào)-1
公安備案號(hào):京公網(wǎng)安備11011202003795號(hào)