RapyutaSimulationPlugins
Public Member Functions | Public Attributes | Protected Member Functions | Private Attributes | List of all members
URRFloatingMovementComponent Class Reference

Base Robot floating movement class. More...

#include <RRFloatingMovementComponent.h>

Inheritance diagram for URRFloatingMovementComponent:
Inheritance graph
[legend]
Collaboration diagram for URRFloatingMovementComponent:
Collaboration graph
[legend]

Public Member Functions

 URRFloatingMovementComponent ()
 
 URRFloatingMovementComponent (const FObjectInitializer &ObjectInitializer)
 
void SetupDefault ()
 
virtual void SetUpdatedComponent (USceneComponent *InNewUpdatedComponent) override
 
void Set2DMovement (bool bEnabled)
 
FORCEINLINE bool Is2DMovement () const
 
void SetUseDecelerationForPaths (bool bEnabled)
 
FORCEINLINE bool UseDecelerationForPathFollowing () const
 
void SetUseAccelerationForPaths (bool bEnabled)
 
void SetPenetrationPullbackDistance (float PullbackDistance)
 
virtual void StopMovementImmediately () override
 
void SetRVOAvoidanceEnabled (bool bEnabled)
 
void SetRVOAvoidanceVelocityLock (float InDuration)
 

Public Attributes

FVector AngularVelocity = FVector::ZeroVector
 [deg/s] Current AngularVelocity of #UpdatedComponent [X:Roll - Y:Pitch - Z: Yaw] More...
 
float MaxAngularSpeed = 360.f
 Maximum angular speed magnitude allowed for #UpdatedComponent. More...
 
int32 RVOAvoidanceUID = 0
 
uint8 bUseRVOAvoidance: 1
 Whether to use RVO avoidance (instead of crowd avoidance). This only runs on the server. More...
 
float RVOAvoidanceWeight = 0.5f
 
uint8 bRVOAvoidanceRecentlyUpdated: 1
 
TObjectPtr< UAvoidanceManager > RVOAvoidanceManager = nullptr
 
FVector RVOAvoidanceLockVelocity = FVector::ZeroVector
 Forced avoidance velocity if AvoidanceLockTimer > 0. More...
 
float RVOAvoidanceLockTimeout = 0.f
 

Protected Member Functions

virtual void OnRegister () override
 
virtual void TickComponent (float InDeltaTime, enum ELevelTick InTickType, FActorComponentTickFunction *InTickFunction) override
 
virtual bool IsExceedingMaxSpeed (float InMaxSpeed) const override
 
virtual FVector GetPenetrationAdjustment (const FHitResult &Hit) const
 
void UpdateDefaultAvoidance ()
 
void CalculateRVOAvoidanceVelocity (float InDeltaTime)
 
virtual void PostProcessRVOAvoidanceVelocity (FVector &InNewVelocity)
 

Private Attributes

uint8 bSweepEnabled: 1
 
uint8 b2DMovement: 1
 
uint8 bUseDecelerationForPaths: 1
 
float PenetrationPullbackDistance = 0.f
 

Detailed Description

Base Robot floating movement class.

This is MovementComponent to move Robot with UE's AIController.

This is useful to develop/test higher level logics such as multi robot coordination without emulate low level navigation.

Support 2D movement with stick pawn to the floor.

See also
UFloatingPawnMovement

UCLASS(ClassGroup = (Custom), meta = (BlueprintSpawnableComponent))

Constructor & Destructor Documentation

◆ URRFloatingMovementComponent() [1/2]

URRFloatingMovementComponent::URRFloatingMovementComponent ( )

◆ URRFloatingMovementComponent() [2/2]

URRFloatingMovementComponent::URRFloatingMovementComponent ( const FObjectInitializer &  ObjectInitializer)

Member Function Documentation

◆ CalculateRVOAvoidanceVelocity()

void URRFloatingMovementComponent::CalculateRVOAvoidanceVelocity ( float  InDeltaTime)
protected

◆ GetPenetrationAdjustment()

virtual FVector URRFloatingMovementComponent::GetPenetrationAdjustment ( const FHitResult &  Hit) const
protectedvirtual

◆ Is2DMovement()

FORCEINLINE bool URRFloatingMovementComponent::Is2DMovement ( ) const
inline

◆ IsExceedingMaxSpeed()

virtual bool URRFloatingMovementComponent::IsExceedingMaxSpeed ( float  InMaxSpeed) const
overrideprotectedvirtual

