Ravens adalah kumpulan tugas simulasi di PyBullet untuk mempelajari manipulasi robot berbasis visi, dengan penekanan pada pengambilan dan tempat. Ini menampilkan API seperti Gym dengan 10 tugas penataan ulang meja, masing-masing dengan (i) oracle bernaskah yang menyediakan demonstrasi ahli (untuk pembelajaran imitasi), dan (ii) fungsi penghargaan yang memberikan kredit parsial (untuk pembelajaran penguatan).
(a) penyisipan balok : ambil balok merah berbentuk L dan letakkan di dalam perlengkapan berbentuk L.
(b) tempatkan-merah-hijau : ambil balok merah dan letakkan di mangkuk hijau di tengah benda lain.
(c) tower-of-hanoi : memindahkan piringan secara berurutan dari satu menara ke menara lainnya—hanya piringan yang lebih kecil yang dapat berada di atas piringan yang lebih besar.
(d) align-box-corner : ambil kotak berukuran acak dan sejajarkan salah satu sudutnya dengan penanda berbentuk L di atas meja.
(e) tumpukan-blok-piramida : susun 6 balok secara berurutan menjadi piramida 3-2-1 dengan urutan berwarna pelangi.
(f) kotak pembuatan palet : ambil kotak-kotak berukuran tetap yang homogen dan tumpuk dalam lapisan-lapisan yang melintang di atas palet.
(g) peralatan perakitan : mengambil benda-benda yang berbeda dan menyusunnya pada papan yang ditandai dengan siluet yang sesuai.
(h) kotak pengepakan : ambil kotak-kotak dengan ukuran acak dan masukkan ke dalam wadah rapat.
(i) tali manipulasi : menyusun kembali tali yang dapat dideformasi sedemikian rupa sehingga menghubungkan kedua titik ujung persegi bersisi 3.
(j) tumpukan sapuan : mendorong tumpukan benda-benda kecil ke dalam zona sasaran sasaran yang ditandai di atas meja.
Beberapa tugas memerlukan generalisasi ke objek yang tidak terlihat (d,g,h), atau pengurutan multi-langkah dengan umpan balik loop tertutup (c,e,f,h,i,j).
Tim: repositori ini dikembangkan dan dikelola oleh Andy Zeng, Pete Florence, Daniel Seita, Jonathan Tompson, dan Ayzaan Wahid. Ini adalah tempat penyimpanan referensi untuk makalah ini:
Situs Web Proyek • PDF • Konferensi Pembelajaran Robot (CoRL) 2020
Andy Zeng, Pete Florence, Jonathan Tompson, Stefan Welker, Jonathan Chien, Maria Attarian, Travis Armstrong,
Ivan Krasin, Dan Duong, Vikas Sindhwani, Johnny Lee
Abstrak. Manipulasi robotik dapat dirumuskan sebagai menginduksi serangkaian perpindahan spasial: dimana ruang yang dipindahkan dapat mencakup suatu objek, bagian dari suatu objek, atau efektor akhir. Dalam karya ini, kami mengusulkan Transporter Network, sebuah arsitektur model sederhana yang mengatur ulang fitur-fitur mendalam untuk menyimpulkan perpindahan spasial dari masukan visual—yang dapat membuat parameter tindakan robot. Ini tidak membuat asumsi objektivitas (misalnya pose, model, atau titik kunci kanonik), ini mengeksploitasi simetri spasial, dan sampelnya jauh lebih efisien dibandingkan alternatif patokan kami dalam mempelajari tugas manipulasi berbasis visi: dari menumpuk piramida balok, hingga merakit peralatan dengan benda-benda yang tidak terlihat; mulai dari memanipulasi tali yang dapat dideformasi, hingga mendorong tumpukan benda kecil dengan umpan balik loop tertutup. Metode kami dapat mewakili distribusi kebijakan multi-modal yang kompleks dan menggeneralisasi tugas-tugas berurutan multi-langkah, serta pick-and-place 6DoF. Eksperimen pada 10 tugas yang disimulasikan menunjukkan bahwa tugas tersebut belajar lebih cepat dan melakukan generalisasi lebih baik dibandingkan berbagai baseline end-to-end, termasuk kebijakan yang menggunakan pose objek kebenaran dasar. Kami memvalidasi metode kami dengan perangkat keras di dunia nyata.
Langkah 1. Direkomendasikan: instal Miniconda dengan Python 3.7.
curl -O https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh
bash Miniconda3-latest-Linux-x86_64.sh -b -u
echo $' n export PATH=~/miniconda3/bin:"${PATH}" n ' >> ~ /.profile # Add Conda to PATH.
source ~ /.profile
conda init
Langkah 2. Buat dan aktifkan lingkungan Conda, lalu instal paket GCC dan Python.
cd ~ /ravens
conda create --name ravens python=3.7 -y
conda activate ravens
sudo apt-get update
sudo apt-get -y install gcc libgl1-mesa-dev
pip install -r requirements.txt
python setup.py install --user
Langkah 3. Direkomendasikan: instal akselerasi GPU dengan NVIDIA CUDA 10.1 dan cuDNN 7.6.5 untuk Tensorflow.
./oss_scripts/install_cuda.sh # For Ubuntu 16.04 and 18.04.
conda install cudatoolkit==10.1.243 -y
conda install cudnn==7.6.5 -y
pip
murniSebagai contoh untuk Ubuntu 18.04:
./oss_scipts/install_cuda.sh # For Ubuntu 16.04 and 18.04.
sudo apt install gcc libgl1-mesa-dev python3.8-venv
python3.8 -m venv ./venv
source ./venv/bin/activate
pip install -U pip
pip install scikit-build
pip install -r ./requirements.txt
export PYTHONPATH= ${PWD}
Langkah 1. Hasilkan data pelatihan dan pengujian (disimpan secara lokal). Catatan: hapus --disp
untuk mode tanpa kepala.
python ravens/demos.py --assets_root=./ravens/environments/assets/ --disp=True --task=block-insertion --mode=train --n=10
python ravens/demos.py --assets_root=./ravens/environments/assets/ --disp=True --task=block-insertion --mode=test --n=100
Untuk menjalankan dengan memori bersama, buka jendela terminal terpisah dan jalankan python3 -m pybullet_utils.runServer
. Kemudian tambahkan tanda --shared_memory
ke perintah di atas.
Langkah 2. Latih model, misalnya model Transporter Networks. Pos pemeriksaan model disimpan ke direktori checkpoints
. Opsional: Anda dapat keluar dari pelatihan sebelum waktunya setelah 1000 iterasi untuk melompat ke langkah berikutnya.
python ravens/train.py --task=block-insertion --agent=transporter --n_demos=10
Langkah 3. Evaluasi agen Transporter Networks menggunakan model yang dilatih untuk 1000 iterasi. Hasilnya disimpan secara lokal ke dalam file .pkl
.
python ravens/test.py --assets_root=./ravens/environments/assets/ --disp=True --task=block-insertion --agent=transporter --n_demos=10 --n_steps=1000
Langkah 4. Plot dan cetak hasilnya.
python ravens/plot.py --disp=True --task=block-insertion --agent=transporter --n_demos=10
Opsional. Lacak kerugian pelatihan dan validasi dengan Tensorboard.
python -m tensorboard.main --logdir=logs # Open the browser to where it tells you to.
Unduh kumpulan data pelatihan dan pengujian serta model terlatih yang kami hasilkan.
wget https://storage.googleapis.com/ravens-assets/checkpoints.zip
wget https://storage.googleapis.com/ravens-assets/block-insertion.zip
wget https://storage.googleapis.com/ravens-assets/place-red-in-green.zip
wget https://storage.googleapis.com/ravens-assets/towers-of-hanoi.zip
wget https://storage.googleapis.com/ravens-assets/align-box-corner.zip
wget https://storage.googleapis.com/ravens-assets/stack-block-pyramid.zip
wget https://storage.googleapis.com/ravens-assets/palletizing-boxes.zip
wget https://storage.googleapis.com/ravens-assets/assembling-kits.zip
wget https://storage.googleapis.com/ravens-assets/packing-boxes.zip
wget https://storage.googleapis.com/ravens-assets/manipulating-rope.zip
wget https://storage.googleapis.com/ravens-assets/sweeping-piles.zip
Perumusan MDP untuk setiap tugas menggunakan transisi dengan struktur sebagai berikut:
Pengamatan: gambar RGB-D mentah dan parameter kamera (pose dan intrinsik).
Tindakan: fungsi primitif (dipanggil oleh robot) dan parameter.
Hadiah: jumlah total hadiah untuk episode yang berhasil harus =1.
Info: Pose 6D, ukuran, dan warna objek.