السكك الحديدية الروسية محاكي (RRS): الإصدار الأول العام

لقد حان اليوم الذي طال انتظاره عندما أستطيع أخيرًا تقديم هذا التطور. تم إطلاق المشروع منذ عام بالضبط ، في 1 سبتمبر 2018 ، على الأقل في مستودع RRS على Gtihub ، الالتزام الأول له مثل هذا التاريخ.

قطار الركاب في محطة روستوف غلافني (قابل للنقر)



ما هو RRS؟ هذا هو محاكاة عبر منصة مفتوحة من الأسهم المتداول قياس 1520 ملم. سوف يسأل القارئ بشكل طبيعي السؤال: "اسمح لي ، ما هو هذا المشروع ، إذا كان هناك ما يكفي من أجهزة محاكاة السكك الحديدية ، التجارية منها والمفتوحة ،؟" للإجابة على هذا السؤال ، أقترح أن ننظر تحت القط

تاريخ المشروع


ذات مرة ، في عام 2001 ، شاهدت شركة Microsoft Train Simulator (MSTS) النور ، حيث أنتجت مجتمعًا ضخمًا من أجهزة صناعة السكك الحديدية في بلادنا. على مدار عدة سنوات استمر هذا المشروع (حتى تخلت Microsoft عن ذلك ، وفعلت أشياء أكثر إثارة للاهتمام له ، مثل إفلاس نوكيا ، وما إلى ذلك) ، نما المشروع إلى مجموعة من الإضافات التي تم إنشاؤها له: المسارات ، الأسهم المتجددة ، السيناريوهات.

استنادًا إلى MSTS ، تم إنشاء عدد من المشاريع الأخرى ، مثل OpenRails و RTrainSim (RTS) وغيرها من الإضافات والمشتقات. كما ظهرت مشاريع تجارية ، مثل Trainz الشهيرة. وسيكون كل شيء على ما يرام ، ولكن العديد من المتحمسين للنقل بالسكك الحديدية غير راضين عن هذه المنتجات لأسباب موضوعية تمامًا - إنهم لا يعكسون على الإطلاق خصائص المخزون المتداول المحلي ، التي يتم تشغيلها وتطويرها في الفضاء ما بعد الاتحاد السوفيتي. هذا أمر حاد بشكل خاص عند النظر في كيفية تنفيذ فرامل القطار - في أي من المشاريع المدرجة هناك ولن يكون تنفيذ طبيعي للفرامل الآلية لنظام Matrosov.

قريب بالفعل في عام 2008 ، ظهر مشروع آخر - ZDSimulator ، تم تطويره بواسطة Vyacheslav Usov. هذا المشروع رائع لأنه يأخذ في الاعتبار ويصحح أوجه القصور المذكورة أعلاه ، مع التركيز في البداية على المخزون المتداول للمقياس الروسي. لكن هناك واحدًا كبيرًا "لكن" - المشروع مملوك ومغلق ، ولا يسمح به معماريا إدخال مخزونه الخاص.

جئت أنا شخصيا إلى موضوع السكك الحديدية في عام 2007 ، عندما بدأت العمل في VELNII OJSC كزميل أبحاث ، وبعد الدفاع عن رسالتي في عام 2008 ، أصبحت زميلًا باحثًا أقدم. ثم تعرفت على أحدث الإنجازات في ذلك الوقت في مجال ألعاب محاكاة السكك الحديدية. وما رأيته ، لم يعجبني ، ولم يكن مشروع ZDSimulator في ذلك الوقت هناك. في وقت لاحق ، أنا مفتون بديناميات الدحرجة ، جئت إلى جامعة روستوف الحكومية للنقل ( RGUPS ) مع موضوع أطروحة الدكتوراه على ديناميات الفرامل قطار الشحن. حتى الآن ، أقود عملية تطوير أجهزة محاكاة القطار للنقل بالسكك الحديدية في جامعتنا وأقوم بتدريس تخصصات متخصصة في قسم Traction Rolling Stock.

فيما يتعلق بكل ما سبق ، نشأت فكرة إنشاء محاكي يسمح لمطور الوظيفة الإضافية له بالتحكم الكامل في العمليات المادية التي تحدث في المخزون المتداول. أكين إلى جهاز محاكاة الفضاء Orbiter ، الذي طورت فيه مرة واحدة إضافة في شكل مجموعة من الصواريخ الحاملة من طراز R-7. قبل عام ، توليت هذا العمل وذهبت إليه مع رأسي. في 26 ديسمبر 2018 ، تم إصدار هذا العرض التكنولوجي .

لاحظت عملي من قبل المتحمسين ، وقدم لي رومان بيريوكوف (روميتش RZDUZ) ، مبتكر المحتوى المرئي لـ ZDsimulator ، الذي كان معروفًا في دوائر جهاز محاكاة السكك الحديدية ، المساعدة والتعاون في تطوير المشروع. في وقت لاحق ، انضم إلينا مطور آخر - ألكساندر ميششينكو (Ulovskii2017 ) ، مصمم الطرق لـ ZDsimulator. تعاوننا أدى بنا إلى الإصدار الأول. على الفيديو - نظرة عامة على كيفية ظهور اللعبة لإصدارها الأول


ميزات RRS محاكي


