A New Approach to Control a Robot using Android Phone and Colour Detection Technique

Similar documents
VOICE CONTROLLED ROBOT WITH REAL TIME BARRIER DETECTION AND AVERTING

Teleoperated Robot Controlling Interface: an Internet of Things Based Approach

An IoT Based Real-Time Environmental Monitoring System Using Arduino and Cloud Service

Pervasive Systems SD & Infrastructure.unit=3 WS2008

Image Processing : Introduction

Master Thesis Presentation Future Electric Vehicle on Lego By Karan Savant. Guide: Dr. Kai Huang

Portfolio. Swaroop Kumar Pal swarooppal.wordpress.com github.com/swarooppal1088

Getting Started with the micro:bit

e-paper ESP866 Driver Board USER MANUAL

Object Detection and Tracking Robot using Android, Arduino and Open CV

BUILD AN ARDUINO 101 DATA LOGGER WITH THE TI SENSORTAG

WifiBotics. An Arduino Based Robotics Workshop

Voice Command Based Robotic Vehicle Control

GESTURE RECOGNITION SOLUTION FOR PRESENTATION CONTROL

ReVRSR: Remote Virtual Reality for Service Robots

OPEN CV BASED AUTONOMOUS RC-CAR

Collaborative Robotic Navigation Using EZ-Robots

DTMF based Surveillance Robot

Devastator Tank Mobile Platform with Edison SKU:ROB0125

Developing a Computer Vision System for Autonomous Rover Navigation

ARTIFICIAL ROBOT NAVIGATION BASED ON GESTURE AND SPEECH RECOGNITION

Sri Shakthi Institute of Engg and Technology, Coimbatore, TN, India.

Contrive and Effectuation of Active Distance Sensor Using MATLAB and GUIDE Package

Embedded Systems & Robotics (Winter Training Program) 6 Weeks/45 Days

EOS 80D (W) Wireless Function Instruction Manual ENGLISH INSTRUCTION MANUAL

Boozer Cruiser. EEL Electrical Engineering Design 2 Final Design Report. April 23, The Mobile Bartending Robot.

Moving Object Follower

idocent: Indoor Digital Orientation Communication and Enabling Navigational Technology

Momo Software Context Aware User Interface Application USER MANUAL. Burak Kerim AKKUŞ Ender BULUT Hüseyin Can DOĞAN

Cruise Automation on Marine Boats. Project Proposal Document

On the front of the board there are a number of components that are pretty visible right off the bat!

Smart Home Automation Using Internet of Things

Saturday Academy Program

Wheeled Mobile Robot Kuzma I

Developing Applications for the ROBOBO! robot

With The Arduino Part 1 Robotshop Robot Store

Smart-M3-Based Robot Interaction in Cyber-Physical Systems

LESSONS Lesson 1. Microcontrollers and SBCs. The Big Idea: Lesson 1: Microcontrollers and SBCs. Background: What, precisely, is computer science?

Follower Robot Using Android Programming

Live Hand Gesture Recognition using an Android Device

USER MANUAL FIELDBEE AND RTK BEE STATION FULL VERSION. WE PROVIDE ONLINE SUPPORT: VERSION 1.0.

RUNNYMEDE COLLEGE & TECHTALENTS

OpenCV Based Real-Time Video Processing Using Android Smartphone

Arduino Guide READ ONLINE

HOME AUTOMATION A Prototype to control home appliances automatically

Make An Arduino Controlled Robot Make Projects Tivaho

ARDUINO / GENUINO. start as professional. short course in a book. faculty of engineering technology

Workshops Elisava Introduction to programming and electronics (Scratch & Arduino)

Product Requirements Document

Space Research expeditions and open space work. Education & Research Teaching and laboratory facilities. Medical Assistance for people

CONTROLLING METHODS AND CHALLENGES OF ROBOTIC ARM

Implementation Of Vision-Based Landing Target Detection For VTOL UAV Using Raspberry Pi

