Robot Unicorn Attack McMaster University Department of Electrical and Computer Engineering 6/30/2010 1

Similar documents
Reaction Game Kit MitchElectronics 2019

Team Members: Erik Stegman Kevin Hoffman

Alice EduPad Board. User s Guide Version /11/2017

XTAL Bank DDS Version 0.02 Sept Preliminary, highly likely to contain numerous errors

Pivoting Object Tracking System

N3ZI Digital Dial Manual For kit with Serial LCD Rev 3.04 Aug 2012

N3ZI Digital Dial Manual For kit with Backlit LCD Rev 4.00 Jan 2013 PCB

TV Character Generator

Written Progress Report. Automated High Beam System

6.111 Final Project Proposal Kelly Snyder and Rebecca Greene. Abstract

Entry Level Tool II. Reference Manual. System Level Solutions, Inc. (USA) Murphy Avenue San Martin, CA (408) Version : 1.0.

7 SEGMENT LED DISPLAY KIT

NewScope-7A Operating Manual

Senior Design Project: Blind Transmitter

1ms Column Parallel Vision System and It's Application of High Speed Target Tracking

SWITCH: Microcontroller Touch-switch Design & Test (Part 2)

PHYS 3322 Modern Laboratory Methods I Digital Devices

ECE532 Digital System Design Title: Stereoscopic Depth Detection Using Two Cameras. Final Design Report

Nutube.US. 6P1 Evaluation Board. User Manual

Documentation VFD clock 8 a clock

SingMai Electronics SM06. Advanced Composite Video Interface: HD-SDI to acvi converter module. User Manual. Revision 0.

Design and Implementation of an AHB VGA Peripheral

DSO138mini Troubleshooting Guide

Group 1. C.J. Silver Geoff Jean Will Petty Cody Baxley

Introduction 1. Green status LED, controlled by output signal ST. Sounder, controlled by output signal Q6. Push switch on input D6

Micrel, Inc All rights reserved

VGA Controller. Leif Andersen, Daniel Blakemore, Jon Parker University of Utah December 19, VGA Controller Components

6.111 Project Proposal IMPLEMENTATION. Lyne Petse Szu-Po Wang Wenting Zheng

Dynamic Animation Cube Group 1 Joseph Clark Michael Alberts Isaiah Walker Arnold Li

Embedded System Training Module ABLab Solutions

Design and Realization of the Guitar Tuner Using MyRIO

EXOSTIV TM. Frédéric Leens, CEO

Introduction 1. Digital inputs D6 and D7. Battery connects here (red wire to +V, black wire to 0V )

TV Synchronism Generation with PIC Microcontroller

DMC550 Technical Reference

Remote Diagnostics and Upgrades

16 Stage Bi-Directional LED Sequencer

SingMai Electronics SM06. Advanced Composite Video Interface: DVI/HD-SDI to acvi converter module. User Manual. Revision th December 2016

This document is intended to provide information to allow the researcher to build their own device.

COLOUR CHANGING USB LAMP KIT

Group 1. C.J. Silver Geoff Jean Will Petty Cody Baxley

Chapter 1. Introduction to Digital Signal Processing

VLSI Design: 3) Explain the various MOSFET Capacitances & their significance. 4) Draw a CMOS Inverter. Explain its transfer characteristics

Total solder points: 123 Difficulty level: beginner 1. advanced AUDIO ANALYZER K8098. audio gea Give your. . high-tech ILLUSTRATED ASSEMBLY MANUAL

Muscle Sensor KI 2 Instructions

Triple RTD. On-board Digital Signal Processor. Linearization RTDs 20 Hz averaged outputs 16-bit precision comparator function.

MBI5050 Application Note

MAXTECH, Inc. BRC-1000 Series. C-Band Redundant LNB Systems. Technology for Communications. System Block Diagrams

WM8725 EVALUATION BOARD USER HANDBOOK. The WM8725 is high performance Stereo DAC.

