1 / 26

Roomba Cam

Joe Cohen http://compsci.snc.edu/cs460/cohejr. Roomba Cam. Presentation Overview. Project definition and requirements Solution process and explanation Methodology Demonstration Development process Final remarks. Project Definition.

cellen
Télécharger la présentation

Roomba Cam

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Joe Cohen http://compsci.snc.edu/cs460/cohejr Roomba Cam

  2. Presentation Overview • Project definition and requirements • Solution process and explanation • Methodology • Demonstration • Development process • Final remarks

  3. Project Definition • Mount a laptop and webcam atop a robot (iRobot Create) • Develop an application to control the Create via the laptop • Develop two separate applications: • Server: Run on laptop, take user input and control Create, capture webcam video and publish to client • Client: Run on separate computer, have full user interface to control the Create, allow for the viewing of video feed

  4. Project Definition • Connect the two applications via sockets • Develop psuedo-language to communicate between the two applications • Run the two applications over the same (wireless) router

  5. Solution ProcessCreate Control • Develop a VB application to control the Create robot • The language built into Create takes a set of codes and parameters to execute commands • Develop user interface for client application

  6. Solution ProcessCreate Control

  7. Solution ProcessPseudo-Language • Develop a pseudo-language to communicate between server and client applications • Client application takes user input, encodes and sends to server. Server decodes and executes command. • Data/Control socket uses numerical codes

  8. Solution ProcessPseudo-Language

  9. Solution ProcessSocket Connections • Sockets used to communicate between two computer/programs • Server application establishes socket and waits for client to connect to it • Connection made by IP address and port number

  10. Solution ProcessClient/Server Application • Separate current application into client and server • Client: Keep user interface, instead of calling Create control functions, encode and sent command over socket • Server: Decode code and execute Create commands

  11. Solution ProcessWireless Network • Allow the applications to run over a wireless network rather than the internet • Benefits: • Faster transmission of commands • Wireless movement of robot • Wider range

  12. Solution ProcessVideo Capture • Use Intel’s OpenCV camera library to initialize camera and capture frames • Once frames are located in memory a bitmap file is created • Using a memory dump the bitmap is displayed in a PictureBox on the screen

  13. Solution ProcessVideo Feed • Once the bitmap structure is built, it is sent down a second socket to the client application • The server constantly captures and displays the video but only sends to client when it is requested

  14. Video demonstration

  15. Solution ProcessKeyboard Control • Incorporate another control method for the user via the keyboard • Allows for basic functionality using the keyboard • Perhaps a better way to control the robot

  16. Solution Process • Project easily broke into three parts • Develop separate solutions for each part and piece together to make final product • Robot control grouped into three functions: straight, stop, and turn

  17. Solution ProcessResources • iRobot Create Open Interface manual • Previous projects by John Moss, and Bryan Jorgensen & Adam Ziegler • Internet development forums • All CS faculty

  18. Solution ProcessCS Courses & Concepts • Operating systems – COM Ports, sockets, numerical conversions • Databases – VB 6 user interface development • Event Programming – Structure and flow of windows applications

  19. Solution ProcessShortcomings • Populate COM ports on server connection form based on active COM ports • Allow for resizing of the video input window • Create respond to sensor events

  20. Solution ProcessFuture Extensions • Improve on shortcomings • Improve user interface and application feedback • Wireless camera and Create control • Incorporate video algorithms: motion tracking, object detection, etc. • Possibly integrate into .Net framework for further development

  21. Solution ProcessAdvice to Future Seniors • Work early, and work often • BACKUPS! • Divide and conquer approach, don’t get hung up on one part • Ask for help and meet with as many people as possible • Define project early and voice possible frustrations • Develop passion for project

  22. Thank you… • All CS professors • Other CS seniors • My father and the other fine employees at Manitowoc Ice • Bryan Jorgensen & Adam Ziegler • Paul Deibele

  23. Live demo • Questions ?

More Related