Mobile robots: kinematics and navigation
Drive configurations, differential-drive kinematics and odometry, holonomic constraints, and the localisation-mapping-planning stack of mobile robots.
Drafted with Aria, reviewed by the AiCanCode.org team. Spotted an error? Use Give Feedback at the bottom of the page.
Why it matters
Warehouse AGVs and AMRs, inspection crawlers, agricultural rovers and delivery robots all have to know how their wheel speeds turn into motion, where they are, and how to reach a goal without hitting anything. Mobile-robot kinematics and navigation is the fastest-growing area of industrial robotics and a common interview topic for mechatronics roles.
Key ideas
Pose. A planar mobile robot's pose is (x, y, θ): position of a reference point (usually midway between the drive wheels) and heading angle θ in the world frame.
Wheel types and drive configurations.
- Differential drive — two independently driven wheels on a common axle plus casters. Turns by running the wheels at different speeds; can spin on the spot. Most common for indoor robots.
- Skid steer — tracked or four-wheel version; turning involves deliberate slip, so odometry is poor.
- Ackermann (car-like) steering — steered front wheels; cannot turn on the spot; minimum turning radius set by the steering angle limit.
- Omnidirectional — Mecanum or omni wheels with rollers; can move sideways (holonomic).
- Legged robots step instead of rolling — better on rough ground, far more complex.
Holonomic vs non-holonomic. A differential-drive robot has 3 pose coordinates but can only command 2 velocities (v, ω); it cannot move sideways instantly (the rolling-without-slipping constraint ẋ·sin θ − ẏ·cos θ = 0). It is non-holonomic: it can still reach any pose, but needs manoeuvres (think parallel parking). Mecanum-wheel platforms are holonomic.
Instantaneous centre of rotation (ICR). All wheels of a rigid vehicle rotate about one point. For differential drive it lies on the axle line at distance R = v/ω from the centre; equal wheel speeds put it at infinity (straight line); equal and opposite speeds put it at the centre (spin in place).
Odometry (dead reckoning). Integrate wheel encoder counts to estimate pose. Errors from wheel slip, uneven floors, wheel diameter and track-width errors accumulate without bound, so odometry is fused with IMU, lidar, cameras or beacons.
Navigation stack.
- Localisation — where am I? Kalman filter (EKF) fusing odometry with landmark observations; particle filters (Monte Carlo localisation) against a known map.
- Mapping / SLAM — build the map while localising in it (lidar or visual SLAM); occupancy-grid maps are standard.
- Global path planning — shortest collision-free path on the map: Dijkstra, A*, RRT/PRM for large spaces.
- Local planning / obstacle avoidance — react to moving or unmapped obstacles: Dynamic Window Approach, potential fields, Vector Field Histogram.
- Motion control — track the path with a controller (pure pursuit, PID on heading and cross-track error).
Industrial AGVs often use simpler infrastructure-based guidance: magnetic tape, wire, QR floor codes or laser reflectors.
Formulas
Differential drive (wheel radius r, track width L between wheel contact points):
v_R = r·ω_R, v_L = r·ω_L
v = (v_R + v_L) / 2, ω = (v_R − v_L) / L, R = v / ω = (L/2)·(v_R + v_L) / (v_R − v_L)
- ω_R, ω_L — wheel angular speeds (rad/s); v — forward speed (m/s); ω — yaw rate (rad/s); R — turning radius to the robot centre (m).
Inverse (for commanded v, ω): v_R = v + ω·L/2, v_L = v − ω·L/2
Pose update: ẋ = v·cos θ, ẏ = v·sin θ, θ̇ = ω
Exact arc over time t (constant v, ω, starting at θ₀ = 0): x = R·sin(ωt), y = R·(1 − cos(ωt)), θ = ωt
Encoder odometry: distance per count = 2π·r / (counts per wheel revolution)
Ackermann: R ≈ wheelbase / tan δ (δ — steering angle)
Worked examples
Example 1 (standard). A differential-drive robot has r = 0.05 m and L = 0.4 m. The right wheel turns at 12 rad/s and the left at 8 rad/s. Find v, ω and the turning radius.
- v_R = 0.05 × 12 = 0.60 m/s; v_L = 0.05 × 8 = 0.40 m/s.
- v = (0.60 + 0.40) / 2 = 0.50 m/s.
- ω = (0.60 − 0.40) / 0.4 = 0.50 rad/s (counter-clockwise, turning left).
- R = v / ω = 0.50 / 0.50 = 1.0 m.
Answer: v = 0.5 m/s, ω = 0.5 rad/s, R = 1.0 m.
Example 2 (GATE level). The robot of Example 1 starts at (0, 0) facing +x and keeps these wheel speeds for 2 s. (a) Find its final pose. (b) What wheel speeds would make it follow a 2 m radius circle at 0.5 m/s?
- θ = ω·t = 0.5 × 2 = 1.0 rad (57.3°).
- x = R·sin θ = 1.0 × sin 1.0 = 0.841 m.
- y = R·(1 − cos θ) = 1.0 × (1 − 0.5403) = 0.460 m.
- (b) ω = v / R = 0.5 / 2 = 0.25 rad/s. v_R = 0.5 + 0.25 × 0.2 = 0.55 m/s; v_L = 0.5 − 0.25 × 0.2 = 0.45 m/s.
- Wheel rates: ω_R = 0.55 / 0.05 = 11 rad/s; ω_L = 0.45 / 0.05 = 9 rad/s.
Answer: (a) (0.841 m, 0.460 m, 1.0 rad); (b) ω_R = 11 rad/s, ω_L = 9 rad/s.
Common mistakes
- Dividing by L/2 instead of L in ω = (v_R − v_L)/L.
- Using wheel angular speed as robot speed — multiply by r.
- Integrating x and y with the heading at the start of a long step; use small steps or the exact arc formula.
- Treating odometry as drift-free — errors grow with distance travelled.
- Calling differential drive holonomic because it can reach any pose; holonomic means it can move in any direction instantly.
- Confusing global path planning (A*) with local obstacle avoidance (DWA).
For GATE ME
Expect numericals on differential-drive kinematics (v, ω, turning radius, wheel speeds for a desired path), odometry distance from encoder counts, and conceptual questions on holonomic constraints, localisation vs mapping, and path-planning algorithms. Practise the four differential-drive equations until they are automatic.
Quick check
- v_R = v_L = 0.3 m/s. What is the robot's motion?
- v_R = 0.2 m/s, v_L = −0.2 m/s, L = 0.4 m. Yaw rate?
- Wheel radius 0.1 m, encoder 1000 counts/rev. Distance per count?
- Can a differential-drive robot move directly sideways?
- What does SLAM do?
Answers: 1. Straight line at 0.3 m/s; 2. 1 rad/s, spinning on the spot; 3. 0.628 mm; 4. No — it is non-holonomic; 5. Builds a map while simultaneously localising the robot in it.
Interview questions
All Robotics interview questionsTry answering each one aloud before you open it.
1.What is kinematics in the context of mobile robots?Concept
Kinematics in mobile robots refers to the study of motion without considering the forces that cause it. It involves understanding the geometry of motion, including position, velocity, and acceleration of the robot's parts. Kinematics helps in determining how the robot should move to achieve a desired position or path.
2.Explain forward and inverse kinematics for a differential-drive mobile robot.Concept
Forward kinematics maps wheel speeds to body motion: with wheel radius r and track width L, v = r(ω_R + ω_L)/2 and ω = r(ω_R − ω_L)/L, and the pose is integrated with ẋ = v·cos θ, ẏ = v·sin θ, θ̇ = ω. Inverse kinematics gives the wheel speeds for a commanded (v, ω): v_R = v + ωL/2 and v_L = v − ωL/2, each divided by r. Because the robot is non-holonomic, there is no direct inverse from a desired pose to wheel speeds; reaching a pose needs a planned path or a feedback controller.
3.Why is odometry important in mobile robot navigation?Application
Odometry is crucial for estimating a robot's position and orientation over time by using data from motion sensors. It helps in tracking the robot's movement relative to a starting point, which is essential for navigation and path planning. However, odometry can accumulate errors over time, so it is often used in conjunction with other sensors for more accurate navigation.
4.What happens if a mobile robot's wheel slips during navigation?Application
If a mobile robot's wheel slips, it can lead to inaccuracies in odometry, causing errors in the estimated position and orientation of the robot. This can result in the robot deviating from its intended path. To mitigate this, additional sensors like IMUs or external references like GPS can be used to correct the robot's trajectory.
5.Explain the role of a PID controller in mobile robot navigation.Concept
PID loops run at two levels. At the wheels they make each motor track its commanded speed despite load and battery changes. At the path level a controller steers the robot, for example setting ω from the heading error and cross-track error. The P term gives a correction proportional to the current error, the I term removes steady offsets such as a drift caused by unequal wheels, and the D term damps oscillation around the path.
6.Why are LIDAR sensors commonly used in mobile robot navigation?Application
LIDAR sensors are used in mobile robot navigation for their ability to provide accurate distance measurements and create detailed maps of the environment. They work by emitting laser beams and measuring the time it takes for the reflections to return. This data helps in obstacle detection, path planning, and simultaneous localization and mapping (SLAM).
7.What is the significance of the SLAM algorithm in mobile robotics?Concept
SLAM (Simultaneous Localization and Mapping) is significant because it allows a mobile robot to build a map of an unknown environment while simultaneously keeping track of its location within that map. This is essential for autonomous navigation in environments where pre-existing maps are unavailable or unreliable.
8.How does a differential drive system work in mobile robots?Concept
A differential drive system in mobile robots uses two independently driven wheels on either side of the robot. By varying the speed of each wheel, the robot can move forward, backward, or turn. This system is simple and effective for controlling the robot's movement, but it requires careful control to ensure accurate navigation.
9.Calculate the linear velocity of a mobile robot with wheel radius 0.1 m and angular velocity 2 rad/s.Numerical
The linear velocity (v) of a mobile robot can be calculated using the formula v = r * ω, where r is the wheel radius and ω is the angular velocity. Substituting the given values: v = 0.1 m * 2 rad/s = 0.2 m/s. Therefore, the linear velocity of the robot is 0.2 meters per second.
10.A differential-drive robot has r = 0.05 m and L = 0.4 m. How fast must each wheel turn for it to follow a 2 m radius circle at 0.5 m/s?Concept
The yaw rate is ω = v/R = 0.5/2 = 0.25 rad/s. The outer (right, for a left turn) wheel needs v_R = v + ωL/2 = 0.5 + 0.25 × 0.2 = 0.55 m/s and the inner one v_L = 0.5 − 0.05 = 0.45 m/s. Dividing by r gives 11 rad/s and 9 rad/s. Both wheels turn forward, and the speed difference sets the curvature.
Finished this topic? Mark it so your progress, study plan and readiness keep up.
Stuck on something here?