32
Big Dog’s Kryptonite controlling a RC car over a network James Crosetto BS (Computer Science and Computer Engineering) Jeremy Ellison BS (Computer Science and Computer Engineering) Seth Schwiethale BS (Computer Science)

James Crosetto BS (Computer Science and Computer Engineering) Jeremy Ellison BS (Computer Science and Computer Engineering) Seth Schwiethale BS (Computer

Embed Size (px)

Citation preview

Page 1: James Crosetto BS (Computer Science and Computer Engineering) Jeremy Ellison BS (Computer Science and Computer Engineering) Seth Schwiethale BS (Computer

Big Dog’s Kryptonite

controlling a RC car over a network

James Crosetto BS (Computer Science and Computer Engineering)Jeremy Ellison BS (Computer Science and Computer Engineering)

Seth Schwiethale BS (Computer Science)

Page 2: James Crosetto BS (Computer Science and Computer Engineering) Jeremy Ellison BS (Computer Science and Computer Engineering) Seth Schwiethale BS (Computer

project objectives

requirements/specifications

design issues/technology

what to expect

Page 3: James Crosetto BS (Computer Science and Computer Engineering) Jeremy Ellison BS (Computer Science and Computer Engineering) Seth Schwiethale BS (Computer

expanding the range of a remote control car

control car over network, similar to a printer

be able to have first person view of car’s location

project overview

Page 4: James Crosetto BS (Computer Science and Computer Engineering) Jeremy Ellison BS (Computer Science and Computer Engineering) Seth Schwiethale BS (Computer

at a glance

Page 5: James Crosetto BS (Computer Science and Computer Engineering) Jeremy Ellison BS (Computer Science and Computer Engineering) Seth Schwiethale BS (Computer

establish connection between rc car and driver’s computer

get real time visual feed

control rc car

user friendly GUI

backtracking (retracing to reacquire lost signal)

functional objectives

Page 6: James Crosetto BS (Computer Science and Computer Engineering) Jeremy Ellison BS (Computer Science and Computer Engineering) Seth Schwiethale BS (Computer

learning objectives

1. Understand Wireless Communication- Detecting availability of network- Efficient methods of sending and receiving data

2. Embedded Systems- Microprocessors- Assembly Language- C

3. R/C car design and functionality- What’s the controlling units- How do they work

Page 7: James Crosetto BS (Computer Science and Computer Engineering) Jeremy Ellison BS (Computer Science and Computer Engineering) Seth Schwiethale BS (Computer

between rc car and user’s computer TCP/IP protocol suite

◦ connection oriented ◦ reliable

sockets◦ what are they?

establish connection

Page 8: James Crosetto BS (Computer Science and Computer Engineering) Jeremy Ellison BS (Computer Science and Computer Engineering) Seth Schwiethale BS (Computer

IP camera◦ video stream ◦ wireless interface◦ linux kernel

Axis® RTSP◦ control protocol for media server◦ “play” and “pause” type of commands ◦ control of media stream properties (bit rate, res,

etc…)

real time video feed

Page 9: James Crosetto BS (Computer Science and Computer Engineering) Jeremy Ellison BS (Computer Science and Computer Engineering) Seth Schwiethale BS (Computer

Power: 5.1 V DC, max 3.5 W

Alarm output (motion, audio, external)

Open API for software integration

CPU, video processing and compression;◦ Ram: 32 MB◦ Flash: 8 MB

IP Camera

Page 10: James Crosetto BS (Computer Science and Computer Engineering) Jeremy Ellison BS (Computer Science and Computer Engineering) Seth Schwiethale BS (Computer

originally

Page 11: James Crosetto BS (Computer Science and Computer Engineering) Jeremy Ellison BS (Computer Science and Computer Engineering) Seth Schwiethale BS (Computer

with ip camera

RTSP/RTP

Page 12: James Crosetto BS (Computer Science and Computer Engineering) Jeremy Ellison BS (Computer Science and Computer Engineering) Seth Schwiethale BS (Computer

commands sent from user’s computer to camera

camera relays signal to microprocessor

microprocessor sends translated signal to car

controlling car

Page 13: James Crosetto BS (Computer Science and Computer Engineering) Jeremy Ellison BS (Computer Science and Computer Engineering) Seth Schwiethale BS (Computer

client/server

single connection

server on camera – C

client on user’s computer – Java

cmds from user to ip cam

Page 14: James Crosetto BS (Computer Science and Computer Engineering) Jeremy Ellison BS (Computer Science and Computer Engineering) Seth Schwiethale BS (Computer

create socket

bind socket to port

listen for connections

accept connection

send/receive data from connection

to use sockets

Page 15: James Crosetto BS (Computer Science and Computer Engineering) Jeremy Ellison BS (Computer Science and Computer Engineering) Seth Schwiethale BS (Computer

basic driving cmd sequence

Page 16: James Crosetto BS (Computer Science and Computer Engineering) Jeremy Ellison BS (Computer Science and Computer Engineering) Seth Schwiethale BS (Computer

since directions from client will be rapid◦ don’t want to have to wait for acknowledgment

issue

Page 17: James Crosetto BS (Computer Science and Computer Engineering) Jeremy Ellison BS (Computer Science and Computer Engineering) Seth Schwiethale BS (Computer

since directions from client will be rapid◦ don’t want to have to wait for acknowledgment

use non-blocking sockets◦ allow communication between applications

without blocking the processes using the sockets

◦ for example: java uses Selector and keys

issue

Page 18: James Crosetto BS (Computer Science and Computer Engineering) Jeremy Ellison BS (Computer Science and Computer Engineering) Seth Schwiethale BS (Computer

hardware signals

Page 19: James Crosetto BS (Computer Science and Computer Engineering) Jeremy Ellison BS (Computer Science and Computer Engineering) Seth Schwiethale BS (Computer

3 Leads: ◦ Ground◦ Vcc

◦ Pulse width modulation

RC car servo

Page 20: James Crosetto BS (Computer Science and Computer Engineering) Jeremy Ellison BS (Computer Science and Computer Engineering) Seth Schwiethale BS (Computer

speed and steering

Page 21: James Crosetto BS (Computer Science and Computer Engineering) Jeremy Ellison BS (Computer Science and Computer Engineering) Seth Schwiethale BS (Computer

RC car servo Pulse Width Modulation

Square Pulse wave of 1.0-2.0ms repeats every ~20ms

Width of pulse determines the position of the servo with 1.5ms as the normal center

The amplitude of the pulse is from the reference level to the Vcc

Vcc = 4.6-6.0V

Page 22: James Crosetto BS (Computer Science and Computer Engineering) Jeremy Ellison BS (Computer Science and Computer Engineering) Seth Schwiethale BS (Computer

IP Camera – I/O 4-pin I/O terminal

◦ 1 transistor output Max load of 100mA Max voltage of 24V DC

◦ 1 digital input Can be activated or left floating

◦ Auxiliary power and GND Max 5V DC, 2.5W Connector for main power Power to auxiliary equip, Max 50mA

Page 23: James Crosetto BS (Computer Science and Computer Engineering) Jeremy Ellison BS (Computer Science and Computer Engineering) Seth Schwiethale BS (Computer

The output of the camera can be activated every 1/100th of a second

Car steering box and speed control require differences of less than 1ms

Problem

Page 24: James Crosetto BS (Computer Science and Computer Engineering) Jeremy Ellison BS (Computer Science and Computer Engineering) Seth Schwiethale BS (Computer

RTSP/RTP

Page 25: James Crosetto BS (Computer Science and Computer Engineering) Jeremy Ellison BS (Computer Science and Computer Engineering) Seth Schwiethale BS (Computer

adding a microprocessor

rtsp/rtp

Page 26: James Crosetto BS (Computer Science and Computer Engineering) Jeremy Ellison BS (Computer Science and Computer Engineering) Seth Schwiethale BS (Computer

Receives and translates signals from the transistor output of the IP camera◦ Camera signals are 100-185ms for steering and

200-285ms for speed control Sends translated signals to steering box and

speed control Programmed with C and Assembly Written, debugged, tested using

CodeWarrior and a Dragon12 development board

microprocessor

Page 27: James Crosetto BS (Computer Science and Computer Engineering) Jeremy Ellison BS (Computer Science and Computer Engineering) Seth Schwiethale BS (Computer

Programming the microprocessor

Page 28: James Crosetto BS (Computer Science and Computer Engineering) Jeremy Ellison BS (Computer Science and Computer Engineering) Seth Schwiethale BS (Computer

Backtracking Every time the IP camera receives a

command, it stores the command in memory

If a connection is lost, the camera sends signals to the car to make it backtrack

If a connection is reestablished, backtracking stops

Page 29: James Crosetto BS (Computer Science and Computer Engineering) Jeremy Ellison BS (Computer Science and Computer Engineering) Seth Schwiethale BS (Computer

processing

can communicate directly to RTSP server on camera

have an instance of a client

GUI

Page 30: James Crosetto BS (Computer Science and Computer Engineering) Jeremy Ellison BS (Computer Science and Computer Engineering) Seth Schwiethale BS (Computer

driver view

Page 31: James Crosetto BS (Computer Science and Computer Engineering) Jeremy Ellison BS (Computer Science and Computer Engineering) Seth Schwiethale BS (Computer

all together

Page 32: James Crosetto BS (Computer Science and Computer Engineering) Jeremy Ellison BS (Computer Science and Computer Engineering) Seth Schwiethale BS (Computer

project objectives

requirements/specifications

design issues/technology

conclusion