jaxlie
jaxlie
是一个库,包含常用于刚体变换的李群实现,主要面向用JAX编写的计算机视觉和机器人应用。该库受到C++库Sophus的启发。
我们将李群实现为高级(数据)类:
群 | 描述 | 参数化 |
---|---|---|
jaxlie.SO2 | 2D旋转。 | (实部,虚部):单位复数(∈ S1) |
jaxlie.SE2 | 2D刚体变换。 | (实部,虚部,x,y):单位复数和平移 |
jaxlie.SO3 | 3D旋转。 | (qw, qx, qy, qz):wxyz四元数(∈ S3) |
jaxlie.SE3 | 3D刚体变换。 | (qw, qx, qy, qz, x, y, z):wxyz四元数和平移 |
每个群支持:
- 支持前向和反向模式自动微分的**
exp()
、log()
、adjoint()
、apply()
、multiply()
、inverse()
、identity()
、from_matrix()
和as_matrix()
**操作。(参见./examples/se3_example.py) - 流形优化的辅助函数(参见./examples/se3_optimization.py,
jaxlie.manifold.*
)。 - 与标准JAX函数变换兼容。(参见./examples/vmap_example.py)
- 支持前导轴的广播。
- 作为pytree节点的(解)展平。
- 使用flax进行序列化。
我们还实现了各种常见的实用工具,如均匀随机采样(sample_uniform()
)和从/到欧拉角的转换(在SO3
类中)。
安装(Python >=3.7)
# Python 3.6版本也存在,但不再更新。
pip install jaxlie
实际应用
- jaxfg将
jaxlie
应用于具有块稀疏结构的非线性最小二乘问题。(用于姿态图优化、束调整等) - tensorf-jax是使用
jaxlie
的张量辐射场(Chen等人,ECCV 2022)的非官方实现。
其他
jaxlie
最初是为我们的IROS 2021论文(链接)编写的。如果它对您有用,欢迎引用:
@inproceedings{yi2021iros,
author={Brent Yi and Michelle Lee and Alina Kloss and Roberto Mart\'in-Mart\'in and Jeannette Bohg},
title = {Differentiable Factor Graph Optimization for Learning Smoothers},
year = 2021,
BOOKTITLE = {2021 IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS)}
}