How can I solve Inverse Kinematics with MathWorks tools?
22 views (last 30 days)
Show older comments
MathWorks Support Team
on 25 Jun 2020
Edited: MathWorks Support Team
on 7 Oct 2021
I would like to know what MathWorks tools are available to help me solve inverse kinematics problems.
Accepted Answer
MathWorks Support Team
on 13 Oct 2022
Edited: MathWorks Support Team
on 7 Oct 2021
Kinematics is the study of motion without considering forces and torques: in robotics, for instance, it is a study of relationship between the robot's joint angles and end-effector pose (position and orientation). Inverse kinematics finds the joint angles given the end-effector pose. For more discussion about inverse kinematics refer to the following documentation reference:
MathWorks provides multiple tools to solve the problem.
1) Robotics System Toolbox
The classes that give access to inverse kinematics algorithms currently are inverseKinematics and generalizedInverseKinematics. The 'inverseKinematics' solves for joint angles given an end effector pose, while the 'generalizedInverseKinematics' adds the option to include constraints (an example would be applying an aiming constraint to a robot hand). The 'inverseKinematics' class offers faster performance and a more streamlined interface for users who don't need additional constraints. The two classes use either one of the following algorithms to find the solution by iteration: BFGS Gradient projection and Levenberg-Marquardt. Find more information about the algorithms in the following documentation:
Finally, both tools support code generation which can speed up execution.
2) Simscape Multibody
There are two methods to solve the inverse kinematics problems numerically using Simscape Multibody. The KinematicsSolver class allows users to solve kinematics problems using their Simscape Multibody models. The 'KinematicsSolver' objects can be used to solve more general problems with closed-loop kinematic chains and multiple targets.
Another method is to add an additional 6-DOF Joint or Bushing Joint between the base and the end-effector of a Simscape Multibody model. Then motion-actuate this joint with the desired trajectory of the end-effector frame and sense the positions of the joints of interest. The welding robot example shows how that can be done. Open the example and look under 'Trajectory Controller'.
3) Symbolic Math Toolbox
With the help of symbolic math tools, analytical solutions can be found for the inverse kinematics. An analytical solution is the explicit equation for the joint angles of the robot given end effector pose: joint_angles = f(end_effector_pose). Once the equation is found, the joint angles can be found very quickly. The following documentation goes through the steps of finding the analytical solution for 2-dof robotic arm.
4) Fuzzy Logic
An interesting take on the inverse kinematics is the use of fuzzy logic controller. Using fuzzy logic, one can construct a fuzzy inference system that deduces the inverse kinematics if the forward kinematics of the robot arm is known. Follow the documentation for further explanation:
0 Comments
More Answers (0)
See Also
Categories
Find more on Assembly in Help Center and File Exchange
Products
Release
R2020a
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!