Simulateur Ferroviaire Russe (RRS) : première version publique

Le jour tant attendu est enfin arrivé, où je peux présenter cette développement. Le projet a été lancé il y a exactement un an, le 1er septembre 2018, du moins dans le dépôt RRS sur GitHub le premier commit a effectivement cette date.

Train passager à la station Rostov-Glavny (cliquable)

Simulateur Ferroviaire Russe (RRS) : première version publique

Qu'est-ce que RRS ? C'est un simulateur multiplateforme open source de matériel roulant pour une largeur de voie de 1520 mm. Le lecteur se posera légitimement la question : « Mais à quoi bon ce projet, puisque plusieurs simulateurs ferroviaires, qu'ils soient commerciaux ou open source, existent déjà ? » Pour répondre à cette question, je vous invite à lire la suite

Histoire du projet

Il y a longtemps, en 2001, est sorti Microsoft Train Simulator (MSTS), qui a donné naissance à une grande communauté de passionnés de la simulation ferroviaire dans notre pays. Au cours des quelques années où ce projet a existé (jusqu'à ce que Microsoft l'abandonne pour des choses plus intéressantes pour elle, comme faire faillite avec Nokia, etc.), le projet a accumulé une multitude de compléments : itinéraires, matériel roulant, scénarios.

Sur la base de MSTS, plusieurs autres projets ont ensuite été créés, tels que OpenRails, RTrainSim (RTS) et d'autres compléments et dérivés. Il y a aussi eu des projets commerciaux, comme le célèbre Trainz. Tout serait parfait, mais beaucoup de passionnés de transport ferroviaire ne sont pas satisfaits de ces produits pour des raisons tout à fait objectives : ils ne reflètent pas la spécificité du matériel roulant domestique exploité et développé dans l'espace post-soviétique. Cela se manifeste particulièrement lorsque l'on examine comment les freins des trains sont réalisés - aucun des projets mentionnés n'a et n'aura une bonne mise en œuvre des freins automatiques du système Matrosov.

En 2008, un autre projet est apparu - ZDSimulator, développé par Vyacheslav Usov. Le projet est remarquable car il prend en compte et corrige les défauts mentionnés ci-dessus, tout en étant initialement orienté vers le matériel roulant à voie russe. Mais il y a un grand « mais » - c'est un projet propriétaire et fermé, qui n'autorise pas l'intégration de matériel roulant personnalisé.

Je suis moi-même venu à la thématique ferroviaire en 2007, lorsque j'ai commencé à travailler chez OAO VELNII, en tant que chercheur, puis après la soutenance de ma thèse de candidat en 2008 — en tant que chercheur senior. À ce moment-là, j'ai découvert les dernières avancées en matière de jeux de simulation ferroviaires. Ce que j'ai vu ne m'a pas plu, et le projet ZDSimulator n'existait pas encore. Par la suite, passionné par la dynamique du matériel roulant, je suis arrivé à l'Université d'État des Chemins de fer de Rostov (RGUPS) avec pour thème de ma thèse de doctorat la dynamique du freinage des trains de marchandises. À ce jour, je dirige le développement de simulateurs de transports ferroviaires pour notre université et j'enseigne des disciplines spécialisées au département 'Matériel roulant de traction'.

À la lumière de tout ce qui précède, l'idée de créer un simulateur est née, permettant au développeur d'extensions d'obtenir un contrôle complet sur les processus physiques se déroulant dans le matériel roulant. Semblable au simulateur spatial Orbiter, pour lequel j'avais développé à l'époque une extension sous la forme d'une famille de lanceurs basés sur le R-7. Il y a un an, je me suis lancé dans ce travail et j'y ai plongé à bras le corps. Le 26 décembre 2018, cette démo technologique.

a été remarquée par des passionnés, et le célèbre créateur de contenu visuel pour ZDsimulator dans les cercles de simulateurs ferroviaires, Roman Biryukov (Romych RZhDUZ) m'a proposé de l'aide et de collaborer au développement futur du projet. Plus tard, un autre développeur s'est joint à nous — Alexandre Michenko (Ulovskii2017), créateur de parcours pour ZDsimulator. Notre travail conjoint nous a conduits à la première publication. Dans la vidéo, un aperçu de l'apparence du jeu à sa première sortie.

Lire la vidéo

Caractéristiques du simulateur RRS

