UM-ARM-Lab/pytorch_kinematics

Robot kinematics implemented in pytorch

解决的问题

PyTorch Robot Kinematics 为机器人运动学计算提供了一个高性能、可微的框架。它解决了以可并行化且与 PyTorch 的 autograd 系统兼容的方式执行正向运动学 (FK)、Jacobian 计算和逆运动学 (IK) 的问题,从而允许将这些操作直接集成到机器学习流水线中。

工作原理

该库从 URDF、SDF 和 MJCF 等标准格式加载机器人描述。它使用 PyTorch 张量实现运动学运算,从而能够在 CPU 或 GPU 上同时对多个机器人配置进行批处理。

关键技术实现包括:

  • 解析几何 Jacobian (Analytical Geometric Jacobian):用于 FK 的反向传播,与标准 autograd 相比,可将梯度计算速度提高约 9 倍。
  • 阻尼最小二乘法 (Damped Least Squares):用于逆运动学的一种迭代方法,用于避免在奇异点附近发生振荡。
  • torch.compile 支持:该库针对 PyTorch 2.0+ 进行了优化,允许将 FK 和 Jacobian 内核编译为优化后的图,从而实现显著加速。

适用对象

专为机器人研究人员和工程师设计,他们需要为轨迹优化、机器人学习或碰撞检测(通过与 pytorch-volumetric 集成)执行快速、可微的运动学计算。

亮点

  • 多格式支持:从 URDF、SDF 和 MJCF 文件加载机器人描述。
  • 并行执行:批量处理关节值以计算变换和 Jacobian,速度比串行循环快几个数量级。
  • 可微性:与 PyTorch autograd 完全兼容,用于基于梯度的优化。
  • 优化的性能:利用 torch.compile 在 FK 和 IK 循环中实现显著加速。
  • 独立 IK:提供一个不依赖于 ROS 的 IK 求解器。

相关

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