Indoor Floorplan with WiFi Coverage Map Android Application

Rudimentary Swarm Robotics

Design and Implementation of an Unmanned Ground Vehicle

PS4 Remote Play review: No Farewell to Arms, but a Moveable Feast

USER GUIDE JOINING PLAYSIGHT SMARTCOURT

Endurance R/C Wi-Fi Servo Controller 2 Instructions

Android Phone Based Assistant System for Handicapped/Disabled/Aged People

Towards a Google Glass Based Head Control Communication System for People with Disabilities. James Gips, Muhan Zhang, Deirdre Anderson

USING ARDUINO AND WIFI WITH RSSI TO CONTROL LED: AN IOT BASED APPROACH

SPTF: Smart Photo-Tagging Framework on Smart Phones

Controlling LED Smartphone using Arduino

Cooking gets digital. Food becomes transparent. And much more... 06/09/12 EveryCook Page 1 of 6

Robot Jousting. A two-player interactive jousting game involving wheeled robots. Alexander Cruz, En Lei, Sunil Srinivasan, Darrel Weng

Image Processing and Particle Analysis for Road Traffic Detection

Internet of Things (Winter Training Program) 6 Weeks/45 Days

Using Infrared Array Devices in Smart Home Observation and Diagnostics

Design Concept of State-Chart Method Application through Robot Motion Equipped With Webcam Features as E-Learning Media for Children

UNIT 2 TOPICS IN COMPUTER SCIENCE. Emerging Technologies and Society

ROBOTICS & IOT. Workshop Module

ROBOTICS & IOT. Workshop Module

AUTOMATIC LICENSE PLATE RECOGNITION USING PYTHON

Digital Devices in the Digital Technologies curriculum

Validation of comprehensive energy management system based on cloud-sourced information

SIM1 Guitar. Android/iOS App for XT-1 User Manual EN

Start or stop video recording. Camera/ Video switch

NCCT IEEE PROJECTS ADVANCED ROBOTICS SOLUTIONS. Latest Projects, in various Domains. Promise for the Best Projects

Gesticulation Based Smart Surface with Enhanced Biometric Security Using Raspberry Pi

John Henry Foster INTRODUCING OUR NEW ROBOTICS LINE. Imagine Your Business...better. Automate Virtually Anything jhfoster.

AUTOMATIC NUMBER PLATE DETECTION USING IMAGE PROCESSING AND PAYMENT AT TOLL PLAZA

Arduino STEAM Academy Arduino STEM Academy Art without Engineering is dreaming. Engineering without Art is calculating. - Steven K.

NUST FALCONS. Team Description for RoboCup Small Size League, 2011

COVER STORY. how this new architecture will help carmakers master the complexity of autonomous driving.

Controlling Humanoid Robot Using Head Movements

TIS Vision Tools A simple MATLAB interface to the The Imaging Source (TIS) FireWire cameras (DFK 31F03)

Pick and Place Robotic Arm Using Arduino

IOT Based Smart Greenhouse Automation Using Arduino

School of Engineering SUMMER CAMPS PROGRAMMING : STEP BY STEP ROBOTICS & BASICS OF PROGRAMMING. INTERNET OF THINGS IoT, SMARTPHONE APPLICATIONS

CUSTOM MADE EMBEDDED AUTOMATION SYSTEMS FOR SMART HOMES PART 1: PRELIMINARY STUDY

MICROCONTROLLER BASED ULTRASONIC STICK FOR VISUALLY IMPAIRED

ROBOTIC ARM FOR OBJECT SORTING BASED ON COLOR

Training Schedule. Robotic System Design using Arduino Platform

Low-Cost, On-Demand Film Digitisation and Online Delivery. Matt Garner

Opera Duo. Opera Duo. GeoRadar Division. a first class underground survey

ROBOTIC AUTOMATION Imagine Your Business...better. Automate Virtually Anything

