error in the process of symbol operation of the matrix
3 次查看(过去 30 天)
显示 更早的评论
It is convenient to use symbol operation to explore the relationship during the multiplication of matrices. And here is my code.
clc;clear;
theta = sym('theta',[1,4])
d = sym('d',[1,4])
a = sym('a',[1,4])
alpha = sym('alpha',[1,4])
T = ones(4,4)
for i = 2:1:4
T = T*[cos(theta(i)) -sin(theta(i)) 0 a(i-1);
sin(theta(i))*cos(alpha(i-1)) cos(theta(i))*cos(alpha(i-1)) -sin(alpha(i-1)) -d(i)*sin(alpha(i-1));
sin(theta(i))*sin(alpha(i-1)) cos(theta(i))*sin(alpha(i-1)) cos(alpha(i-1)) d(i)*cos(alpha(i-1));
0 0 0 1];
end
T
the answer is :
What is wrong with T?
0 个评论
回答(2 个)
Matt J
2023-5-29
编辑:Matt J
2023-5-29
Nothing is wrong with T, though possibly you didn't scroll down far enough to see the definitions of all the sigmas.
1 个评论
John D'Errico
2023-5-29
编辑:John D'Errico
2023-5-29
I would specuulate the issue is that T ends up as a rank 1 matrix, which it MUST, since T starts out as a rank 1 matrix, as ones(4).
John D'Errico
2023-5-29
编辑:John D'Errico
2023-5-29
Why do you think there is something wrong with T? We don't know why you wrote this code. It computes what you told MATLAB to compute.
T is displayed there TWICE. The first time it is an array of all ones. A BAD IDEA. I think you wanted T to start as an IDENTITY matrix, not a matrix of all ones.
help eye
The point is, if you are looking at this as a sequence of rotations, then you need to start with an identity matrix.
0 个评论
另请参阅
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!