Introduction: UGV(Unmanned Ground Vehicle) for Rescue Operation

Dear friends,

Let's Talk little bit about rescue operation, In rescue operation the rescue team goes there and search for victims and rescue them. Rescue operation is pretty dangerous for rescue team as well as rescue dogs because the rescue operators don't know about the rescue environment, although they use advanced devices to know about the environment. They also use shield(special kind of dresses) to protected themselves. Think about one kind of rescue mission (like building collapse or fire rescue operation). I hope that, all of got the idea how rescue operation has been performed.

Since, Technology is our friend so we try to play with it. Try to build something that help the rescue team to perform the rescue operation more efficiently. If you are too much advanced i think that you already guess what i am talking about?. Yes, Exactly, I am talking about rescue robot (not the intelligent one like human).

In this project, I am going to show you how to build your own rescue robot(prototype and fun). You can also enjoy it when you are going to play with it.

Step 1: Things That You Need to Build

What you need exactly,

Wheels to move the robot and Motors to move the wheels and Battery to power up the motors. Then you need something to control them (controlling system/remote control, not the TV's remote) and need something thats helps you to control it not blindly but intelligently. okay, lets talked directly,

For this project, I used

  1. Rover 5 Robot Platform (https://www.sparkfun.com/products/10336) buy it from here.

  2. SparkFun Motor Driver - Dual TB6612FNG (1A) , you may choose others motor driver (https://www.sparkfun.com/products/9457 )

  3. USB Webcam (for Intelligent controlling)

  4. Battery (according to your need)

  5. Some Acrylic board (possible to use Wood/plastic board, better to use 3D printing)
  6. screws and nuts
  7. some sensors such as GAS,air quality, dust, temperature, humidity etc.....
  8. Intel Edision Iot development board with Arduino Breakout (you are free to choose the Breakout board)
  9. Grove Arduino base shield , for connecting sensors.( http://www.seeedstudio.com/wiki/Grove_-_Base_Shield )
  10. 12V Water pump (use it as a water gun/or use it to eject water) (http://www.seeedstudio.com/depot/12V-DC-Water-Pump-p-1946.html)
  11. some PVC tube and water bottle (water tank)
  12. Breadboard to connect things together.

Hope that, you have everything so lets go to build.

Step 2: Start Building From Beginning

Its up-to you how to how to design the physical structure of the Robot so, I am not going to discusses it more details. I am going to discuss you about the technical part in step by step. Its really bored who already knows about Intel Edision Board but useful for them who are in beginning level.

If you already have Intel Edision Board then its okay to start but if you don't have or just brought it or plan to buy it then follow the instruction on Intel Edision website how to connect it to the Arduino breakout board and how to flash it using Intel phone flash tools also have a look how to use ssh connection using Wi-Fi or serial port. Before starting to build this project, if possible just have a look how to perform programming on it using different programming language. In this project I used python for programming and HTML stuffs for building web interface for the robot.

Check the Motor

Use the battery to check the motor of Rover 5 be sure that they works perfectly.

Check the Webcam using your PC or laptop .

Now its time for do some programing stuffs.

Connect the Arduino sheild to the breakout board (see the photo).

  1. connect the temperature sensor to the A0 port of base shield, remember i am using grove temperature sensor and grove base shield, and run the temperatureSensor.py and check the output/result and then remove the sensor from the shield.
  2. connect the Air Quality sensor to the A0 port of the base shield and run the airQualitySensor.py and observe the result then remove the sensor from the base shield.
  3. if you want to add more sensor on your robot, just add it.
  4. I have add another sensor MQ-9 which is not a grove sensor, so i connect it to the A3 pin using the wire. other two wires goes to VCC and GND.
  5. Now time to play with Motor Driver, a little bit complex. connect the motor driver to the Base sheid using cabes according to the wiring diagram(check the photo and follow the instructions)

VM connect to external powersource in +VE terminal

VCC goes to 5V of arduino pin (base sheild)

GND goes to GND pin of Arduino board or base sheild

GND goes to GND terminal of external Battery (it has 3 GND PIN)

GND goes to GND terminal of Arduino board or base shield

A01 goes to one pin of Motor_01

A02 goes to another pin of Motor_01

B01 goes to one pin of Motor_02
B02 goes to another pin of Motor_02

PWMB goes to pin 5 of Arduino Board

PWMA goes to pin 3 of Arduino Board

STBY goes to pin 10 of Arduino Board

AIN2 goes to Pin 8

AIN1 goes to pin 9

BIN1 goes to pin 11

BIN2 goes to pin 12

  1. Remember that, i powered the motor using external power sources (The VM pin goes to the positive terminal of external power source. please remember that, all the ground should me common such as GND pin of Arduino and GND pin of Motor driver and the GND terminal of external power source must meet together, otherwise may be motor does not moving.
  2. Now, run the testMotor.py and see some stupid moving of the robot.
  3. if up to this works fine then you have done the 50% of work correctly.

N.B. Please do all of this things in your own risk, i am not responsible for any damage. Thanks for understanding.

Step 3: Put Everything Together

Now its time to put things together

Do not remove the Motor Driver from the shield.

Connect the Air Quality sensor to the AO port and temperature sensor to the A1 port of the base shield. Connect the extra gas sensor to the A3 pin (Analog Data pin) and vcc to 5 V,GND to GND pin.Plug the USB camera to USB port and do some secret job. I am kidding, just place the sw1 switch to near to USB port where you plug the Webcam.(sw1 switch on arduino breakout board where Intel Edision is connected). This Switch allows you to power the Board using 12 V power supply or 9V battery power supply. At this time you are unable to power the Board using Usb port. Remember running USB camera require more power. so, you must use external power supply to power up the Edision Board.

Its too easy, and enjoy.

I don't have the 3D printer facility as a result, my Robot is not so pretty.

N.B. Please do all of this things in your own risk, i am not responsible for any damage. Thanks for understanding.

Step 4: Adds-on Some Packages on Yocto Linux

we are now going to add some packages that is necessary for building web apps as well as streaming video.

open the terminal and update the /etc/opkg/base-feeds.conf file, followed by the update command

vi /etc/opkg/base-feeds.conf

Then add the following line and save the file in vi editor

src/gz all http://repo.opkg.net/edison/repo/all
src/gz edison http://repo.opkg.net/edison/repo/edison

src/gz core2-32 http://repo.opkg.net/edison/repo/core2-32

then run an update

opkg update

Packages for webcam

Now to use the webcam connected to the USB port, you will need the following modules/packages to be installed on the Edison.
Before you install the kernel modules, you will need to backup , increase and restore the boot partition. Use the following command to back-increase and restore the boot partition.

mkdir /home/root/boot-backup
cp -rp /boot/* /home/root/boot-backup/

umount /boot

mkfs.vfat -v -nboot -F16 /dev/mmcblk0p7

mount /boot

cp -rp /home/root/boot-backup/* /boot

rm -r /home/root/boot-backup

Now install kernel modules , which will extend the kernel for USB devices

opkg install kernel-modules

use lsusb command to check whether the OS detect your webcam

Step 5: Testing the Video Stream

We need a video streaming server to stemming real time video. I used
mpeg server for this purpose. just follow the instructions bellow for installing mpeg server. Remember you need to connect your edision board to Internet connection before downloading mpeg server. to install mpeg-stremmer

opkg install mjpg-streamer

And then use the following command to test the stream

mjpg_streamer -i "input_uvc.so -y -n -f 30 -r 320x240" -o "output_http.so -p 8080 -n -w /www”

And then got to you browser on your laptop and type the following command
and you should be able to see yourself on in the browser.

http://your-edision-ip-address:8080which in my case is http://10.10.107.41:8080
and enjoy the video stream.

Step 6: Web App Packages Instalation

Now, We going to install python flask packages for web app

open a ssh terminal of your intel Board and type the following command,

opkg install python-pip

pip install flask

if you complete everything successfully then go to the further steps.

Now, lets take a little tour on Flask.

Using an editor(vi/nano) of your choice create a file and add the python
code for a simple flask app, that helps to check whether the flask works perfectly. if you do not have nano editor then install it using this command:

opkg install nano


now test the flask using the following lines of code,

from flask import Flask
app = Flask(__name__)

@app.route("/") def hello(): return "Hello Intel Edison!"

if __name__ == "__main__": app.run(host='0.0.0.0', port=800, debug=True)

Save it and run it.

Now test the app using your browser by entering your http://edision-ip-address:800 and enjoy.

Step 7: Go for Final Steps

we are now doing the final version of our project.

so far, we are able to use sensors and control the motors also able to build the web app for our robot as well as real time video streaming using web cam. Now time to integrate everything together to build our project.

You will find all the necessary python code as well as others html,jscript,css together in the zip file.(Uddin.tar.gz)

Extract all the file in a folder and thenjust change the ip-address of the Edision device before running the python code. Just go to static folder and edit the app.js file and enter your edision-board's Ip address and save it.

You need to open two different ssh terminal, one for running python web-server and another for running mpeg-stremer.

The command for runnning mpeg_streamer:

mjpg_streamer -i "input_uvc.so -y -n -f 30 -r 320x240" -o "output_http.so -p 8080 -n -w /www”

and then run python file to another terminal. e.g. python robotserver.py

Then control your robot via WI-FI. Remember that, you are using same network to connect Robot and your PC/notebook or smart phones etc.

Thanks for your time and if you have any questions just write me, I will try my best to help you.

Robotics Contest 2016

Participated in the
Robotics Contest 2016

First Time Author Contest 2016

Participated in the
First Time Author Contest 2016

Make it Move Contest 2016

Participated in the
Make it Move Contest 2016