StanfordASL/frax

Fast Robot Kinematics and Dynamics in JAX

解决的问题

frax 旨在提供高性能的机器人运动学和动力学计算。它满足了对结合了 Pinocchio 等 C++ 库的速度、Python 的易用性以及 JAX 提供的自动微分和并行化原生支持的库的需求。

工作原理

该库使用 JAX 纯 Python 编写,支持 JIT 编译和自动微分。它可以计算通过 URDF 文件定义的机器人的动力学项(例如质量矩阵、Jacobian 和重力向量)。它支持包括旋转、移动、固定和自由浮动在内的多种关节类型。

为了实现最高性能,建议用户使用 @jax.jit 装饰器封装其控制器逻辑,并在必要时使用双精度。在 CPU 上,它可以实现微秒级的计算时间,而在 GPU/TPU 上,它可以处理每秒超过 1 亿次的计算。

适用对象

需要设计和原型化灵活、高性能控制器(如逆运动学或操作空间控制),而无需手动推导 Jacobian 的机器人研究人员和工程师。

亮点

  • JAX 驱动:原生支持自动微分和并行化。
  • 极速性能:CPU 上的高频控制循环 (25-100 kHz) 和 GPU/TPU 上的海量吞吐量。
  • 机器人专用助手:包含专门的 ManipulatorHumanoid 类。
  • 碰撞规避:支持用于强制执行安全约束的球形碰撞模型。
  • 预加载模型:内置对 Franka Panda 和 Unitree G1 机器人的支持。

相关

  • 项目
  • 项目
  • 项目
  • 项目
  • 项目