IMAGE PROCESSING BASED ROBOTICS WORKSHOP

ranchocucamongabrrrΤεχνίτη Νοημοσύνη και Ρομποτική

6 Νοε 2013 (πριν από 4 χρόνια και 2 μέρες)

61 εμφανίσεις

IMAGE PROCESSING

BASED ROBOTICS WORKSHOP

Course Outline:

This Course is broadly classified into 6 main sessions:

1. Introduction to Image Processing and tools presently being used in industry. Hands on
session to work on universal tool OCTAVE

2.
Implementing all the stages of image processing application on a mobile robot.

3. Methodologies to understand images and ways to work with different image processing
domains.

4. Introduction to microcontrollers and Programming of 8051 microcontroller.

5. C
ommunication with the mobile robot via serial port using OCTAVE.

6. Developing Image processing application for a mobile robot to track and follow a
colored ball.

Detailed course contents of the program:

Session
-
I



Introduction to Robotics.



History & adva
ncement of Robotics.



Overview of Humanoids, Robotic arms, UAV’s & UGV’s.



Wheeled, legged & tracked robots.



Introduction to DIP

o

Where the necessity and importance of image processing comes into picture!!!

o

What kinds of images are required for image
processing?

o

Where Image Processing can be used and how?

o

What Image Processing can do for in the field of robotics?

o

Sequence of operations in developing a vision system.

o

Formal session to give you a feel of what all image processing can do and to
what
extent of complexity it is being used in present autonomous robots.

o

Digital Camera Vs Web camera Vs Film Camera.

o

Use of Digital Images other than photography.


Why Octave? Why not Matlab, C, Java or Open CV!!!



Octave



Intel Open CV



Pros and cons of JAVA



C l
anguage



Matlab

Session II

The Octave User Interface:

This session introduces you to the main features of the OCTAVE integrated design
environment and its user interfaces. This is the important session to follow for proper
understanding of later sessions.



I
nteractively read data



Interactively plot data



Use expressions to compute new variables



Getting to know how to use Matlab help documentation effectively.

Working with Octave Variables:

Octave variables are data containers. In this session two essential
operations are
emphasized: creating variables and accessing data the variables contain. This session also
introduces OCTAVE operations for computing with data.



Creating variables



Data import from external sources



Data entry from the command line



Matrix cre
ation functions



Accessing vector and matrix data (indexing)



Row
-
column indexing



Linear indexing



Logical indexing



Vector and matrix arithmetic



Matrix and array operations



Eigen values and Eigen Vectors (Its practical use)

M
-
Files:


M
-
files are the editor fi
les used for OCTAVE programming. This session gives an
overview of how to write, edit, run, debug, and publish M
-
files. The distinction between
script and function M
-
files is highlighted, and basic programming structures and best
practices are introduced.



The OCTAVE Editor



Script M
-
files



The OCTAVE path



Function M
-
files



Sub functions and nested functions



Debugging



Best practices



Solution and analysis


Programming:


OCTAVE programming is a language. You speak the language through programs.
Whether you type
in a single line of code at the command prompt or assemble multiple
M
-
files into a sophisticated application, you are programming in the M language. This
section reviews basic programming techniques and best practices, and then introduces
some of the more
programming techniques that you can use to make your OCTAVE
programs robust, efficient, and user
-
friendly.




Keywords and constructions



Program structure



Handling user input



Improving code performance



Function handles

Acquiring and Viewing an Image in OCTAV
E:

I this session we learn to acquire an image using the using custom designed image
acquisition functions and to view the image in OCTAVE.



Connecting the hardware.



Retrieving hardware information.



Creating a video input object.



Configuring the video input

object.



Previewing the video stream.



Acquiring the image data.



Viewing the acquired image.


Working with Images in OCTAVE:


Understand different image types and different space conversions supported in OCTAVE.



Definition of image and analyzing it with re
spect to image processing.



Understanding Image processing terminologies.



Exploring image types.



Monochrome image.



Grayscale image



Colored image



Understanding Image parameters



Dealing with Color Spaces



Importing and exporting images in OCTAVE



Viewing the
image



Finding image pixel values



Converting image formats


Image Processing Approaches & Image Enhancement Techniques:

Enhance image characteristics by adjusting the image intensity and isolating the region of
interest



Special and Frequency domain



Pros and

Cons of Special and Frequency domain Approaches.



Adjusting image intensity



Histogram stretching



Histogram equalization



Histogram adjustment



Using arithmetic functions to enhance images



Deblurring



Thresholding



Edge Detection



Distinguishing colors

Filtering

Images:

Understand how block processing works and investigate the implementation of spatial
domain filters



Processing an image as blocks



Sliding neighborhood operations



Averaging filter



High pass



Low pass



Band pass



Processing the region of interest



Session III

Hardware Details:

Get to know about 8051 motherboard details.



Features of VisionTIX mother board.



Features of Philips 89V51RD2 microcontroller



Details of Motor Driver used(L293D)

Basics of Controller Programming:

An introduction to the embedd
ed C programming concepts will be given. Step by step
process of coding in Keil IDE, for our particular microcontroller, shall be explained.



Detailed lectures on microcontrollers and it peripherals.

o

RISC/CISC/Princeton architectures

o

Types of memories

o

In
troduction to 8
-
bit microcontrollers

o

Embedded C coding for 8051 Micro controller o 8051 pin diagram and
block diagram



Programming in C on Keil compiler



Tips and tricks to effectively use Keil



Basic & Port programming



Serial communication programming



Code debugging techniques



Code optimization techniques


Data Communication using OCTAVE:


The

last phase of image processing,

this

session deals with the concepts of accessing
serial and parallel ports

for communicating with robots:



Standard sequence of
operations to be performed for playing with external
devices.



How to create an object for parallel port, serial port and audio port.



How to configure each of them.



How to Start and Stop an Object



Tips and Tricks for using these ports effectively.



Formal p
ractical session to Controller Robot using COM port.


Session IV:

Development of Ball Following Robot:

In this exhaustive session you are expected to develop a Vision based ball follower using
the concepts of Image processing discussed earlier.



Discussing
properties of image acquisition devices



Distinguishing object from background



Finding distance of ball



Factors deciding sensitivity of the machine



Iterative image processing