Announcements and Special Information
CIS447
5/9 – Two sample questions on finding the shortest path between two nodes in Robi World have been posted. Please add this to your study material for the Exam.
5/8 – I have summarized last week's lecture on robotics and it is posted. Please add this to your study material for the Exam.
5/4 – Given the difficulty of reading naked Lisp code, I am preparing comments on the Robi code provided.
5/2 – If you are wondering what Rodney Brooks has been up to since writing the papers below, check out this website:
http://en.wikipedia.org/wiki/Roomba
4/29 – The A' and C' exercises have been posted.
4/28 – As I mentioned in class yesterday, please peruse the following papers on the subsumption
architecture apporach to robotics. We will be discussing them in class next week.
Brooks: A Robust Layered Control System for a Robot.
Brooks: Intelligence Without Representation.
Brooks: Elephants Don't Play Chess
Kirsh: Today the Earwig, Tomorrrow Man
4/26d – On Tuesday, in our discussion about Part C of Project #3, I said something about using the loop counter in Dotimes to give the direction to move to. Earlier I had discovered that that does not work, but forgot. The problem is
that as the robot's orientation changes, as it must when we visit neighboring nodes, we must take the new orientation into account.
The solution is very simple. If we are at a node with n neighbors, if we call MoveRobi(1), followed by MoveRobi(0), n times, we will have visited every neighbor. For example, if we are at node #8 which has neighbors (given CW) 1, 2, 3, 4, 5 and our original orientation is "from 5", if we execute MoveRobi(1) followed by MoveRobi(0) 5 times, the sequence of moves will have been: 1-8-2-8-3-8-4-8-5-8.
On the other hand, when calculating the sequence of moves to take us from the current node to the nearest unexplored node, since the robot is not actually moving while constructing the search tree, we use all the values, 0 through n-1, and consider adding each of those neighbors to our tree. On the other hand, we would have to calculate the neighbors of a node with respect to the robot's orientation. Thus, we need to rewrite getNeighs, getNewTn, and perhaps other functions to reflect the fact that we must always calculate the neighbor set with respect to the robot's orientation at that moment. And this list will change, depending on which node the robot came from.
4/26c – If you are working off the code I posted for Project #3, please note that it requires that
MoveRobi be able to handle requests for illegal moves, e.g., (MoveRobi 4). That is because the inner loop pops out when the move direction has become 4 or more:
((>= direction 4) nil)
That requires a change in the MoveRobi function to do the following:
1. Send back nil
2. Leave the robot in its current position.
This can be accomplished with the code below.
(defun MoveRobi (direction)
(let ((newPosn (nth direction (gethalls *robotposn*))))
(when newPosn
(setf *robotposn* newPosn)
(list *robotposn* (boolize (gethalls *robotposn*)))
))
)
4/26b – Here is an interesting link to robots in use.
4/26 – There was an error in the AB-2 test data. It has been corrected. Make sure you have the correct version before you run your program.
4/25 – The CD-2 test data has been posted.
4/24 – The due date for Project #3 has been moved back one week.
4/19 – More information for Project #3 has been posted: sample code and sample runs one and two.
4/15b – The corresponding 3rd algorithm for Segment A of Project #3 has been posted.
4/15 – A 3rd algorithm for Segment C of Project #3 has been posted. Of the three, this one is the
easiest to code, and it makes a good starting point for your program, as explained in the discussion on rapid prototyping, PID & APD at the beginning of that posting.
One caution – I haven't yet coded it, so there may be some errors in it. If you find any, please let me know so I can correct them.
4/13 – Two algorithms for Segment C of Project #3 are discussed in two new postings.
4/1b – A shorter program on the DARPA Grand Challenge from the Discovery Channel:
http://www.exn.ca/video/?video=exn20051014-robotcars.asx
4/1 – A sample test has been posted. You can use this to study for Tuesday's test.
3/31 – Nova ran a program on the DARPA Grand Challenge. You can watch it online at:
http://www.pbs.org/wgbh/nova/darpa/program.html
3/28 – Some websites on UFLA's robotics work.
http://www.exn.ca/video/?video=exn20051102-waterbot.asx
http://mil.ufl.edu/
3/27 – Some functions for both the environment and the robot are posted.
3/26 – Here are some references to CMU's mine mapping robot:
http://www.cs.cmu.edu/~3D/mines/
http://www.innovations-report.com/html/reports/process_engineering/report-18858.html
http://www.cmu.edu/cmnews/030625/030625_minemap.html
http://www.agiweb.org/geotimes/aug03/technology.html
http://www.post-gazette.com/healthscience/20021029groundhogsci2p2.asp
And, if you are interested in going on to graduate study in robotics, check this link:
http://robotics.nasa.gov/students/univ.htm
3/21b – Please peruse these articles before class today.
http://www.computerworld.com/hardwaretopics/hardware/story/0,10801,109580,00.html
http://www.military-information-technology.com/article.cfm?DocID=1350
http://campus.acm.org/public/pressroom/press_releases/3_2006/newell.cfm
3/21 – The description of Project #3 is now available.
3/20b – Check out the Job & Internship Fair at KU Wednesday:
http://www.kutztown.edu/admin/careers/index.asp
http://www.kutztown.edu/admin/careers/pdf/SummerFair06Employers.pdf
3/20 – MEGA ALERT!!!!
There are two different spellings of broad and flat - the one in the rules "broad&flat" and the other in the prompts "broadandflat". Please change the one or the other. I apologize for the resulting agony. I will change the files right after class this afternoon.
3/8 – In preparation for Thursday's class please read Chapters 2, 3 & 4 of the textbook.
3/7 – A website of interest: http://www.bdi.com/content/sec.php?section=BigDog
3/6 – It has become necessary to re-schedule Test #2 for April 4th. I apologize if this causes you
an inconvenience.
3/2b – Link to introduction of robot mapping problem.
3/2 – Another venue for entering into discussion:
St. Joe's Student Research Symposium
2/28 – The software package we would like to run for Project #3 is called Player/Stage. One of your classmates
pointed out that there is a Linux simulator called Ubuntu which appears to be able to handle P/S. These are all avenues under investigation. If you get anything of interest on these issues, please let me know.
2/24 – Newly posted: Answers to Test #1, Run of Coding Examples & Show Lisp Potpourri.
Also, recall that a sample run of BBESS is found on the Detailed Algorithm page.
2/21 – It would also be good to study the Lisp Potpourri which has just now been posted. There
is a lot of information useful for completing Project #2.
2/20 – In preparation for Thursday's class
1. Please do the Coding Exercise, which gives many examples useful for BBESS.
2. Look over the template for BBESS functions. This contains every function required to complete Project #2.
Both of these pages can be accessed from the main BBESS page.
2/16 – You can submit answers to EC2 -> EC4 until 3 pm Friday. Email your answers to me by
then. For EC2 & EC3 include a dribble file with a run that clearly demonstrates that your answer is correct.
An interesting article: http://www.scimag.com/ShowPR.aspx?PUBCODE=030&ACCT=3000000100&ISSUE=0307&RELTYPE=PR&PRODCODE=00000000&PRODLETT=D
2/13 – In preparation for Tuesday's class, as you look over the BBESS website pay particular attention
to the Overview & Design, Inferencing Algorithm, and the Detailed Algorithm. Notice that the latter contains some sample code and a sample run of BBESS with the PIES rules.
Also, tests from previous semesters have been posted.
2/8 – In preparation for Thursday's class, please look over the BBESS website and read pages 287-295 of our text. Also, please read the wikipedia material on expert systems and backward chaining.
2/7 – In preparation for Test #1, please look over Lisp Self Tests One & Two and the A.I. History/Theory Self Test.
2/2 – As we begin our study of key A.I. concepts, please look over these articles on software agents and the history of A.I.
1/31c – The answers to the Keys to Lisp have been posted.
1/31b – One of your classmates informed that the links on the Keys to Lisp page are now working. I tried them
and indeed they do work. Probably it is an on again, off again type of page. In the meantime, the page we looked at in class gives a very brief overview of some of the important Lisp functions & forms.
http://www.cs.uiowa.edu/~luke/xls/tutorial/techreport/node87.html
1/31 – In preparation for Tuesday's class, please study and work on: Keys to Lisp One and the Lisp Self Tests.
1/30 – Here is a better link to Steele's Lisp book: http://www.supelec.fr/docs/cltl/clm/node1.html
As we cover key topics in Lisp I will give you links to relevant sections of this book.
1/26c – Apparently Guy Steele's Lisp book can be accessed online at:
http://www.cs.cmu.edu/Groups/AI/html/cltl/cltl2.html
The index does not seem to work and I have found navigation a bit difficult. As I get the hang of it, I will send you information on it.
1/26b – The case by case analysis that we did in class has now been posted. Notice the recommendations at
the bottom of the page and the recommended order. Also, one additional function [subset] was added to the assignment.
1/26 – The obvious problem with our analysis of the function "clean" is that the test should be done on the rest
of the set, not on the recursive call. I.e., the test should read (member (first set) (rest set)). I will post the complete analysis of this and the other functions we discussed in class. Watch for it under announcements.
Also, the due date for Project #1 has been moved back a bit.
1/24 – Interested in an internship in Washington, DC? Check this out.
1/23 – If you are having trouble accessing Clisp on the Unix machine, try adding the entry below to the "set path
=" section of your .login file:
/usr/local/bin/clisp/bin
1/19 – If at some point you want to get really serious about Lisp, here are some good books:
http://www.amazon.com/gp/search/104-9143406-2283936?search-alias=aps&keywords=Lisp
http://www.cse.buffalo.edu/pub/WWW/faculty/shapiro/Commonlisp/
1/19b – I just now found two errors in Exercise Set One, both at the very end of the exercise. Here is how the last 5 lines should read:
(defun promptt ()
(format t "~%~%enter your first name~%")
(read))
(setf x (promptt))
x
There was a missing double quote mark at the end of line 2; and there was missing a set of parentheses around the word promptt in line 4.
I have corrected those in the exercise set.
1/18a – To prepare for Thursday's class, read the first six Lisp lecture notes.
1/18b – Some notes regarding Lisp:
1. To exit Lisp, type (quit) – and don't forget the parentheses
2. If an error occurs while running Lisp, it puts you into the debugger.
To exit the debugger type :a – notice that is TWO characters: colon, then the letter 'a'
3. To get your own copy of Lisp check this page: http://faculty.kutztown.edu/rieksts/447/learnlisp/sources.html
4. CLisp FAQs: http://clisp.cons.org/impnotes/faq.html
5. CLisp minimanual for Unix: http://clisp.cons.org/impnotes/clisp.html
6. Main CLisp page: http://clisp.cons.org/
1/18c – To get the most out of the HW assignment (Exercise sets One and Two), I recommend saving the Lisp session for later study. This can be done using the Lisp (dribble '<file-name>) function.
1/17 – Welcome to class!