Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
基于Matlab的运动学正解_Matlab_Matrix_Transformation_Kinematics - Fatal编程技术网

基于Matlab的运动学正解

基于Matlab的运动学正解,matlab,matrix,transformation,kinematics,Matlab,Matrix,Transformation,Kinematics,希望你很好。我目前正在研究正向运动学,并试图在MATLAB上实现简单机械臂的想法: 如果关节逆时针旋转45度,我想计算q3的变换矩阵 论文的最后一部分给出了末端执行器框架的变换矩阵fpr 以下是我在MATLAB上尝试的内容: 1 clc 2 clear 3 omega3 = [0 0 1]'; 4 v3 = [0 -2 0]'; 5 omega3Bracket = [0, -omega3(3), omega3(2); omega3(3), 0, -omega3(1); -omega3(2),

希望你很好。我目前正在研究正向运动学,并试图在MATLAB上实现简单机械臂的想法:

如果关节逆时针旋转45度,我想计算q3的变换矩阵

论文的最后一部分给出了末端执行器框架的变换矩阵fpr

以下是我在MATLAB上尝试的内容:

1 clc
2 clear
3 omega3 = [0 0 1]';
4 v3 = [0 -2 0]';
5 omega3Bracket = [0, -omega3(3), omega3(2); omega3(3), 0, -omega3(1); -omega3(2), omega3(1), 0];
6 S3Bracket = [omega3Bracket, v3; 0 0 0 0];
7 expm(S3Bracket.*pi/4)
在第三行和第四行,我创建了角速度矢量和线速度矢量

在第五行,我将角速度向量转换为3x3斜对称矩阵

在第六行,我创建了斜对称螺旋矩阵


在第七行,我使用矩阵指数来计算变换矩阵。然而,我得到的矩阵的最后一列与我应该能够得到的矩阵不同。你知道为什么吗?我做错了什么?

如果论文中的最终答案是正确的,那么末端执行器臂的长度应该是1个单位,而您没有提到这一点。 同样在代码中,您应该将最终答案乘以M矩阵。 因此,代码应该是:

clc
clear
omega3 = [0 0 1]';
v3 = [0 -2 0]';
omega3Bracket = [0, -omega3(3), omega3(2); omega3(3), 0, -omega3(1); -omega3(2), omega3(1), 0];
S3Bracket = [omega3Bracket, v3; 0 0 0 0];
M = [1 0 0 3; 0 1 0 0;0 0 1 0; 0 0 0 1];
expm(S3Bracket*pi/4)*M

请注意,M(1,4)=3,这是起点处原点和末端效应器之间的距离,棱柱关节为2个单位,末端效应器臂为1个单位。

很抱歉,我编辑了我的问题。我删除了该函数,并使用非函数命令更改了行。你能再试试吗?