PDDLStream adalah kerangka perencanaan yang terdiri dari bahasa tindakan dan rangkaian algoritma untuk perencanaan Kecerdasan Buatan (AI) dengan adanya prosedur pengambilan sampel. PDDLStream memperluas Bahasa Definisi Domain Perencanaan (PDDL) dengan memperkenalkan aliran, spesifikasi deklaratif dari prosedur pengambilan sampel. Algoritme PDDLStream tidak bergantung pada domain dan menyelesaikan masalah PDDLStream hanya dengan deskripsi kotak hitam dari setiap sampler. Aplikasi motivasi PDDLStream adalah untuk robot serba guna, Task and Motion Planning (TAMP).
Cabang pddlstream default (utama) adalah "rilis" stabil terbaru dari pddlstream . Cabang pddlstream ke bawah adalah versi pddlstream terbaru dan lanjutan tetapi juga agak eksperimental.
Caelan R. Garrett, Tomás Lozano-Pérez, Leslie P. Kaelbling. PDDLStream: Mengintegrasikan Perencana Simbolik dan Blackbox Sampler melalui Perencanaan Adaptif Optimis, Konferensi Internasional tentang Perencanaan dan Penjadwalan Otomatis (ICAPS), 2020.
Caelan Garrett: [nama pengguna]@csail.mit.edu
PDDLStream adalah "versi ketiga" dari kerangka perencanaan PDDLStream/STRIPStream, yang dimaksudkan untuk menggantikan versi sebelumnya:
PDDLStream membuat beberapa perbaikan representasi dan algoritmik pada versi ini. Yang paling penting, ia mematuhi konvensi dan sintaksis PDDL bila memungkinkan dan berisi beberapa algoritma baru.
$ git clone --recursive --branch main [email protected]:caelan/pddlstream.git
$ cd pddlstream
pddlstream$ git submodule update --init --recursive
pddlstream$ ./downward/build.py
Jika perlu, lihat dokumentasi FastDownward untuk petunjuk instalasi lebih rinci.
PDDLStream secara aktif mendukung python2.7 serta versi terbaru python3.
Pastikan untuk memperbarui submodul pddlstream secara rekursif saat menarik komitmen baru.
pddlstream$ git pull --recurse-submodules
Repositori ini berisi beberapa domain contoh PDDLStream robotik dan non-robot.
Instal PyBullet di OS X atau Linux menggunakan:
$ pip install pybullet numpy scipy
Contoh:
pddlstream$ python -m examples.pybullet.tamp.run
pddlstream$ python -m examples.pybullet.pr2.run
pddlstream$ python -m examples.pybullet.turtlebot_rovers.run
pddlstream$ python -m examples.pybullet.pr2_rovers.run
pddlstream$ python -m examples.pybullet.pr2_belief.run
pddlstream$ python -m examples.pybullet.kuka.run
Lihat https://github.com/caelan/pybullet-planning untuk informasi lebih lanjut tentang perpustakaan primitif perencanaan PyBullet saya.
Instal numpy dan Python TKinter di Linux menggunakan:
$ sudo apt-get install python-tk
$ pip install numpy
Contoh:
pddlstream$ python -m examples.continuous_tamp.run
pddlstream$ python -m examples.motion.run
pddlstream$ python -m examples.discrete_tamp.run
pddlstream$ python -m examples.discrete_tamp.run
Contoh sederhana yang dapat dijalankan tanpa ketergantungan tambahan:
pddlstream$ python -m examples.blocksworld.run
pddlstream$ python -m examples.blocksworld.run_derived
pddlstream$ python -m examples.kitchen.run
Uji kasus atau fungsionalitas tingkat lanjut (dan tidak terdokumentasi):
pddlstream$ python -m examples.advanced.adl.run
pddlstream$ python -m examples.advanced.defer.run
pddlstream$ python -m examples.advanced.exogenous.run
pddlstream$ python -m examples.advanced.fluent.run
pddlstream$ python -m examples.advanced.satisfy.run
pddlstream$ python -m examples.advanced.wild.run
Contoh IPC PDDL yang tidak dimodifikasi diselesaikan menggunakan penerjemah PDDLStream yang dimodifikasi:
pddlstream$ python -m examples.ipc.rovers.run
pddlstream$ python -m examples.ipc.satellites.run
Proyek eksternal yang menggunakan PDDLStream:
PDDLStream adalah kerangka perencanaan yang terdiri dari satu bahasa perencanaan tetapi beberapa algoritma perencanaan. Beberapa algoritma sangat berbeda dibandingkan yang lain (misalnya Inkremental vs Terfokus) sehingga waktu perencanaan juga dapat sangat bervariasi. Algoritme Adaptif biasanya memiliki performa terbaik untuk domain dengan banyak kemungkinan jalur pengambilan sampel, seperti domain manipulasi robot.
Prosedur meta solve(...) memungkinkan pengguna untuk beralih di antara algoritma yang tersedia menggunakan argumen kata kunci algoritma={} .
Deskripsi properti:
Banyak (tetapi tidak semua) algoritma pddlstream memiliki fase perencanaan terpisah yang dapat diimplementasikan menggunakan algoritma pencarian ruang keadaan terbatas, seperti Breadth-First Search (BFS) dan Uniform-Cost Search (UCS). Namun, karena pddlstream memperluas PDDL, fase perencanaan ini juga dapat diimplementasikan dengan algoritma perencanaan klasik yang canggih, yang memanfaatkan struktur bahasa tindakan yang difaktorkan seperti PDDL untuk meningkatkan efisiensi perencanaan empiris. Algoritme penelusuran heuristik terbaik pertama, yang secara otomatis memperoleh heursitik dengan cara yang tidak bergantung pada domain , adalah salah satu contoh kelas algoritme ini.
pddlstream sudah dikemas sebelumnya dengan FastDownward, perpustakaan produktif yang berisi banyak algoritma perencanaan PDDL pencarian heuristik pertama terbaik. Saya telah mengonfigurasi sejumlah kecil algoritme penelusuran yang efektif dan umum di SEARCH_OPTIONS, yang dapat diubah menggunakan argumen kata kunci planner=?. Saya secara kasar mengurutkannya dari yang paling malas (biaya terendah) hingga yang paling malas (waktu proses terendah):
Durasi fase perencanaan diskrit bervariasi tergantung pada algoritma pencarian yang dipilih. Untuk banyak masalah non-permusuhan, algoritma ini akan menyelesaikan masalah secara instan atau, jika mereka tidak cukup serakah, tidak berhenti dalam waktu 10 menit. Saya sarankan memulai dengan konfigurasi yang lebih serakah dan beralih ke konfigurasi yang tidak terlalu serakah jika diinginkan.
Algoritme perencanaan PDDL apa pun dapat digunakan sebagai pengganti FastDownward; namun, perlu diingat bahwa beberapa perencana ini hanya diterapkan untuk mendukung serangkaian fitur representasional yang terbatas (misalnya tidak ada efek kondisional, tidak ada predikat turunan, dll.), yang dapat membuat pemodelan menjadi lebih sulit dan pada akhirnya perencanaan menjadi kurang efisien dalam banyak hal nyata. -domain perencanaan dunia (non-IPC). Meskipun saya sangat merekomendasikan FastDownward, beberapa perencana PDDL yang pernah saya gunakan sebelumnya dan cukup berhasil meliputi:
Perencana Klasik
Perencana Numerik:
Perencana Duniawi:
Beragam Perencana:
Folder "Pensiun" menunjukkan kode yang tidak lagi didukung secara terus-menerus sehingga kemungkinan besar sudah usang.
Instal Drake di OS X atau Ubuntu dengan mengikuti petunjuk berikut: http://drake.mit.edu/installation.html.
Alternatifnya, instal Drake melalui buruh pelabuhan dengan mengikuti petunjuk berikut: http://manipulation.csail.mit.edu/install_drake_docker.html. Gunakan skrip docker_run_bash yang sesuai dengan tag docker drake-20181128.
Contoh:
~/pddlstream$ python -m examples.drake.run
Contoh PDDLStream + Drake tambahan dapat ditemukan di: https://github.com/RobotLocomotion/6-881-examples.