跳转至

pid

Torch-based PID controllers for batched simulation.

类:

名称 描述
PID

Vectorized PID controller for multiple environments.

FlightController

PID flight controller (batched).

TrackController

PID track controller (batched).

PID

PID(Kp: Tensor, Ki: Tensor | None = None, Kd: Tensor | None = None, dt: float = 0.01, N: float = 100.0, integral_limit: Tensor | None = None, num_envs: int = 1)

Vectorized PID controller for multiple environments.

Initialize PID gains and state tensors.

参数:

名称 类型 描述 默认

Kp

Tensor

Proportional gain tensor with a leading environment dimension.

必需

Ki

Tensor | None

Integral gain tensor with the same shape as Kp.

None

Kd

Tensor | None

Derivative gain tensor with the same shape as Kp.

None

dt

float

Controller time step.

0.01

N

float

First-order derivative filter coefficient.

100.0

integral_limit

Tensor | None

Optional clamp applied elementwise to the integral state.

None

num_envs

int

Number of environments.

1

方法:

名称 描述
reset

Reset PID state for selected environments.

update

Compute PID output for the given error tensor.

reset

reset(env_ids: slice | Sequence[int] | Tensor) -> None

Reset PID state for selected environments.

参数:

名称 类型 描述 默认

env_ids

slice | Sequence[int] | Tensor

Indices or slice selecting which environments to reset.

必需

update

update(error: Tensor) -> torch.Tensor

Compute PID output for the given error tensor.

参数:

名称 类型 描述 默认

error

Tensor

Batched control error tensor compatible with the internal state shape determined from Kp.

必需

返回:

类型 描述
Tensor

torch.Tensor: Combined P+I+D control output.

FlightController

FlightController(params: VehicleParams = VehicleParams(), control_mask: dict | None = None, gains: dict | None = None, limits: dict | None = None, num_envs: int = 1, device: str | device = 'cpu')

Bases: ControllerBase

PID flight controller (batched).

Initialize the batched flight PID controller.

方法:

名称 描述
randomize

Randomize configured PID gains, controller limits, and physical params.

reset

Reset PID loops for selected environments.

update

Update controller.

gains_to_randomization_ranges

Convert static gains dict to domain randomization min/max ranges.

属性:

名称 类型 描述
params VehicleParams

Vehicle parameters for the controller.

params instance-attribute

params: VehicleParams = params

Vehicle parameters for the controller.

randomize

randomize(env_ids=None, gains=None, limits=None, params=None)

Randomize configured PID gains, controller limits, and physical params.

reset

reset(env_ids)

Reset PID loops for selected environments.

update

update(target: dict, state: dict) -> torch.Tensor

Update controller.

参数:

名称 类型 描述 默认

target

dict

dict with batched tensors, keys matching mask.

必需

state

dict

dict: pos(N,3), vel(N,3), att_euler(N,3), ang_vel(N,3).

必需

返回:

名称 类型 描述
Tensor (N, 4)

[thrust, roll_moment, pitch_moment, yaw_moment].

gains_to_randomization_ranges classmethod

gains_to_randomization_ranges(gains=None, scale=0.2)

Convert static gains dict to domain randomization min/max ranges.

Each non-zero gain is scaled by (1-scale) for min and (1+scale) for max. Defaults to cls.DEFAULT_GAINS when gains is None.

TrackController

TrackController(params: VehicleParams = VehicleParams(), control_mask: dict | None = None, gains: dict | None = None, num_envs: int = 1, device: str | device = 'cpu')

Bases: ControllerBase

PID track controller (batched).

Initialize the batched track controller.

方法:

名称 描述
randomize

Randomize configured PID gains for all or selected environments.

reset

Reset PID loops for selected environments.

update

Update controller.

属性:

名称 类型 描述
params VehicleParams

Vehicle parameters for the controller.

params instance-attribute

params: VehicleParams = params

Vehicle parameters for the controller.

randomize

randomize(env_ids=None, gains=None)

Randomize configured PID gains for all or selected environments.

reset

reset(env_ids)

Reset PID loops for selected environments.

update

update(target: dict, state: dict) -> torch.Tensor

Update controller.

参数:

名称 类型 描述 默认

target

dict

dict: pos(N,3), vel_b(N,3), att_euler(N,3), ang_vel(N,3). Only pos[:,:2], vel_b[:,0], att_euler[:,2], ang_vel[:,2] are used.

必需

state

dict

dict with same keys.

必需

返回:

名称 类型 描述
Tensor (N, 2)

left/right acceleration commands.