PxVehicleTankDriveDifferentialParams

Defined in include/vehicle2/drivetrain/PxVehicleDrivetrainParams.h

struct PxVehicleTankDriveDifferentialParams : public PxVehicleMultiWheelDriveDifferentialParams

A description of a tank differential.

Note

The wheels on a tank may be connected to the differential or not connected to the differential.

Note

The wheels on a tank track may be connected to a tank track or not connected to a tank track.

Note

Wheels connected to the differential but not to a tank track receive the torque split specified by the corresponding elements of PxVehicleMultiWheelDriveDifferentialParams::torqueRatios[].

Note

Wheels connected to a tank track but not to the differential receive no torque from the engine.

Note

Wheels connected to a tank track and to the differential receive the torque split specified by the corresponding elements of PxVehicleMultiWheelDriveDifferentialParams::torqueRatios[] multiplied by the corresponding thrust controller value. If the thrust controller has a negative value, the wheels will receive a torque that is negative with respect to the gearing ratio.

Note

The wheels in each tank track have a constraint applied to them to enforce the rule that they all have the same longitudinal speed at the contact point between the wheel and the tank track.

Public Functions

inline void setToDefault()
inline void addTankTrack(const PxU32 nbWheelsInTrackToAdd, const PxU32 *const wheelIdsInTrackToAdd, const PxU32 thrustControllerIndex)

Add a tank track by specifying the number of wheels along the track and an array of wheel ids specifying each wheel in the tank track.

Parameters
  • nbWheelsInTrackToAdd[in] is the number of wheels in the track to be added.

  • wheelIdsInTrackToAdd[in] is an array of wheel ids specifying all the wheels in the track to be added.

  • thrustControllerIndex[in] specifies the index of the thrust controller that will be used to control the tank track.

inline PxU32 getNbTracks() const

Return the number of tracks.

See also

getNbWheelsInTrack()

Returns

The number of tracks.

inline PxU32 getNbWheelsInTrack(const PxU32 i) const

Return the number of wheels in the ith track.

See also

getWheelInTrack()

Parameters

i[in] specifies the track to be queried for its wheel count.

Returns

The number of wheels in the specified track.

inline const PxU32 *getWheelsInTrack(const PxU32 i) const

Return the array of all wheels in the ith track.

Parameters

i[in] specifies the track to be queried for its wheels.

Returns

The array of wheels in the specified track.

inline PxU32 getWheelInTrack(const PxU32 j, const PxU32 i) const

Return the wheel id of the jth wheel in the ith track.

See also

getNbWheelsInTrack()

Parameters
  • j[in] specifies that the wheel id to be returned is the jth wheel in the list of wheels on the specified track.

  • i[in] specifies the track to be queried.

Returns

The wheel id of the jth wheel in the ith track.

inline PxU32 getThrustControllerIndex(const PxU32 i) const

Return the index of the thrust controller that will control a specified track.

Parameters

i[in] specifies the track to be queried for its thrust controller index

Returns

The index of the thrust controller that will control the ith track.

inline PxVehicleTankDriveDifferentialParams transformAndScale(const PxVehicleFrame &srcFrame, const PxVehicleFrame &trgFrame, const PxVehicleScale &srcScale, const PxVehicleScale &trgScale) const
inline bool isValid(const PxVehicleAxleDescription &axleDesc) const

Public Members

PxU32 nbTracks

The number of tracks.

PxU32 thrustIdPerTrack[PxVehicleLimits::eMAX_NB_WHEELS]

The id of the thrust that will control the track. Must have value 0 or 1.

PxU32 nbWheelsPerTrack[PxVehicleLimits::eMAX_NB_WHEELS]

The number of wheels in each track.

PxU32 trackToWheelIds[PxVehicleLimits::eMAX_NB_WHEELS]

The list of wheel ids for the ith tank track begins at wheelIdsInTrackOrder[trackToWheelIds[i]].

PxU32 wheelIdsInTrackOrder[PxVehicleLimits::eMAX_NB_WHEELS]

The list of all wheel ids in all tracks.

PxReal torqueRatios[PxVehicleLimits::eMAX_NB_WHEELS]

torqueRatios describes the fraction of torque delivered to each wheel through the differential.

Range: [1, -1]

Note

Wheels not connected to the differential must receive zero torque.

Note

Wheels connected to the differential may receive a non-zero torque.

Note

The sum of the absolute of the ratios of all wheels must equal to 1.0.

Note

A negative torque ratio simulates a wheel with negative gearing applied.

PxReal aveWheelSpeedRatios[PxVehicleLimits::eMAX_NB_WHEELS]

aveWheelSpeedRatios describes the contribution of each wheel to the average wheel speed measured at the clutch.

Range: [0, 1]

Note

Wheels not connected to the differential do not contribute to the average wheel speed measured at the clutch.

Note

Wheels connected to the differential may delivere a non-zero contribution to the average wheel speed measured at the clutch.

Note

The sum of all ratios of all wheels must equal to 1.0.