Ruski simulator željeznice (RRS): prvo javno izdanje

DoŔao je dan koji sam čekao kada konačno mogu predstaviti ovaj razvoj. Projekt je započeo prije točno godinu dana, barem 1. rujna 2018 RRS spremiŔta na Gtihub-u prvi commit ima točno ovaj datum.

Putnički vlak na Glavnom kolodvoru Rostov (na klik)

Ruski simulator željeznice (RRS): prvo javno izdanje

Å to je RRS? Ovo je otvoreni viÅ”eplatformski simulator željezničkih vozila Å”irine 1520 mm. Čitatelj će se, naravno, zapitati: ā€œOprostite, čemu ovaj projekt, ako postoji dovoljan broj željezničkih simulatora, komercijalnih i otvorenih?ā€ Za odgovor na ovo pitanje predlažem pogledati pod mačku

Povijest projekta

Jednom davno, 2001. godine, objavljena je Microsoftov simulator vlaka (MSTS), čime je nastala ogromna zajednica željezničkih simera u naŔoj zemlji. Tijekom nekoliko godina koliko je ovaj projekt postojao (sve dok ga Microsoft nije napustio, preŔavŔi na njemu zanimljivije stvari, poput bankrota Nokie itd.), projekt je stekao masu dodataka stvorenih za njega: rute, vozni park, scenariji.

Na temelju MSTS-a naknadno je nastao niz drugih projekata kao npr OpenRails, RTrainSim (RTS) i drugi dodaci i izvedenice. Pojavili su se i komercijalni projekti, poput poznatog trainz. I sve bi bilo u redu, ali mnogi ljubitelji željezničkog prometa nisu zadovoljni ovim proizvodima iz sasvim objektivnih razloga - oni ni na koji način ne odražavaju specifičnosti domaćih željezničkih vozila koja se koriste i razvijaju na postsovjetskom prostoru. To je posebno akutno kada se pogleda kako su implementirane kočnice vlakova - nijedan od navedenih projekata nema niti će imati normalnu implementaciju automatskih kočnica Matrosovljevog sustava.

U ne tako dalekoj 2008. godini pojavio se joÅ” jedan projekt - ZDSimulator, koji je razvio Vjačeslav Usov. Projekt je značajan po tome Å”to uzima u obzir i ispravlja gore navedene nedostatke, dok se u početku usredotočuje na željeznička vozila ruskog kolosijeka. Ali postoji jedno veliko "ali" - projekt je vlasnički i zatvoren, arhitektonski ne dopuÅ”ta uvođenje vlastitog voznog parka.

I sam sam na temu željeznice doÅ”ao 2007. godine, kada sam počeo raditi JSC VELNII, kao znanstveni novak, a nakon obrane doktorske disertacije 2008. godine, u zvanje viÅ”eg znanstvenog novaka. Tada sam se upoznao s najnovijim dostignućima na području simulacijskih igara željeznice u to vrijeme. I nije mi se svidjelo ono Å”to sam vidio, a projekt ZDSimulator u to vrijeme nije postojao. Kasnije sam, fasciniran dinamikom željezničkog vozila, doÅ”ao na Rostovsko državno sveučiliÅ”te za promet (RGUPS) s temom doktorske disertacije Kočna dinamika teretnog vlaka. Danas vodim razvoj kompleksa za obuku željezničkog prometa za naÅ”e sveučiliÅ”te i predajem specijalizirane discipline na Odjelu za vučna željeznička vozila.

U vezi sa svime navedenim javila se ideja o izradi simulatora koji bi razvijaču dodatka za njega omogućio potpunu kontrolu nad fizičkim procesima koji se odvijaju u željezničkom vozilu. Slično svemirskom simulatoru Orbiter, za koji sam svojedobno razvio dodatak u obliku obitelji raketa-nosača temeljenih na R-7. Prije godinu dana prihvatio sam se ovog posla i bacio sam se na njega. Ovdje je svjetlo ugledao 26. prosinca 2018 ovaj demo tehnologije.

Moj rad su primijetili entuzijasti, au krugovima željezničara poznati kreator vizualnog sadržaja za ZDsimulator Roman Biryukov (Ruske željeznice Romych) ponudio mi je pomoć i suradnju u daljnjem razvoju projekta. Kasnije nam se pridružio joÅ” jedan programer - Alexander Mishchenko (Ulovskii2017), kreator rute za ZDsimulator. NaÅ”a nas je suradnja dovela do naÅ”eg prvog izdanja. Video prikazuje pregled kako igra izgleda za svoje prvo izdanje

Reproduciraj videozapis

