
딥 러닝은 로봇 인식에서 현저한 성공을 거두었지만, 데이터 중심의 특성은 끊임없이 변화하는 환경으로 일반화 할 때 어려움을 겪고 있습니다. 대조적으로, 물리 기반 최적화는 더 잘 일반화되지만, 높은 수준의 의미 정보가 부족하고 수동 파라 메트릭 튜닝에 대한 의존으로 인해 복잡한 작업에서는 잘 수행되지 않습니다. 이 두 가지 보완 세계를 이용하기 위해, 우리는 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위의 설치가 올바른지 확인하십시오.
Contributing.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 에 대한 두 가지 사용 옵션이 제공되며 각각은 독립적으로 작동 할 수 있습니다. > >> 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 } ,
}