Docs menu
Glossary
Short definitions of the terms these pages use, from ROS 2 basics to racing-line vocabulary.
ROS 2
| Term | Definition |
|---|---|
| Node | One running program with one job, such as reading the LiDAR or choosing a steering angle |
| Topic | A named channel that nodes publish messages on and subscribe to, such as /scan |
| Message | The data sent on a topic, in a fixed type both sides agree on |
| Package | One unit of code, built and installed together, with a package.xml |
| Workspace | A folder of packages built together. Both cars build the same workspace repository, Racerbot-Car-Workspace. |
| Car profile | The folder under src/racerbot_car/cars/ that holds one car’s hardware values and calibration: rb1 for car 1, rb2 for car 2. Launches load it on top of the shared configuration. |
| Launch file | A Python script that starts a set of nodes with their parameters |
| Parameter | A named setting a node reads at start, set from a YAML file |
colcon build |
The command that builds every package into install/ |
| Sourcing | Loading a setup script into the current shell, so its commands and packages become available |
| ROS domain | A number, ROS_DOMAIN_ID, that separates ROS graphs on one network |
| TF, transform, frame | A frame is a named coordinate system. TF keeps the transforms between frames and converts between them. |
| Latched topic | A topic whose last message is delivered to a subscriber that joins later |
| QoS | Quality of service: the delivery rules a publisher or subscriber uses, such as reliable or best effort. A subscriber that asks for more than the publisher offers receives nothing. See QoS and timing. |
| Callback | A function a node registers to run each time a message arrives on a topic, or a timer fires |
The car
| Term | Definition |
|---|---|
| LiDAR | The laser scanner that measures the distance to everything around the car, about 40 times a second |
| Scan | One LiDAR sweep: a list of distances, one per beam |
| VESC | The motor controller board. It drives the motor and the steering servo and reports the motor’s speed. |
| ERPM | Electrical revolutions per minute: the motor speed the VESC reports and is commanded in |
| Odometry | The car’s estimate of how far it has moved, from motor revolutions and the steering command. It drifts. |
| Ackermann steering | Car-style steering, where the front wheels turn and the car cannot move sideways |
| Bicycle model | The car simplified to one front and one rear wheel, a wheelbase apart, used to relate steering to turning |
| Mux | ackermann_mux, which passes on the highest-priority drive command that is still arriving |
| Deadman | A control that works only while held. On the cars, LB on the F710: release it and every mode commands zero speed. |
| Watchdog | A check that stops the car when an input goes stale, such as a pose older than 0.5 s |
| Latch | A stop that stays in force until something deliberate releases it, such as pressing LB again |
| Teleop | Manual driving with the gamepad |
| Control layer | The one launch, on top of bringup, that decides what the car does |
| Bringup | The launch that starts the drivers and the mux. It never moves the car by itself. |
| IMU | Inertial measurement unit: a gyro, which measures rotation, and an accelerometer, which measures acceleration. Each VESC has a built-in IMU, and each car also has a BNO085. A VESC IMU that is turned off in VESC Tool reads all zeros. |
| Kalman filter | An estimator that keeps a best guess and its uncertainty, moves the guess with a model between measurements, and pulls it toward each measurement by an amount set by how much it trusts each. See IMU fusion. |
| Dead reckoning | Working out position by adding up measured movements from a known start. Fast and smooth, but its error grows without limit. |
| Servo map | The straight line that converts a steering angle in radians into a servo command between 0 and 1 |
Maps and driving
| Term | Definition |
|---|---|
| SLAM | Simultaneous localization and mapping: building a map while working out where the car is on it |
| Occupancy grid | A map made of cells, each free, occupied or unknown |
| Pose graph | SLAM’s record of poses and the constraints between them, re-optimized when a loop closes |
| Loop closure | Recognizing a place already mapped, which removes the drift accumulated since |
| Localization | Working out where the car is on a map that already exists |
| Particle filter | Localization by tracking thousands of weighted guesses of the pose |
| Racing line | The path the car follows on a mapped course, stored as points |
| Velocity profile | A target speed at each point of the racing line |
| Curvature | How sharply a path bends: one over the radius of the circle that fits it, in m⁻¹ |
| Cross-track error | How far the car is to the side of the racing line |
| Pure pursuit | Steering along the arc to a point a set distance ahead on the racing line |
| Lookahead | That distance ahead |
| Follow the gap | Steering toward the most open direction in the current scan, with no map |
| Disparity | A sharp jump between neighbouring LiDAR readings, which marks an obstacle’s edge |
| Safety bubble | The beams around the closest obstacle, set to zero so no gap can pass too close to it |
| Time to collision | The time until the car would reach an obstacle at its current speed |
| Shadow mode | Running a controller so that its commands are recorded but never sent to the motor |
| Steering law | The rule that turns the car’s position relative to the racing line into a steering angle: pure pursuit, Stanley, LQR or MPC. See Choose a steering law. |
| Heading error | The angle between the car’s heading and the racing line’s direction |
| Feedforward | The steering a bend needs on its own, , added before any correction for error |
| Stanley | A steering law that measures the error at the front axle and steers to remove the heading and sideways error together |
| LQR | Linear-quadratic regulator: a steering law whose feedback gains are computed from a model of the error, to minimize a weighted sum of error and steering |
| Riccati equation | The matrix equation whose solution gives LQR’s gains |
| MPC | Model predictive control: a steering law that plans several moves ahead within hard limits, applies the first and plans again |
| Quadratic program | An optimization problem with a quadratic cost and linear limits, the form MPC solves each tick |
| Delay compensation | Predicting where the car will be when a command takes effect, and steering from there |
| Friction circle | The limit on a tyre’s total grip, shared between braking or accelerating and cornering |
| Minimum curvature line | The racing line that bends least while staying inside the track, which allows the highest cornering speeds |
| ICP | Iterative closest point: matching two LiDAR scans by repeatedly pairing nearest points and solving for the motion between them |
| Frenet frame | Coordinates measured along a path and sideways from it, instead of in the map’s and |
Checked against
car 1 commit 0265263
and
car 2 commit b81b291, before the two workspaces merged.