[Soc-2005-cvs] CVS commit: soc-blender/intern/iksolver/intern
IK_QJacobian.cpp IK_QJacobian.h
IK_QJacobianSolver.cpp IK_QJacobianSolver.h IK_QSegment.cpp
IK_QSegment.h IK_QSolver_Class.h IK_Solver.cpp Makefile
IK_QChain.cpp IK_QChain.h soc-blender/intern/moto/include ...
Brecht Van Lommel
brechtvanlommel at pandora.be
Fri Jul 8 23:38:44 CEST 2005
blendix (Brecht Van Lommel) 2005/07/08 23:38:43 CEST
Modified files: (Branch: blendix)
soc-blender/intern/iksolver/intern IK_QJacobian.cpp
IK_QJacobian.h
IK_QJacobianSolver.cpp
IK_QJacobianSolver.h
IK_QSegment.cpp
IK_QSegment.h
IK_QSolver_Class.h
IK_Solver.cpp Makefile
soc-blender/intern/moto/include MT_Transform.h
Removed files: (Branch: blendix)
soc-blender/intern/iksolver/intern IK_QChain.cpp IK_QChain.h
Log:
Implemented selectively damped least squares (SDLS) method for damping
near singularities. The old method failed to damp properly for < 3DOF
joints, because it would use the distance from the target position,
which may not be a good estimate for non-3DOF joints.
Reference:
Samuel R. Buss and Jin-Su Kim.
"Selectively Damped Least Squares for Inverse Kinematics."
http://math.ucsd.edu/~sbuss/ResearchWeb/ikmethods/
It does not solve all issues, but at least prevents shaking near
singularities. As an extra bonus it also improves stability and convergence
in general, giving a nice speedup.
It will be very difficult to provide exact backwards compatibility with
the SDLS, as the solution of the numerical system may depend on very small
details. The old method is still there to be enabled if needed.
Furthermore IK_QChain has been dropped and replaced by a tree structure.
This code is still mostly unfinished and untested, but works correctly for
chains.
Revision Changes Path
1.1.2.3 +227 -81 soc-blender/intern/iksolver/intern/Attic/IK_QJacobian.cpp
<http://projects.blender.org/viewcvs/viewcvs.cgi/soc-blender/intern/iksolver/intern/Attic/IK_QJacobian.cpp.diff?r1=1.1.2.2&r2=1.1.2.3&cvsroot=soc-2005>
1.1.2.3 +22 -6 soc-blender/intern/iksolver/intern/Attic/IK_QJacobian.h
<http://projects.blender.org/viewcvs/viewcvs.cgi/soc-blender/intern/iksolver/intern/Attic/IK_QJacobian.h.diff?r1=1.1.2.2&r2=1.1.2.3&cvsroot=soc-2005>
1.1.1.1.2.7 +50 -85 soc-blender/intern/iksolver/intern/IK_QJacobianSolver.cpp
<http://projects.blender.org/viewcvs/viewcvs.cgi/soc-blender/intern/iksolver/intern/IK_QJacobianSolver.cpp.diff?r1=1.1.1.1.2.6&r2=1.1.1.1.2.7&cvsroot=soc-2005>
1.1.1.1.2.3 +15 -32 soc-blender/intern/iksolver/intern/IK_QJacobianSolver.h
<http://projects.blender.org/viewcvs/viewcvs.cgi/soc-blender/intern/iksolver/intern/IK_QJacobianSolver.h.diff?r1=1.1.1.1.2.2&r2=1.1.1.1.2.3&cvsroot=soc-2005>
1.1.1.1.2.4 +194 -47 soc-blender/intern/iksolver/intern/IK_QSegment.cpp
<http://projects.blender.org/viewcvs/viewcvs.cgi/soc-blender/intern/iksolver/intern/IK_QSegment.cpp.diff?r1=1.1.1.1.2.3&r2=1.1.1.1.2.4&cvsroot=soc-2005>
1.1.1.1.2.4 +90 -41 soc-blender/intern/iksolver/intern/IK_QSegment.h
<http://projects.blender.org/viewcvs/viewcvs.cgi/soc-blender/intern/iksolver/intern/IK_QSegment.h.diff?r1=1.1.1.1.2.3&r2=1.1.1.1.2.4&cvsroot=soc-2005>
1.1.1.1.2.1 +23 -39 soc-blender/intern/iksolver/intern/IK_QSolver_Class.h
<http://projects.blender.org/viewcvs/viewcvs.cgi/soc-blender/intern/iksolver/intern/IK_QSolver_Class.h.diff?r1=1.1.1.1.2.0&r2=1.1.1.1.2.1&cvsroot=soc-2005>
1.1.1.1.2.5 +63 -96 soc-blender/intern/iksolver/intern/IK_Solver.cpp
<http://projects.blender.org/viewcvs/viewcvs.cgi/soc-blender/intern/iksolver/intern/IK_Solver.cpp.diff?r1=1.1.1.1.2.4&r2=1.1.1.1.2.5&cvsroot=soc-2005>
1.1.1.1.2.2 +2 -3 soc-blender/intern/iksolver/intern/Makefile
<http://projects.blender.org/viewcvs/viewcvs.cgi/soc-blender/intern/iksolver/intern/Makefile.diff?r1=1.1.1.1.2.1&r2=1.1.1.1.2.2&cvsroot=soc-2005>
1.1.1.1.2.2 +7 -1 soc-blender/intern/moto/include/MT_Transform.h
<http://projects.blender.org/viewcvs/viewcvs.cgi/soc-blender/intern/moto/include/MT_Transform.h.diff?r1=1.1.1.1.2.1&r2=1.1.1.1.2.2&cvsroot=soc-2005>
More information about the Soc-2005-cvs
mailing list