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

Base Joints class. Other joint class should inherit from this class. More...

#include <RRJointComponent.h>

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

Public Member Functions

 URRJointComponent ()
 
virtual bool IsValid ()
 
virtual void InitializeComponent () override
 Initialize JointToChildLink and ParentLinkToJoint. More...
 
virtual void SetVelocity (const FVector &InLinearVelocity, const FVector &InAngularVelocity)
 Directly set velocity. More...
 
virtual void SetVelocityTarget (const FVector &InLinearVelocity, const FVector &InAngularVelocity)
 Set velocity target. More...
 
virtual void SetVelocityWithArray (const TArray< float > &InVelocity)
 Set the Velocity With TArray. More...
 
virtual void SetVelocityTargetWithArray (const TArray< float > &InVelocity)
 Set the Velocity Target. More...
 
virtual bool HasReachedVelocityTarget (const float InLinearTolerance=-1.f, const float InAngularTolerance=-1.f)
 Check Pose reach the target pose. More...
 
virtual void SetPose (const FVector &InPosition, const FRotator &InOrientation)
 Directly set pose. More...
 
virtual void SetPoseTarget (const FVector &InPosition, const FRotator &InOrientation)
 Set Pose Target. More...
 
virtual bool HasReachedPoseTarget (const float InPositionTolerance=-1.f, const float InOrientationTolerance=-1.f)
 Check Pose reach the target pose. More...
 
virtual void SetPoseWithArray (const TArray< float > &InPose)
 Directly set pose. More...
 
virtual void SetPoseTargetWithArray (const TArray< float > &InPose)
 Set Pose Target. More...
 
virtual void Teleport (const FVector &InPosition, const FRotator &InOrientation)
 Teleport robot to given pose. Implementation is in child class. More...
 
virtual void MoveToInitPose ()
 
FTransform GetJointToChildLink ()
 
FTransform GetParentLinkToJoint ()
 

Public Attributes

FVector LinearVelocity = FVector::ZeroVector
 
FVector AngularVelocity = FVector::ZeroVector
 
FVector LinearVelocityTarget = FVector::ZeroVector
 
FVector AngularVelocityTarget = FVector::ZeroVector
 
FVector PositionTarget = FVector::ZeroVector
 
FRotator OrientationTarget = FRotator::ZeroRotator
 
FVector Position = FVector::ZeroVector
 
FRotator Orientation = FRotator::ZeroRotator
 
float PositionTolerance = 1.f
 [cm] tolerance for control More...
 
float OrientationTolerance = 1.f
 [degree] tolerance for control More...
 
float LinearVelocityTolerance = 10.f
 [cm/s] tolerance for control More...
 
float AngularVelocityTolerance = 10.f
 [degree/s] tolerance for control More...
 
UStaticMeshComponent * ParentLink
 
UStaticMeshComponent * ChildLink
 
ERRJointControlType ControlType = ERRJointControlType::POSITION
 
uint8 LinearDOF = 0
 Linear Degrees Of Freedom. More...
 
uint8 RotationalDOF = 1
 Rotational Degrees Of Freedom. More...
 
FVector PositionMax = FVector(1000, 1000, 1000)
 Pose Limitations[cm]. More...
 
FVector PositionMin = FVector(-1000, -1000, -1000)
 Pose Limitations[cm]. More...
 
FRotator OrientationMax = FRotator(180.f)
 Orientation Limitations[deg]. More...
 
FRotator OrientationMin = FRotator(-180, -180, -180)
 Orientation Limitations[deg]. More...
 
FVector LinearVelMax = FVector(1000, 1000, 1000)
 Linear Velocity Limitations[cm/s]. More...
 
FVector AngularVelMax = FVector(180.f)
 Angular Velocity Limitations[deg/s]. More...
 
bool bLimitRoll = true
 
bool bLimitPitch = true
 
bool bLimitYaw = true
 
FVector InitialPosition = FVector::ZeroVector
 
FRotator InitialOrientation = FRotator::ZeroRotator
 

Protected Member Functions

virtual void PoseFromArray (const TArray< float > &InPose, FVector &OutPosition, FRotator &OutOrientation)
 
virtual void VelocityFromArray (const TArray< float > &InVelocity, FVector &OutLinearVelocity, FVector &OutAngularVelocity)
 

Protected Attributes

FTransform JointToChildLink = FTransform::Identity
 
FTransform ParentLinkToJoint = FTransform::Identity
 

Detailed Description

Base Joints class. Other joint class should inherit from this class.

6 DOF joints class with velocity or position control.

temporary implementation of joints. should be merged with RobotImporter later.

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

Constructor & Destructor Documentation

◆ URRJointComponent()

URRJointComponent::URRJointComponent ( )

