Concept · 2 papers · updated 2026-10-25
Kinematic bicycle model
A force-free vehicle model with no lateral slip, where each axle is one wheel at its centre and every block moves along its own heading. Two papers use it: an articulated tractor-trailer tracked by nonlinear MPC, and closed-form arc primitives for a hybrid A* search in a car-like planner. Results are author-reported, from simulation and one real vehicle.
path-trackingvehicle-kinematicsarticulated-vehiclesmotion-planning
Markdown6 min read
AI-compiled overview, updated 2026-10-25, not yet reviewed by a human. Every claim cites its source; check it when a detail matters.
Overview
A kinematic model describes how a vehicle moves from its positions, angles and speeds, without modelling the forces that cause the motion. The bicycle simplification treats each axle as a single wheel at the axle's centre 2606.31889 §2. The invariant every variant shares is the no-slip constraint: each block's velocity lies along its own heading [arxiv:2606.31889 §2]. The authors judge this accurate enough for vehicles that run at low accelerations, and their target vehicles are slow field machines [arxiv:2606.31889 §1].
Two papers with cards use this model. 2606.31889 §2 writes the full state model and integrates it inside a controller. 2412.03174 §3.1 uses the same turning-radius relation, k = L / tan φ, to expand nodes in a search, so it needs only a closed-form pose update, not a time integration.
Variants
Articulated tractor-trailer model
A tractor with front steering angle φ and a central articulation joint with angle γ, pulling a trailer hitched at distance d_1 behind the rear axle. The state is the trailer's xy position, the rear and trailer yaws, γ and φ. The inputs are the front speed and the two joint rates 2606.31889 §2. The model's denominator is nonzero only while |γ| < π/2 2606.31889 §2. Card: arXiv 2606.31889, tractor-trailer path tracking.
Tractor-only model for front-block control
The same embedded tractor, controlled through its front block's xy position with no trailer in the model. The authors' controller knows nothing about the trailer. In headland turns this gives a front-block error below 3.8 m, and the trailer turns on a tighter circle than the reference 2606.31889 §5.1. The paper uses it as the baseline for the trailer-controlled version 2606.31889 §5.
Arc motion primitives for hybrid A* search
A search node advances by one circular arc at a fixed steering angle, not by integrating the state over time. The steering set is a fraction r_s of the maximum steering angle, and the arc length is a fraction r_a of a scale s_max. The paper's values are r_s = 0.3, r_a = 0.5 and s_max = 1.0 [arxiv:2412.03174 §3.1.1]. The turning radius is the wheelbase divided by the tangent of the steering angle 2412.03174 §3.1. The paper uses these arcs in a hybrid A* search that builds a drivable car-like path when the local trajectory is infeasible 2412.03174 §3. Its step cost penalises forward and backward arc length, steering in proportion to arc length, and steering changes. Its priority adds a weighted straight-line distance to the goal [arxiv:2412.03174 §3.1.1]. The wheelbase and the steering limit are not stated in the paper. Card: arXiv 2412.03174, resilient TEB planner. See a-star-search and motion-primitives for the general methods.
When to use which
| Situation | Use | Why |
|---|---|---|
| Slow vehicle with negligible slip, flat ground, no sensor noise modelled | The kinematic model without forces | The authors judge it accurate enough at low accelerations and for slow vehicles 2606.31889 §1 |
| Articulated vehicle where the trailer's path matters | Articulated tractor-trailer model, trailer xy in the cost | Simulated trailer error stays below 16 cm along x once moving and below 12 cm along y in headland turns 2606.31889 §5.2 |
| Trailer position not sensed or not in the model | Tractor-only model for front-block control | Controls the front block only; headland error is up to 3.8 m 2606.31889 §5.1 |
| Need a drivable car-like path from a search, e.g. when a local planner's trajectory is infeasible | Arc motion primitives in hybrid A* | Each expansion is a closed-form arc, and the paper uses the search to build a drivable path 2412.03174 §3.1.1 2412.03174 §3. Its gains appear only in cluttered settings, with the largest at 30 to 50% density 2412.03174 tab. 4 |
| Wheelbase or steering limit not known | Measure them on the vehicle | Neither value is stated in the paper, and the arc primitive cannot be built without them 2412.03174 §3.1.1 |
| Significant slip, pitch or roll, or non-flat ground | Not covered by this page | The model assumes no slip, no pitch or roll, and flat ground 2606.31889 §2 2606.31889 §7 |
| Smooth joint motion required | Expect extra design work | The paper reports violent oscillation in the inputs and proposes filters whose constants are not given 2606.31889 §5.2 |
| Hardware or field deployment | Check per source | The tractor-trailer results are simulation only 2606.31889 §5; the planner paper reports a real vehicle, with its own setting per experiment 2412.03174 §4.2 |
Implementation sketch
The shared core is the state derivative of the articulated tractor-trailer. Angles are in radians, and the state order follows the paper [arxiv:2606.31889 §2]. The tractor-only variant is the same model with the trailer states removed 2606.31889 §5.1. Geometry values come from the paper's scenario 2606.31889 §5.
# State derivative of the articulated tractor-trailer [arxiv:2606.31889 eq. 13]
# State: x_t, y_t, theta_r, theta_t, gamma, phi [arxiv:2606.31889 §2]
# Input: v_f, omega_1 = gamma_dot, omega_2 = phi_dot [arxiv:2606.31889 §2]
# Geometry: L_r, L_f, d_1, d_2 (fixed lengths) [arxiv:2606.31889 §2]
def model_rhs(state, control, geometry):
# Unpack the state, the input and the geometry [arxiv:2606.31889 §2]
x_t, y_t, theta_r, theta_t, gamma, phi = state
v_f, omega_1, omega_2 = control
L_r, L_f, d_1, d_2 = geometry
# Rear yaw rate from the constraints, needs |gamma| < pi/2 [arxiv:2606.31889 eq. 7]
theta_r_dot = (
(v_f * sin(gamma + phi) - L_f * cos(gamma) * omega_1)
/ (L_r + L_f * cos(gamma))
)
# Speed of the rear axle centre [arxiv:2606.31889 eq. 14]
v_r = (
v_f * cos(gamma + phi)
+ L_f * (theta_r_dot + omega_1) * sin(gamma)
)
# Trailer yaw rate [arxiv:2606.31889 eq. 9]
theta_t_dot = (
v_r / d_2 * sin(theta_r - theta_t)
- d_1 / d_2 * theta_r_dot * cos(theta_r - theta_t)
)
# Trailer axle xy velocity [arxiv:2606.31889 eq. 13]
x_t_dot = (
v_r * cos(theta_r)
+ d_1 * theta_r_dot * sin(theta_r)
+ d_2 * theta_t_dot * sin(theta_t)
)
y_t_dot = (
v_r * sin(theta_r)
- d_1 * theta_r_dot * cos(theta_r)
- d_2 * theta_t_dot * cos(theta_t)
)
# The joint angles integrate their rates directly [arxiv:2606.31889 eq. 13]
return [x_t_dot, y_t_dot, theta_r_dot, theta_t_dot, omega_1, omega_2]For tracking, the paper discretises this model with three collocation points per sampling period and solves a finite-horizon problem at each step. Only the first input is applied, then the horizon shifts 2606.31889 §3 2606.31889 §4. The cost is quadratic in the trailer xy error and the inputs, with a terminal term 2606.31889 §4. The paper's receding-horizon parameters are a 6 s horizon and a 0.1 s sampling period 2606.31889 §5. See model-predictive-control and direct-collocation for the general methods.
The search variant needs no integration. One expansion from a pose is a closed-form arc, which the paper writes as a discrete transition 2412.03174 §3.1.1:
# One arc motion primitive of a car-like robot [arxiv:2412.03174 §3.1.1]
# Pose: x, y, theta (radians); steer (radians); arc length in metres
# Wheelbase is not stated in the paper, so it is an input here
def arc_step(pose, steer, arc, wheelbase):
x, y, theta = pose
# Straight motion leaves the heading unchanged [arxiv:2412.03174 §3.1.1]
if steer == 0:
return (x + arc * cos(theta), y + arc * sin(theta), theta)
# Turning radius from the wheelbase and the steering angle [arxiv:2412.03174 §3.1]
k = wheelbase / tan(steer)
# Heading advances by the arc divided by the radius [arxiv:2412.03174 §3.1.1]
theta_new = theta + arc / k
# Position on the circle, measured from the start pose [arxiv:2412.03174 §3.1.1]
x_new = x + k * (sin(theta_new) - sin(theta))
y_new = y - k * (cos(theta_new) - cos(theta))
return (x_new, y_new, theta_new)Contradictions
None between papers on the model itself; the two sources use it for different jobs, a controller and a search. Within 2606.31889, Definition 1 sets the articulation joint limit at ±π/4, while the MPC bound is ±60° 2606.31889 §5. The authors' code differs from the paper in state order, cost terms and the joint limit. See the card's Paper vs code section for the details. Within 2412.03174, the stated forward arc range [s_max, 2 s_max] does not contain r_a · s_max, which is 0.5 with the paper's own values [arxiv:2412.03174 §3.1.1]. Either r_a, the range or s_max is wrong, and the paper does not say which.
Papers
- arXiv 2412.03174, resilient TEB planner: uses car-like arc primitives in a hybrid A* search to recover a drivable path for a TEB local planner, with author-reported gains in cluttered settings.
- arXiv 2606.31889, tractor-trailer path tracking: derives the articulated tractor-trailer kinematic model and tracks the trailer's xy path with a nonlinear MPC, in simulation.
Source and license
Compiled from the papers listed on this page, all published under CC BY, CC BY-SA or CC0, with citations. See each paper's page for its authors and license.