Rossiya temir yo'l simulyatori (RRS): birinchi ommaviy reliz

Men kutgan kun, nihoyat, bu rivojlanishni taqdim eta oladigan kun keldi. Loyiha roppa-rosa bir yil oldin, kamida 1 yil 2018 sentyabrda boshlangan Gtihub-dagi RRS omborlari birinchi topshiriq aynan shu sanaga ega.

Rostov magistral stantsiyasida yo'lovchi poezdi (bosish mumkin)

Rossiya temir yo'l simulyatori (RRS): birinchi ommaviy reliz

RRS nima? Bu 1520 mm kalibrli harakatlanuvchi tarkibning ochiq platformali simulyatori. O'quvchi tabiiy ravishda savol beradi: "Kechirasiz, agar temir yo'l simulyatorlari etarli miqdorda tijorat va ochiq bo'lsa, bu loyiha nima uchun?" Bu savolga javob berish uchun men mushukning ostiga qarashni taklif qilaman

Loyiha tarixi

Bir vaqtlar, 2001 yilda nashr etilgan Microsoft Train Simulator (MSTS), bu mamlakatimizda temir yo'lchilarning katta jamoasini keltirib chiqardi. Ushbu loyiha mavjud bo'lgan bir necha yil davomida (Microsoft uni tark etgunga qadar, u uchun qiziqarliroq narsalarga o'tgunga qadar, masalan, Nokia bankrotligi va boshqalar), loyiha unga yaratilgan ko'plab qo'shimchalarni oldi: marshrutlar, harakatlanuvchi tarkib, stsenariylar.

MSTS asosida keyinchalik bir qator boshqa loyihalar yaratildi, masalan OpenRails, RTrainSim (RTS) va boshqa qo'shimchalar va hosilalar. Mashhur kabi tijorat loyihalari ham paydo bo'ldi Trainz. Va hamma narsa yaxshi bo'lar edi, lekin temir yo'l transportining ko'plab muxlislari ob'ektiv sabablarga ko'ra ushbu mahsulotlardan qoniqmaydilar - ular postsovet hududida foydalaniladigan va ishlab chiqilgan mahalliy harakat tarkibining o'ziga xos xususiyatlarini hech qanday tarzda aks ettirmaydi. Bu, ayniqsa, poezd tormozlari qanday amalga oshirilayotganini ko'rib chiqishda keskindir - sanab o'tilgan loyihalarning hech birida Matrosov tizimining avtomatik tormozlari normal amalga oshirilmagan yoki bo'lmaydi.

2008 yilning unchalik uzoq bo'lmagan yilida yana bir loyiha paydo bo'ldi - ZDSimulator, Vyacheslav Usov tomonidan ishlab chiqilgan. Loyiha yuqorida qayd etilgan kamchiliklarni inobatga olgani va to‘g‘rilagani bilan e’tiborga molik, shu bilan birga, dastlab Rossiya o‘lchagichli harakatlanuvchi tarkibga e’tibor qaratiladi. Ammo bitta katta "lekin" bor - loyiha xususiy va yopiq bo'lib, me'moriy jihatdan o'z harakat tarkibini joriy etishga imkon bermaydi.

Men o'zim temir yo'l mavzusiga 2007 yilda ish boshlaganimda kelganman OAJ VELNII, ilmiy xodim sifatida va 2008 yilda nomzodlik dissertatsiyasini himoya qilgandan keyin katta ilmiy xodim sifatida. Aynan o'sha paytda men temir yo'l simulyatsiyasi o'yinlari sohasidagi so'nggi yutuqlar bilan tanishdim. Va men ko'rgan narsamni yoqtirmadim va ZDSimulator loyihasi o'sha paytda mavjud emas edi. Keyinchalik, harakatlanuvchi tarkibning dinamikasi meni hayratda qoldirib, Rostov davlat transport universitetiga keldim (RGUPS) yuk poyezdining tormozlanish dinamikasi mavzusidagi doktorlik dissertatsiyasi mavzusi bilan. Bugungi kunda universitetimiz uchun temir yo‘l transporti o‘quv majmualarini ishlab chiqishga rahbarlik qilaman va “Taksion harakatlanuvchi tarkib” kafedrasida ixtisoslashtirilgan fanlardan dars beraman.

Yuqorida aytilganlarning barchasi bilan bog'liq holda, uning uchun qo'shimchani ishlab chiquvchiga harakatlanuvchi tarkibda sodir bo'ladigan jismoniy jarayonlarni to'liq nazorat qilish imkonini beradigan simulyator yaratish g'oyasi paydo bo'ldi. Orbiter kosmik simulyatoriga o'xshab, men bir vaqtlar R-7 asosida raketalar oilasi shaklida qo'shimchani ishlab chiqdim. Bir yil oldin men bu ish bilan shug'ullanganman va o'zimni unga tashlagan edim. 26-yil 2018-dekabr bu yerda yorug‘likni ko‘rdi ushbu texnologiya demosi.

Mening ishim ishqibozlar tomonidan e'tiborga olindi va ZDsimulator uchun vizual kontent yaratuvchisi temir yo'lchilar doiralarida taniqli. Roman Biryukov (Romych Rossiya temir yo'llari) loyihani yanada rivojlantirishda menga yordam va hamkorlikni taklif qildi. Keyinchalik bizga boshqa dasturchi qo'shildi - Aleksandr Mishchenko (Ulovskiy 2017), ZDsimulator uchun marshrut yaratuvchisi. Hamkorligimiz bizni birinchi nashrimizga olib keldi. Videoda o'yinning birinchi versiyasida qanday ko'rinishi haqida ba'zi bir ko'rinish berilgan

RRS simulyatorining xususiyatlari

Birinchidan, bu ochiq dasturiy ta'minot arxitekturasidir. Simulyator kodi ochiq ekanligi haqida gapirmasa ham, unga uchinchi tomon qo'shimchalarini ishlab chiquvchilarga qaratilgan API va SDK mavjud. Kirish to'sig'i ancha yuqori - C++ dasturini ishlab chiqishda asosiy ko'nikmalar talab qilinadi. Simulyator unda GCC kompilyatori va uning Windows operatsion tizimi uchun MinGW varianti yordamida yozilgan. Bundan tashqari, ishlab chiquvchi Qt ramkasi bilan tanish bo'lishi tavsiya etiladi, chunki uning ko'pgina tushunchalari o'yin arxitekturasining asosini tashkil qiladi.

Biroq, sinchkovlik va xohish bilan ushbu loyiha qo'shimcha dastur ishlab chiqaruvchisi uchun katta imkoniyatlar ochadi. Harakatlanuvchi tarkib dinamik kutubxonalarga asoslangan modullar ko'rinishida amalga oshiriladi. Simulyatordagi asosiy konstruktiv element harakatlanuvchi tarkibning birligi hisoblanadi, yoki mobil blok (MU) - avtomobil (o'ziyurar bo'lmagan yoki ko'p birlikli poezdning bir qismi sifatida) yoki lokomotivning bir qismi. API g'ildirak to'plamlarining burchak tezligini, shuningdek, kontakt tarmog'idagi kuchlanish va oqim turi kabi tashqi parametrlarni qabul qilgan holda, pe g'ildirak to'plamlariga qo'llaniladigan momentni o'rnatishga imkon beradi. Simulyator boshqa hech narsani bilmaydi va bilishni istamaydi, bu ichki jihozlarning fizikasini ma'lum bir lokomotiv yoki avtomobil ishlab chiqaruvchisining vijdoniga qoldiradi.

Bunday nisbatan past darajadagi yondashuv lokomotiv sxemasining eng kichik nuanslarini amalga oshirishga imkon berishini taxmin qilish qiyin emas. Bundan tashqari, simulyatorlar to'plami mahalliy harakatlanuvchi tarkibga o'rnatilgan standart uskunalar to'plamini o'z ichiga oladi: haydovchi poezd krani konv. № 395, havo distribyutor holati. 242-son, yordamchi tormoz klapanining holati. 254-son va tormoz uskunasining boshqa elementlari. Qo'shimchani ishlab chiquvchi faqat ushbu elementlarni ma'lum bir lokomotiv yoki avtomobilning pnevmatik sxemasiga ulashi kerak. Bundan tashqari, o'z apparat birliklaringizni yaratish uchun API mavjud.

Arxitektura nuqtai nazaridan, RRS ikkita asosiy jarayonning o'zaro ta'siriga qurilgan

  • simulyatori — jismoniy poezd dinamikasi dvigateli TrainEngine 2. Poezdlar harakati fizikasini ko‘plab tashqi omillarni hisobga olgan holda, harakatlanuvchi agregatlarning ulash qurilmalari orqali o‘zaro ta’sirini hisobga olgan holda amalga oshiradi, harakatlanuvchi tarkib uskunasining ishlash fizikasini amalga oshiruvchi tashqi modullardan keladigan ma’lumotlarni qayta ishlaydi.
  • viewer — grafik dvigatel asosida qurilgan, poyezdlar harakatini vizual ko‘rsatuvchi grafik quyi tizim OpenSceneGraph

Ushbu quyi tizimlar Qt ramkasining QSharedMemory klassi asosida amalga oshirilgan umumiy xotira orqali bir-biri bilan o'zaro ta'sir qiladi. Birinchi demolarda soketga asoslangan IPC ishlatilgan va kelajakda simulyatorning ba'zi qismlarini takomillashtirish va kelajakka bo'lgan ehtiyojni hisobga olgan holda ushbu texnologiyaga qaytish rejalashtirilgan. Umumiy xotiraga o'tish ma'lum darajada majburiy chora bo'lib, o'zining foydaliligini o'tkazib yubordi.

Men nuanslarni ta'riflamayman - ushbu loyihani ishlab chiqishning ko'plab o'zgarishlari allaqachon manbadagi nashrlarimda tasvirlangan, xususan, menda juda keng OpenSceneGraph dvigateliga oid bir qator darsliklar, bu loyiha ustida ishlash amaliyotidan kelib chiqqan.

Loyihada hamma narsa biz xohlagan darajada silliq emas. Xususan, grafik quyi tizim ko‘rsatish sifati bo‘yicha mukammallikdan yiroq va sim-ning ishlashi ko‘p narsani orzu qiladi. Ushbu nashrning bitta maqsadi bor - temir yo'l transporti ishqibozlari hamjamiyatini loyiha bilan tanishtirish, uning imkoniyatlarini tavsiflash va nihoyat qo'shimchalar ishlab chiquvchilari uchun rivojlangan API bilan ochiq, platformalararo temir yo'l simulyatorini yaratish.

istiqbollari

Istiqbollar sizga, aziz kelajak foydalanuvchilarimiz va dasturchilarimizga bog'liq. Loyiha ochiq va mavjud rasmiy veb-saytgasimulyatorni qaerdan yuklab olishingiz mumkin hujjatlar, uning tarkibi doimiy ravishda to'ldiriladi. Mavjud forum loyiha, VK guruhiva youtube kanali, bu yerda siz eng batafsil maslahat va yordam olishingiz mumkin.

E'tiboringiz uchun tashakkur!

Manba: www.habr.com

a Izoh qo'shish