|
Reja: Kirish Robotlar va robototexnik tizimlar haqida malumot
|
bet | 4/4 | Sana | 13.01.2024 | Hajmi | 393,53 Kb. | | #136697 |
Bog'liq Mavzu Robototexnik tizimlarning harakatlarini rejalashtirish ku-fayllar.org (1)Husky UGV: yerdagi transport vositasi va ochiq manba.
ROS bilan integratsiya
Sanoat va robototexnika tadqiqotlaridagi ko'plab oxirgi foydalanuvchilar ROS interfeysi orqali OMPL-dan foydalanishlarini kutamiz. Ushbu interfeys Sachin Chitta va Ioan S¸ucan tomonidan yaratilgan va OMPL belgilaydigan mavhum asosiy sinflar uchun ROS-ga xos ilovalarni taqdim etadi. Biz oxirgi foydalanuvchi ROS bilan ishlaydigan ma'lum bir robot uchun harakatni rejalashtirish uchun bajarishi kerak bo'lgan qadamlarni tasvirlaymiz. Willow Garage-dan PR2 quyida tavsiflangan stsenariyda qo'llaniladi, ammo amallar aslida PR2 uchun xos emas va ROS-ni ishga tushira oladigan har qanday robotga tegishli. Agar foydalanuvchi PR2 uchun harakatni rejalashtirmoqchi bo'lsa, birinchi navbatda PR2 geometriyasi va kinematikasi modelini yaratishi kerak. ROS ichida bunday modelni saqlash uchun yagona robot tavsifi formati (URDF, http://ros.org/wiki/urdf ga qarang) deb nomlangan standart mavjud.
Ushbu XML formati kinematik ma'lumotni turli xil robot komponentlarining meshlarini o'z ichiga olgan fayllarga havolalar bilan birlashtiradi. PR2 va boshqa ko'plab robotlar uchun URDF fayllari allaqachon mavjud (qarang: http://www.ros.org/wiki/Robots). URDF faylida ko'rsatilgan barcha erkinlik darajalarini bir vaqtning o'zida rejalashtirish ko'pincha istalmagan va kerak emas. Shuning uchun ikkinchi bosqich bir yoki bir nechta bo'g'inlar guruhini aniqlashdan iborat. Rejalashtirilgan bo'g'inlar haqida ma'lumot URDF dan olinadi va OMPL uchun StateSpace vakolatxonasi quriladi. URDF hujjatida ko'rsatilgan tarmoqlar StateValidityChecker sinfini yaratish uchun ishlatiladi. Ushbu sinflar ustiga SimpleSetup sinfini ham aniqlash mumkin, bu esa rejalashtirish muammolarini hal qilish imkonini beradi. Foydalanuvchi turli rejalashtirish algoritmlariga xos parametrlarni ham belgilashi mumkin, ammo buning uchun hech qanday talab yo'q. ROS-ga kiritilgan konfiguratsiya ustasi sozlashni osonlashtirishi mumkin
Ushbu XML formati kinematik ma'lumotni turli xil robot komponentlarining meshlarini o'z ichiga olgan fayllarga havolalar bilan birlashtiradi. PR2 va boshqa ko'plab robotlar uchun URDF fayllari allaqachon mavjud (qarang: http://www.ros.org/wiki/Robots). URDF faylida ko'rsatilgan barcha erkinlik darajalarini bir vaqtning o'zida rejalashtirish ko'pincha istalmagan va kerak emas. Shuning uchun ikkinchi bosqich bir yoki bir nechta bo'g'inlar guruhini aniqlashdan iborat. Rejalashtirilgan bo'g'inlar haqida ma'lumot URDF dan olinadi va OMPL uchun StateSpace vakolatxonasi quriladi. URDF hujjatida ko'rsatilgan tarmoqlar StateValidityChecker sinfini yaratish uchun ishlatiladi. Ushbu sinflar ustiga SimpleSetup sinfini ham aniqlash mumkin, bu esa rejalashtirish muammolarini hal qilish imkonini beradi. Foydalanuvchi turli rejalashtirish algoritmlariga xos parametrlarni ham belgilashi mumkin, ammo buning uchun hech qanday talab yo'q. ROS-ga kiritilgan konfiguratsiya ustasi sozlashni osonlashtirishi mumkin
Uchinchi qadam - PR2 uchun harakatni rejalashtirish muammolarini aniqlash. Buni turli yo'llar bilan amalga oshirish mumkin: to'g'ridan-to'g'ri rejalashtirish funktsiyalarini chaqirish, ROS-ga xos API-lardan foydalanish yoki 5-rasmda ko'rsatilgandek vizualizatsiya vositalari orqali. Yuqorida biz ROS-da OMPL-dan foydalangan holda yo'llarni rejalashtirishning juda oddiy ish jarayonini tasvirlab berdik. ROS-OMPL interfeysi ko'plab ilg'or xususiyatlarga ega. Birinchidan, harakatni rejalashtirish muammolari foydalanuvchi tomonidan ko'rsatilishi shart emas, lekin dasturiy jihatdan aniqlanishi mumkin (masalan, ROSning boshqa komponentlari bilan birgalikda his-tuyg'ularni rejalashtirish-harakat tsiklining bir qismi sifatida). Ikkinchidan, holat fazosi parametrlarining har xil turlari mumkin: (a) robotning erkinlik darajalari turli holat boʻshliqlariga qoʻshilgan robotning boʻgʻin-kosmik tasvirlari: R n qoʻshma chegaralar bilan bir erkinlik darajasi boʻgʻinlari ketma-ketligi uchun, SO. (2) uzluksiz bo'g'inlar uchun, SE(2) tekislikda harakatlanuvchi robotlar uchun va SE(3) kosmosda harakatlanuvchi robotlar uchun; (b) robotning ish joyidagi tasvirlari, bunda, masalan, qo'lning oxirgi effekti pozasi SE(3) holati sifatida ifodalanadi va SE(3) holat fazosining interpolyatsiya qobiliyati teskari holatdan foydalanish uchun bekor qilinadi. kinematika.
Uchinchi qadam - PR2 uchun harakatni rejalashtirish muammolarini aniqlash. Buni turli yo'llar bilan amalga oshirish mumkin: to'g'ridan-to'g'ri rejalashtirish funktsiyalarini chaqirish, ROS-ga xos API-lardan foydalanish yoki 5-rasmda ko'rsatilgandek vizualizatsiya vositalari orqali. Yuqorida biz ROS-da OMPL-dan foydalangan holda yo'llarni rejalashtirishning juda oddiy ish jarayonini tasvirlab berdik. ROS-OMPL interfeysi ko'plab ilg'or xususiyatlarga ega. Birinchidan, harakatni rejalashtirish muammolari foydalanuvchi tomonidan ko'rsatilishi shart emas, lekin dasturiy jihatdan aniqlanishi mumkin (masalan, ROSning boshqa komponentlari bilan birgalikda his-tuyg'ularni rejalashtirish-harakat tsiklining bir qismi sifatida). Ikkinchidan, holat fazosi parametrlarining har xil turlari mumkin: (a) robotning erkinlik darajalari turli holat boʻshliqlariga qoʻshilgan robotning boʻgʻin-kosmik tasvirlari: R n qoʻshma chegaralar bilan bir erkinlik darajasi boʻgʻinlari ketma-ketligi uchun, SO. (2) uzluksiz bo'g'inlar uchun, SE(2) tekislikda harakatlanuvchi robotlar uchun va SE(3) kosmosda harakatlanuvchi robotlar uchun; (b) robotning ish joyidagi tasvirlari, bunda, masalan, qo'lning oxirgi effekti pozasi SE(3) holati sifatida ifodalanadi va SE(3) holat fazosining interpolyatsiya qobiliyati teskari holatdan foydalanish uchun bekor qilinadi. kinematika.
Uchinchidan, ROS interfeysi foydalanuvchiga tashilgan ob'ektlarni tik holatda saqlash yoki ularni ko'rishda saqlash kabi murakkab cheklovlarni belgilash imkonini beradi. Istalgan maqsad mintaqasida bo'lgan holatlarni yaratish rejalashtirish algoritmining qolgan qismini bajarish bilan parallel ravishda amalga oshiriladi. Interfeys, shuningdek, robotning kinematik modeliga olib borilgan ob'ektlarni biriktirish orqali rejalashtirish vaqtida biriktirilgan ob'ektlarning geometriyasini avtomatik ravishda o'z ichiga oladi. OMPL uchun ROS interfeysi foydalanuvchilarga harakatni rejalashtiruvchilar bilan oddiy tarzda muloqot qilish imkonini beradi. Faqat foydalanuvchi rejalashtirmoqchi bo'lgan bo'g'inlar to'plami (odatda guruhlangan va guruh nomi bilan ataladi) va maqsadning spetsifikatsiyasi kerak. Maqsad ko'rsatilishi mumkin, masalan, qo'shma bo'shliqda chegaralovchi quti yoki kerakli bog'lanish pozasi sifatida. Ishonamizki, bu funksionallik OMPL dan turli xil sozlamalarda keng foydalanish imkonini beradi.
Uchinchidan, ROS interfeysi foydalanuvchiga tashilgan ob'ektlarni tik holatda saqlash yoki ularni ko'rishda saqlash kabi murakkab cheklovlarni belgilash imkonini beradi. Istalgan maqsad mintaqasida bo'lgan holatlarni yaratish rejalashtirish algoritmining qolgan qismini bajarish bilan parallel ravishda amalga oshiriladi. Interfeys, shuningdek, robotning kinematik modeliga olib borilgan ob'ektlarni biriktirish orqali rejalashtirish vaqtida biriktirilgan ob'ektlarning geometriyasini avtomatik ravishda o'z ichiga oladi. OMPL uchun ROS interfeysi foydalanuvchilarga harakatni rejalashtiruvchilar bilan oddiy tarzda muloqot qilish imkonini beradi. Faqat foydalanuvchi rejalashtirmoqchi bo'lgan bo'g'inlar to'plami (odatda guruhlangan va guruh nomi bilan ataladi) va maqsadning spetsifikatsiyasi kerak. Maqsad ko'rsatilishi mumkin, masalan, qo'shma bo'shliqda chegaralovchi quti yoki kerakli bog'lanish pozasi sifatida. Ishonamizki, bu funksionallik OMPL dan turli xil sozlamalarda keng foydalanish imkonini beradi.
ROS rviz vizualizatori yordamida robot pozalarini osongina sozlash mumkin,
pozalar orasidagi mumkin bo'lgan yo'llarni topish uchun OMPL dan foydalanish.
ROS C++ mijozlar kutubxonasi (roscpp)
ROS asosiy sarlavha fayli o'z ichiga oladi
ros::init(…) boshqa ROS funksiyalarini chaqirishdan oldin chaqirilishi kerak
Tugun tutqichi ROS tizimi (mavzular, xizmatlar, parametrlar) bilan aloqa qilish uchun kirish nuqtasidir.
ros::Rate - kerakli chastotada tsikllarni ishga tushirish uchun yordamchi sinf
ros::ok() tugunning ishlashda davom etishini tekshiradi. Agar SIGINT qabul qilingan bo'lsa (Ctrl + C) yoki ros::shutdown() chaqirilgan bo'lsa, noto'g'ri qaytaradi.
ROS_INFO() fayl tizimiga xabarlarni qayd qiladi
ros::spinOnce() qayta qo'ng'iroqlar orqali kiruvchi xabarlarni qayta ishlaydi
ROS C++ mijozlar kutubxonasi (roscpp) Tugun tutqichi
Tugun tutqichlarining to'rtta asosiy turi mavjud
Standart (ommaviy) tugun tutqichi: nh_ = ros::NodeHandle();
. Shaxsiy tugun dastagi: nh_private_ = ros::NodeHandle("~");
. Ismlar oralig'idagi tugun tutqichi: nh_eth_ = ros::NodeHandle("eth");
. Global tugun tutqichi: nh_global_ = ros::NodeHandle("/");
Mavzuni qidirayotgan nom maydonidagi tugun uchun quyidagilar hal qilinadi:
/namespace/topic
/namespace/node/topic
/namespace/eth/topic
/topic
Tavsiya etilgan
Tavsiya etilmaydi
Login
Konsoldagi tugunlardan odam o'qishi mumkin bo'lgan matnni ro'yxatga olish va jurnal fayllari uchun mexanizm
▪ std::cout o'rniga, masalan, foydalaning. ROS_INFO
▪ Konsol, jurnal fayli va /rosout mavzusiga avtomatik kirish
▪ Turli jiddiylik darajalari (Ma'lumot, Ogohlantirish, Xato va h.k.)
▪ Printf va oqim uslubida formatlashni qo'llab-quvvatlaydi
Qo'shimcha funktsiyalar, masalan, shartli, o'chirilgan, kechiktirilgan ro'yxatga olish va boshqalar.
Obunachi
Xabar qabul qilinganda, argument sifatida xabar mazmuni bilan qayta qo'ng'iroq qilish funktsiyasi chaqiriladi
▪ Obunani bekor qilmaguningizcha obunachi ob'ektini ushlab turing
ros::spin() qayta qo'ng'iroqlarni qayta ishlaydi va tugun o'chirilmaguncha qaytmaydi
Tugun tutqichining subscribe() usulini chaqirish orqali mavzuni tinglashni boshlang
Nashriyotchi
Tugun tutqichi yordamida nashriyot yarating
Xabar mazmunini yarating
Tarkibni chop eting
E’tiboringiz uchun raxmat
http://fayllar.org
|
| |