Homework 3: Design Constraint Analysis and Component Selection Rationale Team Code Name: 2D-MPR Group No. 12 Team Member Completing This Homework: James Phillips E-mail Address of Team Member: jephilli@ purdue.edu Evaluation: SCORE DESCRIPTION Excellent among the best papers submitted for this assignment. Very few 10 corrections needed for version submitted in Final Report. Very good all requirements aptly met. Minor additions/corrections needed for 9 version submitted in Final Report. Good all requirements considered and addressed. Several noteworthy 8 additions/corrections needed for version submitted in Final Report. Average all requirements basically met, but some revisions in content should 7 be made for the version submitted in the Final Report. Marginal all requirements met at a nominal level. Significant revisions in 6 content should be made for the version submitted in the Final Report. Below the passing threshold major revisions required to meet report * requirements at a nominal level. Revise and resubmit. * Resubmissions are due within one week of the date of return, and will be awarded a score of 6 provided all report requirements have been met at a nominal level. Comments:
1.0 Introduction Revised Project Specific Success Criteria 1. An ability to record a 2-dimensional survey from its current location. 2. An ability to collate a collection of 2-dimensional surveys into a single map of the robot s environment. 3. An ability to sense the distance to obstacles or boundaries. 4. An ability to transmit data, i.e. the collated map from #2, and receive commands, for example re-take individual surveys. 5. An ability to detect and respond to incipient and occurring collisions by backing away and avoiding said obstacle. The 2D-MPR is an autonomous robot that has an ability to create two dimensional maps of its environment. PSSC #1 requires that the robot be able to independently (from the user) take a survey of its surroundings from a stationary location. PSSC #2 requires that the robot be able to processes the data obtained from multiple surveys and create a map of its environment. PSSCs # s 1 and 2 depend on PSSC #3, an ability to measure the distance between the robot and any boundaries and/or obstacles. PSSC #4 requires that the robot be able to send data wirelessly to a remote user, and an ability to act upon commands received from a remote user. PSSC #5 requires that the robot be able to sense impending collisions with boundaries or obstacles as it travels through its environment and to react appropriately, i.e. avoid the collision without user intervention. Mobility requires the robot be battery powered, limiting operation time, processing power, and the total range of the robot. 2.0 Design Constraint Analysis The major design constraint for the 2D-MPR is mobility. Because the robot is designed to be used remotely, the robot needs to be battery powered. The movement of the robot will be constricted due to battery life and the wireless range. The physical platform of the robot is also limiting. The range finding sensor array, batteries, and electronics all have to fit within a mobile platform. -1-
2.1 Computation Requirements PSSC # 2 requires the robot be able to collate multiple surveys of the same environment to create one overall map. This will occur on the electronics platform of the robot and will be the bulk of the computation and processing. Currently, an ARM Cortex M3 microcontroller is being considered to handle the survey collation, sensor array command, robot command, and wireless communications command. Because all the heavy computation and control will be contained within one chip, the size of the PCB and other electronics can be kept to a minimum and the software can be optimized to increase efficiency, thus saving battery power. 2.2 Interface Requirements The Xbox Kinect communicates via a USB connection. The Xbee module for wireless communication will require a UART interface[2]. The irobot Create can be controlled via a UART interface as outlined in the irobot Create Owner s Manual cited at the end of this document.[1] All remote user communication will be sent wirelessly via the Xbee modules. The robot will have an ability to send data to a remote user and to receive commands from a remote user via the Xbee modules. The robot will most likely have this same capability over a wired connection for debugging purposes. 2.3 On-Chip Peripheral Requirements As outlined in Section 2.3 above, the ARM Cortex M3 will need to communicate via USB, SPI, and UART[3]. The Cortex M3 has a USB peripheral so no interface chip is needed. The M3 also has an SPI and multiple UART modules to complement a large number of general I/O pins[3]. 2.4 Off-Chip Peripheral Requirements The only off-chip peripheral would be a laptop from which to send commands to the robot and to receive the collated surveys. The irobot Create has many built in sensors which we may use to supplement our design, however the use of these sensors are not included in any PSSC because it would not be considered student designed. -2-
2.5 Power Constraints Since the robot is required to be mobile, all of the power will need to be supplied by a battery pack. To simplify the issues with recharging batteries, a battery pack from irobot will be purchased to power the robot. A separate battery pack will be purchased to power the Xbox Kinect and the control electronics mounted on the robot. Judging from the AC/DC adaptor that comes with the Kinect, the Kinect requires 12V with a 1.08A supply[4]. This will most likely limit our battery life to about 1 hour unless a significant investment is made in high amp-hour batteries. The irobot Create requires 12 AA batteries or the equivalent.[1] A rechargeable battery pack comes with the irobot, however 12 AA batteries can also be used. Assuming each AA battery to have a max capacity of approximately 3000 mah [5], we predict one set of 12 batteries will provide the robot with 1 to 3 hours of power, however, this is largely dependent on how much power the motors will draw. This power draw will be a function of the total weight of the Kinect and electronics mounted on the platform, thus it is difficult to predict battery life at this stage of the project. The Cortex M3 and the Xbees both use a 3.3V supply[2][3]. 2.6 Packaging Constraints The electronics needed to be mountable on the irobot Create platform. The irobot Create platform may also need to be modified in order to securely mount the Xbox Kinect. The irobot Create has an option allowing the user to add weight to the platform, creating a more stable base if heavy components are mounted on top of the platform.[1] 2.7 Cost Constraints The only significant cost constraint is the agreed upon team budget. The team s target budget is approximately $500, though the total costs may be slightly more than $500. 3.0 Component Selection Rationale Previous versions of the project were going to include a custom sensor array using either a laser or sonic range finder. Because this project already has an acceptable level of complexity without custom designing a sensor array, the Xbox Kinect was concluded to be the best option for the -3-
project. Even though the Kinect costs $150, it is questionable whether a custom designed range finder could be implemented for cheaper than the Kinect. The Kinect is more versatile in that it has multiple sensors and increases the kinds of data that can be collected and therefore the possible applications of this project[4]. The Kinect also has a set of open-source drivers which we plan to incorporate, and improve, into our design. The ARM Cortex M3 was chosen because it can be clocked at an appropriate frequency to accommodate the processing needs of this project, has an integrated USB peripheral, multiple UART and SPI peripherals, and there is a readily available, cheap development kit for rapid prototyping. Because the Cortex M3 has an integrated USB peripheral, an FTDI USB-to-serial chip will not be need on the PCB to interface with the Kinect[3]. The LPC1769 was chosen because it has a max clock rate of 120 MHz. All of the computing and processing will be done onboard the robot, so I fast clock speed is necessary. The LPC1769 also has a USB peripheral that allows it act as a USB Host. The LPC1768 and other members of the LPC family can allow act as USB Devices or do not have a fast enough clock rate. We heavily researched the TI family of Stellaris microcontrollers, which also use the Cortex-M3. We decided to use the LPC family of micros from NXP because the Stellaris micros did not have enough onboard RAM or Flash. The irobot Create platform was chosen because it is a readily available robotics platform that allows the user to mount other electronics and sensors.[1] Multiple RC vehicles were considered, but no RC vehicle would come with the wide assortment of sensor that come standard with the Create platform. The irobot Create already has a vehicle control protocol[1], sensors to calculate position and orientation, and multiple other features that would be outside the scope of the objectives of this project were we to custom design those features. A ready to use robotics platform also keeps our electrical engineering project from becoming a mechanical engineering project. Xbee modules were selected because of the ease of drop-in wireless networking, the large user base, and cheap implementation. The Xbee modules are designed to communicate easily over a UART interface and are readily integrated onto a PCB[2]. Competing alternatives were wireless -4-
routers and Bluetooth. Wireless routers may provide greater compatibility to other devices, i.e. most laptops or cellphones could interface with the robot, however the interface would be more complicated and overkill for the purposes of this project. Bluetooth was disqualified for the same reasons. XBees were chosen mainly for the ease of use and they deliver almost exactly the capabilities the project requires. We are going to use the 50mA basic variety of XBee with the chip antenna. These particular modules are very cost effective and meet our requirements. They have a range of a few hundred feet, which is suitable for the requirements of this project. The low current draw is also advantageous since battery life may prove to be a concern. 4.0 Summary The Xbox Kinect will be used to satisfy PSSC #3, range finding. The ARM Cortex M3 will handle interfacing with the Xbees, the Kinect, the irobot Create platform, as well as the processing and computation involved to satisfy PSSCs # 1,2,4,5. One comment we received on the first draft of our PSSCs noted that 3 of the 5 needed to be satisfied onboard the robot instead of using a laptop. This required us to move the processing and computation onboard the robot, hence the ARM Cortex M3. Currently, a laptop will only be used to view the maps created by the 2D-MPR and to send commands, though the robot will be largely autonomous. The Xbox Kinect provides a cheap and versatile solution to give our project a broad array of sensors. The irobot Create allows us to ignore mechanical engineering issues that would be a problem were we to custom design a robot. The next step is to begin prototyping intefaces, i.e. commanding the Xbox Kinect and begin programming the ARM Cortex M3 in a development environment. -5-
List of References [1] irobot Corporation, irobot Create Owner s Manual, http://www.irobot.com/filelibrary/create/create%20manual_final.pdf [Accessed: Feb. 5, 2011]. [2] Digi International, XBee/XBee Pro Datasheet, http://www.sparkfun.com/datasheets/wireless/zigbee/xbee-datasheet.pdf [Accessed: Feb. 5, 2011]. [3] NXP Semiconductors, LPC1758/56/54/52/51 Datasheet, http://www.nxp.com/documents/data_sheet/lpc1758_56_54_52_51.pdf [Accessed: Feb 6, 2011]. [4] Adafruit Industries, Open Kinect Driver(s) Released, http://www.adafruit.com/blog/2010/11/10/we-have-a-winner-open-kinect-driversreleased-winner-will-use-3k-for-more-hacking-plus-an-additional-2k-goes-to-the-eff/ [Accessed: Feb. 2, 2011]. [5] Energizer Holdings, Inc., Energizer L91: Product Datasheet, http://data.energizer.com/pdfs/l91.pdf [Accessed: Feb. 14, 2011]. -6-
-7-
ECE 477 Digital Systems Senior Design Project Fall2008 Appendix A: Parts List Spreadsheet Vendor Manufacturer Part No. Description Unit Cost Qty Total Cost irobot.com irobot Corp. Open-source, mobile robotics platform $175.00 1 $175.00 Wal-Mart Microsoft Vision sensor array $150.00 1 $150.00 Sparkfun.com Digi Corp WRL-08664 Drop-In Wireless Networking Module $22.95 2 $45.90 Digikey.com NXP Semiconductor LPC1758 ARM Cortex M3 Microcontroller $12.23 2 $24.26 Adafruit industries MicroBuilder LPC1343 ARM Cortex M3 Development Board $39.95 1 $39.95 TOTAL $435.11-8-
ECE 477 Digital Systems Senior Design Project Fall2008 Appendix B: Updated Block Diagram -9-
ECE 477 Digital Systems Senior Design Project Fall2008 irobot 25 UART 3.3V 3.3V 5V USB/Kinect 12V 5 USB LPC1769 UART 2 Xbee Pro UART 4 74HC595 5V 4 8 LCD Screen 5V -10-