You are on page 1of 35

COMP 444: EMBEDDED / ROBOTIC PROGRAMMING

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:

the units of the study guide


the COMP 444 General Discussion Forum where  students and instructors share
general information about course procedures and materials
The Assignments section where you submit completed work and check for tutor
evaluation and feedback.
The Help section with links to pages that support you as a learner at AU

On the Landing, 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

discuss robots in general, including the history and features of robots.


describe robotic features including affectors, actuators, and control processes.
discuss robotic control mechanisms including feedback, architectures,
deliberative, reactive, hybrid, behaviour-based, and coordination.
discuss emergent behaviour and distinguish this from normal robotic behaviour.
discuss robot learning in the context of current robots.
design and create robots to perform tasks from simple movement to complex
interactions with the world.
explore robotic concepts with hands-on experiments using the Arduino and the
SparkFun Inventor’s kit.
articulate design decisions and create a diary describing learning experiences
that form a portfolio of competence.

What I Expect of You


COMP 444 is a senior-level course in an undergraduate program offered by Athabasca
University.

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.

What You Can Expect of Me and Your Tutor


Your tutor is a professional who enjoys the learning experience. Your tutor wants to see
you succeed and is willing to be a partner in that success.

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.

Learning Happens in This Course – YOU Are in Control


This course is like other undergraduate courses at Athabasca University in that it is an
unpaced course. This means that you have registered for a 6-month contract. During that 6
months, you are in total control. The study guide presents a list of readings and activities
that you must perform to successfully complete this course. The course site is laid out in a
suggested 16-week progression, but you control your own schedule.

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 Things First


First things first. In this course, I am going to have you read the entire textbook as you
progress through the units in this course. This is for a few reasons:

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 Portfolio of Competence – Weblog Journal and Diary


As part of your journey, you will create and keep a logbook of your exploration. In this
logbook, you will answer questions both from the study guide and from the textbook. You
will also log your experiments, both successes and failures, examining cause and effect to
determine why your experiments behave the way they do.

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.

Be sure to use a compression tool such as in this Handbrake example to


minimize the file size of any video you upload here. If you wish, you can upload
videos to YouTube and provide links in your weblog.

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

(not submitted for marking, but recorded in your weblog)

where to find resources


examining the SparkFun Inventor’s Kit
installing the Arduino development environment
writing and executing your first program

Assignment 1

Submit after completing Unit 2.


The weblog and diary completed to this point will be submitted for marking
Your weblog should contain designs, discussion, and diary entries that describe
working examples which demonstrate exercises and concepts covered in Unit 1
and 2 inclusive
Working examples will include moving actuators such as motors, turning LED
lights on and off, and sensing light levels.
Include answers to all Unit 1 and 2 questions from the textbook.

Assignment 2

Submit after completing Unit 4.


The weblog should contain designs, discussion, and diary entries that describe
working examples which demonstrate exercises and concepts covered in Unit 1–
4 inclusive.
Working examples will include employing actuators to interact with the
environment as well as using sensors to complete an assigned task.
Include answers to all Unit 3 and 4 questions from the textbook.

Assignment 3

Submit after completing Unit 5.


The weblog should contain designs, discussion, and diary entries that describe
working examples which demonstrate exercises and concepts covered in Unit 1–
5 inclusive.
Working examples will include the use of multiple feedback control mechanisms
to improve control. Simple examples from earlier exercises are modified to
incorporate different feedback control mechanisms and compared with the earlier
examples to measure the change in control behaviour.
Include answers to all Unit 5 questions from the textbook.

Project

It is *critical* to submit the project before writing the final exam.


The project is designed to bring together what you have covered in the course
into a significant working project to be designed jointly between you and your
tutor.
The project should employ significant control elements as studied in Unit 5–11.

Group Work and Collaboration


Your posts in the Landing and COMP 444 General Discussion Forum, and any other
evidence of your collaboration and group work with others in the course, are worth 15% of
your final grade. Sometime before you write the final exam, you will submit a summary of
your group work and collaboration efforts throughout the course.

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.

Using Athabasca Landing


The course also offers a gateway to lifelong learning in the form of Athabasca University’s
Landing. Unlike Moodle course material and forums, the Landing is available to all students
at Athabasca University, including current, past, and prospective students in this course.

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 has, amongst other things, the following facilities:

a place to post your weblog entries for your learning diary


a means to share bookmarks of useful sites with others (and to find such sites)
a wiki-like tool, which can be used to create pages of useful hints and ideas
together. Here you can discover the pages being created by other members of
this course as well as frequently asked questions and current information that
may help you to be more successful on the course.

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.

This is a completely non-competitive environment: we use absolute, not relative, criteria


