Embedded/Robotic Prgramming - Introduction to Robotics
This page is a companion page to COMP444, Embedded / Robotic Programming, written and offered through Athabasca University (AU) starting in
2013. The course is an introduction to robotics and robotic programming, including programming of embedded microprocessors. The course is
offered as a third year option in the Bachellor's of Computing and Information Systems degree at Athabasca University and is 3 credits.
The course is offered as an unpaced delivery (no fixed timetable) with year-round registration. Unpaced delivery is the standard for
AU undergraduate courses. Students enroll and enter into a 6 month learning contract with the option to purchase up to two (2) three month
extensions. Materials including study guide, conference discussion boards and assignment submission are all available on-line via the internet
using Moodle. Tutor contact is usually by email.
Learning Outcomes: Upon successful completion of the course, students 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.
- articulate design decisions and create a diary describing learning experiences that form a portfolio of competence.
Text: The Robotics Primer, Maja J. Mataric. MIT Press, 2007. (included in course registration)
|
|
Hardware Discussion
This course requires hardware to be effective. Students will receive a kit of hardware in addition to the text upon which to conduct
experiments, explore the study guide and complete the course assignments. The final decision on which kit to supply was a rather long and
arduous one, as outlined below.
|
|
LEGO Mindstorms NXT 2.0 Retail Set - Unboxing
When I first decided to create the course "Embedded / Robotic Programming", I was already well familiar with the LEGO Mindstorms NXT kits,
having purchased my first kit in early 2000. Over the years, the kit has evolved and changed until we have the latest "Retail LEGO NXT 2.0" kits.
I have used all of the various LEGO Mindstorms kits since 1.0, and have experience firsthand the changes and improvements since 2000. My most
recent work with Mindstorms has been working with my friend Wayne at Athabasca University on the Lego "Summer Camp" workshops sponsored by the Faculty
of Science at Athabasca University and offered to grade 6 students in Athabasca, AB during the summer. This camp has been offered for two years now,
and I have been involved since the beginning with Wayne.
Since the kits have changed over the years, it was necessary to purchase the latest "NXT 2.0" kit as all my kits were older ones. The pictures
below show the unboxing of the latest NXT 2.0 kit, which has been on the market now for several years. This kit seems to be the standard kit at this
time, with no mention of any upgrade or newer kit in the near future.
One thing that has not changed about Mindstorms over the years is the price. The retail NXT kit has always been $350 CDN, no matter where purchased.
It does not go on sale and is not discounted. This makes the kit a very expensive addition to the course, but I was certain some way would be found
to reduce the price for mulitple kits. One thought was "Educational Lego", which offers NXT kits for K-12 classrooms throughout North America. I was sure
that some way would be found to obtain kits at a reasonable price. I was quite wrong. The NXT retail kit ($350) is in fact the cheapest kit available.
Educational Lego is not sold in the identical kit; rather you must purchase an "EDU-LEGO" base kit, then an expansion kit if you want all the pieces of
the retail kit, then pay an additional per-student license fee for the software. In the end, EDU-LEGO was significantly more expensive than the standard
retail NXT 2.0 kit.
|
|
|
Now What?
With the high price of the LEGO NXT kits (minimum $350), it was clear that this cost was far greater than could reasonably absorbed into the
standard AU course cost. While some courses do have lab kits with a separate lab fee, it was determined that the cost of the LEGO kit would require
a significant lab fee. I was not comfortable with adding a significant lab fee to the course, so that meant I would need to find another hardware platform
for the course.
When I first envisioned the course, LEGO was the "gold standard" in robotic platform for eductation, and the only game in town if you didn't want either
a bare board platform, or a course which would involve soldering and component level building. These were not skills embodied in the learning outcomes of a
Embedded/Robotic programming course, and so rendered exising platforms unworkable. However, since that time, the landscape has changed. Numerous small,
inexpensive hardware platforms have become availble, from the Raspberry Pi to the Arduino, PIC platforms and many others.
Examining the new platforms, many still required soldering and other 'lower level' hardware skills to create a useful programming platform. Many were
also very specific in language / programming requirements and not good for an entry level course. However, one platform has risen to become one of the most
exciting and frequently chosen platform for embedded and robotic use in the past year. That is the Arduino. Created in Italy, the Arduino is a totally open-source,
open hardware platform that has taken the robotic community by storm. The basic Arduino is also inexpensive, with a complete system costing just $30. In just
a year, the Arduino now offers hundreds of kits, robots, add-ons and other capabilities that now render it the default platform of choice for a course such as this.
Because the Arduino is inexpensive and so very well supported by the on-line community, I have chosend it as the hardware platform for my course.
|
|
Arduino kits 1 - Sparkfun Inventor's Kit
Having chosen the Arduino for the course hardware platform, the last question is "which package?". The first choice is to choose an Arduino starter kit,
which contains the Arduino, breadboard, hardware components and on-line tutorials (and printed manual). The course would then use this platform and the
various experiments to allow the students to explore the course topics "hands on". While the students would not actually build a robot during the course,
the knowledge, skills and experience gained in the course would easily be translated to actual robot building once the course was completed.
Of all the kits, the "Sparkfun Inventor's Kit" is easily the top of the line kit. Costing $100, it features all the necessary components for numerous
experiments, all the materials and a very nice box to store everything. A superior kit in my opinion.
|
|
|
Arduino kits 2 - BOEBot Robot Kit
The second choice is to select an actual robot kit. With a robot kit, the student will build an actual robot during the course, which can then be used
to perform the labs and assignments. The benefit of this choice is the student has a robot when the course is complete. The downside is that all robot kits
are more expensive, and none contain the wealth of extra parts in a starter kit. So, you get a robot but can't do as many experiments with it.
Of the various robotic kits examined, the "Board of Education BOEBOT" kit from Parallax is a superior robotic kit. Featuring aluminum construction and
very good servo motors as well as a perfboard (to do experiments) and some supplemental components, it is the superior robot kit. It is more expensive than
the starter kits however, coming in at $150 once you purchase the necessary Arduino (it's not included). Still, a very good choice.
|
|
|