Section 5.3: Differential-drive and car-like robots

A Careful Control Loop
Technical illustration for Section 5.3: Differential-drive and car-like robots.
Figure 5.3A: Differential-drive kinematics annotated with wheel radius, wheelbase, and the relationship between individual wheel speeds and the robot's linear/angular velocity in the world frame.
Big Picture

Differential-drive and car-like robots is one lens on kinematics and robot motion. We study it because an embodied agent needs decisions that survive contact with noisy sensors, delayed effects, and changing environments.

This section develops the technical contract for Differential-drive and car-like robots into a usable mental model. First we define the object of study, then we connect it to the agent loop, then we test it with a compact implementation.

The key question in Differential-drive and car-like robots is practical: what must the agent know, what can it observe, what action is available, and what evidence shows that the action worked under the stated conditions?

Action Is The Test

A representation earns its place when it changes the measurable action interface. In Differential-drive and car-like robots, the reader should keep asking which decision becomes easier, safer, or more reliable.

Theory

For Differential-drive and car-like robots, the practical design rule is to make the interface inspectable before optimization begins: inputs, outputs, units, latency, bounds, and failure labels should all be visible in the saved artifact.

Differential-drive robots and car-like robots both live in the plane, but their action interfaces are different. A differential-drive base commands left and right wheel speeds, which convert into forward speed and yaw rate. A car-like base commands forward speed and steering angle, which creates a turning radius rather than an in-place rotation.

This distinction changes the planner. A differential-drive robot can spin in place to face a target, while a car-like robot needs clearance for an arc. The same goal pose can therefore be easy for one platform and infeasible for another unless the path planner respects the platform's kinematic model.

Mechanism

The mechanism in Differential-drive and car-like robots is the contract between representation and action. Name what enters the module, what leaves it, which assumptions make that transformation valid, and which log would reveal a bad handoff.

Worked Example

The example integrates both planar models from identical "spin to face the target" commands. The differential-drive base converts equal-and-opposite wheel speeds into in-place yaw; the car-like bicycle model has no such command, so the same intent produces a forward arc with a finite turning radius.

import numpy as np

def diff_drive(state, wL, wR, r, L, dt):
    x, y, th = state
    v = r/2 * (wR + wL)            # body forward speed
    w = r/L * (wR - wL)           # yaw rate
    return np.array([x + v*np.cos(th)*dt, y + v*np.sin(th)*dt, th + w*dt])

def bicycle(state, v, delta, L, dt):
    x, y, th = state
    return np.array([x + v*np.cos(th)*dt,
                     y + v*np.sin(th)*dt,
                     th + (v/L)*np.tan(delta)*dt])

dt, r, L = 0.01, 0.05, 0.30
# Differential drive: wheels turn opposite -> pure rotation
s = np.array([0.0, 0.0, 0.0])
for _ in range(int(1.0/dt)):
    s = diff_drive(s, wL=-4.0, wR=+4.0, r=r, L=L, dt=dt)
print("diff-drive after 'spin':", np.round(s, 3), "-> moved:",
      round(float(np.hypot(s[0], s[1])), 4), "m")   # ~0 m, theta changed

# Car-like: max steering, constant speed -> minimum-radius arc, no in-place spin
s = np.array([0.0, 0.0, 0.0])
delta_max = np.deg2rad(30)
for _ in range(int(1.0/dt)):
    s = bicycle(s, v=1.0, delta=delta_max, L=L, dt=dt)
R_min = L/np.tan(delta_max)
print("car-like after 'turn' :", np.round(s, 3), "-> R_min:",
      round(R_min, 3), "m")     # nonzero displacement, bounded curvature

The differential-drive base ends at roughly the origin with a changed heading; the bicycle base sweeps an arc of radius $R=L/\tan\delta$. A path planner that lets the car-like robot rotate in place has silently swapped one platform model for the other.

Library Shortcut

