L(1) = Link([0, 0, 200, 0], 'R'); L(2) = Link([0, 0, 230, 0], 'R');
R = SerialLink(L, 'name', 'two link');
R.plot([0.5, 0.7])
R.teach();
T = transl(0.4, 0.5, 0.6); q = R.ikine(T, [rad1, rad2], [1, 1, 0, 0, 0, 0]);
_ Error using SerialLink/ikine (line 164) Number of robot DOF must be >= the same number of 1s in the mask matrix Error in neki (line 26) q = R.ikine(T, [rad1, rad2], M);

 Akzeptierte Antwort

Youssef Ben Dhiab
Youssef Ben Dhiab am 28 Nov. 2017

2 Stimmen

Hi Za Ka, You should specify what are your inputs:
  • [1, 1, 0, 0, 0, 0] is the mask vector 'mask'
  • [rad1, rad2] is the initial joint configuration 'q0'
So, change the last line like that : I = R.ikine(Td, 'q0', [rad1, rad2], 'mask',[1, 1, 0, 0, 0, 0]) It should work. If it didn't you have to change the initial pose [0, 0] by some other values like [pi/2, pi] so that it can converge after less than 1000 iterations.

Weitere Antworten (0)

Community Treasure Hunt

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

Start Hunting!

Translated by