Repolode
StanfordASL

StanfordASL/frax

基于 JAX 的纯 Python 机器人运动学与动力学库,支持 JIT 编译与自动微分,用于快速设计控制器。

Star
688
Fork
47
未关闭 Issue
0
最近提交
3天前

这是什么?

frax 是一个基于 JAX 的机器人运动学与动力学库,使用 Python 编写。它可以计算质量矩阵、关节、连杆和坐标系之间的变换、雅可比矩阵、重力项以及科氏力等常用量,这些都是逆运动学和逆动力学控制器的基础模块。

由于计算以 JAX 函数的形式实现,因此可以进行 JIT 编译、在 GPU 或 TPU 上批量计算,并支持自动微分。开发者无需手动推导雅可比矩阵,就能把约束或代价函数直接写成机器人状态的普通函数。库中内置了 Franka Panda、Kuka iiwa、Unitree G1 和 Unitree A2 等机器人模型,也可以从 URDF 文件加载自定义机器人。

此外,frax.ik 模块提供逆运动学和动作重定向功能,示例涵盖微分逆运动学、操作空间控制以及基于控制屏障函数的安全约束。

核心功能

  • 01基于 URDF 模型计算质量矩阵、雅可比矩阵、重力项和科氏力等。
  • 02通过 JAX 实现 JIT 编译,并对运动学与动力学做自动微分。
  • 03支持在 GPU 和 TPU 上批量计算,可选双精度。
  • 04内置 Franka Panda、Kuka iiwa、Unitree G1 和 A2 等机器人模型。
  • 05提供 frax.ik 模块,用于逆运动学和人形机器人动作重定向。

适用场景

  • 用 Python 快速原型化微分逆运动学或操作空间控制器。
  • 编写依赖机器人运动学的控制屏障函数或其他约束。
  • 在加速器上批量计算动力学,用于基于采样或学习的控制。
  • 将人体动作数据重定向到人形机器人模型上。

快速上手

  1. 1

    从 PyPI 安装带 IK 功能的 frax

    pip install "frax[ik]"
  2. 2

    在 Python 中计算内置机器人模型的质量矩阵

使用前须知

  • 依赖 JAX;性能建议为快速 CPU 动力学使用特定的较旧 JAX 版本。
  • 使用碰撞检测功能需要先为机器人定义球体化碰撞模型。

收录于专题

标签

#robotics#kinematics#dynamics#jax#autodiff#inverse-kinematics#control

常见问题

frax 是什么?
基于 JAX 的纯 Python 机器人运动学与动力学库,支持 JIT 编译与自动微分,用于快速设计控制器。 frax 是一个基于 JAX 的机器人运动学与动力学库,使用 Python 编写。它可以计算质量矩阵、关节、连杆和坐标系之间的变换、雅可比矩阵、重力项以及科氏力等常用量,这些都是逆运动学和逆动力学控制器的基础模块。
frax 可以免费使用吗?用的什么许可证?
frax 以 MIT 许可证开源。用于商业产品前,请先确认许可证条款。
frax 还在维护吗?
活跃维护中。frax 最近一次提交是在 2026年11月4日。
frax 适合用来做什么?
用 Python 快速原型化微分逆运动学或操作空间控制器。 编写依赖机器人运动学的控制屏障函数或其他约束。 在加速器上批量计算动力学,用于基于采样或学习的控制。 将人体动作数据重定向到人形机器人模型上。
frax 怎么安装和运行?
从 PyPI 安装带 IK 功能的 frax: pip install "frax[ik]" 在 Python 中计算内置机器人模型的质量矩阵
在哪里获取 frax?
源代码和安装说明在 GitHub 上:https://github.com/StanfordASL/frax

概要由 AI 根据项目 README 生成;GitHub 数据每日更新。

相关项目