Difference between revisions of "ECE497 Telepresence Robot"

From eLinux.org
Jump to: navigation, search
m (Updating for Fall 2018)
 
(3 intermediate revisions by 2 users not shown)
Line 1: Line 1:
[[Category:ECE497 |Pt]]
+
[[Category:ECE497Fall2017|t]]
 
{{YoderHead}}
 
{{YoderHead}}
  
Line 29: Line 29:
 
#Use the commmand ./run.sh to begin the operation
 
#Use the commmand ./run.sh to begin the operation
 
#Navigate to 192.167.7.2:5000, you should see the control buttons, Video Feed, and LCD text input
 
#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
+
#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
 
<br />
 
<br />
 
To exit the program  
 
To exit the program  
Line 46: Line 46:
  
 
== Theory of Operation ==
 
== 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 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.  
 
<!---
 
<!---
 
Give a high level overview of the structure of your software.  Are you using GStreamer?  Show a diagram of the pipeline.  Are you running multiple tasks?  Show what they do and how they interact.
 
Give a high level overview of the structure of your software.  Are you using GStreamer?  Show a diagram of the pipeline.  Are you running multiple tasks?  Show what they do and how they interact.
 
--->
 
--->
 +
 
== Work Breakdown ==
 
== Work Breakdown ==
 
Andrew
 
Andrew
Line 75: Line 77:
  
 
== Conclusions ==
 
== Conclusions ==
Coming soon
+
Over all we are happy with where we are leaving this project, although we wish we had a week or two more to continue on with our work. With more time we would have tried to get two way audio and video to fully work as this was a goal we set for our selves early on but found out we did not have to time to get it work. We also found that the 9 volt battery we used lead to a substantial slow down in communication speed so a true 12 volt power system would be beneficial. Also we with we had longer range with wireless communication as well as a lab or homework covering it.
<!---
+
 
Give some concluding thoughts about the project. Suggest some future additions that could make it even more interesting.
 
--->
 
 
{{YoderFoot}}
 
{{YoderFoot}}

Latest revision as of 06:58, 20 August 2018

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
  4. 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

Over all we are happy with where we are leaving this project, although we wish we had a week or two more to continue on with our work. With more time we would have tried to get two way audio and video to fully work as this was a goal we set for our selves early on but found out we did not have to time to get it work. We also found that the 9 volt battery we used lead to a substantial slow down in communication speed so a true 12 volt power system would be beneficial. Also we with we had longer range with wireless communication as well as a lab or homework covering it.




thumb‎ Embedded Linux Class by Mark A. Yoder