Inverse Kinematic with fixed joint

Hey Guys,
I want to do the inverse Kinematics for my 6DOF-Robot. So far it works, but how can i set a revolute joint fixed for 8degrees for the inverse calculation? I don't want that the ik is using this joint. It just should stay at 8°.
Do I have to use the generalizedinversekinematics to set these constraints, or is there some other fix?
Thanks a lot, best greets from Germany!
Marius
My Code for Joint1 wich should stay in the ik calculation at 8. With the positionlimits of [8,8] brings me an error.
link1 = robotics.RigidBody('L1');
jnt1 = robotics.Joint('incline','revolute');
jnt1.PositionLimits = deg2rad( [-8, 8]);
setFixedTransform(jnt1, [eye(3),[0;0;0];[0 0 0 1]]);
jnt1.JointAxis = [0 1 0];
link1.Joint = jnt1;
addBody(loader, link1, 'base');

5 Comments

Maybe you can use
while jnt1.PositionLimits <8
and so you stop it.
Thanks Sara for your hint.
But then it calculates from 0 to 8 right?
I fust want to fix it at 8.
Ohh i see there is a Mistake in my code it should be [8,8] for positionLimits.
When i run it with [8,8] there is a mistake (see below). So i did it with 7.999 but its not that what i want..
Error using validateConfiguration
Expected input to be non-NaN.
Error in robotics.manip.internal.RigidBodyTree/validateConfiguration (line 1130)
validateattributes(qi, {'double'}, {'nonempty', 'nonnan', 'finite', 'real', ...
Error in robotics.manip.internal.RigidBodyTree/getTransform (line 648)
qvec = obj.validateConfiguration(Q);
Error in rigidBodyTree/getTransform (line 471)
T = obj.TreeInternal.getTransform(varargin{:});
Error in LoaderZXYRPY (line 128)
Tik = getTransform(loader, configSol,'L9')
So you want also 8?
Then just write
while jnt1.PositionLimits <=8
Because while takes so long as conndition is complished.
oh now i see, you need only for 8, then delete <
Yeah for yout understanding it's right, only for 8, practically it isn't a joint it's just a steel between some joints with a angle of 8. So i want to write it for calculation as a fixed joint with the value of 8.
So thanks i will try to include the while function.

Sign in to comment.

Answers (0)

Asked:

on 14 Aug 2020

Commented:

on 17 Aug 2020

Community Treasure Hunt

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

Start Hunting!