นี่เป็นการใช้งานขั้นต่ำของเอกสาร SG-Bot: Object Rearrangement via Coarse-to-Fine Robotic Imagination on Scene Graphs (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
ได้รับการฝึกฝนโดยใช้รูปทรงเต็มรูปแบบภายใต้พิกัด Canonical ในขณะที่ 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
รับคุณสมบัติจุดสำหรับการฝึกอบรม Graph-to-3D: รัน 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
ออกเป็น train (90%) และทดสอบ (10%) ชื่อไฟล์จะถูกจัดเก็บเป็น AtlasNet2/partial_pc_data_splits.json
AtlasNet2
: ขั้นตอนเหมือนกับ AtlasNet
เราสร้างเครื่องสร้างฉากโดยใช้สถาปัตยกรรม Graph-to-3D ซึ่งเป็นสถาปัตยกรรม GCN-VAE แตกต่างจาก Graph-to-3D ดั้งเดิม เราใช้ประโยชน์จากกราฟฉากที่รับรู้ถึงรูปร่างเพื่อทำให้รูปร่างที่สร้างขึ้นสอดคล้องกับรูปร่างที่สังเกตได้ในฉากเริ่มต้น เรามีโมเดลที่ได้รับการฝึกอบรมอยู่ที่นี่: trained graph_to_3d
หากคุณต้องการฝึกเครือข่ายใหม่ --batchSize
, --nepoch
, --exp
จะต้องตั้งค่าด้วยตัวเลขที่เหมาะสม
cd graphto3d
python scripts/train_vaegan.py
รายละเอียดเพิ่มเติมสามารถพบได้ในที่เก็บดั้งเดิม
มีสองโหมด - robot
และ oracle
โหมด robot
รองรับแขนหุ่นยนต์ที่ควบคุมวัตถุตามจินตนาการ โหมดนี้จำเป็นต้องมีเครือข่ายทำนายท่าทางโลภ ซึ่งเราใช้ Contact-GraspNet สิ่งนี้จำเป็นต้องดาวน์โหลดเทนเซอร์โฟลว์
pip install tensorflow - estimator == 2.7 .0 tensorflow - gpu == 2.7 .0
สามารถดาวน์โหลดจุดตรวจได้จากแหล่งเก็บข้อมูลดั้งเดิมหรือที่นี่ หลังจากดาวน์โหลดจุดตรวจแล้ว ให้ย้ายไปที่ ./contact_graspnet
contact_graspnet
โหมด oracle
ไม่ต้องการเอเจนต์ แต่เพียงวางวัตถุในท่าทางที่สัมพันธ์กันโดยตรง เพื่อให้สคริปต์ทำงานได้ คุณสามารถแก้ไข mode
ตัวแปรภายในแล้วรัน:
python sgbot_pybullet.py
ผลลัพธ์ในกระดาษอยู่ภายใต้โหมด oracle
เราใช้กราฟฉากที่กำหนดไว้ล่วงหน้าเป็นเป้าหมายโดยตรง
เราจัดเตรียม Rosbag ที่บันทึกไว้เพื่อสาธิตประสิทธิภาพ หากต้องการดำเนินการทดลองใช้นี้ ต้องดาวน์โหลดจุดตรวจ MaskRCNN จากที่นี่ จำเป็นต้องติดตั้งข้อกำหนดเพิ่มเติม