roboticslab-uc3m / kinematics-dynamics

Kinematics and dynamics solvers and controllers.
https://robots.uc3m.es/kinematics-dynamics/
GNU Lesser General Public License v2.1
19 stars 12 forks source link

Promote compile-time USE_LMA option to runtime usage in KdlSolver #155

Closed PeterBowman closed 6 years ago

PeterBowman commented 6 years ago

As spoken with @jgvictores, it would be nice to convert the USE_LMA CMake option (handled as a preprocessor definition, ref) into a YARP RF option loadable along with the device itself (via command line or programatically).

Not sure about the capitalization: is --useLMA ok? And sticking to current defaults (this option is set to OFF), such property wouldn't accept any value and the lack of a --useLMA shall mean use the Newton-Raphson algorithm.

jgvictores commented 6 years ago

I was thinking more of an --ik lma, leaving the future open for more than 2 options.

PeterBowman commented 6 years ago

Hm, we'd have to develop our own implementation of KDL::ChainIkSolverPos as there are only three of them available in the KDL framework (or two, just taking into account joint limits): LMA, NR, NR-JL (ref).

Question: missing --ik option = error? Assume NR-JL as default value otherwise?

jgvictores commented 6 years ago

I'd almost default to lma. : )

BTW, I recall a fork with a LMA_JL too, but haven't been able to find it. However, here's something that I have found: KDL::ChainIkSolverPos_LMA_JL_Mimic Class, chainiksolver_pos_lma_jl_mimic.h.

jgvictores commented 6 years ago

PS: Just re-discovered https://github.com/orocos/orocos_kinematics_dynamics/pull/35 (Added joint limits to ChainIkSolverPos_LMA): apparently closed but never merged...

jgvictores commented 6 years ago

Regarding KDL::ChainIkSolverPos_LMA_JL_Mimic, so much WET development would deserve some effort for a PR on KDL (unless I'm really missing something).

PeterBowman commented 6 years ago

Done at https://github.com/roboticslab-uc3m/kinematics-dynamics/commit/8c82f75c63549cc217d4b5dcd3db8d9afb713728.

jgvictores commented 6 years ago

Note to self: check out what is done in https://github.com/ros-industrial-consortium/descartes (has refs to both KDL and ikfast).

jgvictores commented 6 years ago

Also: https://rosindustrial.org/news/2018/7/5/optimization-motion-planning-with-tesseract-and-trajopt-for-industrial-applications