UMjPassthroughController¶
Writes control values directly to d->ctrl without modification.
Use this when the MJCF actuators handle their own dynamics (position actuators with kp/kv, or motor actuators receiving raw torque from Python). Functionally identical to the default ApplyControls() path, but as an explicit component for consistency with the controller framework.
| Attribute | Value |
|---|---|
| Kind | Class |
| UE Macro | UCLASS |
| Inherits | UMjArticulationController |
| Blueprint Spawnable | ✅ Yes |
Properties¶
Public Properties¶
| Property | Type | Description |
|---|---|---|
bEnabled |
bool |
Is this controller active? If false, ApplyControls falls through to default path. |
bEnabled¶
Is this controller active? If false, ApplyControls falls through to default path.
- Type: bool
- Editor: ✏️ EditAnywhere
- Blueprint: 🔵 ReadWrite
- Category: MuJoCo|Controller
Protected Properties¶
| Property | Type | Description |
|---|---|---|
Bindings |
TArray<FActuatorBinding> | Actuator→DOF bindings, populated by Bind(). |
Functions¶
Public Functions¶
General¶
| Function | Returns | Description |
|---|---|---|
Bind() |
void | Called once after the MuJoCo model compiles. Resolves actuator→DOF |
ComputeAndApply() |
void | Called every physics step from AMjArticulation::ApplyControls(). |
IsBound() |
bool |
Has Bind() been called successfully? |
GetNumBindings() |
int32 |
Number of bound actuators. |
GetBindings() |
const TArray<FActuatorBinding>& | Access bindings (for gain configuration by name). |
GetKindName() |
FString |
Short kind name reported in the handshake (e.g. "pd", "passthrough"). |
GetConfigSchema() |
void | Fill @p OutSchema with the JSON schema for this controller's params. |
GetCurrentConfig() |
void | Fill @p OutParams with the controller's current parameter values. |
ApplyConfig() |
void | Apply a partial JSON config to this controller. Missing fields keep their current value. |
Bind¶
Called once after the MuJoCo model compiles. Resolves actuator→DOF
- Signature:
Bind(mjModel*m,mjData*d,constTMapUMjActuator\*>& ActuatorIdMap)
ComputeAndApply¶
Called every physics step from AMjArticulation::ApplyControls().
- Signature:
ComputeAndApply(mjModel*m,mjData*d,uint8Source)
GetBindings¶
Access bindings (for gain configuration by name).
- Signature:
GetBindings() - Returns: const TArray<FActuatorBinding>&
GetKindName¶
Short kind name reported in the handshake (e.g. "pd", "passthrough").
- Signature:
GetKindName() - Returns: FString
GetConfigSchema¶
Fill @p OutSchema with the JSON schema for this controller's params.
- Signature:
GetConfigSchema(TSharedPtr<FJsonObject>&OutSchema)
GetCurrentConfig¶
Fill @p OutParams with the controller's current parameter values.
- Signature:
GetCurrentConfig(TSharedPtr<FJsonObject>&OutParams)
ApplyConfig¶
Apply a partial JSON config to this controller. Missing fields keep their current value.
- Signature:
ApplyConfig(const TSharedPtr<FJsonObject>&InParams)