Simulating Railroads with OpenUSD

Railroad simulation is important in modern transportation and logistics, providing a virtual testing ground for the intricate interplay of tracks, switches, and…

Railroad simulation is important in modern transportation and logistics, providing a virtual testing ground for the intricate interplay of tracks, switches, and rolling stock. It serves as a crucial tool for engineers and developers to fine-tune and optimize railway systems, ensuring efficiency, safety, and cost-effectiveness. 

Physically realistic simulations enable comprehensive scenario analysis, predictive maintenance, and the exploration of innovative solutions, ultimately contributing to the advancement and sustainability of rail infrastructure.

However, simulating railroads effectively and accurately is no easy feat. A wide range of interconnected and dynamic components must be modeled precisely. Real-world physics, safety protocols, and the diversity of operational scenarios must also be considered.

Realistic rail simulations with railOmniverse extension 

Within the sector initiative Digitale Schiene Deutschland, Deutsche Bahn aims to use digitalization to improve the capacity, quality, and efficiency of their rail network. One measure is the creation of a physically accurate emulation of their country-wide rail system. 

railOmniverse is a C++ extension developed in NVIDIA Omniverse by Trend Verlag (Trend) with Deutsche Bahn (DB) to facilitate the simulation of their highly complex railroad systems. Based on the Trend Trax Track Library, the extension provides tools for creating and managing track systems, motor models, brakes, and wheel friction in a physical railroad simulation. railOmniverse uses NVIDIA PhysX to support the realistic simulation of physical interactions, forces, and dynamics between the various components of a railroad system.

Omniverse is a development computing platform that enables developers to build interoperable 3D workflows and tools based on Universal Scene Description (OpenUSD). OpenUSD is an extensible open-source framework for describing, composing, and collaborating within 3D worlds.

Integrating the railOmniverse extension into their digital twins has enabled Deutsche Bahn to take advantage of the Trend TrackJoint and other features in their Trax Track Library. This saves countless hours in creating realistic railway simulations.

“We believe [railOmniverse] is the best approach so far, as it allows us smooth train movement that can still derail in extreme conditions,” said Jose Minguez, senior software developer at DB Systel GmbH during his GTC 2023 session, Building a Digital Twin of the German Rail Network to Deliver Next-Generation Railway Systems. “It also gives us the freedom to tweak some parameters to influence speed changes based on variables like different weather conditions or different load weights in the train.” 

Video 1. Physical simulation in NVIDIA Omniverse, using the railOmniverse extension

Fine-tuning physical simulations for trains with TrackJoint and NVIDIA PhysX

Numerous experiments were conducted by Trend, and later by DB, exploring collisions of various kinds, additional forces, positional corrections, and so on. The goal was to confine train movement to the track. However, these approaches consistently compromised the realism of the simulation and often led to stability issues. 

The introduction of the TrackJoint feature provided a robust solution. TrackJoint is a component that connects the wheel frames of a train to the track system. It restricts the movements of the wheel frames relative to the track while maintaining stability and realism in the simulation. 

After numerous experiments, the Trax Library was designed to omit simulating the intricate physical details of each spinning wheel, but instead focus on maintaining a per-bogie granularity. Bogies are physical bodies that run along the track.

Even the train’s drive can be implemented as a constraint, seamlessly integrating a motor model that encompasses acceleration, braking, and friction into the simulation. This model accommodates virtually all types of propulsion engines, along with their gearboxes and wheel configurations, simulated by a traction force characteristic curve tailored to the specifics of a particular rolling stock.

Integration into NVIDIA PhysX was achieved using the custom joint interface within Omniverse. The implementation of the TrackJoint mirrors the approach used for built-in joints, such as rotational or spherical. This involves defining a series of constraints for relative translational and rotational velocities, which then are provided to the PhysX constraint solver for direct use.

When dealing with a wheel frame and its connections to the main body of a rolling stock in Omniverse, users can leverage the utilities provided by the platform. For instance, rotational joints can be employed for bogie hinges, and distance joints for couplings between wagons. 

