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.

            AlgC-1

            AlgC-2

 

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.ascribe.org/cgi-bin/behold.pl?ascribeid=20060316.141612&time=16%2026%20PST&year=2006&public=1

 

http://newswire.ascribe.org/cgi-bin/behold.pl?ascribeid=20060316.141511&time=16%2010%20PST&year=2006&public=0

 

http://www.computerworld.com/hardwaretopics/hardware/story/0,10801,109580,00.html

 

http://www.sci-tech-today.com/news/Talking-Computers-Around-the-Corner/story.xhtml?story_id=033003ON4PO9

 

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

        http://www.sju.edu/srs/

 

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.amazon.com/gp/search/ref=nb_ss_gw/104-9143406-2283936?url=search-alias%3Daps&field-keywords=Common+Lispcraft&Go.x=0&Go.y=0&Go=Go

            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!