Moving Object Follower

Similar documents
Total Hours Registration through Website or for further details please visit (Refer Upcoming Events Section)

An Autonomous Self- Propelled Robot Designed for Obstacle Avoidance and Fire Fighting

ROBOTIC ARM FOR OBJECT SORTING BASED ON COLOR

Project Name: SpyBot

University of Florida Department of Electrical and Computer Engineering Intelligent Machine Design Laboratory EEL 4665 Spring 2013 LOSAT

Automobile Prototype Servo Control

Performance Analysis of Ultrasonic Mapping Device and Radar

Make: Sensors. Tero Karvinen, Kimmo Karvinen, and Ville Valtokari. (Hi MAKER MEDIA SEBASTOPOL. CA

Controlling Obstacle Avoiding And Live Streaming Robot Using Chronos Watch

EITN90 Radar and Remote Sensing Lab 2

Developing a Computer Vision System for Autonomous Rover Navigation

Voice Guided Military Robot for Defence Application

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

Megamark Arduino Library Documentation

Application Note. Communication between arduino and IMU Software capturing the data

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

OPEN CV BASED AUTONOMOUS RC-CAR

Ping Pong Trainer. Cal Poly Computer Engineering Senior Project. By Aaron Atamian. Advised by Andrew Danowitz

Autonomous Obstacle Avoiding and Path Following Rover

Advanced Mechatronics 1 st Mini Project. Remote Control Car. Jose Antonio De Gracia Gómez, Amartya Barua March, 25 th 2014

Distance Measurement of an Object by using Ultrasonic Sensors with Arduino and GSM Module

Vishnu Nath. Usage of computer vision and humanoid robotics to create autonomous robots. (Ximea Currera RL04C Camera Kit)

DC motor control using arduino

AlphaBot Assembly Diagram

EE-110 Introduction to Engineering & Laboratory Experience Saeid Rahimi, Ph.D. Labs Introduction to Arduino

VOICE CONTROLLED ROBOT WITH REAL TIME BARRIER DETECTION AND AVERTING

JEPPIAAR ENGINEERING COLLEGE

HAND GESTURE CONTROLLED ROBOT USING ARDUINO

Image Processing : Introduction

Solar Powered Obstacle Avoiding Robot

Wheeled Mobile Robot Obstacle Avoidance Using Compass and Ultrasonic

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

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

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

SMART ELECTRONIC GADGET FOR VISUALLY IMPAIRED PEOPLE

Marine Debris Cleaner Phase 1 Navigation

THE ARDUINO ENGINEERING KIT INFORMATION GUIDE ARDUINO.CC/EDUCATION

ADVANCED SAFETY APPLICATIONS FOR RAILWAY CROSSING

MAKER: Development of Smart Mobile Robot System to Help Middle School Students Learn about Robot Perception

Sensors and Sensing Motors, Encoders and Motor Control

EEL5666 Intelligent Machines Design Lab. Project Report

Categories of Robots and their Hardware Components. Click to add Text Martin Jagersand

KINECT CONTROLLED HUMANOID AND HELICOPTER

SRV02-Series Rotary Experiment # 3. Ball & Beam. Student Handout

INTELLIGENT HUMANOID LEGS

IoT Based Monitoring of Industrial Safety Measures

TETRIX PULSE Workshop Guide

Team KMUTT: Team Description Paper

Park Ranger. Li Yang April 21, 2014

Content Components... 1 i. Acrylic Plates... 1 ii. Mechanical Fasteners... 3 iii. Electrical Components... 4 Introduction... 5 Getting Started... 6 Ar

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

Lab 8: Introduction to the e-puck Robot

Implementation of a Self-Driven Robot for Remote Surveillance

INTERNATIONAL JOURNAL OF ELECTRICAL ENGINEERING & TECHNOLOGY (IJEET) TWO WHEELED SELF BALANCING ROBOT FOR AUTONOMOUS NAVIGATION

OMR Auto Grading System

SMART ADAPTIVE VEHICLE LIGHTING SYSTEM Ch Prithviraj 1, K. Archana Bhange 2 1

MEM380 Applied Autonomous Robots I Winter Feedback Control USARSim

Sensors and Sensing Motors, Encoders and Motor Control

Classical Control Based Autopilot Design Using PC/104

Implementation of License Plate Recognition System in ARM Cortex A8 Board

HAPTIC BASED ROBOTIC CONTROL SYSTEM ENHANCED WITH EMBEDDED IMAGE PROCESSING

Modern Robotics with OpenCV. Widodo Budiharto

MOBILE ROBOT LOCALIZATION with POSITION CONTROL

ME375 Lab Project. Bradley Boane & Jeremy Bourque April 25, 2018

DESIGN OF A TWO DIMENSIONAL MICROPROCESSOR BASED PARABOLIC ANTENNA CONTROLLER

KMUTT Kickers: Team Description Paper

ZX Distance and Gesture Sensor Hookup Guide

Training Schedule. Robotic System Design using Arduino Platform

Visual Perception Based Behaviors for a Small Autonomous Mobile Robot

MULTI ROBOT COMMUNICATION AND TARGET TRACKING SYSTEM AND IMPLEMENTATION OF ROBOT USING ARDUINO

Boe-Bot robot manual

Built-in soft-start feature. Up-Slope and Down-Slope. Power-Up safe start feature. Motor will only start if pulse of 1.5ms is detected.

Controlling Humanoid Robot Using Head Movements

Pick and Place Robotic Arm Using Arduino

WifiBotics. An Arduino Based Robotics Workshop

Computational Crafting with Arduino. Christopher Michaud Marist School ECEP Programs, Georgia Tech

Fast, Robust Colour Vision for the Monash Humanoid Andrew Price Geoff Taylor Lindsay Kleeman

Sensing and Perception

I. INTRODUCTION MAIN BLOCKS OF ROBOT


COMPARATIVE PERFORMANCE ANALYSIS OF HAND GESTURE RECOGNITION TECHNIQUES

Mechatronics. STEAM Clown Production. STEAM Clown & Productions Copyright 2016 STEAM Clown

3-Degrees of Freedom Robotic ARM Controller for Various Applications

IoT using Raspberry Pi

Ultra Modern Robotic Helping Hand

Implementation of Number Plate Extraction for Security System using Raspberry Pi Processor

2D Floor-Mapping Car

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

Autonomous Machine To Manufacture PCB and 3-D Design

Deep Green. System for real-time tracking and playing the board game Reversi. Final Project Submitted by: Nadav Erell

FPGA-Based Autonomous Obstacle Avoidance Robot.

DISTANCE MEASUREMENT AND OBSTACLE AVOIDING USING ULTRASONIC SENSOR AND ARDUINO

Introduction to Arduino HW Labs

Optimization and Performance Evaluation of Single Axis Arduino Solar Tracker

Bit:Bot The Integrated Robot for BBC Micro:Bit

Hardware in the Loop Simulation for Unmanned Aerial Vehicles

Quanser Products and solutions

Cedarville University Little Blue

ILR #1: Sensors and Motor Control Lab. Zihao (Theo) Zhang- Team A October 14, 2016 Teammates: Amit Agarwal, Harry Golash, Yihao Qian, Menghan Zhang

Arduino Based Robot for Pick and Place Application

Transcription:

Moving Object Follower Kishan K Department of Electronics and Communnication, The National Institute of Engineering, Mysore Pramod G Kamath Department of Electronics and Communnication, The National Institute of Engineering, Mysore Sandeep Suresh Kerudi Department of Electronics and Communnication, The National Institute of Engineering, Mysore Sunil R Keri Department of Electronics and Communnication, The National Institute of Engineering, Mysore M. S. Vijaykumar Assistant Professor Department of Electronics and Communnication, The National Institute of Engineering, Mysore Abstract - Robotics originated with the goal of building human-like machines, but it has become much more than that. Even though we are still years away from human-like machines, the developing robotics technologies are proving useful in ways that nobody expected. Robot-assisted non-invasive surgery, disposal of bombs, automated lab science for drug discovery; even auto-focus features in digital cameras. One of the types of robots is the Moving Object Follower. A robot has been built that can continuously track a particular object. For this, a vision system has been setup and interfaced. Through this vision system the information of the object is obtained. On comparison of the captured image from vision system and the stored parameters of desired object, it is detected. A control mechanism is implemented for moving the vision system to the new location of the object. The motion of the vision system is accomplished with the help of servo motors. Also, the robot would move behind the object, the distance to be moved and the direction of the motion can be determined by controller unit. Hence, the geared motors form this mechanism. I. INTRODUCTION Mobile robots have the capability to move around in their environment and are not fixed to one physical location. An example of a mobile robot that is in common use today is the automated guided vehicle or automatic guided vehicle (AGV). An AGV is a mobile robot that follows markers or wires in the floor, or uses vision or lasers. Mobile robot are also found in industry, military and security environments. They also appear as consumer products, for entertainment or to perform certain tasks like vacuum cleaning. Mobile robots are the focus of a great deal of current research and almost every major university has one or more labs that focus on mobile robot research. One of the defining characteristics of real robots is that it is a kind of machine with a potential of interacting with other physical things and it can be provided with the electronic programming to do a particular job or to do a variety of actions. The other important robotic characteristics required in a machine to be classified as a robot is the ability to recognize and understand data on physical objects, or on its local physical environment, or to process data, or to respond to different stimuli. The essential characteristics of robots have been classified in the following manner: Sensing: The very basic characteristic of robots is that it must have the ability to sense its environment or the surroundings. Movement: Another of the primary robots characteristics required in machine is that it must be able to move around its surroundings. This can be done in different ways like there can be rolling on wheels propelling by thrusters a robot needs to be able to move, to count as a robot. Volume 6 Issue 1 October 2015 207 ISSN: 2319 1058

Intelligence: This is the area where programming enters into the scene. Smartness is awarded to a robot by the programmer. A programmer is a person whose job is to provide robot its smartness by the use of a controller or processor. Energy: Energy is one of the most important robots characteristics. It is necessary to have an adequate source of energy so that robot is able to power itself on its own and work for a longer period of time efficiently. II. BLOCK DIAGRAM. Fig.1 Block Diagram The block diagram of our project is as shown above. It consists of mainly the following parts: two processors i.e. raspberry pi for image processing and dagu mini driver for controlling motors, two sensors i.e. camera module for image capture and ultrasonic sensor for distance measurement, a pan tilt mechanism for sensor movement and actuators for movement of the robot. The camera captures the image. The processing is done by the raspberry pi which gives a set of parameters to the dagu mini driver. This sets the sensors in a straight line with that of the object by controlling the pan tilt mechanism and then it checks for the distance of the object. If it is greater than the minimum distance the robot moves towards it and if less than the minimum distance, the robot is stationary. This process is repeated continuously in an infinite loop unless the user turns off the system thus making it a real time embedded system. Volume 6 Issue 1 October 2015 208 ISSN: 2319 1058

III. HARDWARE REQUIRED A. RASPBERRY PI: The Raspberry Pi is a credit-card-sized single-board computer developed in the UK by the Raspberry Pi Foundation with the intention of promoting the teaching of basic computer science in schools. It does not include a built-in hard disk or solid-state drive, but it uses an SD card for booting and persistent storage. The Foundation provides Debian and Arch Linux ARM distributions. It supports various languages like python, C, JAVA, PERL etc. There are two models A and B. The latter one is used for most of the applications. B. CAMERA MODULE: The Raspberry Pi camera module can be used to take high-definition video, as well as still photographs. The camera module is very popular in home security applications, and in wildlife camera traps. One can also use it to take snapshots. C. DAGU MINI DRIVER: The Mini Driver is a low cost controller that is software compatible with the Arduino NG. With it is a built in dual FET "H" bridge and the ability to drive servos directly from the battery it makes a great motor or servo driver. The Mini Driver can be programmed using the Arduino IDE. The built in USB interface allows the controller to be programmed using a standard "A" to mini "B" USB cable. D. ULTRASONIC SENSOR: Ultrasonic sensors work on a principle similar to radar or sonar which evaluates attributes of a target by interpreting the echoes from radio or sound waves respectively. Ultrasonic sensors generate high frequency sound waves and evaluate the echo which is received back by the sensor. Sensors calculate the time interval between sending the signal and receiving the echo to determine the distance to an object. They typically use a transducer which generates sound waves in the ultrasonic range by turning electrical energy into sound, then upon receiving the echo turn the sound waves into electrical energy which can be measured and displayed. HC SR04 Module: Ultrasonic ranging module HC - SR04 provides 2cm - 400cm non-contact measurement function, the ranging accuracy can reach to 3mm. The modules includes ultrasonic transmitters, receiver and control circuit. E. PAN TILT ASSEMBLY: This assembly is used to mount sensors onto the robot. Contains a pair of miniature 9 gram servos, along with metal mounting brackets, screws. The brackets have a large number of mounting holes on them so it's possible to attach a large variety of range sensors to them. A servomotor is a rotary actuator that allows for precise control of angular position, velocity and acceleration. It consists of a suitable motor coupled to a sensor for position feedback. It also requires a relatively sophisticated controller, often a dedicated module designed specifically for use with servomotors. F. GEARED MOTORS: Two geared motors are used to drive the robot. G. POWER SUPPLY: VEX Batteries are designed to handle the large current draw typically associated with robots. The 7.2v Battery is Ni-Cd rechargeable. It is plugged directly into the Dagu Mini Driver. The robot battery pack contains Ni-Cd (Nickel-Cadmium chemical composition) rechargeable that provide significantly more energy than comparable AA Ni-Cd batteries. The Battery Packs cells will provide a constant reliable voltage until they are exhausted. Volume 6 Issue 1 October 2015 209 ISSN: 2319 1058

Contrary to popular belief, Ni-Cd batteries do not suffer from any sort of permanent memory effect. H. DAGU-PI BRIDGE The communication between the raspberry pi and the Arduino mini driver can be done using USB or serial hardware. In this project this is done using serial communication by TX and RX pins. The Arduino mini driver is transmitting at 5V but the maximum voltage the raspberry pi can receive is 3.3V. Hence a voltage conversion is required, which is obtained from the voltage divider network as shown in the figure. When transferring the data from the pi to the mini driver, voltage conversion is not required as the pi transmits at 3.3V and the mini driver receives voltages up to 5V. In addition to the TX and RX pins, common GROUND has to be done between the pi and the mini driver or else the devices may get damaged. Fig. 2 Dagu Pi bridge IV. SETTING THE PI 1. Install RASPBIAN OS in SD card. 2. Set up LAN connection. 3. Connect the pi to pc using PUTTY. 4. Install GUI interface like XMING or VNC. 5. Configure the settings using: sudo raspi-config V. OBJECT DETECTION OpenCV (Open Source Computer Vision) is a library of programming functions mainly aimed at real-time. It is free for use under the open source BSD license. The library is cross platform. It focuses mainly on real- Volume 6 Issue 1 October 2015 210 ISSN: 2319 1058

time image processing. OpenCV is written in C++ There are now full interfaces in Python, Java and MATLAB. Wrappers in other languages such as C#, Ch, Ruby have been developed to encourage adoption by a wider audience. OpenCV runs on Windows, Android, Linux. OpenCV uses CMake. VI. OBJECT TRACKING ALGORITHM Get image frame from picamera. The image is captured from the picamera connected to the raspberry pi. This is stored in RGB format by default. Convert RGB image into HSV image. Fig. 3 Original Image OpenCV usually captures images and videos in 8-bit, unsigned integer, BGR format. In other words, captured images can be considered as 3 matrices; BLUE, GREEN and RED (hence the name BGR) with integer values ranges from 0 to 255. The RGB color model has the disadvantage that its description of color is very susceptible to lighting changes. If we picture the RGB color space as a Euclidean space with axes R, G and B, and the color value of a pixel as a point in this space, consider that to define a color range in the RGB color space one would need to define ranges over the R, G and B components. This will give as a result a box in which we will define every pixel that falls in it to be a certain color. Even a small lighting change in the scene that produces the picture we are analyzing will probably affect the R, G and B components of pixels so much, that it will make pixels that were in that box move out of it. In other words, the RGB model does not closely follow humans' perception of color. It is common practice to use a different color model/space called HSV (hue, saturation and value) to determine value ranges for a color. The main advantage of using HSV to describe pixel color is that the hue component does not depend on lightning, which produces more robust results for segmentation. Volume 6 Issue 1 October 2015 211 ISSN: 2319 1058

Fig. 4 RGB Model Fig. 5 HSV Model Fig. 6 HSV Image Convert HSV image into Binary image by providing Higher and lower HSV ranges. Volume 6 Issue 1 October 2015 212 ISSN: 2319 1058

Remove unwanted Noise. Fig. 7 Threshold Image After thresholding the image, noises may be present due to presence of other objects or by reflection of light from the object. It can be removed by morphological opening and closing functions which is present in OpenCV library. Finding contours from binary image and the largest among them. Contours are white areas shown in binary image. The largest contour is considered. So, each contour is found and its area is calculated. Then we will keep largest contour and ignore other contours. Finding the centre of the object. In this project, moments functions are to calculate the position of the center of the object. 1st order spatial moments are calculated around x-axis and y-axis and also the 0th order central moments of the binary image. 0th order central moments of the binary image is equal to the white area of the image in pixels. Formula to find the centre of the object: X coordinate of the position of the center of the object = 1st order spatial moment around x-axis / 0th order central moment Y coordinate of the position of the center of the object = 1st order spatial moment around y-axis / 0th order central moment Volume 6 Issue 1 October 2015 213 ISSN: 2319 1058

Fig. 8 Processed Image All these processing is done by the rapberry pi. The coordinates of the centre of the object is given to the dagu mini driver for further processing. The programming for object tracking can be done using python, C or C++. Python is slower if used in real time hence C or C++ is used for object tracking using raspicam library which makes the processing faster because of its compiled nature. VII. OBJECT FOLLOWING The further process of pan tilt mechanism and the robot movement is done by Dagu mini driver. As specified earlier the servos for pan tilt, ultrasonic sensor for distance measurement and the geared motors for the motion of the robot are connected to the mini driver by the on board pins. The programming for the servos and the geared motors is done in Arduino IDE. The IDE is a cross-platform application written in JAVA. It includes a code editor with features such as syntax highlighting, brace matching, and automatic indentation, and is also capable of compiling and uploading programs to the board with a single click. Arduino programs are written in C or C++. The raspberry pi finds the centre of the object. This is given to the mini driver through serial communication as explained earlier. The further processing is according to the flow chart in Fig 13 Programming is done in the following steps: 1. Compare the centre of the object with the centre of the frame. This is done in order to find the position of the object in the frame so that the movement of the pan tilt and the robot can be done. 2. Control the servos and the motors. The pan tilt mechanism is controlled using the coordinates of the centre of the object. The x coordinate is used for the pan mechanism whereas the y coordinate for the tilt mechanism. The ultrasonic measures the distance and then the geared motors are also controlled by the coordinates of the centre of the object. Volume 6 Issue 1 October 2015 214 ISSN: 2319 1058

All this process of object detection and object following is done in an infinite loop at boot time by writing a script in /etc/init.d in the OS so as to make it real time application. VIII. FLOW CHART Fig. 9 Flow chart Volume 6 Issue 1 October 2015 215 ISSN: 2319 1058

IX. CONCLUSION AND SCOPE In this project, tracking of the object uses colour based object detection algorithm. HSV values of the colour of the object are used to differentiate it from the surroundings. The position of the object is found by comparing its centre with the centre of the frame. With these as inputs, the actuators drive the robot towards the object. The problems faced in this method are X. POSSIBLE IMPROVEMENTS 1. There should not be any other object with greater area and the same colour of that of the required object. If this happens our object wont be detected. 2. Masking process in object detection is environment dependent and is not efficient if more light is reflected from the object. 3. Raspberry Pi s GPIO pins when used in more number for lot of interfaces extensively causes heating of the pi to a great extent resulting in fluctuating voltages and disrupting the smooth operation of the system. The performance can be improved by changing the HSV values according to the environment and avoiding any other object of the same colour with a larger area and using Dagu mini driver for external peripherals like sensors, switches. The future enhancements can be done by using higher end processors and sophisticated object detection algorithms like SURF, Cascade classifier method and various transforms of image processing to detect the required object amidst different kinds of objects of various colours in different environmental conditions. XI. APPLICATIONS 1. Moving object detecting principles are used in rovers in space technology to find the routes for navigation. 2. It can be used as spy robots in war fields. 3. It can be used in games like cricket, football to track the ball automatically. 4. For underwater shooting and study of the life, this principle can be used. ACKNOWLEDGMENT The project on Moving Object Follower was carried out successfully with the help of our guide Mr. M. S. Vijaykumar, (Assistant Professor, Dept. of Electronics and Communication Engineering, NIE Mysore) and the assistanceship of our department. We are extremely grateful to our guide for his extensive support and guidance throughout the course and for providing us with the resources required for the project. We would also like to thank our principal, HOD, lecturers and the lab staff for direct or indirect help. BIBLIOGRAPHY http://roboticssamy.blogspot.pt/2013/11/rs4-robot.html http://www.raspberrypi.org http://learn.adafruit.com/adafruit-raspberry-pi www.uco.es/investiga/grupos/ava/node/40 http://picamera.readthedocs.org/en/release-1.2/recipes1.html http://opencv.org http://opencv-python-tutroals.readthedocs.org/en/latest/py_tutorials/py_tutorials.html http://opencv-srf.blogspot.in/2010/09/object-detection-using-color-seperation.html http://blog.dawnrobotics.co.uk/2014/01/using-dagu-mini-driver-build-raspberry-pi-camera-robot/ http://arduino.cc/en/reference/homepage http://blog.oscarliang.net/raspberry-pi-and-arduino-connected-serial-gpio/ Getting Started with Raspberry pi by Richardson and Wallace OpenCV - Python Tutorials Documentation by Abid K and Alexander Volume 6 Issue 1 October 2015 216 ISSN: 2319 1058