Compression Method for Handwritten Document Images in Devnagri Script

The Seamless Localization System for Interworking in Indoor and Outdoor Environments

CSE1710. Big Picture. Reminder

Gesture Based Smart Home Automation System Using Real Time Inputs

Transcription:

A New Approach to Control a Robot using Android Phone and Colour Detection Technique Saurav Biswas 1 Umaima Rahman 2 Asoke Nath 3 1,2,3 Department of Computer Science, St. Xavier s College, Kolkata-700016, West Bengal, India Abstract--- Android is a Linux-based, open-source operating system(os) designed to use on cell s, e-readers, tablet PCs, and other mobile devices, capable of being used as an alternative for computers having bigger form factors. Android provides a very cheap and easy platform to be the brain for controlling a robot, with arduino being an interface to connect to the H/W and controlling it. In the present paper the authors have designed and implemented the controlling of a robot s movements using distinct colored objects as recognized by the Android Application. This idea may be further extended to control a robot from a remote place also. Keywords--- Android, Color, Coordinate, Application, smarts, Robot, Hello opencv, Video Stream, Camera Robot, RGB I. INTRODUCTION Traditional methods of controlling a robot involve technical expertise and complicated hardware. On the other hand if one can use everyday objects having distinct colors, it would be much simpler and less complicated to control a robot along with decreasing the cost of the hardware. An Android Application recognizes the distinct colored objects and controls the direction of the As a mobile platform, Android has grown in popularity among hardware manufacturers and the general public alike in recent years since it is an open source software stack along with a set of API libraries for writing mobile applications that can shape the look, feel, and function of mobile handsets. Computing power, sensing capabilities and intuitive programming interfaces of Android smart s afford an inexpensive yet highly capable robotic platform. A. Constructing the Robot Preparation of the robot required an Android, Arduino BoardUNO (ATMega328), which is connected via Bluetooth Module HC-05,Adafruit Motor Shield and a robot chassis. The robot takes advantage of the sensors on the (e.g., camera, accelerometers, GPS) via the Arduino. The various components interact with each other as follows: 1) A smart running the Android operating system used as onboard computers and sensing devices. 2) An electronic board (Arduino ADK) used to interact with the motor shield and the Android Phone. 3) A motor shield (Adafruit motor shield v1) to interact with the motors and the Arduino Board 4) A Bluetooth Module used to interact with the Android Phone and the Arduino Board 5) A robot chassis. Fig. 1 Picture of the robot that we constructed. B. Developing the Android Application to detect two different colours for controlling robot s movements. An Application named Hello opencv was developed. The Hello opencv Application detects two colors whose RGB Values are fed into the Application. The Hello opencv Application with the help of the OpenCV Manger Application converts the given RGB values into HSV(Hue, Saturation and Value) Format. OpenCV provides InRange function that can be used to pick out pixels based on their values. Upper and lower threshold values has been provided to this function, it then generates a mask i.e., a binary image where foreground pixels are within the specified range. The Open CV then finds all contour points and stores it in an array. Using all the contours, OpenCV forms a rectangle boundary around the selected images. Rectangle boundary for the image1 has the coordinates: a1(x11,y11),a2(x21,y21),a3(x31,y31),a4(x41,y41) Rectangle boundary for the image2 has the coordinates: b1(x12,y12),b2(x22,y22),b3(x32,y32),b4(x42,y42) The Hello opencv Application then control the robot s direction depending upon any one of the y-coordinate of Image1(say y11) and any one of the y-coordinate of Image2(say y12) The bluetooth module receives the String and sends the String to the arduino (microcontroller). The arduino (microcontroller) on finally receiving the directions moves the robot along the desired direction. The algorithm of controlling the robot s movements is given in Section III. Of this paper. www.ijcsit.com 2985

