CS579 - Building and Programming Robots (Slides and Classnotes)
Quick link to week:
1
2-3
4-5
6
7
8
9-11
12
Week 1: (8/24/04 - 8/31/04)
Here is the NQC programmer's guide.
The week assignment.
Week 2-3: (8/31/04 - 9/13/04)
A note on Prolog.
The source code for the Prolog programs mentioned in the note:
- p1.pl
- p2.pl
- p3.pl
- p4.pl
- p5.pl
- p6.pl
- p7.pl
- p8.pl
- p9.pl
- Here is the listing of all the prolog programs:
prolog-prgs.pl
- Read Chapter 7 from Russel and Norvig's
book.
Week 4-5: (9/13/04 - 9/27/04)
- Goal: Complete the second project
- Review material (Logical agents - Logics)
- Note on propositional logic
- Read the paper of Reiter on
Situation Calculus
Week 6: (9/27/04 - 10/03/04)
Topics for the week:
- Situation calculus - Here is my note on situation calculus. Here is the prolog
program car.pl
- Planning using situation
calculus
- Planning using situation calculus in PROLOG
- Programming: A competition for slalom run: due in one week (10/04/2004).
Week 7: (10/4/04 - 10/11/04)
Topics for the week:
- IndiGolog and Legorobot
- Here are the codes that we discuss in the class
- The main program car-main.pl
- The situation calculus theory in IndiGolog notation
car-sitcalc.pl.
- The complex actions
car-complex.pl.
- The auxiliary part
car-auxiliary.pl.
- The indigolog interpreter
golog.pl.
- A list of queries for trying out.
Week 8: (10/4/04 - 10/18/04)
- Slalom run competition
- Project 4 description.
Week 9-11: (10/18/04 - 11/08/04)
- Work on Project 4 (description).
- The NQC code of the Legolog (U of Toronto) package:
main program and
header.
Week 12-15: (11/08/04 - 12/06/04)
- Work on Project 4 (description).
- Here is an example code (JAVA/Eclipse/RCX)
of a simpler project. The README file is
also available.
- Here are some prolog code that can be helpful:
- An (almost) shortest path prolog implementation
- Tip for using the shortest path implementation:
-
You can use the
shortest path algorithm to find a path between two arbitrary nodes on the map.
Now you need to turn a path into actions.
You would need to look back at the situation calculus theory for the railway example
car-sitcalc.pl and the complex actions
car-complex.pl.
You need to define the situation calculus theory and the complex actions
that can help you navigate between nodes.
- The second step is to look at the delivery program to see how it can work together
with RCX, JAVA, and GOLOG. For this, yoou need to look at the delivery.pl,
delivery.nqc, and main.pl. The predicates "main_control" and the
procedure "control" in
delivery.pl are the two main entities that you need to look at.
The predicate "checkKeyboardExog" is the one that receives the keyboard string
and return the actions that should be executed.
- An implementation that can be used to generate the path is also available.
(This will be available only by request. Send me an email and you can
get the source code; Unfortunately, you will be deducted some points for
getting the source code).
Last modified: Tue Nov 30 19:49:05 MST 2004