රුසියානු දුම්රිය සිමියුලේටරය (RRS): පළමු පොදු නිකුතුව

අවසානයේ මේ සංවර්ධනය ඉදිරිපත් කළ හැකි දවස මා බලා සිටි දිනය පැමිණ තිබේ. ව්‍යාපෘතිය ආරම්භ කළේ හරියටම වසරකට පෙර, එනම් 1 සැප්තැම්බර් 2018 වැනිදා, අවම වශයෙන් Gtihub මත RRS ගබඩා පළමු කැපවීම හරියටම මෙම දිනය ඇත.

Rostov ප්‍රධාන දුම්රිය ස්ථානයේ මගී දුම්රිය (ක්ලික් කළ හැකි)

රුසියානු දුම්රිය සිමියුලේටරය (RRS): පළමු පොදු නිකුතුව

RRS යනු කුමක්ද? මෙය 1520 mm මාපක රෝලිං තොගයේ විවෘත හරස් වේදිකා සිමියුලේටරයකි. පාඨකයා නිරායාසයෙන්ම ප්‍රශ්නය අසනු ඇත: “සමාවන්න, වාණිජ හා විවෘත දුම්රිය සිමියුලේටර් ප්‍රමාණවත් සංඛ්‍යාවක් තිබේ නම්, මෙම ව්‍යාපෘතිය කුමක් සඳහාද?” මෙම ප්රශ්නයට පිළිතුර සඳහා, මම බළලා යටතේ බැලීමට යෝජනා කරමි

ව්‍යාපෘති ඉතිහාසය

වරෙක, 2001 දී එය ප්රකාශයට පත් විය Microsoft Train Simulator (MSTS), එය අපේ රටේ දුම්රිය ගිල්වන්නන්ගේ විශාල ප්‍රජාවක් බිහි කළේය. මෙම ව්‍යාපෘතිය පැවති වසර කිහිපය තුළ (මයික්‍රොසොෆ්ට් විසින් එය අත්හැර දමන තුරු, Nokia හි බංකොලොත් භාවය වැනි, ඒ සඳහා වඩාත් රසවත් දේවල් වෙත ගමන් කරන තුරු), ව්‍යාපෘතිය ඒ සඳහා නිර්මාණය කරන ලද එකතු කිරීම් විශාල ප්‍රමාණයක් ලබා ගත්තේය: මාර්ග, පෙරළීමේ කොටස්, අවස්ථා.

MSTS මත පදනම්ව, වෙනත් ව්‍යාපෘති ගණනාවක් පසුව නිර්මාණය කරන ලදී විවෘත රේල්, RTrainSim (RTS) සහ වෙනත් එකතු කිරීම් සහ ව්‍යුත්පන්න. ප්රසිද්ධ වැනි වාණිජ ව්යාපෘති ද දර්ශනය විය ට්‍රේන්ස්. සෑම දෙයක්ම හොඳ වනු ඇත, නමුත් දුම්රිය ප්‍රවාහනයේ බොහෝ පංකා මෙම නිෂ්පාදන පිළිබඳව සෑහීමකට පත්වේ නැත - ඒවා කිසිදු ආකාරයකින් පශ්චාත් සෝවියට් අවකාශයේ ක්‍රියාත්මක වූ සහ සංවර්ධනය කරන ලද දේශීය රෝලිං තොගයේ විශේෂතා පිළිබිඹු කරයි. දුම්රිය තිරිංග ක්රියාත්මක කරන ආකාරය දෙස බලන විට මෙය විශේෂයෙන් උග්ර වේ - ලැයිස්තුගත ව්යාපෘති කිසිවක් Matrosov පද්ධතියේ ස්වයංක්රීය තිරිංග සාමාන්ය ක්රියාත්මක කිරීමක් හෝ නැත.

2008 එතරම් දුර නොවන වර්ෂයේදී තවත් ව්‍යාපෘතියක් දර්ශනය විය - ZDS සිමියුලේටර්, Vyacheslav Usov විසින් වර්ධනය කරන ලදී. මුලදී රුසියානු මාපක පෙරළීමේ කොටස් කෙරෙහි අවධානය යොමු කරන අතරම, ඉහත සඳහන් කළ අඩුපාඩු සැලකිල්ලට ගෙන ඒවා නිවැරදි කිරීම මෙම ව්‍යාපෘතිය කැපී පෙනේ. නමුත් එක් විශාල “නමුත්” එකක් ඇත - ව්‍යාපෘතිය හිමිකාර සහ වසා ඇත, වාස්තු විද්‍යාත්මකව තමන්ගේම රෝලිං තොගයක් හඳුන්වා දීමට ඉඩ නොදේ.