Značajke RRS simulatora

Prije svega, to je otvorena softverska arhitektura. Ne samo da je kod simulatora otvorenog koda, već postoji i API i SDK namijenjeni programerima dodataka trećih strana. Ulazna barijera je prilično visoka - potrebne su osnovne vjeÅ”tine razvoja u C++. Simulator je napisan u C++, koristeći GCC kompajler i njegovu MinGW varijantu za operativni sustav. WindowsOsim toga, preporučljivo je da programer bude upoznat s Qt frameworkom, jer mnogi njegovi koncepti čine osnovu arhitekture igre.

Međutim, uz dužnu marljivost i želju, ovaj projekt razvijaču dodataka otvara ogromne mogućnosti. Željezničko vozilo implementirano je u obliku modula temeljenih na dinamičkim bibliotekama. Glavni strukturni element u simulatoru je jedinica voznog parka, ili mobilna jedinica (MU) - vagon (samohodni ili kao dio vlaka sa viÅ”e vlakova) ili dio lokomotive. API omogućuje postavljanje zakretnog momenta primijenjenog na PE kotače, kao odgovor primajući kutnu brzinu kotača, kao i vanjske parametre, poput napona i vrste struje u kontaktnoj mreži. Simulator niÅ”ta drugo ne zna i ne želi znati, Å”to fiziku unutarnje opreme ostavlja na savjesti razvojnog inženjera određene lokomotive ili automobila.

Nije teÅ”ko pogoditi da takav pristup relativno niske razine omogućuje implementaciju najmanjih nijansi kruga lokomotive. Osim toga, komplet simulatora uključuje skup standardne opreme instalirane na domaćim željezničkim vozilima: dizalicu za vlak vozača konv. Br. 395, stanje razdjelnika zraka. Br. 242, stanje ventila pomoćne kočnice. broj 254 i ostali elementi kočne opreme. Programer dodatka treba samo spojiti ove elemente u pneumatski krug određene lokomotive ili automobila. Osim toga, postoji API za stvaranje vlastitih hardverskih jedinica.

Arhitektonski, RRS je izgrađen na interakciji dva glavna procesa

  • simulator — motor za fizičku dinamiku vlaka TrainEngine 2. Implementira fiziku kretanja vlaka, uzimajući u obzir mnoge vanjske čimbenike, uzimajući u obzir međudjelovanje pokretnih jedinica preko uređaja za spajanje, obrađuje podatke koji dolaze iz vanjskih modula koji provode fiziku rada opreme željezničkih vozila.
  • gledatelj — grafički podsustav koji vizualizira kretanje vlaka, izgrađen na temelju grafičkog motora OpenSceneGraph

Ovi podsustavi međusobno djeluju putem zajedničke memorije, implementirane na temelju QSharedMemory klase Qt okvira. Prvi demo primjeri koristili su IPC temeljen na utičnicama, a planira se povratak ovoj tehnologiji u budućnosti, uzimajući u obzir usavrÅ”avanje nekih dijelova simulatora i potrebe s pogledom na budućnost. Prijelaz na zajedničko pamćenje donekle je bila iznuđena mjera koja je nadživjela svoju korisnost.

Neću opisivati ​​nijanse - mnoge peripetije razvoja ovog projekta već su navedene u mojim publikacijama na resursu, posebno imam prilično opsežan niz tutorijala o OpenSceneGraph motoru, koji je proizaÅ”ao iz prakse rada na ovom projektu.

Nije sve u projektu glatko kako bismo željeli. Konkretno, grafički podsustav je daleko od savrÅ”enog u smislu kvalitete renderiranja, a izvedba sim-a ostavlja mnogo za poželjeti. Ovo izdanje ima jedan cilj - upoznati zajednicu entuzijasta željezničkog prometa s projektom, ocrtati njegove mogućnosti i konačno stvoriti otvoreni željeznički simulator za viÅ”e platformi s naprednim API-jem za programere dodataka.

Planovi

Izgledi ovise o vama, naÅ”i dragi budući korisnici i programeri. Projekt je otvoren i postoji Službena web stranicaodakle možete preuzeti simulator dokumentacija, čiji će se sastav kontinuirano nadopunjavati. postoji na forumu projekt, VK grupaI YouTube kanal, gdje možete dobiti najdetaljnije savjete i pomoć.

Hvala vam!

Izvor: www.habr.com

Kupite pouzdan hosting za stranice s DDoS zaÅ”titom, VPS VDS poslužiteljima šŸ”„ Kupite pouzdan web hosting sa DDoS zaÅ”titom, VPS VDS servere | ProHoster