IndividualWheelMotors is KomatsuHM400.Assets.Base:
    with Assets.Properties.LinearActuatorControl
    with Assets.Properties.Hydraulic
    with Assets.SignalInterfaces.CommonSignals
    with Assets.SignalInterfaces.IndividualWheelMotorsSignals
    with Assets.SignalInterfaces.LinearActuatorSignals
    
    # Set current payload (added ass additional mass to the dumpbed body)
    payload: 40000*1

    # Steering max and initial angles
    initial_angle:   0.0*(Math.PI/180)
    max_angle:      45.0*(Math.PI/180)

    # Front/rear roll max and initial angles
    initial_roll_angle:  0.0*(Math.PI/180)
    max_roll_angle:     10.0*(Math.PI/180)


    # Set initial and max angle of dump bed
    cargo_bed_connection:
        initial_angle:  0.0*(Math.PI/180)
        max_angle: 70.0*(Math.PI/180)

    drivetrain becomes KomatsuHM400.Assets.Components.IndividualWheelMotors:
        # This drivetrain model applies a motion at each wheel joint. To get more
        # realistic behaviour a limit on the allowed maximum torque (effort) at each wheel.
        max_effort:  20e3   # Nm
        min_effort: -20e3   # Nm

        front_left_hub_motor:
            connectors: front_axle_connection.left_wheel_connection.connectors
        front_right_hub_motor:
            connectors: front_axle_connection.right_wheel_connection.connectors
        mid_left_hub_motor:
            connectors: rear_axle_connection.left_wheel_connection_1.connectors
        mid_right_hub_motor:
            connectors: rear_axle_connection.right_wheel_connection_1.connectors
        rear_left_hub_motor:
            connectors: rear_axle_connection.left_wheel_connection_2.connectors
        rear_right_hub_motor:
            connectors: rear_axle_connection.right_wheel_connection_2.connectors

    # Disable unwanted collisions
    vehicle_part_collisions is Simulation.CollisionGroup:
        systems: [chassis, cargo_bed]
    undercarriage_part_collisions is Simulation.CollisionGroup:
        systems: [front_axle_connection, rear_axle_connection]
    tire_part_collisions is Simulation.CollisionGroup:
        systems: [left_front_wheel, right_front_wheel, left_rear_wheel_1, right_rear_wheel_1, left_rear_wheel_2, right_rear_wheel_2]

    disable_collisions_1 is Simulation.DisableCollisionPair:
        group1: vehicle_part_collisions
        group2: undercarriage_part_collisions
    disable_collisions_2 is Simulation.DisableCollisionPair:
        group1: vehicle_part_collisions
        group2: tire_part_collisions
