ltu armadillo 2007 igvc jeremy gray, bsee; shawn ellison, mscs; phil munie, mscs; brandon bell, mscs

15
LTU Armadillo 2007 IGVC Jeremy Gray, BSEE; Shawn Ellison, MSCS; Phil Munie, MSCS; Brandon Bell, MSCS

Upload: audrey-brennan

Post on 27-Mar-2015

218 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: LTU Armadillo 2007 IGVC Jeremy Gray, BSEE; Shawn Ellison, MSCS; Phil Munie, MSCS; Brandon Bell, MSCS

LTU Armadillo

2007 IGVC

Jeremy Gray, BSEE; Shawn Ellison, MSCS; Phil Munie, MSCS; Brandon Bell, MSCS

Page 2: LTU Armadillo 2007 IGVC Jeremy Gray, BSEE; Shawn Ellison, MSCS; Phil Munie, MSCS; Brandon Bell, MSCS

Features and Innovations

• Low cost• Simple Design• Relies only on two cameras for sensor input• Written in C#/.NET

Page 3: LTU Armadillo 2007 IGVC Jeremy Gray, BSEE; Shawn Ellison, MSCS; Phil Munie, MSCS; Brandon Bell, MSCS

Development and Testing Methodology

• Final hardware platform was not ready until late in the development cycle

• Used a low cost L2Bot and LTU’s previous IGVC entry “Think Tank” as development and testing platforms

Page 4: LTU Armadillo 2007 IGVC Jeremy Gray, BSEE; Shawn Ellison, MSCS; Phil Munie, MSCS; Brandon Bell, MSCS

Hardware Overview

Page 5: LTU Armadillo 2007 IGVC Jeremy Gray, BSEE; Shawn Ellison, MSCS; Phil Munie, MSCS; Brandon Bell, MSCS

Hardware

• Roboteq AX3500 dual-channel digital motor controller

• Elexol I/O 24 relay output board • Dell Inspiron E1505, 2.0 GHz Duo-Core

processor• 2 Panasonic PV-GS320 digital camcorders• Logitech Cordless Rumblepad 2 wireless

controller

Page 6: LTU Armadillo 2007 IGVC Jeremy Gray, BSEE; Shawn Ellison, MSCS; Phil Munie, MSCS; Brandon Bell, MSCS

Motor Controller

• Roboteq AX3500 dual-channel digital motor controller

• One channel controls the overall speed for the two connected motors

• The other channel controls the difference in speed between the two connected motors, which is used for turning

Roboteq AX3500 Motor Controller

• Communicates via a RS-232 serial port using simple hexadecimal commands and responses

Page 7: LTU Armadillo 2007 IGVC Jeremy Gray, BSEE; Shawn Ellison, MSCS; Phil Munie, MSCS; Brandon Bell, MSCS

Power Relay Output Board

• Communicates with the laptop via a USB connection• Waits for simple hexadecimal commands that are encoded

in byte format• Upon completion of a command, turns on/off the

appropriate relay channel• Used for routing power to the JAUS warning signal

Elexol I/O 24 Relay Output Board

Page 8: LTU Armadillo 2007 IGVC Jeremy Gray, BSEE; Shawn Ellison, MSCS; Phil Munie, MSCS; Brandon Bell, MSCS

Remote Control Communication

• Wireless controller sends the controller state information to the wireless receiver

• Laptop interprets the controller state information and converts this information into motor controller commands

• Laptop sends motor controller command over the RS-232 serial communication connection

Page 9: LTU Armadillo 2007 IGVC Jeremy Gray, BSEE; Shawn Ellison, MSCS; Phil Munie, MSCS; Brandon Bell, MSCS

Sensors• Armadillo’s sensor design uses only two cameras connected

through a USB connection for visual interpretation. • The visual information gathered from these cameras is the only

data available for decision making.

• Advantages:– Low-cost decision making.

• Disadvantages:– No back-up method available.– Sometimes difficult to convert the 2D images into 3D

information.

Page 10: LTU Armadillo 2007 IGVC Jeremy Gray, BSEE; Shawn Ellison, MSCS; Phil Munie, MSCS; Brandon Bell, MSCS

Sensors – Camera Specs

• Armadillo utilizes two Panasonic PV-GS320 digital camcorders for its visual recognition

• The effective resolution of the cameras is 1.89 megapixels, with a video resolution of 320x240 @ 15 frames per second (fps).

Page 11: LTU Armadillo 2007 IGVC Jeremy Gray, BSEE; Shawn Ellison, MSCS; Phil Munie, MSCS; Brandon Bell, MSCS

Software Architecture

• Software written in C#, using Microsoft’s .Net 2.0 framework• The DirectX SDK is also used to interface with the camcorders and

wireless controller

Page 12: LTU Armadillo 2007 IGVC Jeremy Gray, BSEE; Shawn Ellison, MSCS; Phil Munie, MSCS; Brandon Bell, MSCS

Autonomous Challenge – Image Processing

• Each camera captures a 160x120 colored image.

• These colored images are then combined to create a single wide-view image, through the Image Fusion module.

• The wide-view image is then run through a color recognition module, which recreates the image using only a few basic colors that are in its palette.

160 x 120 Color

Raw Data Image

160 x 120 Color

Raw Data Image

Image Fusion Module

160 x 120 Color

Raw Data Image

Color Recognition

Module

Page 13: LTU Armadillo 2007 IGVC Jeremy Gray, BSEE; Shawn Ellison, MSCS; Phil Munie, MSCS; Brandon Bell, MSCS

Autonomous Challenge – Lane Following

• Divide the color recognized image into a 6x4 grid.

• Each grid section is analyzed for signs of a lane, and if discovered within the grid section, the whole grid section is activated.

• Once all grid sections have been initialized, a set of rules are used to determine which direction to turn so that the lane can be followed.

• Decision making is done by iterating through each row of the grid until a turn is requested for that row

• If all rows have been evaluated without a turn decision being made, Armadillo defaults to going straight ahead.

• Rules are applied to the rows closest to the robot first, because these rows represent the most immediate dangers.

160 x 120 Colored Raw Data Image

160 x 120 Colored

Recognized Image

6 x 4 Grid

Recognized Image

Page 14: LTU Armadillo 2007 IGVC Jeremy Gray, BSEE; Shawn Ellison, MSCS; Phil Munie, MSCS; Brandon Bell, MSCS

Autonomous Challenge – Obstacle Avoidance

• Obstacle avoidance is also handled by the lane following module.

• This is accomplished by having the objects internally seen as part of the lane.

• Thus, the objects are combined with the lane to make a larger, less elegant version of the lanes.

160 x 120 Colored Raw Data Image

160 x 120 Colored

Recognized Image

6 x 4 Grid

Recognized Image

Page 15: LTU Armadillo 2007 IGVC Jeremy Gray, BSEE; Shawn Ellison, MSCS; Phil Munie, MSCS; Brandon Bell, MSCS

JAUS Challenge

• JausCommunicator handles all communication with the OCU• JausCommunicator passes data to the JausHandler as a

JausMessage• JausHandler validates all messages and if valid, it fires the

appropriate event