f110_planning.misc package

Submodules

f110_planning.misc.dummy_planner module

Dummy planner module.

class f110_planning.misc.dummy_planner.DummyPlanner

Bases: BasePlanner

A dummy planner that always returns a constant action.

plan(obs: dict[str, Any], ego_idx: int = 0) Action

Computes the next control action based on the observation.

Parameters:
  • obs – A dictionary containing simulation observations.

  • ego_idx – The index of the agent being controlled.

Returns:

The computed steering and speed commands.

Return type:

Action

f110_planning.misc.flippy_planner module

Flippy planner module.

class f110_planning.misc.flippy_planner.FlippyPlanner(flip_every: int = 1, steer: float = 2, speed: float = 1)

Bases: BasePlanner

Planner designed to exploit integration methods and dynamics. For testing only. To observe this error, use single track dynamics for all velocities >0.1

plan(obs: dict[str, Any], ego_idx: int = 0) Action

Computes the next control action based on the observation.

Parameters:
  • obs – A dictionary containing simulation observations.

  • ego_idx – The index of the agent being controlled.

Returns:

The computed steering and speed commands.

Return type:

Action

f110_planning.misc.hybrid_planner module

Hybrid planner module combining manual and autonomous control.

class f110_planning.misc.hybrid_planner.HybridPlanner(manual_planner: ManualPlanner, auto_planner: BasePlanner)

Bases: BasePlanner

Arbitrator that delegates control based on human input.

The Hybrid Planner monitors the keyboard state. If any movement keys (‘W’, ‘A’, ‘S’, ‘D’) are active, it hands over control to the human operator. Otherwise, it defaults to the provided autonomous planner.

plan(obs: dict[str, Any], ego_idx: int = 0) Action

Switches between human and autonomous control in real-time.

f110_planning.misc.manual_planner module

Manual planner module for keyboard control.

class f110_planning.misc.manual_planner.ManualPlanner(s_min: float = -0.4189, s_max: float = 0.4189, v_min: float = -5.0, v_max: float = 20.0, accel: float = 8.0, decel: float = 15.0, steer_rate: float = 1.5, dt: float = 0.01)

Bases: BasePlanner

Keyboard-based control interface with simplified vehicle dynamics.

This planner allows a human operator to control the vehicle using ‘WASD’ or Arrow keys. It simulates realistic steering and acceleration rates by integrating inputs over the simulation timestep.

plan(obs: dict[str, Any], ego_idx: int = 0) Action

Polls the keyboard state and integrates the vehicle control command.

f110_planning.misc.random_planner module

Random planner module.

class f110_planning.misc.random_planner.RandomPlanner(s_min: float = -0.4189, s_max: float = 0.4189, v_min: float = 0.5, v_max: float = 5.0)

Bases: BasePlanner

Experimental planner that yields stochastic control actions.

Used primarily for environment stress-testing and data diversity generation.

plan(obs: dict[str, Any], ego_idx: int = 0) Action

Generates a random steering and speed command.

Module contents

Miscellaneous planners for F1TENTH.

class f110_planning.misc.DummyPlanner

Bases: BasePlanner

A dummy planner that always returns a constant action.

plan(obs: dict[str, Any], ego_idx: int = 0) Action

Computes the next control action based on the observation.

Parameters:
  • obs – A dictionary containing simulation observations.

  • ego_idx – The index of the agent being controlled.

Returns:

The computed steering and speed commands.

Return type:

Action

class f110_planning.misc.FlippyPlanner(flip_every: int = 1, steer: float = 2, speed: float = 1)

Bases: BasePlanner

Planner designed to exploit integration methods and dynamics. For testing only. To observe this error, use single track dynamics for all velocities >0.1

plan(obs: dict[str, Any], ego_idx: int = 0) Action

Computes the next control action based on the observation.

Parameters:
  • obs – A dictionary containing simulation observations.

  • ego_idx – The index of the agent being controlled.

Returns:

The computed steering and speed commands.

Return type:

Action

class f110_planning.misc.HybridPlanner(manual_planner: ManualPlanner, auto_planner: BasePlanner)

Bases: BasePlanner

Arbitrator that delegates control based on human input.

The Hybrid Planner monitors the keyboard state. If any movement keys (‘W’, ‘A’, ‘S’, ‘D’) are active, it hands over control to the human operator. Otherwise, it defaults to the provided autonomous planner.

plan(obs: dict[str, Any], ego_idx: int = 0) Action

Switches between human and autonomous control in real-time.

class f110_planning.misc.ManualPlanner(s_min: float = -0.4189, s_max: float = 0.4189, v_min: float = -5.0, v_max: float = 20.0, accel: float = 8.0, decel: float = 15.0, steer_rate: float = 1.5, dt: float = 0.01)

Bases: BasePlanner

Keyboard-based control interface with simplified vehicle dynamics.

This planner allows a human operator to control the vehicle using ‘WASD’ or Arrow keys. It simulates realistic steering and acceleration rates by integrating inputs over the simulation timestep.

plan(obs: dict[str, Any], ego_idx: int = 0) Action

Polls the keyboard state and integrates the vehicle control command.

class f110_planning.misc.RandomPlanner(s_min: float = -0.4189, s_max: float = 0.4189, v_min: float = 0.5, v_max: float = 5.0)

Bases: BasePlanner

Experimental planner that yields stochastic control actions.

Used primarily for environment stress-testing and data diversity generation.

plan(obs: dict[str, Any], ego_idx: int = 0) Action

Generates a random steering and speed command.