Advanced Robotics CSC 290
Exercises
Written parts of
exercises
are due in hardcopy by the start of the first class of the
following week, either in class or in the box outside TA's office.
Programming exercises due in Blackboard on the day and time
indicated on Blackboard.
Do NOT submit materials that need proprietary products. In other
words,
nothing from Microsoft. No .doc, NO .docx, no .rar, etc. (zip and tar
are OK). Make
sure your code works under linux, make sure your prose submissions
are .pdf.
If you need help finding the appropriate utilities, see
Google(TM), a classmate, or your TA.
I'm told you can convert .doc to .pdf at this
DocToPdfConversion site.
Assignments on Blackboard: (Due dates, submissions) Control
Panel -> Content Areas (Course Materials) -> Assignments
DJ means Dudek and Jenkin Text.
Kinematics
1. (Craig 2.3): A frame {B} is located as follows: initially
coincident with a frame {A} we rotate {B} about ZB by
theta degrees and then we rotate the resulting frame about
XB by phi degrees. Give the rotation matrix that
will change the description of vectors from BP to
AP.
2. (Craig 2.8) Write a little procedure to change representation of
orientation from rotation matrix form to equivalent angle-axis form:
its input is a 3x3 matrix, output is an axis vector and an angle
scalar.
Also write an inverse procedure to the above, to change from angle-axis
representation to rotation matrix representation. Run your procedures
on enough test cases to convince yourself and us that a) they give
intuitive
believable answers and b) they are in fact inverses.
Include difficult cases.
3. DJ 2.1
4. DJ 2.2
Linear Systems and Control
1. You arrive on time (04:30 hours) at your new employer
Xe Services LLC . After
calisthenics and some range work with the H&K MP5SD6, you get
to your new desk to find a yellow workorder saying: DIRIGIBLE-DEPLOYED IMAGE-BASED
FOURIER-TRANSFORM FEATURE-DETECTORS FOR OASES, VILLAGES, DESERT: SPECS TO XEINTCOM
BY 1500 ZULU.
What a SNAFU -- that's only an hour away -- BOHICA, baby!
For the following you need the e-Reserve reading by Craig on Control, where
you'll find the questions (and the chapter they refer to).
2. Craig 9.1
3. Craig 9.3
4. Craig 9.5
5. Craig 9.11
6. Extra Fourier
Domain Filtering Assignment.
Non-Visual Sensors
1. DJ 3.2
2. DJ 3.3
3. DJ 3.4
4. DJ 3.5
5. (Extra) Use a particle filter to refine estimate in 3.5.
Vision
1. DJ 3.6 -- use Hough Transform
2. Similar to DJ 4.3:
Hough Transform for Circle Detection
3. (Alternative to 2): Stereo! DJ 4.5
4. (Alternative to 2 or 3):
Clustering for classification .
Reasoning
1. Write a little 2-D robot simulator (see DJ problem 2.5, or maybe this
Simple discrete grid simulator). I'm not sure existing simulators like
Quagents, or even
RP1 will give you enough flexibility, but you can check.
Use your code for (and maybe for a Final Project).
1. DJ 5.1
2. DJ 5.4
Final Project
I'll need a
Proposal for your final project, probably by about mid-term.
Probably helpful to you, and certainly easy for me,
is
to point you to the description of CSC 242 projects. The
projects for 290 could be even more ambitious, however, so don't be
constrained by the descriptions and examples you see.
Some off-the-cuff ideas:
- Featured in CSC242, the
Quagents System uses the Quake III engine and features
customizable levels and a universal socket interface so your control
program can be written in any language you please. A good example of
undergraduate research built on the Quagents platform is
Peter Barnum's Robust Agent
Teams .
- Learn to play a computer or video game: Check out
Rog-O-Matic (1984)
or the very recent
Super Mario
Contest .
- Prof. Chen Ding has a Rovio robot (q.v.). It has a web interface
that can be accessed via a Ruby script that has already been written
by a CS student. As of Sept. 09 Prof. Ding was looking for someone to
program it to follow a red block (say) dangled by someone and to
remember its route (using visual input from along the way). By
remembering the route with a label like "To Eileen's 0ffice", the
Rovio could afterwards make the journey autonomously.
- Prof. George Ferguson and Ben Hopkins have been working on a
software platform to support development in the UR Robocup Project
(q.v. if possible). We'll have a talk by Ben in 290 but natural
projects would be to make extensions either for Robocup purposes, or
to use the framework for another domain entirely, like a simulated
gang of robots in Matlab.
- Like hardware? Why not play around with a sensor? E.g.
A Directional Gyroscope . You can find tonnes of this sort of
thing out there, prob. including "How To" youtube videos. I found
this by Googling for "rate gyro" after being a bit puzzled by section
3.3.2 of Dudek and Jenkin. We have various sensors from our
ActivMedia robots.
-
I've got a couple of small mobile robots (about 6" cubes),
one still in the box. They use a
MIT-handyboard (q.v.) controller, probably a few generations old.
Could
still work fine: they're programmed by downloading a simplified C
program over serial link. I've tossed a lot of the documentation but
I bet there's plenty "out there"...
-
We have two ActivMedia robots that were used for the AAAI contests
several years back. Chris Clingerman got them running again, and
maybe something cool can be done with them. There are several options
for controlling languages, as I recall.
-
Who could forget the Scribbler? And don't forget Lego Mindstorms. We
can doubtless rustle up some of these if somebody has a compelling
idea or a creative compulsion for them.
The project descriptions for the earlier version of 290 were lost,
darn it.
This page is maintained by
Last update: 8/6/09