Ravens عبارة عن مجموعة من المهام المحاكاة في PyBullet لتعلم التلاعب الآلي القائم على الرؤية، مع التركيز على الاختيار والمكان. إنه يتميز بواجهة برمجة تطبيقات تشبه صالة الألعاب الرياضية مع 10 مهام لإعادة ترتيب الطاولة، تحتوي كل منها على (1) أوراكل مكتوب يوفر عروض توضيحية متخصصة (للتعلم بالتقليد)، و(2) وظائف مكافأة توفر رصيدًا جزئيًا (للتعلم المعزز).
(أ) إدخال الكتلة : التقط الكتلة الحمراء على شكل حرف L وضعها في التركيب على شكل حرف L.
(ب) ضع اللون الأحمر في اللون الأخضر : التقط الكتل الحمراء وضعها في الأوعية الخضراء وسط الأشياء الأخرى.
(ج) أبراج هانوي : نقل الأقراص بشكل تسلسلي من برج إلى آخر - يمكن وضع الأقراص الأصغر فقط فوق الأقراص الأكبر حجمًا.
(د) محاذاة زاوية الصندوق : التقط الصندوق ذو الحجم العشوائي وقم بمحاذاة إحدى زواياه مع العلامة على شكل حرف L الموجودة على سطح الطاولة.
(هـ) هرم-كتل-كتل : قم بتكديس 6 كتل بالتتابع في هرم مكون من 3-2-1 بترتيب ملون بألوان قوس قزح.
(و) صناديق التحميل : التقط صناديق متجانسة ذات حجم ثابت وقم بتكديسها في طبقات منقولة على منصة التحميل.
(ز) تجميع المجموعات : التقط أشياء مختلفة ورتبها على لوحة مميزة بالصور الظلية المقابلة.
(ح) صناديق التعبئة : التقط صناديق ذات أحجام عشوائية وضعها بإحكام في حاوية.
(ط) حبل التلاعب : إعادة ترتيب حبل قابل للتشوه بحيث يصل بين طرفي مربع ثلاثي الجوانب.
(ي) أكوام الكنس : دفع أكوام من الأشياء الصغيرة إلى منطقة الهدف المحددة على سطح الطاولة.
تتطلب بعض المهام التعميم على الكائنات غير المرئية (d،g،h)، أو تسلسل متعدد الخطوات مع ردود فعل حلقة مغلقة (c،e،f،h،i،j).
الفريق: تم تطوير هذا المستودع وصيانته بواسطة آندي زينج وبيت فلورنس ودانيال سيتا وجوناثان تومسون وأيزان وحيد. وهذا هو المستودع المرجعي للورقة:
موقع المشروع • PDF • مؤتمر تعلم الروبوت (CoRL) 2020
أندي تسنغ، بيت فلورنس، جوناثان تومسون، ستيفان ويلكر، جوناثان تشين، ماريا أتاريان، ترافيس أرمسترونج،
إيفان كراسين، دان دونج، فيكاس سيندواني، جوني لي
خلاصة. يمكن صياغة التلاعب الآلي على أنه يحفز سلسلة من الإزاحات المكانية: حيث يمكن أن يشمل الفضاء الذي يتم نقله كائنًا أو جزءًا من كائن أو مؤثرًا نهائيًا. في هذا العمل، نقترح شبكة النقل، وهي عبارة عن بنية نموذجية بسيطة تعيد ترتيب الميزات العميقة لاستنتاج الإزاحات المكانية من المدخلات المرئية - والتي يمكنها تحديد إجراءات الروبوت. إنها لا تفترض أي افتراضات حول الموضوعية (على سبيل المثال الأوضاع الأساسية أو النماذج أو النقاط الرئيسية)، فهي تستغل التماثلات المكانية، وهي أكثر كفاءة في استخدام العينات من البدائل المرجعية في تعلم مهام المعالجة القائمة على الرؤية: من تكديس هرم من الكتل، إلى تجميع المجموعات بأشياء غير مرئية؛ من التلاعب بالحبال القابلة للتشوه، إلى دفع أكوام من الأشياء الصغيرة بردود فعل حلقة مغلقة. يمكن أن تمثل طريقتنا توزيعات معقدة للسياسة متعددة الوسائط وتعمم على المهام المتسلسلة متعددة الخطوات، بالإضافة إلى الانتقاء والمكان 6DoF. تظهر التجارب التي أجريت على 10 مهام محاكاة أنها تتعلم بشكل أسرع وتعمم بشكل أفضل من مجموعة متنوعة من خطوط الأساس الشاملة، بما في ذلك السياسات التي تستخدم كائنات الحقيقة الأرضية. نحن نتحقق من صحة أساليبنا باستخدام الأجهزة في العالم الحقيقي.
الخطوة 1. موصى به: قم بتثبيت Miniconda مع 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
الخطوة 2. قم بإنشاء بيئة Conda وتفعيلها، ثم قم بتثبيت حزمتي GB و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
الخطوة 3. موصى به: قم بتثبيت تسريع GPU باستخدام NVIDIA CUDA 10.1 وcuDNN 7.6.5 لـ 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
النقيةكمثال لأوبونتو 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}
الخطوة 1. إنشاء بيانات التدريب والاختبار (المحفوظة محليًا). ملاحظة: قم بإزالة --disp
لوضع مقطوعة الرأس.
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
للتشغيل مع الذاكرة المشتركة، افتح نافذة طرفية منفصلة وقم بتشغيل python3 -m pybullet_utils.runServer
. ثم قم بإضافة علامة --shared_memory
إلى الأمر أعلاه.
الخطوة 2. تدريب نموذج، على سبيل المثال، نموذج شبكات النقل. يتم حفظ نقاط التفتيش النموذجية في دليل checkpoints
. اختياري: يمكنك الخروج من التدريب قبل الأوان بعد 1000 تكرار للانتقال إلى الخطوة التالية.
python ravens/train.py --task=block-insertion --agent=transporter --n_demos=10
الخطوة 3. قم بتقييم وكيل Transporter Networks باستخدام النموذج الذي تم تدريبه لـ 1000 تكرار. يتم حفظ النتائج محليًا في ملفات .pkl
.
python ravens/test.py --assets_root=./ravens/environments/assets/ --disp=True --task=block-insertion --agent=transporter --n_demos=10 --n_steps=1000
الخطوة 4. رسم النتائج وطباعتها.
python ravens/plot.py --disp=True --task=block-insertion --agent=transporter --n_demos=10
خياري. تتبع خسائر التدريب والتحقق من الصحة باستخدام Tensorboard.
python -m tensorboard.main --logdir=logs # Open the browser to where it tells you to.
قم بتنزيل مجموعات بيانات التدريب والاختبار التي تم إنشاؤها والنماذج المدربة مسبقًا.
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
تستخدم صياغة MDP لكل مهمة انتقالات بالبنية التالية:
الملاحظات: صور RGB-D الخام ومعلمات الكاميرا (الوضعية والجوهر).
الإجراءات: وظيفة بدائية (يستدعيها الروبوت) ومعلمات.
المكافآت: إجمالي المكافآت للحلقة الناجحة يجب أن يكون =1.
معلومات: أوضاع وأحجام وألوان الكائنات ثلاثية الأبعاد.