මම දුම්රිය මාතෘකාවට ආවේ 2007 දී, මම වැඩ කිරීමට පටන් ගත් විට JSC VELNII, පර්යේෂකයෙකු ලෙස, සහ 2008 දී ඔහුගේ ආචාර්ය උපාධි නිබන්ධනය ආරක්ෂා කිරීමෙන් පසු, ජ්‍යෙෂ්ඨ පර්යේෂණ සගයෙකු ලෙස. එකල දුම්රිය සමාකරණ ක්‍රීඩා ක්ෂේත්‍රයේ නවතම ජයග්‍රහණ පිළිබඳව මා දැන හඳුනා ගත්තේ එවිටය. මා දුටු දෙයට මම කැමති නොවූ අතර ZDSimulator ව්‍යාපෘතිය එකල නොතිබුණි. පසුව, රෝලිං ස්ටොක් වල ගතිකත්වයට වශී වූ මම රොස්ටොව් ප්‍රාන්ත ප්‍රවාහන විශ්ව විද්‍යාලයට පැමිණියෙමි (RGUPS) භාණ්ඩ ප්‍රවාහන දුම්රියක තිරිංග ගතිකත්වය පිළිබඳ ආචාර්ය උපාධි නිබන්ධනයක මාතෘකාව සමඟ. අද මම අපගේ විශ්ව විද්‍යාලය සඳහා දුම්රිය ප්‍රවාහන පුහුණු සංකීර්ණ සංවර්ධනයට නායකත්වය දෙන අතර ට්‍රැක්ෂන් රෝලිං තොග දෙපාර්තමේන්තුවේ විශේෂිත විෂයයන් උගන්වමි.

ඉහත සියල්ල හා සම්බන්ධව, සිමියුලේටරයක් ​​නිර්මාණය කිරීමේ අදහස ඇති වූ අතර එමඟින් ඇඩෝන සංවර්ධකයාට රෝලිං තොගයේ සිදුවන භෞතික ක්‍රියාවලීන් පිළිබඳ පූර්ණ පාලනය ලබා ගැනීමට ඉඩ සලසයි. Orbiter අභ්‍යවකාශ සිමියුලේටරයට සමානයි, ඒ සඳහා මම වරක් R-7 මත පදනම් වූ දියත් කිරීමේ වාහන පවුලක ස්වරූපයෙන් එකතු කිරීමක් සංවර්ධනය කළෙමි. මීට වසරකට පෙර මම මෙම කාර්යය භාරගෙන එයට මා යොමු කළෙමි. 26 දෙසැම්බර් 2018 මෙහි ආලෝකය දුටුවේය මෙම තාක්ෂණ demo.

මගේ කාර්යය උද්යෝගිමත් අයගේ අවධානයට ලක් වූ අතර ZDsimulator සඳහා දෘශ්‍ය අන්තර්ගතයේ නිර්මාතෘ වන දුම්රිය සිමර්ස් කවයේ ප්‍රසිද්ධය. රෝමන් බිරියුකොව් (රොමිච් රුසියානු දුම්රිය) ව්‍යාපෘතියේ තවදුරටත් සංවර්ධනය සඳහා මට උදව් සහ සහයෝගීතාව ලබා දුන්නේය. පසුව තවත් සංවර්ධකයෙකු අප හා සම්බන්ධ විය - ඇලෙක්සැන්ඩර් මිෂ්චෙන්කෝ (Ulovskii2017), ZDsimulator සඳහා මාර්ග නිර්මාතෘ. අපගේ සහයෝගීතාවය අපගේ පළමු නිකුතුවට අපව ගෙන ගියේය. වීඩියෝව එහි පළමු නිකුතුව සඳහා ක්‍රීඩාව පෙනෙන ආකාරය පිළිබඳ දළ විශ්ලේෂණයක් පෙන්වයි

