New Approach for Robotics Education
Transcription
New Approach for Robotics Education
> REPLACE THIS LINE WITH YOUR PAPER IDENTIFICATION NUMBER (DOUBLE-CLICK HERE TO EDIT) < 1 New Approach for Robotics Education RoboSapien Hacking Pedro Dinis Gaspar, António Espírito Santo, Humberto Santos, and Bruno Ribeiro Abstract— The robotics education integrates several knowledge’s acquired during the undergraduate course, namely mechanical and electronics concepts. Moreover, the practical experience of these concepts is very important as part of engineering education, but it is resource intensive. It is presented a nouvelle approach for the robotics education based in the RoboSapien hacking. It has proven to be a valuable teaching tool for this purpose, allowing the reinforcement of several key concepts concerning the integration of topics related to kinematics, dynamics, control systems, embedded systems, data acquisition and microprocessors programming. Furthermore, this approach for the robotics education proved to be very motivating and stimulating for the students. Index Terms—Robotics, Education, RoboSapien, Concepts. I. INTRODUCTION R obotics is being increasing used a vehicle for motivating students to learn embedded systems, artificial intelligence, computer science, and even general science and engineering [1]. Typically, the robotics courses involve in the laboratorial classes the construction and programming of simple robots, usually are comprised by a microcontroller, end course switches and infrared emissor-receiver for control, DC or step motors, mounted in all type of the bodies. This is one of the main objectives of the Automation and Robotics classes of the Electromechanical Engineering Department of University of Beira Interior, Portugal. The Automation and Robotics classes are included in the last year of the undergraduate of Electromechanical Engineering course. These classes intend to integrate the most part of the knowledge acquired during the course, both in mechanical and electronics concepts, based on the development of projects that contain both the hardware and software development for some Manuscript received October 9, 2001. This work was supported in part by Texas Instruments and University of Beira Interior. Pedro Dinis Gaspar is with the Electromechanical Engineering Department of University of Beira Interior, Calçada Fonte do Lameiro, 6201-001 Covilhã, Portugal (phone: 351-275329; fax: 303-555-5555; e-mail: [email protected]). António Espírito Santo is with the Electromechanical Engineering Department of University of Beira Interior, Calçada Fonte do Lameiro, 6201001 Covilhã, Portugal (e-mail: [email protected]). Humberto Santos is with the Electromechanical Engineering Department of University of Beira Interior, Calçada Fonte do Lameiro, 6201-001 Covilhã, Portugal (e-mail: [email protected]). Bruno Riberiro is with the Electromechanical Engineering Department of University of Beira Interior, Calçada Fonte do Lameiro, 6201-001 Covilhã, Portugal (phone: 351-275329; fax: 303-555-5555; e-mail: [email protected]). specific application, and at the same time present to the students the fundamental topics of robotics. Since these classes only extend during a semester, is quite difficult to accomplish those objectives. Last academic year (2005-2006), these classes were reformulated to increase the knowledge transmitted to the students and let them develop more integrating projects. This nouvelle approach had followed several indications provided by [1-11] which were devoted to improve pedagogically the robotics education profile, In the Electromechanical Engineering course, the student start very early to possess knowledge’s concerning embedded systems based on the microcontroller MSP430 produced by Texas Instruments. At the laboratorial classes of Instrumentation and Measurements, they start to use this microcontroller to apply the theorical knowledge’s in conditioning systems and data acquisition. The use of this microcontroller is mostly related to its low cost, to the available number of hardware starter kits and software integrated development environment (IDE) either free or with a reduced cost, the amount of peripherals integrated in the μC, the low power features, the high pin out counting, the C and C++ easy programming, and the very important to education, the rapid learning curve that allows the students to start very initial stage to create their own applications. Nevertheless, this required the presentation of an introduction to μC MSP430, where are described various embedded systems, the architecture characteristics, the memory hierarchy, internal modules, I/O ports, peripherals and the programming language of the μC (although it can be programmed either in Assembly or C, each one with several advantages and disadvantages, the programming lectures tend to by in C language since it is easier for the student to rapidly learn it. When the students arrive to the last year, and particularly to the Automation and Robotics lectures, they already have the basis of control systems, sensors/instrumentation, data acquisition and microprocessor programming, nevertheless the projects developments are normally difficult by hardware concerns, since the hardware project, construction and assembly takes a lot of time. During the Advanced Technical Conference - ATC 2005, promoted by Texas Instruments (TI), along the discussions about teaching Robotics, born a collaboration between DEMUBI and TI, which consisted in the substitution of RoboSapien (RS) control and regulation electronics by the TI MSP430 to replicate the RS operation, evidencing the capabilities of this microcontroller and as a way to motivate the students and to develop a technology demo vehicle. Using the RS in the Automation and Robotics laboratorial lectures, > REPLACE THIS LINE WITH YOUR PAPER IDENTIFICATION NUMBER (DOUBLE-CLICK HERE TO EDIT) < all the precedent objectives defined for this lecture could be accomplished as well it turn to be a incredible approach to kept the students attention for the knowledge of robotics. Another benefit of the approach was the development of the teamwork between the students in multidisciplinary topics in order to successfully integrate different areas of knowledge, in contrast to traditional technical education strategies that’s tended to promote individualism and competence among students. This helped also the engineering students to develop the needed communication and working skills for teamwork. Additionally, the robotics field is still emerging, providing the development and use of new technology, theories and concepts. Due to its flexibility, robotics education provides an ideal setting for testing new educational approaches. II. PROCEDURES A. Overview The course goals based on this new approach were differentiated by working teams, each involved in separated tasks to pursuit the same objective based in a reverse engineering procedures: B. RoboSapien characteristics Investigate the RS characteristics. In parallel with the theorical lectures, were was exposed the robotics fundamentals concerning robots as general application in manufacturing, coordinates systems, actuators, robot nomenclature devices as manipulators and end effects, robot uses, programming and classifications, tactile/vision sensing, among other issues. Concerning this task, first of all the students had to research about RS characteristics and identify the most important ones. The RoboSapien (Fig. 1) is a humanoid robot designed by Mark W. Tilden [23], marketed byWowWee for the toy market. It measures approximately 34 cm in height and its weight is about 2,1 kg, including four mono (D) type batteries located in its feet. Fig. 1. RoboSapien. 2 This biomorphic robot was designed to be easily modified or hacked, being the electronics inside the RS easily accessed and clearly labelled. So, a growing community of hackers has devoted themselves to modify and add new functionalities to the robot. The RS is pre-programmed with moves controlled by an infrared remote control, being capable of walking motion, grasp objects with either of its hands and throw them with mild force. It also has a small loudspeaker unit, which can broadcast several different vocalizations. The RS’s remote control unit has 21 different buttons. With the help of two shift buttons, 67 different robot-executable commands are accessible. Being equipped with a basic level of programmability, the users can string together movement commands to form macros or mini-programs (instructions sets), broadcasting them to the RS by infrared. Researching into internet, it can be easily found several sites devoted to the explanation of RS modifications, like a live wireless video camera, a led belt that displays text, headlights, speech synthesis, a “flamethrower" (a small torch), volume control, radio frequency control, among others. The majority of these added functions can be founded in the internet by a simple search. However, none of the active modes integrated in the original RS concerned the substitution of the original microcontroller. All of them concerned the integration of hardware new functionalities as hand-beams, hand-led’s, heartbeat, voice off, tunnel-beam and blue eyes [12], wireless camera, wireless radio, frequency audio and pc control [1314], color and motion tracking CMUCam [15], including an additional microcontroller (PicMicro controllers and Palm Pilot controllers) [16], and replacement of the head by a PDA to allow the perception of its environment using a camera [17]. This last example of RS modification had the objective of develop two teams of three RSs to play the 1st soccer match of humanoid robots worldwide at the Robocup German Open 2005 tournament. C. Analysis of the robot kinematics and dynamics Analysis of the robot kinematics and dynamics (evaluation of the robot movements and it’s characteristics). The evaluation of the RS dynamics proved that due to its low centre of mass, the RS is very stable. It is driven by seven DC motors, possessing one motor per leg that moves two joints in the hip and the knee keeping the foot orthogonal to the trunk. A trunk motor tilts the upper body laterally. These three motors locomotion the RS since it swings its upper body laterally to achieve a periodic displacement of the centre of mass projection from one foot to the other. The RS can walks backwards in a similar way, as well, turn on the spot. It also possesses one motor in each shoulder to raise and lower the arm and one motor in each elbow to twist the lower arm and open its grippers. This gripper hand has three fingers. The motors locations are presented in Fig. 2. The dynamic walking pattern of RS follows the next sequence as exposed by [17] and it is shown in Fig. 3. > REPLACE THIS LINE WITH YOUR PAPER IDENTIFICATION NUMBER (DOUBLE-CLICK HERE TO EDIT) < 3 Fig. 2. The motors locations in RoboSapien [17]. (1) The trunk motor tilts the upper body to the right. The center of mass shifts over the right foot. The left foot lifts from the ground. a) Front view. (2) The leg motors move into opposite directions, resulting in a forward motion of the robot. As the upper body swings back, the left foot regains contact with the ground. (3,4) Symmetrical to (1,2). Fig. 3. Walking gait of the RoboSapien [17]. D. Analysis of actuators, sensors and signal conditioning The next task started in a dismantle procedure to allow the detailed analysis of the actuators (motors) and regulation electronics, sensors and respective signal conditioning, and of the PCB boards included in the original robot. As exposed, the PCB boards (Controller U2 and Motor Driver U3) of the RS is easily accessed and clearly labelled, indicating the motors (M), input or output port (P), raw battery voltage that fluctuates wildly (VDD), the regulated voltage (Vcc = 3.6V) and the universal ground (Gnd). The first task was to identify all the connections of the PCB board exposed in Fig. 4. The original controller, certainly an ASIC (application-specific integrated circuit) is an integrated circuit customised for this particular purpose, which was covered with glue disabling the possibility of evaluating the control systems philosophy developed for the RS. b) Rear view. Fig. 4. Original PCB board of the RoboSapien. procedure consisted in the acquisition of the ports digital signals, initially for a single motor, and then to command functions that combined several movements at the same time, listing the times that each motor was active and inactive. To accomplish this task, was used Tektronix™ TDS220 oscilloscope to acquire the single movements signals and a PM3580 Logic Analyzer for the robot combined movements signals. In Fig. 5 is presented a photograph of the use of the former instrument. Furthermore, the students had to list all the components and devices included in the PCB board and investigate its functions. In parallel other working groups were devoted to complete the list of actuators, sensors and output devices. Were determined the mechanical and/or electrical characteristics of the power switch, motor driver, the four foot touch sensors, two finger touch sensors, shoulders and elbow end course position switches, the sound sensor and of the seven leds (fingers and eyes). After dismantling the robot, was done the analysis of the digital signals acquired from the electronic board ports to evaluate the original microcontroller control output ports when the robot do a specific command function. The Fig. 5. Use of the PM3580 Logic Analyzer to acquire the digital signals of the motors. > REPLACE THIS LINE WITH YOUR PAPER IDENTIFICATION NUMBER (DOUBLE-CLICK HERE TO EDIT) < 4 The analysis of each single motor signal was done by the comparison of the output signal from the original microcontroller and the signal that the motor receives. In Fig. 6 are exposed the graphs obtained with the digital oscilloscope to single movements. Fig. 7. Output port signals acquisition of a combined movement: Function “Oops” One of the next activities concerned the analysis of the RS eye patterns, since depending on the command that is executed, the pattern will be different. The RS original microcontroller has 3 outputs for each eye. Since his eyes give distinct patterns for all conditions, this output condition can be used as an effective digital-level feedback source. a) output signal vs. motor input signal The next task involved the analysis of the infrared commands. For the input commands is used the direct serial input to the IR-OUT pin (active low signals, 1200 bps). The timing is based on 1/1200 second clock (~ 0,833 msec), where the signal is normally high (idle, no IR). It was determined that the data bits (8 bits), the space encoded signal depends on bit value, sending the most significant data bit first, being the Carrier at 39,2 kHz. The first bit (MSB) is always 1 and the valid codes are range from 0x80 to 0xFF. Every IR command has a preamble in which the signal goes low for 8/1200 sec. If the data bit is equal 0, the signal goes high for 1/1200 sec, and if it is 1, the signal goes high for 4/1200 sec. In Fig. 8 is presented an example of a specific IR command: “Wake Up”: 0xB1. Empty b) Left elbow movement from the inside to outside and vice-versa Fig. 6. Example of digital signals of single movements. The analysis of the combined actions signals required the connection of wires to the original microcontroller ports to measure the combined movement’s digital signals with a logic analyzer. The acquisition of the graphical digital signals from the microcontroller motor ports was done for all the combined functions defined in the remote control. The graphical functions were only obtained for one side (left one) of the robot movements since other side (right one) does the same movements but the motors operate in opposite direction. In Fig. 7 is presented an example of the output port signals acquisition of a combined movement: “Oops”. In this function, signal “M1+” (Left Elbow Out) is “high”, for 531 msec and the rest of the time (2125 msec) is “low” and signal “M3+” (Right Elbow Out) presents the same signal, since both elbows execute the movement at the same time. Preamble 1 0 1 1 0 0 0 1 Empty 0b10110001=0xB1=Wakeup command Fig. 8. Example of a IR command: Function: “Wake Up”: 0xB1. During this period, other working group was collecting all the information obtained to draw in detail the electrical schematics and simultaneously evaluating of the most appropriate microprocessor of the MSP430 family to complete replicate the original ASIC. They were involved in the analysis of the schematics of the initial robot and development of the new ones based in TI control/microprocessor devices. Was chosen the microcontroller MSP430F149 making use of the following on-chip resources to control the RS: ports (output) P6.0 – P6.7 and P2.0 – P2.5 for the motors; ports (output) P4.0 – P4.7 for the leds; port (input) 1.1 for the IR signal and ports (input) P1.2 and P1.3 for the switches. In Fig. 9 is presented a schema of the new PCB board. > REPLACE THIS LINE WITH YOUR PAPER IDENTIFICATION NUMBER (DOUBLE-CLICK HERE TO EDIT) < 5 +3.3 R1 47K P1 TDO/TDI 1 2 TDI 3 4 TMS 5 6 TCK 7 8 9 10 RST/NMI 11 12 13 14 +3.3 C15 +3.3 10nF R2 330R P5 4 3 2 1 DS1 LED3 P62 P61 P60 RST/NMI TCK TMS TDI TDO/TDI XT2IN XT2OUT Header 7X2 P14 P13 P12 P11/IR Switch 1 C2 +3.3 P2 AVcc DVss AVss P6.2/A2 P6.1/A1 P6.0/A0 RST/NMI TCK TMS TDI/TCLK TDO/TDI XT2IN XT2OUT P5.7 P5.6 P5.5 P5.4 P5.3 P5.2/SOMI1 P5.1/SIMO1 P5.0/STE1 P4.7/TB7 P4.6/TB6 P4.5/TB5 P4.4/TB4 P4.3/TB3 P4.2/TB2 P4.1/TB1 P4.0/TB0 P3.7 P3.6 P3.5 uP1 MSP430F149 8 7 6 5 4 3 2 1 P47 P46 P45 P44 P43 P42 P41 P40 C6 10uF LED3 LED P4 8 7 6 5 4 3 2 1 LED7 LED5 LED1 R3 P42 Q1 BC847 R5 Q3 BC847 P44 4K7 R7 LED8 LED7 LED6 LED5 LED4 LED3 LED2 LED1 P67 P66 P65 P64 P63 P62 P61 P60 Motores1 P3 P33 P32 P31 P30 C5 100n P25 P24 P23 P22 P21 P20 2 1 P40 48 47 46 45 44 43 42 41 40 39 38 37 36 35 34 33 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 12pF 4 3 Y1 85SMX DVcc1 P6.3/A3 P6.4/A4 P6.5/A5 P6.6/A6 P6.7/A7 VREF+ XIN XOUT VeREF+ VREF-/VeREFP1.0/TACLK P1.1/TA0 P1.2/TA1 P1.3/TA2 P1.4/SMCLK P1.5 P1.6 P1.7 P2.0/ACLK P2.1/TAINCLK P2.2/CAOUT/TA0 P2.3/CA0/TA1 P2.4/CA1/TA2 P2.5/Rosc P2.6/ADC12CLK P2.7/TA0 P3.0/STE0 P3.1/SIMO0 P3.2/SOMI0 P3.3 P3.4 1 2 3 4 5 6 7 8 9 10 11 12 P11/IR 13 P1214 P1315 P1416 P63 P64 P65 P66 P67 C1 12pF 2 C3 100n 64 63 62 61 60 59 58 57 56 55 54 53 52 51 50 49 P6 +3.3 C4 10uF R9 P46 Q5 BC847 Q7 BC847 6 5 4 3 2 1 P25 P24 P23 P22 P21 P20 Motores 2 4K7 4K7 4K7 LED8 LED2 P41 R4 4K7 Q2 BC847 LED4 P43 R6 Q4 BC847 4K7 LED6 P45 R8 Q6 BC847 4K7 P47 R10 Q8 BC847 4K7 Fig. 9. Schema of the PCB board developed. a) Connections to the original PCB board. This task was concluded with the drawing of the new PCB boards, fabrication and assembly of the components and devices in this board. In Fig. 10 is exposed a detailed photograph of the original PCB board without the ASIC. In Fig. 11 is present the photographs of the new PCB boards and the connections to the original one assembled in the RS. b) New PCB board with the MSP430 microcontroller. Fig. 11. New PCB board to include the MSP430 microcontroller. substitute the original one. The C code was specified to commit the robot dynamics. a) Original PCB board without microcontroller. b) Original ASIC. Fig. 10. Detailed photograph of the original PCB board without the ASIC. E. C code programming The following task concerned the development of the C programming code of the MSP430 microcontroller chosen to The control system program consisted in redirect new labels for the ports (P2 and P6) using the same ports addresses (using C/C++ structures and unions). Then, was developed a program routine for each movement function, with all time values for every motor status. An interruption connected to the countdown of the time values for each motor status (BasicTimer Clock at 1msec). The algorithm details consisted in the definition of (1) pointers to save the each time movement for each motor on a free address of the microcontroller memory, that allow access to time movements; (2) new labels using C/C++ syntaxes union and struct. The method was simple since it obtains the control of microcontroller ports using the structures names. For each motor was defined a variable with one bit for each port P6OUT; (3) structures for the time movements, that kept the time for each active/inactive condition of the motors. The variables had 13 bits because some motor status times were large (maximum time of 8192 msec), since the interval time interrupt was 1 msec (BasicTimer Clock); and (4) movement routines with arrays that contain the time values for every change that motor ports should have. In Fig. 12 is presented > REPLACE THIS LINE WITH YOUR PAPER IDENTIFICATION NUMBER (DOUBLE-CLICK HERE TO EDIT) < the operation principle of the software considering an example: The physical motor M1 is represented by two logical motors M1+ and M1- depending on the rotation direction (Note: M1+ and M1- can’t possess the same high state because it would provoke a short circuit). If M1 = state 0, then M1+ = High and M1- = Low, consequently the physical motor M1 runs counter clockwise. 6 BackGround Task Flow Chart Start Initialization No Any Command? Timers [0] M1+ Motor 1 [2] [3] [4] [13] [14] [0] 2643 425 0 0 0 0 0 1 0 [1] 525 531 319 1693 0 0 0 1 1 [2] 0 0 0 0 0 0 0 0 0 [12] 0 0 0 0 0 0 0 0 0 [13] 0 0 0 0 0 0 0 0 0 M1- Motors Yes [1] Decode Command Load Command Action a) Block diagrams of the Background task. Motor State System Task Flow Chart Motor Initial Value Start Motor State Movement On ? Motor (M1+) Motor (...) Motor No (M7-) 4 Clockwise 1 M1 No 5 3 No Stoped 0 Yes Motor (n) Enable Motor (n) Enable Motor (n) Yes Enable Switch On? Get next Timer (n) Get next TimerGet (n)next Yes 2 Decrement Yes Timer (n) Decrement Timer (n) Decrease Cclockwise No Timer (n) = 0? Yes Timer (n) = 0? Yes HI Switch On? No Yes Yes Change Motor (n) Yes Value Change Motor (n) Value Change Motor (n) Value M1 - Yes Timer (n) = 0? Timer (n) = 0? No Debounce Timer (n) = 0? Timer (n) = 0? No Low No Yes Timer (n) Timer (n) HI M1 + No Desable Motor (n)Yes Desable Motor (n) Desable Motor (n) Yes Put STOP Command Low END 525 531 319 Refresh all Motors value t [ms] 1693 425 2643 Put Next Command No Movement ON ? Fig. 12. Operation principle of the software. In Fig. 13 is presented a block diagram of the software architecture. The C code was composed by several routines each one devoted to several tasks. In Fig. 14 is presented the block diagrams of the Background, System and IR tasks. b) Block diagrams of the System task. Command IR State Machine Inicialization Comunication OFF HARWARE IR Remote Command Motors Driver IR Receptor Timer B ISR 1 ms System Task Command ISR 2 Leds 5 4 Validate Preamble Switch Command Buffer Timeout 1 1 Signal : High 2 Signal : High to Low 3 Preamble is valid 4 Timeout Condition 5 Preamble NOT valid 6 Valid Command 3 IR CMD State Data Ring Buffer 6 Actions Table 4 Communication On WakeUp Action Data Sleep SingleMov1 ..... BackGround Task ..... ..... Buldozer Fig. 13. Block diagram of the software architecture. c) Block diagrams of the IR task. Fig. 14. Block diagrams of the Background, System and IR tasks. F. Tests and development of new functionalities The final task consisted in performing tests to evaluate the robot movements and tuning slight discrepancies. During this task, the students had to propose the development of new functionalities. > REPLACE THIS LINE WITH YOUR PAPER IDENTIFICATION NUMBER (DOUBLE-CLICK HERE TO EDIT) < The tests proved that the RS moved like in early days. It was concluded that the students successfully substituted the RoboSapien control and regulation electronics by TI MSP430 microcontroller. It turn to be an excellent demo vehicle of technology. Pedagogically, the combination of RoboSapien and MSP430 microcontroller in laboratorial classes, allow exemplifying robotics key concepts and embedded systems capabilities. The substitution of the microcontroller by MSP430, allow the RoboSapien to have an evolution capability, since in the following academics years the projects involve the development of new functionalities, as (1) wireless communications, (2) expand computation capabilities with a DSP to include voice commands, and (3) the development of a user friendly PC high level application to perform new actions/movements. REFERENCES [1] [2] [3] [4] [5] [6] [7] III. CONCLUSIONS It was presented the teaching structure in the lectures that use microprocessors at the undergraduate course of Electromechanical Engineering at the University of Beira Interior, Portugal. It was specifically focused the last year lectures of Automation and Robotics, since it is devoted to integrate several knowledge’s are acquired during the course. The RoboSapien hacking has proven to be a valuable teaching tool for this purpose, allowing the reinforcement of several key concepts discussed in undergraduate lectures as Automation and Robotics. It was pointed out that the practical experience is a very important part of engineering education, but it is resource intensive. This approach for the robotics education proved to be very motivating and stimulating for the students allowing the laboratory to control time and money in projects proposed to the students. In last instance, reduce the experiment cost per student, and makes available to students the development of a large variety of upgrades to the RS based in new technologies. With this pedagogical alternative, the students gain much more experience then in traditional laboratory experience. Additionally, one of the challenges facing lecturers teaching advanced undergraduate courses in robotics, integrating topics of kinematics, dynamics, control systems, embedded systems, data acquisition and microprocessors programming is the difficult in providing the integration skills and transmit to the students how can them relate the theory to the physical world. The use of RoboSapien for this purpose was sufficiently complex to challenge the students, but not overwhelming, and it was way to motivate them to robotics topics. ACKNOWLEDGMENT The authors thank the support given by Texas Instruments; and particularly the help provided by Christian Speck (TI Europe Business Development) and Robert Owen (TI University Programme Manager). 7 [8] [9] [10] [11] [12] [13] [14] [15] [16] [17] I. Horswill, “A laboratory course in behavior-based robotics,“ Intelligent Systems and Their Applications, IEEE, vol. 15, issue 6, pp. 16 – 21, Nov.-Dec. 2000. M. Rosenblatt, and H. Choset, “Designing and implementing hands-on robotics labs,” Intelligent Systems and Their Applications, IEEE, vol. 15, issue 6, pp. 32 – 39, Nov.-Dec. 2000. J. A. Piepmeier, B. E. Bishop, and K. A. Knowles, “Modern robotics engineering instruction,” Robotics & Automation Magazine, IEEE, vol. 10, issue 2, pp. 33 – 37, June 2003. B. A. Maxwell, and L. A. Meeden, “Integrating robotics research with undergraduate education,” Intelligent Systems and Their Applications, IEEE, vol. 15, issue 6, pp. 22 – 27, Nov.-Dec. 2000. R. Kuc, E. W. Jackson, and A. Kuc, “Teaching introductory autonomous robotics with JavaScript simulations and actual robots,“ IEEE Trans. Education, vol. 47, issue 1, pp. 74 – 82, Feb. 2004. L. Enrique Sucar, J. Noguez, and G. Huesca, “Project oriented learning for basic robotics using virtual laboratories and intelligent tutors,” Frontiers in Education, 2005. FIE '05. in Proc. 35th Annual Conference, pp. S3H - 12-17, 19-22 Oct. 2005. M. Krugman, “Teaching behavior based robotics through advanced robocamps,” Frontiers in Education, 2004. FIE ‘04. in Proc. 34th Annual Conference. J. M. Conrad, “Stiquito for robotics and embedded systems education,” Computer, vol. 38, issue 6, pp. 77 – 81, May 2005. K. S. Rawat, and G. H. Massiha, “A hands-on laboratory based approach to undergraduate robotics education,” Robotics and Automation, 2004. in Proc. ICRA '04. 2004 IEEE International Conference, vol. 2, pp. 1370 1374, Apr 26-May 1, 2004. D. J. Ahlgren, “Meeting educational objectives and outcomes through robotics education,” World Automation Congress, 2002. in Proc. of the 5th Biannual, vol. 14, pp. 395 – 404, 9-13 June 2002. K. Nagai, “Learning while doing: practical robotics education,” Robotics & Automation Magazine, IEEE, vol 8, issue 2, pp. 39 – 43, June 2001. Microbi’s Robosapien mods. Available: http://www.angelfire.com/droid/rsv2/. Robosapien RF Sound Mod. Available: http://home.comcast.net/~robosapien/rfmod.htm. Robosapien Camera Mod. Available: http://home.comcast.net/~jsamans/robo/robocam.htm. RoboSapienPets RoboSapien page. Available: http://www.aibohack.com/robosap/. Mark C’s Robosapien Hacking Site. Available: http://homepages.strath.ac.uk/~lau01246/robot/myhackrs.shtml. S. Behnke, J. Muller, and M. Schreiber, “Playing Soccer with RoboSapien”, in Proc. of The 9th RoboCup International Symposium, Osaka, Japan, paper #97, July 2005.