150 likes | 235 Views
ECE477 Project Minotaur Software Narrative. Jon Roose. Project Overview. Home Security Robot Interaction through a W ebserver Robot driven manually through house and spots intruders Relays video to web interface using kinnect. Hardware Hierarchy. Software Hierarchy. Benefits of Model.
E N D
Project Overview • Home Security Robot • Interaction through a Webserver • Robot driven manually through house and spots intruders • Relays video to web interface using kinnect
Benefits of Model • Reliance upon open source projects • Ease of access, available to HTML5 browsers • Emphasis on x86 architecture • Modularity • Scalability
Software Hierarchy - Web Interface • Apache Web Server • Serves interface to user’s web browser • HTML5 and JavaScript WebSockets • Opens efficient communication with C&C Server • Real time commands, removes HTTP reliance • RDP Video Stream • Implemented and configured through FFServer • Connects via an embedded video object
Software Hierarchy - C&C Gateway • C&C Server (Written in Python) • Mediator for command and control signals • Communicates on internal LAN with robot • Simple websocket interface with User’s browser • Leverages TCP/IP LAN interface to communicate with robot via WiFi • FFServer (Open source application) • Accepts video from Atom board and serves to user, manages RDP video stream
Software Hierarchy – Atom Board • Intelligent Drive System (C++) • Navigates room and avoids obstacles • Accepts commands on a TCP/IP socket from C&C • Interprets sensor data from Kinect and PIC24 • Converts video into YUV encoding for FFMpeg • FFMpeg (Open source application) • Accepts data via stdin from the Intelligent Drive system and packages it in an MPEG video format
IDS Software Architecture • Thread 1 - 30 FPS event loop • Transcodes and Outputs video to FFMpeg • Polls Kinect Video and Depth Sensor • Polls network socket for C&C Commands • Thread 2 - Queue driven event loop • Implements room mapping and human detection • Timers add standard events to queue • Flexible queue design allows adjusting task frequency • Communicates with PIC24 over RS232
Software Hierarchy - MicroController • Low Level Peripheral Controller (C) • Implements fail-safe obstacle avoidance • Accepts commands via 5 byte protocol over RS232 • Controls motors and polls IR sensors • Flag driven event loop • Libfreenect & OpenNI (Open source) • Library for communicating with Kinect • Retrieves depth sensor and video data • Recognizes human form
Debugging • Hardware/MicroController • Standard Reset pushbutton and debug LED • RJ11 allows for in-circuit debugging via ICD3 • Headers for port pins broken out • Printing strings over SCI • Atom Board • SSH directly into board • Sending metrics and debugging data to C&C • Sending bitmaps of room map