Ini adalah implementasi minimal dari makalah SG-Bot: Penataan Ulang Objek melalui Imajinasi Robot Kasar-ke-Halus pada Grafik Pemandangan (ICRA 2024), arxiv .
conda env create - f environment . yml
cd extension
python setup . py install
Silakan instal juga Pytorch. Kami mengujinya dengan Pytorch 1.12.1 dengan CUDA 11.6.
Silakan merujuk ke halaman ini untuk mengunduh data yang digunakan dalam makalah dan informasi lebih lanjut.
Kami menyiapkan dua autoencoder bentuk yang disebut AtlasNet
dan AtlastNet2
. AtlasNet
dilatih dengan bentuk penuh di bawah koordinat kanonik, sementara AtlasNet2
dilatih di bawah bingkai kamera, yang memberikan bentuk sebelum grafik adegan sasaran untuk memandu imajinasi. Kami juga menyediakan model terlatih yang diunduh di sini: AtlasNet terlatih dan AtlasNet2 terlatih.
Untuk menghasilkan bentuk
AtlasNet
. Perlu menyesuaikan --batchSize
, --nepoch
agar pelatihan menjadi optimal. cd AtlasNet
python training/train_AE_AtlasNet.py
Awan titik inferensi [opsional]: jalankan AtlasNet/inference/run_AE_AtlasNet.py
. Hasilnya akan menyimpan poin yang dihasilkan di bawah AtlasNet/log/atlasnet_separate_cultery/network
.
Dapatkan fitur poin untuk pelatihan Graph-to-3D: jalankan AtlasNet/inference/create_features_gt.py
, dan fitur tersebut disimpan di objs_features_gt_atlasnet_separate_cultery.json
. Kunci dalam file json adalah nama objek, misalnya "cup_1", dan nilainya adalah fitur laten (128 dimensi).
Untuk menghasilkan bentuk prior
AtlasNet2
. File dapat diunduh dari sini: parsial_pcs. Anda juga dapat mengubah jalur file dan menjalankan AtlasNet2/auxiliary/generate_partial_pc_for_object.py
. Hasil akhir disimpan sebagai file acar di bawah AtlasNet2/partial_pc_data
.generate_train_sample
di AtlasNet2/auxiliary/generate_partial_pc_for_object.py
membagi AtlasNet2/partial_pc_data
menjadi train (90%) dan test (10%). Nama file disimpan sebagai AtlasNet2/partial_pc_data_splits.json
AtlasNet2
: Prosedurnya sama dengan AtlasNet
.Kami membuat generator adegan berdasarkan Graph-to-3D, arsitektur GCN-VAE. Berbeda dari Graph-to-3D asli, kami memanfaatkan grafik pemandangan yang sadar bentuk untuk membuat bentuk yang dihasilkan selaras dengan bentuk yang diamati di pemandangan awal. Kami menyediakan model terlatih yang tersedia di sini: graph_to_3d terlatih.
Jika Anda ingin melatih ulang jaringan, --batchSize
, --nepoch
, --exp
perlu disetel dengan angka yang tepat.
cd graphto3d
python scripts/train_vaegan.py
Detail lebih lanjut dapat ditemukan di repositori asli.
Ada dua mode-- robot
dan oracle
. Mode robot
mendukung lengan robot yang memanipulasi objek sesuai imajinasi. Mode ini memerlukan jaringan prediksi pose menggenggam, yang kami gunakan Contact-GraspNet. Ini perlu mengunduh tensorflow.
pip install tensorflow - estimator == 2.7 .0 tensorflow - gpu == 2.7 .0
Pos pemeriksaan dapat diunduh dari repositori asli atau di sini. Setelah mengunduh pos pemeriksaan, pindahkan ke ./contact_graspnet
.
Mode oracle
tidak memerlukan agen, tetapi langsung menempatkan objek dalam pose relatif. Agar skrip berfungsi, seseorang dapat memodifikasi mode
variabel di dalamnya, lalu menjalankan:
python sgbot_pybullet.py
Hasil di makalah berada dalam mode oracle
. Kami langsung menggunakan grafik pemandangan yang telah ditentukan sebelumnya sebagai sasaran.
Kami menyediakan rosbag rekaman untuk mendemonstrasikan kinerjanya. Untuk melakukan uji coba ini, pos pemeriksaan MaskRCNN perlu diunduh dari sini. Persyaratan tambahan perlu dipasang.