Member Function Documentation

◆ GetJointToChildLink()

FTransform URRJointComponent::GetJointToChildLink ( )
inline

◆ GetParentLinkToJoint()

FTransform URRJointComponent::GetParentLinkToJoint ( )
inline

◆ HasReachedPoseTarget()

virtual bool URRJointComponent::HasReachedPoseTarget ( const float  InPositionTolerance = -1.f,
const float  InOrientationTolerance = -1.f 
)
virtual

Check Pose reach the target pose.

If minus values are given, PositionTolerance and OrientationTolerance will be used.

UFUNCTION(BlueprintCallable)

◆ HasReachedVelocityTarget()

virtual bool URRJointComponent::HasReachedVelocityTarget ( const float  InLinearTolerance = -1.f,
const float  InAngularTolerance = -1.f 
)
virtual

Check Pose reach the target pose.

If minus values are given or called without args, LinearVelocityTolerance and AngularVelocityTolerance will be used.

UFUNCTION(BlueprintCallable)

◆ InitializeComponent()

virtual void URRJointComponent::InitializeComponent ( )
overridevirtual

◆ IsValid()

virtual bool URRJointComponent::IsValid ( )
virtual

Reimplemented in URRPhysicsJointComponent.

◆ MoveToInitPose()

virtual void URRJointComponent::MoveToInitPose ( )
virtual

◆ PoseFromArray()

virtual void URRJointComponent::PoseFromArray ( const TArray< float > &  InPose,
FVector &  OutPosition,
FRotator &  OutOrientation 
)
protectedvirtual

◆ SetPose()

virtual void URRJointComponent::SetPose ( const FVector &  InPosition,
const FRotator &  InOrientation 
)
virtual

Directly set pose.

Control to teleport joint to this pose should be implemented in child class.

Parameters
InPosition
InOrientation

UFUNCTION(BlueprintCallable)

Reimplemented in URRPhysicsJointComponent, and URRKinematicJointComponent.

◆ SetPoseTarget()

virtual void URRJointComponent::SetPoseTarget ( const FVector &  InPosition,
const FRotator &  InOrientation 
)
virtual

Set Pose Target.

Control to move joint to pose target should be implemented in child class.

Parameters
InPosition
InOrientation

UFUNCTION(BlueprintCallable)

Reimplemented in URRPhysicsJointComponent, and URRKinematicJointComponent.

◆ SetPoseTargetWithArray()

virtual void URRJointComponent::SetPoseTargetWithArray ( const TArray< float > &  InPose)
virtual

Set Pose Target.

Control to move joint to pose target should be implemented in child class.

TArray size should be LinearDOF + RotationalDOF

Parameters
InPose

UFUNCTION(BlueprintCallable)

◆ SetPoseWithArray()

virtual void URRJointComponent::SetPoseWithArray ( const TArray< float > &  InPose)
virtual

Directly set pose.

Control to teleport joint to pose should be implemented in child class.

TArray size should be LinearDOF + RotationalDOF

Parameters
InPose

UFUNCTION(BlueprintCallable)

◆ SetVelocity()

virtual void URRJointComponent::SetVelocity ( const FVector &  InLinearVelocity,
const FVector &  InAngularVelocity 
)
virtual

Directly set velocity.

Control to move joint with this velocity should be implemented in child class.

Parameters
InLinearVelocity
InAngularVelocity

UFUNCTION(BlueprintCallable)

Reimplemented in URRPhysicsJointComponent.

◆ SetVelocityTarget()

virtual void URRJointComponent::SetVelocityTarget ( const FVector &  InLinearVelocity,
const FVector &  InAngularVelocity 
)
virtual

Set velocity target.

Control to move joint with this velocity should be implemented in child class.

Parameters
InLinearVelocity
InAngularVelocity

UFUNCTION(BlueprintCallable)

Reimplemented in URRPhysicsJointComponent, and URRKinematicJointComponent.

◆ SetVelocityTargetWithArray()

virtual void URRJointComponent::SetVelocityTargetWithArray ( const TArray< float > &  InVelocity)
virtual

Set the Velocity Target.

Control to move joint with this velocity should be implemented in child class.

TArray size should be LinearDOF + RotationalDOF

Parameters
InVelocity

UFUNCTION(BlueprintCallable)

◆ SetVelocityWithArray()

virtual void URRJointComponent::SetVelocityWithArray ( const TArray< float > &  InVelocity)
virtual

Set the Velocity With TArray.

Control to move joint with this velocity should be implemented in child class.

TArray size should be LinearDOF + RotationalDOF

Parameters
InVelocity

UFUNCTION(BlueprintCallable)

◆ Teleport()