◆ OnRegister()

virtual void URRFloatingMovementComponent::OnRegister ( )
overrideprotectedvirtual

◆ PostProcessRVOAvoidanceVelocity()

virtual void URRFloatingMovementComponent::PostProcessRVOAvoidanceVelocity ( FVector &  InNewVelocity)
inlineprotectedvirtual

◆ Set2DMovement()

void URRFloatingMovementComponent::Set2DMovement ( bool  bEnabled)
inline

◆ SetPenetrationPullbackDistance()

void URRFloatingMovementComponent::SetPenetrationPullbackDistance ( float  PullbackDistance)
inline

◆ SetRVOAvoidanceEnabled()

void URRFloatingMovementComponent::SetRVOAvoidanceEnabled ( bool  bEnabled)

◆ SetRVOAvoidanceVelocityLock()

void URRFloatingMovementComponent::SetRVOAvoidanceVelocityLock ( float  InDuration)

◆ SetUpdatedComponent()

virtual void URRFloatingMovementComponent::SetUpdatedComponent ( USceneComponent *  InNewUpdatedComponent)
overridevirtual

◆ SetupDefault()

void URRFloatingMovementComponent::SetupDefault ( )

◆ SetUseAccelerationForPaths()

void URRFloatingMovementComponent::SetUseAccelerationForPaths ( bool  bEnabled)
inline

◆ SetUseDecelerationForPaths()

void URRFloatingMovementComponent::SetUseDecelerationForPaths ( bool  bEnabled)
inline

◆ StopMovementImmediately()

virtual void URRFloatingMovementComponent::StopMovementImmediately ( )
overridevirtual

◆ TickComponent()

virtual void URRFloatingMovementComponent::TickComponent ( float  InDeltaTime,
enum ELevelTick  InTickType,
FActorComponentTickFunction *  InTickFunction 
)
overrideprotectedvirtual

◆ UpdateDefaultAvoidance()

void URRFloatingMovementComponent::UpdateDefaultAvoidance ( )
protected

◆ UseDecelerationForPathFollowing()

FORCEINLINE bool URRFloatingMovementComponent::UseDecelerationForPathFollowing ( ) const
inline

Member Data Documentation

◆ AngularVelocity

FVector URRFloatingMovementComponent::AngularVelocity = FVector::ZeroVector

[deg/s] Current AngularVelocity of #UpdatedComponent [X:Roll - Y:Pitch - Z: Yaw]

UPROPERTY(EditAnywhere, BlueprintReadWrite)

◆ b2DMovement

uint8 URRFloatingMovementComponent::b2DMovement
private

◆ bRVOAvoidanceRecentlyUpdated

uint8 URRFloatingMovementComponent::bRVOAvoidanceRecentlyUpdated

◆ bSweepEnabled

uint8 URRFloatingMovementComponent::bSweepEnabled
private

◆ bUseDecelerationForPaths

uint8 URRFloatingMovementComponent::bUseDecelerationForPaths
private

◆ bUseRVOAvoidance

uint8 URRFloatingMovementComponent::bUseRVOAvoidance

Whether to use RVO avoidance (instead of crowd avoidance). This only runs on the server.

UPROPERTY(VisibleAnywhere)

◆ MaxAngularSpeed

float URRFloatingMovementComponent::MaxAngularSpeed = 360.f

Maximum angular speed magnitude allowed for #UpdatedComponent.

[deg/s]

UPROPERTY(EditAnywhere, BlueprintReadWrite)

◆ PenetrationPullbackDistance

float URRFloatingMovementComponent::PenetrationPullbackDistance = 0.f
private

◆ RVOAvoidanceLockTimeout

float URRFloatingMovementComponent::RVOAvoidanceLockTimeout = 0.f

◆ RVOAvoidanceLockVelocity

FVector URRFloatingMovementComponent::RVOAvoidanceLockVelocity = FVector::ZeroVector

Forced avoidance velocity if AvoidanceLockTimer > 0.

UPROPERTY()

◆ RVOAvoidanceManager

TObjectPtr<UAvoidanceManager> URRFloatingMovementComponent::RVOAvoidanceManager = nullptr

◆ RVOAvoidanceUID

int32 URRFloatingMovementComponent::RVOAvoidanceUID = 0

◆ RVOAvoidanceWeight

float URRFloatingMovementComponent::RVOAvoidanceWeight = 0.5f

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