Done, your profile is created.Finish your profile by filling in the following fields
Forgot Password Earn Money,Free Notes
Password sent to your Email Id, Please Check your Mail
Updating Cart........ Please Wait........
Introduction to Robotics
Introduction to Robotics 27
Lecture 1: Introduction to Robotics
See course website
http://www.doc.ic.ac.uk/ ajd/Robotics/ for up to
Department of Computing
Imperial College LondonLecture Plan
Most weeks will consist of a 1 hour lecture (Monday 2pm, 308) and a
compulsory 3 hour practical session (Monday 3–4pm, and
Wednesday 9–11am, 219). There may some variations from week to
week which will be fully detailed on the course website and announced in
This week there will be a two hour lecture today, and a two hour
practical on Wednesday. Next week, there will be a two hour
lecture/tutorial on Monday and no practical on Wednesday (due to
1. Introduction to Robotics and Robot Motion
2. Mobile Robotics
4. Probabilistic Robotics
5. Monte Carlo Localisation
6. Place Recognition and Occupancy Mapping
7. Simultaneous Localisation and Mapping
8. Review and CompetitionRobotics: An InterDisciplinary Field
Robotics integrates science and engineering, and overlaps with many
• Artiﬁcial Intelligence
• Computer Vision / Perception
• Machine Learning / Estimation / Inference
• Electronic / Mechanical Engineering
In fact the diﬀerentiation between these ﬁelds is sometimes artiﬁcial. I
recently heard someone (Greg Dudek) wonder whether robotics is the
new physics An umbrella science of the synthetic and interactive...
In this course the emphasis will be largely pragmatic.What is a Robot
A physicallyembodied, artiﬁcially intelligent device with sensing and
It can sense. It can act.
It must think, or process information, to connect sensing and action.
Pixels to torques...What is a Robot
Is a washing machine a robot Most people wouldn’t say so, but it
does have sensing, actuation and processing.
A possible distinction between appliance and robot (David Bisset):
whether the workspace is physically inside or outside the device.
• The cognitive ability required of a robot is much higher: the outside
world is complex, and harder to understand and control.
• What about a modern car Or smartphone Are they becoming
robotsThe Classical Robot Industry: Robot Arms
The most widelyused robots today are industrial robot ‘arms’,
mounted on ﬁxed bases and used for instance in manufacturing.
The task of a robot arm is to position an endeﬀector through which
it interacts with its environment.
Most operate in highly controlled environments.Robots for the Wider World
• They need perception which gives them a suitable level of
understanding of their complex and changing surroundings.A Fully Autonomous Robot for the Home
There is a new wave of advanced mobile robots now aiming at much
more ﬂexible robots which can interact with the world in humanlike
ways. Over recent years this has again become the current goal of
signiﬁcant research teams; e.g. Willow Garage in the USA.
See the video at http://personalrobotics.stanford.edu/ from
Stanford’s Personal Robotics Program.Advanced ‘RealWorld’ Manipulation
• Laundryfolding robot from UC Berkeley / Willow Garage
Learning from LargeScale Interaction / Google
deeplearningforrobotslearningfrom.htmlOur Focus: Mobile Robots
• A mobile robot needs actuation for locomotion and sensors for
• Ideally untethered and selfcontained: power source, sensing,
processing onboard (return to charging station oﬀboard
computing outsidein sensing)
Required competences include:
As well as whatever specialised task the robot is actually trying to
achieveMobile Robotics Applications
• Exploration (planetary, undersea, polar).
• Search and rescue (earthquake rescue; demining).
• Mining and heavy transport; container handling.
• Military (unmanned aircraft, landbased packbots, insect robots).
Domestic (Vacuum cleaning, lawnmowing, laundry, more general
clearing and cleaning...).
Medical (surgical robots, remote doctor, hospital delivery, helping
Transport (Autonomous cars, parcel delivery).
Entertainment (Sony AIBO, Lego Mindstorms, Robocup
competition, Parrot AR Drone, many others).Autonomy and Processing for Mobile Robotics
Level of autonomy:
1. Teleoperation (RemotelyOperated Vehicle ROV, e.g. Robot Wars,
2. Semiautonomous (e.g. Mars rovers, humanoids).
3. Fully autonomous (Roomba, Grand Challenge vehicles).
• Embedded processing: specialised or general PC architecture GPU,
• Computer vision in particular can be very computationally expensive.Robotics: Requirements
1. Essential geometry (vectors, rotations, trigonometry).
2. Essential probability theory.
3. Programming: you will write a lot of code in Python.
4. Willingness to work with robot kit hardware, which is not always.
reliable.Robotics: Learning Outcomes
By the end of the course you should understand:
1. The deﬁning properties of a robot: sensing and action, linked by
2. An overview of the practical issues of modernday mobile robotics.
3. Robot locomotion methods, particularly wheel conﬁgurations and
uncertainty in motion.
4. Tuning a basic motor controller; 2D path planning.
5. The use of simple sensors in reactive, behavioural programming.
6. The key concepts of advanced outward looking sensors such as sonar
7. The essentials of probabilistic techniques in robotics; probabilistic
localisation and SLAM.
8. Techniques for robot programming in Python.Robotics: A Practical Course
In the ﬁrst practical, in groups you will be given a robotics kit which you
will keep throughout term to work on practical exercises every week. We
will use these kits to build mobile robots and implement techniques such
Wheeled conﬁgurations and uncertainty in movement.
Using simple sensors to implement reactive behaviours.
Investigating the characteristics of advanced sensors like sonar.
Implementing a probabilistic localisation ﬁlter and precise waypoint
• Place recognition and free space mapping.Raspberry Pi Robotics
As we started in 2014, this year we will base the practical work around
the Raspberry Pi single board computer, using ‘BrickPi’ boards to
interface with Lego motors and sensors (rather than using the Lego NXT
Brick). This has many advantages; including:
• Flexible programming in Python/Linux and all sorts of open source
tools are available.
• Decent processing power and much more ﬂexibility in programming.
• WiFi connection to a PC.
• And new for 2015: better motor and sensor control via our new
custom controller, and rechargeable battery packs.Robotics: Coursework and Assessment
The coursework component is based on cumulative assessment of
achievement in the practical sessions and there will be no submission of
written reports. You will be set a practical task each week, most of which
(and each practical sheet will very clearly say which) will be ASSESSED.
We will ask you all to organise yourself into practical groups of 4–5
members depending on ﬁnal numbers; we need people to commit to
the course at this point.
• Each assessed practical exercise will have a number of welldeﬁned
objectives with a speciﬁed number of marks for each. Most of these
objectives involve practical demonstration of your robots or oral
explanation of results.
• We will mark these exercises by visiting all groups at the start of the
next week’s practical session, where each group must demonstrate
their robot and discuss with me or a lab assistant.
• We will check attendance in each group at the assessments and will
ask questions to make sure each group member has been involved.Robotics: Coursework and Assessment
The total marks from the assessed practicals will form your overall
coursework mark for Robotics.
No extra written coursework will be set.
All members of a group will receive the same mark by default
(unless we have a strong reason to believe that certain members are
not doing their share of work).
• Coursework marks in Robotics are worth the same as in most
courses — i.e. only around 15 of the total marks available for the
whole course. And...it is a lot of work. But this is for a good
reason. The exam will be designed to tie in closely with the
coursework, and those members of groups that have made a good
eﬀort during the term have historically done very well on the exam.
• Previous years’ exam papers are a good starting point for seeing
what the style of questions will be, but every year the exam will
change to reﬂect the current lecture and practical content of the
On the ﬁnal day of the course (30th November), we will have a
competition between the groups, testing the performance of the robots
developed for the ﬁnal practical exercise. See the course website for
pictures and videos from previous years’ competitions ...but this year’s
challenge will be diﬀerent again
See videos at
• Robotics course web page (will carry course timetable, notes,
practical sheets, extra handouts and other information):
• You should not need to buy any books, but if you want some more
background we can recommend the following:
• ‘Probabilistic Robotics’, Sebastian Thrun, Wolfram Burgard and
• Also see relevant free online courses, e.g. from Udacity.Robot Motion
A mobile robot can move and sense, and must process information
to link these two. In this lecture we concentrate on robot
movement, or locomotion.
What are the possible goals of a robot locomotion system
Speed and/or acceleration of movement.
Precision of positioning (repeatability).
Flexibility and robustness in diﬀerent conditions.
Eﬃciency (low power consumption)Locomotion
Robots might want to move in water, in the air, on land, in space...
AUV Micro UAV ZeroG Assistant Spider Humanoid
In this course we will concentrate on wheeled robots which move on
fairly ﬂat surfaces.Motion and Coordinate Frames
R Coordinate Frame R
Carried With Robot
θ Robot Frame R R
Fixed World Coordinate x
Frame W World Frame W
We deﬁne two coordinate frames: a world frame W anchored in the
world, and a robot frame R which is carried by and stays ﬁxed
relative to the robot at all times.
• Often we are interested in knowing the robot’s location: i.e. what is
the transformation between frames W and RDegrees of Motion Freedom
A rigid body which translates and rotates along a 1D path has 1
degree of freedom (DOF): translational. Example: a train.
• A rigid body which translates and rotates on a 2D plane has 3 DOF:
2 translational, 1 rotational. Example: a ground robot.
• A rigid body which translates and rotates in a 3D volume has 6
DOF: 3 translational, 3 rotational. Example: a ﬂying robot.
• A holonomic robot is one which is able to move instantaneously in
any direction in the space of its degrees of freedom.A Holonomic Ground Robot
Holonomic robots do exist, but need many motors or unusual
designs and are often impractical.
Groundbased holonomic robots can be made using omnidirectional
http://www.youtube.com/watchv=HkhGr7qfeT0Exotic Wheeled Robots
Segway RMP Mars Rover
Segway platform with dynamic balance gives good height with small
footprint and high acceleration. Selfbalancing Lego Robots built by
DoC students in 2008:
Mars Rover has wheels on stalks to tackle large obstacles.Standard Wheel Conﬁgurations
Rack and Pinion Diﬀerential Drive SkidSteer Synchro Drive
• Simple, reliable, robust mechanisms suitable for robots which
essentially move in a plane.
• All of these robots are nonholonomic (each uses two motors, but
has three degrees of movement freedom). For instance, a carlike
robot can’t instantaneously move sideways.Diﬀerential Drive
• Two motors, one per wheel: steering achieved by setting diﬀerent
Wheels run at equal speeds for straightline motion.
Wheels run at equal and opposite speeds to turn on the spot.
Other combinations of speeds lead to motion in a circular arc.Circular Path of a Diﬀerential Drive Robot
We deﬁne the wheel velocities of the left and right wheels respectively to
be v and v (linear velocities of the wheels over the ground: e.g.
v = r ω , where r is the radius of the wheel and ω is its angular
L L L L L
velocity). The width between the wheels of the diﬀerential drive robot is
• Straight line motion if v = v
• Turns on the spot if v =−v
More general case: moves in a circular arc.Circular Path of a Diﬀerential Drive Robot
To ﬁnd radius R of curved path: consider a period of motion Δt where
the robot moves along a circular arc through angle Δθ.
• Left wheel: distance moved = v Δt; radius of arc = R− .
Right wheel: distance moved = v Δt; radius of arc = R + .
• Both wheel arcs subtend the same angle Δθ so:
v Δt v Δt
Δθ = =
R− R +
⇒ (v +v ) = R(v −v )
L R R L
W(v +v ) (v −v )Δt
R L R L
⇒ R = Δθ =
2(v −v ) W
R LCar/Tricycle/Rack and Pinion Drive
Two motors: one to drive, one to steer.
Cannot normally turn on the spot.
With a ﬁxed speed and steering angle, it will follow a circular path.
With four wheels, need rear diﬀerential and variable (‘Ackerman’)
linkage for steering wheels.Circular Path of a CarLike Tricycle Robot
Assuming no sideways wheel slip, we intersect the axes of the front and
back wheels to form a rightangle triangle, and obtain:
R = .
The radius of the path that the rear driving wheel moves in is:
R = .
sinsCircular Path of a CarLike Tricycle Robot
In time Δt the distance along its circular arc moved by the drive wheel is
vΔt, so the angle Δθ through which the robot rotates is:
Δθ = = .
R = Δθ =
tans LActuation of Driving Wheels: DC Motors
• Most common motors, available in all sizes and types.
• Simple control with voltage or Pulse Width Modulation (PWM).
• For precision, encoders and feedback can be used for servo control
(the NXT motors have builtin encoders).Gearing
• DC motors tend to oﬀer high speed and low torque, so gearing is
nearly always required to drive a robot
If Gear 1 is driven with torque t , it exerts tangential force:
on Gear 2. The torque in Gear 2 is therefore:
t = r F = t .
2 2 1
The change in angular velocity between Gear 1 and Gear 2 is calculated
by considering velocity at the point where they meet:
v = ω r = ω r
1 1 2 2
⇒ ω = ω
When a small gear drives a bigger gear, the second gear has higher
torque and lower angular velocity in proportion to the ratio of teeth.
Gears can be chained together to achieve compound eﬀects.Motor Control — Open Loop
Let P be a SingleInputSingleOutput (SISO) dynamic system (e.g.
Lego Mindstorms geared DC motor). It is described by:
an input u,
here: voltage V or corresponding PWM value,
internal states x, whose dynamics follow diﬀerential equations,
here: x = x ,x = ω,ϕ , with rotation speed ω and angle ϕ,
an output y as a function of x,
here: angle ϕ, i.e. y = x .
Qualitative openloop response on input (voltage) step:
tMotor Control — Closed Loop
• How about we want to accurately reach and keep a reference angle
→ Closedloop control
• Let C be a controller, possibly with internal states:
r e u y
r is a reference (desired) output, and
e is the error between reference and actual output.Motor Control — PID
• PID (ProportionalIntegralDiﬀerential): a simple controller:
C : u(t) = k e(t)+k e(τ)dτ +k ,
p i d
• with k : proportional gain, reduces the error,
• k : integral gain, removes steadystate error,
• and k : diﬀerential gain, can reduce settling time.
• Qualitative closedloop system response to reference step
• Simple (heuristic) tuning rule: ZieglerNichols:
• set k and k to zero. Increase k until the system starts oscillating
i d p
with period P (in seconds) — remember this gain as k ;
• set k = 0.6k , k = 2k /P , and k = k P /8.
p u i p u d p uMotor Control — Additional Tweaks
Reference ﬁltering: respect physical limits already in the reference:
• AntiResetWindup: stops integrating the error for the Ipart, when
u is at its physical limit.
• Deadband compensation: add oﬀset to u to compensate friction.
• Feedforward controller C : u (t) = k ,
f f f
reduces “work” for the feedback controller:
r e u + y
const. speedMapping Wheel Rotation Speed to Velocity
What is the robot speed, when the wheels turn
• In principle, we could measure the radius of each wheel r to turn
angular velocity into linear motion. However, in practice (due to
hard to model factors, such as surface slip and tyre softness) it is
much better to calibrate such things empirically. i.e., via
experiments (guided trial and error), work out the scaling between
the motor reference angle and distance travelled over the ground.Motion and State on a 2D Plane
• If we assume that a robot is conﬁned to moving on a plane, its
location can be deﬁned with a state vector x consisting of three
x = y
• x and y specify the location of the predeﬁned ‘robot centre’ point
in the world frame.
θ speciﬁes the rotation angle between the two coordinate frames
(the angle between the x and x axes).
The two coordinate frame coincide when the robot is at the origin,
and x = y = θ = 0.Integrating Motion in 2D
• 2D motion on a plane: three degrees of positional freedom,
represented by (x,y,θ) with−π θ = π.
• Consider a robot which only drives ahead or turns on the spot:
R Coordinate Frame
Carried With Robot
Fixed World Coordinate
During a straightline period of motion of distance D:
x x +Dcosθ
y = y +Dsinθ
• During a pure rotation of angle angle α:
y = y
newIntegrating Circular Motion Estimates in 2D
In the cases of both diﬀerential drive and the tricycle robot, we were able
to obtain expressions for R and Δθ for periods of constant circular
motion. Given these:
x x +R(sin(Δθ+θ)−sinθ)
y = y−R(cos(Δθ+θ)−cosθ)
newPositionBased Path Planning
Assuming that a robot has localisation, and knows where it is relative to
a ﬁxed coordinate frame, then positionbased path planning enables it to
move in a precise way along a sequence of predeﬁned waypoints. Paths
of various curved shapes could be planned, aiming to optimise criteria
such as overall time or power usage. Here we will consider the speciﬁc,
simple case where we assume that:
Our robot’s movements are composed by straightline segments
separated by turns on the spot.
The robot aims to minimise total distance travelled, so it always
turns immediately to face the next waypoint and drives straight
towards it.PositionBased Path Planning
In one step of path planning, assume that the robot’s current pose is
(x,y,θ) and the next waypoint to travel to is at (W ,W ).
• It must ﬁrst rotate to point towards the waypoint. The vector
direction it must point in is:
d W −x
d W −y
The absolute angular orientation α the robot must drive in is
therefore given by:
α = tan
Care must be taken to make sure that α is in the correct quadrant of
−π α≤ π. A standard tan function will return a value in the range
−π/2 α = π/2. This can be also achieved directly with an
atan2(dy, dx) function (available in Python’s math module).PositionBased Path Planning
• The angle the robot must rotate through is therefore β = α−θ. If
the robot is to move as eﬃciently as possible, care should be taken
to shift this angle by adding or subtracting 2π so make sure that
−π β≤ π.
• The robot should then drive forward in a straight line through
distance d = d +d .
x yLego Mindstorms NXT and BrickPi
Please READ THE WHOLE PRACTICAL SHEET CAREFULLY.
Lab location: teaching lab 219, one ﬂoor down.
Organise yourselves into groups and come to us to ﬁll in a form and
get a kit.Week 2 Practical: Locomotion, Calibration and Accurate
Fixed World Coordinate
• Today’s practical is on accurate robot motion. How well is it really
possible to estimate robot motion from wheel odometry
Everyone should read the practical sheet fully
This is an ASSESSED practical: we will assess your achievement
next week at the start of next week’s practical. Your whole group
should be there to demonstrate and discuss your robot.