CS579 - Building and Programming Robots (Slides and Classnotes)

[IMAGE] Week 1: (8/18/03 - 8/24/03) info on Eclipse Prolog and first note on Prolog with the first program in Prolog (p1.pl). Here is the second Prolog program (p2.pl) and the second note on Prolog. The third and fourth Prolog program. The homework is due on 11:59 pm, August 26. Please submit your homework using the class submission web site.

[IMAGE] Week 2: (8/25/03 - 9/01/03) We continue to learn Prolog. The second note contains the program for checking whether a number is a prime number or not. Here are the programs in the note:

  • Defining ancestor relationship -- the obvious way p5.pl ,
  • Ancestor relationship -- running into the loop p6.pl,
  • Ancestor relationship -- using the cut operator p7.pl,
  • Ancestor relationship -- using the parent relationship to eliminate the infinite loop p8.pl, and
  • Program p9.pl for the second class
  • .

    The homework for this week include:

  • Due: 11:59 pm, September 2. Write programs that define the predicates: list_member, list_append, list_delete, list_intersection, list_no_duplicate as specified in the note, and
  • Due: Class time, September 3. Construct your own robot. Write the first robot program. The program should make the robot repeats the cylce (i) go straight for a while (say, 2-3 feets) and (ii) turn left (90 degree) four times.
  • Here are some useful links/materials you might want to look at
  • [IMAGE] Week 3-4: (9/01/03 - 9/15/03) The labor day makes the third week short. Here are the stuffs that we will go over in these two weeks:

    [IMAGE] Week 5: (9/15/03 - 9/22/03) We will continue with situation calculus and will have the first taste of using Prolog to reasoning about actions and changes. The note for the last two classes on situation calculus is now available. Here is the first Prolog program for the block world. The written homework for this week is very simple. It is due at 11:59pm, September 21 (Sunday).

    Here is the new version of the block world program. Find out the answer for your queries with this program.

    [IMAGE] Week 6: (9/22/03 - 9/29/03) We will now move on to Golog and ConGolog. Please read the papers on ConGolog and Golog. You need to complete the 'planning' predicate and submit it to 'Assignment-5'. Submit it before 11:59pm, September 23 (Tuesday).

    Homework 1: Write a GOLOG program that `demolishes' all the towers. In other words, given a possible configuration of the block world, your program should find a plan that puts all the blocks onto the table. When you submit this homework, call it 'Assignment-6'. The written homework is due at 11:59pm, September 28 (Sunday).
    PROJECT 3 On the LEGO robot front, try to smooth your programs and finalize the construction of your robot. Write a program that takes the robot from node 1 to node 6 and back to node 1. (Please see the map in SH170 for the number). Think about how you would write a program that takes two integers as parameters and takes the robot from one node to the other node (YOU DO NOT NEED TO WRITE THIS PROGRAM). We would like to see a demo on next Monday (September 29). Please submit your code for this program through the submission system (call it Assignment-7).

    Here is the new version of the block world program that you should use in implementing your first GOLOG program.

    [IMAGE] Week 7: (9/29/03 - 10/6/03) We have the first major demonstration of the robot. We start looking at GOLOG. Here is the code for the destroy all towers (or getting all the blocks onto the table) program. Call it the 'notower' program. On Wednesday, we will study the elevator program in the GOLOG paper. Here is the source code of the GOLOG interpreter written in Eclipse Prolog.

    HOMEWORK Run the notower program with 5 different configurations of the block world domain (you define it -- correct the 'notower' program to do it. (A configuration of the block world includes: the number of blocks and the initial situation). The configurations must satisfy (i) there are at least 6 blocks; and (ii) there are at least 2 towers in the configuration of the block work given to the program. Report your configurations and the answers to the query do(control,s0,S). Do you find anything that appears unintuitive to you? Please submit your answer to 'Assignment-8'. (THIS IS ANOTHER WRITTEN HOMEWORK). Due: 11:59pm, October 5, 2003.

    [IMAGE] Week 8: (10/06/03 - 10/13/03) We will look at the elevator program in the GOLOG paper. Here is a short slide on GOLOG. We will need to install additional software for the final project. This includes JAVA SDK and the LEGO Mindstorm SDK.

    HOMEWORK Given a railway network with four stations A, B, C and D which lie on a straight line, from left to right. A is direcly connected to B, B is direcly connected to C, and C is directly connected to D. The network is depicted in the following figure:

    A ------------- B ------------- C ------------- D

    A robot is stationed at A and faces B (it is heading to the right). The robot is somewhat special since it can only move forward towards its heading to the next station or turn 180 degree. This means that if the robot is at A (or D) and its heading is toward the left (or right), the robot cannot go forward.

    Develop a suitable situation calculus theory for this domain and write a GOLOG program that allows the robot to figure out what it needs to do to reach another station from its current station.

    Hint: A program with two parameter (X,Y) or a program with just one parameter (X) could do the job. When you use (X,Y), you have to check whether X is the current station; if it is not, then you have to reject the call (fail); otherwise, you go on and figure out the sequence of actions that need to be done (for the robot) to get to Y. If only one parameter is used, you might need to figure out the current station and then return the sequence of actions. Your program has to work for every possible initial situation.

    Please submit your answer to 'Assignment-9'. (THIS IS ANOTHER WRITTEN HOMEWORK BUT THIS ONE WORTHS 50 POINTS). Due: 11:59pm, October 19, 2003.

    Here are the softwares that we will need to install for the next project.

    [IMAGE] Week 9: (10/13/03 - 10/20/03) Welcome back from the Fall break. We will talk about LEGOLOG and the modifications that have been made to work with the USB port. Here is the link to the LEGOLOG's homepage. Here is a note on LEGOLOG. There is no homework for this week but the last one is due on October 19, 2003.

    [IMAGE] Week 10: (10/20/03 - 10/27/03) We change our schedule a little bit. The exam is moved to next week (10/27/03). So, we will start with the second topic: agent theory. Read the papers on intelligent agents by Wooldridge and the survey paper by Wooldridge and Jennings.

    [IMAGE] Week 11: (10/27/03 - 11/04/03) Here is the exam.

    [IMAGE] Week 12: (11/04/03 - 11/11/03) The main topic of this week will be autonomous agents. We will discuss the materials in the survey papers. Here is my slides on autonomous agents in PPT.

    Here is the project description in Power Point Format.Here is it in PDF or PS format.

    Here are the slides on the difference between IndiGolog and Golog.

    [IMAGE] Week 13: (11/10/03 - 11/17/03) We will study the subsumption architecture.

    [IMAGE] Week 14: (11/17/03 - 11/24/03) We will study the deliberative architecture. Please submit your initial situation calculus theory for the project by the end of Wednesday. Submit it to 'Assignment-10'. Last modified: Mon Nov 17 09:34:07 Mountain Standard Time 2003