يعد هذا تطبيقًا بسيطًا للورقة SG-Bot: إعادة ترتيب الكائنات عبر الخيال الآلي الخشن إلى الدقيق على الرسوم البيانية للمشهد (ICRA 2024)، arxiv .
conda env create - f environment . yml
cd extension
python setup . py install
الرجاء أيضًا تثبيت Pytorch. قمنا باختباره باستخدام Pytorch 1.12.1 مع CUDA 11.6.
يرجى الرجوع إلى هذه الصفحة لتنزيل البيانات المستخدمة في الورقة ومزيد من المعلومات.
قمنا بإعداد اثنين من أجهزة التشفير التلقائي للأشكال تسمى AtlasNet
و AtlastNet2
. يتم تدريب AtlasNet
على الأشكال الكاملة تحت الإحداثيات الأساسية، بينما يتم تدريب AtlasNet2
تحت إطار الكاميرا، والذي يوفر الشكل المسبق للرسم البياني لمشهد الهدف لتوجيه الخيال. كما نقدم أيضًا نماذج مدربة تم تنزيلها هنا: AtlasNet المدربة وAtlasNet2 المدربة.
لتوليد الأشكال
AtlasNet
. تحتاج إلى ضبط --batchSize
, --nepoch
لجعل التدريب الأمثل. cd AtlasNet
python training/train_AE_AtlasNet.py
سحب نقاط الاستدلال [اختياري]: قم بتشغيل AtlasNet/inference/run_AE_AtlasNet.py
. ستقوم النتائج بتخزين النقاط التي تم إنشاؤها ضمن AtlasNet/log/atlasnet_separate_cultery/network
.
احصل على ميزة النقطة لتدريب الرسم البياني إلى ثلاثي الأبعاد: قم بتشغيل AtlasNet/inference/create_features_gt.py
، ويتم تخزين الميزات في objs_features_gt_atlasnet_separate_cultery.json
. المفاتيح الموجودة في ملف json هي أسماء الكائنات، على سبيل المثال، "cup_1"، والقيم هي الميزات الكامنة (128 بُعدًا).
لإنتاج مقدمات الشكل
AtlasNet2
. يمكن تحميل الملفات من هنا: Partial_pcs. يمكنك أيضًا تعديل مسار الملف وتشغيل AtlasNet2/auxiliary/generate_partial_pc_for_object.py
. يتم تخزين الإخراج النهائي كملفات مخللة ضمن AtlasNet2/partial_pc_data
.generate_train_sample
في AtlasNet2/auxiliary/generate_partial_pc_for_object.py
بتقسيم AtlasNet2/partial_pc_data
إلى تدريب (90%) واختبار (10%). يتم تخزين أسماء الملفات كـ AtlasNet2/partial_pc_data_splits.json
AtlasNet2
: الإجراء هو نفسه AtlasNet
.قمنا ببناء مولد المشهد استنادًا إلى Graph-to-3D، وهي بنية GCN-VAE. يختلف الرسم البياني إلى ثلاثي الأبعاد الأصلي عن الرسم البياني للمشهد الذي يراعي الشكل لجعل الأشكال التي تم إنشاؤها تتماشى مع الأشكال التي تمت ملاحظتها في المشهد الأولي. نحن نقدم النموذج المدرب المتاح هنا: graph_to_3d المدربين.
إذا كنت تريد إعادة تدريب الشبكة، فيجب ضبط --batchSize
و --nepoch
و --exp
بالأرقام الصحيحة.
cd graphto3d
python scripts/train_vaegan.py
يمكن العثور على مزيد من التفاصيل في المستودع الأصلي.
هناك وضعان - robot
oracle
. يدعم وضع robot
ذراع الروبوت الذي يتلاعب بالأشياء وفقًا للخيال. يحتاج هذا الوضع إلى شبكة تنبؤ بوضعيات الإمساك، والتي نستخدمها Contact-GraspNet. هذا يحتاج إلى تنزيل Tensorflow.
pip install tensorflow - estimator == 2.7 .0 tensorflow - gpu == 2.7 .0
يمكن تنزيل نقاط التفتيش من المستودع الأصلي أو هنا. بعد تنزيل نقاط التفتيش، انقلها إلى ./contact_graspnet
.
لا يحتاج وضع oracle
إلى وكيل، ولكن فقط يضع الكائنات مباشرة في أوضاع نسبية. لجعل البرنامج النصي يعمل، يمكن تعديل mode
المتغير بالداخل، ثم تشغيله:
python sgbot_pybullet.py
النتائج في الورقة تحت وضع oracle
. نستخدم مباشرة الرسم البياني للمشهد المحدد مسبقًا كهدف.
نحن نقدم rosbag مسجلة لتوضيح الأداء. لإجراء هذه التجربة، يجب تنزيل نقطة تفتيش MaskRCNN من هنا. تحتاج إلى تثبيت متطلبات إضافية.