Information Science and Engineering Virtual Hand
Information Science and Engineering Virtual Hand
VIRTUAL HAND
CHAPTER 1
INTRODUCTION
1.1 Introduction
Technological breakthroughs have allowed automation to replace many jobs that are repetitive in nature and hazardous to human health, thus replacing human operators in many work environments. However, it has also allowed a new phenomenon to occur: the remote control of physical systems by humans through the mediation of computers. Indeed, there are still many jobs that are non-repetitive, unpredictable and hazardous to humans. Clearing up a nuclear power plant leak or exploring the extreme depths of the ocean are just some examples. Reliance on specially designed automatic machines for such jobs may prove to be inefficient, less flexible and less cost-effective than a human operator is. Therefore, a remote control system by human operators using video inspection and master-slave mechanical manipulation is used. Due to the growing popularity and also due to the research in the field of robotics, the days are very near wherein robots will replace all human activities. This project is an effort to simulate a robot, which converts the real time actions into digital signals which in turn is used to produce virtual actions. The software for this project acts as interface between the hardware devices and controller computer. Inputs to the system are taken from sensors which are fitted on the intended part or Hand. These sensors supply the real-time conditions of the hand gestures to the computer. The software processes these signals and according to received signal levels it moves the graphical picture on the monitor. That means the virtual movement is created by software part, where as real actions are captured by array of sensors. This project gives an idea of the working of a simple robot and to demonstrate the use, implementation and applications of the virtual reality technology. Here the project is designed using the VB.Net. This project is connected to the external hardware; simulator accepts the commands from the hardware and accordingly performs the desired task.
VIRTUAL HAND
Such virtual reality applications finds very important role in saving any life, doing remote works, working with hundred fold bigger than the real capacity machines etc. Virtual Hand resembles the combine use of technology like Robotics and gesture recognition. This system will recognize the hand gesture (using Data glove) and remotely control Virtual Hand (robotic arm) placed over the TCP/IP Network. Data glove can detect almost all the movements of a hand; the microcontroller based system converts some specified movements made by the gesture into data to be transmitted on the other end of the placed robotic arm. The data glove is equipped with two types of sensors: The tilt sensors and folding sensors are used to control the various functions of the robotic arm. The gesture processed data is transmitted to the robotic arm end, the arm is controlled by the microcontroller imitates the same movements performed by the user on the transmitting side. A robotic arm is a robotic manipulator, usually programmable, with similar functions to a human arm. The links of such a manipulator are connected by joints allowing either rotational motion (such as in an articulated robot) or translational (linear) displacement. The links of the manipulator can be considered to form a kinematic chain. The business end of the kinematic chain of the manipulator is called the end effectors and it is analogous to the human hand. The end effector can be designed to perform any desired task such as welding, gripping, spinning etc., depending on the application. The robot arms can be autonomous or controlled manually and can be used to perform a variety of tasks with great accuracy. The robotic arm can be fixed or mobile (i.e. wheeled) and can be designed for industrial or home applications. Gestures can originate from any bodily motion or state but commonly originate from the face or hand. Current focuses in the field include emotion recognition from the face and hand gesture recognition. Gesture recognition enables humans to interface with the machine (HMI) and interact naturally. Using the concept of gesture recognition, it is possible to control a robotic arm connected to the microcontroller. This could potentially make conventional input devices such as, keyboards and even touch-screens redundant. Controller-based gestures act as an extension of the body so that when gestures are performed, some of their motion can be conveniently captured by software.
VIRTUAL HAND
CHAPTER 2
LITERATURE SURVEY
2.1 Existing Gesture Tracking System
WSEAS- www.wseas.us/e-library/conferences/2008/uk/ISPRA/ispra-11.pdf: An augmented reality tool for vision based hand gesture recognition in a ...Proceedings PROCESSING, of the 7th WSEAS International Conference on and AUTOMATION SIGNAL of
ROBOTICS
Cambridge, UK, February 20-22,2008 ... it useful for the further use, it is required to change it ...
XMARKS- www.xmarks.com/site/www.billbuxton.com/input14.Gesture.pdf : Xmarks site page for billbuxton www.billbuxton.com/input14.Gesture.pdf with topics, reviews, ratings and comments. www.anthro.ucsd.edu/~jhaviland/Publications/HavilandGesture.pdf
Institute of Social Anthropology Publication 6. Friedrich, P. (1971). The Tara scan Suffixes of Locative Space: Meaning and Morph tactics. .. email.eva.mpg.de/~tomas/pdf/Liszkowski_AbsentEntities_09.pdf
The vocalizers themselves can always see or hear the ... were able to use the pointing gesture to make reference to absent...
VIRTUAL HAND
VIRTUAL HAND
CHAPTER 3
VIRTUAL HAND
VIRTUAL HAND
The back end is developed using SQL Server. The front end is developed using VB.Net. The product is accomplished with login facility so that specific function is available to specific user. Drawbacks of this project: Since the system is sensitive, there is a huge change in the digital output with the very little tilt of the hand, which is difficult to be handled. Low price multi-channel ADCs have a high error in their output, efficient low error ADCs are very costly.
The Robotic arms cannot actually sense and feel the object at the controlled end
7
VIRTUAL HAND
Not completely reliable in terms of medical field, future invention can overcome limitations.
VIRTUAL HAND
Availability: The system is available 100% for the user which is operational 24 hours a day. Mean Time between Failures (MTBF): The system will be developed in such a way that it may fail once in a year. Mean Time To repair (MTTR): Even if the system fails, system will be recovered back within an hour. Accuracy: The accuracy of the system is limited by the accuracy of the speed at which the user uses the system. Access Reliability: The system shall provide 100% access reliability. Performance: Response time: The splash page should be able to be downloaded within a minute using 56K modem. The system shall respond to the user not less than in 5 seconds from the time of request submittal. Throughput: The throughput depends on the number of gestures made for the given interval of time. Capability: The system is capable of recognizing 8 gestures made by the hand gloves 1 at a time.
VIRTUAL HAND
The Databases access has to be fast and reliable. High speed network bandwidth must be available for reliable communication to avoid unnecessary delay. Services should be cast off from redundancy. Efficient utilization of resources. Safety Requirements
The user authentication and authorization protocols should be secure. In case of network failure or crash there should be means to have a backup and quick communication. Security Requirements
The user authentication and authorization protocols have to be secure. Services must be divided according to user permissions.
The user on starting the application will get a welcome screen asking for username and password. All the services described in the use case will be provided in the GUI. Software interfaces SQL Server 2005 and MS Visual Studio 2008 will require for the system to run on.
Hardware interfaces Hardware interface is very important to the documentation. If the software is executed on existing hardware, all the characteristics of the hardware, including memory restrictions, should be specified.
Communications Interfaces Zigbee is used for communication between the server and the clients.
10
VIRTUAL HAND
3.3.4 Hardware and software Interfaces Circuit Description and Diagram: 3.3.4.1 KA78XX/KA78XXA 3-Terminal 1A Positive Voltage Regulator
Features Output Current up to 1A Output Voltages of 5, 6, 8, 9, 10, 12, 15, 18, 24V Thermal Overload Protection Short Circuit Protection Output Transistor Safe Operating Area Protection Description The KA78XX/KA78XXA series of three-terminal positive regulator are available in the TO-220/D-PAK package and with several fixed output voltages, making them useful in a wide range of applications. Each type employs internal current limiting, thermal shut down and safe operating area protection, making it essentially indestructible. If adequate heat sinking is provided, they can deliver over 1A output current. Although designed primarily as fixed voltage regulators, these devices can be used with external components to obtain adjustable voltages and currents.
11
VIRTUAL HAND
Description The AT89C52 is a low-power, high-performance CMOS 8-bit microcomputer with 8Kbytes of Flash programmable and erasable read only memory (PEROM). The device is manufactured using Atmels high-density non-volatile memory technology and is compatible with the industry-standard 80C51 and 80C52 instruction set and pin out. The on-chip Flash allows the program memory to be reprogrammed in-system or by a conventional non-volatile memory programmer. By combining a versatile 8-bit CPU with Flash on a monolithic chip, the Atmel AT89C52 is a powerful microcomputer which provides a highly-flexible and cost-effective solution to many embedded control applications.
12
VIRTUAL HAND
The AT89C52 provides the following standard features: 8K bytes of Flash, 256 bytes of RAM, 32 I/O lines, three 16-bit timer/counters, a six-vector two-level interrupt architecture, a full-duplex serial port, on-chip oscillator, and clock circuitry. In addition, the AT89C52 is designed with static logic for operation down to zero frequency and supports two software selectable power saving modes. The Idle Mode stops the CPU while allowing the RAM, timer/counters, serial port, and interrupt system to continue functioning. The Power-down mode saves the RAM contents but freezes the oscillator, disabling all other chip functions until the next hardware reset.
Pin Configuration
13
VIRTUAL HAND
Block Diagram
14
VIRTUAL HAND
Features Compatible with MCS-51 Products 8K Bytes of In-System Reprogrammable Flash Memory Endurance: 1,000 Write/Erase Cycles Fully Static Operation: 0 Hz to 24 MHz Three-level Program Memory Lock 256 x 8-bit Internal RAM 32 Programmable I/O Lines Three 16-bit Timer/Counters Eight Interrupt Sources Programmable Serial Channel Low-power Idle and Power-down Modes
15
VIRTUAL HAND
So, for use with the Atmel 89C51 board fit the top two wire links, and cut the top two tracks shown, for the 16F628 leave the top two links out, and don't cut the two top track breaks. This only applies if you are using the hardware USART, for software serial communications you can use any pins you like. Although it's labelled as connecting to port 1 for the Atmel 89C51 processor board, it can also be connected to other ports if required, and if not using the hardware USART.
16
VIRTUAL HAND
Circuit diagram of +5V & +12V full wave regulated power supply
1. Step-down Transformer:
The transformer rating is 230V AC at Primary and 12-0-12V, 1A across secondary winding. This transformer has a capability to deliver a current of 1A, which is more than enough to drive an electronic circuit or varying load. The 12V AC appearing across the secondary is the RMS value of the waveform and the peak value would be 12 x 1.414 = 16.8 volts. This value limits our choice of rectifier diode as 1N4007, which is having PIV rating more than 16Volts.
17
VIRTUAL HAND
2. Rectifier Stage:
The two diodes D1 & D2 are connected across the secondary winding of the transformer as a full-wave rectifier. During the positive half-cycle of secondary voltage, the end A of the secondary winding becomes positive and end B negative. This makes the diode D1 forward biased and diode D2 reverse biased. Therefore diode D1 conducts while diode D2 does not. During the negative half-cycle, end A of the secondary winding becomes negative and end B positive. Therefore diode D2 conducts while diode D1 does not. Note that current across the centre tap terminal is in the same direction for both half-cycles of input AC. voltage. Therefore, pulsating DC. is obtained at point C with respect to ground.
3. Filter Stage:
Here capacitor C1 is used for filtering purpose and connected across the rectifier output. It filters the AC. components present in the rectified DC and gives steady DC. voltage. As the rectifier voltage increases, it charges the capacitor and also supplies current to the load. When capacitor is charged to the peak value of the rectifier voltage, rectifier voltage starts to decrease. As the next voltage peak immediately recharges the capacitor, the discharge period is of very small duration. Due to this continuous charge-discharge-recharge cycle very little ripple is observed in the filtered output. Moreover, output voltage is higher as it remains substantially near the peak value of rectifier output voltage. This phenomenon is also explained in other form as: the shunt capacitor offers a low reactance path to the AC. components of current and open circuit to DC. component. During positive half cycle the capacitor stores energy in the form of electrostatic field. During negative half cycle, the filter capacitor releases stored energy to the load.
4. Voltage Regulation Stage: Across the point D and Ground there is rectified and filtered DC. In the present circuit KIA 7812 three terminal voltage regulator IC is used to get +12V and KIA 7805 voltage regulator IC is used to get +5V regulated DC. output. In the three terminals, pin 1 is input i.e., rectified & filtered DC. is connected to this pin. Pin 2 is common pin and is grounded. The pin 3 gives the stabilized DC. output to the load. The circuit shows two more decoupling capacitors C2 & C3, which provides ground path to the high frequency noise signals. Across the point E and F with respect to ground +5V & +12V stabilized or regulated DC output is measured, which can be connected to the required circuit.
18
INFORMATION SCIENCE AND ENGINEERING Table of Components List SEMICONDUCTORS IC1 IC2 D1& D2 CAPACITORS C1 C2 MISCELLANEOUS X1 230V AC Pri,14-0-14 1Amp Sec Transformer 1000 f/25V Electrolytic 0.1F Ceramic Disc type 7812 Regulator IC 7805 Regulator IC 1N4007 Rectifier Diodes
VIRTUAL HAND
1 1 2
1 1
Software Specification:
System Requirements
OS: Windows XP and above RAM: 512 MB Both End Hard Disk Space: 20 GB CPU: Intel Pentium 4 or Above MS Sql Server 2005
19
VIRTUAL HAND
Hardware Requirements
1. CPU: Intel Pentium IV and above 2. RAM: 1 GB 3. Hard Disk Space: 10 GB of free space 4. Monitor 5. Key Board 6. Mouse Controlling side 7. Tilt sensor 8. Bend sensor 9. AT89C52 microcontroller 10.ADC 0808 11. MAX 2332 12. RS232 13. Data Glove
20
VIRTUAL HAND
1. CPU: Intel Pentium IV and above 2. RAM: 1 GB 3. Hard Disk Space: 10 GB of free space 4. Monitor 5. AT89C52 microcontroller Controlled End 6.ADC 0808 7. MAX 2332 8. RS232 9. Robotic Arm 10. Camera
21
VIRTUAL HAND
CHAPTER 4
SYSTEM DESIGN
4.1 Abstract Design
4.1.1 Context flow diagram
A context flow diagram is a data flow diagram, with only one massive central process that assumes everything inside the scope of the system. It shows how the system will receive and send data flows to the external entities involved. Here the system used is gesture tracker it receives the data from the user (the one who logins to the system).On addition to that a data store is present by using which storing/retrieving and deleting of data is done.
Arm Controlled
Data Store
22
VIRTUAL HAND
4.1.2 Flowchart
Start
Yes Login
Valid
No
Yes
Menu
Modify Password
Control Arm
Logout
Insert/Delete
Data Store A
23
VIRTUAL HAND
ConnectDataGlove ( ) ConnectSerialPort ( )
Recognize (sensorobj)
GetSymbols (sensorvalues)
StartRecognition
ArmMovement ( )
24
VIRTUAL HAND
System or Process
Here input is the internal data and output is the external data. Data flows from input to output via internal process.
Level 1
General user
Valid
Login
Logout Invalid
DB
25
VIRTUAL HAND
The input given to the login is username and password .If its invalid username and password then it asks for entering the valid username and password else data is retrieved from database and the main form gets displayed. Main form contains arm control, space to display video and logout. Level 2 Modify Password
Insert
Delete
DB
In Modify password part, we can insert values into or delete values from database and reset/change the system password. Level 3 Gesture to Arm Movement
Gesture Done
Convert To Boolean
Control Arm
26
VIRTUAL HAND
In Gesture to Arm Movement, we convert the value that has been received into various arm movements.
27
VIRTUAL HAND
User
Arm Movement
Authenticate User and allow access Connection Established Menu is displayed to user Waiting for hand gesture User can select various options
Gestures are sensed and processed Microcontroller controls the hand movements Arm movements are captured by video camera and sent to the user
User can interact with various objects, by viewing the video Logout
28
VIRTUAL HAND
Tilt Sensor
MAX232
RS232
Zigbee RX/TX
Personal Computer
Microcontroller
Robotic Arm
29
VIRTUAL HAND
Chapter 5
SYSTEM IMPLEMENTATION
5.1 Tools Used:
5.1.1 .NET Framework 3.5
The Microsoft .NET Framework is a software framework that can be installed on the computers running Microsoft Windows operating systems. It includes a large library of coded solutions to common programming problems and a virtual machine that manages the execution of programs written specifically for the framework. The .NET Framework is a Microsoft offering and is intended to be used by most new applications created for the Windows platform. The frameworks Base Class Library provides a large range of features including user interface, data access, database connectivity, cryptography, web application development, numeric algorithms and network communications. The class library is used by programmers, who combine it with their own code to applications. Programs written for the .NET Framework execute in a software environment that manages the programs runtime requirements. Also part of the .NET Framework, this runtime environment is known as the Common Language Runtime (CLR). The CLR provides the appearance of an application virtual machine so that programmers need not consider the capabilities of the specific CPU that will execute the program. The CLR also provides other important services such as security, memory management and exception handling. The class library and the CLR together constitute the >NET Framework. The .NET Framework is designed to fulfil the following objectives: To provide a consistent object-oriented programming environment whether object code is stored and executed locally but Internet -distribution, or executed remotely. To provide a code-execution environment that minimizes software deployment and versioning conflicts. To provide a code-execution environment that promotes safe execution of code, including code created by an unknown or semi trusted third party.
30
VIRTUAL HAND
To provide a code-execution environment that eliminates the performance problems of scripted or interpreted environments. To make developer experience consistent across widely varying types of applications, such as Windows-based applications and Web-based applications. To build all communication on industry standards to ensure that code based on the .NET Framework can integrate with any other code.
5.1.2
Gesture recognition: Step1: Start Start2: If gesture is recognized then process data and transmit using serial port Step3: System will wait until next gesture is done. Step5: Stop
Arm Movement: Step1: Start Step2: If data is received from Pc to Controller go to step 3 Step3: Perform Movement as made by the Gesture.
SHREE DEVI INSTITUE OF TECHNOLOGY 31
VIRTUAL HAND
Step4: System will wait until next data is received, if received go to step 2 Step5: Stop
An expert user is provided with a user name and password. A valid user is only authenticated to use the system. This process of authentication provides security of the system from unauthorised access.
32
VIRTUAL HAND
The password can be changed only when the user logs into the system and by verifying the default password again for security reasons.
33
VIRTUAL HAND
The main Control form provides various features like connect video communication, control the robotic arm and change of password. Connect Video: To Visualize the Arm Movements on the controlled end. Control: Gesture control as well as Manual control. Change Password: A user may need to change password for security reasons and can modify easily though the change password method.
34
VIRTUAL HAND
The User has to input the host IP address in the Dotted Decimal Format in order to connect the system over the TCP/IP network. E.g.: 192.168.1.125
User is provided with two different modes of communication, mainly the manual and the gesture mode .The user can select either of the control type.
35
VIRTUAL HAND
When connected in gesture Mode, the following form appears and video is displayed in another form .The user can control the arm, by viewing the live video being broadcasted.
6.7 Window:
The following window shows the data being received by the system connected to the robotic arm.
SHREE DEVI INSTITUE OF TECHNOLOGY 36
VIRTUAL HAND
The manual control mode contains various buttons to control the robotic arm. Each button is associated with the arm movement. Open Close: To control the open close movement of the fingers Up - Down: To move the arm up and down. Left Right: Rotates the hand in either of the direction. Reset: Reset the Arm to still position. All the movements are stopped.
37
VIRTUAL HAND
The System connected to robotic arm displays the following form on successful connection.
38
VIRTUAL HAND
Chapter 7
TESTING
7.1 Introduction
Testing a systems capabilities is a very important task. Users are interested in getting job done and test cases should be chosen to indentify aspects of the system that will stop them from doing their job. Although errors such as seen corruption are irritating they are less disruptive than errors. Its important that system works under normal usage conditions than under occasional conditions that only arise with extreme data values. Software testing is the critical element of software quality assurance and represents the ultimate review of specifications, design and coding. The main objective of testing is 1. Executing program with the intent of finding error. 2. Design a good test case, one that has high probability of finding an as yet undiscovered error. In computer programming, unit testing is a software verification and validation method in which a programmer tests if individual units of source code are fit 4 uses. A unit is the smallest part of the application. In procedural programming a unit may be an individual function or procedure. Ideally, each test case is independent from the others: substitutes like method stubs, mock objects, fakes and test harnesses can be used to assist testing a module in isolation. Unit tests are typically written and run by software developers to ensure that code meets its design and behaves as intended, Its implementation can vary from being very manual ( pencil and paper) to being formalized as party of build automation. Integration testing sometimes called integration and testing, abbreviated I&T is the phase in software testing in which individual software modules are combined and tested as a group. It occurs after testing and before system testing. Integration testing takes as its input modules that have been unit tested, groups them in larger aggregates, applies tests defined in an intergration test plan to those aggregates, and delivers as its output the integrated system ready for system testing.
39
VIRTUAL HAND
System testing of software or hardware is testing conducted on a complete, integrated system to evaluate the systems compliance with its specified requirements. System testing falls within the scope of the black box testing, and as such, should require no knowledge of the inner design of the code or logic. As a rule, system testing takes, as its input, all of the integrated software system itself integrated with any applicable hardware system(s). The purpose of integration testing is to detect any inconsistencies between the software units that are integrated together or between any of the assemblages and the hardware. System testing is a more limiting type of testing; it seeks to detect defects both within the inter assemblages and also within the system as a whole.
40
VIRTUAL HAND
Chapter 8
CONCLUSION
8.1 Conclusion
Developing a system like Virtual Hand will help in reducing various complexities and provide solutions to many problems. The design and working of a system is useful in field of Medical Surgery, Satellite Servicing, Industries, and Defusing Bombs etc. It will be a helping hand for various situations where there is a threat to human life.
Remote operation:
technology allows enhancing basic idea of Tele-operation. It can include really complex tasks that require the dexterity of human hands. Tele-operated robots can in near future replace people at workplaces that might be hazardous to their life of health. This includes or example maintaining of nuclear power stations, works on height, works with chemicals or viruses etc.
SHREE DEVI INSTITUE OF TECHNOLOGY 41
VIRTUAL HAND
Chapter 9
REFERENCES
[1]. Kazunori Umeda Isao Furusawa and Shinya Tanaka, Recognition of Hand Gestures Using Range Images, Proceedings of the 1998 IEEW/RSJ International Conference on intelligent Robots and Systems Victoria, B.C., Canada October 1998, pp. 1727-1732 [2]. Srinivas Gutta, Jeffrey Huang, Ibrahim F. Imam, and Harry Wechsler, Face and Hand Gesture Recognition Using Hybrid Classifiers, ISBN: 0- 8186-7713-9/96, pp.164169 [3]. Jean-Christophe Lementec and Peter Bajcsy, Recognition of Am Gestures Using Multiple Orientation Sensors: Gesture Classification, 2004 IEEE Intelligent
Transportation Systems Conference Washington, D.C., USA, October 34, 2004, pp.965970 [4]. Sushmita Mitra and Tinku Acharya,Gesture Recognition: A Survey, IEEE TRANSACTIONS ON SYSTEMS, MAN, AND CYBERNETICSPART C:
APPLICATIONS AND REVIEWS, VOL. 37, NO. 3, MAY 2007, pp. 311-324 [5]. Seong-Whan Lee, Automatic Gesture Recognitionfor Intelligent Human-Robot Interaction Proceedings of the 7th International Conference on Automatic Face and Gesture Recognition (FGR06) ISBN # 0-7695-2503-2/06 [6]. Md. Al-Amin Bhuiyan, On Gesture Recognition for Human-Robot Symbiosis, The 15th IEEE International Symposium on Robot and Human Interactive Communication (RO-MAN06), Hatfield, UK, September 6-8, 2006, pp.541-545
42