when marking, so the fact that everyone is brilliant does not mean you have to be even
more brilliant to succeed! However, we do hope that you will inspire each other and get
ideas from each other that will make everyone’s work even better than it would otherwise
have been. And, if you find things that could be improved, don’t be afraid to make
suggestions or offer help: you can use those suggestions and help as part of the evidence
of having achieved competency in this course.

Plagiarism
From the Athabasca University document on Academic Integrity:

http://scis.athabascau.ca/html/courses/global/undergrad_manual.htm#Academic_Integrity

“Students registered in Athabasca University courses are considered to be responsible


scholars and are therefore expected to conform to the highest standards of academic
integrity in all written assignments, including examinations.”

I also refer everyone to the Student Code of Conduct, specifically Academic Misconduct:

http://calendar.athabascau.ca/undergrad/page11.php#acad_misconduct

All of the above is in reference to plagiarism:

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.

Warning: Plagiarism detection software may be used on submitted


assignments to insure compliance.

Finally, here is a tutorial on plagiarism developed at University of Maryland. It is very useful


intro to all aspects of citation, plagiarism, policies etc.  Please have a look at it.

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:

where to find resources


examining the SparkFun Inventor’s Kit
installing the Arduino development environment
writing and executing your first program

TOP

Unit 1: Introduction to Robotics


In this unit, you will explore some of the basics of robotics including robotic history and
some terminology.

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:

What Is A Robot? (Chapter 1)


Where Do Robots Come From? (Chapter 2)
What’s in a Robot? (Chapter 3)

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.

Bookmark the brief history of the Arduino found on Wikipedia


http://en.wikipedia.org/wiki/Arduino, and check out the official Arduino home page at
http://www.arduino.cc/.

TOP

Unit 2: Robotic Movement 1 – Locomotion


What makes a robot move? What types of robotic movement are possible? In this unit you
will explore locomotion in robots.

Learning Objectives
After completing this unit, you should be able to

list the various mechanisms of robotic movement.


discuss active versus passive actuation.
describe different types of actuators.
discuss the similarities and differences between DC motors, geared motors, and
servo motors.
describe and calculate the degrees of freedom in movement.
discuss stability in robotic movement.
discuss the creation of robots that move using various affectors or combination of
affectors.
employ the Arduino and the SparkFun Inventor’s Kit to create circuits which
control various affectors.

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

Unit 3: Robotic Movement 2 – Affectors


Affectors are the key to allowing a robot to interact with its environment. Affectors affect the
environment by touching, grabbing, and other motions. In this unit you will examine different
affectors in robotics.

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:

Grasping at Straws (Chapter 6)

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

Unit 4: Robotic Sensing


Sensors allow a robot to sense what is happening in the world around it. Sensors are
critical to creating robots that can interact with the environment by providing a way for the
robot to know what its actuators and affectors are doing. In this unit you will examine
various sensors and how they can be used to create robots that can perform useful
functions.

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:

What’s Going On? (Chapter 7)


Switch on the Light (Chapter 8)
Sonars, Lasers, and Cameras (Chapter 9)

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

Unit 5: Robotic Control 1 – Feedback and Architectures


Actuators, affectors, and Sensors are all critical components of a functional robot, but we
need a way to bring it all together and control the robot. In this unit you will begin to
examine robotic control mechanisms.

Learning Objectives
After completing this unit, you should be able to

describe various robotic control mechanisms, including feedback control.


discuss the use of error in feedback control
discuss and differentiate between types of feedback control including proportional
control, derivative control, integral control, and combinations of these control
mechanisms.
describe the building blocks of robotic control, including control architectures.
list several languages for programming robots.
discuss the creation of a robot that uses feedback control.
employ the Arduino and the SparkFun Inventor’s Kit to create circuits which
demonstrate the use of feedback control.

Readings
Please read the following chapters in the textbook:

Stay in Control (Chapter 10)


The Building Blocks of Control (Chapter 11)

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

Unit 6: Robotic Control 2 – Representation


Continuing our study of robotic control, we examine representation in robotics, which is a
way in which the robot can store information about its environment.

Learning Objectives
After completing this unit, you should be able to

discuss types of representation in robotics, including ways to make a map.


design robots that can use representation to complete their tasks.

Readings
Please read the following chapters in the textbook:

What’s in Your Head? (Chapter 12)

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

Unit 7: Robotic Control 3 – Deliberative and Reactive


Control
Continuing our study of robotic control mechanisms, in this unit we examine deliberative
control and reactive control. These two techniques are almost polar opposites of each
other, as we shall see.

Learning Objectives
After completing this unit, you should be able to

describe two types of robotic control – deliberative and reactive.


describe the differences between deliberative and reactive control.
discuss the creation of robots that use deliberative and reactive control to perform
their function.
employ the Arduino and the SparkFun Inventor’s Kit to create circuits which use
deliberative and reactive control to perform a desired function.

Readings
Please read the following chapters in the textbook:

Think Hard, Act Later (Chapter 13)


