
การเรียนรู้อย่างลึกซึ้งมีความสำเร็จอย่างน่าทึ่งในการรับรู้ของหุ่นยนต์ แต่ธรรมชาติของข้อมูลเป็นศูนย์กลางของมันได้รับความทุกข์ทรมานเมื่อพูดถึงสภาพแวดล้อมที่เปลี่ยนแปลงตลอดเวลา ในทางตรงกันข้ามการเพิ่มประสิทธิภาพที่ใช้ฟิสิกส์โดยทั่วไปดีกว่า แต่ก็ไม่ได้ทำงานเช่นกันในงานที่ซับซ้อนเนื่องจากขาดข้อมูลความหมายระดับสูงและการพึ่งพาการปรับพารามิเตอร์ด้วยตนเอง เพื่อใช้ประโยชน์จากโลกทั้งสองนี้เรานำเสนอ Pypose: ห้องสมุด ที่มุ่งเน้นหุ่นยนต์ ที่ใช้ Pytorch ซึ่งรวม โมเดลการรับรู้ลึกเข้า กับ เทคนิคการเพิ่มประสิทธิภาพทางฟิสิกส์ เป้าหมายการออกแบบของเราสำหรับ Pypose คือการทำให้ เป็นมิตรกับผู้ใช้ มีประสิทธิภาพ และ ตีความได้ ด้วยสถาปัตยกรรมที่เป็นระเบียบและมีการจัดระเบียบอย่างดี การใช้ อินเทอร์เฟซสไตล์ที่จำเป็น สามารถรวมเข้ากับ แอพพลิเคชั่นหุ่นยนต์ในโลกแห่งความจริง ได้อย่างง่ายดาย
SO3 , SE3 , Sim3 , RxSO3so3 , se3 , sim3 , rxso3 LTI , LTV , NLSEKF , UKF , PFEPnPLQRIMUPreintegratorGaussNewtonLevenbergMarquardtต้องการคุณสมบัติเพิ่มเติมหรือไม่? สร้างปัญหาที่นี่เพื่อขอคุณสมบัติใหม่

ประสิทธิภาพและการเปรียบเทียบหน่วยความจำของการดำเนินการกลุ่มโกหกแบบแบตช์ (เราใช้ประสิทธิภาพของเธเซอุสเป็น 1 ×)
ข้อมูลเพิ่มเติมเกี่ยวกับการเปรียบเทียบประสิทธิภาพไปที่กระดาษของเราสำหรับ Pypose
pip install pyposeบน Ubuntu, MacOS หรือ Windows ติดตั้ง pytorch จากนั้นเรียกใช้:
pip install -r requirements/runtime.txtgit clone https://github.com/pypose/pypose.git
cd pypose && python setup.py developpytestตรวจสอบให้แน่ใจว่าการติดตั้งข้างต้นถูกต้อง
ไปที่การบริจาค
> >> 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 } ,
}