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

9 次查看(过去 30 天)
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);

回答(1 个)

Pratik
Pratik 2024-4-9
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.

类别

Help CenterFile Exchange 中查找有关 Robotics 的更多信息

产品


版本

R2021a

Community Treasure Hunt

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

Start Hunting!

Translated by