Botball Kit for Teaching Engineering Computing
Total Page:16
File Type:pdf, Size:1020Kb
Botball Kit for Teaching Engineering Computing David P. Miller Charles Winton School of AME Department of CIS University of Oklahoma University of N. Florida Norman, OK 73019 Jacksonville, FL 32224 Abstract Many engineering classes can benefit from hands on use of robots. The KISS Institute Botball kit has found use in many classes at a number of universities. This paper outlines how the kit is used in a few of these different classes at a couple of different universities. This paper also introduces the Collegiate Botball Challenge, and how it can be used as a class project. 1 Introduction Introductory engineering courses are used to teach general principles while introducing the students to all of the engineering disciplines. Robotics, as a multi-disciplinary application can be an ideal subject for projects that stress the different engineering fields. A major consideration in establishing a robotics course emphasizing mobile robots is the type of hands-on laboratory experience that will be incorporated into the course of instruction. Most electrical engineering schools lack the machine shops and expertise needed to create the mechanical aspects of a robot system. Most mechanical engineering schools lack the electronics labs and expertise needed for the actuation, sensing and computational aspects required to support robotics work. The situation is even more dire for most computer science schools. Computer science departments typically do not have the support culture for the kind of laboratories that are more typically associated with engineering programs. On the other hand, it is recognized that computer science students need courses which provide closer to real world experiences via representative hands-on exercises. This need is usually addressed in the context of software, but it also pertains to topics more closely linked to physical hardware, which certainly characterizes robotics. What is needed is a robot prototyping system that requires a minimum of support infrastructure, but has the depth and flexibility to allow serious engineering to take place. The Botball kit was originally designed for use in high schools, and requires no tools except for a computer and an occasional application of hot glue to speed assembly. The kit is being used in over thirty colleges and universities in at least four countries. The remainder of the paper describes the kit and how it is being used in a couple of different schools in different disciplines to teach different aspects of engineering. We will also describe some of the motivations both for using this kit and for having students work on robotic projects as motivating and educational factor. Page 9.261.1 Page 2 The Botball Kit The Botball kit has been a work in progress since the early 90’s when KISS Institute for Practical Robotics (KIPR), a non-profit organization focusing on learning and skills development through the application of technology, particularly robotics, was founded. In its current form, the kit includes the Handy Board [14] (with charger and serial interface), LEGO RCX (with serial interface), DC motors (both LEGO and modified servo motors), servo motors, touch sensors (3 types), light sensors (general, break beam, and reflectance), proximity sensors (both optical and SONAR), a modified CMUcam and over 1900 pieces of LEGO, mostly LEGO Technic. Cross compatibility between the Handy Board and RCX environment is maintained where reasonable (e.g., at the hardware level, the DC motors, whether LEGO or modified servos, work for both environments). Programming is accomplished via a host PC using Interactive C, 4.3 which is included on the support CD. Interactive C, which originated with the MIT 6.270 Contest extends C syntax to include (limited) capability for initiating and managing concurrent processes, thus facilitating implementation of robotic paradigms such as subsumption. Technically, IC compiles to P-code. The IC environment manages the interface between PC and processor board, including download of firmware (the P-code interpreter). Sensors and ports on the processor board are usually controlled via C library functions supporting the processor board being used, the executables for which are automatically downloaded to the processor board by the IC environment at initialization. Interactive C (IC 4.3), which is the property of KIPR, is offered as freeware through the KIPR web site. IC 4.3 supports both the Handy Board and RCX, and can be run from any one of MS Windows (W95 on), MAC OSX (and earlier MACs), and Linux. The Botball kit has evolved over time, with earlier versions used for robot building labs at the annual AAAI convention. The current version is employed for the KIPR Botball Educational Robotics Program for Middle and High Schools, which had its inception in 1997 [3]. The kit is currently available via KIPR’s web site store. It also needs to be noted that the Handy Board distributed with the Botball kit is an extension of the original MIT design, incorporating an expansion board to facilitate the use of servo motors and for sending digital signals to external devices. Other minor modifications have been made to the board to facilitate the use of optical range sensors. Replacements are available from KIPR for all kit parts, a major plus for lab sustainability. 2.1 FREEWARE There are two significant pieces of freeware that support the Botball kit, Interactive C and MLCAD. 2.1.1 Interactive C (version 4.3) The primary piece of freeware employed for the course is Interactive C, available from the KIPR web site [5]. The interface for IC 4.3 is a recent creation of Randy Sargent, who continues to be the primary developer for IC. 9.261.2 Page It is significant that the same interface is used for both the Handy Board and the RCX, which employ different microprocessors. The interface window utilizes tabbed frames, one of which is an interaction window for directly executing functions on the processor board. A tabbed frame is created for each new source file the user initiates or loads. Source code is automatically indented on load or on entry. The interface provides very thorough on-line documentation, and reasonable source code entry capabilities, including colorizing of text according to category. A suitably large font for class display is among the options. An upload capability is provided for capturing global data arrays generated during robot operation. The data capture is in text format with options for direct import into an analysis tool such as Excel. Pictorial instructions facilitate establishing a working link between PC and processor board, but debugging support otherwise is minimal. At present only a serial interface is supported, which may require purchase of a USB to serial adapter for newer PCs. A processor board simulator is in the offing. 2.1.2 MLCAD The second piece of freeware is MLC AD [11], a LEGO CAD package constructed on top of a freeware vector graphics package called LDRAW. MLCAD includes renditions of almost all LEGO parts that have ever been manufactured. In some respects the package is rough around the edges, but it is quite effective for documenting constructions and producing step by step renditions of constructions. As an example, a fundamental demobot base unit constructed from LEGO Technic as rendered in MLCAD is shown in Figure 1. Figure 1. Demobot base unit MLCAD also provides parts lists for constructions; e.g., Page 9.261.3 Page User-defined models can be also be employed as parts in larger models. For example, if the base unit in Figure 1 is added to the MLCAD parts list, then it is a small matter to add treads or wheels from within MLCAD to obtain constructions as illustrated in Figure 3. Figure 3. Demobot variations with Handy Board 3 Robots for Introduction to Engineering 3.1 Overview For the past three years at the University of Oklahoma, we have merged the Engineering Computing and Introduction to Engineering courses in some sections. These merged courses have used a version of the Botball robot kit as the major tool for teaching computer skills, the design process, project organization, and general engineering techniques. The class meets in two 2-hour sessions per week allowing adequate time for both lecture and in-class hands-on work. This course is aimed at freshman engineering students and is supposed to cover several objectives: • Overview of the major engineering disciplines • Introduction to the engineering design process • Engineering ethics • Basic engineering productivity and analysis tools • Introduction to computer programming We have successfully used design projects around robots, using the Botball kit, to meet all of these educational objectives 3.2 Structure of the Course Two basic course outlines have been used for this class over the past four years. The first was based on the Managing Creativity curriculum [10]. 3.2.1 The Managing Creativity Approach In this version of the class the students are broken into groups of about a dozen to form “companies”. They are then tasked to develop a product idea, form engineering groups to 9.261.4 Page develop various portions of the product and then prototype the system. Throughout this process the instructor presents tutorials on a variety of topics including: • Programming in C using IC4 • Personality categorization (e.g., Keirsey—Bates personality types [4]) • Engineering topics and specializations This version of the course spent a lot of the time on the management and conflict resolution issues. Using large groups, and the relatively small amount of pieces, processors, etc available in a single Botball kit forced the group to spend a lot of time on organizational issues. They had to decide on a product idea that could be prototyped with the kit. The more difficult task was to come to agreement on what that product idea would be.