Venemaa raudteesimulaator (RRS): esimene avalik väljalase

Kätte on jõudnud see päev, mida olen oodanud, mil saan lõpuks seda arengut esitleda. Projektiga alustati täpselt aasta tagasi, 1. septembril 2018 vähemalt RRS-i hoidlad Gtihubis esimesel kohustusel on täpselt see kuupäev.

Reisirong Rostovi pearaudteejaamas (klõpsatav)

Venemaa raudteesimulaator (RRS): esimene avalik väljalase

Mis on RRS? See on 1520 mm rööpmelaiusega veeremi avatud platvormidevaheline simulaator. Lugeja esitab loomulikult küsimuse: "Vabandage, milleks see projekt mõeldud on, kui raudteesimulaatoreid on piisavalt, nii ärilisi kui ka avatud?" Sellele küsimusele vastuse saamiseks soovitan vaadata kassi alla

Projekti ajalugu

Kunagi ammu, 2001. aastal, see ilmus Microsofti rongisimulaator (MSTS), millest sündis meie riigis tohutu raudteelaste kogukond. Projekti mitme aasta jooksul, mil see projekt eksisteeris (kuni Microsoft sellest loobus, liikudes edasi tema jaoks huvitavamate asjade juurde, nagu Nokia pankrot jne), sai projekt juurde hulgaliselt selle jaoks loodud täiendusi: marsruudid, veerem, stsenaariumid.

MSTS-i põhjal loodi hiljem mitmeid teisi projekte, nt OpenRails, RRainSim (RTS) ja muud lisandid ja tuletised. Ilmusid ka kommertsprojektid, näiteks kuulsad rong. Ja kõik oleks hästi, kuid paljud raudteetranspordi fännid ei ole nende toodetega üsna objektiivsetel põhjustel rahul - need ei peegelda kuidagi postsovetlikus ruumis käitatava ja arendatud kodumaise veeremi eripära. See on eriti terav, kui vaadata rongi pidurite rakendamist - ühelgi loetletud projektil pole ega tule Matrosovi süsteemi automaatseid pidureid tavapäraselt rakendama.

Mitte nii kaugel 2008. aastal ilmus veel üks projekt - ZDSimulaator, mille on välja töötanud Vjatšeslav Usov. Projekt on tähelepanuväärne selle poolest, et võtab arvesse ja parandab eelnimetatud puudusi, keskendudes esialgu Venemaa rööpmelaiusega veeremile. Kuid on üks suur "aga" - projekt on varaline ja suletud, arhitektuuriliselt ei võimalda oma veeremi kasutuselevõttu.

Ma ise jõudsin raudteeteemani 2007. aastal, kui asusin tööle JSC VELNII, teadurina ja pärast doktoritöö kaitsmist 2008. aastal vanemteadurina. Just siis tutvusin tolleaegsete viimaste saavutustega raudteesimulatsioonimängude vallas. Ja mulle ei meeldinud see, mida ma nägin, ja ZDSimulatori projekti sel ajal ei eksisteerinud. Hiljem, olles lummatud veeremi dünaamikast, tulin Rostovi Riiklikku Transpordiülikooli (RGUPS) doktoritöö teemaga kaubarongi pidurdusdünaamikast. Täna juhin meie ülikooli raudteetranspordi koolituskomplekside väljatöötamist ja õpetan veojõuveeremi osakonnas erialaseid erialasid.

Seoses kõige eelnevaga tekkis idee luua simulaator, mis võimaldaks selle lisandmooduli arendajal saavutada täielik kontroll veeremis toimuvate füüsiliste protsesside üle. Sarnaselt Orbiteri kosmosesimulaatoriga, millele kunagi R-7 baasil kanderakettide perekonna näol täienduse välja töötasin. Aasta tagasi võtsin selle töö kätte ja viskasin end sellesse. 26. detsember 2018 nägi siin valgust see tehnoloogia demo.

Minu tööd märkasid entusiastid ja raudteelaste ringkondades tuntud, ZDsimulatori visuaalse sisu looja. Roman Birjukov (Romõtši Venemaa Raudtee) pakkus mulle abi ja koostööd projekti edasisel arendamisel. Hiljem liitus meiega veel üks arendaja - Aleksander Mištšenko (Ulovskii 2017), ZDsimulatori marsruudi looja. Meie koostöö viis meid esimese väljalaskeni. Videol on ülevaade sellest, kuidas mäng oma esimese versiooni välja näeb

