smarts.core.controllers.action_space_type module

class smarts.core.controllers.action_space_type.ActionSpaceType(value)[source]

Available vehicle action spaces.

ActuatorDynamic = 2

Action=(throttle, brake, steering_rate)

  • throttle: Range=[0, 1]. Type=float.

  • brake: Range=[0, 1]. Type=float.

  • steering_rate: Range[-1, 1]. Type=float.

Steering rate means the amount of steering change per second. (either positive or negative) to be applied to the current steering. This gets clipped to the available steering of the vehicle (which may vary.)

Continuous = 0

Action=(throttle, brake, steering) + throttle: Range=[0, 1]. Type=float. + brake: Range=[0, 1]. Type=float. + steering: Range=[-1, 1]. Type=float. Steering maps to full turn in one direction to a full turn in the other. Direction of turn for the steering depends on the vehicle.

Direct = 9

Action=(speed) OR (acceleration, angular_velocity). Type= Union[float, (float,float)]. Continuous action space where we can pass either (a) an initial speed upon reset, or (b) linear acceleration and angular velocity for other steps.

Empty = 10

Action=(). Type= Tuple[]. This action is empty.

Lane = 1

Action= str. Discrete lane action from one of

  • “keep_lane”,

  • “slow_down”,

  • “change_lane_left”, and

  • “change_lane_right”.

LaneWithContinuousSpeed = 3

Action=(target_speed, lane_change).

  • target_speed: Baseline target speed (controller may give more or less regardless). Type=float.

  • lane_change: Discrete lane change value. Can be one of
    • -1 : change to right lane

    • 0 : keep to current lane

    • 1 : change to left lane

MPC = 7

Action=`(x_coords, y_coords, headings, speeds)`. Type= (Sequence[float], Sequence[float], Sequence[float], Sequence[float]). Adaptive control performed on the vehicle model to match the given trajectory comprising of vehicle’s x coordinates, y coordinates, headings, and speeds.

MultiTargetPose = 6

Action= Dict[str, (float, float, float, float)]. Continuous action space that provides TargetPose actions for multiple vehicles.

RelativeTargetPose = 11

Action=(delta_x, delta_y, delta_heading). Type= Sequence[float, float, float]. Continuous action space of vehicle’s next pose in terms of delta x coordinate, delta y coordinate, and delta heading, to be reached in 0.1 seconds.

TargetPose = 4

Action=`(x_coord, y_coord, heading, time_delta)`. Type= Sequence[float, float, float, float]. Continuous action space of vehicle’s next x coordinate, y coordinate, heading, and time delta to reach the given pose.

Trajectory = 5

Action=`(x_coords, y_coords, headings, speeds)`. Type= (Sequence[float], Sequence[float], Sequence[float], Sequence[float]). Continuous action space using trajectory comprising of x coordinates, y coordinates, headings, and speeds, to directly move a vehicle.

TrajectoryWithTime = 8

Action=([time],[x_coord],[y_coord],[heading],[speed]). Type= (Sequence[float], Sequence[float], Sequence[float], Sequence[float], Sequence[float]). Interpolates vehicle along the given trajectory comprising of times, x coordinates, y coordinates, headings, and speeds.