StanfordASL/frax
Fast Robot Kinematics and Dynamics in JAX
解决的问题
frax 旨在提供纯 Python 编写的高性能机器人运动学与动力学计算。它解决了对一个既能结合像 Pinocchio 这类 C++ 工具的速度,又能兼具 Python 易用性,并透过 JAX 进行自动微分与平行化处理的库的需求。
运作原理
该库基于 JAX 构建,使其能够利用 JIT 编译与自动微分。它可以计算通过 URDF 文件定义的机器人的动力学项(如质量矩阵、雅可比矩阵与重力向量)。它通过 Manipulator、Humanoid 与 Quadruped 等专用类支持各种机器人外型,并使用 MuJoCo 的四元数惯例处理自由浮动基座。
目标客群
需要设计快速、可微分机器人控制器(例如逆运动学、操作空间控制)的机器人研究人员与工程师,以及希望通过自动微分避免手动推导雅可比矩阵的使用者。
特色亮点
- 高性能:在 CPU 上实现微秒级的计算时间,在 GPU/TPU 上每秒可进行超过 1 亿次计算。
- JAX 驱动:与 JAX 的 JIT 编译与自动微分完全兼容。
- 内置机器人模型:预载了 Franka Panda、Kuka iiwa、Unitree G1 与 Unitree A2 的模型。
- 球体化碰撞模型:包含碰撞避免方法,前提是定义了球体化碰撞模型。
- 灵活的控制器设计:利用运动学与动力学的简单函数,轻松实现约束(例如奇点与自碰撞避免)的原型设计。
相关
- 项目
- 项目
- 项目
- 项目
- 项目