RRS-i simulaatori omadused

Esiteks on see avatud tarkvara arhitektuur. Rääkimata asjaolust, et simulaatori kood on avatud, on olemas API ja SDK, mis on suunatud selle kolmandate osapoolte lisandmoodulite arendajatele. Sisseastumisbarjäär on üsna kõrge – vajalikud on elementaarsed C++ arendusoskused. Simulaator on sellesse kirjutatud, kasutades GCC kompilaatorit ja selle MinGW varianti Windowsi operatsioonisüsteemi jaoks. Lisaks on soovitav, et arendaja tunneks Qt raamistikku, kuna paljud selle kontseptsioonid on mängu arhitektuuri aluseks.

Nõuetekohase hoolsuse ja soovi korral avab see projekt aga lisandmooduli arendajale tohutuid võimalusi. Veeremit rakendatakse dünaamilistel raamatukogudel põhinevate moodulite kujul. Simulaatori peamine konstruktsioonielement on veeremi ühik, või mobiilne üksus (MU) - auto (mitteiseliikuv või mootorrongi osana) või veduri osa. API võimaldab seadistada PE-rattakomplektidele rakendatavat pöördemomenti, võttes vastu rattakomplektide nurkkiiruse, aga ka väliseid parameetreid, nagu pinge ja voolu tüüp kontaktvõrgus. Simulaator muud ei tea ega tahagi, mis jätab siseseadmete füüsika konkreetse veduri või auto arendaja südametunnistusele.

Pole raske arvata, et selline suhteliselt madalal tasemel lähenemine võimaldab rakendada veduriahela väikseimaid nüansse. Lisaks sisaldab simulaatorikomplekt kodumaisele veeremile paigaldatud standardvarustuse komplekti: juhirongi kraana konv. Nr 395, õhujaoturi seisukord. Nr 242, abipiduri klapi seisukord. nr 254 ja muud piduriseadmete elemendid. Lisandmooduli arendajal tuleb need elemendid ühendada vaid konkreetse veduri või auto pneumaatilisse ahelasse. Lisaks on olemas API oma riistvaraüksuste loomiseks.

Arhitektuuriliselt on RRS üles ehitatud kahe peamise protsessi koostoimele

  • simulaator — rongi füüsiline dünaamika mootor TrainEngine 2. Rakendab rongi liikumise füüsikat, võttes arvesse paljusid välistegureid, võttes arvesse liikuvate üksuste koostoimet läbi haakeseadmete, töötleb veeremi seadmete tööfüüsikat rakendavatest välistest moodulitest tulevaid andmeid.
  • vaatleja — graafikamootori baasil ehitatud graafiline alamsüsteem, mis visualiseerib rongi liikumist OpenSceneGraph

Need alamsüsteemid suhtlevad üksteisega jagatud mälu kaudu, mis põhineb Qt raamistiku QSharedMemory klassil. Esimestel demodel kasutati pistikupesapõhist IPC-d ning tulevikus on plaanis selle tehnoloogia juurde naasta, võttes arvesse simulaatori mõningate osade viimistlemist ja vajadusi tulevikku silmas pidades. Ühismälule üleminek oli teatud määral sunnitud meede, mis on oma aja ära elanud.

Ma ei kirjelda nüansse - paljud selle projekti arendamise käänded on juba välja toodud minu ressursi väljaannetes, eriti on mul üsna ulatuslik seeria õpetusi OpenSceneGraphi mootori kohta, mis kasvas välja selle projekti kallal töötamise praktikast.

Kõik projektis ei ole nii sujuv, kui me tahaksime. Eelkõige pole graafika alamsüsteem renderduskvaliteedi osas kaugeltki täiuslik ja simsi jõudlus jätab soovida. Sellel versioonil on üks eesmärk – tutvustada raudteetranspordihuviliste kogukonda projektiga, visandada selle võimalused ja lõpuks luua lisaseadmete arendajatele avatud, platvormideülene raudteesimulaator koos täiustatud API-ga.

Väljavaated

Väljavaated sõltuvad teist, meie kallid tulevased kasutajad ja arendajad. Projekt on avatud ja olemas ametlikul kodulehelkust saate simulaatori alla laadida dokumentatsioon, mille koostis täieneb pidevalt. Olemas foorum projekt, VK gruppJa youtube'i kanal, kust saate kõige üksikasjalikumat nõu ja abi.

Tänan teid tähelepanu eest!

Allikas: www.habr.com

Lisa kommentaar