Rusijos geležinkelių simuliatorius (RRS): pirmasis viešas leidimas

Atėjo diena, kurios laukiau, kai pagaliau galiu pristatyti šią plėtrą. Projektas pradėtas įgyvendinti lygiai prieš metus, bent jau 1 metų rugsėjo 2018 dieną RRS saugyklos „Gtihub“. pirmasis įsipareigojimas turi būtent šią datą.

Keleivinis traukinys Rostovo pagrindinėje stotyje (spustelėti)

Rusijos geležinkelių simuliatorius (RRS): pirmasis viešas leidimas

Kas yra RRS? Tai 1520 mm vėžės riedmenų atviros kryžminės platformos treniruoklis. Skaitytojas natūraliai užduos klausimą: „Atsiprašau, kam skirtas šis projektas, jei yra pakankamai komercinių ir atvirų geležinkelio treniruoklių? Atsakymo į šį klausimą siūlau pažvelgti po katinu

Projekto istorija

Kažkada, 2001 m., jis buvo išleistas „Microsoft Train Simulator“ (MSTS), dėl kurio mūsų šalyje susiformavo didžiulė geležinkelių bendruomenė. Per kelerius šio projekto gyvavimo metus (kol Microsoft jo atsisakė, pereidama prie jam įdomesnių dalykų, tokių kaip "Nokia" bankrotas ir pan.), projektas įgijo daugybę jam sukurtų priedų: maršrutų, riedmenų, scenarijai.

Remiantis MSTS, vėliau buvo sukurta daugybė kitų projektų, pvz OpenRails, „RTrainSim“ (RTS) ir kiti priedai bei dariniai. Atsirado ir komercinių projektų, tokių kaip garsieji Trenzas. Ir viskas būtų gerai, tačiau daugelis geležinkelio transporto gerbėjų šiais gaminiais nepatenkinti dėl gana objektyvių priežasčių – jie jokiu būdu neatspindi posovietinėje erdvėje eksploatuojamų ir plėtojamų vidaus riedmenų specifikos. Tai ypač aktualu žiūrint, kaip diegiami traukinių stabdžiai – nei vienas iš išvardytų projektų neturi ir neturės normaliai įdiegtų Matrosovo sistemos automatinių stabdžių.

Ne taip tolimais 2008 metais pasirodė dar vienas projektas - ZDS simuliatorius, sukūrė Viačeslavas Usovas. Projektas nuostabus tuo, kad jame atsižvelgta ir ištaisomi minėtieji trūkumai, o iš pradžių daugiausia dėmesio skiriama rusiškos vėžės riedmenims. Tačiau yra vienas didelis „bet“ - projektas yra patentuotas ir uždaras, architektūriškai neleidžiantis įvesti savo riedmenų.

Aš pats į geležinkelių temą atėjau 2007 m., kai pradėjau dirbti UAB VELNII, kaip mokslinis bendradarbis, o 2008 m. apgynęs daktaro disertaciją, vyresnysis mokslo darbuotojas. Būtent tada ir susipažinau su naujausiais to meto laimėjimais geležinkelio simuliacinių žaidimų srityje. Ir man nepatiko tai, ką pamačiau, o „ZDSimulator“ projektas tuo metu neegzistavo. Vėliau, susižavėjęs riedmenų dinamika, atvykau į Rostovo valstybinį transporto universitetą (RGUPS) su daktaro disertacijos tema prekinio traukinio stabdymo dinamika. Šiandien vadovauju geležinkelių transporto mokymo kompleksų kūrimui mūsų universitete ir dėstau specializuotas disciplinas Traukos riedmenų katedroje.

Atsižvelgiant į tai, kas išdėstyta aukščiau, kilo idėja sukurti treniruoklį, kuris leistų jo priedo kūrėjui visiškai kontroliuoti riedmenyje vykstančius fizinius procesus. Panašus į „Orbiter“ kosminį treniruoklį, kuriam kažkada sukūriau papildymą nešančiųjų raketų šeima, pagrįsta R-7. Prieš metus ėmiausi šio darbo ir pasinėriau į jį. 26 metų gruodžio 2018 diena čia išvydo šviesą ši technologijos demonstracija.

Mano kūrybą pastebėjo entuziastai, gerai žinomas geležinkelių mėgėjų rate, ZDsimulator vizualinio turinio kūrėjas. Romanas Birjukovas (Rusijos geležinkeliai Romych) pasiūlė man pagalbą ir bendradarbiavimą toliau plėtojant projektą. Vėliau prie mūsų prisijungė kitas kūrėjas - Aleksandras Miščenka („Ulovskii“, 2017 m), maršruto kūrėjas, skirtas ZDsimulator. Mūsų bendradarbiavimas paskatino mus išleisti pirmąjį leidimą. Vaizdo įraše apžvelgiama, kaip atrodo pirmasis žaidimas

Atkurti vaizdo

RRS simuliatoriaus ypatybės

