Wrong answer on robotics forwardDynamics
Mostra commenti meno recenti
i have a 2 rods robot with L1=0.3;L2=0.4 ; cm1=0.2;cm2=0.2; m1=1.8; m2=1.5 with rotational joints. when i load the first joint in forwardDynamics, i get right results. when i'm loading the second joint i get wrong answer. (The analytic answer for torque of [0 1] is accelerations of -9.4737 32.6315)
if true
L1=0.3; L2=0.4;m1=1.8;m2=1.5;cm1=0.2;cm2=0.2;
robot = robotics.RigidBodyTree;
robot.DataFormat = 'row';
body1 = robotics.RigidBody('body1');
jnt1 = robotics.Joint('jnt1','revolute');
setFixedTransform(jnt1,trvec2tform([0, 0, 0]));
jnt1.JointAxis=[0 0 1];
body1.Joint = jnt1;
body1.Inertia=[1 1 0.013+cm1*cm1*m1 0 0 0];
body1.Mass=m1;
body1.CenterOfMass=[ cm1 0 0 ];
addBody(robot,body1,'base');
body2 = robotics.RigidBody('body2');
jnt2 = robotics.Joint('jnt2','revolute');
setFixedTransform(jnt2,trvec2tform([L1, 0, 0]));
jnt2.JointAxis=[0 0 1];
body2.Joint = jnt2;
body2.Inertia=[1 1 0.02+cm2^2*m2 0 0 0];
body2.Mass=m2;
body2.CenterOfMass=[ cm2 0 0];
addBody(robot,body2,'body1');
M=[0 1]
forwardDynamics(robot,[0 0],[0 0] ,M)
%analytic results
% for [1,0] 8.4211 -17.8947; for [0,1] -9.4737 32.6315
%for [1,1] -1.0526 14.7368 ; for [2,2] -2.1053 29.4737
end
Risposte (1)
barak ostraich
il 24 Giu 2018
0 voti
Categorie
Scopri di più su Assembly in Centro assistenza e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!