Individual Major Milestone
Our group is working on the project creating an electronic
shelf using face recognition and gesture control as and input to command to
movement of the shelf.
In the group, each member has been assigned to the different
roles in order to complete the project.
Each role is assigned to each member according to the ability,
experience, knowledge and affection of the member. However once the role has
been assigned all the member still helping out each other in order to complete
the project and stay on track to the created timeline.
My assigned roles
- Prototype: Create a prototype of the electronic
shelf to show the mechanism and the real appearance of the shelf.
- Arduino: With both coding and electronic, I am
assigned to work with Arduino to control the devices that are the driver for
the shelf.
-Gesture recoginition: This involved hand gesture
recognition using Kinect as a sensor. The processing of receiving data from
Kinect, transferring to processing and pass on the input to Arduino for the
movement of the servo and motor according the motion of user’s hand.
- Wiki page update: All the members are assigned
to this roles as the wiki page needed to be up to date therefore everyone is
required to update any progress or research on to the page.
The roles that have been assigned put me on track to work
toward the time limit. Up to this week I have a few progress contribute to the project.
My contribution to the group
- - Putting in ideas for the project’s concept
- - Editing and updating Wiki page
- - Research and ideas for mechanism of the shelf
- - Making a draft prototype
- - Designing a new mechanism to fit into the
prototype
- - Organising the materials needed for prototype
- - Research on how to motors can be used to work
with the shelf
- - Experiment with coding in Arduino
- - Create a rough coding concept through Arduino
- - Research on Gesture recognition by Kinect
Up to this stage I am struggling to get gesture recognition
working. However I have gained a lot of understanding from the research and
seeking for the way to get it working. Towards to due date of the project there
are things that I need to achieve.
My achieving goals toward the project
- - Create a final prototype. This includes all the
mechanism to work properly and demonstrate clearly the mechanic system of the
shelf.
- - Get all the elements that are needed for the
Arduino.
- - Code set for Arduino to control all the elements
in the prototype.
- - Gesture recognition to work with Arduino
- - Establish a final code with other team member to
connect face recognition, gesture control and Arduino command to work together.
- - Together with the other group member to create a
final Wiki page for submission.
For my major milestone I have them set out into 3 mains milestones. These are based on the set tasks, on my aim and objective on what I would like to achieve and establish to the project while the time to the final date. I have not a hundred percent got everything
done. Every task is still at developing stage. However the ideas and concept of
all the tasks are identified and will be worked out to complete within the
deadline of the tasks. The three main tasks are as followed;
The prototype
At this stage I have created a first draft prototype
consisting of 2 motors and 1 one servo. The aim to create a prototype is to
demonstrate the mechanism of the electronic shelf. The scale of the prototype
is approximately 1:10 scale. The prototype is built from my interpretation of
the model, animation and dimension that have been created by other group
member. Image below is the first draft prototype that I have created.
The prototype is created into 2 separate part, one is the
railing for the boxes and the top rail for moving plate.
On
the top plate, there are 3 elements installed, 1 servo and 2 motors. The plate
is cut through at the middle along the length as the let down the string and
the magnet sheet to go down and grab the boxes. There are two motors with
strings attach to the moving plate. They will control the motion of the plate
to move left and right. They are controlled by Arduino to rotate corresponding
to the speed and time.
The Servo is install on top of the moving plate. The reason
that I used servo instead of the motor because servo and be controlled the
direction as in angles as well as controlling speed easier than using motor.
Servo is attached to the rolling tube for the string that attached to a steel
sheet to go down.
The two motors at the end of plate will be power supplied by
AA battery as Arduino board is not able to supply a high power. At this stage I
still need to figure out how to control this two motors with Arduino. For a
research I realised that I will need another component called “L293D IC” in
Arduino to control both direction and speed for the motors.
As a purpose of demonstration at this stage I have not worked out the exact code and Arduino set up for the prototype. Instead of working with gesture control I started of with working with push button this is easy to integrate and test out the motor and servo. I also plug in the led light to indicate the direction of the servo when spinning.
Coming down to the second part of the prototype. This is the
rail and the boxed install on the plate. These boxed are attached to the rail
and will be able to move along the rail. The size of the box is approximately
4x4 cm and made out of cardboard. There are 5 boxed installed in this
prototype. Each box are still not attached with a steel sheet. I still need to
look for a perfect size steel sheet that can be fit to the box.
In the rail there is a 1 cm gap for the box to move and stay
in the rail.
To support the weight of boxes, the station are install.
This is only a rought draft of the prototype is still required to be
developed and clean up.
Things that need to be developed for the prototype
- - The battery and wring system to ture steel plate into magnet.
(to grab the box)
- - The motion of the two motors, rotating correspondingly
and with control speed and time.
- - Servo to rotate a particular time, this is to
control the length of the string to grab to box.
- - Boxes need to be installed with a steel plate.
- - Arduino to connect and control the two motors.
- - Clean up the look of the prototype
The shelf will be model and will be exported to Crysis
Environment. User will be able to interact with that environment. However the
prototype is an important part of this project as it can prove the mechanic
design that can be working. And it is a primary element of the project that can
be used to test out the gesture control of the position and facial recognition
control.
The Arduino
At the moment I have not put a lot of attention to the Arduino process as I would like to get the prototype done first and so I can start testing out the Arduino command on the prototype. I have a previous experience of using Arduino but not an expert at it. I know how to control a simple servo, light, speaker and etc. However when it gets complicated I am needed to do a lot of research and I found it quite hard to work with code and to get things done as the way I want.
As every steps of the research on Arduino I focus on the function of what each elements can do. In this project I focus onto the main two elements, servo and motor. There are significant differences between the two elements. Servo in this case seem to be much easier to work with as it allows user to put in a few code to command to motion of a servo whereas motor or to be specific DC motor, when putting together with Arduino it does require another component called "L293D IC" to control a speed and direction of the motor. However there are a few options to do so, I can choose to use a relay to control the polarity of the motor. At the moment I am still trying to figure out how that would work properly.
In terms of coding, Arduino provides a lot of simple code that can be modified and applied to my own design. what I need to achieve is to conduct a code that would work perfectly to command the two elements and to receive data from Processing that will act as an input to command to motion of the two elements.
Currently, I have created Arduino set that have an out put of one servo and the input of two push button. When first button is pressed the servo will would to one direction at a certain angle and when another is pressed it move to opposite direction. This is to demonstrate the idea of how the servo would move. The two button conveys the gesture control. My aim is to get the command from hand gesture control of left, right, up and down to control to rotation of the servo and motors. I also have the two colours of and LED install to indicate the direction of the servo.
Toward the end of the project, I will be working with another group member to put together the facial recognition to be a condition in Arduino code. Facial recognition will act as an input to tells the servo of motor to move at set position.
As the time that I have left before the project is due, I think I am on a good stage to do more research along with working on the coding and design on where the components of Arduino would be on the prototype. If the coding part is done I believe the rest would not to as much complicated as what I am facing at the moment.
Hand Gesture Control
From a number of a research, gesture recognition from a sensor such as Kinect or other device like webcam does work on a similar principal. There are many ways to get a gesture recognition, starting from skin colour recognition, hand segment recognition, shape recognition and etc. The main principal that I think can be used in this project is the point tracking. the way pint tracking work is to capture the shape of a hand and find a series of point. These point can be read as and and y value and these value can be transfer to the application called Processing in which will result it to the screen as will as sending data to Arduino.
At the time being, I have not yet get the gesture recognition done. Within the maximum of one week I am hoping to get this at least to recognise to hand motion, the part of coding and commanding a servo and motor will be worked out afterward.
To support the contribution of gesture control, I believe a good quality of research need to be applied. As there are many ways to get gesture control done at the time being I can not find any good resource to explain how exactly it works. What I hope to achieve is to conduct a professional research and integrate that into the project. In this way, the accurate recognition can be found.
As to the restriction of Kinect availability, Kinect can be borrowed from BECU only within a day, this decrease the time of testing out and working with Kinect therefore I strongly determine to get the Arduino system and mechanic done so I can do a specific test out with Kinect. Because this must be dealing with dimension, times according to width and heigh as well as the position of each elements in the prototype. My aim is to create an accurate gesture recognition and control over a Kinect sensor. This will satisfy the project aim and objective.
Reference
Daniel Shiffman, Getting Started with
Kinect and Processing, < http://www.shiffman.net/p5/kinect/>,
1 May 2013
Hand detection using OpenCV, < http://stackoverflow.com/questions/9168785/hand-detection-using-opencv>,
3 May 2013
Professor Roberto Cipolla, Department of
Engineering, < http://www.admin.cam.ac.uk/offices/research/documents/local/events/downloads/ict/Roberto_Cipolla.pdf>,
3 May 2013
The handy board, What is the difference
between a DC motor and servo motor, < http://handyboard.com/hb/faq/hardware-faqs/dc-vs-servo/>,
3 May 2013
No comments:
Post a Comment