Virtual robot tajriba platformalari v-rep: Ko'p qirrali 3D robot simulyatori Abstract


Tarmoqli bo'lmagan bola skript namunasi


Download 1.24 Mb.
bet4/6
Sana09.04.2023
Hajmi1.24 Mb.
#1346240
1   2   3   4   5   6
Bog'liq
Virtual Robot Experimentation Platform V-REP A Ver

3.2 Tarmoqli bo'lmagan bola skript namunasi


Quyidagi kod V-REP-dagi bo'sh bo'lmagan pastki skriptni ko'rsatadi

if (simGetScriptExecutionCount()==0) then


-- Initsializatsiya kodi shu yerda keladi simHandleChildScript(sim_handle_all) -- Bola skriptlarni boshqaradi
-- Asosiy kod bu erga keladi, agar
if (simGetSimulationState()==sim_simulation_advancing_lastbeforestop) keyin
-- Qayta tiklash kodi shu erda tugaydi
Tarmoqli bo'lmagan bolalar skriptlari "o'tish" dir, ya'ni har bir simulyatsiya o'tishda ular bajariladi va boshqaruvni bevosita qo'ng'iroq qiluvchiga qaytaradi. Chaqiruvchi kirish parametrlarini (kirish argumentlari) taqdim etishi mumkin. Bola skripti aniq chaqirilganda (i.e. simHandleChildScript(”childScriptID”) o'rniga simHandleChildScript(sim handle all)), keyin u chiqish parametrlarini ham qaytarishi mumkin (qiymatlarni qaytarish).

3.3 Tishli child script namuna


Yivli bolalar skriptlari biroz farqlangan ishlov berishni talab qiladi, chunki ularning ustiga qurilgan boshqa bolalar skriptlari ham har bir simulyatsiya o'tish vaqtida bajarilishi kafolatlanishi kerak. Quyidagi kod V-REP-da bo'sh, tishli pastki skriptni ko'rsatadi:

simDelegateChildScriptExecution() -- Delegates child script execution simSetThreadSwitchTiming(100) -- optional -- Initialization code comes here while (simGetSimulationState()~=sim_simulation_advancing_abouttostop) do


-- Main code comes here simSwitchThread() -- optional
end
-- Restoration code comes here
Yuqoridagi koddan ko'rinib turibdiki, tishli bolalar skriptlari har bir simulyatsiya o'tish vaqtida chaqirilishiga ishonch hosil qilish uchun o'zlarining bolalar skriptlarini bajarishni asosiy skriptga topshirishlari kerak. Kod, shuningdek, V-REP iplarining o'ziga xosligini ko'rsatadi: V-REP oddiy iplardan foydalanmaydi, aksincha koroutinlardan. Buning afzalligi - asosiy skript bilan sinxronlash imkoniyati bilan ipni bajarish vaqtini ko'proq moslashuvchanlik. Haqiqatan ham, simSetThreadSwitchTiming ip avtomatik ravishda boshqa ipga o'tishi kerak bo'lgan vaqtni belgilaydi. Kommutatsiya simSwitchThread bilan ham aniq amalga oshirilishi mumkin. Har safar asosiy skript bajarilmoqchi bo'lganida, boshqaruv mavzularga qaytariladi.
3.4 Masshtablilik
Ushbu tarqatuvchi, ierarxiy skriptni bajarish mexanizmi yangi qo'shilgan (masalan, nusxa ko'chirish/joylashtirish) sahna ob'ektlari yoki modellari bilan ishlashni juda oson qiladi, chunki bog'langan bolalar skriptlari hech qanday kodni sozlash yoki o'zgartirish kerak bo'lmasdan avtomatik ravishda bajariladi. Bundan tashqari, qo'shilgan bolalar skriptlari tasodifiy tartibda emas, balki ularning sahna ierarxiyasidagi pozitsiyasiga qarab bajariladi.
V-REP kengaytma modullari ushbu distributiv boshqaruv yondashuviga muammosiz integratsiyalashgan: V-REPni ma'lum bir robot tili bilan kengaytirish robot tili tarjimonini V-REP kengaytma moduliga o'rash kabi oson bo'ladi. Xuddi shunday yondashuv, masalan, simulyatsiyani mahalliy nazorat qilish uchun emulyatorlarni (masalan, mikrokontroller emulyatorlarini) V-REP-ga joylashtirish uchun ishlatilishi mumkin.
Va nihoyat, V-REP murakkab xabar almashish mexanizmlarini taklif etadi. Xususan, skriptlararo aloqalar uchun; xabarlar global bo'lishi mumkin (ya'ni, barcha bolalar skriptlari tomonidan qabul qilinishi mumkin), mahalliy (ya'ni, joriy ierarxiyadagi faqat bolalar skriptlari tomonidan qabul qilinishi mumkin) yoki to'g'ridan-to'g'ri (ya'ni, faqat bitta maxsus bolalar skripti tomonidan qabul qilinishi mumkin). 4 Example Simulation Set-up
V-REP dagi quyidagi misol sahnasi (5-rasmga qarang) simulyatorning avval aytib o'tilgan bir qancha jihatlarini aniqlab beradi.


Download 1.24 Mb.

Do'stlaringiz bilan baham:
1   2   3   4   5   6




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling