Krievijas dzelzceļa simulators (RRS): pirmais publiskais izlaidums

Ir pienākusi gaidÄ«tā diena, kad beidzot varu prezentēt Å”o attÄ«stÄ«bu. Projekts tika uzsākts tieÅ”i pirms gada, vismaz 1. gada 2018. septembrÄ« RRS krātuves vietnē Gtihub pirmajai apņemÅ”anai ir tieÅ”i Å”is datums.

Pasažieru vilciens Rostovas galvenajā stacijā (noklikŔķināms)

Krievijas dzelzceļa simulators (RRS): pirmais publiskais izlaidums

Kas ir RRS? Å is ir 1520 mm platuma ritoŔā sastāva atvērts vairāku platformu simulators. LasÄ«tājs, protams, uzdos jautājumu: "Atvainojiet, kam Å”is projekts ir paredzēts, ja ir pietiekami daudz dzelzceļa simulatoru gan komerciālu, gan atvērtu?" Atbildei uz Å”o jautājumu iesaku paskatÄ«ties zem kaÄ·a

Projekta vēsture

Reiz, 2001. gadā, tas tika publicēts Microsoft vilcienu simulators (MSTS), kas mÅ«su valstÄ« radÄ«ja milzÄ«gu dzelzceļnieku kopienu. Vairāku gadu laikā, kad Å”is projekts pastāvēja (lÄ«dz Microsoft to pameta, pārejot pie interesantākām lietām, piemēram, Nokia bankrots u.c.), projekts ieguva lielu skaitu tam radÄ«tu papildinājumu: marÅ”ruti, ritoÅ”ais sastāvs, scenāriji.

Pamatojoties uz MSTS, pēc tam tika izveidoti vairāki citi projekti, piemēram OpenRails, RTrainSim (RTS) un citi papildinājumi un atvasinājumi. ParādÄ«jās arÄ« komerciāli projekti, piemēram, slavenais Trencs. Un viss jau bÅ«tu labi, taču daudzus dzelzceļa transporta cienÄ«tājus Å”ie izstrādājumi neapmierina gluži objektÄ«vu iemeslu dēļ ā€“ tie nekādi neatspoguļo postpadomju telpā ekspluatētā un attÄ«stÄ«tā vietējā ritoŔā sastāva specifiku. Tas ir Ä«paÅ”i aktuāli, aplÅ«kojot, kā tiek ieviestas vilcienu bremzes - nevienā no uzskaitÄ«tajiem projektiem nav un nebÅ«s normāla Matrosova sistēmas automātisko bremžu ievieÅ”ana.

Ne tik tālajā 2008. gadā parādÄ«jās vēl viens projekts - ZDSimulators, ko izstrādājis Vjačeslavs Usovs. Projekts ir ievērojams ar to, ka tajā ir ņemtas vērā un novērstas iepriekÅ” minētās nepilnÄ«bas, sākotnēji koncentrējoties uz Krievijas sliežu platuma ritoÅ”o sastāvu. Bet ir viens liels ā€œbetā€ - projekts ir patentēts un slēgts, arhitektoniski neļaujot ieviest savu ritoÅ”o sastāvu.

Pats pie dzelzceļa tēmas nonācu 2007. gadā, kad sāku strādāt AS VELNII, kā zinātniskais lÄ«dzstrādnieks un pēc doktora disertācijas aizstāvÄ“Å”anas 2008. gadā kā vecākais zinātniskais lÄ«dzstrādnieks. TieÅ”i tad es iepazinos ar jaunākajiem tā laika sasniegumiem dzelzceļa simulācijas spēļu jomā. Un man nepatika tas, ko es redzēju, un ZDSimulator projekts tajā laikā nepastāvēja. Vēlāk, aizrāvies ar ritoŔā sastāva dinamiku, es nonācu Rostovas Valsts transporta universitātē (RGUPS) ar doktora disertācijas tēmu par kravas vilciena bremzÄ“Å”anas dinamiku. Å odien es vadu mÅ«su universitātes dzelzceļa transporta mācÄ«bu kompleksu izstrādi un pasniedzu specializētās disciplÄ«nas Vilces ritoŔā sastāva katedrā.

SaistÄ«bā ar visu iepriekÅ” minēto radās ideja izveidot simulatoru, kas ļautu tā papildinājuma izstrādātājam iegÅ«t pilnu kontroli pār ritoÅ”ajā sastāvā notiekoÅ”ajiem fiziskajiem procesiem. LÄ«dzÄ«gi kā Orbiter kosmosa simulatoram, kuram savulaik izstrādāju papildinājumu nesējraÄ·eÅ”u saimes veidā uz R-7 bāzes. Pirms gada es ķēros pie Ŕī darba un iemetos tajā. 26. gada 2018. decembris Å”eit ieraudzÄ«ja gaismu Ŕī tehnoloÄ£iju demonstrācija.

Manu darbu pamanÄ«ja entuziasti, un tas ir labi pazÄ«stams dzelzceļnieku aprindās, ZDsimulator vizuālā satura veidotājs. Romāns Birjukovs (Romiča Krievijas dzelzceļŔ) piedāvāja man palÄ«dzÄ«bu un sadarbÄ«bu projekta tālākā attÄ«stÄ«bā. Vēlāk mums pievienojās vēl viens izstrādātājs - Aleksandrs MiŔčenko (Ulovskii2017), marÅ”ruta veidotājs programmai ZDsimulator. MÅ«su sadarbÄ«ba noveda pie mÅ«su pirmā laidiena. Videoklipā ir parādÄ«ts pārskats par to, kā spēle izskatās pirmajā izlaidumā

RRS simulatora funkcijas

Pirmkārt, tā ir atvērta programmatÅ«ras arhitektÅ«ra. Nemaz nerunājot par to, ka simulatora kods ir atvērts, ir API un SDK, kas paredzēti treÅ”o puÅ”u pievienojumprogrammu izstrādātājiem. IestāŔanās barjera ir diezgan augsta ā€“ nepiecieÅ”amas pamata C++ attÄ«stÄ«bas prasmes. Simulators tajā ir ierakstÄ«ts, izmantojot GCC kompilatoru un tā MinGW variantu Windows operētājsistēmai. Turklāt izstrādātājam ir ieteicams pārzināt Qt sistēmu, jo daudzas tās koncepcijas ir spēles arhitektÅ«ras pamatā.

Tomēr ar pienācÄ«gu rÅ«pÄ«bu un vēlmi Å”is projekts paver milzÄ«gas iespējas papildinājumu izstrādātājam. RitoÅ”ais sastāvs tiek realizēts moduļu veidā, kuru pamatā ir dinamiskās bibliotēkas. Galvenais strukturālais elements simulatorā ir ritoŔā sastāva vienÄ«ba, vai mobilā vienÄ«ba (MU) - automaŔīna (nepaÅ”piedziņa vai kā sastāva sastāva daļa) vai lokomotÄ«ves sekcija. API ļauj iestatÄ«t PE riteņu komplektiem pielikto griezes momentu, reaģējot uz riteņpāru leņķisko ātrumu, kā arÄ« ārējos parametrus, piemēram, spriegumu un strāvas veidu kontakttÄ«klā. Simulators neko citu nezina un negrib zināt, kas iekŔējā aprÄ«kojuma fiziku atstāj uz konkrētas lokomotÄ«ves vai auto izstrādātāja sirdsapziņas.

Nav grÅ«ti uzminēt, ka Ŕāda salÄ«dzinoÅ”i zema lÄ«meņa pieeja ļauj Ä«stenot vismazākās lokomotÄ«ves ķēdes nianses. Turklāt simulatora komplektā ietilpst standarta aprÄ«kojuma komplekts, kas uzstādÄ«ts iekÅ”zemes ritoÅ”ajam sastāvam: maŔīnista vilciena celtnis konv. Nr.395, gaisa sadalÄ«tāja stāvoklis. Nr.242, palÄ«gbremžu vārsta stāvoklis. Nr.254 un citi bremžu iekārtu elementi. Papildinājuma izstrādātājam atliek tikai savienot Å”os elementus konkrētas lokomotÄ«ves vai automaŔīnas pneimatiskajā ķēdē. Turklāt ir API, lai izveidotu savas aparatÅ«ras vienÄ«bas.

Arhitektoniski RRS balstās uz divu galveno procesu mijiedarbību

  • simulators ā€” vilciena fiziskās dinamikas dzinējs TrainEngine 2. Realizē vilciena kustÄ«bas fiziku, ņemot vērā daudzus ārējos faktorus, ņemot vērā kustÄ«go vienÄ«bu mijiedarbÄ«bu caur sakabes ierÄ«cēm, apstrādā datus, kas nāk no ārējiem moduļiem, kuri realizē ritoŔā sastāva iekārtu darbÄ«bas fiziku.
  • skatÄ«tājs ā€” grafiska apakÅ”sistēma, kas vizualizē vilcienu kustÄ«bu, kas veidota uz grafikas dzinēja bāzes OpenSceneGraph

Å Ä«s apakÅ”sistēmas mijiedarbojas viena ar otru, izmantojot koplietojamo atmiņu, kas ieviesta, pamatojoties uz Qt ietvara QSharedMemory klasi. Pirmajās demonstrācijās tika izmantots uz ligzdām balstÄ«ts IPC, un nākotnē ir plānots atgriezties pie Ŕīs tehnoloÄ£ijas, ņemot vērā dažu simulatora daļu pilnveidoÅ”anu un vajadzÄ«bas, ņemot vērā nākotni. Pāreja uz koplietojamo atmiņu zināmā mērā bija piespiedu pasākums, kas savu lietderÄ«bu ir pārdzÄ«vojis.

Es neaprakstÄ«Å”u nianses - daudzas Ŕī projekta attÄ«stÄ«bas peripetijas jau ir izklāstÄ«tas manās publikācijās par resursu, jo Ä«paÅ”i man ir diezgan plaÅ”s virkne pamācÄ«bu par OpenSceneGraph dzinēju, kas izauga no prakses strādāt pie Ŕī projekta.

Ne viss projektā norit tik gludi, kā gribētos. Jo Ä«paÅ”i grafikas apakÅ”sistēma ir tālu no perfektas renderÄ“Å”anas kvalitātes ziņā, un sim veiktspēja atstāj daudz vēlamo. Å im laidienam ir viens mērÄ·is - iepazÄ«stināt dzelzceļa transporta entuziastu kopienu ar projektu, iezÄ«mēt tā iespējas un visbeidzot izveidot atvērtu, starpplatformu dzelzceļa simulatoru ar uzlabotu API papildinājumu izstrādātājiem.

Perspektīvas

Izredzes ir atkarÄ«gas no jums, mÅ«su dārgie topoÅ”ie lietotāji un izstrādātāji. Projekts ir atvērts un pastāv oficiālā vietnekur var lejupielādēt simulatoru, no dokumentācija, kura sastāvs tiks nepārtraukti papildināts. Pastāv forums projekts, VK grupaUn youtube kanāls, kur varat saņemt visprecÄ«zākos padomus un palÄ«dzÄ«bu.

Š”ŠæŠ°ŃŠøŠ±Š¾ Š·Š° Š²Š½ŠøŠ¼Š°Š½ŠøŠµ!

Avots: www.habr.com

Pievieno komentāru