## 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.