Chapter 3.
Mobile Robots
& Control
Phan Tran Dang Khoa
University of Science and Technology –
The University of Danang
• This chapter discusses how a robot platform moves, that is, how its pose
changes with time as a function of its control inputs.
Contents
3.1 Mobile Robots 3.2 Control
3.1 Wheeled Mobile Robots
• In this section we will create a model for a car-like vehicle, and develop
controllers that can drive the car to a point, along a line, follow an
arbitrary path, and finally, drive to a specific pose.
3.1.1 Mobile robot modeling
• A commonly used model for the low-
speed behavior of a four-wheeled car-
like vehicle is the kinematic bicycle
model.
• The bicycle has a rear wheel fixed to the
body and the plane of the front wheel
rotates about the vertical axis to steer
the vehicle.
• The pose of the vehicle is represented
by its body coordinate frame {B}, which
has its x-axis in the vehicle’s forward
direction and its origin at the center of
the rear axle.
• Bicycle model of a car-like vehicle.
• The 4-wheeled car is shown in light gray,
and the equivalent two-wheeled bicycle
model in dark gray.
• The vehicle’s body frame is shown in red,
and the world coordinate frame in black.
• The steered wheel angle is with respect to
the body frame, and the velocity of the
back wheel, in the body’s x-direction, is 𝑣.
• The two wheel axes are extended as
dashed lines and intersect at the
instantaneous center of rotation (ICR).
• The back and front wheels follow circular
arcs around the ICR of radius 𝑅𝐵 and 𝑅𝐹
respectively.
• The orientation of its x-axis with
respect to the world frame is the
vehicle’s heading angle.
• The configuration of the vehicle is
represented by the generalized
coordinates 𝒒 = 𝑥, 𝑦, 𝜃 ∈ 𝒞 where
𝒞 ⊂ ℝ2 × 𝐒1 is the configuration
space.
• We assume that the velocity of each
wheel is in the plane of the wheel, and
that the wheels roll without skidding
or slipping sideways
• The reference point of the vehicle, the
origin of frame {B}, thus follows a
circular path and its angular velocity is
and by simple geometry the turning radius is
where L is the length of the vehicle or the
wheel base.
• Since 𝑅𝐹 > 𝑅𝐵 , the front wheel must
follow a longer path and therefore rotate
more quickly than the back wheel.
Excurse: Vehicle Coordinate System
Excurse: Ackermann Steering
• The velocity of the robot in the world frame is described by
which are the equations of motion, or the motion model.
- The rate of change of heading 𝜃ሶ is referred to as turn rate, heading
rate, or yaw rate and can be measured by a gyroscope.
- When 𝑣 = 0 , then 𝜃ሶ = 0 : not possible to change the vehicle’s
orientation when it is not moving.
- When the steering angle 𝜓 = 𝜋/2, the vehicle cannot move forward
(undefined region).
• Nonholonomic constraint:
3.1.2 Lane changing
• We can explore the behavior of the vehicle for simple steering input
using the Simulink® model.
Excurse: Running Simulink Models
Excurse: Running Simulink Models (cont’)
3.1.3 Driving to a Point
• Consider the problem of moving toward a goal point (x*, y*) on the xy-
plane.
• We will control the robot’s velocity to be proportional to its distance
from the goal.
and to steer toward the goal, which is at the vehicle-relative angle in the
world frame of
We use the operator since 𝜃 ∗ , 𝜃
are angles, not real numbers, and
• A simple proportional controller the result is always in the interval
−𝜋, 𝜋 .
is sufficient – it turns the steered wheel toward the target.
Excurse: atan vs atan2
• A Simulink model
Vehicle motion to a point from different initial configurations.
Speed and heading angle for
different 𝐾𝑣 and 𝐾ℎ Speed Heading angle
𝐾𝑣 = 0.5, 𝐾ℎ = 2
𝐾𝑣 = 0.5, 𝐾ℎ = 4
𝐾𝑣 = 4, 𝐾ℎ = 2
3.1.4 Driving Along a Line
• Another useful task for a mobile robot is to follow a line on the xy-plane
defined by 𝑎𝑥 + 𝑏𝑦 + 𝑐 = 0.
• We achieve this using two steering controllers.
• The first controller:
turns the robot toward the line to minimize d, the robot’s normal distance
from the line
where d > 0 if the robot is to the right of the line.
• The second controller adjusts the heading angle, or orientation, of the
vehicle to be parallel to the line
using the proportional controller
• The combined control law
turns the steering wheel to drive the robot toward the line and move along
it.
• The Simulink model
Vehicle motion along a line from different initial configurations.
Heading angle and distance from
Heading angle Distance from line
line for different 𝐾𝑑 and 𝐾ℎ
𝐾𝑑 = 0.5, 𝐾ℎ = 1
𝐾𝑑 = 0.5, 𝐾ℎ = 2
𝐾𝑑 = 1, 𝐾ℎ = 1
3.1.5 Driving Along a Path
• Instead of following a straight line, we might wish to follow an arbitrary
path on the xy-plane. The path might come from one of the path
planners.
• A simple and effective algorithm for path following is pure pursuit in
which we move at constant velocity and chase a point that is a constant
distance ahead on the path.
• The path is defined by a set of N points 𝑝𝑖 , 𝑖 = 1, … , 𝑁 and the robot’s
current position is 𝑝𝑟 .
• The first step is to find the index of the point on the path that is closest
to the robot
• Next, we find the first point along the path that is at least a distance d
ahead of that point
and then the robot drives toward the point 𝑝𝑘 .
• This problem is now the same as the one
we tackled in Sect. 3.1.3, moving to a point, except
that this time the point is moving.
• The Simulink model
Trajectory and speed for different
look-ahead distance
𝑑=1
𝑑=5
𝑑 = 10
3.1.6 Driving to a Configuration
• We discuss is driving to a specific configuration 𝑥 ∗ , 𝑦 ∗ , 𝜃 ∗ .
• For tasks like parking, the orientation of the vehicle is important.
• To control the final orientation, we first rewrite the motion model in the
matrix form
where the inputs to the vehicle model are the speed 𝑣 and the turning rate
𝜔 which can be achieved by choosing the steered-wheel angle as
• We then transform the equations into
polar coordinate
• Assume that the goal frame {G} is in
front of the vehicle.
Polar coordinate notation for the bicycle model vehicle
moving toward a goal configuration: 𝜌 is the distance to
the goal, 𝛽 is the angle of the goal vector with respect to
the world frame, and 𝛼 is the angle of the goal vector
with respect to the vehicle frame.
• The linear control law
drives the robot to a unique equilibrium at 𝜌, 𝛼, 𝛽 = 0,0,0 .
• The intuition behind this controller is that the terms 𝐾𝜌 𝜌 and 𝐾𝛼 𝛼 drive
the robot along a line toward {G} while the term 𝐾𝛽 𝛽 rotates the line so
that 𝛽 → 0.
• To implement this in practice, the distance and bearing angle to the goal
𝜌, 𝛼 could be measured by a camera or lidar, and the angle 𝛽 could be
derived from 𝛼 and vehicle heading 𝜃 as measured by a compass.
• To move the robot to an arbitrary configuration 𝑥 ∗ , 𝑦 ∗ , 𝜃 ∗ , we perform
a change of coordinates
• The Simulink model
Vehicle motion to a configuration from different initial configurations.