Incorrect joint coordinate given from ikcon() when given a negative coordinate

11 Ansichten (letzte 30 Tage)
I'm facing issues where ikcon() outputs incorrect joint angles for my RRR 3DOF robot arm, when a negative x, y, or z coordinate is entered into the ikcon() function. It returns a joint coordinate that causes the robot arm to "eat itself". I'm not sure whether this is an issue with the initial joint coordinates or what. Assistance required not very urgently.
L(1) = Link([0 0 0 pi/2],'standard'); L(1).qlim = [-pi pi];
L(2) = Link([0 0 30 0],'standard'); L(2).qlim = [deg2rad(-45) deg2rad(150)];
L(3) = Link([0 0 30 0],'standard' ); L(3).qlim = [deg2rad(-160) deg2rad(0)];
twoLink = SerialLink(L);
L(2).offset = pi/4;
L(3).offset = -pi/2;
T1 = transl(-4, 45, 4);
q1 = twoLink.ikcon(T1);
twoLink.plot(q1);

Antworten (1)

Pratik
Pratik am 9 Apr. 2024
Hi Ho Jin Ping,
As per my understanding, you encounter issue when using the "ikcon()" function for inverse kinematics calculations on a robot arm.
The issue you’re encountering with ikcon() and your RRR 3DOF robot arm is likely related to the initial joint coordinates or the constraints you’ve set.
When using ikcon(), it’s essential to provide a reasonable initial guess for the joint angles (q0). If the initial guess is far from the actual solution, the optimization process may converge to a local minimum, resulting in incorrect joint angles. Ensure that your initial guess (q0) is close to the actual solution. You can experiment with different initial values to improve convergence.
When the end-effector position is unreachable due to workspace constraints, ikcon() might return invalid joint angles. Verify that the desired end-effector pose (T1) lies within the robot’s reachable workspace. If not, consider adjusting the target position.
I hope this helps.

Kategorien

Mehr zu Robotics finden Sie in Help Center und File Exchange

Produkte


Version

R2021a

Community Treasure Hunt

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

Start Hunting!

Translated by