The fragment should expose wheel radius, track width, steering angle, curvature, and integration timestep. Robotics Toolbox, Drake, and Nav2 are useful after the vehicle kinematics are correct in the same frame as the controller.

Practical Recipe

  1. Write the observation, action, and success metric before choosing a model.
  2. Build a baseline that is simple enough to debug by inspection.
  3. Add the library implementation only after the baseline behavior is understood.
  4. Record failures as structured cases: perception error, state error, planning error, control error, or evaluation error.
  5. Run at least one perturbation test before trusting the result.
Common Failure Mode

The common mistake in Differential-drive and car-like robots is to celebrate the component score before checking the closed-loop handoff. The failure usually appears at the boundary: stale state, wrong frame, delayed action, saturated actuator, or metric that ignores the real task cost.

Practical Example

A robotics team using Differential-drive and car-like robots should log not only final success, but intermediate observations, chosen actions, controller status, and recovery events. The logs reveal whether the method is solving the task or merely passing the easiest episodes.

Memory Hook

For differential-drive and car-like robots, the useful test is simple: could a teammate point to the log line, plot, or trace that proves the idea changed the agent's next action?

Research Frontier

For Differential-drive and car-like robots, treat frontier claims as hypotheses until they expose enough detail to reproduce the result: data boundary, embodiment, controller interface, evaluation panel, and failure cases.

Self Check

Can you name the observation, state estimate, action, success metric, and most likely failure mode for Differential-drive and car-like robots? If not, the system boundary is still too vague.

Production Pattern

Differential-drive and car-like robots sits inside the Part II robotics contract: geometry defines where things are, kinematics defines what motion is possible, dynamics defines what motion costs, control defines how errors are corrected, and sensing defines what the agent can know on time.

Check wheel radius, axle length, sign convention, and integration step before trusting a mobile-base trajectory. This makes the section useful to students, builders, and researchers at the same time: the idea has an intuitive role, a formal interface, a runnable check, and a failure mode that can be reproduced.

Mechanism To Watch

For Differential-drive and car-like robots, kinematics maps joint or body motion into task-space motion without explaining forces. Preserve joint limits, frame conventions, velocity units, and singularity margins in the artifact.

Library Choices And Verification Checks
Tool or LibraryWhat It HandlesVerification Check
Pinocchiocomputes articulated-body kinematics, dynamics, and derivativesVerify model frames, joint ordering, and derivative convention against the URDF.
Robotics Toolbox for Pythonsupports practical work on Differential-drive and car-like robotsVerify the library output against the hand-built baseline on one small case.
MoveIt 2supports practical work on Differential-drive and car-like robotsVerify the library output against the hand-built baseline on one small case.
Drakemodels dynamical systems, multibody plants, optimization, and controllersVerify scalar type, plant finalization, frame convention, and solver status.
ROS 2 controlsupports practical work on Differential-drive and car-like robotsVerify the library output against the hand-built baseline on one small case.

Use this recipe when turning Differential-drive and car-like robots into code, a simulator experiment, or a robot diagnostic. The point is not to use every library. The point is to keep the hand-built baseline and the maintained-tool path comparable.

  1. Write the joint vector, frame target, velocity convention, and constraint set before solving.
  2. Check forward kinematics on a known posture, then perturb one joint and inspect the end-effector delta.
  3. Compare an analytic or numerical Jacobian with Pinocchio, Robotics Toolbox, or Drake on the same robot model.
  4. Log residual error, joint-limit distance, manipulability, and solver iteration count in one artifact.
  5. Treat singularities and infeasible targets as design signals, not as solver annoyances.
Evidence Gate

For Differential-drive and car-like robots, compare methods only through one saved artifact that preserves the inputs, outputs, units, timestamps, latency budget, configuration, seed, metric definition, and failure labels relevant to this section. The comparison is meaningful only when the same script evaluates the same panel.

Exercise Extension

Extend the section exercise by adding one perturbation specific to Differential-drive and car-like robots and one latency or uncertainty check. Save the result in the EvidenceRecord schema, then explain which library output you trust and why.

