Open 3D Engine ROS2 Gem API Reference 23.10.0
O3DE is an open-source, fully-featured, high-fidelity, modular 3D engine for building games and simulations, available to every industry.
ROS2::VehicleDynamics::AckermannDriveModel Class Reference

A simple Ackermann system implementation converting speed and steering inputs into wheel impulse and steering element torque. More...

#include <AckermannDriveModel.h>

Inherits ROS2::VehicleDynamics::DriveModel.

Public Member Functions

 AZ_RTTI (AckermannDriveModel, "{104AC31D-E30B-4454-BF42-4FB37B8CFD9B}", DriveModel)
 
void Activate (const VehicleConfiguration &vehicleConfig) override
 
- Public Member Functions inherited from ROS2::VehicleDynamics::DriveModel
 AZ_RTTI (DriveModel, "{1B57E83D-19BF-4403-8712-1AE98A12F0CD}")
 
virtual void Activate (const VehicleConfiguration &vehicleConfig)=0
 
void ApplyInputState (const VehicleInputs &inputs, AZ::u64 deltaTimeNs)
 
virtual AZStd::pair< AZ::Vector3, AZ::Vector3 > GetVelocityFromModel ()=0
 
void SetDisabled (bool isDisable)
 
VehicleInputs GetMaximumPossibleInputs () const
 Get vehicle maximum limits.
 

Static Public Member Functions

static void Reflect (AZ::ReflectContext *context)
 
- Static Public Member Functions inherited from ROS2::VehicleDynamics::DriveModel
static void Reflect (AZ::ReflectContext *context)
 

Protected Member Functions

void ApplyState (const VehicleInputs &inputs, AZ::u64 deltaTimeNs) override
 Apply input to implemented vehicle model.
 
const VehicleModelLimitsGetVehicleLimitPtr () const override
 Returns pointer to implementation specific Vehicle limits.
 
AZStd::pair< AZ::Vector3, AZ::Vector3 > GetVelocityFromModel () override
 
virtual const VehicleModelLimitsGetVehicleLimitPtr () const =0
 Returns pointer to implementation specific Vehicle limits.
 
virtual void ApplyState (const VehicleInputs &inputs, AZ::u64 deltaTimeNs)=0
 Apply input to implemented vehicle model.
 

Additional Inherited Members

- Public Types inherited from ROS2::VehicleDynamics::DriveModel
enum class  DriveModelType { SimplifiedDriveModelType }
 
- Protected Attributes inherited from ROS2::VehicleDynamics::DriveModel
bool m_disabled { false }
 True if model is disabled.
 

Detailed Description

A simple Ackermann system implementation converting speed and steering inputs into wheel impulse and steering element torque.

Member Function Documentation

◆ Activate()

void ROS2::VehicleDynamics::AckermannDriveModel::Activate ( const VehicleConfiguration vehicleConfig)
overridevirtual

Activate the model. Vehicle configuration is to remain the same until another Activate is called.

Parameters
vehicleConfigconfiguration containing axes and wheels information

Implements ROS2::VehicleDynamics::DriveModel.

◆ ApplyState()

void ROS2::VehicleDynamics::AckermannDriveModel::ApplyState ( const VehicleInputs inputs,
AZ::u64  deltaTimeNs 
)
overrideprotectedvirtual

Apply input to implemented vehicle model.

Implements ROS2::VehicleDynamics::DriveModel.

◆ GetVehicleLimitPtr()

const VehicleModelLimits * ROS2::VehicleDynamics::AckermannDriveModel::GetVehicleLimitPtr ( ) const
overrideprotectedvirtual

Returns pointer to implementation specific Vehicle limits.

Implements ROS2::VehicleDynamics::DriveModel.

◆ GetVelocityFromModel()

AZStd::pair< AZ::Vector3, AZ::Vector3 > ROS2::VehicleDynamics::AckermannDriveModel::GetVelocityFromModel ( )
overrideprotectedvirtual

Computes expected velocity from individual wheels velocity. The method queries all wheels for rotation speed, and computes vehicle's expected velocity in its coordinate frame.

Returns
pair of linear and angular velocities

Implements ROS2::VehicleDynamics::DriveModel.


The documentation for this class was generated from the following file: