AI Magazine Volume 27 Number 1 (2006) (© AAAI) Articles Launching into AI’s October Sky with Robotics and Lisp

Frank Klassner

■ Robotics projects coupled with agent-oriented 1960s. Look at what today’s undergraduates are trends in artificial intelligence education have the seeing and hearing about AI in popular culture. potential to make introductory AI courses at liberal Besides the popularity of the AI-inspired fiction arts schools the gateway for a large new generation in the movies I, Robot and A.I., consider the of AI practitioners. However, this vision’s achieve- highly publicized success of the Mars rovers ment requires programming libraries and low-cost Spirit and Opportunity, the ESPN coverage of the platforms that are readily accessible to undergrad- uates and easily maintainable by instructors at sites DARPA autonomous vehicle Grand Challenge, with few dedicated resources. This article presents the lust among gamers after cleverer computer and evaluates one contribution toward imple- opponents, and the prevalence of word proces- menting this vision: the RCXLisp library. The li- sor speech-recognition systems. Students are brary was designed to support programming of the not just hearing about AI applications—they Mindstorms platform in AI courses with the are experiencing them more directly than did goal of using introductory robotics to motivate un- the students in October Sky gazing up at Sput- dergraduates’ understanding of AI concepts within nik’s starlike dot. Today’s college and high the agent-design paradigm. The library’s evalua- school students can evaluate AI applications tion reflects four years of student feedback on its use in a liberal-arts AI course whose audience cov- firsthand (for example, in games, robotic vacu- ers a wide variety of majors. To help establish a um cleaners, and intelligent search engines). context for judging RCXLisp’s effectiveness this ar- More importantly for AI, the immediacy of ticle also provides a sketch of the Mindstorms- their experience often makes them feel they based laboratory in which the library is used. could replicate or even improve the applica- tions’ capabilities—if only they understood the AI theory behind the application. And this situation definitely is enticing stu- n the movie October Sky, a group of high dents into trying out introductory AI courses at school students become inspired to learn liberal arts colleges. The difficulty for instruc- Ihow to build high-altitude rockets after tors at such schools is retaining these students’ watching Sputnik glide across the night sky interest in the field after their first exposure to soon after it was launched in October 1957. To- formal AI. In many smaller schools’ computer day AI should be poised to capture students’ in- science departments there is at most one facul- terest and imaginations in the same way that ty member with AI training, usually with few movie showed one application in physics and dedicated resources. Instructors from such astronomy capturing them in the 1950s and schools have attested at AAAI and SIGCSE sym-

Copyright © 2006, American Association for Artificial Intelligence. All rights reserved. 0738-4602-2006 / $2.00 SPRING 2006 51 Articles

posia that they must tread carefully between a ficiencies can supply partial source code for AI breadth-first survey style that downplays full systems (like planners or search algorithms) for system implementation experience and a students to complete. Those who want to en- depth-first concentration on subfields that courage students’ deeper understanding of a might not directly relate to popular applica- topic through attention on “knob-turning” ex- tions without exorbitant software or hardware periments (Cohen 1995) can supply completed investments. A heavily unbalanced course, in source code sets from the same corpus. either direction, can leave undergraduates with All three trends have strongly influenced the unrealistic (or worse—nonexistent) views of AI curriculum at Villanova University. In the how real-world AI systems can be designed and fall of 1997 the introduction to AI course CSC implemented to meet real-world performance 4500 was reorganized around the concept of goals. agent-oriented design. This approach was aug- Fortunately, three trends are helping to mented in the fall of 1999, offering with team- maintain the balance that AI education needs based (Klassner 2002) pro- for inspiring students from smaller schools. jects in order to have students explore the The first is the growth of the intelligent agent relationships among hardware, environment, design framework (Russell and Norvig 2003) and software organization in agent design. that emphasizes study of the limits and capa- Since the spring 2001 course we have used the bilities of different AI techniques in producing RCXLisp library developed at Villanova for pro- actions appropriate to an agent’s environment. gramming Mindstorms in Common Lisp. This Because it stresses identification of the weak- article describes the RCXLisp library with re- nesses as well as the strengths of these tech- spect to these trends, focusing on its develop- niques, this framework also naturally encour- ment, its uses in CSC 4500, and student feed- ages exploration of how to integrate two or back on both the course and its library. To help more AI techniques (as might be covered in a the reader evaluate RCXLisp’s effectiveness, more breadth-first oriented course) into hybrid this article also provides a sketch of the Mind- systems so as to mitigate their individual weak- storms-based laboratory in which the library is nesses. used. The second trend is the increasing availabil- ity of low-cost robotics platforms1 that can play the same motivating role in AI education that Choosing Mindstorms and Lisp model rockets and toy telescopes did for as- The CSC 4500 course is an elective with no for- tronomy and physics education in the past mal programming prerequisites. Computer sci- century. Pure software-oriented projects such as ence majors typically take the course in their gaming agents or simulations can indeed moti- fourth year, by which time most of these stu- vate students, but there is no denying the in- dents have taken a programming languages creased registration levels seen in elective AI course that introduces them to Lisp. The course courses the first time a new robot-development is also open to third- and fourth-year cognitive component is announced for them. science concentrators and computer engineer- The third trend is vital to the success of the ing majors, who generally have no program- second. It is the growing body of open-source ming experience in Lisp and as little as one se- software systems and programming tools for mester of introductory programming in Java robot kits that allows students with limited re- from their first year. The cognitive science stu- sources to move quickly from learning about AI dents hail from a variety of majors: biology, po- techniques in the abstract to actually building litical science, and physics, to name a few. artifacts with them (Yuasa 2003).2 It is not The course uses Common Lisp in its pro- enough to give students a robot platform that gramming projects for two reasons. The first is requires a whole semester to learn how to pro- to leverage Lisp’s support for rapid prototyping gram. After installing the platform’s program- against the large body of open-source AI Lisp ming tools, students should be able to get past systems. The second is to reinforce computer “Hello Robot” trials quickly in order to grapple science majors’ Lisp experience from their pro- with moderately complex programs with con- gramming languages course, thereby offering fidence-boosting results. From a small-college students another option besides /C++ for instructors’ perspective, the most effective ele- meeting the department goal that graduates be ments in this software collection allow them to familiar with at least one language beyond Ja- extend the depth of their courses’ coverage in va. various ways. Those instructors who want to Once the decision was made in 1997 to orga- encourage students’ deeper understanding of a nize CSC 4500 around the agent paradigm, as- topic through attention to implementation ef- signments using robotic agent simulations

52 AI MAGAZINE Articles were tried but did not generate significant en- thusiasm among students. Based on student feedback and positive reports on robots’ use in Infrared (IR) Tower the computer science education literature (Beer, Chiel, and Drushel 1999; Kumar and Effector Meeden 1998; Mazur and Kuhrt 1997; and Ports Stein 1996), the decision was made to try using LCD physical robots in the course. The choice of ro- Display bot platform was based on four criteria: pro- gramming environment, cost, flexibility, and “student comfort level.” In 1999 there was no low-cost robot kit that supported Common Lisp programming, so this criterion played a negligible role in the decision. A Mindstorms kit with 750 construction pieces, sensors, and programmable hardware cost approximately Sensor US$200. This was one quarter the cost of some IR Port Handy Board–based robot kits and one tenth Ports the cost of an ActivMedia-based robot kit—two of the other platforms considered. In the time since this evaluation was conducted Lego has Figure 1. The Lego Mindstorms Infrared released a “RoboChallenge” kit for US$150 that Transceiver Tower (Left) and the RCX Unit (Right). has fewer construction pieces (250) for courses where a sophisticated robot chassis is unneces- sary. In terms of flexibility the Mindstorms kit guages distracted students from learning the AI supports the creation of effectors such as arms, concepts of the course. We also found the lan- grippers, legs, tread casings, and so on, often guage had little support for coordinating teams not available in other basic kits. The Handy of robots, though this problem is due more to Board platform, however, was similarly exten- NQC’s dependence on Lego’s firmware than to sible. The final decision hinged on the “student any design flaws in NQC itself. comfort level” criterion. Many students had played with Lego as children and felt more fa- Extending Mindstorms miliar with those kits. The Mindstorms plat- form’s reusable snap-together sensors and ef- for a Lisp Environment fectors allowed computer science majors to Against this historical background the decision focus more quickly on programming issues. Fi- was made to develop the Common Lisp library nally, compared with an uncushioned Handy RCXLisp for programming the Mindstorms Board, Mindstorms was judged to be more RCX microcontroller. The RCX is the program- durable in the face of inevitable drops and mable yellow brick at the heart of the Lego bumps in a computer lab setting. Mindstorms kit, shown on the right in figure 1. At the time of Mindstorms’ adoption, there The RCX has a 16-megahertz central process- was no Common Lisp environment for Mind- ing unit (CPU) (the Hitachi H8/3292 microcon- storms, and LeJOS—a popular Java environ- troller) and 32 kilobytes of random-access ment for Mindstorms—was still under develop- memory (RAM), and it houses an infrared (IR) ment and not complete enough for classroom transmitter/receiver for sending and receiving use. There was a Scheme compiler targeted to data and commands from a desktop PC or from Mindstorms’ firmware, but it was a Unix-based other RCXs. The IR transceiver has a range of utility not integrated into any Lisp program- 15–25 feet, depending on lighting conditions. ming environment. This situation led to the The RCX is powered by six AA batteries. The decision to use (NQC) for team- platform supports both serial-port and univer- based robotics projects and Common Lisp for sal serial bus (USB) IR towers for broadcasting separate course projects in search, planning, messages and software to the RCX from a desk- and machine learning. NQC was judged to top (a USB IR tower is shown on the left in fig- have a syntax that would be recognizable by ure 1). RCX units have three input (sensor) most students coming into CSC 4500, yet ports, three effector ports, and a five-character would hide certain complexities like pointers liquid crystal display (LCD) display. Lego mar- and dynamic allocation from nonmajors. kets touch, light, temperature, and axle-rota- Student surveys, however, indicated that the tion sensors that can be connected to the RCX’s burden of working with two different lan- input ports; third-party vendors offer magnetic

SPRING 2006 53 Articles

have several teams of students in the same lab control their own robots without interference. It is also not possible for a single desktop appli- Control an RCX from a Common Lisp cation to coordinate several robots of a team program on a desktop computer. without a mechanism to address the robots’ RCXs individually. Create and compile RCXLisp programs for To address this communication shortcom- downloading to RCXs ìon t he fly,” ing, a firmware version named Mnet (for Mind- from within Common Lisp desktop storms networked) was developed at Villanova environments. University. Mnet replaces Lego’s standard firmware. It supports directed IR communica- Control more than one RCX from a single tions by extending the Lego protocol with MindStorms IR Tower simultaneously. source and target fields and by allowing each RCX and host desktop to set a 1-byte ID value Set up networks of RCXs that can for itself. Mnet firmware also allows an RCX to communicate with each other in a targeted restrict the RCXs from which it will accept mes- manner. sages. To support compatibility with other pro- gramming environments targeted to the RCX, Mnet recognizes the same byte-code set as the standard Lego firmware. Table 1. RCXLisp Features That Support Integration of Common-Lisp AI Mnet does not support garbage collection or Systems with the Mindstorms RCX. call stacks. This decision was made to speed up firmware development and to keep the firmware footprint reasonably small. Lest the compass sensors, ultrasonic distance sensors, lack of garbage collection seem too limiting for and infrared distance sensors. Motors, light- RCXLisp, it should be noted that LeJOS, too, emitting diodes (LEDs), and infrared emitters does not currently implement a garbage collec- can be attached to the effector ports. Lego also tor in an effort to keep the JVM footprint as offers a computer-tethered video camera for small as possible (Cohen 1995). Our RCX-based use with the RCX. lisp system, RCXLisp, developed atop this Mnet The 32 kilobytes of nonupgradeable RAM on firmware. the RCX represents a significant limitation for AI robotic agent projects involving schedulers, planners, or neural networks with large foot- RCXLisp Language Design prints. However, this can be mitigated by judi- The first goal of RCXLisp was to help AI stu- cious use of the system’s firmware. dents start quickly with designing basic soft- The Lego-supplied firmware models a primi- ware for controlling individual robots and ro- tive virtual machine with support for threading bot teams. It achieves this by augmenting the and 16-bit integer arithmetic. There is no call Common Lisp language with an application stack; programmers must watch for accidental program interface (API) of primitive functions unbounded recursion problems. There is also that represent a programmer’s, rather than an no dynamic allocation support. A key feature engineer’s, view of a robot and its communica- of the firmware is that it supports two styles of tion abilities. It adheres as closely as the Mnet program control: on-board programming and firmware permits to the Common Lisp specifi- remote-control programming. In the first style cation of the second edition of Steele’s Com- the robot’s behavior depends only on the pro- mon Lisp: The Language (1990). gram loaded into its memory. In the second The second goal of RCXLisp was to support style a control program on a desktop computer integration of Mindstorms with sophisticated broadcasts individual instructions to the robot AI systems. Since such integration will natural- for immediate execution. ly produce distributed systems, this goal in- Thus, it could be possible for large AI systems cluded the ability to coordinate processes on (with accompanying needs for call stack and the RCX with processes within a Lisp desktop dynamic allocation support) to be used with environment. Table 1 summarizes the features Mindstorms as long as they are modified to that RCXLisp provides in support of this goal. control RCX robots remotely from a desktop The RCXLisp libraries are currently support- computer. Unfortunately, Lego firmware uses a ed in the LispWorks environments on both broadcast protocol for sending control mes- Windows (98 through XP) and Mac OS X. It is sages to RCXs. It does not support targeted also available for use on Digitool’s MCL for the message passing. It therefore is not possible to Mac platform, but currently only for Mac OS 9.

54 AI MAGAZINE Articles

A version for Allegro (Franz) is under develop- effector-state (for controlling motors), set-sensor- ment. state (for configuring input types), and sensor RCXLisp has both a remote and local com- (for accessing the current reading from a sensor ponent. The first is remote RCXLisp, a collec- input). The testing function uses alivep to deter- tion of macros, variables, and functions for re- mine whether the RCX is in range and re- motely controlling RCX units from a desktop. sponding. It is important to note for later dis- The second is local RCXLisp, a subset of Com- cussion that the language includes a var mon Lisp that can be cross-compiled to run on function that asynchronously queries for the both Lego and Mnet firmware for on-board value stored in one of the RCX’s 32 globally-ac- control of the unit. cessible registers. The next two subsections detail these two All remote RCXLisp functions take an op- parts of RCXLisp, with the aim of showing the tional stream argument (for example, “r” in tight integration among the Lisp environment, full-speed-ahead). One can forego repetitious the RCX, and the desktop control processes the typing of the stream argument, with the using- library makes possible. The example code sup- rcx macro as in figure 3 to define a default ports the claim that RCXLisp facilitates linking stream for enclosed RCXLisp functions. This AI systems with Mindstorms robots. The dis- macro is closely modeled on Common Lisp’s cussion occasionally makes comparisons be- using-slots macro for object-oriented program- tween RCXLisp functions and Common Lisp ming. It also serves to define a symbolic envi- functions of the same name. For clarity’s sake ronment in which the desktop acts as a director all RCXLisp functions will appear in italics. telling some particular RCX what to do next. Programs that are intended to be executed Remote RCXLisp on an RCX are first compiled within the The remote RCXLisp library provides with- RCXLisp desktop environment to Mnet byte open-com-port and with-open-rcx-stream macros code and then downloaded through the IR to set up communication environments for tower to the RCX. This is accomplished contacting RCX units. These macros are mod- through the rcx-compile-and-download utility eled closely on Common Lisp’s with-open- function in remote RCXLisp. The Mnet stream macro. With-open-com-port specifies the firmware (and standard Lego firmware) is also communication port (serial or USB) for con- loaded from the desktop Lisp environment tacting an RCX, and with-open-rcx-stream de- with the download-firmware utility function in fines the data stream through a port for a spe- remote RCXLisp. cific RCX unit. The macros offer users several It is important to note that these functions arguments to modify low-level port character- are native to the Lisp environment. That is, no istics such as data transmission rate, timeout non-Lisp mechanism is needed for these ac- interval, and retry limit. This flexibility is im- tions. Both LeJOS3 and Wick, Klipsch, and portant especially when ambient lighting and Wagner’s Lego/Scheme compiler4 require a sep- other environmental conditions change. The arate command-line system program to down- code in figure 2 shows how these macros are load compiled code or firmware into the RCX. used and provides an example of the functions The compiler in rcx-compile-and-download is im- that can be invoked to control an RCX from plemented in Lisp. It is this feature that allows within the macros’ communication environ- RCXLisp to interface cleanly with other AI sys- ment. tems written in Common Lisp. The rcx-compile- In keeping with RCXLisp’s design goal of and-download utility supports on-the-fly compi- helping programmers focus on programming lation of both dynamically generated RCXLisp rather than lower-level communication issues, forms (by a planner, for example) and static the language contains a tell-rcx macro that forms in prewritten files for execution on a ro- combines the two port and stream macros’ ar- bot. gument lists and builds in flexible default val- XS (Yuasa 2003) is a Scheme interpreter for ues for port settings loadable from a site config- Mindstorms developed after RCXLisp. It too is uration file. This level of abstraction helps supported by native libraries for a Scheme desk- beginning Lispers new to macros and stream top environment. The difference between re- management. mote RCXLisp and XS is that XS sets up the Ordinarily one would type the functions in desktop as a listener and the RCX as the evalu- figure 2 into an editor and then load them into ator, while remote RCXLisp evaluates all forms a desktop environment for invocation at the on the desktop and sends byte codes to the Lisp listener prompt as (testing). The full-speed- RCX. XS enjoys the advantages over RCXLisp ahead example contains the following remote of a garbage collector and full call stack support RCXLisp functions for controlling an RCX: set- on the RCX but requires higher bandwidth in

SPRING 2006 55 Articles

(DEFUN full-speed-ahead (r sdir) “Thiswill makethe rcx instream R go at speed S indirection DIR until touch sensor on its ‘2’ port returns 1.” (LET ((result0)) (set-effector-state ‘(:A :B :C) :power :off r) ;in case things are in an inconsistent state, ;turn everything off first (set-effector-state ‘(:A :C) :speed s r) (set-effector-state ‘(:A :C) :direction dir r) ; dir is eq to :forward, :backward, or :toggle ;nomotion will occur until the ;next call toset-effector-state (set-sensor-state 2 :type :touch :mode :boolean r) (set-effector-state ‘(:A :C) :power :on r) (LOOP ;this loop will repeat forever until sensor 2 returns a 1 (SETF result(sensor 2 r)) (WHEN (AND (NUMBERP result) ;needed to keep = from causing error if ;sensor function returns nil due to timeout. (= result1)) (RETURN))) (set-effector-state ‘(:A :C) :power :float r))))

(DEFUN testing () (with-open-com-port(port:LEGO-USB-TOWER) (with-open-rcx-stream (rcx10 port:timeout-interval80:rcx-unit10) ;increase/decreaseserialtimeout value of 80 ms depending on ;environmental factors like ambient light. (WHEN (alivep rcx10) (full-speed-ahead rcx10 5 :forward)))))

Figure 2. Sample Remote RCXLisp Code Illustrating Sensor-Based Motor Control.

communication since remote control is some of the functional nature of Common achieved through the transmission of complete Lisp. ASCII expressions to the RCX for evaluation by For consistency with remote RCXLisp, and the on-board XS interpreter. to simplify the transfer of desktop Lisp code to the RCX, local RCXLisp implements all of the Local RCXLisp RCX control functions in remote RCXLisp. In Local RCXLisp is a subset of Common Lisp the local version, however, control functions with a few nonstandard additions that can be like set-sensor-state do not have an optional fi- compiled and downloaded to run au- nal stream argument. It is assumed that the tonomously on an RCX. As with remote code will only be executed on the RCX unit it- RCXLisp, the design goal was to follow Steele’s self. If an RCX needs to control the behavior of standard (Steele 1990) as closely as possible and another RCX unit, it can do so through integer- to maintain compatibility with both Lego valued messages for the other RCX to interpret firmware and the Mnet extended firmware. Yet rather than by outright code transfer. because neither firmware supports indirect ad- Figure 4 shows how the “full-speed-ahead” dressing or call stacks, local RCXLisp still lacks function in figure 2 would be expressed in local

56 AI MAGAZINE Articles

(DEFUN full-speed-ahead (r sdir) “Thiswill makethe rcx instream R go at speed S indirection DIR until touch sensor on its ‘2’ port returns 1.” (LET ((result0)) (using-rcx r (set-effector-state ‘(:A :B :C) :power :off) (set-effector-state ‘(:A :C) :speed s ) (set-effector-state ‘(:A :C) :direction dir ) (set-sensor-state 2 :type :touch :mode :boolean) (set-effector-state ‘(:A :C) :power :on ) (LOOP (SETF result(sensor 2)) (WHEN (AND (NUMBERP result) (= result1)) (RETURN))) (set-effector-state ‘(:A :C) :power :float ))))

Figure 3. Cleaning up Remote RCSLisp Code with the using-rcx Macro.

RCXLisp for execution on board a robot. Note the complete semantics of Common Lisp’s that threads do not accept input arguments in DEFMACRO form. RCXLisp also borrows from RCXLisp yet, so parameters must be made into Brooks’s much earlier L language (Brooks 1993) global variables. Figure 5 demonstrates how de- a desire for simplicity and memory conserva- fregister can set variables’ values from a desk- tion that is necessary for squeezing as much top program. programming as possible into the small mem- Local RCXLisp supports analogs to a core ories available on most inexpensive robot plat- subset of Common Lisp control expressions, forms even today. Boolean operators, and data types, along with The language provides two special-purpose 16-bit signed integer arithmetic including the forms that are neither in the remote RCXLisp most commonly used operators. For example, language nor the Common Lisp language. The just as Common Lisp allows one to use compar- first form is defthread, which is used to define ison invocations such as “(< 2 x 6)” to test for threads to run on an RCX unit. Calling this when the value of x is between 2 and 6, so too form nonstandard, however, is less of an indict- does local RCXLisp. It provides a limited ver- ment of local RCXLisp than of the Common sion of the Common Lisp RANDOM function, al- Lisp specification itself since as of 2005 little lowing on-board experimentation with proba- progress has been made in formalizing thread- bilistic control algorithms. ing in the language! The second form, defregis- Local RCXLisp does not support floating- ter, allows a programmer to tie a symbolic vari- point arithmetic. The ability to define new key- able name to a given register so that a remote words is also lacking, but constants may be de- RCXLisp program on a desktop using var to clared with defconstant and global variables can query a register can be guaranteed to access the be declared with defvar. Setq provides value-as- intended variable value on an RCX. signment, but there is currently no analog in Figure 5 summarizes and illustrates many of local RCXLisp to the Common Lisp SETF the features just described. The program beeps macro. whenever the RCX is carried too close to a re- Since general function calls are not support- flective object. This code makes the RCX IR ed, local RCXLisp does not have an analog to port work together with a light sensor attached the Common Lisp DEFUN form. In an effort to at port 1 in order to implement a simple prox- support some kind of code abstraction, the imity sensor. The signaler thread repeatedly language design borrows inspiration from sends out an arbitrary integer message through NQC’s emphasis on macros for code abstrac- the IR port. When the front of the RCX gets tion and includes a defmacro form that follows close to an obstacle, the IR port’s signal reflects

SPRING 2006 57 Articles

Setting up a Mindstorms Robotics Lab (defvar*dir* :forward) (defvar*s* 5) The high school student protagonists in Octo- (defthread (full-speed-ahead :primaryt)() ber Sky required more than just reliable fuel and (set-effector-state ‘(:A :B :C) :power :off) construction materials to achieve their goal of (set-effector-state ‘(:A :C) :speed *s*) a high-altitude rocket; they needed a testing (set-effector-state ‘(:A :C) :direction *dir*) field. Besides a control system like RCXLisp, AI (set-sensor-state 2 :type :touch :mode :boolean) students need appropriate facilities to design (set-effector-state ‘(:A :C) :power :on) and test their robot agents. The CSC 4500 (loop course has a 15 by 30 foot computer lab dedi- (when (= (sensor 2) 1) cated for its projects during a semester, but, as (return))) will be seen from the following description, the (set-effector-state ‘(:A :C) :power :float)) room’s setup can be duplicated without too much overhead even at schools where space is at a premium and labs must be shared among courses. The course uses team-based active-learning Figure 4. Local RCXLisp Code That Performs the Same robotics projects. Students are grouped in Actions as “full-speed-ahead” in Figure 3. threes or fours, with each team having at least one nonmajor. Accordingly, the lab has four PCs—one per team—for programming robots. Each PC has an IR tower suspended from the (defconstant *receiver* 1) ceiling not only so that its signal will be in (defregister 4 *LIMIT* 16) range of the group’s RCXs on the floor but also so that the likelihood of someone accidentally (defthread (signaller)() blocking the IR signal is reduced. The room’s (loop lighting is under the complete control of stu- (send-message 78) dents, since sometimes bright sunlight or fluo- (sleep 25) ;; leave IR port silent for shorttime rescent lighting can interfere with the IR sig- ;; in case desktop is sending message. nals used in the distributed control systems )) supported by RCXLisp. For some projects, it is (defthread (alpha:primaryt) () useful to have a navigational grid on the floor, (let ((diff1 0) (diff2 0)) so a temporary grid of electrical tape marking (set-sensor-state *receiver* :type :light:mode:raw) out the 1–square-foot tiles on a portion of the (setq diff1 (abs (- (sensor*receiver*)(sensor*receiver*)))) room is put down at the beginning of each se- (setq diff2 (abs (- (sensor*receiver*)(sensor*receiver*)))) mester CSC 4500 is offered. Figure 7 gives a pic- (start-rcx-thread signaller) ture of this setup’s implementation. Note the (loop IR towers at upper right suspended from the (when (>= (abs (- diff1 diff2)) *LIMIT*) ceiling and facing down for maximum range (play-tone 500 1)) for remote control projects. The entire room is (setq diff1 diff2) 15 by 30 feet and accommodates four teams of (setq diff2 (abs (- (sensor*receiver*) four students. (sensor*receiver*))))))) Kits are prepared for the teams to use on all projects throughout the semester. Table 2 lists the equipment in a typical kit. Figure 5. Multithreaded Local RCXLisp Sample Code. The robotics laboratory also has a few extra pieces of equipment: two Hitechnic ultrasonic back, and the light sensor picks this echo up. As distance sensors, three Lego vision command the reflections increase in intensity, the light cameras, and ten Techno-stuff limit switches sensor’s value jumps more wildly. The value of for special projects as they arise. Hitechnic5 is a *LIMIT* may need to be adjusted for environ- contractor firm that manufactures Lego-com- mental conditions or the light sensor’s sensitiv- patible sensors. Techno-stuff’s6 limit switches ity. It is declared as a register variable so that a allow one to link a touch sensor directly to a remote RCXLisp program can modify it on the motor’s power connection. In this way the fly. Figure 6 shows the remote RCXLisp code for touch sensor can detect when a motor-driven achieving this. The :raw mode setting for the arm, wheel, and so on, has reached some limit light sensor means that the sensor returns un- of movement and stop the motor without be- interpreted 10-bit sensor values. ing attached to one of the RCX’s three input

58 AI MAGAZINE Articles ports. Thus the limit switch is an excellent re- source for increasing the RCX’s sensory band- width. ;;;;Example 1 Because of the course’s emphasis on pro- (tell-rcx (38 :port:LEGO-USB-TOWER:retries 3) gramming teams of agents, the cost for one (SETF (var 4) 19)) team’s kit (with three RCXs) is approximately ;;;;Example 2 US$900, and Lego now has piece sets available (with-open-com-port(p:LEGO-USB-TOWER) that could reduce the cost to US$750. Curricula (with-open-rcx-stream(sp:rcx-unit38 :retries 3) focusing on design of one robot per student (using-rcx s team could use one Mindstorms set (with one (SETF (var 4) 19)))) extra light sensor, one extra touch sensor, one extra motor, and one axle-rotation sensor) per student team for approximately US$300.

Figure 6. Remote RCXLisp Code Allowing a Desktop to Update the Contents Course Project Descriptions of Register 4 on RCX with Unit ID Number of 38. Since 2000, RCXLisp has been used to imple- ment the following projects in the CSC 4500 course’s laboratory. Typically three or four of the projects are assigned and completed in a 3 Mindstorms Robotic Invention Systems packages given semester. Some are used to help students 3 Lego light sensors beyond the three in the develop skills for the course’s final robot com- Mindstorms Systems packages petition (see the “Capture the Balls Contest” 3 Lego touch sensors beyond the six in the section). Although the majority are symbolic Mindstorms Systems packages AI projects, there is nothing in the RCXLisp li- 3 Lego motors beyond the six in the brary that would prevent it from supporting Mindstorms Systems packages numeric-level AI projects such as neural net- 2 Lego axle-rotation sensors works. 1 Hitechnic magnetic compass sensor 18 rechargeable batteries Simple-Reflex Robot Design (and 1 large lockable toolbox to hold all of the above as RCXLisp Orientation) well as a partially completed robot (for an idea of This 10-day project is always assigned to show size, see the box in the middle of the floor or the students how robots with simple stimulus-re- black box on the grid in figure 7). sponse rules and no model of the environment can achieve effective behaviors as well as demonstrate emergent behavior. Students de- sign a robot based on a tread-wheeled Table 2. Equipment in a CSC 4500 Kit. “Pathfinder” model described in the Mind- storms user manual. Students start with this ba- RCXLisp and then remote RCXLisp to gain an sic design in order to reduce time spent on dis- tracting mechanical engineering issues, but understanding of the reaction times for teth- they are free to mount sensors on the chassis as ered and untethered operation. needed. Robot Odometry Students first build a robot that uses a com- pass sensor to maintain a given bearing: team 1 This two-week project’s goal is to help students goes north, team 2 goes south, and so on. They understand the major factors that can intro- next add code to monitor, using data from duce error into a robot’s internal representation mounted light sensors, whether the robot was of its current location in the world—an impor- about to roll over a dark tile on the floor. In tant issue in any navigation process. It also in- such cases the robot has to back up and/or turn troduces them to the importance of maintain- to avoid the obstacle for a brief time, after ing a representation of state—in particular, the which it resumes its bearing. In programming robot’s position. efforts where the threads for the two behaviors Each team designs and builds a robot that are well-balanced (that is, avoidance turns are will measure the perimeter of a convex black kept short and forward motion on the required shape on a light background on the floor. These bearing is steadily maintained), students ob- shapes are printed on reusable laminated sheets serve the emergent behavior of a robot per- (see figure 8). The reported measurement (over forming edge-following along dark tiles. Stu- 200 cm) should be accurate to within plus or dents implement this project first using local minus 3 cm and should be obtained within 90

SPRING 2006 59 Articles

Figure 7. Robotics Lab at Villanova.

seconds. The project permits use of dead reck- and Common Lisp search program to solve the oning (for example teams used one rotation eight-puzzle on a desktop. The team first tries a sensor to measure the distance being traversed search formulation that defines four opera- and a second one to estimate when the robot’s tors—”move up,” “move down,” “move left,” orientation had completed one rotation and “move right”—for each piece in the puzzle. around its body’s axis) and landmark-based They find that the formulation can lead to a navigation (for example, some teams used a search algorithm with a branching factor of 32. second RCX as a beacon to tell the robot when The team then develops a set of four operators it had reached the point at which it had start- that involve conceptually moving the “space” ed) techniques. Although all teams generally up, down, left, or right, rather than 32 opera- succeed in this project, many find the time lim- tors for moving each of the numbered tiles up, it challenging in light of the accuracy con- down, left, or right. The students observe that straint. this design decision dramatically reduces the branching factor of the search algorithm (4 ver- Eight-puzzle Solver sus 32), leading to a faster execution time for This two-week project has the goal of showing the game-solver. students that data abstractions that facilitate In the second stage students write a remote search can produce solution representations RCXLisp program for a Mindstorms robotic that are not immediately translated into con- arm mechanism that moves pieces in an eight- trol programs for hardware. puzzle according to the solution developed by The project has two stages. In the first stage stage 1’s programming. In this stage students students develop a knowledge representation find that the search space reformulation trick

60 AI MAGAZINE Articles ultimately costs them in the complexity of their second program as it spends time translat- ing the “move space up/down/left/right” oper- ator list to a list of “move tile at (2,2) to (2,1)” commands. Search-Based Path Planning In this three-week project students design a Common Lisp search program to solve the nav- igation problem of having a robot traverse a field of obstacles whose corners are defined by points in a plane while trying to minimize dis- tance traveled between its start point and its goal. Students then use remote RCXLisp to in- terface the search algorithm with a prebuilt ro- bot and have the robot follow the prescribed path. This project has been used many times in AI courses with graphical simulations. But when students see even the best-designed ro- bots incur too much location uncertainty using simple geometric dead reckoning, they gain a Figure 8. Example Shape Sheets for the better appreciation for the need to augment “Robot Odometry” Laboratory Project. planning with sensor-based localization and navigation techniques.

Decision-Tree Control Capture-the-Balls Contest In this project students run a prebuilt robot This project serves as a capstone that ties to- with light sensors and touch bumpers on a ran- gether skills students have developed through dom walk through a simple maze, recording the course. It also generates an exciting finish sensor readings when an obstacle is encoun- to the semester. The contest is based on the pa- tered. Although the Mindstorms RCX has only per by Beer, Chiel, and Drushel (1999), with three input ports, it is possible to multiplex up some adaptations to fit the RCX’s capabilities. to three touch sensors or three light sensors on Each student team designs and builds two ro- a single port. Thus a total of nine sensors can be bots, each no larger than 1 cubic foot, to com- arrayed on the robot. Students record the ro- pete against other teams’ robots in a 20-minute bot’s correct action (move forward, turn left, contest. Contestants play in a walled arena that turn right, or back up) for each situation (vec- has ranged from 64 square feet to 160 square tor of all sensors’ readings). They then develop feet in area (depending on what classrooms are a decision tree that tries to capture the essential available each year). When large classrooms are sensor readings for guiding the robot through available for the contest (that is, those that per- the maze. The decision tree is incorporated into mit a playing field larger than 120 square feet), either a remote RCXLisp program or a local student teams are allowed to field teams of RCXLisp program for evaluation and refine- three robots. ment. Each robot team has a 1-square-foot dark- Robotic Agent Planning colored goal area. All other portions of the playing field are light-colored. Black, white, In this individual independent-study project, a and yellow Ping-Pong balls are scattered student used a planner (Carver and Lesser 1993) throughout the field. Robots gather balls and to control a robot through remote RCXLisp. bring them back to their goal for points. Each Some plan primitives were precompiled, and yellow ball in a team’s goal earns five points; these local RCXLisp programs were loaded into white ones add one point; black balls subtract the robot for execution as each primitive action a point. A 1-foot-square grid of half-inch-thick completed. Other plan primitives included re- black tape lines the playing field. Figure 9 mote RCXLisp queries about the current state of shows one such contest layout. To aid in navi- the robot. This project has considered “Wum- gation, the walls’ corners have RCXs mounted pus World” scenarios thus far, but could be for- to bathe the immediate area in IR signals malized for a more intricate environment to uniquely identifying the region. Robots are per- provide students a chance to investigate both mitted to scatter or steal balls already in oppos- reactive and incremental planning. ing teams’ goal areas. They are also able to

SPRING 2006 61 Articles

Figure 9. 2003 Capture-the-Balls Competition Setup.

place balls in opposing teams’ goal areas. Ro- strategies over the years. Some have incorporat- bots are permitted to block opposing robots’ ed time-dependent approaches. For example, as movements physically. However, robots are not the contest progresses, robots generally push allowed to “park” closer than one foot from a balls toward the walls of the field; some teams goal area, and robots are not permitted to use therefore designed ball-scooping robots with behaviors that clearly would damage other ro- search patterns whose coverage regions ex- bots (for example, ramming or piercing). Com- panded probabilistically toward the walls petitions allow students to dangle IR towers whenever too few “scoops” occur. Some teams over the playing field for remote-control ap- have tried with varying degrees of success to proaches. combine elaborate planners on their control Teams used both local and remote RCXLisp desktop with very limited planners on board in the project. Student teams are encouraged to their robots for recovering from breakdowns in explore a variety of navigation techniques and remote-control IR communication that happen play strategies. Navigation strategies employed when robots’ RCXs lose line-of-sight contact in past competitions have included landmark- with the control desktop’s IR tower. based navigation using the grid lines, hill- When three-robot teams were permitted (on- climbing based on the strength of infrared bea- ly twice in the last five years), some student cons hung over a goal square, and, most teams have attempted to use distributed-agent recently, sonar-based particle filtering that used approaches whereby one of the robots is de- the playing field’s walls to aid in position esti- signed as an “information gatherer” that peri- mation. odically traverses the playing field to find Student teams have developed many play where concentrations of balls are located and

62 AI MAGAZINE Articles reports this information over IR transmissions to “ball gatherer” robots that react dynamically to the news. Because of the public attention the contest draws, students become invested in the compe- tition and try their best in designing their ro- bots and control code. However, there was a tendency during the first three competitions for student teams to focus less on programming general AI techniques into their contest entries and to rely more on “contest engineering” ap- proaches limited to reflexive agent designs. To reduce this tendency, since last year students are required to include in their final report a de- scription of how their design uses at least one AI technique discussed in class or adapted from Internet research.

Student Experience Reports The addition of robots with RCXLisp to CSC 4500 has had several noticeable impacts on stu- dents’ quality of experience in the course. Before 1999 the CSC 4500 course was offered once every two years, with enrollments rarely reaching the level of 10 students. Since the in- troduction of robots, demand for the course has necessitated annual offerings, with enroll- ments typically over 15 students. The only time this level was not achieved was in a semes- ter when there were five electives scheduled (usually there are only four electives scheduled) and the course was scheduled as an evening course—a time period avoided by most stu- dents. Under those circumstances, the total en- rollment was 8. Thus, one can argue that al- though a robotics element in AI courses is usually a strong interest generator, there are some factors that it will not overcome! Four course graduates have gone on to pursue grad- uate work in artificial intelligence areas (two Ph.D. candidates and two Master’s degree can- didates, one of whom is applying this year for admission to doctoral work in AI) since the ro- botic element was added. While it can be de- bated whether those students would have gone on to graduate AI work even without exposure to robotics projects, it is interesting to note that prior to the robot projects’ addition no course graduates had pursued graduate AI work. The robotics component has definitely added to department camaraderie. The Capture the Balls Contest has been widely publicized in the department, and each year some course graduates attend the following year’s competi- tion to regale current participants with tri- umphs and tragedies from the past. Figure 10. Synchro-Drive Chassis Design That Allows RCXs Although the RCX transceiver often picks up Mounted on Top to Face the Same Direction at All Times While the IR signals reflected from walls, students have Lower Wheels Turn on Their Own Axes.

SPRING 2006 63 Articles sometimes been frustrated in main- Since Common Lisp function declara- agent design as an organizing princi- taining wireless control of a robot tions are themselves merely formatted ple for the study of intelligent arti- when it turns its transceiver away linked lists, students can generate facts, the increasing availability of from its control desktop PC’s IR tower. plans as linked lists within a planner low-cost robotics platforms, and the To mitigate this problem (and the and then download the same data to growing number of accessible robot problem of having nonengineering the RCX as an immediately executable software libraries for undergraduates students spend too much time on form. are important trends in AI education. complex chassis design) the course Students have reported that debug- Each trend has had a significant posi- supplies teams with a prebuilt synchro ging local RCXLisp programs involves tive impact on student experience in drive chassis based on the Lego Mind- more effort than debugging remote Villanova’s CSC 4500 AI course be- storms Syncro Drive7 (see figure 10). RCXLisp programs within Common cause of the adoption of RCXLisp. This chassis design can keep an RCX Lisp environments. They usually re- The projects described in this article mounted on it pointed in the same di- sort to adding commands to a remote demonstrate that students in the AI rection since the base does not turn as RCXLisp program to play musical course have been able to use RCXLisp the wheel casings below it turn. Thus, tones or to light up LEDs in order to projects to explore the design of exam- the chassis can keep its RCX units debug program control flow problems. ple agents from every one of the class- aimed at an IR communication tower Another recurring challenge stu- es described in Russell and Norvig’s in- as the robot maneuvers on the floor. dents have noted is that the library telligent agent taxonomy (Russell and Regarding RCXLisp itself, several does not provide built-in support for Norvig 2003), with the exception of cognitive science concentrators and synchronized message passing either the utility-based agent class. This ex- engineers have commented on how between threads on the RCX or be- ception is due to the late coverage of they felt they could get past coding de- tween RCX threads and desktop the topic in the course. Our depart- tails faster in RCXLisp and Common threads. At the start of each course of- ment has recently added a course on Lisp than in Java because of those lan- fering, computer science majors are machine learning. With the move- guages’ lack of typing. The prominent encouraged to develop their own ment of that material from the AI use of RCXLisp in our department’s AI macros and functions for their team course to the new course, we expect to course has had the effect of raising stu- for these purposes so as to reinforce be able to start coverage of utility- dents’ interest in understanding how the process synchronization skills they based agents early enough in the AI to program in Lisp in our department’s typically learn in the second semester course to permit work on utility-based programming languages course. of their sophomore year. There is no robotic agents. Students have also commented on Common Lisp standard for process co- Combined with the low cost and the immediacy of working with RCXs ordination. Nevertheless, in an effort adaptability of Mindstorms, RCXLisp using the Common Lisp Listener: sim- to make RCXLisp more useful in a made it possible to add robotics-in- ply by invoking a function in the Lis- wider array of computing curricula, spired projects to our AI course cost-ef- tener, an RCX can be made to the next version of RCXLisp will in- fectively, without having to distract respond. This is definitely an example clude simple ad hoc synchronous mes- students with many mechanical or of satisfaction with being able to get sage-passing macros for local RCXLisp computer engineering issues. Student past the “hello robot” stage of pro- threads. However, construction of a feedback, enrollment levels, and grad- gramming quickly. general mechanism for synchronizing uates’ continued interest in AI over The library’s integration with low- desktop access to RCX registers on top the last four years of using RCXLisp level system functions such as infrared of RCXLisp’s var function will require and Mindstorms in our course lend USB communication helps students greater care. Any high-level synchro- support to this claim. The RCXLisp li- get past the uninteresting details of nization constructs added to remote brary’s integration with Common Lisp port communication and instead con- RCXLisp should be expected to inter- enabled students to adapt Lisp AI soft- centrate on the AI-oriented problems face well with the threading con- ware from the Internet and from Rus- structs in whichever Common Lisp of environmental noise, sensor sensi- sell and Norvig’s sample code corpus environments they are used. tivity, and environmental nondeter- to robot applications with little diffi- minism. For most students, the library culty. and the robot projects gave them their Conclusions and RCXLisp was first developed to ad- first experience with coordinating re- dress needs of an AI course, but has sponses to real-time data sources (sen- Future Work since been subsumed into a larger ini- sors) whose values could change “even RCXLisp is the first open-source Com- tiative—Thinking Outside the (Desk- when the program isn’t watching,” as mon Lisp library for Mindstorms that top) Box—to support the use of Mind- one student put it. supports both remote control and on- storms in combination with other The library’s support for “on-the- board programming of robots as well programming languages across the full fly” program generation and down- as targeted communication between computer science curriculum (Klass- load helps students appreciate the multiple robots and command-center ner and Anderson 2003).8 power of Common Lisp’s lack of differ- desktops. Students’ imaginations are not the entiation between code and data. The growing role of intelligent only place where RCXLisp and Mind-

64 AI MAGAZINE Articles storms have had an October sky effect. trademarks of , which Jacobs, D.; Jorgage, B.; and Klassner, F. RCXLisp’s design team continues to does not sponsor, authorize, endorse, 2005. A Common Lisp USB Communica- make improvements to the package. or support any of the third-party work tion Library. Paper presented at the 2005 In addition to the future work de- cited in this article. The author has no International Lisp Conference, Stanford, CA, June 19–22. scribed in the previous section, an im- financial relationship with the Lego portant goal is to add call stack sup- Group except for a discount purchase Klassner, F., and Anderson, S. 2003. Lego Mindstorms: Not Just for K–12 Anymore. plan for Mindstorms equipment for port and memory management IEEE Transactions on Robotics and Automa- support to the Mnet firmware. This training seminars run under NSF tion Magazine 19(3): 12–18. Grant No. 0306096. would extend the Lisp functionality of Klassner, F. 2002. A Case Study of Lego the on-board language for RCXs. A re- This material is based upon work Mindstorms’™ Suitability for Artificial In- lated possibility would be to eliminate supported by the National Science telligence and Robotics Courses at the Col- firmware and target the H8 processor Foundation under Grant No. 0088884 lege Level. In Proceedings of the Thirty-Third directly, as the C++ BrickOS library for and Grant No. 0306096. Any opin- Special Interest Group on Computer Science Mindstorms does. ions, findings, and conclusions or rec- Education Technical Symposium on Computer Another future project is to inte- ommendations expressed in this ma- Science Education, 8–12. New York: Associa- grate the Lego vision command cam- terial are those of the author and do tion for Computing Machinery. era into the RCXLisp library. This not necessarily reflect the views of the Kumar, D., and Meeden, L. 1998. A Robot Laboratory for Teaching Artificial Intelli- would provide a low-cost tool for ex- National Science Foundation. gence. In Proceedings of the Twenty-Ninth ploring machine vision problems. It Notes Special Interest Group on Computer Science would also provide an additional data Education Technical Symposium on Computer 1. Such as ActivMedia Robotics (www.ac- channel for student teams to use in Science Education. New York: Association for tivrobots.com) and Lego Mindstorms, the capture the balls contest in coordi- Computing Machinery. www.legoMindstorms.com/. See also F. nating robots’ coverage of playing Martin, The MIT HandyBoard Project, De- Mazur, N., and Kuhrt, M. 1997. Teaching field areas. cember 2005, http://lcs.www.media.mit. Programming Concepts Using a Robot Sim- The RCXLisp library already has edu/groups/el/Projects/handy-board. ulation. Journal of Computing in Small Col- leges 12(5): 4–11. generic serial API functions, making it 2. See www.noga.de/; .sourceforge. Russell, S., and Norvig, P. 2003. Artificial In- a useful basis for Common Lisp solu- com; Not Quite C (NQC), bricxcc.source- telligence: A Modern Approach, 2nd ed. En- tions for interfacing with serial de- forge.net/nqc; and the LEGO/ Scheme com- glewood Cliffs, NJ: Prentice Hall. vices. However the library’s USB inter- piler, Oct. 2005 (www.indiana.edu/~legob- face functions currently only work ots/legoscheme/), by A. Wick, K. Klipsch, Steele, G. 1990. Common Lisp: The Lan- specifically with Mindstorms USB IR and M. Wagner. guage, 2nd ed. Woburn, MA: Digital Press. towers. Work is underway to extend 3. See lejos.sourceforge.com. Stein, L. 1996. Interactive Programming: Revolutionizing Introductory Computer Common Lisp streams to support 4. See www.indiana.edu/~legobots/ Science. ACM Computing Surveys generic USB devices so that not only legoscheme/. 28(4es)(December): 103. the vision command camera but also 5. www.hitechnic.com. Yuasa, T. 2003. XS: Lisp on Lego Mind- other USB-based sensors and devices 6. www.techno-stuff.com. storms. Paper presented at the 2003 Inter- can be used in RCXLisp (Jacobs, Jor- 7. See www.visi.com/~dc/synchro. national Lisp Conference, New York, Octo- gage, and Klassner 2005). 8. Installation files for RCXLisp and hand- ber 12–15. In January, 2006, Lego announced a outs for the assignments described in this new version of Mindstorms, NXT. article are available for download from the Frank Klassner earned Based on released information about web site for this project at robotics.csc.vil- B.S. degrees in computer the new platform, I expect that lanova.edu. science and in electron- RCXLisp will be portable to NXT. ics engineering from the References University of Scranton. Acknowledgments Beer, R. D., Chiel, H. J., and Drushel, R. F. He earned his M.S. and I am grateful to Andrew Chang for his 1999. Using Autonomous Robotics to Ph.D. in computer sci- graduate independent study work that Teach Science and Engineering. Communi- ence from the University cations of the ACM 42(6)(June): 85–92. of Massachusetts at developed the Mnet firmware, my Amherst. He is an associate professor in Vil- Brooks, R. A. L. 1993. A Subset of Common graduate students Drew Jacobs and Er- lanova University’s Department of Com- Lisp. Technical Report, Massachusetts Insti- ic Clark for their work in the design of puting Sciences. In addition to AI and ro- tute of Technology Artificial Intelligence reliable USB communication libraries botics, his interests include adaptive signal Laboratory, Cambridge, MA. for RCXLisp, and my undergraduate processing and Lisp modernization for the Carver, N., and Lesser, V. 1993. A Planner research assistant Christopher Conti- twenty-first century. He can be reached at for the Control of Problem Solving Sys- [email protected]. nanza for his work in the design of ro- tems. IEEE Transactions on Systems, Man, bust Lego chassis for the AI course pro- and Cybernetics, Special Issue on Planning, jects. I also thank the reviewers and Scheduling, and Control 23(6): 1519–1536. editors for comments that improved Cohen, P. 1995. Empirical Methods for Arti- this article. ficial Intelligence. Cambridge, MA: The MIT Lego Mindstorms and RCX are Press.

SPRING 2006 65 Articles

We invite you to participate in the Fifteenth Annual AAAI Mobile Robot Competition and Exhibition

Sponsored by the American Association for Artificial Intelligence, the Competition brings together teams from universities, colleges, and research laboratories to compete and to demonstrate cutting edge, state of the art research in robotics and artificial intelligence.

The 2006 AAAI Mobile Robot Competition and Exhibition will be held in Boston, Massachusetts, as part of AAAI-06, from July 16–20, 2006.

The program will include the Robot Challenge, the Open Interaction Task, the Scavenger Hunt, the Robot Exhibition, and the Mobile Robot Workshop.

Registration and information is available at palantir.swarthmore.edu/aaai06/.

AAAI-06 conference details: www.aaai.org/Conferences/ AAAI/aaai06.php

66 AI MAGAZINE