8 PIN PIC PROGRAMMABLE BOARD (DEVELOPMENT BOARD & PROJECT BOARD)

Embedded System Design

CSE140L: Components and Design Techniques for Digital Systems Lab. CPU design and PLDs. Tajana Simunic Rosing. Source: Vahid, Katz

Introduction 1. Green status LED, controlled by output signal ST

SignalTap Plus System Analyzer

Mal-2 assembly guide v1.0

Digital Systems Based on Principles and Applications of Electrical Engineering/Rizzoni (McGraw Hill

Hello and welcome to this presentation of the STM32L4 Analog-to-Digital Converter block. It will cover the main features of this block, which is used

GEKCO SUBCARRIER REFERENCE OSCILLATOR MODEL SRO10 OPERATION/SERVICE MANUAL

Simple PICTIC Commands

MAKE AN RGB CONTROL KNOB.

An FPGA Based Solution for Testing Legacy Video Displays

SYSTEM DYNAMICS FILTERING LABORATORY

research platform comma.ai, github.com/commaai/neo

Design of Vision Embedded Platform with AVR

Evaluation Board For ADF Integrated VCO & Frequency Synthesizer

Alice EduPad for Tiva or MSP432 TI ARM Launchpad. User s Guide Version /23/2017

Materials: Programming Objectives:

Adding Analog and Mixed Signal Concerns to a Digital VLSI Course

Super-Doubler Device for Improved Classic Videogame Console Output

Prime Num Generator - Maker Faire 2014

RSL MusicPower Plug-In Installation Manual For Naim NAC 72 Preamp

Pixie Construction Notes

Author: Seth Reed Lakritz

OWNER S MANUAL MOTORIZED 7 WIDE TFT LCD COLOR MONITOR CNT-701

COMPOSITE VIDEO LUMINANCE METER MODEL VLM-40 LUMINANCE MODEL VLM-40 NTSC TECHNICAL INSTRUCTION MANUAL

Laboratory Exercise 4

Digital Effects Pedal Description Ross Jongeward 10 December 2014

ARCAM ALPHA 5 CD PLAYER SERVICE MANUAL

The BBC micro:bit: What is it designed to do?

AL37219C-EVB-A2 Evaluation Board

ELECTRONIC GAME KIT TEACHING RESOURCES. Version 2.0 BUILD YOUR OWN MEMORY & REACTIONS

DLP200M 2 Relay Module for Heating and Cooling Plants

NAVIGATOR OWNER S MANUAL

A MISSILE INSTRUMENTATION ENCODER

INFRARED BAT-SPEED-TRACKING DEVICE CVG Systems Baseball Edition ASENIORTHESISPROPOSAL

Multi-Key v2.4 Multi-Function Amplifier Keying Interface

LED7706/7/8. LED drivers for backlighting and lighting applications.

Pinewood Derby Finish Line Detection System

Color Programmable Control Board

Digital Strobe Tuner. w/ On stage Display

In-process inspection: Inspector technology and concept

MACH3 LaserAce Installation Manual Revision 1. MACH3 LaserAce Installation Manual

UBC Thunderbots 2009 Team Description Paper. Alim Jiwa, Amanda Li, Amir Bahador Moosavi zadeh, Howard Hu, George Stelle, Byron Knoll, Kevin Baillie,

CoLinkEx JTAG/SWD adapter USER MANUAL

Total solder points: 117 Difficulty level: beginner advanced. RGB Controller K8088 ILLUSTRATED ASSEMBLY MANUAL

V6118 EM MICROELECTRONIC - MARIN SA. 2, 4 and 8 Mutiplex LCD Driver

VLSI IEEE Projects Titles LeMeniz Infotech

Vtronix Incorporated. Simon Fraser University Burnaby, BC V5A 1S6 April 19, 1999

Dust Sensor using GP Y

r.link Video-inserter RL5-UCON7-500 Compatible with Fiat vehicles with Uconnect 7inch infotainment

Transcription:

Robot Unicorn Attack McMaster University Department of Electrical and Computer Engineering 6/30/2010 1

Table of Contents Introduction... 1 The Team... 1 Vehicle Design... 1 Body / Mechanical... 1 Electrical... 2 Algorithms... 3 Safety... 5 Performance... 5 Appendix A Schematic and Board Layout... 6 Appendix B Bill of Materials... 6

Introduction The 2010 McMaster University autonomous robot is the result of almost 9 months of cooperation between graduate and undergraduate students from the Electrical and Computer Engineering, Engineering Physics and Mechatronics departments. The robot utilizes a dual camera configuration whose images are processed by an Altera FPGA mounted on a custom designed and fabricated PCB. System Verilog was used for synthesis and verification of FPGA logic while the C programming language was used for control of non time-critical operations. The Team The team is composed of the following members: Member Name Academic Department Main Focus Mike Irvine Year 1 M.A.Sc. student (ECE) Team captain, PCB development Bryan House Year 2 M.A.Sc. student (ECE) Vision algorithm lead Dan Kish Year 4 Electrical Engineering Vehicle design and safety Emily Bot Year 3 Biomedical and Electrical Engineering Aesthetics, vehicle body design Danny Vacar Year 5 Computer Engineering and Management Documentation lead Eric Sorensen Year 5 Engineering Physics and Society Camera lead Eric Monteiro Year 5 Electrical Engineering and Management Business lead, lighting Byron Sinclair Year 3 Computer Engineering General member Virgil McLaren Year 2 Engineering Physics General member Vince Lauroum Year 3 Mechatronics General member Nick Playlen Year 1 Engineering General member Vehicle Design Body / Mechanical The body of the robot is a modified 1986 Kyosho Ultima II RC race car. Aftermarket tires and a stronger suspension provide a more stable platform under race conditions. A custom chassis was added to support an extra battery along with the required electronics. The spoiler was redesigned to hold two cameras and the emergency stop switch. A custom body was vacuum formed to prevent damage to the electrical components in case of a rollover. A large bumper on the front and back protect against undesired physical contact. The car battery mounting helped to lower the centre of gravity and reduce the chance of rollover. The extra weight on the rear from the motor and the cameras help the car be more 1

responsive in turns. All components were designed, manufactured and affixed to allow for quick assembly and disassembly. Electrical The main circuit board features an Altera Cyclone III FPGA. The FPGA allows a complete customization of the circuit and the reduction of unnecessary components and features. The FPGA runs at low power, allowing for longer operation. Throughput is also higher due to the parallelization of the system compared to a standard CPU or microcontroller solution. Developing and prototyping on an Altera DE2 board allowed rapid prototyping of multiple algorithms and hardware configurations before selecting the optimum choice. Figure 1: Basic architecture of the system. At the center of the design is a NIOS II soft-core processor which controls the outputs of the chip. All non-critical system functions are offloaded onto the processor and implemented in C. This way a significant reduction in logic resources and design time can be realized while still meeting the design criteria and timing constraints of a video processing system. The NIOS II processor takes inputs from all sensors either directly or through some intermediate processing. It then determines appropriate outputs for the motor and speed controllers. The circuit board was designed in-house using EagleCAD and customized to include a compass module. The compass module is used to maintain directional control during the drag race. 2

Algorithms All algorithms were prototyped in Matlab. There are two image processing blocks: one for pylon detection, and another for stop sign/stop light detection. Two independent cameras are used, one for each algorithm. This allows the cameras to focus on different regions without sacrificing resolution or having to partition the image, this is possible based on the parallel architecture of the FPGA. The cameras are NTSC Sony block cameras that output an analog Vertical Blanking Synching (VBS) signal. These signals are digitized using an analog to digital converter that takes the VBS signals and converts it into a YUV 4:2:2 format. These values are stored in an external SRAM chip that acts as a frame buffer. This allows for the next two fields to be constructed into one frame, while the current frame is read out for processing. Interpolation is done to convert the data to YUV 4:4:4 and smoothing is done across the fields to reduced jaggedness due to the motion between fields. Once the data is ready, it goes to one of the image processing blocks depending on which camera it originates from(stop sign or level with the robot). Both blocks are constrained to finish processing before the next frame is ready. For the camera that is level with the robot, the data is sent to the pylon detection algorithm implemented in hardware. As the pixels are streamed in, the pixel data undergoes a filtering for orange that removes all other colours from the image adaptively to account for changing light levels. This filtered data is processed to obtain a binary image. As the pixels are streamed in, an embedded memory is used to keep track of the thickness of orange pixels in each column. If a minimum amount of orange pixels in a row is reached, then it is assumed that the current section is a pylon and the first orange pixel is used. To obtain an outline of the pylons the algorithm is used with every column of the image. This creates a one dimensional array of values with the height co-ordinate stored in memory. This signal undergoes low-pass filtering to remove noise then the discrete derivative is applied. The derivative near the pylon has a characteristic signature which can easily be detected. Figure 2 shows the results of this tip detection. 3

Once the tips are detected the height needs to be found. This is done during the vertical blanking period of the input video, so the SRAM frame buffer can be accessed during this period without disrupting the frame. Each tip is corrected in location so that it is in the center of the corresponding pylon. Then a pyramid is constructed by dropping down a row and adding to the width at a rate which corresponds to the slope of a typical pylon. This is done until a level is reached that has a majority of black (non-orange) pixels in the level. The height of the pyramid is taken to be the height of the pylon. Since the height is constant and known, the distance and angle to each pylons from the robot is determined using the pinhole camera model. This was confirmed experimentally. The last step is to send an interrupt to the NIOS II processor and send each tip co-ordinate and corresponding height. The whole algorithm is implemented in hardware such that it can run at full 30 frames per second at NTSC resolution. Figure 2: This shows the different stages of the algorithm. Top left is the raw image with both frames assembled, top right is everything but orange filtered out. Bottom left is the tip detection, and bottom right shows the pyramids formed and the height. The stop sign/stop light detection takes the center of mass, histogram, and area of all red pixels from the input stream of the second camera. From the count/area/location it is determined whether a stop sign, stop light, or neither is present. It also assumes that both will not be visible at the same time, or they will be separated by a significant distance. A counter is also used to determine whether or not the stop light is showing red or green. The red light threshold is raised if the stop light is not activate at the current time, and lowered if it is. 4

Safety The emergency stop button mounted on the rear of the car, and guarantees the car will stop operating once tripped by disconnecting the batteries. The switch itself is also easier to turn off than on, because of a shroud, making it safer. A secondary wireless emergency stop has been implemented as well. The wireless emergency stop runs as a completely separate system from the FPGA. If the main system malfunctions the emergency stop will still work as predicted. The wireless emergency stop controls whether the motor signal is transmitted to the speed controller or not via a relay. If the signal is absent the controller is designed to stop the motor. One particular feature of this system is that it can be remotely stopped and reset. Another safety feature implemented is a fail-safe code, where the remote pings the car 10 times per second to keep the controller alive. If any unrecognized command arrives or the maximum timeout is reached then the relay is disengaged and the motor control is disconnected. This means if the vehicle is out of range the car will stop. Within the FPGA if no pylon tips are detected for multiple frames the FPGA goes into a safe-mode where it stops the vehicle until multiple pylon tips are in view after a short timeout. Performance The top speed was measured to be approximately 15 km/h while driving in a straight line. In drag race conditions, the battery is expected to last 6 minutes. During the circuit race the expected battery life is 9 minutes. Our testing showed that with worst case accelerating and cornering conditions we can make a full-weight car last for around 5 minutes from full charge. The image processing algorithm rejects cones further than 25 feet away because accuracy of the cone detection algorithm deteriorates significantly beyond this distance. During drag race trials the car did not deviate from its programmed heading by more then a few feet. 5

Appendix A Final Board Layout Figure 3: 3D rendering of the main circuit board Appendix B Bill of Materials Name Quantity Digikey # Price Total 1.2V Regulator 1 497-5057-ND 3.04 3.04 2.5V Regulator 1 497-1495-1-ND 1.8 1.8 Schottky Diode 2 BAT54SWT-TPTR-ND 0.62 1.24 Mosfet (headlight) 2 SI5920DC-T1-E3CT-ND 1.55 3.1 RAM 1 706-1055-ND 26.93 26.93 Oscillator 1 478-4792-1-ND 3.33 3.33 EPCS16 1 544-2567-5-ND 16.55 16.55 Connector 1 277-1721-ND 0.36 0.36 Cap 0.01 uf 10 490-1512-1-ND 0.019 0.19 Cap 0.1 uf (100nf) 100 490-1524-1-ND 0.0125 1.25 Diode for JTAG 6 641-1303-2-ND 0.5 3 R 1.69K 10 P1.69KHCT-ND 0.082 0.82 R 10K 10 541-10.0KHCT-ND 0.091 0.91 Cap 10pF (0.01n) 10 445-1269-1-ND 0.027 0.27 6

Cap 10uF 5 399-1299-1-ND 0.36 1.8 Cap 10uF (0805 instead of 0603) 20 311-1355-1-ND 0.134 2.68 Cap 10uF (1206) 10 445-1593-1-ND 0.198 1.98 R 1M 10 P1.0MGCT-ND 0.08 0.8 Diode 1 641-1420-1-ND 0.56 0.56 Cap 1nF 10 490-1494-1-ND 0.021 0.21 Connector 1 WM4201-ND 0.82 0.82 Jumper 2 WM4111-ND 0.39 0.78 crystal 1 535-10237-1-ND 0.46 0.46 R 2K 10 P2.0KGCT-ND 0.08 0.8 Cap 33uF 10 445-4060-1-ND 1.728 17.28 R 4.7K 10 541-4.7KSACT-ND 0.211 2.11 Cap 4.7uF 10 445-3470-1-ND 0.37 3.7 Cap 470pF 10 445-5076-1-ND 0.037 0.37 Cap 47pF 10 490-1419-1-ND 0.029 0.29 Cap 82nF 10 478-1238-1-ND 0.123 1.23 Video Decoder 2 ADV7183BKSTZ-ND 15.24 30.48 Ferrite Bead 10 587-1883-1-ND 0.046 0.46 Compass Header 1X04 1 S7037-ND 0.55 0.55 FPGA 1 544-2542-ND 66.43 66.43 Header PWM 1X02 1 0 0 Header GND 1X02 1 0 0 SRAM 1 706-1055-ND 26.93 26.93 BB 1 S9169-ND 0.33 0.33 Header to Servo 1X03 1 0 0 Start Button 1 SW793-ND 0.34 0.34 Voltage reg 3.3 1 AP1086T33L-UDI-ND 1.69 1.69 voltage reg 5 1 Ap1117E50GDICT-ND 0.84 0.84 RCA Jack 2 CP-1403-ND 0.74 1.48 LED 2 475-2709-1-ND 0.18 0.36 Jumper 1 WM4114-ND 0.82 0.82 Xbee Headers 4 S5751-10-ND $1.16 $4.64 Pushbuttons 6 SW402-ND $0.34 $2.04 90 deg header 4 3M9471-ND $0.34 $1.36 Relay 1 PS7241E-1ATR-ND $2.31 $2.31 0.1uF Capacitor 10 445-1316-1-ND $0.02 $0.22 60 Ohm Resistor 10 311-66.5HRCT-ND $0.07 $0.74 Battery Holder 1 2463K-ND $1.55 $1.55 TOTAL $252.49 7