Sunday, May 5, 2013

Individual major Milestone


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


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