Kinematic failures often arrive as a plausible pose with an impossible motion. Inspect wheel radius, wheel separation, steering angle limits, integration step, and sign convention before blaming the planner. For this section, first reproduce one short arc by hand, then rerun it through Robotics Toolbox for Python, Drake, ROS 2 navigation tools, or a small NumPy rollout. If the two disagree, inspect conventions and timing before changing the model.

Technical Core

Differential-drive and car-like robots needs a topic-native core: variables, equations or system contracts, an algorithmic procedure, an expected output, and a failure diagnosis. Figure 5.3.T summarizes the chain this section must preserve when moving from a teaching example to a real embodied system.

Technical core for Differential-drive and car-like robots A block diagram connecting assumptions, model, algorithm, evidence, and failure analysis for Differential-drive and car-like robots. Assumptions frames, units, limits Model kinematics and robot motion Algorithm update or plan Evidence trace, metric Failure diagnosis Graduate-depth contract: define variables, run the method, interpret output, and explain when it fails. This diagram marks the minimum technical chain the section must make explicit.
Figure 5.3.T: The technical core for Differential-drive and car-like robots connects assumptions, model, algorithm, evidence, and failure analysis.
Formal Object

Differential drive: $v=\tfrac r2(\omega_R+\omega_L)$, $\dot\theta=\tfrac rL(\omega_R-\omega_L)$, $\dot x=v\cos\theta$, $\dot y=v\sin\theta$. Car-like bicycle model: $\dot x=v\cos\theta$, $\dot y=v\sin\theta$, $\dot\theta=\tfrac vL\tan\delta$.

The parameters $r$, $L$, and $\delta$ are not cosmetic. A small wheel-radius or axle-length error accumulates into odometry drift, while a steering-limit error turns a feasible parking maneuver into a path the robot cannot execute.

Mobile-base rollout check
  1. Choose the platform model and record wheel radius, axle length, steering limits, and units.
  2. Convert actuator commands into $(v,\dot\theta)$ using the platform equation.
  3. Integrate $(x,y,\theta)$ over a short horizon with a fixed $\Delta t$ and log every intermediate pose.
  4. Compare the rollout with simulator or robot odometry on the same commands before tuning a planner.
Technical Contract For Differential-drive and car-like robots
Contract FieldWhat To SpecifyWhy It Matters
State and observationVariables, units, timestamps, frames, and uncertainty.Prevents a model score from being mistaken for robot capability.
Action interfaceCommand type, limits, update rate, and safety fallback.Makes the learned or planned output executable.
Evidence artifactTrace, metric, configuration, seed, and failure label.Allows baseline and library path to be compared in one pass.
Tool pathModern Robotics, Pinocchio, Drake, ROS 2 tf2, MoveIt, NumPyShows the practical library route after the mechanism is understood.

Expected output is a short path whose curvature and yaw-rate limits match the selected platform. If a car-like robot appears to rotate in place, the model has silently become differential drive.

Failure Mode To Test

A mobile-base result fails when left and right wheels are swapped, axle length is measured between tire edges instead of wheel centers, steering angle is confused with yaw rate, or Euler integration is trusted over long horizons without correction.

Section References

Core references for Differential-drive and car-like robots: Modern Robotics; Murray, Li, and Sastry; Siciliano et al.; LaValle; and official documentation for Drake, MuJoCo, Pinocchio, CasADi, python-control, GTSAM, ROS 2, and OpenCV as applicable.

Use these references to check notation, frame conventions, units, solver assumptions, and maintained-library behavior.

Key Takeaway

Differential-drive and car-like robots is useful when it makes the perception-action loop more reliable, not when it merely adds a more impressive model name.

Exercise 5.3.1

Design a method-matched experiment for Differential-drive and car-like robots. Specify the environment, observations, actions, metric, one perturbation, and the library output you would compare against the hand-built baseline.