Terminology

General

State: The state of the vehicle. We define this to be x, y, yaw and speed.

Control Action: The control action to be executed by the vehicle. We define this to be steering wheel angle and wheel throttle.

Action Trajectory: An array of control actions, representing a temporal sequence of control actions to be executed every controller_period.

Dynamics Model: A model that future state after a given time, given the current state and control action.

Cost Function: A function that evaluates the quality of a given state. The goal is to minimize this function.

Cost-to-go: The total cost of being in a given state and all the states that follow it.

Controller Period: The time interval between control actions.

Perturbation: Brownian noise centered at 0 that we add to a base action trajectory to generate a sample.

twist: 6-dimensional velocity, 3 for linear velocity and 3 for angular velocity.

pose: 6-dimensional position, 3 for translation and 3 for orientation.

spline: The line through the middle of the track boundaries, generated by Path Planning’s SVM algorithm. Represented as an array of (x,y,z) points. Currently, the car is always fixed to be at point (0,0,0).

callback : A function that is called when an event occurs.

Coordinate frames:

  • inertial: Standard coordinate frame, translated and rotated such that the car is at point (0,0,0) with yaw 0 being

the direction the car is facing. Otherwise known as path planning frame or erroneously world frame. - curvilinear: Coordinate frame in relation to the spline. Coordinates represent distance along spline, perpendicular distance from spline, angle with tangent of spline, etc. Needed for cost calculation.

rollout: In the context of MPPI, refers to state rollout. A sequence of predicted states calculated by repeated application of the model on a given starting state and control action trajectory.

CUDA

host: The CPU

device: The GPU, or one of many.

__device__: Tag for function subroutines to be run exclusively on the GPU, or symbols to be statically allocated in GPU global memory.

__global__: Tag for kernels: functions that are called by the host and run on the device.

__constant__: Tag for symbols in device memory that are unmodified by kernels . Can still copy to and from the host. Read-only in CUDA code. Allows for better caching. Equivalent of const. Constants for both the host and device should be marked __constant__ const.

ROS

Node: A process that performs computation. Nodes can communicate with each other by publishing messages to topics.

Publisher: A node that sends messages to a topic.

Subscriber: A node that receives messages from a topic.

Topic: A channel for sending messages. Nodes can publish messages to a topic or subscribe to a topic to receive messages.

Acronyms

MPPI: Model Predictive Path Integral. See here for more information.

ROS: Robot Operating System. We are currently using ROS2 Humble.

CUDA: Compute Unified Device Architecture. A toolkit provided by NVIDIA for parallel computing on GPUs.

LIDAR: Light Detection and Ranging. A sensor that uses laser light to measure distances to objects, in our case track cones.