RRS සිමියුලේටරයේ විශේෂාංග

මුලින්ම කියන්න ඕන මේක open software architecture එකක්. සිමියුලේටර් කේතය විවෘතව ඇති බව සඳහන් නොකරන්න, එයට තෙවන පාර්ශවීය ඇඩෝන සංවර්ධකයින් ඉලක්ක කරගත් API සහ SDK ඇත. ඇතුල්වීමේ බාධකය තරමක් ඉහළයි - මූලික C++ සංවර්ධන කුසලතා අවශ්‍ය වේ. වින්ඩෝස් මෙහෙයුම් පද්ධතිය සඳහා GCC සම්පාදකය සහ එහි MinGW ප්‍රභේදය භාවිතා කරමින් සිමියුලේටරය එහි ලියා ඇත. මීට අමතරව, එහි බොහෝ සංකල්ප ක්‍රීඩාවේ ගෘහ නිර්මාණ ශිල්පයට යටින් පවතින බැවින්, සංවර්ධකයා Qt රාමුව පිළිබඳව හුරුපුරුදු වීම සුදුසුය.

කෙසේ වෙතත්, නිසි කඩිසරකම සහ ආශාව ඇතිව, මෙම ව්‍යාපෘතිය ඇඩෝන සංවර්ධකයා සඳහා අතිවිශාල අවස්ථා විවෘත කරයි. ගතික පුස්තකාල මත පදනම් වූ මොඩියුල ආකාරයෙන් රෝලිං කොටස් ක්රියාත්මක වේ. සිමියුලේටරයේ ප්රධාන ව්යුහාත්මක මූලද්රව්යය යනු රෝලිං තොගයේ ඒකකයකි, හෝ ජංගම ඒකකය (MU) - මෝටර් රථයක් (ස්වයං-ප්‍රචලිත නොවන හෝ බහු ඒකක දුම්රියක කොටසක් ලෙස) හෝ දුම්රිය එන්ජිමක කොටසකි. API මඟින් රෝද කට්ටලවල කෝණික වේගය මෙන්ම සම්බන්ධතා ජාලයේ වෝල්ටීයතාවය සහ ධාරාවේ වර්ගය වැනි බාහිර පරාමිතීන් ලැබීමට ප්‍රතිචාර වශයෙන් PE රෝද කට්ටලවලට යොදන ව්‍යවර්ථය සැකසීමට හැකි වේ. සිමියුලේටරය වෙනත් කිසිවක් නොදන්නා අතර දැන ගැනීමට අවශ්‍ය නැත, එමඟින් අභ්‍යන්තර උපකරණවල භෞතික විද්‍යාව විශේෂිත දුම්රිය එන්ජිමක් හෝ මෝටර් රථයක සංවර්ධකයාගේ හෘදසාක්ෂිය වෙත හැරේ.

එවැනි සාපේක්ෂ පහත් මට්ටමේ ප්රවේශයක් දුම්රිය එන්ජින් පරිපථයේ කුඩාම සූක්ෂ්මතාවයන් ක්රියාත්මක කිරීමට හැකි වන බව අනුමාන කිරීම අපහසු නැත. මීට අමතරව, සිමියුලේටර් කට්ටලයට ගෘහස්ථ රෝලිං තොගයේ ස්ථාපනය කර ඇති සම්මත උපකරණ කට්ටලයක් ඇතුළත් වේ: රියදුරු දුම්රිය දොඹකරය. අංක 395, වායු බෙදාහරින්නාගේ තත්ත්වය. අංක 242, සහායක තිරිංග කපාට තත්ත්වය. අංක 254 සහ තිරිංග උපකරණවල අනෙකුත් අංග. ඇඩෝනයේ සංවර්ධකයාට මෙම මූලද්‍රව්‍ය සම්බන්ධ කිරීමට අවශ්‍ය වන්නේ විශේෂිත දුම්රිය එන්ජිමක හෝ මෝටර් රථයක වායු පරිපථයට පමණි. ඊට අමතරව, ඔබේම දෘඩාංග ඒකක නිර්මාණය කිරීම සඳහා API ඇත.