بادئ ذي بدء ، هو بنية البرمجيات مفتوحة. ناهيك عن أن كود المحاكاة مفتوح ، فهناك API و SDK يستهدفان مطوري الإضافات الخارجية. عتبة الدخول عالية جدًا - تحتاج إلى مهارات تطوير C ++ أساسية. المحاكاة مكتوبة على وجه التحديد ، وذلك باستخدام برنامج التحويل البرمجي GCC ونسخته من MinGW لنظام التشغيل Windows. بالإضافة إلى ذلك ، من المرغوب فيه تقديم المطور إلى إطار عمل Qt ، نظرًا لأن العديد من المفاهيم الواردة منه هي جوهر بنية اللعبة.

ومع ذلك ، مع بذل العناية الواجبة والرغبة ، يفتح هذا المشروع فرصًا كبيرة للمطور الإضافي. يتم تطبيق المخزون المتداول في شكل وحدات قائمة على المكتبات الديناميكية. العنصر الهيكلي الرئيسي في جهاز محاكاة هو وحدة من الأسهم المتداول ، أو وحدة متحركة (PE) - سيارة (غير ذاتية الدفع أو كجزء من سيارة القطار الحركي) أو قسم قاطرة. تتيح واجهة برمجة التطبيقات تعيين عزم الدوران المطبق على أزواج عجلات PE ، استجابةً لاستقبال السرعة الزاوية لأزواج العجلات ، وكذلك المعلمات الخارجية ، مثل الجهد ونوع التيار في شبكة الاتصال. لا يعرف المحاكي أكثر ولا يريد أن يعرف ، مما يترك فيزياء تشغيل المعدات الداخلية في ضمير مطور قاطرة أو سيارة معينة.

من السهل تخمين أن مثل هذا النهج منخفض المستوى نسبياً يجعل من الممكن إدراك أصغر الفروق الدقيقة في دائرة القاطرة. بالإضافة إلى ذلك ، تشتمل مجموعة أدوات المحاكاة على مجموعة من المعدات القياسية المثبتة على معدات الدحرجة المحلية: رافعة القطار الخاصة بمحرك السائق. رقم 395 ، تحويل موزع الهواء. رقم 242 ، صمام الفرامل المساعدة رقم 254 وغيرها من عناصر معدات الفرامل. يحتاج المطور الإضافي فقط إلى توصيل هذه العناصر بالدائرة الهوائية لقاطرة أو سيارة معينة. بالإضافة إلى ذلك ، هناك API لإنشاء كتل المعدات الخاصة بك.

معماريا ، تم تصميم RRS على تفاعل عمليتين رئيسيتين

  • simulator هو محرك فيزياء لديناميات TrainEngine 2. وهو يطبق فيزياء حركة القطار مع مراعاة العديد من العوامل الخارجية ، مع مراعاة تفاعل الوحدات المتحركة من خلال المقرنات ، ومعالجة البيانات من الوحدات الخارجية التي تنفذ فيزياء معدات الدحرجة
  • المشاهد - نظام فرعي بياني يقوم بتنفيذ تصور لحركة القطار ، مبني على أساس محرك الرسوم البيانية OpenSceneGraph

تتفاعل هذه النظم الفرعية مع بعضها البعض من خلال الذاكرة المشتركة ، والتي يتم تنفيذها على أساس فئة QSharedMemory الخاصة بإطار عمل Qt. استخدمت العروض التوضيحية الأولى IPC استنادًا إلى المقابس ، ومن المخطط في المستقبل العودة إلى هذه التقنية ، نظرًا لاستكمال بعض أجزاء المحاكاة واحتياجاتها مع مراعاة المستقبل. كان الانتقال إلى الذاكرة المشتركة ، إلى حد ما ، إجراءً قسريًا أصبح قديمًا.

لن أصف الفروق الدقيقة - فالكثير من الصعود والهبوط في تطوير هذا المشروع موصوفة بالفعل في منشوراتي حول المورد ، على وجه الخصوص ، لدي سلسلة واسعة من الدروس التعليمية على محرك OpenSceneGraph ، والتي نمت فقط من ممارسة العمل على هذا المشروع.

في المشروع ، ليس كل شيء سلسًا كما نود. على وجه الخصوص ، النظام الفرعي للرسومات بعيد جدًا عن الكمال من حيث جودة العرض ، وأداء سيم يترك الكثير مما هو مرغوب فيه. هذا الإصدار له غرض واحد - هو تعريف مجتمع عشاق النقل بالسكك الحديدية بالمشروع ، وتحديد إمكاناته وإنشاء جهاز محاكاة سكة حديد مفتوح عبر منصة أخيرًا مع واجهة برمجة تطبيقات متقدمة للمطور الإضافي.

آفاق


الاحتمالات متروك لكم ، والمستخدمين والمطورين المستقبل العزيز. المشروع مفتوح ، وهناك موقع رسمي يمكنك من خلاله تحميل المحاكي ، مع الوثائق ، وسيتم تحديث تركيبه باستمرار. يوجد منتدى مشروع ومجموعة VK وقناة YouTube حيث يمكنك الحصول على المشورة والمساعدة الأكثر تفصيلاً.

شكرا لاهتمامكم!

Source: https://habr.com/ru/post/ar465689/


All Articles