0% found this document useful (0 votes)
23 views

Customized Haptic Control For VRML Object

VRML BY DR DV SHIRBHATE AMRAVTI (M.S.) INDIA
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
23 views

Customized Haptic Control For VRML Object

VRML BY DR DV SHIRBHATE AMRAVTI (M.S.) INDIA
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 26

Title of invention Customized haptic control for VRML object

First Inventor Mr. Dipak Vinayak Shirbhate


Address Rachana Residency, Ganediwal Layout, Bhagya Nagar,
Camp, Amaravati
Mobile 9226743354
E-Mail [email protected]
Second Inventor Dr. D. S. Ingole
Address Rathi Nagar, Amaravti
Mobile 9881100789
E-mail [email protected]

INTRODUCTION:

The proposed invention is a customized haptic control (electronic circuit) designed specifically
to control VRML object in real-time. The control circuit can be wired or wireless. The proposed
haptic control is a wireless circuit operated via Bluetooth. Wireless circuit will offer more
flexibility for user movement within confined region of its operation. The VRML object chosen
for customized haptic control is Virtual Desktop Lamp having sphere sensors embedded in its
arm and neck as shown in Figure 1. The neck and upper arm are connected by sphere sensor 1.
Sphere sensor gives degree of freedom to rotate neck with 3600. Different neck rotations are
shown in figure 3. Similarly, upper arm and lower arm are connected by sphere sensor 2. The
lower arm in turn is connected to base by sphere sensor 3. Some of the possible arm rotations are
shown in figure 4. The lamp has touch sensors 4 and 5 to switch lamp (ON/OFF). The switching
action is just an illusion with color interpolation as shown in Figure 2. The VRML code of
Virtual Desktop Lamp is presented separately at the end of this text in Appendix A. The
proposed invention gives haptic control for all VRML sensors embedded within an object. The
haptic control enables user to manipulate the object interactively in real time. Once operated, the
user is capable of switching between different VRML sensors with the help of selector switch.
The sphere sensor action is completely mapped with hand glove. The hand glove will be put on
user’s hand. This will enable user to operate VRML sphere sensors just with hand movements.
The different elements of customized haptic control circuit for VRML object have been
explained in the subsequent text. In the absence of proposed customized haptic control for

1|Page
VRML object, the VRML desktop lamp can be manipulated using computer mouse with the help
of VRML browser like BS Contact Player.

Figure 1: Virtual Desktop Lamp created using VRML

(1) Sphere sensor embedded in neck joint; (2) Sphere sensor embedded in upper arm; (3)
Sphere sensor embedded in lower arm (base); (4) Red Switch (Touch Sensor) ON; (5)
Blue Switch (Touch Sensor) OFF

2|Page
Figure 2: Virtual Desktop Lamp (ON/OFF) illusion created using color interpolation

Figure 3: Desktop neck rotated in all 3600 with the help of sphere sensor

3|Page
Figure 4: Desktop Lamp different arm positions

4|Page
The customized haptic control circuit consists of following major elements

REMOTE UNIT: -

The user has freedom to rotate the neck as well as arm of Virtual Desktop Lamp. The neck and
arm movements are provided by X, Y, Z coordinates which change dynamically with neck and
arm positions. These coordinates are held within matrix which can be retrieved from the VRML
code when user’s intension is to establish control over the object. The basic function of remote
unit is to retrieve and control the four parameters like coordinates of X, Y, Z axis and switch
status i.e. ON/OFF. Block diagram of simple remote unit is shown in Figure 5.

Figure 5: Block diagram of remote unit

The block diagram shows only one X, Y, Z pivot arm corresponding to one VRML sphere
sensor. It is just a simplified representation of complex system. In actual, there are three pivot
arms corresponding to VRML sphere sensors. There should be equal number of X, Y, Z

5|Page
switches corresponding to number of pivots (sphere sensors) used in lamp assembly i.e. number
of sphere sensors and number of switches should match each other. Dedicated switch for each
sphere sensor will increase complexity of circuit. As stated earlier, the virtual desktop lamp has
three VRML sphere sensors. Logically, one vertical X, Y, Z point for lamp head which seems to
be final result of all partial contribution of all X, Y, Z pivots (sphere sensors) and arm position.
Circuit simplification trick can be found in selector switch which will allow user to navigate
through different sphere sensors sequentially.

Figure 6: Remote unit fitted on hand glove

6|Page
The arrangement of selector switch is as shown in Figure 8. The circuit is equipped with selector
switch. Which when operated, it switches to next pivot i.e. VRML sphere sensor. This eliminates
independent controllers for each VRML sphere sensor thereby making circuit design simple and
easy. This trick has helped to design compact circuit assembly. The circuit is quite small in size
and can be operated by battery. It can be fitted on any small box. The movements of box will be
reflected on Virtual Desktop Lamp. In other words, it can be claimed that box movements are
fully mapped with Virtual Desktop Lamp. The box along with control circuit fitted over hand
glove as shown in figure 6. Once the coordinates are fully mapped with gyroscopic sensor, it is
capable of rotating Virtual Desktop Lamp’s neck and arms in all 3600 with hand movement.

