仿真逆动力学
注意
本文使用的方法并没有解决多解的问题,使用的是fsolve函数,使得结果只有一个解
代码
定义连杆参数和圆
使用俩连杆作为“画笔”来画圆
l1 = 1.2; l2 = 1;
phi = linspace(0,2*pi,100);
xRef = 1 + 0.6*cos(phi); yRef = 1 + 0.6*sin(phi);
求出对应末端执行点的关节变量
%%%% 猜测解的位置 %%%%
theta = [0.1 0.3];
thetaAll = zeros(length(phi),2);
%%%% 计算每个点对应的theta向量 %%%%
for i = 1:length(phi)
para = [l1 l2 xRef(i) yRef(i)];
options = optimoptions('fsolve','Display','off','MaxIterations',100,'MaxFunctionEvaluations',300)