Don’t Think, React! (Chapter 14)

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

Unit 8: Robotic Control 4 – Hybrid and Behaviour-Based


Control
The various types of control mechanisms studied so far in the course lead to a natural
question: what would happen if we combined some of the control mechanisms? The
answer to that question is that we would be creating hybrid control mechanisms. After
examining hybrid control mechanisms, we go on to examine behaviour-based control.

Learning Objectives
After completing this unit, you should be able to

describe hybrid control and its relation to prior control mechanisms.


discuss types of planning and replanning in robots.
describe behaviour-based control.
design robots that employ hybrid or behaviour-based control to achieve goals.

Readings
Please read the following chapters in the textbook:

Think and Act Separately, In Parallel (Chapter 15)


Think the Way You Act (Chapter 16)
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

Unit 9: Robot Control 5 – Coordination


As robot control mechanisms become more and more complex, we see the need to build
some type of coordination mechanism into the control structure. Control coordination is the
topic of this unit.

Learning Objectives
After completing this unit, you will be able to

discuss robot behaviour coordination.


Readings
Please read the following chapters in the textbook:

Making Your Robot Behave (Chapter 17)

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

Unit 10: Unexpected Outcomes and Emergent Behaviour


What happens when a robot behaves in unexpected ways? Is this a good thing or a bad
thing? Can we predict unexpected outcomes or design for them in our robots? This unit
explores emergent behaviour arising from unexpected outcomes.
Learning Objectives
After completing this unit, you will be able to

discuss unexpected outcomes and how they may occur in robots.


discuss emergent behaviours in robots.
design robots that might exhibit emergent behaviors and analyze how such
emergent behaviours might arise.

Readings
Please read the following chapters in the textbook:

When the Unexpected Happens (Chapter 18)

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

Unit 11: Navigation and Group Robotics


Getting somewhere is often very important in defining a robot’s function. Getting from point
A to point B as a robot is part of navigation. We will explore navigation topics in this unit, as
well as look at what happens when we bring many robots together and try and control them
as a group.

Learning Objectives
After completing this unit, you should be able to

discuss robotic navigation including localization, searching, path planning, and


coverage.
define the term SLAM in relation to robot navigation.
discuss group robotics.
discuss the benefits and challenges of robot teamwork.
examine architectures for multi-robot control.
design robots that might work in teams.

Readings
Please read the following chapters in the textbook:

Going Places (Chapter 19)


Go Team! (Chapter 20)

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

Unit 12: Learning and Robots


Learning is a concept that is not historically coupled with robots, but more and more robot
research is focussed on robotic learning. Reinforcement, supervision, imitation, and
forgetting are all current topics in robot learning.

Learning Objectives
After completing this unit, you should be able to

discuss various concepts in robot learning including reinforcement, supervision,


imitation, and forgetting.

Readings
Please read the following chapters in the textbook:

Things Keep Getting Better (Chapter 21)


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

Unit 13: Summing Up – The Future of Robotics


In this last unit of the course we take the opportunity to wrap things up by looking at the
future of robotics. In addition to giving numerous examples of where robots are going, we
finish by examining the ethical implications of robots in modern society.

Learning Objectives
After completing this unit, you will be able to

discuss the future of robotics.


provide numerous examples for the uses of robots in the immediate future.
discuss ethical implications of using robots in society.

Readings
Please read the following chapters in the textbook:

Where to Next? (Chapter 22)

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.

Project and Final Exam


It is essential that you submit your completed project before you attempt the final exam,
which needs to be written before the end of your 6-month contact.

The Textbook Companion Workbook Review


The companion workbook for the text can be found on Sourceforge:
http://sourceforge.net/apps/mediawiki/roboticsprimer/index.php?title=Main_Page

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*

Robotics Primer Video**


Introduction**

Workbook Sections

Prerequisites*

Purpose (hardware and software required)


various iRobot configurations

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*

Exercise 2 – Effectors and Actuators*


difference between effectors and actuators*
list actuators and effectors*
list degrees of freedom of robot*

Locomotion*

Purpose**
Overview**
Exercise 1 – Locomotion and Odometery*
square path*
odometry and measuring odometery error*
bonus – program for rectangle, circle, and figure-eight*

Exercise 2 – Path Following*


line following*

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**

Exercise 2 – Infra-red Sensor*


setup*
calibration*
obstacle avoidance*

Exercise 3 – Sonor Sensor*


setup*
calibration*
obstacle avoidance*

Exercise 4 – Infra-Red and Sonar Wall-following*


Exercise 5 – Laser Sensor
setup
obstacle avoidance
robot following

Exercise 6 – Color Blob Tracking


setup
color blob detection
lights and colors
color tracking

Exercise 7 – Person Following*

Feedback Control (exercises incomplete)*

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

Group Robotics (simulations)*

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

You might also like