Figure7: Flow chart of processor controller

7|Page
The logical sequence of operation can be clearly explained by figure 7. It shows the flow chart
for process controller. Figure 8 shows modified block diagram of remote unit to achieve compact
and simple circuit design. The block diagram shown in Figure 8 indicates that there is selector
switch which is used to select pivot / arm among the available sphere sensors one by one
sequentially. The values (signals) of X, Y, Z, L (ON/OFF) are then sent accordingly.

Figure 8: Modified block diagram of remote unit

Further improvement in remote unit was carried out by removing the machine switches for X, Y,
Z values with an Accelerometer Electron Integrated Chip [ADXL SERIES]. This chip gives
three values with respect to spin about an axis. By measuring the amount of acceleration due to
gravity, an accelerometer can figure out the angle it is tilted at, with respect to the earth.
ADXL335 is three axis accelerometer with on board voltage regulator IC and signal conditioned
analog voltage output. The module is made up of ADXL335 from Analog Devices.

8|Page
Figure 9: Block diagram of electronic circuit

To move lamp in all direction, user need either mechanical force which can be generated
manually (hand glove) or electronically via motor which will precisely control processing
elements like microprocessor or microcontroller. For such controlling arrangement, electronic
circuit is designed with main elements shown in Figure 9.

9|Page
Figure 10: Hardware setup of customized haptic control for VRML object

The hardware setup of customized haptic control is as shown in Figure 10. The setup consists of
9-volt battery, 5 Volt regulator, Microcontroller (PIC 16F72/PIC 18F2250), ADXL (335/345)
chip, USB to serial Cord, Bluetooth Module and PC/Laptop.

10 | P a g e
GY-61 ADXL335 3-Axis Accelerometer Module

GY-61 DXL335 3-Axis Accelerometer Module is a three axis accelerometer sensor module
based on ADXL335 integrated circuit. The ADXL335 is a triple axis accelerometer with
extremely low noise and power consumption. The sensor has a full sensing range of +/-3g. It can
measure the static acceleration of gravity in tilt-sensing applications, as well as dynamic
acceleration resulting from motion, shock, or vibration.
There is an on-board 3.3V voltage regulator to power the ADXL335 so power provided should
be between 3.3V and 6V DC. Model: GY-61 Three-axis magnetic field accelerometer module
Compact size, low power supply Used for game systems, mobile devices, etc.

11 | P a g e
Pin Definitions: 1. VCC: 3.3V or 5V 2. X_OUT: Analog Output 3. Y_OUT: Analog Output 4.
Z_OUT: Analog Output 5. GND: Ground

12 | P a g e
The main elements of circuit are
1. Battery/ main supply
2. Power supply
3. Wi-Fi circuit
4. Motor
5. Motor driver
6. Microprocessor/ Microcontroller
7. Switches
8. Lamp
9. Accelerometer assemblers

Details of each block are as follows: -

1. Battery/ main supply: -


Battery is used to provide power to complete system. Power from main supply can be
provided but battery power is recommended in situation of frequent power failure.
2. Power supply (inside circuit board): -
It is used to provide necessary voltage range and regulation to all the units on the board.
3. Wi-Fi unit: -
This unit provide the wireless controlling to the lamp movements from remote place.
4. Motor
5. Motor driver: -
All movements of lamp are provided by motor. For each pivot there will be one motor.
For driving these motor electronic circuit is required called as motor driver circuit which
is controlled by microprocessor or microcontroller.

13 | P a g e
FLOW CHART FOR MICROPROCESSOR / MICROCONTROLLER: -

Figure 11: Flow chart for microprocessor / microcontroller

14 | P a g e
For haptic control, VRML script can be used. This script is annotated to the actual model,
which in turn controlled by plug- down to MATLAB script. For real time haptic control of
VRML model MATLAB script has been used. This script provides access to Bluetooth Module

for communication with remote unit for accepting commands.

Figure 12: Block diagram for haptic control of VRML desktop lamp

Figure 12 gives block diagram which clearly gives the idea about the haptic control of VRML
object using customized control. This type of prototype provides testing and verification of data
before building actual complex haptic control on large scale.

15 | P a g e
MICROPROCESSOR / MICROCONTROLLER: -

All activities of circuit board or assembly model structure are completely controlled by
microprocessor or microcontroller. Following sequence of activity will give an overview of
entire controlling activity

a) Wi-Fi unit receives commands from remote unit for movement


b) Wi-Fi unit pass these signals to motor processor
c) Main processor analyzes the received signal from Wi-Fi unit and take appropriate action
regarding motor shaft/ action.

MECHANICAL ASSEMBLY, LAMP, SWITCHES ETC.: -

Mechanical assembly is X, Y, Z plane robot switch with Motor, Wi-Fi, Mechanical pivot etc.
Lamp assembly consists of Lamp Cap, Lamp Holder and Wiring System. Switches are used for
manual operation (ON/OFF operation) of lamp as usual.

16 | P a g e
Figure 13: 3600 Mechanical (actual) desktop lamp

