9 个版本

0.3.2 2021年11月20日
0.3.1 2020年11月8日
0.3.0 2020年9月8日
0.2.4 2020年9月7日
0.1.0 2019年6月21日

#686 in 算法

41 每月下载次数

GPL-3.0 许可证

145KB
3K SLoC

ARCOS KDL

pipeline status crates.io version badge Documentation

我们实现的一个非常简单的运动学和动力学库。我们在实验室使用 orocos-KDL,但发现拥有自己的库更适合我们的研究兴趣,因此我们创建了 arcos-kdl(尽可能与 orocos-kdl 相似)。

功能

  • 正向位置链运动学
  • 正向微分链运动学
  • 逆向位置链运动学
  • 逆向微分链运动学
  • 正向链动力学
  • 逆向链动力学
  • 正向树运动学

目前 arcos-kdl 能够计算任意长运动链的正向运动学(位置和微分)。它也能够计算任意长链的逆向微分运动学。

对于逆向运动学,我们使用 orocos-kdl 命名的算法,称为加权阻尼最小二乘法。这个算法最重要的方面是可以在任务空间和关节空间定义权重矩阵。这个权重表示求解器每个(关节/轴)对解决方案的重要性。因此,在任务空间中,算法将优先减少权重较高的轴上的误差。在关节空间中,算法将减少权重较低的关节的运动。当关节接近极限或奇点时,这非常有用;可以通过降低其权重,使算法更多地使用没有问题的关节。

有关此算法的更多信息,请参阅以下论文

  • A. Ben Israel & T.N.E. Greville. 广义逆:理论与应用,第二版。Springer,2003。ISBN 0-387-00293-6。

  • K. L. Doty, C. Melchiorri & C. Boniveto. 将广义逆理论应用于机器人。国际机器人研究杂志,第 12 卷,第 1 期,第 1-19 页,1993 年 2 月。

ARCOS-KDL 支持

安装

执行

cargo install arcos-kdl

构建

如果您不想使用官方包,您可以自己构建它。确保您已经安装了 cargo

cargo build --lib

测试

执行已实现的测试

cargo test

基准测试

cargo bench -- --noplot

文档

主文档可以在 这里 找到。如果您正在寻找稳定的 API 文档,它可以在 这里 找到。

要自己生成文档,请执行以下操作:

cargo doc

格式化

如果您想测试格式,请执行以下操作(请注意,我们的持续集成脚本将检查格式,任何格式不正确的代码将被阻止合并到master分支)

rustup component add rustfmt
cargo fmt --all -- --check

许可证

本作品采用通用公共许可证,版本3.0许可。

贡献

请打开GitLab上的问题或合并请求来贡献。根据GPLv3许可证定义,您提交的代码贡献将按照上述方式许可,不附加任何额外的条款或条件。感谢。

依赖项

~4.5MB
~91K SLoC