雅克比矩阵是什么。比如f1 = kx1+x2 ,我们可以求出f1对x1和x2的映射关系 ,而这个关系就是雅克比矩阵。
MATLAB中有专门的函数-jacobian 命令专门去求解一个函数的雅克比矩阵,接下来实践。
上图,是二自由度正运动学方程。J是咱们要求解的雅克比矩阵。
在MATLAB中
syms x y l1 l2 theta1 theta2;
x = -(l1*sin(theta1)+l2*sin(theta1+theta2));
y = -(l1*cos(theta1)+l2*cos(theta1+theta2));
jacobian([x,y],[theta1,theta2])
结果是:我们就求出了xy和theta1和theta2的映射关系
在此期间,MATLAB出现了
错误使用 symfun.parseString (第 55 行)
Invalid variable name.
出错 syms (第 297 行)
[name, vars] = symfun.parseString(x,'allowPercent');
这样的问题。出现这样的问题我的代码是这样的
syms x y l1 l2 theta(1) theta(2);
x = -(l1*sin(theta(1))+l2*sin(theta(1)+theta(2)));
y = -(l1*cos(theta(1))+l2*cos(theta(1)+theta(2)));
jacobian([x,y],[theta(1),theta(2)])
原因是:在matlab中不太能识别类似于theta(1)和theta(2)这样的字样。