වාස්තු විද්‍යාත්මකව, RRS ගොඩනැගී ඇත්තේ ප්‍රධාන ක්‍රියාවලි දෙකක අන්තර්ක්‍රියා මත ය

  • සිමියුලේටර් - භෞතික දුම්රිය ගතික එන්ජිම TrainEngine 2. බොහෝ බාහිර සාධක සැලකිල්ලට ගනිමින්, සම්බන්ධක උපාංග හරහා චලනය වන ඒකකවල අන්තර්ක්‍රියා සැලකිල්ලට ගනිමින්, රෝලිං කොටස් උපකරණවල ක්‍රියාකාරිත්වයේ භෞතික විද්‍යාව ක්‍රියාත්මක කරන බාහිර මොඩියුලවලින් එන දත්ත ක්‍රියාවට නංවයි.
  • නරඹන්නාට - චිත්‍රක එන්ජිමක් මත ගොඩනගා ඇති දුම්රිය චලනය දෘශ්‍යමාන කරන චිත්‍රක උප පද්ධතියකි OpenSceneGraph

QT රාමුවේ QSharedMemory පන්තිය මත පදනම්ව ක්‍රියාත්මක කරන ලද හවුල් මතකය හරහා මෙම උප පද්ධති එකිනෙකා සමඟ අන්තර් ක්‍රියා කරයි. පළමු demos socket-based IPC භාවිතා කරන ලද අතර, අනාගතයේ දී සිමියුලේටරයේ සමහර කොටස්වල ශෝධනය සහ අනාගතය දෙස බලා අවශ්‍යතා සැලකිල්ලට ගනිමින් අනාගතයේ දී මෙම තාක්ෂණය වෙත ආපසු යාමට සැලසුම් කර ඇත. හවුල් මතකයට සංක්‍රමණය වීම යම් දුරකට එහි ප්‍රයෝජනය ඉක්මවා ගිය බලහත්කාර පියවරකි.

මම සූක්ෂ්ම කරුණු විස්තර නොකරමි - මෙම ව්‍යාපෘතියේ සංවර්ධනයේ බොහෝ විචල්‍යතා දැනටමත් මගේ සම්පත පිළිබඳ ප්‍රකාශනවල දක්වා ඇත, විශේෂයෙන් මට තරමක් පුළුල් ය OpenSceneGraph එන්ජිම පිළිබඳ නිබන්ධන මාලාවක්, මෙම ව්යාපෘතියේ වැඩ කිරීමේ පුරුද්දෙන් වර්ධනය වූ.

ව්‍යාපෘතියේ සෑම දෙයක්ම අප කැමති තරම් සුමට නොවේ. විශේෂයෙන්, විදැහුම්කරණයේ ගුණාත්මක භාවය අනුව ග්‍රැෆික් උප පද්ධතිය පරිපූර්ණ නොවන අතර සිම් හි ක්‍රියාකාරිත්වය අපේක්ෂා කිරීමට බොහෝ දේ ඉතිරි කරයි. මෙම නිකුතුවට එක් ඉලක්කයක් ඇත - ව්‍යාපෘතියට දුම්රිය ප්‍රවාහන ලෝලීන්ගේ ප්‍රජාව හඳුන්වා දීම, එහි හැකියාවන් ගෙනහැර දැක්වීම සහ අවසානයේ ඇඩෝන සංවර්ධකයින් සඳහා උසස් API සහිත විවෘත, හරස් වේදිකා දුම්රිය සිමියුලේටරයක් ​​නිර්මාණය කිරීම.

අනාගත බලාපොරොත්තු

අපේක්ෂාවන් ඔබ මත රඳා පවතී, අපගේ ආදරණීය අනාගත පරිශීලකයින් සහ සංවර්ධකයින්. ව්යාපෘතිය විවෘතව පවතින අතර පවතී නිල වෙබ් අඩවියඔබට සිමියුලේටරය බාගත කළ හැකි ස්ථානය ලේඛනගත කිරීම, එහි සංයුතිය අඛණ්ඩව නැවත පුරවනු ලැබේ. පවතී සංසදය ව්යාපෘතිය, VK කණ්ඩායමහා YouTube නාලිකාව, ඔබට වඩාත් සවිස්තරාත්මක උපදෙස් සහ සහාය ලබා ගත හැකි ස්ථානය.

Спасибо!

මූලාශ්රය: www.habr.com

අදහස් එක් කරන්න