virtual void URRJointComponent::Teleport ( const FVector &  InPosition,
const FRotator &  InOrientation 
)
virtual

Teleport robot to given pose. Implementation is in child class.

UFUNCTION(BlueprintCallable)

Reimplemented in URRPhysicsJointComponent, and URRKinematicJointComponent.

◆ VelocityFromArray()

virtual void URRJointComponent::VelocityFromArray ( const TArray< float > &  InVelocity,
FVector &  OutLinearVelocity,
FVector &  OutAngularVelocity 
)
protectedvirtual

Member Data Documentation

◆ AngularVelMax

FVector URRJointComponent::AngularVelMax = FVector(180.f)

Angular Velocity Limitations[deg/s].

UPROPERTY(EditAnywhere, BlueprintReadWrite)

◆ AngularVelocity

FVector URRJointComponent::AngularVelocity = FVector::ZeroVector

◆ AngularVelocityTarget

FVector URRJointComponent::AngularVelocityTarget = FVector::ZeroVector

◆ AngularVelocityTolerance

float URRJointComponent::AngularVelocityTolerance = 10.f

[degree/s] tolerance for control

UPROPERTY(EditAnywhere, BlueprintReadWrite)

◆ bLimitPitch

bool URRJointComponent::bLimitPitch = true

◆ bLimitRoll

bool URRJointComponent::bLimitRoll = true

◆ bLimitYaw

bool URRJointComponent::bLimitYaw = true

◆ ChildLink

UStaticMeshComponent* URRJointComponent::ChildLink

◆ ControlType

ERRJointControlType URRJointComponent::ControlType = ERRJointControlType::POSITION

◆ InitialOrientation

FRotator URRJointComponent::InitialOrientation = FRotator::ZeroRotator

◆ InitialPosition

FVector URRJointComponent::InitialPosition = FVector::ZeroVector

◆ JointToChildLink

FTransform URRJointComponent::JointToChildLink = FTransform::Identity
protected

◆ LinearDOF

uint8 URRJointComponent::LinearDOF = 0

Linear Degrees Of Freedom.

UPROPERTY(EditAnywhere, BlueprintReadWrite)

◆ LinearVelMax

FVector URRJointComponent::LinearVelMax = FVector(1000, 1000, 1000)

Linear Velocity Limitations[cm/s].

Todo:
is it possible to set inf?

UPROPERTY(EditAnywhere, BlueprintReadWrite)

◆ LinearVelocity

FVector URRJointComponent::LinearVelocity = FVector::ZeroVector

◆ LinearVelocityTarget

FVector URRJointComponent::LinearVelocityTarget = FVector::ZeroVector

◆ LinearVelocityTolerance

float URRJointComponent::LinearVelocityTolerance = 10.f

[cm/s] tolerance for control

UPROPERTY(EditAnywhere, BlueprintReadWrite)

◆ Orientation

FRotator URRJointComponent::Orientation = FRotator::ZeroRotator

◆ OrientationMax

FRotator URRJointComponent::OrientationMax = FRotator(180.f)

Orientation Limitations[deg].

UPROPERTY(EditAnywhere, BlueprintReadWrite)

◆ OrientationMin

FRotator URRJointComponent::OrientationMin = FRotator(-180, -180, -180)

Orientation Limitations[deg].

UPROPERTY(EditAnywhere, BlueprintReadWrite)

◆ OrientationTarget

FRotator URRJointComponent::OrientationTarget = FRotator::ZeroRotator

◆ OrientationTolerance

float URRJointComponent::OrientationTolerance = 1.f

[degree] tolerance for control

UPROPERTY(EditAnywhere, BlueprintReadWrite)

◆ ParentLink

UStaticMeshComponent* URRJointComponent::ParentLink

◆ ParentLinkToJoint

FTransform URRJointComponent::ParentLinkToJoint = FTransform::Identity
protected

◆ Position

FVector URRJointComponent::Position = FVector::ZeroVector

◆ PositionMax

FVector URRJointComponent::PositionMax = FVector(1000, 1000, 1000)

Pose Limitations[cm].

Todo:
is it possible to set inf?

UPROPERTY(EditAnywhere, BlueprintReadWrite)

◆ PositionMin

FVector URRJointComponent::PositionMin = FVector(-1000, -1000, -1000)

◆ PositionTarget

FVector URRJointComponent::PositionTarget = FVector::ZeroVector

◆ PositionTolerance

float URRJointComponent::PositionTolerance = 1.f

[cm] tolerance for control

UPROPERTY(EditAnywhere, BlueprintReadWrite)

◆ RotationalDOF

uint8 URRJointComponent::RotationalDOF = 1

Rotational Degrees Of Freedom.

UPROPERTY(EditAnywhere, BlueprintReadWrite)


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