C. Designing the Graphical User Interface (GUI) of the Hello opencv Application. For effective execution of the application, a hassle free and an intuitive Graphical User Interface (GUI) is required. The application connects to the robot It then asks for the RGB values of any two colours which is to be focused. D. Designing and developing Android Applications which can stream real-time video of the Controlling the robot s movements without seeing it would require an application that can stream a video displaying the robot s location to a screen from where the robot is being controlled. This requires two Android Smarts. One is installed on the robot (receiver ) the other is with the user (controller ). The two s are connected using Wi-Fi connection. The Wi-Fi connection is established using a Wi-Fi router to which the two s are connected. In absence of a Wi-Fi router, any of the two s (controller/receiver) is made the Wi-Fi router by enabling the Wi-Fi hotspot option. The other is then connected to it. The receiver runs an application to receive the IP address of the device. The IP address obtained from the receiver is inputted in another application which runs on the controller along with the password. On hitting the Log In button the connection is established between the two s. The receiver s camera opens up and streams the video to the controller. Fig. 2 Screenshot of the Hello opencv Application Functionality of the buttons present in the Hello opencv Application: - The Start Processing Button opens the Camera Application of the and focuses on the two colours whose RGB value with which it has been provided. - The Change Color button gives the option to change the RGB values at any time. Fig. 4 Screenshot of the Video Stream Application used in the Receiver (the on the mounted on the robot). Functionality of the buttons present in the Video Stream Application are as follows: -The Image Resolution button provides a list of video resolution to choose from. -The Start button opens the camera application of the and starts recording. -A password has to be entered in the text-field for Password Fig. 3 The Application focuses on the given two RGB values once the Start processing button is pressed. In this case one of the RGB value is a shade of yellow and the other is a shade of green as marked by red rectangles. Fig. 5 Screenshot of the Camera Robot Application used in the Controller (the with the Controller). www.ijcsit.com 2986

Functionality of the buttons present in the Camera Robot Application: - In the text-field provided for the label IP Address, the IP Address of the receiver s has to be entered. -In the text-field provided for the label Target Password, the same password which was entered in the receiver has to be entered. -The LOG IN button sends the Target Password to the Device whose IP Address has been provided in the textfield for IP Address. If the password matches the receiver sends a positive acknowledgement and starts streaming the video. If the password does not match it sends a negative acknowledgement and a message is displayed on the controller saying that connection failed to establish. II. LITERATURE SURVEY A. Android SDK The true appeal of Android as a development environment lies in the APIs it provides. As an application-neutral platform, Android gives the opportunity to create applications that are as much a part of the as anything provided out of the box. The following list highlights some of the most noteworthy Android features: No licensing, distribution, or development fees Wi-Fi hardware access Comprehensive APIs for location-based services such as GPS APIs for accelerometer and compass hardware IPC message passing Shared data stores An integrated open source Web Kit-based browser Full support for applications that integrate Map controls as part of their user interface An application framework that encourages reuse of application components and the replacement of native applications. Using Eclipse with the ADT plug-in for Android development offers some significant advantages. Eclipse is an open source IDE (integrated development environment) particularly popular for Java development. It s available to download for each of the development platforms supported by Android (Windows, Mac OS, and Linux) from the Eclipse foundation homepage: www.eclipse.org/downloads/ B. Arduino IDE The open-source Arduino Software (IDE) makes it easy to write code and upload it to the board. It runs on Windows, Mac OS X, and Linux. The environment is written in Java and based on processing and other open-source software. C. OpenCV Open Source Computer Vision is a library of programming functions mainly aimed at real-time computer vision, developed by Intel Russia research center in Nizhny Novgorod, and now supported by Willow Garage and Itseez. It is free for use under the open-source BSD license. The library is cross-platform. It focuses mainly on real-time image processing. III. ALGORITHM A. Algorithm for controlling the movements of the robot by detecting two colours using the Hello opencv Application. // contours1.size() is the area of the first color. //contour2.size() is the area of the second color. if (contours1.size() == 0 && contours2.size() == 0) sendstring( stop ); // Stops the robot // if both the colors are out of focus then the robot is made to stop. if (contours1.size() == 0 contours2.size() == 0) sendstring( reverse ); // Moves the robot in the Reverse direction // if anyone color is out of focus then the robot is made to traverse in the reverse direction. Difference = difference between y11 and y12; //initial difference between any of the y coordinates of the first color and the y co-ordinate of the second color if (y11 < y12) if (y12 y11 > difference ) sendstring( left ); // Moves the robot in the Left direction sendstring( forward ); // Moves the robot in the Forward direction if (y11 y12 > difference ) sendstring( right ); // Moves the robot in the Right direction sendstring( forward ); // Moves the robot in the Forward direction www.ijcsit.com 2987

