pypose
v0.6.9

ディープラーニングはロボット認識で顕著な成功を収めていますが、そのデータ中心の性質は、絶えず変化する環境に一般化することに関して苦しんでいます。対照的に、物理ベースの最適化はより良く一般化されますが、高レベルのセマンティック情報の欠如と手動のパラメトリックチューニングへの依存により、複雑なタスクでは同様ではありません。これらの2つの補完的な世界を活用するために、Pyposeを提示します。ロボット志向のPytorchベースのライブラリで、深い知覚モデルと物理ベースの最適化技術を組み合わせています。 Pyposeの設計目標は、整頓された、よく組織化されたアーキテクチャでユーザーフレンドリーで効率的で、解釈可能にすることです。命令的なスタイルインターフェイスを使用すると、実際のロボットアプリケーションに簡単に統合できます。
SO3 、 SE3 、 Sim3 、 RxSO3so3 、 se3 、 sim3 、 rxso3 LTI 、 LTV 、 NLSEKF 、 UKF 、 PFEPnPLQRIMUPreintegratorGaussNewtonLevenbergMarquardtより多くの機能が欲しいですか?ここで問題を作成して、新しい機能をリクエストします。

バッチされた嘘グループ操作の効率とメモリの比較(テセウスのパフォーマンスを1倍にします)。
効率の比較に関する詳細情報は、Pyposeの論文に届きます。
pip install pyposeubuntu、macos、またはwindowsで、pytorchをインストールしてから実行します。
pip install -r requirements/runtime.txtgit clone https://github.com/pypose/pypose.git
cd pypose && python setup.py developpytest上記のインストールが正しいことを確認してください。
Convinting.mdにアクセスしてください
> >> import torch , pypose as pp
> >> # A random so(3) LieTensor
>> > r = pp . randn_so3 ( 2 , requires_grad = True )
so3Type LieTensor :
tensor ([[ 0.1606 , 0.0232 , - 1.5516 ],
[ - 0.0807 , - 0.7184 , - 0.1102 ]], requires_grad = True )
> >> R = r . Exp () # Equivalent to: R = pp.Exp(r)
SO3Type LieTensor :
tensor ([[ 0.0724 , 0.0104 , - 0.6995 , 0.7109 ],
[ - 0.0395 , - 0.3513 , - 0.0539 , 0.9339 ]], grad_fn = < AliasBackward0 > )
>> > p = R @ torch . randn ( 3 ) # Rotate random point
tensor ([[ 0.8045 , - 0.8555 , 0.5260 ],
[ 0.3502 , 0.8337 , 0.9154 ]], grad_fn = < ViewBackward0 > )
>> > p . sum (). backward () # Compute gradient
>> > r . grad # Print gradient
tensor ([[ - 0.7920 , - 0.9510 , 1.7110 ],
[ - 0.2659 , 0.5709 , - 0.3855 ]])schedulerの2つの使用オプションが提供されており、それぞれが独立して動作できます。 > >> from torch import nn
> >> import torch , pypose as pp
> >> from pypose . optim import LM
> >> from pypose . optim . strategy import Constant
> >> from pypose . optim . scheduler import StopOnPlateau
> >> class InvNet ( nn . Module ):
def __init__ ( self , * dim ):
super (). __init__ ()
init = pp . randn_SE3 ( * dim )
self . pose = pp . Parameter ( init )
def forward ( self , input ):
error = ( self . pose @ input ). Log ()
return error . tensor ()
> >> device = torch . device ( "cuda" )
> >> input = pp . randn_SE3 ( 2 , 2 , device = device )
> >> invnet = InvNet ( 2 , 2 ). to ( device )
> >> strategy = Constant ( damping = 1e-4 )
> >> optimizer = LM ( invnet , strategy = strategy )
> >> scheduler = StopOnPlateau ( optimizer , steps = 10 , patience = 3 , decreasing = 1e-3 , verbose = True )
> >> # 1st option, full optimization
>> > scheduler . optimize ( input = input )
> >> # 2nd option, step optimization
>> > while scheduler . continual ():
loss = optimizer . step ( input )
scheduler . step ( loss )
> >> # Note: remove one of the above options for usage!より多くの使用については、ドキュメントを参照してください。その他のアプリケーションについては、例を参照してください。
Pyposeを使用する場合は、以下の論文を引用してください。ここからダウンロードすることもできます。
@inproceedings { wang2023pypose ,
title = { {PyPose}: A Library for Robot Learning with Physics-based Optimization } ,
author = { Wang, Chen and Gao, Dasong and Xu, Kuan and Geng, Junyi and Hu, Yaoyu and Qiu, Yuheng and Li, Bowen and Yang, Fan and Moon, Brady and Pandey, Abhinav and Aryan and Xu, Jiahe and Wu, Tianhao and He, Haonan and Huang, Daning and Ren, Zhongqiang and Zhao, Shibo and Fu, Taimeng and Reddy, Pranay and Lin, Xiao and Wang, Wenshan and Shi, Jingnan and Talak, Rajat and Cao, Kun and Du, Yi and Wang, Han and Yu, Huai and Wang, Shanzhao and Chen, Siyu and Kashyap, Ananth and Bandaru, Rohan and Dantu, Karthik and Wu, Jiajun and Xie, Lihua and Carlone, Luca and Hutter, Marco and Scherer, Sebastian } ,
booktitle = { IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR) } ,
year = { 2023 }
}Pyposeを説明するその他の論文:
@inproceedings { zhan2023pypose ,
title = { {PyPose} v0.6: The Imperative Programming Interface for Robotics } ,
author = { Zitong Zhan and Xiangfu Li and Qihang Li and Haonan He and Abhinav Pandey and Haitao Xiao and Yangmengfei Xu and Xiangyu Chen and Kuan Xu and Kun Cao and Zhipeng Zhao and Zihan Wang and Huan Xu and Zihang Fang and Yutian Chen and Wentao Wang and Xu Fang and Yi Du and Tianhao Wu and Xiao Lin and Yuheng Qiu and Fan Yang and Jingnan Shi and Shaoshu Su and Yiren Lu and Taimeng Fu and Karthik Dantu and Jiajun Wu and Lihua Xie and Marco Hutter and Luca Carlone and Sebastian Scherer and Daning Huang and Yaoyu Hu and Junyi Geng and Chen Wang } ,
year = { 2023 } ,
booktitle = { IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS) Workshop } ,
}