|
RapyutaSimulationPlugins
|
Physics Joint component. More...
#include <RRPhysicsJointComponent.h>


Public Member Functions | |
| URRPhysicsJointComponent () | |
| virtual bool | IsValid () override |
| virtual void | InitializeComponent () override |
| Initialize Constraint JointToChildLink and ParentLinkToJoint. More... | |
| virtual void | SetVelocity (const FVector &InLinearVelocity, const FVector &InAngularVelocity) override |
| Do nothing since can't set velocity directly to physics joint. More... | |
| virtual void | SetVelocityTarget (const FVector &InLinearVelocity, const FVector &InAngularVelocity) override |
| Call SetLinearVelocityTarget and SetAngularVelocityTarget. More... | |
| virtual void | SetPose (const FVector &InPosition, const FRotator &InOrientation) override |
| Do nothing since can't set pose directly to physics joint. More... | |
| virtual void | SetPoseTarget (const FVector &InPosition, const FRotator &InOrientation) override |
| Call SetLinearPositionTarget and SetAngularOrientationTarget. More... | |
| virtual void | Teleport (const FVector &InPosition, const FRotator &InOrientation) override |
| Disable collision and set target pose to given pose. More... | |
| virtual void | MoveToInitPose () |
| virtual void | SetJoint () |
Public Member Functions inherited from URRJointComponent | |
| URRJointComponent () | |
| virtual void | TickComponent (float DeltaTime, ELevelTick TickType, FActorComponentTickFunction *ThisTickFunction) override |
| Call #UpdatePose after update PositionTarget and OrientationTarget with LinearVelocity and AngularVelocity. 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 | 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... | |
| FTransform | GetJointToChildLink () |
| FTransform | GetParentLinkToJoint () |
Public Attributes | |
| UPhysicsConstraintComponent * | Constraint = nullptr |
| Physics Constraints. More... | |
| bool | bSmoothing = false |
| Smoothing TargetPose to Constraint. More... | |
| float | Kvp = 10.f |
| Position Velocity Gain used with bSmoothing = false. More... | |
| float | Kva = 10.f |
| Angular Velocity Gain used with bSmoothing = false. More... | |
| float | Kip = 0.f |
| Position Integral Gain used with bSmoothing = false. More... | |
| float | Kia = 0.f |
| Angular Integral Gain used with bSmoothing = false. More... | |
| float | LinearVelocitySmoothingAcc = 10.f |
| Acceleration[cm/ss] used by velocity smoothing if #bVelocitySmoothing = true. More... | |
| float | AngularVelocitySmoothingAcc = 10.f |
| Acceleration[deg/ss] used by velocity smoothing if #bVelocitySmoothing = true. More... | |
| float | LinearSpring = 1000 |
| [kg/ss] More... | |
| float | LinearDamper = 10 |
| [kg/s] More... | |
| float | LinearForceLimit = UE_BIG_NUMBER |
| [kg.cm/ss] More... | |
| float | AngularSpring = 100000 |
| [kg.cm/ss] More... | |
| float | AngularDamper = 10000 |
| [kg.cm/s] More... | |
| float | AngularForceLimit = UE_BIG_NUMBER |
| [kg.deg.deg/ss] More... | |
| bool | bManualConstraintSetting = false |
| if false, physics constraints parameters are set from SetJoint . More... | |
Public Attributes inherited from URRJointComponent | |
| 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 | UpdateState (const float DeltaTime) override |
| virtual void | UpdateControl (const float DeltaTime) override |
| virtual void | UpdateIntegral (const FVector &InPositionDiff, const FVector &InOrientationDiff, const float DeltaTime) |
| Update LinearVelocityTarget from InPositionDiff and Kvp. More... | |
| virtual void | UpdateVelocityTargetFromPose (const FVector InPositionDiff, const FVector InOrientationDiff) |
| Update LinearVelocityTarget from InPositionDiff and Kvp. More... | |
| virtual FRotator | GetOrientationTargetFromEuler (const FVector &InOrientationTarget) |
| Get the Orientation Target to SetAngularOrientationTarget from Euler angle. More... | |
Protected Member Functions inherited from URRJointComponent | |
| virtual void | PoseFromArray (const TArray< float > &InPose, FVector &OutPosition, FRotator &OutOrientation) |
| virtual void | VelocityFromArray (const TArray< float > &InVelocity, FVector &OutLinearVelocity, FVector &OutAngularVelocity) |
| 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 | |
| FVector | MidLinearVelocityTarget = FVector::ZeroVector |
| LinearVelocityTarget for smoothing. More... | |
| FVector | MidAngularVelocityTarget = FVector::ZeroVector |
| AngularVelocityTarget for smoothing. More... | |
| FVector | MidPositionTarget = FVector::ZeroVector |
| PositionTarget for smoothing. More... | |
| FRotator | MidOrientationTarget = FRotator::ZeroRotator |
| OrientationTarget for smoothing. More... | |
| TStaticArray< TwoPointInterpolation, 3 > | PositionTPI |
| Position Two Point Interpolation used with bSmoothing = true. More... | |
| TStaticArray< TwoAngleInterpolation, 3 > | OrientationTPI |
| Angular Two Point Interpolation used with bSmoothing = true. More... | |
| FVector | PErrInt = FVector::ZeroVector |
| Position Error Integral used with bSmoothing = false. More... | |
| FVector | AErrInt = FVector::ZeroVector |
| Angular Error Integral used with bSmoothing = false. More... | |
Protected Attributes inherited from URRJointComponent | |
| 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... | |
Physics Joint component.
PhysicsConstraintsComponent needs to be defined outside of this class and passed to Constraint in construction.
UCLASS(ClassGroup = (Custom), meta = (BlueprintSpawnableComponent))
| URRPhysicsJointComponent::URRPhysicsJointComponent | ( | ) |
|
protectedvirtual |
Get the Orientation Target to SetAngularOrientationTarget from Euler angle.
| InOrientationTarget |
|
overridevirtual |
Initialize Constraint JointToChildLink and ParentLinkToJoint.
Reimplemented from URRJointComponent.
|
overridevirtual |
Reimplemented from URRJointComponent.
|
virtual |
Reimplemented from URRJointComponent.
|
virtual |
Set joints parameter and etc
|
overridevirtual |
Do nothing since can't set pose directly to physics joint.
| InPosition | |
| InOrientation |
Reimplemented from URRJointComponent.
|
overridevirtual |
Call SetLinearPositionTarget and SetAngularOrientationTarget.
Reimplemented from URRJointComponent.
|
overridevirtual |
Do nothing since can't set velocity directly to physics joint.
| InLinearVelocity | |
| InAngularVelocity |
Reimplemented from URRJointComponent.
|
overridevirtual |
Call SetLinearVelocityTarget and SetAngularVelocityTarget.
Reimplemented from URRJointComponent.
|
overridevirtual |
Disable collision and set target pose to given pose.
| InPosition | |
| InOrientation |
Reimplemented from URRJointComponent.
|
overrideprotectedvirtual |
Reimplemented from URRJointComponent.
|
protectedvirtual |
Update LinearVelocityTarget from InPositionDiff and Kvp.
UFUNCTION() And update AngularVelocityTarget from InOrientationDiff and Kva.
| InPositionDiff | |
| InPositionDiff | |
| InOrientationDiff | |
| DeltaTime |
|
overrideprotectedvirtual |
Reimplemented from URRJointComponent.
|
protectedvirtual |
Update LinearVelocityTarget from InPositionDiff and Kvp.
And update AngularVelocityTarget from InOrientationDiff and Kva.
| InPositionDiff | |
| InOrientationDiff |
|
protected |
Angular Error Integral used with bSmoothing = false.
| float URRPhysicsJointComponent::AngularDamper = 10000 |
| float URRPhysicsJointComponent::AngularForceLimit = UE_BIG_NUMBER |
[kg.deg.deg/ss]
| float URRPhysicsJointComponent::AngularSpring = 100000 |
[kg.cm/ss]
| float URRPhysicsJointComponent::AngularVelocitySmoothingAcc = 10.f |
Acceleration[deg/ss] used by velocity smoothing if #bVelocitySmoothing = true.
| bool URRPhysicsJointComponent::bManualConstraintSetting = false |
if false, physics constraints parameters are set from SetJoint .
Plese set true if you want to set physics constraints parameter manually.
| bool URRPhysicsJointComponent::bSmoothing = false |
Smoothing TargetPose to Constraint.
If this is false, step pose target are used by SetPoseTarget If this is true, pose target changes linearly with max vel in TickComponent
| UPhysicsConstraintComponent* URRPhysicsJointComponent::Constraint = nullptr |
Physics Constraints.
| float URRPhysicsJointComponent::Kia = 0.f |
Angular Integral Gain used with bSmoothing = false.
| float URRPhysicsJointComponent::Kip = 0.f |
Position Integral Gain used with bSmoothing = false.
| float URRPhysicsJointComponent::Kva = 10.f |
Angular Velocity Gain used with bSmoothing = false.
| float URRPhysicsJointComponent::Kvp = 10.f |
Position Velocity Gain used with bSmoothing = false.
| float URRPhysicsJointComponent::LinearDamper = 10 |
| float URRPhysicsJointComponent::LinearForceLimit = UE_BIG_NUMBER |
[kg.cm/ss]
| float URRPhysicsJointComponent::LinearSpring = 1000 |
| float URRPhysicsJointComponent::LinearVelocitySmoothingAcc = 10.f |
Acceleration[cm/ss] used by velocity smoothing if #bVelocitySmoothing = true.
|
protected |
AngularVelocityTarget for smoothing.
|
protected |
LinearVelocityTarget for smoothing.
|
protected |
OrientationTarget for smoothing.
|
protected |
PositionTarget for smoothing.
|
protected |
Angular Two Point Interpolation used with bSmoothing = true.
|
protected |
Position Error Integral used with bSmoothing = false.
|
protected |
Position Two Point Interpolation used with bSmoothing = true.
1.8.17