Visų pirma, tai atvira programinės įrangos architektūra. Atvirojo kodo yra ne tik simuliatoriaus kodas, bet ir API bei SDK, skirti trečiųjų šalių priedų kūrėjams. Įėjimo barjeras yra gana aukštas – reikalingi pagrindiniai C++ kūrimo įgūdžiai. Simuliatorius parašytas C++ kalba, naudojant GCC kompiliatorių ir jo „MinGW“ variantą operacinei sistemai. WindowsBe to, kūrėjui patartina būti susipažinusiam su „Qt“ sistema, nes daugelis jos koncepcijų sudaro žaidimo architektūros pagrindą.

Tačiau su deramu kruopštumu ir noru šis projektas atveria milžiniškas galimybes priedų kūrėjui. Riedmenys realizuojami modulių, pagrįstų dinaminėmis bibliotekomis, forma. Pagrindinis konstrukcinis elementas simuliatoriuje yra riedmenų vienetas, arba mobilusis agregatas (MU) – automobilis (nesavaeigis arba kaip sudėtinio traukinio dalis) arba lokomotyvo sekcija. API leidžia nustatyti PE ratų komplektams taikomą sukimo momentą, reaguojant į ratų komplektų kampinį greitį, taip pat išorinius parametrus, tokius kaip įtampa ir srovės tipas kontaktiniame tinkle. Simuliatorius daugiau nieko nežino ir nenori žinoti, o tai vidinės įrangos fiziką palieka konkretaus lokomotyvo ar automobilio kūrėjo sąžinei.

Nesunku atspėti, kad toks palyginti žemo lygio požiūris leidžia įgyvendinti mažiausius lokomotyvo grandinės niuansus. Be to, į treniruoklio rinkinį įeina standartinės įrangos, sumontuotos buitiniuose riedmenyse, rinkinys: mašinisto traukinio krano konv. Nr.395, oro skirstytuvo būklė. Nr.242, pagalbinio stabdžio vožtuvo būklė. 254 ir kitus stabdžių įrangos elementus. Priedo kūrėjui tereikia šiuos elementus sujungti į konkretaus lokomotyvo ar automobilio pneumatinę grandinę. Be to, yra API, leidžianti kurti savo aparatūros blokus.

Architektūriniu požiūriu RRS yra pagrįsta dviejų pagrindinių procesų sąveika

  • treniruoklis — fizinio traukinio dinamikos variklis TrainEngine 2. Įgyvendina traukinio judėjimo fiziką atsižvelgdamas į daugelį išorinių veiksnių, atsižvelgdamas į judančių vienetų sąveiką per sukabinimo įtaisus, apdoroja duomenis, gaunamus iš išorinių modulių, kurie įgyvendina riedmenų įrangos veikimo fiziką.
  • žiūrovas — grafinė posistemė, vizualizuojanti traukinio judėjimą, sukurta grafinio variklio pagrindu OpenSceneGraph

Šios posistemės sąveikauja viena su kita per bendrą atmintį, įdiegtą pagal Qt sistemos QSharedMemory klasę. Pirmosiose demonstracinėse versijose buvo naudojamas lizdas pagrįstas IPC, o ateityje planuojama grįžti prie šios technologijos, atsižvelgiant į kai kurių simuliatoriaus dalių tobulinimą ir poreikius, žvelgiant į ateitį. Perėjimas prie bendros atminties tam tikru mastu buvo priverstinė priemonė, kuri jau nebegalioja.

Neapibūdinsiu niuansų - daugelis šio projekto vystymo peripetijų jau aprašytos mano publikacijose apie išteklius, visų pirma, aš turiu gana platų „OpenSceneGraph“ variklio mokymo programų serija, kuri išaugo iš praktikos dirbant su šiuo projektu.

Ne viskas projekte vyksta taip sklandžiai, kaip norėtume. Visų pirma, grafikos posistemis labai toli gražu nėra tobulas atvaizdavimo kokybės požiūriu, o SIM našumas palieka daug norimų rezultatų. Šis leidimas turi vieną tikslą – supažindinti geležinkelių transporto entuziastų bendruomenę su projektu, apibūdinti jo galimybes ir galiausiai sukurti atvirą kelių platformų geležinkelio simuliatorių su pažangia API priedų kūrėjams.

Перспективы

Perspektyvos priklauso nuo jūsų, mūsų brangūs būsimi vartotojai ir kūrėjai. Projektas yra atviras ir egzistuoja oficiali svetainėIš kur galite atsisiųsti simuliatorių dokumentacija, kurios sudėtis bus nuolat pildoma. Egzistuoja forumas projektas, VK grupėIr „YouTube“ kanalas, kur galite gauti išsamiausių patarimų ir pagalbos.

Dėkojame už dėmesį!

Šaltinis: www.habr.com

Pirkite patikimą prieglobą svetainėms su DDoS apsauga, VPS VDS serveriais 🔥 Įsigykite patikimą svetainių talpinimą su DDoS apsauga, VPS VDS serveriais | ProHoster