力控機器人常采用柔順控制算法與人/環(huán)境/機器人之間進行直接或間接的物理交互,那么,柔順控制能夠操縱被控系統(tǒng)的柔性特性和動態(tài)行為,實現(xiàn)方式可以分為被動柔順和主動柔順,具體分類如下圖所示:
力控機器人交互控制框架是用于實現(xiàn)機器人與外部環(huán)境或操作者之間的力互動的控制系統(tǒng)。
在力控機器人交互控制中,主要涉及直接力控制、阻抗控制和導納控制三種主要方法。下面是這些控制方法的框架及其性能分析:
1. 直接力控制框架:
力/力矩傳感器:用于測量機器人與環(huán)境之間的力和力矩。
力/力矩控制器:根據(jù)傳感器測量值和期望的力/力矩指令,生成控制指令以實現(xiàn)期望的力互動。
運動控制器:用于控制機器人的關(guān)節(jié)或末端執(zhí)行器,以實現(xiàn)所需的運動軌跡。
環(huán)境建模與識別:用于對環(huán)境進行感知和識別,以幫助機器人適應環(huán)境變化。
性能分析:
?力跟蹤性能:評估力控制器的能力,以實現(xiàn)期望的力跟蹤。
?運動軌跡跟蹤性能:評估運動控制器的能力,以實現(xiàn)期望的運動軌跡跟蹤。
?動態(tài)響應性能:評估系統(tǒng)對外部力變化的響應速度和穩(wěn)定性。
?力/位置誤差分析:分析力控制和位置控制之間的誤差,以評估系統(tǒng)的精度和穩(wěn)定性。
?穩(wěn)定性分析:通過線性穩(wěn)定性分析或Lyapunov穩(wěn)定性分析等方法,評估力控制系統(tǒng)的穩(wěn)定性。
2. 阻抗控制框架:
力/力矩傳感器:用于測量機器人與環(huán)境之間的力和力矩。
阻抗控制器:根據(jù)傳感器測量值和期望的力/力矩指令,生成控制指令以實現(xiàn)期望的阻抗互動。
運動控制器:用于控制機器人的關(guān)節(jié)或末端執(zhí)行器,以實現(xiàn)所需的運動軌跡。
環(huán)境建模與識別:用于對環(huán)境進行感知和識別,以幫助機器人適應環(huán)境變化。
性能分析:
?阻抗響應性能:評估阻抗控制器對外部力變化的響應速度和穩(wěn)定性。
?阻抗參數(shù)分析:分析阻抗控制器中的參數(shù)對系統(tǒng)性能的影響,如阻尼、剛度和質(zhì)量等參數(shù)。
?阻抗穩(wěn)定性分析:評估阻抗控制系統(tǒng)的穩(wěn)定性,包括阻抗穩(wěn)定性邊界和阻抗參數(shù)的穩(wěn)定性范圍。
?動態(tài)性能分析:分析阻抗控制器對不同頻率的外部力變化的動態(tài)響應性能。
?阻抗控制精度分析:評估阻抗控制器在實現(xiàn)期望的阻抗響應時的精度和穩(wěn)定性。
以下為阻抗控制簡單實現(xiàn)的MATLAB程序:
% 定義阻抗控制參數(shù)
M = 5;
B = 10;
K = 20;
% 定義初始位置和速度
x = 0;
xdot = 0;
% 定義時間步長和仿真時間
dt = 0.01;
T = 5;
% 初始化位置和速度數(shù)組
x_arr = zeros(1, T/dt);
xdot_arr = zeros(1, T/dt);
% 進行阻抗控制仿真
for i = 1:T/dt
% 計算外部力
F_ext = 10 * sin(i*dt);
% 計算加速度
xddot = (F_ext - B*xdot - K*x) / M;
% 更新位置和速度
xdot = xdot + xddot*dt;
x = x + xdot*dt;
% 存儲位置和速度
x_arr(i) = x;
xdot_arr(i) = xdot;
end
% 繪制位置和速度圖像
t = 0:dt:T-dt;
subplot(2,1,1)
plot(t, x_arr)
title('Position')
subplot(2,1,2)
plot(t, xdot_arr)
title('Velocity')
仿真結(jié)果如下:
對于二連桿機械臂的阻抗控制,需要考慮機械臂的動力學模型。需要更多的信息來確定機械臂的參數(shù)和控制目標:
% 定義阻抗控制參數(shù)
Md = diag([5, 5]);
Bd = diag([10, 10]);
Kd = diag([20, 20]);
% 定義機械臂質(zhì)量和初始位置
m1 = 1;
m2 = 1;
l1 = 1;
l2 = 1;
q = [0; 0];
qdot = [0; 0];
% 定義時間步長和仿真時間
dt = 0.01;
T = 5;
% 初始化位置數(shù)組
q_arr = zeros(2, T/dt);
% 進行阻抗控制仿真
for i = 1:T/dt
% 計算外部力矩
tau_ext = [10 * sin(i*dt); 5 * cos(i*dt)];
% 計算關(guān)節(jié)慣量矩陣
M = [(m1+m2)*l1^2 + m2*l2^2 + 2*m2*l1*l2*cos(q(2)), m2*l2^2 + m2*l1*l2*cos(q(2));
m2*l2^2 + m2*l1*l2*cos(q(2)), m2*l2^2];
% 計算離心力與科氏力矩陣
C = [-m2*l1*l2*sin(q(2))*qdot(2), -m2*l1*l2*sin(q(2))*(qdot(1)+qdot(2));
m2*l1*l2*sin(q(2))*qdot(1), 0];
% 計算重力矩陣
G = [(m1+m2)*l1*9.8*cos(q(1)) + m2*l2*9.8*cos(q(1)+q(2));
m2*l2*9.8*cos(q(1)+q(2))];
% 計算期望加速度
qddot_d = Md (tau_ext - Bd*qdot - Kd*q);
% 計算控制力矩
tau = M*qddot_d + C*qdot + G - Bd*qdot - Kd*q;
% 更新位置和速度
qddot = M (tau + tau_ext - C*qdot - G);
qdot = qdot + qddot * dt;
q = q + qdot * dt;
% 存儲位置
q_arr(:,i) = q;
end
% 繪制位置圖像
t = 0:dt:T-dt;
subplot(211)
plot(t, q_arr(1,:))
title('Joint 1 Position')
subplot(212)
plot(t, q_arr(2,:))
title('Joint 2 Position')
-
傳感器
+關(guān)注
關(guān)注
2541文章
49961瀏覽量
747476 -
機器人
+關(guān)注
關(guān)注
210文章
27838瀏覽量
204592 -
測量
+關(guān)注
關(guān)注
10文章
4613瀏覽量
110572 -
力控
+關(guān)注
關(guān)注
0文章
22瀏覽量
7840
發(fā)布評論請先 登錄
相關(guān)推薦
評論