|0.3.0||Sep 8, 2020|
|0.2.4||Sep 7, 2020|
|0.2.3||Jul 23, 2020|
|0.2.0||Jun 25, 2019|
|0.1.0||Jun 21, 2019|
#36 in Robotics
78 downloads per month
Our implementation of a very simple Kinematic Dynamic Library. We were using orocos-KDL at our laboratory, but found that it was better for our research interests to have our own library, so we created arcos-kdl (as similar as possible to orocos-kdl).
- Forward positional chain kinematics
- Forward differential chain kinematics
- Inverse positional chain kinematics
- Inverse differential chain kinematics
- Forward chain dynamics
- Inverse chain dynamics
- Forward Tree kinematics
Right now arcos-kdl is capable of computing forward kinematics (positional and differential) for arbitrary long kinematic chains. It is also capable of computing inverse differential kinematics of arbitrary long chains.
For inverse kinematics we are using a algorithm called by orocos-kdl as weighted damped least squares. The most important aspect of this algorithm is that one can define weight matrices at the task and joint spaces. This weights indicates to the solver how much each (joint/axis) matters for the solution. So, in the task space, the algorithm will priorize to reduce the error on those axes with higher weight. In the joint space the algorithm will move less the joints with lower weight. This is very useful when the joint is approaching a limit or a singularity; one can lower its weight, so that the algorithm uses more the joints without problems.
For more information about this algorithm read the following papers:
A. Ben Israel & T.N.E. Greville. Generalized Inverses : Theory and Applications, second edition. Springer, 2003. ISBN 0-387-00293-6.
K. L. Doty, C. Melchiorri & C. Boniveto. A theory of generalized inverses applied to Robotics. The International Journal of Robotics Research, vol. 12, no. 1, pages 1-19, february 1993.
cargo install arcos-kdl
If you do not want to use the official package, you can build it yourself. Make sure you have installed cargo:
cargo build --lib
For executing the already implemented tests:
For generating the documentation yourself execute:
If you want to test your formatting do the following (take into consideration that our continuous integration script will check the format and any ill-formatted code will be prevented from merging master):
rustup component add rustfmt cargo fmt --all -- --check
Licensed under the General Public License, version 3.0.
Please open an issue or merge request on GitLab to contibute. Code contributions submitted for inclusion in the work by you, as defined in the GPLv3 license, shall be licensed as the above without any additional terms or conditions. Thanks.