The wheel frame itself is represented by an NVIDIA PhysX body equipped with a TrackJoint, similar to any other PhysX joint. This implies that the new elements introduced by railOmniverse can seamlessly integrate with all the standard simulation tools used in Omniverse and PhysX.

PhysX, with its focus on relative velocities in the solver, enables tracks that are not restricted to the static environment, but also attached to a physical body. This opens up possibilities including turntables or trains running on other rolling stock (such as adapter wagons or a train ferry ship).

Collaboration and custom schemas with OpenUSD

The OpenUSD interchange proved to be an effective medium for collaboration between DB and Trend. To operate a train on a track requires tracks and switches first. DB and Trend agreed on custom USD primitive definitions for these entities, which enabled creating from DB-provided sample data using the functionality of the Trax Library. 

Leveraging the schema mechanism, the Trend development team defined and registered new primitives for tracks, switches, the TrackJoint, and various aspects of the motor model. This facilitated simultaneous development on both ends. For instance, DB provided track geometry data using Omniverse Bezier BasisCurves, while Trend expanded the system with a specialized spline curve, parametrized by arc length, enabling its use in simulations with the TrackJoint.

A technical diagram of Trend Verlag’s USD implementation and Omniverse connection, including track data, the Trax Library, custom USD prims, PhysX, and Isaac Sim.Figure 1. The Trend Verlag USD implementation and Omniverse connection, featuring custom USD primitives for various aspects of the Trax Library

Exploring the Trax Library

Libraries such as the Trend Trax Track Library are crucial to saving time and effort when creating realistic simulations. Using a library that pre-solves the fundamental problems is essential. With the right library, you aren’t starting your simulation project tomorrow; you started years ago when the Trax Library began.

The library includes numerous features such as the TrackJoint that have been tested in real-world use cases and are ready to use in your own railway simulations. These include the following:

  • Track System Creation Tools: Tools for defining the geometry of the tracks, specifying curves and twists, and managing switches and transitions between different track segments.
  • Motor Model: The model enables simulating the behavior of train motors. It establishes a relationship between velocity and the fraction of maximal motor force that can be applied at a specific velocity. This ensures realistic acceleration and deceleration of the train.
  • Friction and Brakes: Models for wheel-related friction and brakes. This enables simulating the effects of friction on the train’s movement and apply braking forces to slow down or stop the train.
  • Bogies and RailRunners: Interfaces for representing bogies. The RailRunner interface allows you to connect multiple bogies together to form a train. It also includes models for hinged bogies and rolling stock configurations.
  • Sensors and Signals: Mechanisms for detecting events along the track. Sensors can be used to detect the passage of wheelsets or other specific events, while signals convey information to be sent to a train as it moves along a track range.
  • Curve Theory: The library incorporates mathematical concepts from Curve Theory, which describes curves in terms of curvature and torsion. This supports accurate representation of curves and velocities while moving along them.

Trend plans to release a public version of railOmniverse in early 2024. For in-depth information, we maintain a detailed text called the Trax Book, outlining the basic principles used by the Trax Library. Updates on the development of railOmniverse can be found in Chapter 12 of the Trax Book.

We are eager to learn about your use cases. If you have questions or suggestions, email [email protected]. To sign up for the railOmniverse newsletter, include ‘railNewsletter’ in the subject line.

Join NVIDIA for OpenUSD Day at GTC 2024 for a full day of expert-led sessions and panels. Register for GTC 2024 and attend in person or virtually to learn the latest in AI with in-depth sessions, workshops, and training on building OpenUSD-based extensions, apps, and services on Omniverse. 

Get started with NVIDIA Omniverse by downloading the standard license free, access OpenUSD resources, and learn how Omniverse Enterprise can connect your team. Stay up to date on Instagram, Medium and Twitter. For more, join the Omniverse community on the  forums, Discord server, Twitch and YouTube channels. 

Source:: NVIDIA