B. Algorithm for moving the robot depending upon the string received. IV. EXPERIMENTAL RESULTS // There are four motors in the robot: //motor1, motor2, motor3, motor4 //Depending on the string, the motors are made to move //forward, backward or is released. if (string = left ) motor1.run(forward); motor2.run(backward); motor3.run(backward); motor4.run(backward); if (string = right ) motor1.run(backward); motor2.run(forward); motor3.run(forward); motor4.run(forward); if (string = forward ) motor1.run(forward); motor2.run(backward); motor3.run(forward); motor4.run(forward); if (string = reverse ) motor1.run(backward); motor2.run(forward); motor3.run(backward); motor4.run(backward) if (string = stop ) motor1.run(release); motor2.run(release); motor3.run(release); motor4.run(release); Fig. 7 Hello opencv Application detects two different colored objects. It finds the Contour Points. Then makes a rectangle around the object using the contour points of the object. Fig. 8 The y co-ordinate of object1 is equal to the y coordinate of object2. Hence, the robot moves FORWARD Fig. 9 The y co-ordinate of object1 is less than the y coordinate of object2. Hence, the robot moves LEFT Fig. 6 Schematic describing the execution of the project Fig. 10 The y co-ordinate of object1 is greater than the y co-ordinate of object2. Hence, the robot moves RIGHT www.ijcsit.com 2988

Fig. 11 Video captured by the mounted on the robot is being displayed in the Application in the Controller Phone. V. CONCLUSION AND FUTURE SCOPE The experimental results show that the robot moves in accordance with the motion of the y-axis of the distinct coloured objects ( in this case two balls of different RGB values). The robot s movements can be controlled even if it is out of sight by using the Video Stream and the Camera Robot Application. These Applications help to stream real time videos and make the control easier. There can be many applications of this project with further enhancements according to one s requirements. As Android is an open source OS developed by GOOGLE suggests that the OS can be tweaked and modified when and where required provided with necessary skills. Android has been in many fields from the previous year and not just constraining itself to the smart domain. Cars(Android-Auto). Watches(Android-Wear). Home Appliances(Currently Room Heater and Home Appliances). The authors have started work to control robot from a remote area through internet. This may help to control various equipments from a remote place. REFERENCES [1] Android apk tool: A tool for reengineering Android apk files. code.google.com/p/android-apktool/. [2] Google Android SDK, http://developer.android.com/sdk/index.html [3] In U.S. market, new smart buyers increasingly embracing Android. blog.nin.com/ninwire/online_ mobile/, sep 2011. [4] ANDROID OPEN SOURCE PROJECT. Platform versions. developer.android.com/resources/dashboard/ platformversions.html. [5] CHIN, E., FELT, A. P., GREENWOOD, K., AND WAGNER, D. Analyzing inter-application communication in Android. In Proceedings of the 9th International Conference on Mobile Systems, Applications, and Services (New York, NY, USA, 2011), Mo- bisys 11, ACM, pp. 239 252. [6] Quality Software, 2001. Proceedings.Second Asia-Pacific Conference, http://ieeexplore.ieee.org/ www.ijcsit.com 2989