Avant tout, c'est une architecture logicielle ouverte. Sans même mentionner que le code du simulateur est ouvert, il existe une API et un SDK destinés aux développeurs d'extensions tierces. Le seuil d'entrée est assez élevé — des compétences de base en développement en C++ sont nécessaires. Le simulateur est écrit dans ce langage, utilisant le compilateur GCC et sa version MinGW pour le système d'exploitation Windows. De plus, il est souhaitable que le développeur soit familiarisé avec le framework Qt, car de nombreux concepts en découlent et sont à la base de l'architecture du jeu.

Cependant, avec du travail acharné et de la volonté, ce projet ouvre d'énormes possibilités pour les développeurs d'extensions. Le matériel roulant est réalisé sous forme de modules basés sur des bibliothèques dynamiques. L'élément structural principal dans le simulateur est l'unité de matériel roulant, ou unité de traction (UT) — wagon (non motorisé ou au sein d'un train automoteur) ou section de locomotive. L'API permet de définir le couple appliqué aux essieux des UT, en retour obtenant la vitesse angulaire des essieux, ainsi que des paramètres externes tels que la tension et le type de courant dans le réseau de contact. Le simulateur ne sait rien d'autre et ne veut rien savoir, ce qui laisse la physique de fonctionnement de l'équipement interne à la charge du développeur de la locomotive ou du wagon particulier.

Il n'est pas difficile de deviner qu'une approche relativement bas niveau permet de mettre en œuvre les moindres détails du schéma de la locomotive. De plus, le simulateur comprend un ensemble d'équipements standards installés sur le matériel roulant national : le crane de train du conducteur no 395, le répartiteur d'air no 242, la vanne de frein d'appoint no 254 et d'autres éléments d'équipement de freinage. Le développeur de l'extension n'a qu'à relier ces éléments dans le schéma pneumatique de la locomotive ou du wagon spécifique. En outre, il existe une API pour créer ses propres blocs d'équipement.

Architecturalement, RRS est construit sur l'interaction de deux processus principaux

  • simulator — le moteur physique de la dynamique du train TrainEngine 2. Il implémente la physique du mouvement du train en tenant compte d'un grand nombre de facteurs externes, considérant l'interaction des unités de matériel roulant via les dispositifs d'attelage, et gère les données provenant des modules externes réalisant la physique du fonctionnement de l'équipement du matériel roulant
  • viewer — le sous-système graphique, effectuant la visualisation du mouvement du train, basé sur le moteur graphique OpenSceneGraph

Ces sous-systèmes interagissent entre eux via une mémoire partagée, mise en œuvre à l'aide de la classe QSharedMemory du framework Qt. Les premières versions de démonstration utilisaient l'IPC basé sur des sockets, et un retour à cette technologie est prévu, tenant compte de la révision de certaines parties du simulateur et des besoins futurs. Le passage à la mémoire partagée était en quelque sorte une mesure forcée, qui a désormais atteint ses limites.

Je ne vais pas décrire les détails — de nombreuses péripéties du développement de ce projet sont déjà exposées dans mes publications sur la ressource, notamment j'ai un cycle assez complet de tutoriels sur le moteur OpenSceneGraph, qui est en fait issu de ma pratique de travail sur ce projet.

Le projet n'est pas aussi fluide que je le souhaiterais. En particulier, le sous-système graphique est très loin de la perfection en termes de qualité de rendu, et la performance du simulateur laisse également à désirer. Ce lancement a un seul but : familiariser la communauté des passionnés de transport ferroviaire avec le projet, en présenter les capacités et enfin créer un simulateur ferroviaire open-source, multiplateforme, avec une API avancée pour les développeurs d'extensions.

Perspectives

Les perspectives dépendent de vous, nos chers futurs utilisateurs et développeurs. Le projet est ouvert, il existe le site officiel, où vous pouvez télécharger le simulateur, avec de la documentation, dont le contenu sera continuellement mis à jour. Il existe forum du projet, un groupe VKet chaine YouTube, où vous pouvez obtenir des consultations et de l'aide détaillées.

Merci de votre attention !

Source : habr.com

Acheter un hébergement fiable pour les sites avec protection DDoS, serveurs VPS VDS 🔥 Acheter un hébergement fiable pour les sites avec protection DDoS, serveurs VPS VDS | ProHoster