PyPose
結合深度學習與李群最佳化、用於可微分機器人學的 PyTorch 函式庫
授權條款
Apache-2.0
概述
PyPose 是一個以 PyTorch 為基礎的函式庫,為機器人學銜接深度學習與以物理為基礎的最佳化。它提供可微分的李群運算、卡爾曼濾波器(擴展卡爾曼濾波器(EKF)、UKF)、位姿圖最佳化、二階最佳化器(Gauss-Newton、Levenberg-Marquardt)、慣性量測單元(IMU)預積分與 LQR 控制,全部與 PyTorch 的 autograd 整合,可在整個機器人軟體堆疊中進行端對端的梯度計算。
PyPose 在 PyTorch 中提供可微分的李群運算、狀態估測濾波器與二階最佳化器,為機器人學銜接深度學習與以物理為基礎的最佳化。它讓以梯度為基礎的端對端學習能貫穿整個機器人感知與控制流程。
為何重要
PyPose 讓經典演算法變得可微分並與現代深度學習相容,填補了機器人軟體中的一個關鍵缺口。它讓研究人員能在 SLAM、控制與狀態估測中,結合以物理為基礎之方法的泛化能力與神經網路的彈性。
解決的問題
用於 SLAM、控制與狀態估測的傳統機器人演算法不可微分,因此與深度學習訓練流程不相容。PyPose 將這些演算法包裝成可微分的 PyTorch 運算,讓以梯度為基礎的學習能貫穿整個機器人軟體堆疊。
重點
- PyTorch 中可微分的李群運算(SO3、SE3、Sim3)
- 狀態估測:擴展卡爾曼濾波器(EKF)、UKF、粒子濾波器、慣性量測單元(IMU)預積分
- 二階最佳化器:Gauss-Newton、Levenberg-Marquardt
- 可透過 pip 安裝,並完整整合 PyTorch autograd
適用對象
- 處於深度學習與經典方法交會處的機器人研究人員
- 想要可微分流程的 SLAM 與視覺里程計研究人員
- 需要在神經網路中加入物理先驗的機器人學習實務工作者
限制
- 需要同時熟悉 PyTorch 與李群理論
- 在超大規模 SLAM 上的效能可能比不上專用的 C++ 實作
- 函式庫仍在成熟中:部分進階功能可能尚未完備