Venemereede simulaator (RRS): esimene avalik vÀljaanne

KÀtte on jÔudnud kauaoodatud pÀev, mil saan lÔpuks esitleda seda arendust. Projekt sai alguse tÀpselt aasta tagasi, 1. septembril 2018, vÀhemalt RRS hoidlas Gtihub esimene commit kannabki selle kuupÀeva.

Reisijate rong Rostovi peatuses (klikkitav)

Venemereede simulaator (RRS): esimene avalik vÀljaanne

Mis on RRS? See on avatud lĂ€htekoodiga platvormidevaheline 1520 mm raudtee sĂ”idukite simulaator. Lugija kĂŒsib pĂ”hjendatult: "Kas see projekt on vajalik, kui raudteeteemalisi simulaatoreid, olgu need siis kommertslikud vĂ”i avatud, on piisavalt?" Sellele kĂŒsimusele vastamiseks kutsun teid alla kerima.

Projektiajalugu

Kaugel minevikus, aastal 2001, nĂ€gi pĂ€evavalgust Microsoft Train Simulator (MSTS), mis tekitas meie riigis tohutu raudteemĂ€ngijate kogukonna. Mitme aasta jooksul, mil see projekt eksisteeris (kuni Microsoft selle hĂŒljas, tegeledes tema jaoks huvitamate asjadega, nagu Nokiat pankrotti ajada jne), kasvas projektilt vĂ€lja massiliselt selle jaoks loodud lisandeid: marsruute, sĂ”idukeid, stsenaariume.

MSTS pĂ”hjal on hiljem loodud mitmeid teisi projekte, nagu OpenRails, RTrainSim (RTS) ja teised laiendused ja tuletised. Üksikuid kaubandusprojekte, nagu kuulus Trainz, ei saa aga paljude raudteesĂ”prade arvates tagasihoidlikest pĂ”hjustest heaks kiita — need ei peegelda meie kodumaise veeremi eripĂ€ra, mida töötatakse vĂ€lja ja kasutatakse post-sovetlikus ruumis. Erakordselt on see nĂ€htav, kui vaatame, kuidas rongide pidurid on teostatud — ĂŒheski mainitud projektis ei ole ja ei tule normaalselt vĂ€ljaĂ”ppe-automaatpidureid Matrosovi sĂŒsteemis.

Kaugel 2008. aastal ilmus teine projekt — ZDSimulator, mille arendas Vyacheslav Usov. Projekt on tĂ€helepanuvÀÀrne, kuna arvestab ja parandab eelmainitud puudusi, olles algselt suunatud Venemaa raudteede veeremile. Kuid on olemas ĂŒks suur "aga" — projekt on proprietary ja suletud, arhitektuuriliselt ei luba see suunata oma veeremi mudelit.

Aasta 2007, kui hakkasin töötama OAO VÉlNII, teadustöötajana ning pĂ€rast oma vĂ€itekirja kaitsmist 2008. aastal — vanemteadurina. Just siis tutvustati mulle tolle aja viimaseid arengutegevusi raudteemĂ€ngude simulaatorite vallas. See, mida ma nĂ€gin, ei meeldinud mulle, ja projekti ZDSimulator tol ajal veel ei olnud. Hiljem, olles innustatud sĂ”idukite dĂŒnaamikast, suundusin Rostovi riiklikku raudteetĂ€ienduskĂ”rgkooli (RGUPS) koos doktoritöö teemaga kaubarongide pidurdusdĂŒnaamikast. TĂ€naseks juhin raudteetranspordi simulaatorite arendamist meie ĂŒlikoolis ning Ă”petan erialaseid aineid "Veovahendi komponent" teaduskonnas.

KĂ”ik eelpoolmainitud pĂ”hjal tekkis idee luua simulaator, mis annaks lisandite arendajale tĂ€ieliku kontrolli liikuvate elementide fĂŒĂŒsikaliste protsesside ĂŒle. Sarnane kosmosesimulaatorile Orbiter, mille jaoks ma kunagi arendasin lisandit, mis koosneb R-7 baasil olevatest kanderaketidest. Aasta tagasi asusin sellele tööle ja pĂŒhendusin sellele tĂ€ielikult. 26. detsembril 2018 nĂ€gi ilmavalgust see tehnoloogiline demoversioon.

Minu töö jĂ€i silma entusiastidele ja tuntud raudtee-simulaatorite ringkondades, visuaalse sisu looja ZDsimulator jaoks Roman Biryukov (Romych RĆœDUZ) pakkus mulle abi ja koostööd projekti edasise arendamise osas. Hiljem liitus meiega veel ĂŒks arendaja — Aleksandr Mischenko (Ulovskii2017), ZDsimulatori marsruutide looja. Meie koostöö tĂ”i meid esimese vĂ€ljaande juurde. Videol on nĂ€ha, milline mĂ€ng vĂ€lja nĂ€eb oma esimeses vĂ€ljaandes.

Vaata videot

RRS simulaatori omadused

