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 Center および File ExchangeOrdinary Differential Equations についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by