RoveSoSimulator

Logo

Autonomous Rover Testing Simulator in Unreal Engine 5

View the Project on GitHub MissouriMRDT/RoveSoSimulator

Technical Documentation: Importing and Rigging the Talos2025 Rover

Project Goal: To import the new Talos2025 Mars Rover 3D model into the Unreal Engine simulator, fully rig it as a drivable vehicle, and troubleshoot any issues encountered during the process. The existing Hyperion2024 rover serves as a reference for the required components and final functionality.

Chapter 1: Initial Asset Import and the First Hurdle

The first step in any asset pipeline is to get the 3D model into the engine. This initial stage immediately presented our first major technical distinction.

Step 1.1: Importing the Model The Talos2025 model was provided as a standard 3D file (e.g., FBX, OBJ). This was imported into a new Talos2025 folder in the Content Browser.

Step 1.2: The Static Mesh Problem Upon import, the rover existed in the engine as a Static Mesh.

This led to the immediate conclusion that we needed to convert the model into a Skeletal Mesh.

Chapter 2: The Skeleton - The Heart of the Vehicle

A Skeletal Mesh is a 3D model that is bound to an internal “skeleton” or “armature.” This skeleton is what allows for animation and the attachment of physics to individual parts, like wheels.

Step 2.1: The Idea of Reusing the Existing Skeleton Our first idea was to save time by reusing the skeleton from the previous year’s rover, Hyperion2024_Skeleton.

Chapter 3: The Manual Rigging Process in Unreal Engine

Since we could not reuse the old skeleton, we had to create a new one from scratch for the Talos2025 model directly within Unreal Engine.

Step 3.1: Converting to a Skeletal Mesh First, we converted the MarsRover2025 Static Mesh into a Skeletal Mesh asset. This created the asset but with only a single “root” bone.

Step 3.2: Creating and Positioning the Bones Using the Skeletal Mesh Editor’s skeleton editing tools, we manually added a new bone for every moving part of the rover. This included:

Each bone was carefully positioned at the exact pivot point of the part it was meant to control (e.g., the center of the wheel hub for wheel bones).

Step 3.3: Skinning the Mesh (Assigning Weights) After creating the bones, we faced our next challenge. The bones were present but had no connection to the visual mesh. This is the skinning or weight-painting process.

At the end of this stage, we had a complete, fully rigged MarsRover2025 Skeletal Mesh with its own unique skeleton.

Chapter 4: Creating the Physics Asset

A rigged mesh still doesn’t know how to collide with the world. That is the job of the Physics Asset.

Step 4.1: Asset Creation We right-clicked our new MarsRover2025 Skeletal Mesh and chose Create -> Physics Asset -> Create and Assign.

Step 4.2: Configuring Collision Bodies The Physics Asset Editor allowed us to create simplified collision shapes and attach them to the bones of our new skeleton.

  1. Chassis: A simple Box shape was created and scaled to cover the main body, attached to the root bone.
  2. Wheels: A Sphere shape was created for each wheel bone and sized to match the visual wheel.
  3. Suspension: Capsule shapes were used for the suspension arms to provide more accurate collision.

Step 4.3: Setting Physics Types (A Critical Step) This was another crucial point where a common mistake can be made.

Chapter 5: Assembling the Drivable Rover Blueprint

With all the foundational assets created, we assembled them into the final, drivable WheeledVehiclePawn.

Step 5.1: Asset Replication Following the Hyperion2024 example, we created the remaining necessary components in our Talos2025 folder:

  1. Wheel Blueprints: We created BP_Talos_FrontWheel and BP_Talos_RearWheel blueprints (parent class: VehicleWheel) to define the radius, width, and steering angle of our wheels.
  2. Animation Blueprint: We created an AnimBP_Talos_Rover to visually drive the rotation of the bones. A simple Wheel Controller for WheeledVehicle node was used to handle wheel spin.
  3. Main Rover Blueprint: We created a BP_Talos2025 (parent class: WheeledVehiclePawn). Inside this blueprint, we:
    • Assigned our MarsRover2025 Skeletal Mesh to the Mesh component.
    • Assigned our AnimBP_Talos_Rover to the mesh’s Anim Class.
    • In the VehicleMovement component, we configured the Wheel Setup, creating an entry for each of the six wheels and carefully typing in the matching Bone Name from our custom skeleton.

Chapter 6: Final Troubleshooting and Success

The final step was to place the BP_Talos2025 in the level and test it. This revealed the final set of challenges.

After fixing the collision presets and the forward-axis orientation, the Talos2025 rover behaved as expected. It now correctly simulates physics, responds to player input, and is a fully functional, drivable vehicle in the simulator.