Esiteks on see avatud tarkvaraarhitektuur. RÀÀkimata sellest, et simulaatori kood on avatud, on olemas API ja SDK, mis on suunatud kolmandate osapoolte lisade arendajatele. Sisenemise lĂ€vi on ĂŒsna kĂ”rge — vajalikud on pĂ”hiteadmised C++ programmeerimises. Simulaator on kirjutatud just selle keelega, kasutades GCC ja selle varianti MinGW Windowsi operatsioonisĂŒsteemis. Lisaks on soovitatav, et arendajal oleks tuttav Qt raamistikuga, kuna paljusid selle pĂ”himĂ”tteid kasutatakse mĂ€ngu arhitektuuri aluseks.

Kuid piisava pĂŒhendumise ja sooviga avab see projekt arendajatele suurepĂ€raseid vĂ”imalusi lisade loomiseks. Rongi koosseis teostatakse moodulitena, mis pĂ”hinevad dĂŒnaamilistel raamatukogudel. Peamine struktuurielement simulaatoris on liikurkomplekt., vĂ”i liikuv ĂŒksus (LE) — vagun (ilma enda jĂ”u vĂ”i mootorrongis) vĂ”i lokomotiivi sektsioon. API vĂ”imaldab mÀÀrata pöördemomendi, mis mĂ”jub LE ratastele, millele vastuseks saadakse rataste nurkkiirus, samuti vĂ€lised parameetrid, nagu pinge ja voolu tĂŒĂŒp kontaktvĂ”rgus. Rohkem simulator ei tea ja ei taha teada, mis jĂ€tab siseseadmete töö fĂŒĂŒsika konkreetse lokomotiivi vĂ”i vaguni arendaja mureks.

Pole raske arvata, et selline suhteliselt madala taseme lĂ€henemine vĂ”imaldab rakendada lokomotiivi skeemi kĂ”ige vĂ€iksemaid nĂŒansse. Lisaks sisaldab simulaatori komplekt standardset varustust, mis on paigaldatud kodumaistele liikuvatele koostudele: rongimehe tĂ”stuk (nr 395), Ă”hukĂ€itlus seade (nr 242), abitrakti peatumisventiil (nr 254) ja muid pidurisĂŒsteemi komponente. TĂ€ienduse arendajal on piisavalt, et ĂŒhendada need elemendid konkreetse lokomotiivi vĂ”i vaguni pneumaatilisse skeemi. Samuti on olemas API, et luua oma seadmete plokke.

Arhitektuurne RRS pÔhineb kahe peamise protsessi interaktsioonil

  • simulaator — fĂŒĂŒsikaline rongi dĂŒnaamika mootor TrainEngine 2. Rakendab rongi liikumise fĂŒĂŒsikat, arvesse vĂ”ttes mitmeid vĂ€liseid tegureid, ning kĂ€sitleb liikuvate ĂŒksuste omavahelist interaktsiooni lĂ€bi haakeseadmete, samuti töödeldes andmeid, mis saadetakse vĂ€listest moodulitest, mis rakendavad tehnika töö fĂŒĂŒsikat.
  • vaataja — graafiline alamsĂŒsteem, mis visualiseerib rongi liikumist, pĂ”hinedes graafilisel mootoril OpenSceneGraph

Need alamsĂŒsteemid suhtlevad omavahel lĂ€bi ĂŒhise mĂ€luga, mis on rakendatud QSharedMemory klassi pĂ”hjal Qt raamistikus. Esimesed demo-versioonid kasutasid IPC-d soklite pĂ”hjal ja tulevikus kavandatakse tagasi naasta sellele tehnoloogiale, arvestades simulaatori teatud osade tĂ€iustamist ja tuleviku vajadusi. Ühise mĂ€lu kasutusele vĂ”tmine oli mingil mÀÀral sunnitud samm, mis on oma aja Ă€ra elanud.

Ma ei hakka nĂŒansse kirjeldama — paljud selle projekti arenguga seotud peripetiad on juba kajastatud minu publikatsioonides, sealhulgas mul on ĂŒsna ulatuslik tutvustuste tsĂŒkkel OpenSceneGraph mootorile., mis töö pĂ”hineb selle projekti praktikal.

Projekt ei arenenud just nii sujuvalt kui sooviksime. EelkĂ”ige on graafiline sĂŒsteem kvaliteedi renderdamise osas kaugel ideaalist ja simulaatori jĂ”udlus jĂ€tab soovida. KĂ€esoleva vĂ€ljaande eesmĂ€rk on tutvustada raudteetranspordi entusiastide kogukonnale projekti, mÀÀratleda selle vĂ”imalused ja lĂ”puks luua avatud, mitmeplatvormiline raudteemudeli simulaator, millel on arendajatele suunatud edasijĂ”udnud API.

Perspektiivid

Perspektiivid sĂ”ltuvad teist, meie kallid tulevased kasutajad ja arendajad. Projekt on avatud ja olemas ametlik veebisait, kust saab simulaatori alla laadida, koos dokumentatsiooniga, mille sisu tĂ€ieneb pidevalt. Eksisteerib projekti foorum, VK grupp YouTube'i kanal, ja , kus saab saada ĂŒksikasjalikku nĂ”u ja abi., kus saad kĂ”ige ĂŒksikasjalikumat nĂ”u ja abi.

AitÀh tÀhelepanu eest!

Allikas: habr.com

Osta usaldusvÀÀrne veebihosting DDoS kaitsega, VPS VDS serverid đŸ”„ Osta usaldusvÀÀrne veebihosting DDoS kaitsega, VPS VDS serverid | ProHoster