The construction of actual mechanical desktop lamp is as shown in Figure 13. The lamp has
several ball joints which allows it to rotate in 3600. The mechanical assembly consist base, two
arms and one neck. The base, arms and neck are connected to each other by ball joint which
gives 3600 freedom of rotation. The virtual desktop lamp created using VRML code is exact
replica of this lamp.

17 | P a g e
The proposed invention can be effectively used in construction of full fledge simulator in CAVE
(Computer Aided Virtual Environment).

18 | P a g e
Appendix A
VRML Code for Virtual Desktop Lamp
#VRML V2.0 utf8

# METHODOLOGY FOR DEVELOPMENT OF INTERRACTIVE SOLID MODELLING IN VIRTUAL


ENVIROMENT BY DIPAK V SHIRBHATE

# [Scene] ========== ========== ==========

NavigationInfo { type [ "EXAMINE" "ANY" ] } ### Default X3D NavigationInfo

Viewpoint {

description "DeskLamp"

position 0 0.1 1

Group {

children [

DEF movelamp PlaneSensor {

# description "click and drag to move lamp"

DEF lamp Transform {

children [

Shape {

appearance Appearance {

material DEF color Material {

diffuseColor 0.8 0 0.6

19 | P a g e
}

geometry Cylinder {

height 0.01

radius 0.1

Group {

children [

DEF movefirstarm SphereSensor {

# description "click and drag to move arm"

offset 1 0 0 -3.58

DEF firstarm Transform {

center 0 -0.15 0

rotation 1 0 0 -0.7

translation 0 0.15 0

children [

DEF lamparm Shape {

appearance Appearance {

material USE color

geometry Cylinder {

height 0.3

radius 0.01

Group {

children [

20 | P a g e
DEF movesecondarm SphereSensor {

# description "click and drag to move arm"

offset 1 0 0 -1.25

DEF secondarm Transform {

center 0 -0.15 0

rotation 1 0 0 1.9

translation 0 0.3 0

children [

USE lamparm

Group {

children [

DEF movelampshade SphereSensor {

# description "click and drag to move shade"

offset 1 0 0 -1.25

DEF lampshade Transform {

center 0 0.075 0

rotation 1 0 0 -1.25

translation 0 0.075 0

children [

Shape {

appearance Appearance {

material USE color

geometry Cone {

bottom FALSE

bottomRadius 0.12

21 | P a g e
height 0.15

Transform {

translation 0 -0.05 0

children [

Shape {

appearance Appearance {

material DEF color2 Material {

diffuseColor 0.4 0.4 0.4

geometry Sphere {

radius 0.05

DEF clock1 TimeSensor {

cycleInterval 0.5

DEF colorpath1 ColorInterpolator {

key [ 0 1 ]

keyValue [ 0.4 0.4 0.4 1 1 0 ]

DEF colorpath2 ColorInterpolator {

key [ 0 1 ]

keyValue [ 1 1 0 0.4 0.4 0.4 ]

DEF clock2 TimeSensor {

22 | P a g e
cycleInterval 0.5

DEF light SpotLight {

ambientIntensity .8

color 1 1 0

cutOffAngle .785398

direction 0 -1 0.7

on FALSE

radius 20

### Warning: SpotLight node location and radius are affected by translation and scaling of parent-hierarchy
<Transform DEF='lamp' translation='0 0 0' scale='1 1 1' />

Group {

children [

23 | P a g e
DEF button1 Transform {

translation -0.02 0.015 0.05

children [

Shape {

appearance Appearance {

material Material {

diffuseColor 1 0 0

geometry Cylinder {

height 0.03

radius 0.01

DEF touch1 TouchSensor {

# description "click to turn on"

DEF code1 Script {

eventOut SFBool value

eventIn SFTime set_light

url [ "javascript:

function set_light() {

value = true;

"]

24 | P a g e
}

DEF button2 Transform {

translation 0.02 0.015 0.05

children [

Shape {

appearance Appearance {

material Material {

diffuseColor 0 0 1

geometry Cylinder {

height 0.03

radius 0.01

DEF touch2 TouchSensor {

# description "click to turn off"

DEF code2 Script {

eventOut SFBool value

eventIn SFTime set_light

url [ "javascript:

function set_light() {

value = false;

25 | P a g e
"]

ROUTE movelamp.translation_changed TO lamp.set_translation

ROUTE movefirstarm.rotation_changed TO firstarm.set_rotation

ROUTE movesecondarm.rotation_changed TO secondarm.set_rotation

ROUTE movelampshade.rotation_changed TO lampshade.set_rotation

ROUTE touch1.touchTime TO clock1.set_startTime

ROUTE clock1.fraction_changed TO colorpath1.set_fraction

ROUTE colorpath1.value_changed TO color2.set_emissiveColor

ROUTE touch2.touchTime TO clock2.set_startTime

ROUTE clock2.fraction_changed TO colorpath2.set_fraction

ROUTE colorpath2.value_changed TO color2.set_emissiveColor

ROUTE touch1.touchTime TO code1.set_light

ROUTE code1.value TO light.set_on

ROUTE touch2.touchTime TO code2.set_light

ROUTE code2.value TO light.set_on

26 | P a g e

You might also like