ECE497 Telepresence Robot

From eLinux.org
Revision as of 11:53, 13 November 2017 by Hummcs (talk | contribs)
Jump to: navigation, search

thumb‎ Embedded Linux Class by Mark A. Yoder


Team members: Andrew Mueller and Curtis Humm

Executive Summary

The basic idea of this project is to create a mobile platform that would allow a user to control it as well as visually and verbally interact with the world around the robot.

For our proof of concept design we were able to get a robot controllable via web page that displays video feed, drives with two motors, and can take text input to display to an LCD. The robot is powered by an attached 9V Battery and has two DC motors with accompanying encoders.

We were not able to get a video display on the robot to work, or audio input/output. We also encountered issues with the range of wireless connection and using the attached battery versus 12V outlet, as both of these options slow down operation, especially when used in tandem.

Overall, we have designed a neat proof of concept and gained large amounts of experience working with pipes and flask to run programs over web applets, and we are satisfied with the proof of concept produced. Given more time, we are confident that we could implement more advanced systems.

Packaging

For the purpose of this protect we are using a small scale robot chassis with a mounted PS eye camera and LCD all controlled by a Beadle-bone Blue.

The Telepresence Robot

Installation Instructions

Steps to install program

  1. get the files from github [1]
  2. go into rc_test_motors and run the Makefile
  3. go into flask and run the install
  4. follow the instruction avlible here [2] making sure to leave the port as the defult (8081)

User Instructions

  1. Navigate to the downloaded Github repository, ECE497_Telepresence
  2. Use the commmand ./run.sh to begin the operation
  3. Navigate to 192.167.7.2:5000, you should see the control buttons, Video Feed, and LCD text input

In web applet, use forward, back, left, and right to control the wheel, and stop to halt the robot. Type text into the enter bar and press echo to update the LCD Display
To exit the program

  1. Press the end button to halt the program, then ctrl-c out of both terminals of the t-mux
  2. Run the command ./close.sh to stop the camera

Highlights

  • Communication to web applet via flask.
  • DC Motor drive.
  • Update enabled LCD Display integrated into the Web Applet
  • All systems work either independently or together.

Communications test video[3]
Movement test video[4]

Theory of Operation

The program makes use Flask to run the web server on the bone which the host will connect to. If the user connects to the correct port they will be greeted by a webpage that has buttons to control the moment of the robot as well as a video feed from the robot which is streamed using motion. When the user clicks a button a signal is placed in to a pipe that has a c program listening on. When the correct codes are sent the c code controls the motors on the robot moving it around. The c code will also call shell scripts to update the LCD display. The camera is handled in the set-up operation so that while the camera is operational, the video feed is forwarded to a port, which is displayed on the website.

Work Breakdown

Andrew

  • Research and implement video feed
  • Proof of concept website design
  • Hardware Integration

Curtis

  • DC Motor operation
  • Research into flask and pipes
  • Final website design

Together

  • Software integration
  • Testing and Documentation

Future Work

We have come up with many different idea as the taking this project farther below are some of those ideas.

  • Get two way audio
  • Get two way video
  • Scale up robot chassis to be usable in public places
  • Fine tune movement controls to be more manageable
  • Joystick controlled motion
  • Fix lag when using battery power
  • Increase operational range
  • Clean up starting and stopping the program.

Conclusions

Coming soon



thumb‎ Embedded Linux Class by Mark A. Yoder