RapyutaSimulationPlugins
|
Base Joints class. Other joint class should inherit from this class. More...
#include <RRJointComponent.h>
Public Member Functions | |
URRJointComponent () | |
virtual bool | IsValid () |
virtual void | TickComponent (float DeltaTime, ELevelTick TickType, FActorComponentTickFunction *ThisTickFunction) override |
Call #UpdatePose after update PositionTarget and OrientationTarget with LinearVelocity and AngularVelocity. More... | |
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 | SetSingleLinearVelocityTarget (const float Input) |
Utility wrapper of SetVelocityTarget to provide 1 DoF target orientation. More... | |
virtual void | SetSingleAngularVelocityTarget (const float Input) |
Utility wrapper of SetVelocityTarget to provide 1 DoF target position. More... | |
virtual void | SetVelocityTargetWithDelegates (const FVector &InLinearVelocity, const FVector &InAngularVelocity, const FJointCallback &InOnControlSuccessDelegate, const FJointCallback &InOnControlFailDelegate, const float InLinearTolerance=-1.0, const float InAngularTolerance=-1.0, const float InTimeOut=-1.0) |
Set the Velocity Target With Delegates object. More... | |
virtual void | SetSingleLinearVelocityTargetWithDelegates (const float Input, const FJointCallback &InOnControlSuccessDelegate, const FJointCallback &InOnControlFailDelegate, const float InLinearTolerance=-1.0, const float InTimeOut=-1.0) |
Utility wrapper of SetVelocityTargetWithDelegates to provide 1 DoF targetlinear velocity. More... | |
virtual void | SetSingleAngularVelocityTargetWithDelegates (const float Input, const FJointCallback &InOnControlSuccessDelegate, const FJointCallback &InOnControlFailDelegate, const float InAngularTolerance=-1.0, const float InTimeOut=-1.0) |
Utility wrapper of SetVelocityTargetWithDelegates to provide 1 DoF target angular velocity. 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 void | SetVelocityTargetWithArrayWithDelegates (const TArray< float > &InVelocity, const FJointCallback &InOnControlSuccessDelegate, const FJointCallback &InOnControlFailDelegate, const float InLinearTolerance=-1.0, const float InAngularTolerance=-1.0, const float InTimeOut=-1.0) |
Set the Velocity Target With Array With Delegates object. 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 void | SetSinglePositionTarget (const float Input) |
Utility wrapper of SetPoseTarget to provide 1 DoF target orientation. More... | |
virtual void | SetSingleOrientationTarget (const float Input) |
Utility wrapper of SetPoseTarget to provide 1 DoF target position. More... | |
virtual void | SetPoseTargetWithDelegates (const FVector &InPosition, const FRotator &InOrientation, const FJointCallback &InOnControlSuccessDelegate, const FJointCallback &InOnControlFailDelegate, const float InPositionTolerance=-1.0, const float InOrientationTolerance=-1.0, const float InTimeOut=-1.0) |
Set Pose Target. More... | |
virtual void | SetSinglePositionTargetWithDelegates (const float Input, const FJointCallback &InOnControlSuccessDelegate, const FJointCallback &InOnControlFailDelegate, const float InPositionTolerance=-1.0, const float InTimeOut=-1.0) |
Utility wrapper of SetPoseTargetWithDelegates to provide 1 DoF target position. More... | |
virtual void | SetSingleOrientationTargetWithDelegates (const float Input, const FJointCallback &InOnControlSuccessDelegate, const FJointCallback &InOnControlFailDelegate, const float InOrientationTolerance=-1.0, const float InTimeOut=-1.0) |
Utility wrapper of SetPoseTargetWithDelegates to provide 1 DoF target orientation. 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 | SetPoseTargetWithArrayWithDelegates (const TArray< float > &InPose, const FJointCallback &InOnControlSuccessDelegate, const FJointCallback &InOnControlFailDelegate, const float InPositionTolerance=-1.0, const float InOrientationTolerance=-1.0, const float InTimeOut=-1.0) |
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) |
virtual void | UpdateState (const float DeltaTime) |
virtual void | UpdateControl (const float DeltaTime) |
virtual void | SetDelegates (const FJointCallback &InOnControlSuccessDelegate, const FJointCallback &InOnControlFailDelegate, const float InPositionTolerance=-1.0, const float InOrientationTolerance=-1.0, const float InLinearTolerance=-1.0, const float InAngularTolerance=-1.0, const float InTimeOut=-1.0f) |
Set Delegates which will be unbounded when move is completed or timeouthappen. More... | |
virtual void | ResetControl () |
Protected Attributes | |
FTransform | JointToChildLink = FTransform::Identity |
FTransform | ParentLinkToJoint = FTransform::Identity |
bool | bMovingToTargetPose = false |
true if joint is moving to target pose More... | |
bool | bMovingToTargetVelocity = false |
true if joint is moving to target velocity More... | |
FJointCallback | OnControlSuccessDelegate |
Delegate which is called when joint reach target vel/pose. More... | |
FJointCallback | OnControlFailDelegate |
Delegate which is called whenjoint failed to reach target vel/pose. More... | |
float | ControlStartTime = 0.f |
time when target pose/vel are set. More... | |
float | ControlTimeout = -1.0f |
timeout. If joint can't reach target in this duration, OnControlFailDelegate should be called. More... | |
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))
URRJointComponent::URRJointComponent | ( | ) |
|
inline |
|
inline |
|
virtual |
Check Pose reach the target pose.
If minus values are given, PositionTolerance and OrientationTolerance will be used.
|
virtual |
Check Pose reach the target pose.
If minus values are given or called without args, LinearVelocityTolerance and AngularVelocityTolerance will be used.
|
overridevirtual |
Initialize JointToChildLink and ParentLinkToJoint.
Reimplemented in URRPhysicsJointComponent, and URRKinematicJointComponent.
|
virtual |
Reimplemented in URRPhysicsJointComponent.
|
virtual |
Reimplemented in URRPhysicsJointComponent, and URRKinematicJointComponent.
|
protectedvirtual |
|
protectedvirtual |
|
protectedvirtual |
Set Delegates which will be unbounded when move is completed or timeouthappen.
InOnControlSuccessDelegate | called when move to target success |
InOnControlFailDelegate | called when move to target fail |
InPositionTolerance | update PositionTolerance if this is set >= 0. |
InOrientationTolerance | update OrientationTolerance if this is set >= 0. |
InTimeOut | if this is set less than 0, timeout won't happen. |
|
virtual |
Directly set pose.
Control to teleport joint to this pose should be implemented in child class.
InPosition | |
InOrientation |
Reimplemented in URRPhysicsJointComponent, and URRKinematicJointComponent.
|
virtual |
Set Pose Target.
Control to move joint to pose target should be implemented in child class.
InPosition | |
InOrientation |
Reimplemented in URRPhysicsJointComponent, and URRKinematicJointComponent.
|
virtual |
Set Pose Target.
Control to move joint to pose target should be implemented in child class.
TArray size should be LinearDOF + RotationalDOF
InPose |
|
virtual |
Set Pose Target.
InPose | |
InOnControlSuccessDelegate | |
InOnControlFailDelegate | |
InTimeOut |
|
virtual |
Set Pose Target.
InPosition | |
InOrientation | |
InOnControlSuccessDelegate | called when move to target success |
InOnControlFailDelegate | called when move to target fail |
InPositionTolerance | update PositionTolerance if this is set >= 0. |
InOrientationTolerance | update OrientationTolerance if this is set >= 0. |
InTimeOut |
|
virtual |
Directly set pose.
Control to teleport joint to pose should be implemented in child class.
TArray size should be LinearDOF + RotationalDOF
InPose |
|
virtual |
Utility wrapper of SetVelocityTarget to provide 1 DoF target position.
This is useful since most of the joint is 1 DOF
Input |
|
virtual |
Utility wrapper of SetVelocityTargetWithDelegates to provide 1 DoF target angular velocity.
This is useful since most of the joint is 1 DOF
Input | |
InOnControlSuccessDelegate | |
InOnControlFailDelegate | |
InLinearTolerance | |
InTimeOut |
|
virtual |
Utility wrapper of SetVelocityTarget to provide 1 DoF target orientation.
This is useful since most of the joint is 1 DOF
Input |
|
virtual |
Utility wrapper of SetVelocityTargetWithDelegates to provide 1 DoF targetlinear velocity.
This is useful since most of the joint is 1 DOF
Input | |
InOnControlSuccessDelegate | |
InOnControlFailDelegate | |
InLinearTolerance | |
InTimeOut |
|
virtual |
Utility wrapper of SetPoseTarget to provide 1 DoF target position.
This is useful since most of the joint is 1 DOF
Input |
|
virtual |
Utility wrapper of SetPoseTargetWithDelegates to provide 1 DoF target orientation.
This is useful since most of the joint is 1 DOF
Input | |
InOnControlSuccessDelegate | called when move to target success |
InOnControlFailDelegate | called when move to target fail |
InOrientationTolerance | update OrientationTolerance if this is set >= 0. |
InTimeOut |
|
virtual |
Utility wrapper of SetPoseTarget to provide 1 DoF target orientation.
This is useful since most of the joint is 1 DOF
Input |
|
virtual |
Utility wrapper of SetPoseTargetWithDelegates to provide 1 DoF target position.
This is useful since most of the joint is 1 DOF
Input | |
InOnControlSuccessDelegate | |
InOnControlFailDelegate | |
InPositionTolerance | |
InTimeOut |
|
virtual |
Directly set velocity.
Control to move joint with this velocity should be implemented in child class.
InLinearVelocity | |
InAngularVelocity |
Reimplemented in URRPhysicsJointComponent.
|
virtual |
Set velocity target.
Control to move joint with this velocity should be implemented in child class.
InLinearVelocity | |
InAngularVelocity |
Reimplemented in URRPhysicsJointComponent, and URRKinematicJointComponent.
|
virtual |
Set the Velocity Target.
Control to move joint with this velocity should be implemented in child class.
TArray size should be LinearDOF + RotationalDOF
InVelocity |
|
virtual |
Set the Velocity Target With Array With Delegates object.
InVelocity | |
InOnControlSuccessDelegate | |
InOnControlFailDelegate | |
InLinearTolerance | |
InAngularTolerance | |
InTimeOut |
|
virtual |
Set the Velocity Target With Delegates object.
InLinearVelocity | |
InAngularVelocity | |
InOnControlSuccessDelegate | |
InOnControlFailDelegate | |
InLinearTolerance | |
InAngularTolerance | |
InTimeOut |
|
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
InVelocity |
|
virtual |
Teleport robot to given pose. Implementation is in child class.
Reimplemented in URRPhysicsJointComponent, and URRKinematicJointComponent.
|
overridevirtual |
Call #UpdatePose after update PositionTarget and OrientationTarget with LinearVelocity and AngularVelocity.
DeltaTime | |
TickType | |
ThisTickFunction |
|
protectedvirtual |
Reimplemented in URRPhysicsJointComponent, and URRKinematicJointComponent.
|
protectedvirtual |
Reimplemented in URRPhysicsJointComponent, and URRKinematicJointComponent.
|
protectedvirtual |
FVector URRJointComponent::AngularVelMax = FVector(180.f) |
Angular Velocity Limitations[deg/s].
FVector URRJointComponent::AngularVelocity = FVector::ZeroVector |
FVector URRJointComponent::AngularVelocityTarget = FVector::ZeroVector |
float URRJointComponent::AngularVelocityTolerance = 10.f |
[degree/s] tolerance for control
bool URRJointComponent::bLimitPitch = true |
bool URRJointComponent::bLimitRoll = true |
bool URRJointComponent::bLimitYaw = true |
|
protected |
true if joint is moving to target pose
|
protected |
true if joint is moving to target velocity
UStaticMeshComponent* URRJointComponent::ChildLink |
|
protected |
time when target pose/vel are set.
|
protected |
timeout. If joint can't reach target in this duration, OnControlFailDelegate should be called.
used only with #SetPoseTargetWithDelegate if this is set less than 0, timeout won't happen.
ERRJointControlType URRJointComponent::ControlType = ERRJointControlType::POSITION |
FRotator URRJointComponent::InitialOrientation = FRotator::ZeroRotator |
FVector URRJointComponent::InitialPosition = FVector::ZeroVector |
|
protected |
uint8 URRJointComponent::LinearDOF = 0 |
Linear Degrees Of Freedom.
FVector URRJointComponent::LinearVelMax = FVector(1000, 1000, 1000) |
Linear Velocity Limitations[cm/s].
FVector URRJointComponent::LinearVelocity = FVector::ZeroVector |
FVector URRJointComponent::LinearVelocityTarget = FVector::ZeroVector |
float URRJointComponent::LinearVelocityTolerance = 10.f |
[cm/s] tolerance for control
|
protected |
Delegate which is called whenjoint failed to reach target vel/pose.
|
protected |
Delegate which is called when joint reach target vel/pose.
FRotator URRJointComponent::Orientation = FRotator::ZeroRotator |
FRotator URRJointComponent::OrientationMax = FRotator(180.f) |
Orientation Limitations[deg].
FRotator URRJointComponent::OrientationMin = FRotator(-180, -180, -180) |
Orientation Limitations[deg].
FRotator URRJointComponent::OrientationTarget = FRotator::ZeroRotator |
float URRJointComponent::OrientationTolerance = 1.f |
[degree] tolerance for control
UStaticMeshComponent* URRJointComponent::ParentLink |
|
protected |
FVector URRJointComponent::Position = FVector::ZeroVector |
FVector URRJointComponent::PositionMax = FVector(1000, 1000, 1000) |
FVector URRJointComponent::PositionMin = FVector(-1000, -1000, -1000) |
Pose Limitations[cm].
FVector URRJointComponent::PositionTarget = FVector::ZeroVector |
float URRJointComponent::PositionTolerance = 1.f |
[cm] tolerance for control
uint8 URRJointComponent::RotationalDOF = 1 |
Rotational Degrees Of Freedom.