Difference between revisions of "WALL-E"

From ESE205 Wiki
Jump to navigation Jump to search
Line 4: Line 4:
 
==Overview==
 
==Overview==
  
We will create a robot car that can lead and warn a blind person about incoming obstacles. Once an obstacle has been detected the robot will send some form of message to the leadee's phone to alert them there is an obstacle and then the robot will take appropriate measures to avoid the obstacle and continue leading the blind human elsewhere. The robot will use micro processor, motors and sensors to determine the position of an incoming object on its way and then accordingly adjust direction in order to avoid a crash. Our motivation for this project is to learn about some of the applications of autonomous cars and to build off a previous groups project Leap Controlled RC Car which can be found here [http://classes.engineering.wustl.edu/ese205/Leap_Controlled_RC_Car (Link)] Also, here are some of the resources we are drawing from to create this project [http://blog.miguelgrinberg.com/post/building-an-arduino-robot-part-i-hardware-components (link)], [http://nevonprojects.com/obstacle-avoider-robotic-vehicle-project/ (link)] The main improvements we will be making on these projects is to give them the application of leading a person. This means the robot will need new programmable code in order to execute it's leading task and code to create a fully functioning app to assist the follower.
+
We will create a robot car that can lead and warn a blind person about incoming obstacles. Once an obstacle has been detected the robot will send some form of message to the leadee such as making a noise through speakers. The robot will use micro processor, motors and sensors to determine the position of an incoming object on its way and then accordingly adjust direction in order to avoid a crash. Our motivation for this project is to learn about some of the applications of autonomous cars and to build off a previous groups project Leap Controlled RC Car which can be found here [http://classes.engineering.wustl.edu/ese205/Leap_Controlled_RC_Car (Link)] Also, here are some of the resources we are drawing from to create this project [http://blog.miguelgrinberg.com/post/building-an-arduino-robot-part-i-hardware-components (link)], [http://nevonprojects.com/obstacle-avoider-robotic-vehicle-project/ (link)] The main improvements we will be making on these projects is to give them the application of leading a person. This means the robot will need new programmable code in order to execute it's leading task.
  
 
== Team Members ==
 
== Team Members ==
Line 11: Line 11:
  
 
== Leap Controlled RC Car [http://classes.engineering.wustl.edu/ese205/Leap_Controlled_RC_Car (Link)] ==
 
== Leap Controlled RC Car [http://classes.engineering.wustl.edu/ese205/Leap_Controlled_RC_Car (Link)] ==
This project is a continuation of the project Leap Controlled RC Car. This project will use some of the results and ideas found by Andrew O'Sullivan and David D’Agrosa. Specifically, we will be using the same concepts of controlling a small electric car with an Arduino Uno and a motor shield. Our project won't be remotely controlled, but sketches such as turning the motors will be similar with motor shield's: here is a source to access their code under the RC folder[https://github.com/djdagrosa/LeapMotion (Link)] which we will be using to familiarize ourselves with programming in Arduino.  We will be using the same idea of using Bluetooth to remotely communicate with a smartphone app. We are using a different Bluetooth from knowledge of problems with the past Bluetooth slave however. We plan to achieve the goals of remote connection and building an app along with our car from the past project while completing our new function to lead a person with the car.
+
This project is a continuation of the project Leap Controlled RC Car. This project will use some of the results and ideas found by Andrew O'Sullivan and David D’Agrosa. Specifically, we will be using the same concepts of controlling a small electric car with an Arduino Uno and a motor shield. Our project won't be remotely controlled, but sketches such as turning the motors will be similar with motor shield's: here is a source to access their code under the RC folder[https://github.com/djdagrosa/LeapMotion (Link)] which we will be using to familiarize ourselves with programming in Arduino.  
  
 
== Objectives ==
 
== Objectives ==
A successful project will at the end be an autonomous vehicle leading a person and stopping when an obstacle is encountered. This means the distance sensor is clearly sending information back to the Arduino to detect obstacles while also staying in front of the follower. Both the motor and Bluetooth shields are connected and working with the driver codes to be written. The robot is sending signals via Bluetooth when there is an obstacle ahead. The follower's phone is receiving these signals and an app message should convey some meaningful information, such as vibrating the phone and using the speakers to tell the follower which new direction the robot is going to avoid a crash.  At the end of the semester we will demonstrate our project by putting the vehicle on the ground, blindfold a project member and have the robot lead the member away from obstacles.  
+
A successful project will at the end be an autonomous vehicle leading a person moving forward and stopping when an obstacle is encountered. This means the distance sensor is clearly sending information back to the Arduino to detect obstacles while also staying in front of the follower. The motor shield is connected and working with the driver codes to be written. The robot is sending sound signals when there is an obstacle ahead. Through an IMU sensor, the robot will maintain a straight path forward. When an obstacle is encountered, it will shift by a constant angle either left or right, go a determined length forward and straighten out. The car will alert via speakers, one beep or two for directions left or right. The follower should only need to take one step to the left or right.  At the end of the semester we will demonstrate our project by putting the vehicle on the ground, blindfold a project member and have the robot lead the member forward while avoiding obstacles.  
  
 
== Challenges ==
 
== Challenges ==
The main challenges are building, connecting and sorting all the electronics together, learning how to program in Arduino and how to communicate between the robot and our phone using Bluetooth, synchronizing all the sensors to work together and creating an app: either using the IOS or Android programming language. We will spend extra time on exploring how to program in Arduino by looking at tutorials. We will also have to learn more on how to connect the motor shield, Bluetooth shield, and learn how to read basic circuit diagrams.  
+
Some of the beginning design challenges are building, connecting and sorting all the electronics together, learning how to program in Arduino and how to communicate between the robot synchronizing all the distance sensors to work together via I2C between two Arduinos and a MPU-6050 Accelerometer + Gyro . We will spend extra time on exploring how to program in Arduino by looking at tutorials. The main challenges will be getting the robot to move forward in a straight line and adjusting through slight turns when necessary, getting the car to turn an accurate angles forward, and making sure the robot stays ahead of the follower a constant distance: reversing when the person is too far away and stopping when too far ahead. All of these main challenges will be solved through coding in the Arduino, based on conditions and data gathered from the distance sensors and gyroscope.  
  
 
For privacy considerations we will make sure to constantly monitor the robot to make sure the robot doesn't go into any rooms unattended. For user safety, along with carefully watching the robot to make sure it doesn't crash we will also add bright caution tape to make sure no one steps on it. We will look into setting a pass code for blue tooth connection to prevent malicious attacks and take over. To keep the operation cost below 150 dollars the robot will be kept small. This robot is electric and leaves a small carbon footprint.  
 
For privacy considerations we will make sure to constantly monitor the robot to make sure the robot doesn't go into any rooms unattended. For user safety, along with carefully watching the robot to make sure it doesn't crash we will also add bright caution tape to make sure no one steps on it. We will look into setting a pass code for blue tooth connection to prevent malicious attacks and take over. To keep the operation cost below 150 dollars the robot will be kept small. This robot is electric and leaves a small carbon footprint.  
Line 28: Line 28:
 
**The sensor will measure distance between the robot and objects. [http://www.micropik.com/PDF/HCSR04.pdf (Spec sheet)]
 
**The sensor will measure distance between the robot and objects. [http://www.micropik.com/PDF/HCSR04.pdf (Spec sheet)]
  
*'''Seeedstudio Bluetooth 4.0 Low Energy-BLE Shield v2.1 for 23.50 at Amazon''' [https://www.amazon.com/Seeedstudio-Bluetooth-Energy-BLE-Shield-v2-1/dp/B01G71YWHM/ref=sr_1_11?ie=UTF8&qid=1474056546&sr=8-11&keywords=bluetooth+shield+arduino+uno (Link)]
+
*'''Piezo Electronic Buzzer for $5.30''' [ https://www.amazon.com/gp/product/B013TEI05A/ref=pd_sbs_328_2?ie=UTF8&psc=1&refRID=W6DJKPDN7XVG8P5T48VZ(Link)]
** We are using a Bluetooth shield for our remote connections[https://www.seeedstudio.com/Bluetooth-4.0-Low-Energy-BLE-Shield-v2.1-p-1995.html (Spec sheet)]
+
** alarm to turn left or right [https://www.arduino.cc/en/Tutorial/toneMelody(guide)]
  
 
*'''Batteries, for 9.98''' [https://www.amazon.com/BATTERY-ENERGIZER-MAX-AA-PK/dp/B0057A02C4/ref=pd_sim_229_1?ie=UTF8&psc=1&refRID=ZCK94ZR12K3JB66WSCGM (Link)]
 
*'''Batteries, for 9.98''' [https://www.amazon.com/BATTERY-ENERGIZER-MAX-AA-PK/dp/B0057A02C4/ref=pd_sim_229_1?ie=UTF8&psc=1&refRID=ZCK94ZR12K3JB66WSCGM (Link)]
Line 36: Line 36:
 
*'''Magician Chassis, for $29.95 at Amazon.''' [https://www.amazon.com/gp/product/B007R9U5CU? (Link)]
 
*'''Magician Chassis, for $29.95 at Amazon.''' [https://www.amazon.com/gp/product/B007R9U5CU? (Link)]
 
**The car's chassis, motors and battery pack. [https://www.sparkfun.com/products/retired/12866 (Spec sheet)]
 
**The car's chassis, motors and battery pack. [https://www.sparkfun.com/products/retired/12866 (Spec sheet)]
 +
 +
*'''MPU-6050 Accelerometer + Gyro supplied by class'''
 +
**gyroscope to determine angles to make sure the car goes forward in a straight line and turns a constant angle [http://playground.arduino.cc/Main/MPU-6050(guide)]
  
 
Total Budget: $123.4
 
Total Budget: $123.4

Revision as of 21:06, 14 October 2016


Overview

We will create a robot car that can lead and warn a blind person about incoming obstacles. Once an obstacle has been detected the robot will send some form of message to the leadee such as making a noise through speakers. The robot will use micro processor, motors and sensors to determine the position of an incoming object on its way and then accordingly adjust direction in order to avoid a crash. Our motivation for this project is to learn about some of the applications of autonomous cars and to build off a previous groups project Leap Controlled RC Car which can be found here (Link) Also, here are some of the resources we are drawing from to create this project (link), (link) The main improvements we will be making on these projects is to give them the application of leading a person. This means the robot will need new programmable code in order to execute it's leading task.

Team Members

Daniel Sullivan, Novi Wang, Andrew O'Sullivan (TA)

Leap Controlled RC Car (Link)

This project is a continuation of the project Leap Controlled RC Car. This project will use some of the results and ideas found by Andrew O'Sullivan and David D’Agrosa. Specifically, we will be using the same concepts of controlling a small electric car with an Arduino Uno and a motor shield. Our project won't be remotely controlled, but sketches such as turning the motors will be similar with motor shield's: here is a source to access their code under the RC folder(Link) which we will be using to familiarize ourselves with programming in Arduino.

Objectives

A successful project will at the end be an autonomous vehicle leading a person moving forward and stopping when an obstacle is encountered. This means the distance sensor is clearly sending information back to the Arduino to detect obstacles while also staying in front of the follower. The motor shield is connected and working with the driver codes to be written. The robot is sending sound signals when there is an obstacle ahead. Through an IMU sensor, the robot will maintain a straight path forward. When an obstacle is encountered, it will shift by a constant angle either left or right, go a determined length forward and straighten out. The car will alert via speakers, one beep or two for directions left or right. The follower should only need to take one step to the left or right. At the end of the semester we will demonstrate our project by putting the vehicle on the ground, blindfold a project member and have the robot lead the member forward while avoiding obstacles.

Challenges

Some of the beginning design challenges are building, connecting and sorting all the electronics together, learning how to program in Arduino and how to communicate between the robot synchronizing all the distance sensors to work together via I2C between two Arduinos and a MPU-6050 Accelerometer + Gyro . We will spend extra time on exploring how to program in Arduino by looking at tutorials. The main challenges will be getting the robot to move forward in a straight line and adjusting through slight turns when necessary, getting the car to turn an accurate angles forward, and making sure the robot stays ahead of the follower a constant distance: reversing when the person is too far away and stopping when too far ahead. All of these main challenges will be solved through coding in the Arduino, based on conditions and data gathered from the distance sensors and gyroscope.

For privacy considerations we will make sure to constantly monitor the robot to make sure the robot doesn't go into any rooms unattended. For user safety, along with carefully watching the robot to make sure it doesn't crash we will also add bright caution tape to make sure no one steps on it. We will look into setting a pass code for blue tooth connection to prevent malicious attacks and take over. To keep the operation cost below 150 dollars the robot will be kept small. This robot is electric and leaves a small carbon footprint.

Budget

  • Arduino Motor Shield R3, for $24.97 at Amazon (Link)
    • Motor shield will control the two motors on the robot. (Spec sheet)
  • 7 sensors: HC-SR04, for $5.00 each at Amazon for a total of $35.00. (Link)
    • The sensor will measure distance between the robot and objects. (Spec sheet)
  • Batteries, for 9.98 (Link)
    • Battery is used to power the shields and arduino
  • Magician Chassis, for $29.95 at Amazon. (Link)
  • MPU-6050 Accelerometer + Gyro supplied by class
    • gyroscope to determine angles to make sure the car goes forward in a straight line and turns a constant angle [2]

Total Budget: $123.4

Gantt Chart

Gantt.png