用于航天器动力学、制导、导航与控制仿真的 Python/C 天体动力学框架。
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
从 PyPI 安装带 IK 功能的 frax
pip install "frax[ik]" - 2
在 Python 中计算内置机器人模型的质量矩阵
使用前须知
- 依赖 JAX;性能建议为快速 CPU 动力学使用特定的较旧 JAX 版本。
- 使用碰撞检测功能需要先为机器人定义球体化碰撞模型。
收录于专题
标签
常见问题
- 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 数据每日更新。
相关项目
一个快速的 C++ 库(提供 Python 绑定),用于刚体动力学、运动学及其解析导数计算,主要面向机器人领域。
基于 C++17 的物理引擎,提供 Python 绑定,用于机器人与计算动画中关节体的运动学、动力学和接触仿真。
Bullet Physics SDK,一个用于实时碰撞检测和多物理场仿真的 C++ 库,适用于游戏、VR、机器人和机器学习。
基于 PyBullet 的 Gymnasium 环境,用于训练单机与多机四旋翼无人机的强化学习控制策略。
一个基于 Python 的多旋翼无人机仿真器,内置气动模型,用于教学和estimation、规划、控制等研究。