Professional Documents
Culture Documents
Table of Contents
Unit 0: Orientation
Unit 1: Introduction to Robotics
Unit 2: Robotic Movement 1 – Locomotion
Unit 3: Robotic Movement 2 – Affectors
Unit 4: Robotic Sensing
Unit 5: Robotic Control 1 – Feedback and Architectures
Unit 6: Robotic Control 2 – Representation
Unit 7: Robotic Control 3 – Deliberative and Reactive Control
Unit 8: Robotic Control 4 – Hybrid and Behaviour-Based Control
Unit 9: Robot Control 5 – Coordination
Unit 10: Unexpected Outcomes and Emergent Behaviour
Unit 11: Navigation and Group Robotics
Unit 12: Learning and Robots
Unit 13: Summing Up – The Future of Robotics
Unit 0: Orientation
In this unit I will cover some essential information that you will need to meet the course
outcomes and complete this course with success. I will discuss expectations, both those
that you should have of me and your tutor, and those that I have of you. I will also discuss
the Arduino prototyping platform that you will be using for the exercises in this course.
This course takes place in two locations: the Moodle course site where you are now and
the Landing. On the Moodle course site you will find the following:
COMP 444 Group on the Landing. Go here to create your weblog / diary (which
can be set to your desired level of privacy), add bookmarks, and take part in
course-related discussion with other students on topics relevant to this course.
Many of those topics and specific topic questions will be found in the learning
materials as directed by the study guide. Additional topics and questions may be
posted by me or the tutors.
Robotics Group on the Landing. Go here to take part in discussions about
robotics in general as well as general-interest Arduino topics.
Programming & Problem Solving Group on the Landing. Go here to find and offer
help with programming and other problems.
As a student in this course you are expected to participate in the forum discussions and to
follow your tutor and classmates on the Landing to ensure that you are notified of
discussion posts. You should also remain subscribed to the COMP 444 General Discussion
Forum.
Learning Outcomes
Upon successful completion of the course, you will be able to
I have high expectations of you. You should be curious and willing to seek out information
besides the provided textbook and learning materials. You should be willing to discuss what
you discover in the COMP 444 Landing group with the tutor and with other students. You
should be willing to create and maintain a weblog / diary of your work in this course—
especially as your marks do depend on this as your profile of competence.
You should also be willing to ask questions in the forums or email your tutor at any time. If
you see a question on a discussion forum and you know the answer, you should post a
reply.
Questions regarding the learning material should be posted on COMP 444 General
Discussion Forum in the Moodle course site, where other students, your tutor or the course
coordinator may reply. Personal questions should be directed to your tutor or the course
coordinator.
There are policies and standards that specify how you may contact us and how soon you
should expect a reply. We take those standards seriously.
The readings follow the textbook for this course, but all other materials are available on the
Web. There is no set reference for the robotic activities—the entire Internet is at your
disposal. The Web is full of thousands of pages of robotic material, from building
instructions to thesis dissertations on the value of robotics in the classroom. Rather than
being constrained by a specific set of build instructions or one “right” way to solve any of
the robotic building activities in this course, you should embrace the freedom to explore the
Internet for ideas. The Instructor’s Notebook found in the COMP 444 Group on the Landing
is merely a starting point for each activity.
First, because this is an excellent text on robotics. It introduces you to all the core
concepts, from locomotion to actuators, vision, and control. It is well written and
quite enjoyable to read. I don’t always read textbooks from cover to cover, but I
did with this one as it is so very well written.
Also, it is a short textbook, at just over 300 pages including the index. This is
because it does not immerse the reader in endless details, but rather captures
the essence of each topic, leaving advanced explorations to the reader with
excellent references for further reading.
The author provides a companion workbook to accompany the textbook. This
workbook proposes numerous exercises for the student to engage in active
learning with the robotic tools. Unfortunately for us, the author chose to use a
substantially different robotic platform for her course and thus for the workbook.
However, the general concepts and many exercises can be adapted for our
Arduino, but many cannot. The units of the COMP 444 study guide will serve you
well as we explore portions of this workbook. Unfortunately at the time this course
was developed, the workbook has not yet been completed in the advanced
chapters.
The workbook is freely available online from Sourceforge, which is a well-known and
respected repository of open-source projects.
The text workbook uses the iRobot learning platform for the exercises. The iRobot is
manufactured by the company that created the Roomba robotic vacuum cleaner. In fact,
the iRobot platform is basically a Roomba without the vacuum components. Three versions
of the iRobot platform are mentioned in the workbook, depending on which programmer
and which compiler environment is used. The iRobot, while a capable platform, was not
chosen for this course for several reasons. First, it is quite expensive at approximately $300
for just the iRobot. The programmer (hardware) and software come at an additional cost.
Finally, all sensors and acutators (motors) must be purchased separately and in some
cases created from scratch by soldering together electronic components—something far
beyond the scope of this course.
Instead this course chooses the Arduino development platform and the SparkFun Inventor’s
Kit, again for several reasons. First and foremost, a lower expenditure will purchase a
complete SparkFun Inventor’s Kit including an Arduino development platform. The Inventor’
Kit includes numerous components required in robotic exploration and experiments, as well
as an excellent tutorial and programming guide. The Arduino is an extremely popular
platform for many robotic platforms and experiments, with thousands of projects and web
resources available.
This course comprises two components – robotic theory as discussed in the textbook and
thus the readings, and robotic practice as experienced in the exercises and assignments.
The text represents a survey of modern robotics theory and practice, from first principles to
state-of-the-art research. Many of the advanced topics are beyond the scope of this course
and are frequently the topics of current doctoral and post-doctoral research in robotics.
However, it is still beneficial to study where robotics is heading so that we can begin to
comprehend the challenges and potential of robotics in our world.
Much of the practical component of this course is not strictly laid out in the study guide, but
will be discovered and shared collaboratively on the Landing.
Arduino
The Arduino was chosen for this course for several reasons. First, the Arduino has become
one of the most popular platforms in recent years for not only robotics, but also many
embedded controller projects such as music synthesizers, home automation systems, and
so on. As a popular platform, Arduino resources are added daily as it sees new uses.
The Arduino was created in Italy in 2005. A brief history can be found here:
http://en.wikipedia.org/wiki/Arduino
The Arduino itself is open source, so any manufacturer may create Arduino and Arduino-
compatible devices. The primary programming environment is also open source and freely
available on the Internet. The main programming language of the Arduino is the C
programming language. However, due to the simplified setup used in the Arduino,
programming it consists of writing procedural language statements inside two subroutines.
Writing procedural code inside a subroutine is almost identical in most modern third-
generation languages. If you can program in C, C++, Java or other third-generation
language, you can program the Arduino. Arduino tutorials will guide you step-by-step
through early examples, and the COMP 444 Landing Group resources will assist with more
exotic programming tasks.
Programs are compiled and downloaded to the Arduino using a supplied USB cable, which
also powers the board. Once programmed, the board can be disconnected from the power
source, and the program will remain in flash memory on the board. When powered up
again, the program restarts without needing to be recompiled or downloaded, making the
system very robust and powerful.
Your diary will be kept in a weblog (blog) which you will create on the Landing. You are free
to modify and personalize it to reflect your personal robotic explorations in this course. At
various times your weblog will be submitted as assignments to the marker, who will
examine your body of work and assign a grade for the course components to that point. A
key component of this weblog is mapping your robotic explorations and exercises to the
course objectives; that is, taking the list of objectives for each unit as an outline, you will
explain how the activities you have completed enabled you to meet each one. In this way,
you will establish a portfolio of competence that will be reflected in your final grade in this
course.
If you have a webcam, smartphone, or other recording device, you should experiment
recording short videos of your Arduino in action, to share with classmates on the Landing
and to include in your assignment submissions.
Assignments
The assignments for COMP 444 are not the typical “do this and submit that.” Rather, at
certain waypoints in the course you will be required to submit your weblog / diary to your
tutor for marking. The weblog and diary that you have been completing on the Landing
contain a record of your progress through this course, including
readings
questions
forum posts
Arduino exercises
any other work you have done in the course to that point.
Your weblog becomes a portfolio of competence for this course. The waypoints for weblog
submission are indicated in the study guide as reminders to submit assignments. A good
example for you to pattern your weblog after would be the Instructor’s Notebook.
For each of the three assignment submission points, the following exercises should have
been completed, along with answers to all unit questions from the textbook and a diary of
your progress through this course. Below is a rough outline of where you should be in your
explorations when you submit your weblog for marking.
Assignment 0
Assignment 1
Assignment 2
Assignment 3
Project
Make a copy of various discussion postings that you have made and emails or messages
as evidence of your collaborative participation, paste them into one document, and save it
as a PDF. You can include a record of your collaboration with your tutor on the project plan
as well. Submit this PDF file for the group work and collaboration component of your grade.
At the start of this course you should log in to the Landing (http://landing.athabascau.ca)
using your usual AU ID and password, set up a profile (if you have not already done so),
and join three groups: the Robotics Group at
https://landing.athabascau.ca/groups/profile/38211/robotics-and-embedded-controllers, the
Programming & Problem Solving Group at
https://landing.athabascau.ca/groups/profile/40571/programming-problem-solving, and the
COMP 444 Group at https://landing.athabascau.ca/groups/profile/189005/comp-
444/tab/235868/default. If there appears to be no noticeable content, then you are probably
not logged in.
Note: The COMP 444 group has been set up to be closed, which means only
people who have been invited or admitted by the group owner (your tutor) are
able to get to it. If your tutor has not invited you (usually because he or she may
not know your ID until you make it known), then you will need to request group
membership—there’s a link for that at the side of the page. Once the tutor has
approved your request, you will be able to access the course group and all of its
resources.
The Landing is where we require you to create your weblog / diary (in the COMP 444
group) and also a place for sharing and interaction, which accounts for 15% of your final
grade. Not only is the ability to collaborate online an important 21st-century job skill; in
addition, there are few better ways to learn than to teach, so it is very useful to help others.
And, of course, being helped by others can help you work through problems more quickly
than doing it yourself or waiting until the tutor is able to answer your questions. Everyone
wins.
Because every student will be doing something a bit different from every other, there is no
harm in sharing your work with others and, as a notable benefit, you can learn from each
other and get a better sense of how you are doing by comparing what you have done with
what others are doing.
Plagiarism
From the Athabasca University document on Academic Integrity:
http://scis.athabascau.ca/html/courses/global/undergrad_manual.htm#Academic_Integrity
I also refer everyone to the Student Code of Conduct, specifically Academic Misconduct:
http://calendar.athabascau.ca/undergrad/page11.php#acad_misconduct
http://calendar.athabascau.ca/undergrad/page11_02_new.php#plagiarism
Specifically, you cannot copy text from a source and portray it as your
own words.
Any quoted text should be displayed as a quotation (as I did in the first paragraph above)
with a clear citation of the source. You also need to cite sources that you paraphrase, i.e.,
rephrase in your own words. Sources you cite must also be listed as a reference. See
http://owl.english.purdue.edu/owl/resource/560/01/ for examples of how to list and cite
sources using APA style, which is acceptable for COMP 444.
Penalties
http://calendar.athabascau.ca/undergrad/page11_03_new.php
Specifically, reduction in grade (item 'c' in the above web document). If repeated, further
penalties up to an including failing grade in the course (d), suspension (e) or expulsion (f)
from Athabasca University. All instances of plagiarism will be reported to the
Dean of Science and the head of SCIS for determination of appropriate
penalty.
Be certain the words you submit as your own words are indeed your own
words. You can paraphrase and quote (with proper attribution), but you cannot copy other
people’s words as your own.
http://www-apps.umuc.edu/vailtutor/
If you have any questions on plagiarism, please post them on the Landing
for discussion.
Readings to Do Now
Please read the following article from Wikipedia on the history and development of the
Arduino: http://en.wikipedia.org/wiki/Arduino
Please also use Google or other search engine to explore other articles on the Arduino by
typing in the search phrase ‘Arduino history’.
Your First Exercises
At this time you should create your weblog and begin your diary.
In your weblog, please summarize the reading article’s key points and
complete Assignment 0.
Assignment 0
You will not submit this assignment for marking, but your tutor should be able to review the
following recorded in your weblog:
TOP
Learning Objectives
After completing this unit, you should be able to
define the term robot and provide a brief history of robots and robotics.
list the components of a typical robot.
continue on with more advanced robotic material.
Readings
Please read the following chapters in the textbook:
Questions to Ponder
At the end of each chapter in the assigned readings there are questions labelled “Food for
Thought.” Please answer these questions as best you can in your weblog, which will
become part of your portfolio of competence submitted for marking during this course.
Exercises
Exercises for this unit can be found in the Instructor’s Notebook on the Landing. Please
follow along with the exercises and programs using your own Arduino and the SparkFun
Inventor’s Kit, and keep a record of your explorations in your own weblog.
Further Readings
At the end of each chapter in the assigned readings you will find a section titled “Looking
for More.” While the links and readings mentioned in this section are not assigned, please
feel free to examine them if you are interested, or ask questions about them on the
Landing.
TOP
Learning Objectives
After completing this unit, you should be able to
Readings
Please read the following chapters in the textbook:
Arms, Legs, Wheels, Tracks, and What Really Drives Them (Chapter 4)
Move It! (Chapter 5)
Questions to Ponder
At the end of each chapter in the assigned readings there are questions labelled “Food for
Thought.” Please answer these questions as best you can in your weblog, which will
become part of your portfolio of competence submitted for marking during this course.
Exercises
Exercises for this unit can be found in the Instructor’s Notebook on the Landing. Please
follow along with the exercises and programs using your own Arduino kit, and keep a
record of your explorations in your own weblog.
Further Readings
At the end of each chapter in the assigned readings you will find a section titled “Looking
for More.” While the links and readings mentioned in this section are not assigned, please
feel free to examine them if you are interested, or ask questions on the Landing.
Assignment 1
It is time to submit your weblog for Assignment 1.
TOP
Learning Objectives
After completing this unit, you should be able to
describe various types of affectors, both how they are created and how they
work.
discuss the creation of robots that employ affectors to interact with their
environment.
Readings
Please read the following chapters in the textbook:
Questions to Ponder
At the end of each chapter in the assigned readings there are questions labelled "Food for
Thought". Please answer these questions as best you can in your weblog, which will
become part of your portfolio of competence submitted for marking during this course.
Exercises
Exercises for this unit can be found in the Instructor’s Notebook on the Landing. Please
follow along with the exercises and programs using your own Arduino kit, and keep a
record of your explorations in your own weblog.
Further Readings
At the end of each chapter in the assigned readings you will find a section titled “Looking
for More.” While the links and readings mentioned in this section are not assigned, please
feel free to examine them if you are interested, or ask questions on the Landing.
TOP
Learning Objectives
After completing this unit, you should be able to
describe the various kinds of sensors available to robots, from simple to complex.
describe how sensors can be used to enable robots to perform their functions
effectively.
describe switches and light sensors and position sensors in terms of applicability
to robot sensing.
describe some of the complexities in creating useful vision sensors.
discuss the creation of robots that employ sensors to perform useful functions.
employ the Arduino and the SparkFun Inventor’s Kit to create circuits which use
various sensors to interact with the environment.
Readings
Please read the following chapters in the textbook:
Questions to Ponder
At the end of each chapter in the assigned readings there are questions labelled “Food for
Thought.” Please answer these questions as best you can in your weblog, which will
become part of your portfolio of competence submitted for marking during this course.
Exercises
Exercises for this unit can be found in the Instructor’s Notebook on the Landing. Please
follow along with the exercises and programs using your own Arduino kit, and keep a
record of your explorations in your own weblog.
Further Readings
At the end of each chapter in the assigned readings you will find a section titled “Looking
for More.” While the links and readings mentioned in this section are not assigned, please
feel free to examine them if you are interested, or ask questions on the Landing.
Assignment 2
It is time to submit your weblog for Assignment 2.
TOP
Learning Objectives
After completing this unit, you should be able to
Readings
Please read the following chapters in the textbook:
Questions to Ponder
At the end of each chapter in the assigned readings there are questions labelled “Food for
Thought.” Please answer these questions as best you can in your weblog, which will
become part of your portfolio of competence submitted for marking during this course.
Exercises
Exercises for this unit can be found in the Instructor’s Notebook on the Landing. Please
follow along with the exercises and programs using your own Arduino kit, and keep a
record of your explorations in your own weblog.
Further Readings
At the end of each chapter in the assigned readings you will find a section titled “Looking
for More.” While the links and readings mentioned in this section are not assigned, please
feel free to examine them if you are interested, or ask questions on the Landing.
Assignment 3
It is time to submit your weblog for Assignment 3.
TOP
Learning Objectives
After completing this unit, you should be able to
Readings
Please read the following chapters in the textbook:
Questions to Ponder
At the end of each chapter in the assigned readings there are questions labelled "Food for
Thought". Please answer these questions as best you can in your weblog, which will
become part of your portfolio of competence submitted for marking during this course.
Exercises
Exercises for this unit can be found in the Instructor’s Notebook on the Landing. Please
follow along with the exercises and programs using your own Arduino kit, and keep a
record of your explorations in your own weblog.
TOP
Learning Objectives
After completing this unit, you should be able to
Readings
Please read the following chapters in the textbook:
Questions to Ponder
At the end of each chapter in the assigned readings there are questions labelled "Food for
Thought". Please answer these questions as best you can in your weblog, which will
become part of your portfolio of competence submitted for marking during this course.
Exercises
Exercises for this unit can be found in the Instructor’s Notebook on the Landing. Please
follow along with the exercises and programs using your own Arduino kit, and keep a
record of your explorations in your own weblog.
Further Readings
At the end of each chapter in the assigned readings you will find a section titled “Looking
for More.” While the links and readings mentioned in this section are not assigned, please
feel free to examine them if you are interested, or ask questions on the Landing.
TOP
Learning Objectives
After completing this unit, you should be able to
Readings
Please read the following chapters in the textbook:
Exercises
Exercises for this unit can be found in the Instructor’s Notebook on the Landing. Please
follow along with the exercises and programs using your own Arduino kit, and keep a
record of your explorations in your own weblog.
Further Readings
At the end of each chapter in the assigned readings you will find a section titled “Looking
for More.” While the links and readings mentioned in this section are not assigned, please
feel free to examine them if you are interested, or ask questions on the Landing.
TOP
Learning Objectives
After completing this unit, you will be able to
Questions to Ponder
At the end of each chapter in the assigned readings there are questions labelled “Food for
Thought.” Please answer these questions as best you can in your weblog, which will
become part of your portfolio of competence submitted for marking during this course.
Exercises
Exercises for this unit can be found in the Instructor’s Notebook on the Landing. Please
follow along with the exercises and programs using your own Arduino kit, and keep a
record of your explorations in your own weblog.
Further Readings
At the end of each chapter in the assigned readings you will find a section titled “Looking
for More.” While the links and readings mentioned in this section are not assigned, please
feel free to examine them if you are interested, or ask questions on the Landing.
TOP
Readings
Please read the following chapters in the textbook:
Questions to Ponder
At the end of each chapter in the assigned readings there are questions labelled "Food for
Thought". Please answer these questions as best you can in your weblog, which will
become part of your portfolio of competence submitted for marking during this course.
Exercises
Exercises for this unit can be found in the Instructor’s Notebook on the Landing. Please
follow along with the exercises and programs using your own Arduino kit, and keep a
record of your explorations in your own weblog.
Further Readings
At the end of each chapter in the assigned readings you will find a section titled “Looking
for More.” While the links and readings mentioned in this section are not assigned, please
feel free to examine them if you are interested, or ask questions on the Landing.
TOP
Learning Objectives
After completing this unit, you should be able to
Readings
Please read the following chapters in the textbook:
Questions to Ponder
At the end of each chapter in the assigned readings there are questions labelled "Food for
Thought". Please answer these questions as best you can in your weblog, which will
become part of your portfolio of competence submitted for marking during this course.
Exercises
Exercises for this unit can be found in the Instructor’s Notebook on the Landing. Please
follow along with the exercises and programs using your own Arduino kit, and keep a
record of your explorations in your own weblog.
Further Readings
At the end of each chapter in the assigned readings you will find a section titled “Looking
for More.” While the links and readings mentioned in this section are not assigned, please
feel free to examine them if you are interested, or ask questions on the Landing.
TOP
Learning Objectives
After completing this unit, you should be able to
Readings
Please read the following chapters in the textbook:
Exercises
Exercises for this unit can be found in the Instructor’s Notebook on the Landing. Please
follow along with the exercises and programs using your own Arduino kit, and keep a
record of your explorations in your own weblog.
Further Readings
At the end of each chapter in the assigned readings you will find a section titled “Looking
for More.” While the links and readings mentioned in this section are not assigned, please
feel free to examine them if you are interested, or ask questions on the Landing.
TOP
Learning Objectives
After completing this unit, you will be able to
Readings
Please read the following chapters in the textbook:
Questions to Ponder
At the end of each chapter in the assigned readings there are questions labelled “Food for
Thought.” Please answer these questions as best you can in your weblog, which will
become part of your portfolio of competence submitted for marking during this course.
Exercises
Exercises for this unit can be found in the Instructor’s Notebook on the Landing. Please
follow along with the exercises and programs using your own Arduino kit, and keep a
record of your explorations in your own weblog.
Further Readings
At the end of each chapter in the assigned readings you will find a section titled “Looking
for More.” While the links and readings mentioned in this section are not assigned, please
feel free to examine them if you are interested, or ask questions on the Landing.
The workbook is a work in progress according to the author, and it is presented as a wiki so
that it can be edited and extended as the author’s courses are delivered. At the time of this
study guide (Spring, 2013) the workbook is still unfinished. This review summarizes the
current state of the workbook for students in COMP 444.
The workbook activities are specific to the iRobot platform and to the crafting of sensors for
that platform. While program challenges and exercises can often be adapted from the
workbook, in many cases it is more useful to consider it as both a resource and starting
point for our exercises.
For my review of the current workbook, I denote exercises that we can adapt to Arduino
with * after the exercise. For detailed discussion of these exercises, please refer to the
Instructor’s Notebook on the Landing. Other sections indicated with ** should be read or
watched as appropriate.
Main Page*
Workbook Sections
Prerequisites*
Introduction*
Purpose**
again, discussing hardware and software
Robot Components*
Purpose**
Overview**
Hardware
Exercise 1 – Sensors and Sensor Space*
list sensors*
define sensor space and describe*
add sonor sensor; what is new sensor space*
Locomotion*
Purpose**
Overview**
Exercise 1 – Locomotion and Odometery*
square path*
odometry and measuring odometery error*
bonus – program for rectangle, circle, and figure-eight*
Exercise 3 – Homing*
two light sensors and beacon*
Exercise 4 – Teleoperation
Exercise 5 – Holonomic and Non-Holonomic Control**
questions
Sensors*
Purpose**
Overview**
Exercise 1 – Sensors and Levels of Processing*
questions**
Purpose*
Overview*
Exercise 1 – Proportional Control
Exercise 2 – Proportional + Derivative Control
Exercise 3 – Proportional + Derivative + Integral Control
Deliberative Control*
Purpose**
Overview**
Exercise 1 – Maze Navigation (simulation)
Exercise 2 – Topological Path Planning (simulation)
Reactive Control*
Purpose**
Overview**
Exercise 1 – Safety and Obstacle Avoidance (simulation)
Exercise 2 – Wall Following (simulation, incomplete)
Hybrid Control*
Purpose**
Overview**
Exercise 1 – Path Planning (simulation)
Exercise 2 – Room Coverage
Behavior-Based Control*
Purpose**
Overview**
Exercise 1 – Obstacle Avoidance
Exercise 2 – Wall-following Revisited
Exercise 3 – Flocking (simulation)
Emergent Behavior*
Purpose**
Overview**
Exercise 1 – Wall Following
Exercise 2 – Flocking (simulation)
Exercise 3 – Herding (simulation)
Exercise 4 – Formations (simulation)
Navigation*
Purpose**
Overview**
Exercise 1 – Maze Planning in Map
Exercise 2 – Topological Map Path Planning
Exercise 3 – Building a Map of a Maze
Exercise 4 – Coverage
Purpose**
Overview**
Exercise 1 – Aggregating
Exercise 2 – Dispersing
Exercise 3 – Predator–Prey
Exercise 4 – Herding
Exercise 5 – Formations
Exercise 6 – Flocking
Learning*
Purpose**
Overview**
Exercise 1 – Learn to Follow a Line (incomplete)
Exercise 2 – Learn to Avoid Obstacles (incomplete)
TOP