跳转到主要内容

使用NumPy数组执行四元数运算

项目描述

ReadTheDocs CircleCI Codecov PyPI Codacy Zenodo JOSS

欢迎使用rowan文档,rowan是一个用于处理四元数的软件包!四元数是一个具有各种有趣性质的数系,最初是为经典力学开发的。虽然它们后来在很大程度上被矢量数学所取代,但它们已经成为表示三维旋转的标准方法。现在,四元数在计算机图形学和姿态控制等各个领域都广泛用于此目的。

该软件包完全基于NumPy构建,并使用NumPy数组表示四元数,这意味着所有函数都支持任意高维度的四元数数组。四元数编码为形状为(…, 4)的数组,其中数组的最后一个维度(a, b, c, d)代表四元数a + bi + cj + dk。此软件包提供标准代数运算的四元数工具以及一些额外的工具,例如测量四元数之间的距离、在它们之间进行插值以及执行基本的点云映射。rowan软件包的一个重点是处理单位四元数,这是表示3D旋转的一种流行方式。为了提供一个统一的框架来处理3D中的各种旋转形式,rowan允许在这些形式之间轻松转换。

rowan的核心功能包括(但不限于)

  • 代数(乘法、指数等)。

  • 四元数的导数和积分。

  • 旋转和反射操作,以及到和从矩阵、轴角等的转换。

  • 四元数的各种距离度量。

  • 基本点集配准,包括Procrustes问题的解和迭代最近点算法。

  • 四元数插值(slerp、squad)。

入门指南

安装

推荐使用pipconda安装rowan。要从PyPI安装软件包,请执行

$ pip install rowan --user

要从conda安装软件包,首先添加conda-forge通道,然后安装rowan

$ conda config --add channels conda-forge
$ conda install rowan

如果您愿意,也可以通过克隆存储库并运行设置脚本安装rowan

$ git clone https://github.com/glotzerlab/rowan.git
$ cd rowan
$ python setup.py install --user

使用rowan的最低要求是

  • Python >= 3.6

  • NumPy >= 1.15

快速入门

此库可以通过实例化适当的NumPy数组并将它们传递到所需的函数中来与四元数一起工作。例如

import rowan
import numpy as np
one = np.array([10, 0, 0, 0])
one_unit = rowan.normalize(one)
assert(np.all(one_unit == np.array([1, 0, 0, 0])))
if not np.all(one_unit == rowan.multiply(one_unit, one_unit)):
    raise RuntimeError("Multiplication failed!")

one_vec = np.array([1, 0, 0])
rotated_vector = rowan.rotate(one_unit, one_vec)

mat = np.eye(3)
quat_rotate = rowan.from_matrix(mat)
alpha, beta, gamma = rowan.to_euler(quat_rotate)
quat_rotate_returned = rowan.from_euler(alpha, beta, gamma)
identity = rowan.to_matrix(quat_rotate_returned)

运行测试

该软件包目前已在Unix-like系统上对Python >= 3.6进行了测试。使用CircleCI在这些Python版本上使用NumPy版本1.15及以上版本进行持续集成测试。

要从存储库的根目录运行软件包的单元测试,请执行以下行

python -m unittest discover tests

要检查测试覆盖率,请确保已安装覆盖率模块

pip install coverage

然后使用覆盖率模块运行软件包的单元测试

coverage run -m unittest discover tests

运行基准测试

软件包的基准测试包含在存储库根目录中的benchmarks文件夹中的Jupyter笔记本中。如果您没有或不想使用笔记本格式,还包括一个等效的Benchmarks.py脚本。这些基准测试将rowan与两个替代软件包进行比较,因此如果您想查看这些比较,则需要安装pyquaternionnumpy_quaternion

构建文档

您还可以通过克隆存储库从源代码构建此文档。文档是用reStructuredText编写的,并使用Sphinx编译的。要从源代码构建,首先安装Sphinx

pip install sphinx sphinx_rtd_theme

然后您可以使用Sphinx在rowan根目录中运行以下命令来创建实际的文档(PDF或HTML形式)

cd doc
make html # For html output
make latexpdf # For a LaTeX compiled PDF file
open build/html/index.html

支持和贡献

此软件包托管在GitHub上。请将您发现的任何错误或问题报告到问题跟踪器

所有对Rowan的贡献都欢迎通过pull requests(拉取请求)方式提交!请参阅开发指南获取有关新代码要求的更多信息。

项目详情


下载文件

下载适合您平台的文件。如果您不确定选择哪个,请了解有关安装包的更多信息。

源代码分发

rowan-1.3.0.post1.tar.gz (31.4 kB 查看哈希)

上传时间 源代码

构建分发

rowan-1.3.0.post1-py2.py3-none-any.whl (28.1 kB 查看哈希)

上传时间 Python 2 Python 3

支持者

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误日志 StatusPage StatusPage 状态页面