How to calculate inverse kinematics [closed]

2019-03-07 20:01发布

问题:

I want to know how to calculate rotation angles using inverse kinematics. I am planning on using this for real time 3d animation. Anyone know of some good literature that details a specific solution?

回答1:

The following resources survey some popular numerical methods for inverse kinematics problems:

  • Samuel R. Buss. Introduction to Inverse Kinematics with Jacobian Transpose, Pseudoinverse and Damped Least Squares methods

  • Bill Baxter. Fast Numerical Methods for Inverse Kinematics

  • Chris Welman. Inverse Kinematics and Geometric Constraints for Articulated Figure Manipulation

Buss's survey may be particularly interesting, because it explicitly discusses multiple limbs.

IK systems for animation must generally support multiple, possibly conflicting, constraints. For example, one arm can hold on to a rail while the other arm reaches for a target.

  • Jianmin Zhao and Norman Badler. Inverse Kinematics Positioning Using Nonlinear Programming for Highly Articulated Figures

6 dof industrial robots generally have closed form IK solutions, as mentioned by Andrew and explained in e.g. Craig: Introduction to Robotics. More useful for figure animation are methods for 7 dof human-like arms and legs:

  • IKAN: Inverse Kinematics using ANalytical Methods

  • Kulpa and Multon. Fast inverse kinematics and kinetics solver for human-like figures



回答2:

From wikipedia:

The ikfast program can solve for the complete analytical solutions of most common robot manipulators and generate C++ code for them. The generated solvers cover most degenerate cases and can finish in microseconds on recent computers.



回答3:

You can look at:

  • Theory of Applied Robotics: Kinematics, Dynamics, and Control (2nd Edition) by Reza N. Jazar. Not bad, but in my opinion calculation of Jacobian is covered badly.
  • Robotics: Modelling, Planning and Control Bruno Siciliano. This book also great and covers Jacobian calculation well to implement.
  • Trajectory Planning for Automatic Machines and Robots by Luigi Biagiot. Also very helpfull and well written book.

Also look at https://github.com/kirillv/cpp-inverse-kinematics-library It shows some algorithms (Jacobian Transpose , Jacobian Pseudoinverse , DLS) in C++, and solves IK for robots described in DH.



回答4:

Thomas Kane is one of the world's authorities on dynamics. I'd recommend his "Dynamics" text highly, but it's not for the faint of heart or weak at mathematics.