基于 JAX 的可微分刚体物理引擎,面向机器人控制、形态协同设计与机器人学习。
stack-of-tasks/pinocchio
一个快速的 C++ 库(提供 Python 绑定),用于刚体动力学、运动学及其解析导数计算,主要面向机器人领域。
- Star
- 3,850
- Fork
- 592
- 未关闭 Issue
- 104
- 最近提交
- 22小时前
这是什么?
Pinocchio 是一个用于多关节系统(如机械臂和人形机器人)刚体动力学计算的 C++ 库。它实现了正向与逆向运动学和动力学、质心动力学,以及这些算法的解析导数,可用于基于梯度的优化、控制和学习。库基于 Eigen 进行线性代数运算,使用 coal 做碰撞检测,并可解析 URDF、SDF、MJCF 和 SRDF 等机器人描述格式。
该库为纯头文件的 C++ 模板库,同时提供 Python 接口,可通过 Conda 或 pip 安装。它还支持闭链机构、摩擦接触求解、约束动力学,并可借助 MPFR 进行多精度计算;自动微分可通过 CppAD 和 CasADi 实现。
项目由 Inria 的 Willow 团队开发,Crocoddyl、Aligator、Humanoid Path Planner 等项目均以其为基础。虽然最初面向机器人领域,它也可用于生物力学、计算机图形学和视觉等方向。
核心功能
- 01正向与逆向动力学及其解析导数
- 02质心动力学,以及运动学和动力学回归量计算
- 03闭链机构和摩擦接触求解器
- 04解析 URDF、SDF、MJCF、SRDF 机器人描述文件
- 05提供可通过 Conda 或 pip 安装的 Python 绑定
- 06基于 Eigen 和 coal 的纯头文件 C++ 模板库
适用场景
- 为机器人控制和轨迹优化计算动力学量及其梯度
- 先用 Python 快速验证机器人算法,再迁移到 C++
- 利用运动学和动力学回归量进行系统辨识
- 在刚体动力学内核之上构建运动规划或全身控制工具
快速上手
- 1
通过 conda-forge 使用 Conda 安装 Pinocchio
conda install pinocchio -c conda-forge - 2
或通过 pip 安装 Python 绑定(仅限 Linux)
pip install pin - 3
或运行 Docker 镜像
docker run --rm -it ghcr.io/stack-of-tasks/pinocchio:devel
使用前须知
- pip 包目前仅支持 Linux。
- devel 分支仅包含最新版本,新的拉取请求提交于此,因此可能频繁变动。
收录于专题
标签
常见问题
- pinocchio 是什么?
- 一个快速的 C++ 库(提供 Python 绑定),用于刚体动力学、运动学及其解析导数计算,主要面向机器人领域。 Pinocchio 是一个用于多关节系统(如机械臂和人形机器人)刚体动力学计算的 C++ 库。它实现了正向与逆向运动学和动力学、质心动力学,以及这些算法的解析导数,可用于基于梯度的优化、控制和学习。库基于 Eigen 进行线性代数运算,使用 coal 做碰撞检测,并可解析 URDF、SDF、MJCF 和 SRDF 等机器人描述格式。
- pinocchio 可以免费使用吗?用的什么许可证?
- pinocchio 以 BSD-2-Clause 许可证开源。用于商业产品前,请先确认许可证条款。
- pinocchio 还在维护吗?
- 活跃维护中。pinocchio 最近一次提交是在 2026年11月6日。
- pinocchio 适合用来做什么?
- 为机器人控制和轨迹优化计算动力学量及其梯度 先用 Python 快速验证机器人算法,再迁移到 C++ 利用运动学和动力学回归量进行系统辨识 在刚体动力学内核之上构建运动规划或全身控制工具
- pinocchio 怎么安装和运行?
- 通过 conda-forge 使用 Conda 安装 Pinocchio: conda install pinocchio -c conda-forge 或通过 pip 安装 Python 绑定(仅限 Linux): pip install pin 或运行 Docker 镜像: docker run --rm -it ghcr.io/stack-of-tasks/pinocchio:devel
- 在哪里获取 pinocchio?
- 源代码和安装说明在 GitHub 上:https://github.com/stack-of-tasks/pinocchio
概要由 AI 根据项目 README 生成;GitHub 数据每日更新。
相关项目
让 AI 智能体通过自然语言生成、检查并输出 CAD 三维模型的插件与技能集。
基于 JAX 的纯 Python 机器人运动学与动力学库,支持 JIT 编译与自动微分,用于快速设计控制器。
Bullet Physics SDK,一个用于实时碰撞检测和多物理场仿真的 C++ 库,适用于游戏、VR、机器人和机器学习。
MindSpore 是一个开源深度学习训练与推理框架,适用于移动端、边缘和云端场景,原生支持华为昇腾 AI 处理器。
用 Nim 编写的高性能 N 维张量库,支持 CPU、CUDA 和 OpenCL,面向数值计算与深度学习。