Inverse differential kinematics equation X_dot = J*q_dot

조회 수: 4 (최근 30일)
Venkatesh Sripada
Venkatesh Sripada 2019년 8월 2일
답변: Jyotsna Talluri 2019년 8월 5일
Hello,
I am trying to solve a differential equation of the form X_dot = J*q_dot (X_dot and J are known).
where X_dot = [x_dot; y_dot; phi_dot], a column vector with position (x,y) and angle phi
J = Jacobian matrix, a 3x6 matrix
q_dot = [theta1_dot; theta2_dot;...theta6_dot], colunm vector with six angles theta1 to theta6.
I want to find q_dot from this equation. Is there any way I can do this?
---------My method-----------
I am currently using symbolic computation and have tried
x = [x; y; phi];
x_dot = diff(x,t);
q = [theta1; theta2; theta3; theta4; theta5; theta6];
q_dot = diff(q,t);
solvex = solve([pinv(J)*x_dot] == q_dot,[q])
I also have a long 3x6 Jacobian (J) with a lot of theta1's in 1st column, theta2's in 2nd column.....upto theta6's in 6th column. (Not to be confused, my J has a lot of terms in it and not just thetas. The other terms are constants that are predefined)
The issue is that I am getting a blank 0 x1 value for theta.
Is theta being both in the Jacobian and the output matrix confusing matlab?
Please let me know how to go about with this.
Thanks,
Venkatesh.
% Output from command line if it helps
solvex =
struct with fields:
theta1: [0×1 sym]
theta2: [0×1 sym]
theta3: [0×1 sym]
theta4: [0×1 sym]
theta5: [0×1 sym]
theta6: [0×1 sym]
vpa(solvex.theta1)
ans =
Empty sym: 0-by-1
  댓글 수: 1
Jyotsna Talluri
Jyotsna Talluri 2019년 8월 5일
Can you provide the dataset i.e.,the matrices x ,J,and q

댓글을 달려면 로그인하십시오.

채택된 답변

Jyotsna Talluri
Jyotsna Talluri 2019년 8월 5일
Hi,
If the matrix X is a function of t ,then X_dot = J*q_dot reduces to 7 equations with 5 unknowns (t,theta1 ,theta2,theta3 ,theta4,theta5,theta6).which cannot be solved. That is the reason you are getting empty results. When the system of equations don’t have a solution, we get empty results.

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 Ordinary Differential Equations에 대해 자세히 알아보기

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by