LISTA TABELELOR … … … … iii [604405]
i
Cuprins:
LISTA TABELELOR ………………………….. ………………………….. ………………………….. ………………… iii
LISTA FIGURILOR ………………………….. ………………………….. ………………………….. ………………….. iv
REZUMAT ………………………….. ………………………….. ………………………….. ………………………….. …. vi
1 Stadiul actual ………………………….. ………………………….. ………………………….. …………………………. 1
1.1 Aplicații de asistare a învățării pentru persoanele cu deficiențe de auz ……………………. 1
1.2 Aplicații pentru a învăța limbajul semnelor ………………………….. ………………………….. … 2
1.3 Tehnologii de asistare în familiarizarea cu regulile de circulație ………………………….. … 2
1.4 Tehnologii integrate de asistare ………………………….. ………………………….. ………………… 3
1.5 Asimi larea cunoștințelor prin utilizarea jocurilor serioase ………………………….. …………. 4
2 Fundamentarea teoretică ………………………….. ………………………….. ………………………….. ………… 5
2.1 Tehnici de învățare pentru persoanele cu deficiențe de auz ………………………….. ……….. 5
2.2 Medii de asistare în învățarea persoanelor cu dizabilități ………………………….. ………….. 6
2.2.1 Realitatea Augm entată ………………………….. ………………………….. ………………… 6
2.2.2 Realitatea Virtuală ………………………….. ………………………….. ……………………… 7
2.2.3 Realitatea Mixtă ………………………….. ………………………….. …………………………. 8
2.2.4 Gamificarea ………………………….. ………………………….. ………………………….. ….. 8
2.2.5 Jocuri serioase ………………………….. ………………………….. ………………………….. . 8
2.3 Tehnologii folosite în dezvoltarea aplicațiilor de asistare în învățare pentru persoanele
cu dizabilități ………………………….. ………………………….. ………………………….. ………………………….. … 9
2.3.1 Unity3D ………………………….. ………………………….. ………………………….. ……….. 9
2.3.2 Vuforia ………………………….. ………………………….. ………………………….. ……….. 11
2.3.3 Blender ………………………….. ………………………….. ………………………….. ……… 12
2.4 Arhitecturi pentru aplicații de asistare în învățare ………………………….. ………………….. 12
2.4.1 Arhitectura unei aplicații de învățare a limbajului semnelor …………………… 13
2.4.2 Arhitectura aplicației Unity3D ………………………….. ………………………….. ….. 13
2.5 Scenarii și principii integrate de dezvoltare a aplicațiilor de familiarizare cu regulile de
circulație ………………………….. ………………………….. ………………………….. ………………………….. …….. 14
2.5.1 Integrarea obiectului de tip ava tar ………………………….. ………………………….. 14
2.5.1.1 Conversie text to sign ………………………….. ………………………….. …………….. 14
2.5.1.2 Conversie sign to text ………………………….. ………………………….. …………….. 15
3 Implementarea solu ției ………………………….. ………………………….. ………………………….. …………. 17
3.1 Viziune și specificații ………………………….. ………………………….. ………………………….. … 17
3.1.1 Profil utilizator ………………………….. ………………………….. …………………………. 17
3.1.2 Context ………………………….. ………………………….. ………………………….. ………. 17
3.2 Premise : model experimental text -to-sign ………………………….. ………………………….. …. 19
3.2.1 Animarea modelului m âinii în Blender ………………………….. ……………………. 19
3.2.2 Crearea animațiilor pentru literele alfabetului și cifrele de la 0 -9 …………….. 20
3.2.3 Importarea animațiilor în Unity3D și finalizarea aplicației ……………………… 20
3.3 Arhitectura funcțională a aplicației ………………………….. ………………………….. ………….. 21
3.3.1 Nivelul 1 ………………………….. ………………………….. ………………………….. …….. 21
3.3.2 Nivelul 2 ………………………….. ………………………….. ………………………….. …….. 24
3.3.3 N ivelul 3 ………………………….. ………………………….. ………………………….. …….. 27
3.4 Integrarea nivelurilor aplicației și instalare ………………………….. ………………………….. .. 31
4 Rezulte experimentale ………………………….. ………………………….. ………………………….. …………… 34
4.1 Nivelul 1 ………………………….. ………………………….. ………………………….. ………………….. 34
4.2 Nivelul 2 ………………………….. ………………………….. ………………………….. ………………….. 38
4.3 Nivelul 3 ………………………….. ………………………….. ………………………….. ………………….. 40
4.4 Testare și validare ………………………….. ………………………….. ………………………….. ……… 43
ii
5 Concluzii ………………………….. ………………………….. ………………………….. ………………………….. …. 45
6 Bibliografie ………………………….. ………………………….. ………………………….. ………………………….. 46
7 Anexe ………………………….. ………………………….. ………………………….. ………………………….. ………. 49
7.1 Scripturi C# ………………………….. ………………………….. ………………………….. ……………… 49
7.2 CV autor ………………………….. ………………………….. ………………………….. ………………….. 58
7.3 Articol SSET ………………………….. ………………………….. ………………………….. ……………. 60
iii
Lista tabelelor
Tabel 1. Definiții și aplicabilități pentru Realitatea Augmentată ………………………….. ………………………….. .. 6
Tabel 2. Definiții și aplicabilități pentru Realitatea Virtuală ………………………….. ………………………….. …….. 7
Tabel 3. Definiții și aplicabilități pentru realitatea mixtă ………………………….. ………………………….. ………….. 8
Tabel 4. Specificații funcțion ale/Specificații nonfuncționale ………………………….. ………………………….. …… 19
Tabel 5. Test case pentru generarea dinamică a terenului ………………………….. ………………………….. ……….. 43
Tabel 6. Reacțiile și stările elevilor referitor la testarea aplicației ………………………….. ……………………….. 44
iv
Lista figurilor
Figure 1. Process of knowledge assimilation ………………………….. ………………………….. ………………………….. ix
Figure 2. User functional diagram ………………………….. ………………………….. ………………………….. …………….. ix
Figure 3. The elements for Level 1 ………………………….. ………………………….. ………………………….. ……………. x
Figure 4. Give way situation ………………………….. ………………………….. ………………………….. …………………….. x
Figure 5. Image targets and the 3D elements assigned ………………………….. ………………………….. ……………… xi
Figure 6. The two situations for the stop sign ………………………….. ………………………….. …………………………. xi
Figure 7. Road generation ………………………….. ………………………….. ………………………….. ……………………….. xi
Figura 8. The interaction with a traffic sign and a car ………………………….. ………………………….. ……………… xii
Figure 9. Road generation diagram ………………………….. ………………………….. ………………………….. ………….. xii
Figura 10. Modelul cauzal al învățării prin implicarea în activitatea de joc [36] ………………………….. ………. 5
Figura 11 Cele trei categorii de instrumente de Realitate Augmentată [41] ………………………….. …………….. 6
Figura 12 Schema de concept a unei aplicații de Realitate Augmentată[42] ………………………….. ……………. 7
Figura 13 Schema de concept a unei aplicații de Realitate Virtuală [46] ………………………….. …………………. 8
Figura 14. F ramework pentru dezvoltarea jocurilor serioase [49] ………………………….. ………………………….. 9
Figura 15. Interfața Unity3D și panourile de lucru ………………………….. ………………………….. ………………… 10
Figura 16. Schema logică de funcționare Vuforia [53] ………………………….. ………………………….. …………… 11
Figura 17. Scanarea markerului și apariția elementului 3D [54] ………………………….. ………………………….. . 12
Figura 1 8. Interfața Blender și panourile de lucru ………………………….. ………………………….. ………………….. 12
Figura 19. Arhitectura aplicației de învățare a limbajului semnelor [25] ………………………….. ……………….. 13
Figura 20. Arhitectura aplicației din Unity3D ………………………….. ………………………….. ……………………….. 13
Figura 21. Generarea parametrilor pe ntru animarea avatarului [9] ………………………….. ……………………….. 14
Figura 22. Extragerea punctelor cheie și potrivirea imaginilor [56] ………………………….. ……………………… 15
Figura 23. Procesul de asimilare a cunoștințelor ………………………….. ………………………….. ……………………. 18
Figura 24. Schema logică de funcționare a aplicației ………………………….. ………………………….. ……………… 18
Figura 25. Modelul mâinii umane în Blender ………………………….. ………………………….. ……………………….. 20
Figura 26. Realizarea unei animații în Blender utlizând keyframes ………………………….. ………………………. 20
Figura 27. Interfața aplicației ………………………….. ………………………….. ………………………….. …………………. 21
Figura 28. Limbajul semnelor pentru cuvântul “buna” ………………………….. ………………………….. …………… 21
Figura 29. Imaginea și animația butonului ………………………….. ………………………….. ………………………….. . 21
Figura 30. Animația de intrare în scenă ………………………….. ………………………….. ………………………….. ……. 22
Figura 31. Setări realizate pe buton pentru a schimba scena ………………………….. ………………………….. ……. 22
Figura 32. Construirea scenei ………………………….. ………………………….. ………………………….. …………………. 23
Figura 33. Elementele 3D ce pot fi inserate ca obiecte de joc ………………………….. ………………………….. ….. 23
Figura 34. Componenta Animator cu cele 6 animații ………………………….. ………………………….. ……………… 23
Figura 35. Markerii asociați detectării semnelor de circulație ………………………….. ………………………….. …. 25
Figura 36. Setările Vuforia ………………………….. ………………………….. ………………………….. …………………….. 25
Figura 37. Plasarea markerilor în scenă ………………………….. ………………………….. ………………………….. …… 25
Figura 38. Funcțiile plasate pe butonul de mers în față ………………………….. ………………………….. …………… 26
Figura 39. Setările pentru semnul Stop ………………………….. ………………………….. ………………………….. ……. 27
Figura 40. Atașarea colliderelor și anvelopelor ………………………….. ………………………….. ……………………… 28
Figura 41. Interacțiune mașină -carosabil ………………………….. ………………………….. ………………………….. ….. 28
Figura 42. Plasarea în scenă a coliderelor ………………………….. ………………………….. ………………………….. … 29
Figura 43. Principiul de generare dinamică a drumului ………………………….. ………………………….. ………….. 29
Figura 44. Câmpul de vizualizare a celor patru camere asignate mașinii ………………………….. ………………. 29
Figura 45. Plasarea semnelor în intersecție și poziționarea terenului duplicat ………………………….. ………… 30
v
Figura 46. Patternul inițial și patternul duplic at ………………………….. ………………………….. …………………….. 31
Figura 47. Plasarea în scenă a semnului stop și a mașinilor ………………………….. ………………………….. …….. 31
Figura 48. Diagrama de secvență în cazul d uplicării terenului ………………………….. ………………………….. … 31
Figura 49. Interfața la pornirea aplicației ………………………….. ………………………….. ………………………….. …. 32
Figura 50. Interfețele nivelului 2 ………………………….. ………………………….. ………………………….. …………….. 32
Figura 51. Interfața nivelului 3 ………………………….. ………………………….. ………………………….. ……………….. 33
Figura 52. Adăugarea scenelor și schimbarea platformei ………………………….. ………………………….. ………… 33
Figura 53. Interfață meniu principal ………………………….. ………………………….. ………………………….. ………… 34
Figura 54. Meniul cu semnele de circulație ………………………….. ………………………….. ………………………….. . 34
Figura 55. Scena semnului cedează trecerea ………………………….. ………………………….. …………………………. 35
Figura 56. Feedback vizual pentru situație greșită ………………………….. ………………………….. …………………. 35
Figura 57. Scena semnului interzis ………………………….. ………………………….. ………………………….. ………….. 36
Figura 58. Scena semnului stop ………………………….. ………………………….. ………………………….. ………………. 36
Figura 59. Scena semnului obligatoriu înainte ………………………….. ………………………….. ………………………. 36
Figura 60. Scena semnului drum cu prioritate ………………………….. ………………………….. ……………………….. 37
Figura 61. Scena semnului obligatoriu în față sau dreapta ………………………….. ………………………….. ………. 37
Figura 62. Interfața nivelului 2 ………………………….. ………………………….. ………………………….. ……………….. 38
Figura 63. Scena fizică și scena augmentată ………………………….. ………………………….. …………………………. 38
Figura 64. Poziționarea obiectelor virtuale în timp real ………………………….. ………………………….. ………….. 38
Figura 65. Cele două situații pentru s emnul stop plasat în scenă ………………………….. ………………………….. 39
Figura 66. Situațiile pentru semnul interzis ………………………….. ………………………….. ………………………….. . 39
Figura 67. Situațiile pentru semnul obligatoriu la dreapta ………………………….. ………………………….. ………. 40
Figura 68. Interfața de ieșire din nivelul 2 ………………………….. ………………………….. ………………………….. … 40
Figura 69. Mesajele afișate la apăsarea butonului Da ………………………….. ………………………….. …………….. 40
Figura 70. Interfața nivelului 3 ………………………….. ………………………….. ………………………….. ……………….. 40
Figura 71. Plasarea dinamică a drumului ………………………….. ………………………….. ………………………….. …. 41
Figura 72. Comutarea între camere ………………………….. ………………………….. ………………………….. …………. 41
Figura 73. Plasarea în intersecție a semnului cedează trecerea ………………………….. ………………………….. … 41
Figura 74. Generarea dinamică a unei noi intersecții cu semnul obligatoriu dreapta ………………………….. .. 41
Figura 75. Mesajul afișat pentru ne respectarea semnului stop ………………………….. ………………………….. … 41
Figura 76. Intersecția cu cele 4 semne ………………………….. ………………………….. ………………………….. ……… 42
Figura 77. Generarea unei noi intersecții ………………………….. ………………………….. ………………………….. …. 42
Figura 78. Afișarea mesajului pentru situație greșită ………………………….. ………………………….. ……………… 42
Figura 79. Comutarea între camere ………………………….. ………………………….. ………………………….. …………. 42
Figura 80. Afișarea mesajelor utilizând Debug.Log() ………………………….. ………………………….. …………….. 43
Figura 81. Calculul sinusului și cosinusului pentru direcțiile de mers ale mașinii ………………………….. …… 44
Figura 82. Schema logică de determinare a poziției ………………………….. ………………………….. ……………….. 44
vi
Introduction
In the driving task, many human characteristics affect the way people interact with vehicles
with the roadway and other traffic components. Hearing is considered a second sense as importance
in the person's orientation, first being the visual sense [1]. According to World Health Organization
statistics, 360 mi llion people worldwide have disabling hearing loss, and 32 million of these are
children. In Romania, 2.97% of the population has a hearing disability as shown in the statistics
produced by the National Authority for Persons with Disabilities, 1616 being t he number of
children [2]. One of the rights of deaf people is to get a driving license. In 2009, a statement was
issued by the World Deaf Federation and is stressed that deafness does not in any way limit a
person’s ability to drive a car or other vehicles. Physical integrity and mental he alth are of great
importance [3]. One of the problems faced by deaf people is the promotion of the theoretical exam
because they may not understand the meaning of some words in road legislation and the emergency
ordinance, or even when they solve the questionnaires, they do not always understand what is being
asked. It can be said that the advantage these people h ave is that their attention can’t be distracted
by the s urrounding noises (music, horns , voices), they are always focused on the actions that they
do. A concept that is increasingly used in assisting learning process is Augmented Reality (RA).
Augmented Reality is a technology that combines virtual objects with real -world in real time, and
it is used in many areas. On the traffic assisting side, driving simulators based on sign recognition,
vehicle distance measurement, virtual object attachment to real objects have been developed, the
ultimate goal being to improve traffic safety. The curren t article describes an application model for
traffic sign recognition, understanding the meanings and behavior that have to be adopted at their
encounter. The proposed implementation adapts the principles of serious games to the cognitive
specificity of yo ung people with hearing impairment. For practical applicability, a user profile for
hearing impaired young people from the Special Technology High School "SAMUS" in Cluj –
Napoca is proposed.
Section 1 includes references to the principles of developing tec hnologies of assisting people
with hearing impairments and similar traffic assistance applications. Section 2 describes the
proposed model specifications, implementation archite cture, and associated resources and Section
3 concludes the paper.
1. Related work
People with disabilities face a wide range of barriers, including access to information,
education and lack of employment opportunities. Application development converges to adapt to
their needs by improving satisfaction, learning speed and learning effici ency.
1.1 Learning technologies for people with hearing disabilities
The authors in [4] have developed an application specifically for students from Malaysia with
hearing problems. Their main purpose is to increase students' attention and interest in the learning
process. The application is an interface for learning the alphabet, digits and then words using signs
accompanied by color images or movies to understand meaning and to attract their attention.
Another application [5], proposed for learning, consists of three stages. 1) the association of
words and images and visual feedback that can be understood by the player. 2) Understanding short
sentences. 3) Checking whether reading a sentence is with comprehension or no t. Regarding car
driving, in [6] explains effective communication to be adopted to assist people with hearing
impairments. A model of game is proposed in [7] to teach basic rules for children with autism. The
vii
model consists of running animated videos and then solving situations with traffic signs in road
traffic.
In conclusion, people with hearing deficiencies:
1. Keep words or understand texts better if they are accompanied by pictures, movies or
animations
2. Assimilate knowledge more effectiv ely if an incremental notion structure is used
1.2 Applications to learn sign language
Several countries have developed applications to facilitate communication between people
with hearing disability or between people with hearing impairment and those wit hout hearing
impairment. The application descri bed in [8], dedicated to mobile devices, makes a conversion
from text to sign language. Java Micro Edition was used as the programming language to ensure
the portability of the client -server application. The application has six characteristics that provide
different functionalities: translation from Arabic text to Arabic sign language and vice versa,
sending and receiving messages, chatting using Arabic sign s etc. The developed system [9] receives
as input a text and as output provides animated sequences of a virtu al avatar. It is able to convert
all the symbols and movements associated to, it supports both hand gestures and facial expressions.
If a word is not found in the existing database, the avatar does not make any action, it is static.
Conclusion:
1. Applicat ions on mobile devices to convert from (voice ->) text -> sign language and vice
versa facilitate communication between people with hearing deficiencies and between people with
hearing deficiencies and those without.
1.3 Assistive technologies in familiarizi ng with traffic rules
Driving simulators have become an important tool in improving road safety. For example, the
following study aims to validate traffic erro rs using a driving simulator [10] . Participants were
instructed to drive a selected route on -road and than the same route was programmed in the driving
simulator using the UC/Win -road software. This software can create an exceptionally detailed
driving scenario which can reprod uce a wide range of driving conditions such as, night, rain, snow
and bright sunlight. Driving behaviors were evaluated by a therapist and two researchers and was
concluded that the simulator is available to assess behaviors such as checking left, right an d forward
mirrors , maintaining speed, speed in intersections and more. Anothe r simulator is described in
[11] and allows creating a scenario based on a geometric design software. To create environment
objects as signs and trees, 3D modeling in Blender was used. The information used to generate the
road is taken from two .xlsx files as coordinates, then traffic s igns and vegetation are placed on
both sides of the road. Studies have shown that the simulator has a high degree of similarity with
real-world situations.
Conclusions:
1. Driving simulators are useful both for assessing and improving behavior during drivi ng.
2. Driving simulators help to find factors that distract drivers attention.
1.4 Knowledge assimilation using serious games
Serious games are games with purpose, learning is implicit and fun, and the user pays more
attention to the problem. They are use d in a wide range of areas such as education, project
management, health, archeo logy, simulators and others [12]. "Rules on Wheels" is the name of a n
application developed in [13] to learn traffic rules. The main goal was to investigate the
viii
effectiveness of learning traffic signs us ing a driving game. As development environments,
HTML5 / JavaScript were used to deploy a client / server application. The user must drive the car
across the city from one point to another and comply with the traffic principles while being
supervised by th e examiners. Driving skills and knowledge of traffic signs are being pursued. As
results, participants have gained better knowledge of traffic legislation.
In conclusion, serious games improve:
1. Effectiveness of learning traffic signs
2. Interaction and communication skills between users
2. Solution
2.1 User Profile
Technology High School "SAMUS" Cluj -Napoca is a school that trains and instructs pupils
with special educational needs in order of further socio -professional integration. The school has
different cabinets, and the practical training of students takes place in the workshops from the
school, specific to the professions. The choices of professions and the assignment of pupils on the
trades are considering the skills of each student. Regardin g the promotion of the driving car exam,
students learn from the book of road law but this is not enough for them. There was a course
regarding road law for students aged between 16 and 18 years. This course consisted of
explanations on a board where were represented situations form an intersection, but it was
abolished.
2.2 Context
Deaf students in SAMUS High School have a well -developed visual field and the limitations
in learning are represented by not understanding the meaning of the words when they are reading
texts. The best and performing solution is visual exemplification that helps them make connections
and understand concepts. The new technologies increase their curiosity and desire to experience.
A. The process of knowledge assimilation
By viewing animations, the user understands the behavior to be adopted at the meeting of traffic
signs. By building and testing scenarios based on Augmented Reality, the user get familiar with
traffic signs. By dynamically generating the scenarios, the acquired knowl edge is tested. These,
together with the user's understanding level and motivation determine the efficiency of learning
and ultimately the accumulation of knowledge.
ix
Figure 1. Process of knowledge assimilation
B. Proposed Approach: User Functional Diagram
The application is structured on three levels. This approach based on 3 levels was chosen for an
efficient learning. The first level offers a theoretical part accompanied by visual exemplification,
so the user can make connections between the meaning of th e text and the behavior to be adopted
at the meeting of a traffic sign. This exemplification is given in the form of animations about how
to correctly respect traffic signs. The second level is a situation where the user can create scenarios
in an intersec tion, using physical support. Level 3 is a level of dynamic generation of test scenarios
in which the user has to apply what he has learned in the first two levels. When the app is started,
the user has 4 options: choose one of the three levels or leave t he application. There are 8 options
at choosing Level 1: playing 6 animations for 6 traffic signs, returning to the main menu or leaving
the application. If level 2 is selected, the user is asked to set up the scene, and then they can enter
into the Augmen ted Reality game. From here, user can go to the main menu, resume the RA game,
or leave the application. When Level 3 is selected, there are 4 options where user must drive a car,
an option to return to the menu and one to leave the game.
Unity3D, a graph ics engine, a system designed to create and develop video games, was used to
develop the application.
Assimilation
Get familiar with
Testing
Figure 2. User functional diagram
x
2.3 Functional architecture of the application
2.3.1 Level 1
For Level 1, an interface with 8 interactive buttons has been created. Interactivity consists in
changing color and size of the button when is pressed using keyframes. 6 of the buttons lead to a
scene in which animations are played. A scene where an animation is made consists of a terrain
with grass texture over which pieces of road are placed to form a square intersection. In intersection
is placed a traffic sign, a car and one, two or three arrows, de pends on the traffic sign . These arrows
indicate the direction in which the car can circulate. In the scene is placed a Canvas component
with an ac tive UI text component. This text is the explanation of the significance of each traffic
sign, an explanation taken from the book of road legislation. The Animator component consists of
6 states, and in scene were placed colliders to get the car direction and to set active the 3d signs for
a correct or a wrong situation. The 3D elements used for this level are shown in Figure 3 and in
Figure 4 is represented the give way situation.
Placing 3D
elements in the
scene
No entry Road
Sign
Indicator arrow
Sign for a
correct situation
Sign for a
wrong situation
Figure 3. The elements for Level 1
Message explaining the sign
a. The arrows that indicate the direction b. Visual feedback for the right situation
Figure 4. Give way situation
2.3.2 Level 2
For Level 2 development, Augmented Reality was used to create and test scenarios from an
intersection. For this level the Vuforia portal was used. Vuforia is an extension of the Unity3D
environment. Vuforia SDK extension for Unity was downloaded and installed. 5 markers were
created on Vuforia developer portal and then were imported in Unity. Those markers were placed
in the scene. A 3D element has been assigned to each marker: stop, give way, no entry, turn right
on four markers and a car and 3 buildings on the fifth marker as is shown in the picture below.
xi
Figure 5. Image targets and the 3D elements assigned
Markers have been printed and by scanning the markers with the camera from a mobile device, the
3D objects that were assigned to the markers will appear on the device screen and so the scenarios
built with physical supp ort can be tested .
a. Wrong situation b. Correct situation
Figure 6. The two situations for the stop sign
2.3.3 Level 3
Level 3 is a level of dynamic generation of test scenarios. The scene consists of a pattern that
contains an intersection, and this pattern will be duplicated and positioned according to the
direction in which the car starts from the intersection, so the r oad never ends. When level 3 is
selected, the user can choose a driving situation from another four options. This action is possible
using two buttons and the accelerometer from the mobile device. In the first option, the user drives
the car into an inters ection with no traffic sign, to get familiar with driving and dynamic road
generation. In the following two situations, the user must drive the car into intersections and respect
the traffic signs. In the last situation, the user must respect a sign but al so the cars from the priority
road. In the last situation, the user must respect a sign but also to give priority to the cars from the
priority road.
a. The initial terrain b. Duplicated terrain
Figure 7. Road generation
xii
The road generation is illustrated in Figure 7, and the diagram of the road generation is represented
in Figure 9. In Figure 8, there is represented the last situation in which the user must respect a sign
but also to give priority to the car from the prio rity road.
Figure 9. Road generation diagram
2.3.4 Feedback
The application was presented to 9 people with hearing impairment, high school students aged 16 –
18, and they tested the application for 50 minutes. It was said is a good thing that first the
animations are playing and showing how to properly drive when meeting a traffic sign and after
that scenarios can be tested. Students said they could learn traffic signs and understand the
principles of traffic using this game.
3. Conclusions
This paper describes an application for assisting people with hearing impairments in understanding
and familiarizing themselves with traffic rules. A comparison with two similar specific applications
reveals the following advantages:
1) Compared to [8], in level 2 it is also possible for the user to create different situations and
test them, the environment is more interactive because augmented reality is used, and the
use of the mobile phone is more accessible.
2) Compared to [5], 3D elements are brought extra, elements which can be viewed from
different angles
The application can run only on Android mobile devices, and the phone’s memory and capabilities
influence his functionality. There may be delays in processing the information. Target images from
Level 2 must show enough detail to be detected and to provide stability can not be moved very
much. For the future work, the application could be integrated with virtual reality. (HTC vive,
Oculus Rift, Google Cardboard) or in a real driving situation, to detect a traffic sign from a certain
distance and to show what the correct behavior should be adopted.
Figura 8. The interaction with a traffic
sign and a car
xiii
Planificarea activității
Specificații proiect Perioada Durata (zile)
Alegerea temei 03.10.2016 -04.10 .2016 1
Studiu bibliografic 05.10.2016 -02.03.2017 60
Familiarizarea cu Unity3D 03.03.2017 -31.03.2017 20
Dezvoltarea aplicației 01.04.2017 -18.06.2017 80
Scrierea documentației 19.06.2017 -07.07.2017 20
Printare și legare 07.07.2017 -09.07.2017 2
Predare proiect 10.07.2017 -11.07.2017 1
1
1. Stadiul actual
În dezvoltarea aplicațiilor pentru per soane cu deficiențe de auz, următoarele premise sunt
vizate: 1) adaptare la nevoile acestora , 2) îmbunătățirea satisfacției în procesul de învățare, 3)
îmbunătățirea vitezei de învățare și 4) îmbunătățirea eficienței de învățare . Barierele cu care se
confruntă aceste persoane sunt: 1) accesul la informație, 2) accesul l a educație, 3) lipsa
oportunităților de angajare și 4) promovarea examenului de conducere. Unul dintre motivele pentru
care o persoană e bine să dețină un permis de conducere este faptul că ii oferă independență, poate
să meargă oriunde, oricând și să se b ucure de viața privată. Obținerea unui permis de conducere
poate să crească și șansele obținerii unui loc de muncă. Dezavantajul este reprezentat de creșterea
probabilității de a fi implicat într -un accident rutier, deoarece conducerea necesită multă atenț ie și
multă grijă. La nivel global mulți oameni surzi lucrează ca mecanici de mașini pe care le și conduc
în vederea asigurării reparării și de asemenea există persoane surde care au devenit profesioniști în
domeniul transporturilor și conducerea mașinilor de cursă lungă [3].
1.1 Aplicații de asistare a învăț ării pentru persoanele cu deficiențe de auz
Autorii din [4] prezintă o aplicație dezvoltată specific pentru studenți i din Malaysia cu
deficiențe de auz. Scopul este cr eșterea atenției și a interesului stude nților î n procesul de învățare.
Aplicația reprezintă o interfață de învățare a alfabetului, a cifrelor și apoi a unor cuvinte folosind
semne însoțite de imagini sau filmulețe pentru a se înțelege semnificația și pentru atragerea atenției.
O altă aplicație, [5], propusă pentru învățare e formată din trei etape. 1) asocierea dintre cuvinte ș i
imagini și feedback vizual care poa te fi înțeles de către jucător. 2) înțelegerea unor propoziții scurte.
3) verificarea dacă citirea unei propoziții este cu înțelegere sau nu. În [14] se folosește un sistem
de realitate mixtă compus din două componente: un ecran pe care apare un filmuleț educativ iar pe
alt ecran un caracter virtual care poate primi anumite comenzi. La acest studiu a fost nevoie de câte
doi studenți dintre care unul prezintă d eficiențe de auz . Ambii participanți transmit comenzi
caracterului atunci când informația prezentată în video este relevantă, la sfârșit a vând de rezolvat
un chestionar. Studenții au evaluat această abordare ca f iind nouă, interesantă și distractivă. Un
studiu referitor la îmbunătățirea educației persoanelor cu deficiențe de auz este prezentat în [15]
unde autorii se axează pe învățarea ingineriei software. S -a primit feedback pentru lucrul în echipă,
instrucțiunile de date de către profesori, modul pr ofesorilor de a explica, materiale didactice, atât
de la studenții cu probleme de auz cât și de la ceilalți. În urma feedbackului s -au dat recomandări
pentru instructori :1) păstrarea contactului vizual cu persoana cu care discută, 2) vorbirea clară și
naturală, și pentru toți studenții : 1) informarea interpretului de limbaj mimico -gestual dacă nu s -au
înțeles semnele, 2) discutarea cu instructorii pentru a lămuri orice întrebare sau preocupare. Studiul
din [16] a investigat eficacitatea semnelor augmentative (mișcări, de obicei ale mâinilor, care
însoțesc vorbirea) pentru a -i învăța pe copii cu deficiențe de auz câteva cuvinte uzuale din
vocabular. S -a utilizat un set de cuvinte dintr e care jumătate au fost prezentate cu un semn
augmentativ. În urma testelor s -a constatat că persoanele deficiente de auz și -au amintit mai multe
cuvinte pe care le -au învățat cu semn decât cele care le fuseseră prezentate fără unul.
În ceea ce privește c ondusul auto, în [6] se explică comunicarea eficientă c are trebuie adoptată
la asistarea persoanelor cu deficiențe de auz . În [7] este propus un model de jo curi care să îi învețe
regulile de circulație de bază pe copiii cu autism. Modelul constă în rularea unor videoclipuri
animate și apoi rezolvarea unor situații cu semne de circulație din traficul rutier .
În concluzie, persoanele cu deficienț e de auz:
1. Rețin cuvinte sau înțeleg texte mai bine dacă acestea sunt însoțite de imagini, filmulețe sau
animații
2
2. Asimilează cunoșt ințe mai eficient dacă se utilizează o structur ă incrementală de prezentare
a noțiunilor
3. Prezintă interes față de aplicațiile cu interfețe prietenoase
1.2 Aplicații pentru a învăța limbajul semnelor
Mai multe țări și -au dezvoltat aplicații pentru a facilita comunicarea între persoane cu
deficiențe de auz sau între persoanele cu deficiențe de auz și cele fără. Aplicația [8] dedicată
dispozitivelor mobil e realizează o conversie din text în limbajul semnelor . Ca și limbaj de
programare s -a utilizat Java Micro Edition pentru a asigura portabilitatea aplicației client -server.
Aplicația are șase caracteristici care oferă diferite funcționalități: traducerea din limba arabă în
limbajul semnelor arabe și invers, trimiterea și primirea de mesaje, discuție folosind limbajul
semnelor arabe, etc. Pentru persoanele din Indonezia, în [17] este prezentată o aplicație care rulează
pe un dispozitiv mobil cu Android. Această aplicație se bazează pe detectarea mâinii și
recunoașterea semnelor pentru litere sau cuvinte. Funcționarea constă în utilizarea camerei
dispozitivului mobil, detectarea m âinii și a texturii pielii, îndepărtarea zgomotului, detectarea
mișcării mâinii, și obținerea unei imagini cu semnul pe care mâna l -a arătat. Pentru detectarea
mâinii a fost utilizat algoritmul Viola -Jones și transformata Haar. Sistemul dezvoltat [9] primește
ca date de intrare text și la ieșire ofe ră secvențe animate de un avatar virtual. Este capabil să
convertească toate simbolurile și mișcările asociate lor, suportă atât gesturile mâinii cât și expresii
faciale. În cazul în care un cuvânt nu se regăsește în baza de date existentă, avatarul nu înt reprinde
nici-o acțiune, este static. În [18] s-a dezvoltat un sistem care poate fi folosit pentru conversia din
limbajul semnelor în voce și invers. Un sistem de captare a mișcării este utilizat pentru conversia
limbajului semnelor și un s istem de recunoaștere vocală pentru conversia vocală. Pentru
recunoașterea vocală aplicația se bazează pe captarea semnalului vocal, transformarea acestuia în
text, transformarea textului în imagini, afișarea imaginilor. Pentru recunoașterea mișcării se
utilizează senzorul Microsoft Kinect, mișcarea este convertită în text și textul în semnal acustic.
Concluzie:
1. Aplicațiile pe dispozitive mobile de convertire din (voce ->)text ->limbajul semnelor și
invers facilitează comunicarea între persoanele cu deficien țe de auz și între persoanele
cu deficiențe de auz și cele fără.
1.3 Tehnologii de asistare în familiarizarea cu regulile de circulație
O validare a erorilor din trafic, folosind un simulator de conducere este propusă în [10].
Participanții au fost instruiți să conducă inițial real, o rută selectată, ulterior același traseu modelat
într-un simulator de conducere ( UC/Win -road). Software -ul dedicat poate crea un scenariu d e
conducere extrem de detaliat și poate reproduce o gamă largă de condiții (noapte, ploaie, zăpadă).
Comportamentele din timpul conducerii au fost evaluate de un terapeut și doi cercetători,
concluzionând că simulatorul este valabil pentru evaluarea compo rtamentelor cum ar fi verificarea
oglinzilor, observațiile stânga, dreapta și înainte, menținerea vitezei, viteza în intersecții și altele.
Două simulatoare driving [19] și [20] au fost folosite pentru examinarea comportamentului de
conducere al persoane lor care suferă de autism. Pentru primul simulator a fost folosit Driver
Guidance System (DGS -78) care conține centura de siguranță, bordul, volanul, semnalizatorul,
pedalele pentru frână și accelerație, oglinzi și un scaun reglabil. Simulatorul permite at ât rezolvarea
unor teste cât și scenarii de conducere, iar rezultatele au arătat în acest caz că dificultățile cu care
se confruntă persoanele cu autism este memoria slabă. În cel de -al doilea caz, s -a utilizat pentru
studiu o cabină Volkswagen Beetle și p articipanților le -au fost constant monitorizate frecvența
cardiacă, privirea, comportamentul în timpul conducerii și conductivitatea pielii. Ca și rezultate,
autorii au observat că atenția vizuală le este distrasă de diferiți factori, iar acest lucru reprezintă o
3
problemă cu privire la siguranța lor în trafic. O platformă experimentală este prezentată în [21].
Aceasta reprezintă o integrare a unui simulator de trafic microscopic cu simulatoare de conducere
multiplă într -un mediu în timp real. Mai mulți șoferi participă î n același timp la trafic, simulând
schimbarea benzilor de circulație și urmărirea unor mașini. Fiecare participant a fost așezat în fața
unui calculator, avea propria mașină pe care o controla cu un volan conectat, iar întregul trafic era
afișat pe un ecran mai mare. Platforma a fost validată în urma obținerii rezultatelor, răspunsul
participanților la trafic, schimbarea benzilor fiind compatibile cu datele obținute din condusul real.
Un alt simulator este descris în [22] și permite crearea unui scenariu bazat pe un software cu design
geometric. Pentru crearea obiectelor din mediu cum ar fi semnele, copacii, s -a utilizat modelarea
3D în Blender. I nformațiile pe baza cărora se generează d rumul sunt preluate din două fișiere .xlsx
ca și coordonate, urmând amplasarea semne lor de circulație și vegetație de -o parte și de alta a
drumului. În urma studiilor realizate s -a declarat că simulatorul are un gra d de similitudine ridicat
cu situațiile din lumea reală. Un simulator de conducere bazat pe Realitate Virtuală pentru
persoanele cu autism a fost dezvoltat în [23]. S-a proiectat simulatorul astfel încât să se poată
integra diferite module senzoriale direct în sistem, și să se definească protocoale orientate pe sarcini
care nu ar fi posibile prin utilizarea unui software com ercial. S -a constatat că acest simulator poate
fi utili zat în proiectarea unui sistem menit să îmbunătățească performanțele de conducere. S-au
realizat experimente folosind un simulator de conducere pentru a studia modul în care șoferii
răspund la intersecțiile cu benzi de ieșire pentru viraje la stân ga în lucrarea [24]. Au fost testate
patru scenarii cu diferite modele de semne și marcaje, și în diferite condiții de trafic. Rezultatele
au arătat că șoferii manifestă confuzie atunci când întâlnesc o astfel de intersecție.
Concluzii:
1. Simulatoar ele de conducere sunt utile atât pentru evaluarea cât și pentru îmbunătățirea
comportamentului în timpul actului de conducere
2. Simulatoarele de conducere ajută la aflarea factorilor care le distrage atenția șoferilor
1.4 Tehnologii integrate de asistare
Autorii din [25] prezintă un joc edu cațional pentru persoanele cu deficiențe de auz din Mexic ,
în care se învață limbajul semnelor, folosind realitate augmentată. Acest joc e bazat pe elemente
vizuale care pot fi înțelese atât de către persoanele care prezintă prob leme cu auzul cât și de cei
care nu au această problemă. Soluția propusă integrează elemente digitale (controale digitale ->taste
apăsate) cu elemente fizice în procesul de învățare. Realitatea augmentată e folosită pentru a avea
o reprezentare 3D a semnelor . Jucătorii vor scana o carte pentru a descoperi o animație 3D a unui
semn. Lucrarea descrisă în [26] folosește realitatea augmentată ca și tehnologie avansată pentr u
un studiu al efectelor avertis mentelor vizuale sau auditive privind pericolele ce pot să apară în
trafic. Avertizările folosind realitatea augmentată au fost afișate pe un ecran de pe capo tă. Tot
realitatea augmentată este folosită și în [27] pentru a ajuta șoferii în vârstă ce prezintă o serie de
deficiențe al câmpului vizual util (UFOV -Useful Field Of View) să vireze la stânga în intersecții.
Atunci când un astfel de șofer se apropie de intersecție, și dorește să vireze la stânga, în funcție de
distanța la care se află vehiculul care vine din față îi apare un semn cu virajul la stânga interzis pe
parbriz care îl înștiințează dacă poate vira sau nu. După un set de teste s -a ajuns la concluzia că
indicii au fost eficienți î n motivarea răspunsurilor soferilor si nu au condus la încălcări ale
siguranței în trafic. Autorii din [28] folosesc realitatea augmentată pentru a optimiza atenția vizuală
a șoferilor. La acest studiu s -au folosit douăzeci de filmări din trafic în care s -au pus în evidență
indic atoarele și marcajele rutiere folosind realitatea augmentată. La un moment din video, atât din
video original cât și din cel cu indicații, participanților li s -a spus să facă o manevră (de exemplu
să depășească o mașină) , iar la sfârșitul filmulețului aceș tia au trebuit să răspundă dacă aveau voie
sau nu să o facă. Rezultatele au arătat că realitatea augmentată optimizează atenția vizuală a
șoferilor în faza de luare a deciziilor. Un nou tip de comunicare între șofer și vehicul este descris
în [29] unde se suprapun obiecte virtuale augmentate într -o scenă reală în toate tipurile de situații
4
de conducere, inclusiv în condiții meteorologice nefavorabile. Metoda e formată din două etape:
generarea ipotezelor și verificarea lor. În tr-o primă etapă este extrasă regiunea de interes apoi se
verifică dacă ceea ce s -a extras este o mașină sau un indicator rutier urmând ca un obiect virtual să
fie atașat obiectului real. Ca și concluzie, autorii au spus că informațiile din trafic pot fi î mbunătățite
cu ajutorul realității augmentate, reducând accidentele.
Concluzii:
1. Realitatea Augmentată poate fi folosită pentru a dezvolta aplicații care să ajute persoanele
cu dizabilități să comunice cu persoanele din jurul lor.
2. Realitatea Augmentată ajut ă la îmbunătățirea informațiilor din trafic și la optimizarea
atenției vizuale a șoferilor în faza de luare a deciziilor.
1.5 Asimilarea cunoștințelor prin utilizarea jocuri lor serioase
Jocurile serioase sunt acele jocuri în care utilizatorul acumulează cunoștințe dar are parte și
de divertisment, învățarea este implicită și distractivă, iar utilizatorul acordă mai multă atenție
problemei abordate. Acestea sunt folosite într -o gamă largă de domenii cum ar fi educația,
managementul proiectelor, sănătate, arheologie, simulatoare și altele [12]. Un joc serios
colaborativ a fost dezvoltat pentru învățarea regulilor de trafic și a semnelor de circulație în
interiorul unui oraș [30]. S-a utilizat o combinație între realitatea mixtă (este o subclasă a tehni cilor
de realitate virtuală care constă în îmbin area mediilor reale și virtuale ) și jocurile care utilizează
suport fizic. Suportul fizic a fost format din două hărți ale orașului și mai multe indicatoare rutiere.
Acest joc necesită formarea a două echipe. Fiecare echipă trebuie să conțină doi șoferi, o persoană
care plasează indicatoare pe harta orașului, și o persoană care să supravegheze jocul. În urma
studiilor s -a constatat că jocul asigură un nivel ridicat de colaborare între participanți, toți jucăto rii
au fost implicați activ în discuții în timpul jocului, în gândirea și rezolvarea problemelor. „ Reguli
pe roți” este numele unei aplicații dezvoltate de autorii din [13] pentru învățarea regulilor de trafic.
Scopul principal a fost investigarea eficienței de învățare a semnelor de trafic cu ajutorul unui joc
de conducere. Ca și medii de dezvoltare, au fost folosite HTML5/JavaScript pentru implementarea
unei aplicații client/server. Utilizatorul trebuie să conducă maș ina prin oraș dintr -un punct stabilit
în altul și să respecte principiile de trafic în timp ce este supravegheat de examinatori. Sunt urmărite
abilitățile de conducere și cunoașterea semnelor de circulație. Ca și rezultate obținute, participanții
la joc au acumulat cunoștințe mai bune privind legislația în domeniul traficului. Un alt joc serios,
ComFiM, a fost dezvoltat pentru a încuraja comunicarea între persoanele cu autism [31]. Mai întâi
se realizează comunicarea cu un caracter virtual, un tutore, care trimite mesaje scrise pe ecran ,
cerând obiecte prezente în joc și îndeplinirea diferitor sarcini (ex: să planteze flori) , apoi se
încurajează comunicarea cu un jucător uman pri n colaborarea pentru îndeplinirea taskurilor. Jocul
a fost conceput pentru a oferi un mediu multi -player, și s -a optat pentru utilizarea a două tablete
pentru realizarea comunicării. S -a dovedit faptul că acest joc serios îmbunătățește abilitățile de
interacțiune, comunicare și colaborare a utilizatorilor. Un studiu a trei jocuri serioase dezvoltate
în trei companii financiare din Franța, Statele Unite și India a fost realizat de autorii din [32]. S-a
studiat contribuția jocurilor serioase la îmbunătățirea managementului cunoștințelor. Ca și
concluzii, a rezultat că jocurile serioase contribuie se mnificativ la îmbunătățirea socializării,
externalizării, combinării și internalizării cunoștințelor. Autorii din [33] au explorat modalitățile de
a aplica gamificarea în situațiile de co nducere pentru a face comportamentele de conducere ale
șoferilor mai distractive, mai interactive și se ilustrează nevoia unui echilibru între distracția și
siguranța în timpul participării la trafic.
În concluzie, jocurile serioase îmbunătățesc:
1. Eficienț a de învățare a semnelor din trafic
2. Abilitățile de interacțiune și comunicare între utilizatori
3. Atenția acordată problemei abordate
5
2. Fundamentarea teoretică
2.1 Tehnici de învățare pentru persoanele cu deficiențe de auz
Un copil învață mai întâi semnele pentru lucrurile și oamenii care sunt importanți pentru el.
Trebuie să se asigure faptul că el poate vedea mâinile și fața persoanei care face semnul. Atunci
când un copil vede că oamenii din jurul său folosesc limbajul mimico -gestual pentru a comunica,
va începe el însuș i să folosească semne. C ând un copil învață să facă semne, învață mai întâi unde
să își țină mâinile , apoi învață să le miște corect și în final învață să dea o formă corectă mâinilor
și degetelor. Persoanele surde privesc fața persoanei cu care comunică. În acest caz, comunicarea
trebuie să se bazeze pe gesturi, expresii ale feței, mișcări ale corpului, d actileme [34].
Educația din școli îmbunătățește la copiii surzi sau cu un nivel scăzut de auz abilitățile de
comunicare și le poate oferi deprinderi care să -i ajute să ducă o viață productivă și să -și ajute
familiile. La școală, copiii surzi învață sa citească și să scrie, acestea fiind adesea modalități de
comunicare cu persoanele care nu știu lim bajul semnelor și nu le înțeleg vorbirea. Cititul ajută
persoanele cu un nivel scăzut de auz să înțeleagă ideile, emo țiile și experiențele altor oam eni.
Scrisul îi ajută să comunice și să își exprime gândurile și sentimentele. Ei pot învăța în clase
obișnu ite cu copii auzitori, sau separat cu alți copii surzi.
Școlile care îi învață pe copiii surzi se axează de obicei fie pe limba vorbită fie pe limbaj
mimico -gestual. Unele școli îi învață pe copiii surzi să vorbescă și să folească limbajul mimico –
gestual î n același timp, sau să vorbească și să folosească dactileme. Ei folosesc limbajul mimico –
gestual, gesturi, imagini, labiolectura, vorbirea, scrisul și cititul. Dacă un copil poate auzi puțin sau
poate citi de pe buze, profesorul ar trebui să stea cu fața l a el când vorbește și să verifice în ce
măsură poate fi urmărit [35]. În vederea obținerii permisului de conducere, persoanele cu deficiențe
de auz învață din cartea de legislație rutieră, însă nu tot timpul este suficient pentru ei datorită
problemelor de înțelegere cu care se confruntă.
Odată cu dezvoltarea tehnologiei s -au studiat modalitățile cum ar putea fi îmbunătățit e
procesul de învățare, eficiența și motivația în învățare.
Figura 10. Modelul cauzal al învățării prin implicarea în activitatea de joc [36]
În Figura 1 0 este reprezentată o tehnică de învățare prin utilizarea unui joc serios.
Cunoștințele jucătorului (1) împreună cu complexitatea jocului (2) determină severitatea provocării
(3). Aceasta va influența motivația jucătorului (4). De asemenea atractivitatea ac tivității de a juca
un joc (5) ar influența motivația. În final, atât nivelul de motivare al jucătorului, cât și inteligența
jucătorului (6) vor determina eficacitatea învățării (7) și cunoștințele dobândite (8). [36]
6
2.2 Medii de asistare în învățarea persoanelor cu dizabilități
2.2.1 Realitate Augmentată
Tabel 1. Definiții și aplicabilități pentru Realitatea Augmentată
Realitatea Augmentată
Def.1: Realitatea Augmentată î nseamnă a integra informații sintetice în mediul real . [30]
Def.2: Realitatea Augmentată este o unealtă puternică de îmbunătățire a materialelor
tangibile bi -dimensionale. [25]
Def.3. Realitatea Augmentată înregistrează și suprapune informație virtuală în lumea
reală în timp real. [37]
Aplicabilitate: [30], [25], [37], [38],[39],[29],[40]
Realitatea Augmentată este o tehnologie care adaugă lumii reale informații din lumea
virtuală, cum ar fi modele 3D, animații, clipuri video, suprapunând în timp real perspectiva de
vizualizare a camer ei de la un telefon mob il sau un calculator sau de la ochelari conectați. Realitatea
Augmentată transformă mediul din jurul nostru într -o interfață digitală, plasând obiecte virtuale în
lumea reală, în timp real. Există trei categorii principale de instrum ente de realitate augmentat ă: de
vizualizare ca în Figura 11 punctul a, informare ca în Figura 11 punctul b și joc cum este arătat în
Figura 11 punctul c.
1. Prima permite utilizatorilor plasarea unor modele 3D de dimensiune reală în mediul
înconjurător fără utilizarea unor markeri, și vizualizarea unor obiecte care nu se află
fizic în acel moment în jurul utilizatorului. De exemplu vizualizarea unui corp de mobilă
din diferite unghiuri.
2. A doua categorie de utilizare constă în afișarea unor informații contex tuale. De
exemplu, camera dispozitivului mobil se îndreaptă către o clădire, și pe ecran apar
informații despre istoricul și valoarea clădirii.
3. A treia categorie permite crearea de jocuri, folosind elemente fizice din lumea reală.
a b c
Figura 11 Cele trei categorii de instrumente de Realitate Augmentată [41]
Realitatea Augmentată poate fi utilizată pe toate ecranele și dispozitivele conectate prin
dispozitive mobile precum smartphone -uri și tablete, pe ecran se pot vizualiza hologra me și se pot
manipula elemente 3D. Multe astfel de aplicații sunt disponibile pe iPhone, iPad și Android. Pe
computere și playere TV conectate, Realitatea Augmentată funcționează printr -o cameră web
conectată urmată de transmiterea informației pe ecran. Pr in dispozitivele montate pe cap, ochelari,
lentile, Realitatea Augmentată preia întregul câmp vizual al utilizatorului creând senzația că totul
se petrece în lumea reală. Există o gamă largă de instrumente care folosesc această tehnologie în
domeniul jocur ilor, vânzărilor, n avigației, design -ului, etc [35].
Schema de concept a unei aplicații de Realitate Augme ntată este ilustrată în Figura 12 .
7
Figura 12 Schema de concept a unei aplicații de Realitate Augmentată [42]
2.2.2 Realitat e Virtuală
Realitatea virtuală este termenul ce descrie un mediu tridimensional generat de un
computer, un mediu de interacțiune și explorare pentru ființele umane. Acea persoană devine o
parte a lumii virtuale sau este “scufundat” în acest mediu, iar cât timp este ac olo are puterea de a
manipula obiecte. Imersiunea în mediul virtual se realizează cel mai bine cu ajutorul unui
echipament HMD (head -mounted display), un gadget relativ simplu care presupune utilizarea unuia
sau a două ecrane (cu tehnologia corespunzătoare de procesare a imaginii ), două lentile biconvexe
și un sistem de urmărire a capului [43] .
Tabel 2. Definiții și aplicabilități pentru Realitatea Virtuală
Realitate Virtuală
Def.1: Realitatea Virtuală este o tehnologie care permite utilizatorilor să exploreze medii
interactive 3D în timp real. [44]
Def.2: Realitatea Virtuală este o tehnologie folosită pentru a oferi experiențe interactive
de învățare prin imagini generate de calculator în timp real. [44]
Def.3: Rea litatea Virtuală este o tehnologie care trebuie să ofere un experiment asociat cu
un sentiment puternic de imersare, fidelitate ridicată a mediului, interacțiune pozitivă și
impact negativ mic. [21]
Aplicabilitate: [44], [21], [10], [14], [23], [11]
Schema de concept a unei aplicații de Realitate Vir tuală este ilustrată în Figura 13 .
Realitatea Virtuală creează un mediu artificial în care utilizatorul este plasat, pe când
Realitatea Augmentată simulează obiecte artificiale în mediul real [45]. Realitatea Virtuală oferă
un mediu de instruire de mare amploare, un mediu imers, care aduce noi oportunități proceselor de
predare și învățare pe când Realitatea Augmentată poate îmbunătăți experiențele educaționale
tradiționale prin susținerea percepției conținutului legat de spațiu și prin permiterea învățării bazate
pe descoperire [44]. De exemplu, în studiul din [44], Realitatea Virtuală este utilizată pentru a
ilustra scenarii din construcții, pentru vizualizarea mediului în cazurile în care se întâmplă
accidente, iar Realitatea Augmentată este folosită pentru a accesa obiecte virtuale și scenarii cu
ajutorul unor markeri și se așteaptă ca elevii să descopere și să înțeleagă reglementările d e siguranță
în caz de accidente
8
Figura 13 Schema de concept a unei aplicații de Realitate Virtuală [46]
2.2.3 Realitate Mix tă
Tabel 3. Definiții și aplicabilități pentru realitatea mixtă
Realitatea mixtă
Def. 1: Realitatea mixtă este o subclasă a tehnicilor de realitate virtuală care constă în
îmbinarea mediilor reale și virtuale. [30]
Def. 2: Realitatea mixtă este o paradigmă de interacțiune care încearcă să coreleze mediile
fizice și mediile de prelucrare a datelor(digitale). [30]
Def. 3: Într -un mediu de realitate mixtă, lumea virtuală coexistă cu lumea reală, acestea
fiind asociate una cu cealaltă, dar cele două nu necesită neapărat înregistrări spațiale foarte
precise. [14]
Aplicabilitate: [14],[29],[30],[37]
2.2.4 Gamificare
În articolul [25], gamificarea este definită ca o metodologie de creștere a productivității,
implicării, dezvoltării abilităților și schimbării comporta mentelor. Se mai menționează faptul că
gamificarea poate îmbunătăți viața. Gamificarea reprezintă utilizarea mecanicii jocului și a
designului pentru a implica digital și a motiva oamenii să își atingă obiectivele. Este centrată mai
mult pe știința motivaț iei și pe utilizarea angajamentului digital pentru a extinde motivația undeva
peste limitele lumii fizice. Gamificarea are caracteristica faptului că ea conectează digital
utilizatorii care realizează aceleași sarcini și ca re urmăresc obiective similare, creând un mediu
competitiv.
Gamificarea reprezintă aplicarea elementelor tipice ale jocului în alte domenii de activitate,
pentru a încuraja angajamentul cu un produs sau serviciu [47].
9
2.2.5 Jocuri serioase
Un joc serios este asociat cu educația, învățarea de noi concepte și deprinderea unor abilități,
dar poate funcționa și ca o tehnologie de formare și simulare a diverselor activități ale vieții reale.
Un joc serios ar trebui să aibă o legătură evidentă înt re lumea reală și cea virtuală și să aibă un scop
dincolo de divertismentul pur [48].
Jocurile serioase sunt jocuri video folosite într -un context profesional pentru a face învățarea
mai interesantă și imersă [32].
Jocurile serioase sunt una din modalitățile eficiente de promovare a educației, devenind celebre
ca o generație inovatoare de tehnologii de învățare. Sunt produse multimedia pedagogice care îi
ajută pe jucători să își îmbunătățească abilitățile științifice [30]. Un framework pentru dezvoltarea
jocurilor serioase este prezentat în Figura 14.
Diferența dintre jocurile serioase și gamificare constă în faptul că jocurile serioase sunt un
training oferit sub formă de joc, au ca obiectiv învățarea, proces atins la sfârșitul jocului, pe când
gamificarea este folosită pentru a face procesul de învățare mai distractiv, scopul fiind sporirea
interesului și motivația utilizatorului.
Figura 14. Framework pentru dezvoltarea jocurilor serioase [49]
2.3 Tehnologii folosite în dezvoltarea aplicațiilor de asistare în învățare pentru
persoanele cu dizabilități
2.3.1 Unity3D
Unity3D este un motor grafic, un sistem conceput pentru crearea și dezvoltarea de jocuri video.
Acest mediu de dezvoltare permite atât crearea de jocuri 2D și 3D, permite utilizarea serviciilor
integrate pentru a accelera procesul de dezvoltare, pentru a o ptimiza jocul, dar permite și conectarea
cu o audiență care poate crește rata succesului dezvoltatorului. Unity3D este renumit în întreaga
industrie a jocurilor deoarece, după ce un joc a fost dezvoltat, se pot realiza setări astfel încât jocul
să poată ru la pe mai multe platforme cum ar fi: dispozitive mobile ( cu Android, i OS, Windows,
Mac, Linux, etc), desktop, Web, Console, TV; este renumit pentru profunzimea și calitatea
optimizărilor sale și pentru viteza și eficacitatea fluxurilor sale de lucru, permi țând utilizatorilor să
producă rapid conținut de ultimă generație.
10
Unity3D dispune de un magazin – Asset Store, unde se găsesc peste 1700 de extensii atât gratuite
cât și plătite pe care utilizatorul le poate importa și utiliza în propriul proiect. Alte av antaje ale
acestui motor sunt: se permite utilizarea a două limbaje de programare: C# și JavaScript, integrarea
cu Visual Studio, suportă zece formate diferite ale imaginilor, șapte formate audio, șase formate
video și cinci formate de text. Modul Play int egrat permite testarea și previzualizarea construcției
jocului. Acesta poate fi accesat oricând pentru previzualizare dar poate fi și întrerupt oricând pentru
a realiza modificări ale obiectelor din scenă, ale scripturilor și ale altor proprietăți și ulter ior se pot
vedea instantaneu rezultatele. Se poate păși în joc cadru cu cadru pentru a realiza depanarea în
cazul în care se dorește vizualizarea funcționării programul ui și rezolvarea unei erori [50].
În Figura 15 este prezentat aspectul implicit al ferestrei Unity3D. Cele șapte puncte marcate cu
roșu sunt: 1 -zona în care sunt ierarhizate obiectele jocului. Tot c e este plasat într -o scenă este
considerat un obiect al jocului. Acestea pot fi lumini, camere, elemente 3D sau elemente de interfață
cu utilizatorul. Fiecare obiect din joc are un nume, o etichetă și proprietăți de transformare a
poziției, rotației și dim ensiunii. Oricărui obiect din joc i se pot adăuga și alte componente care pot
să îl aducă la viață. Un obiect poate fi mutat într -o poziție nouă fie schimbându -i poziția cu un
vector de 3 elemente, fie i se aplică o forță fizică. 2 – scena jocului, unde se plasează obiectele și se
realizează interacțiuni între elemente. Tot ce rulează în joc există într -o scenă. Jocul este o colecție
de mai multe scene. Se pot crea câte scene dorește utilizatorul. O senă poate fi considerată ca un
nivel într -un joc, deși se pot crea mai multe nivele într -o singură scenă prin mutarea unui jucător
sau a camerei în puncte diferite ale scenei. 3 – zona unde se vizualizează perspectiva camerei, iar
atunci când butonul play este apăsat, în această zonă se previzualizează acțiunile r ealizate în scena
din zona 2. Inspectorul, zona 4, conține caracteristicile fiecărui obiect din joc. Acestea pot fi
modificate după dorința utilizatorului. Zona 5 conține o ierarhie a elementelor importate sau create
în proiect.
Figura 15. Interfața Unity3D și panourile de lucru
Zona 6 este asemănătoare cu zona 5, însă aceasta e utilizată mai mult pentru vizualizarea mai in
detaliu a elementelor din ierarhia din 5. Aici se recomandă crearea unor elemente precum scripturi,
texturi, etc și importarea elementelor din exteriorul proie ctului. Din interfața programului, dacă
există conexiune la internet, se poate accesa magazinul din Unity, punctul 7, pentru căutarea și
importarea unor elemente necesare în dezvoltarea jocului.
Unul dintre serviciile integrate este Unity Remote, o aplica ție care poate fi descărcată pentru
a ajuta la dezvoltarea altor aplicații pentru Android, iOS și tvOS. De exemplu, dacă utilizatorul
dorește să dezvolte o aplicație pe un dispozitiv mobil cu Android, pe acest dispozitiv instalează
Unity Remote, apoi conec tează dispozitivul prin USB la calculator și realizează câteva setări în
editor. Aplicația Remote conectează cele două dispozitive și ieșirea vizuală din z ona 3 din Figura
15 este trimisă pe ecranul dispozitivului mobil în timp real. Tot în timp real se pr eiau informații de
la atingeri ale ecr anului, accelerometru, giroscop, busolă , cameră, etc. Astfel se obține ideea despre
cum arată jocul pe dispo zitivul căruia ii este destinat , se pot face modificări și din nou vizualizări
fără a fi nevoie să se construi ască aplicația și să se instaleze pe dispozitivul cu Android, cee a ce ar
11
fi un lucru incomod [51]. Unity3D oferă documentație atât scris cât și video despre toate
funcționalitățile existente și cum pot fi acestea utilizate, oferă scripturi scrise, modele demo de
aplicații, și un forum cu întrebări și răspunsuri, rezolvări de situații apărute la ceilalți utilizatori.
Pentru a avea acces la toate aceste lucruri este necesară crearea unui cont și autentificarea în Unity.
Scrierea de scripturi este un element esențial în toate jocurile pent ru asigurarea că
evenimentele se întâmplă la timpul potrivit. Pe lângă asta, scripturile mai pot fi folosite pentru a
crea efecte grafice, pentru a controla comportamentul fizic al obiectelor sau pentru a personaliza
caracterele din joc. Unity3D are propri ile practici și tehnici de a contr ola obiectele din scripturi
[52].
2.3.2 Vuforia
Vuforia, o extensie a mediului Unity3D, este un kit de dezvoltare software de Realitate
Augmentată pentru aplicații ce pot rula pe dispozitive mobile.
Vuforia, o platformă inteligentă de realitate virt uală a Qualcomm, poate realiza o mulțime
de lucruri inteligente. Realizează recunoaștere de obiecte astfel poate să plaseze forme 2D și 3D în
scenă. Una dintre funcționalități o reprezintă terenul inteligent – SmartTerrain, care digitizează
obiecte fizice d in lumea reală și creează modele 3 D în timp real. Pentru a anima suprafețele din
lumea reală ca făcând parte din joc, se folosesc concep te din fizică și matematică [53].
Pentru a putea utiliza funcționali tățile oferite de Vuforia, este necesară crearea unui cont pe portalul
de dezvoltare. Ulterior se poate descărca extensia pentru Unity3D urmată de importarea într -un
proiect Unity. Principiul de funcționare V uforia este ilustrat în Figura 16 .
Figura 16. Schema logică de funcționare Vuforia [53]
Pe portalul Vuforia, în secțiunea Develop, se creează o cheie pentru licența proiectului în
secțiunea License Manager. Cheia generată se copiază în proiectul din Unity, în Inspector, în
VuforiaConfiguration. În pasul următor, se creează în Target Manager o bază de date. În această
bază se încarcă obiectul pe care utilizatorul dorește să îl folosească ca marker. Obiectul poate fi o
imagine, un cub, un cilindru sau un obiect 3D și trebuie să îndeplinească cerințele ca extensie și
dimensiune specificate în fereastra deschisă. După ce datele au fost introduse, se descarcă baza de
date și se importă în Unity. Se plasează în scenă came ra AR, apoi markerul din baza de date ca și
obiect de joc, și pe suprafața lui se poziționează un element 3D, alt obiect de joc. Mai este necesar
ca markerul din baza de date să fie printat astfel se construiește suportul fizic. În continuare
aplicația e c onstruită și apoi instalată pe un dispozitiv mobil. Suportul fizic e scanat cu ajutorul
camerei, și pe ecranul dispozitivului mobil va apărea elementul 3D care a fost poziționat în scena
din Unity pe suprafața markerului. Acest obiect 3D poate fi vizualiza t din diferite unghiuri în
funcție de cum este rot it suportul fizic ca în Figura 17 .
12
Figura 17. Scanarea markerului și apariția elementului 3D [54]
2.3.3 Blender
Blender este un program software liber, de grafică 3D. Acesta ajută la crearea unor modele 3D,
animații, simulări computerizate, randare, urmărirea mișcării, editare video și creare de jocuri. Se
poate utiliza API -ul de la Blender pentru a scrie scripturi Python , a personaliza aplicațiile și a crea
noi unelte. Blender e folosit pentru câteva sisteme de operare cum ar fi Linux, Windows,
Machinthos, iar interfaț a sa utilizează OpenGL (o interfață de programare pentru redarea graficelor
vectoriale 2D și 3D) . Suportă o varietate de forme geometrice, prezintă capabilități de randare
internă, permite crearea unor fișiere care apoi să fie exportate în alte programe, p recum Unity3D.
Acest software a fost utilizat de autorii din [55] pentru a crea un avatar capabil să genereze
anima ții potrivit limbajului semnelor, care să ajute la dezvoltarea unei aplicații ce face translația
din limbaj scr is în limbajul semnelor.
Figura 18. Interfața Blender și panourile de lucru
În Figura 18 este prezentat aspectul implicit al ferestrei Blender, este organizat în unul sau mai
multe zone, fiecare zonă conține un Editor. Cele 5 zone marcate cu roșu sunt: 1 – Editorul de
informații care este alcătuit din meniuri utile ca Fișier, Ajutor, Adăugare, 2-Fereastra 3D este locul
unde sunt aranjate elementele 3D, editate individual, și se pot defini animații, 3 – Cronologia, este
nucleul procesului de animație din Blender, 4 – Outliner ,fereastră utilizată pentru selectarea,
ștergerea, ascunderea obiectelor modelate dintr -o scenă 5 – Editor de proprietăți, unde se a fișează
panourile de funcții .
13
2.4 Arhitecturi pentru aplicații de asistare în învățare
2.4.1 Arhitectura unei aplicații de învățare a limbajului semnelor
În Figura 19 este reprezentată arhitectura aplicației de învățare a limbajului semnelor printr -un
proces ciclic. Soluția propusă implică comunitatea persoanelor surde atât în învățare cât și în
crearea materialului interactiv utilizând aplicația web. Materialul intera ctiv constă într -o imagine
și semnificația ei descrisă. Acestea formează o bază de date, iar utilizatorul poate să descarce poza,
iar în urma scanării cu un dispozitiv mobil aplicația va dezvălui textul asociat pozei, text pe care
trebuie să îl transpună î n semne [25].
Figura 19. Arhitectura aplicației de învățare a limbajului semnelor [25]
2.4.2 Arhitectură aplicație Unity3D
Figura 20. Arhitectura aplicației din Unity3D
Jocul din Unity3D are la baza interfața OpenGL, utilizată pentru grafica 2D și 3D. Scena împreună
cu resursele reprezintă elementele necesare în dezvoltarea unui joc. Resursele pot proveni din
14
magazinul Unity AssetStore sau extern, realizate și importate d e dezvoltator. Acestea formează o
bază de date care ulterior pot fi plasate în scenă. Scena conține diferite obiecte de joc, proprietăți
ale acestora, setări, scripturi, efecte, toate integrate în vederea construirii unei aplicații pentru
dispozitive fizic e. În sens invers, dispozitivele fizice oferă un set de date necesare funcționării
aplicației dezvoltate.
2.5 Scenarii și principii integrate de dezvoltare a aplicațiilor de familiarizare cu
regulile de circulație
2.5.1 Integrarea obiectului de tip Avatar
Legea 448 menționată mai sus referitor la educația persoanelor cu deficiențe de auz
specifică faptul că trebuie asigurată comunicarea prin utilizarea limbajului mimico -gestual. Așa
cum în lumea fizică există interpreți ai acestui limbaj, în lumea virtuală s-au dezvoltat avatare care
să țină locul interpreților limbajului mimico -gestual. Un avatar este un umanoid virtual, o ființă
tridimensională generată de un calculator, cu gesturi expresive și expresii faciale subtile.
Persoanele cu deficiențe de auz urmăresc atât mișcările mâinilor cât și expresii faciale atunci când
comunică iar în acest caz ar fi util un avatar reprezentat de un bust sau de un întreg corp uman.
Această tehnologie este utilă în procesul de asistare a învățării persoanelor cu deficiențe de auz în
mai multe domenii iar în situația de față ar fi utilă în ceea ce privește asistarea în înțelegerea
principiilor și regulilor de trafic prin realizarea conversiei din text în limbajul semnelor pentru
explicarea indicatoarelor rutiere, pentru instrucțiunile jocului, facilitând procesul de înțelegere a
modului de funcționare a jocului și a regulilor care trebuie respectate.
2.5.1.1 Conversie text -to-sign
Figura 21. Generarea parametrilor pentru animarea avatarului [9]
Principalele componente ale sistemului de conversie din text în limbajul semnelor sunt datele de
intrare: cuvinte, propoziții, și sistemul de generare a limbajului semnelor. Datele de intrare sunt
15
analizate și sunt extrase informații semantice pentru a genera parametri ce vor fi utilizați în
realizarea animațiilor.
Una din tehnicile folosite pentru a anima un avatar se bazează pe procesul de capturare a mișcării
unei persoane umane reale folosind echipamente specializate. Se utilizează senzori magnetici sau
senzori bazați pe viziune pentru colectarea unor date, ulterior aceste date se folosesc pentru a anima
avatarul. Unele echipamente de captare a mișcării includ costum sau mănuși cu potențiometre
pentru a măsura mișcările corpului și mâinilor. Alte echipamente folosesc markeri optici și camere
specializate pentru a înregistra mișcările feței și corpu lui. Un exemplu de sistem care folosește
tehnica de captare a mișcării pentru animațiile avatarului este TESSA (Text and Sign Support
Assistance). Acesta captează mișcările folosind senzori separați pentru mâini, corp și față. Pentru
a înregistra pozițiile degetelor față de mână sunt utilizate mănuși cibernetice cu 18 elemente
rezistive, pentru înregistrarea poziției părții superioare a corpului s -au utilizat senzori magnetici
Polhemus, iar expresiile faciale au fost capturate folosind un aparat de fotograf iat cu filtre
infraroșii, înconjurat de lumină infraroșie pentru a ilumina fața și 18 reflectoare de lumină au fost
lipite pe față în regiunile de interes cum ar fi gura și sprâncenele. Interferența dintre senzorii de pe
mănuși depinde de cât de strânse vi n mănușile pe mâinile persoanei care face semne. Datele de
mișcare captate sunt folosite pentru a anima avatarul.
O altă metodă de transpunere a unui text în limbajul semnelor este prin utilizarea unor
filmări în care o persoană efectuează un semn pentru un cuvânt. Se înregistrează un număr mai
mare de gesturi. Ulterior se formează o bază de date cu cuvinte și semnele asociate. Se introduce o
propoziție în sistemul de intrare, propoziția este împărțită în cuvinte, fiecare cuvânt este căutat în
baza de date și se concatenează videoclipurile cu semnele corespunzătoare cuvintelor din propoziții
[55].
2.5.1.2 Conversie sign -to-text
Figura 22. Extragerea punctelor cheie și potrivirea imaginilor [56]
16
Pe lângă sistemul de conversie a textului în limbajul semnelor, există sisteme care realizează
conversie și în sens invers. De exemplu, în lucrarea [56] este descris un sistem care recunoaște
semnele pentru literele alfabetului în timp real. Se realizează o bază de date conținând imagini cu
semne pe ntru fiecare literă a alfabetului. Abordarea și algoritmii pentru recunoașterea gestului
mâinii constau în două etape. Prima este recunoașterea gestului realizat de mână iar a doua este
identificarea momentului când se face tranziția de la un semn la altul . Se utilizează o cameră web
pentru capturarea gestului mâinii, ulterior se elimină fundalul. Se convertește spațiul de culoare
RGB (Red, Green, Blue) în spațiul de culoare HSV (Hue, Saturation, Value) pentru a se izola
componenta de luminozitate de compon enta de culoare. Se utilizează un algoritm de detectare a
culorii pielii, și imaginea e convertită într -o imagine binară. În continuare se utilizează un algoritm
care va compara mărimea tuturor contururilor și va alege regiunea de interes reprezentată de c el
mai mare contur. Apoi are loc procesul de extragere a caracteristicilor imaginii folosind algoritmul
SURF (Speeded Up Robust Features). Acesta se bazează pe determinanții matricei Hessian și va
oferi un set de puncte cheie. Caracteristicile obținute din aceste prelucrări se compară cu
caracteristicile din baza de date, iar această comparație se bazează pe distanța dintre fiecare locație
a punctului cheie din imaginea capturată și imaginea din baza de date. Astfel se poate determina
litera din alfabet pe care o reprezintă imaginea captată. O diagrama de principiu a acestui p roces
este ilustrat în Figura 22 .
17
3. Implementarea soluției
3.1 Viziune și specificații
Lucrarea curent ă descrie un model de aplicație pentru recunoașterea semnelor de circulație,
înțelegerea semnificațiilor și a comportamentului care trebuie adoptat la întâlnirea acestora.
Implementarea propusă adaptează principiile jocurilor serioase la specificitatea cognitiva a tinerilor
cu deficiențe de auz. În vederea aplicabilității practice, se propune un profil de utilizator
corespunzător tinerilor cu deficiențe de auz de la Liceul Tehnologic Special „SAMUS” din Cluj –
Napoca . Se urmărește livrarea unui produs software, o aplicație care rulează pe dispozitive mobile
cu Android.
3.1.1 Profil u tilizator
Liceul Tehnologic Special “SAMUS” din Cluj -Napoca este o școală care formează și
instruiește elevi cu cerințe educative speciale în vederea integrării socio -profesionale ulterioare.
Este specific adresată elevilor cu deficiențe de auz din zona T ransilvaniei, ulterior fiind integrați și
elevi cu deficiențe mintale și clase de învățământ de masă. Școala dispune de diferite cabinete, iar
instruirea practică a elevilor are loc în cadrul atelierelor din școală, specifice meseriilor. Alegerile
profesi ilor și repartizarea elevilor pe meserii au în vedere aptitudinile fiecăruia. Referitor la
promovarea examenului auto, elevii învață din cartea de legislație rutieră însă aceasta nu este
suficientă pentru ei. A existat un curs de legislație rutieră pentru elevii cu vârstă între 16 și 18 ani,
în care se dădeau explicații pe o tablă unde erau reprezentate situații din intersecții însă a fost
desființat.
3.1.2 Context
Elevii deficienți de auz din Liceul „SAMUS” au un câmp vizual bine dezvoltat iar limitările în
învățare sunt reprezentate de ne înțelegerea sensului unor cuvinte atunci când citesc texte. Soluția
cu cele mai bune rezultate este exemplificarea vizuală care îi ajută să facă conexiuni și să înțeleagă
concepte. Noile tehnologii le măresc curiozitatea și dorința de a experimenta. Jocurile pe telefonul
mobil reprezintă o mare atracție pentru ei, fiind preferate mai mult decât jocurile pe calculator și
utilizarea uneltelor fizice auxiliare (ex. joysticks, volan, etc).
A. Proces asimilare cunoștințe
Prin vizualizarea animațiilor, utilizatorul înțelege comportamentul care trebuie adoptat la
întâlnirea semnelor de circulație . Prin construirea și testarea scenariilor ba zate pe Realitate
Augmentată, se realizează familiarizarea cu semnele de circulație. Prin generarea dinamică a
scenariilor se testează cunoștințele dobândite. Acestea împreună cu capacitatea de înțelegere a
utilizatorului și nivelul de motivare determină e ficiența învățării și în final acumularea
cunoștințelor.
18
Figura 23. Procesul de asimilare a cunoștințelor
B. Abordare propusă: diagramă funcțională utilizator
Figura 24. Schema logică de funcționare a aplicației
Aplicația este structurată pe trei niveluri. S -a optat pentru această abordare pe 3 niveluri
pentru eficiența procesului de învățare. Primul nivel oferă parte teoretică însoțită de exemplificare
vizuală, astfel utilizatorul să poată face conexiuni între semnificația textului și comportamentul
care trebuie adoptat la întâlnirea unui semn de circulație. Exemplificarea este dată sub formă de
animații despre respectarea corectă a semnelo r de circulație. Al doilea nivel reprezintă o situație în
care utilizatorul poate să își creeze scenarii dintr -o inters ecție, utilizând suport fizic, să se
familiarizeze și să aprofundeze semnificația și comportamentul care trebuie adoptat la întâlnirea
anumitor semne rutiere. Nivelul 3 este un nivel de generare dinamică a scenariilor de testare, în
care utilizatorul trebuie să aplice ceea ce a învățat în primele două niveluri.
La pornirea aplicației, utilizatorul are 4 opțiuni. Să aleagă unul din cele 3 ni veluri sau să
părăsească aplicația. La alegerea nivelului 1 există 8 opțiuni: redarea a 6 animații despre respectarea
celor 6 semne de circulație, întoarcerea la meniul principal sau părăsirea aplicației. Dacă se alege
nivelul 2, utilizatorul este rugat să își configureze scena, ulterior se intră în jocul de Realitate
Augmentată. De aici poate merge la meniul principal, poat e relua jocul de RA sau poate părăsi
Asimilare
Familiarizare
Testare
19
aplicația. La alegerea nivelului 3, există 4 opțiuni de conducere a mașinii, o opțiune de întoarc ere
la meniu și una de părăsire a jocului.
C. Specificații funcționale/nonfuncționale
Tabel 4. Specificații funcționale/Specificații nonfuncționale
Nivel A. Specificații funcționale B. Specificații nonfuncționale
1
2
3
3.2 Premise: model experimental text -to-sign
Inițial s -a pornit de la ideea dezvoltării unei aplicații pentru dispozitive mobile cu android,
aplicație de convertire a textului în limbajul semnelor. Pentru dezvoltarea aplicației s -au realizat
următorii pași:
3.2.1 Animarea modelului mâinii în Blender
Am utilizat un model de mână construit în pro gramul Blender, cel din Figura 25 . Această mână
conține oase, la fel ca o mână reală, iar acest lucru a făcut posibilă îndoirea fiecărui deget, dar și a
încheieturii. Modelul 3D al mâinii are textura unei mâini reale.
20
Figura 25. Modelul mâinii umane în Blender
3.2.2 Crearea animațiilor pentru literele alfabetului și cifrele de la 0 la 9
Folsind modelul de mână din Figura 25 , am realizat în Blender 39 de animații. 29 pentru literele
alfabetului iar 10 pentru c ifrele de la 0 la 9. În Figura 26 este reprezentată o animație, cu mișcarea
oaselor, animație realiza tă cu ajutorul unor keyframes.
Poziție inițială
Poziție inte rmediară
Poziție finală
Figura 26. Realizarea unei animații în Blender utlizând keyframe s
3.2.3 Importarea animațiilor în Unity3D și finalizarea aplicației
Într-un proiect din Unity am importat animați ile realizate în Blender, a m plasat în scenă mâna, apoi
un obiect Canvas în care am pus un câ mp ce preia text de la tastatură, pe acest camp am plasat un
buton de ieșire din aplicație. Tot în Canvas am mai adăugat două elemente de tip UI text, încadrate
în două elemente Panel, unul pentru a prelua toată propozția introdusă de la tastatură, iar al doilea
pentru a arăta li tera sau ci fra animată curent. În Figura 27 panelul numerotat cu numărul 4
reprezintă câmpul de intrare, și la o atingere a degetului va apărea tastatura de la dispoz itivul mobil
pentru a se introduce text. După ce textul este scris și se apasă OK, tastatura va dispărea și textul
va fi procesat. Întreaga propoziție introdusă o să apară în secțiunea marcată cu punctul 1 pe toată
durata procesării ei. În secțiunea marca tă cu punctul 2 va fi scrisă litera sau cifra corespunzătoare
caracter ului interpretat în limbajul semnelor. După ce animația se va finaliza, elementele de tip
Panel se vor reseta pentru a se putea introduce o nouă propoziție. Dacă se dorește părăsirea
aplicației se poate utiliza butonul marcat cu punctul 3. Keyframes
21
Figura 27. Interfața
aplicației b u n a
Figura 28. Limbajul semnelor pentru cuvântul “buna”
În Figura 28 este reprezentat limbajul semnelor pentru cuvântul “Buna!”. Această aplicație pentru
dispozitive mobile cu Android a fost prezentată unei persoane specializate, doamnei profesoare de
Tehnologia Informației și Comunicării de la liceul “SAMUS” din Cluj -Napoca pentru a se primi
un feedback. În urma discuției s -au notat următoarele aspecte: 1) o astfel de aplicaț ie, în care se
utilizează doar o mână ar fi utilă doar în cazul în care pentru un cuvânt nu există semn, el fiind
transpus literă cu literă în limbajul semnelor, 2) în general, atunci când se comunică cu o persoană
cu deficiențe de auz este nevoie ca limbajul semnelor, realizat cu ambele mâini , să fie obligato riu
însoțit de limbaj verbal, 3) pentru conversia din text în limbajul semnelor ar fi u til un avatar, care
să folosească ambele membre sup erioare dar și expresii faciale, și limbaj verbal. Ca și concluzie,
această aplicație text -to-sign nu ar fi relevantă în acest caz, iar dezvoltarea ulterioară a fost
suspendată.
3.3 Arhitectura funcțională a aplicației
3.3.1 Nivelul 1
Nivelul 1 este nivelul în ca re sunt redate animații cu resp ectarea corectă a semnelor de
circulație. Pentru primul nivel am cr eat o scenă n ouă, numită Nivel1 , apoi camerei MainCamera i –
am setat f undalul alb. Am plasat în scenă un obiect de joc, Canvas, și am creat un meniu de culoare
roșie cu numele Semnele de circulație. Am adăugat 8 butoane, 6 pentru semnele de circulație, un
buton pentru a realiza ieșirea din aplicație și un buton care să ducă utilizatorul spre un meniu
principal. Pentru fiecare din cele 6 butoane care reprezintă semnele de circulație, am schimbat
imaginea sursă. De exemplu, butonului interzis i -am pus imaginea corespunzăto are semnului
interzis ca în F igura 29 , punctul a.
a. Imaginea butonului b. Animația butonului
Figura 29. Imaginea și animația butonului
keyframes
22
Din opțiunea Button din Inspector am setat ca butonul interzis să fie interactibil, și am setat
Animation pentru tranziție. Am creat o animație în care butonul își schimbă dimensiunea și
culoarea în momentul în care este atins, cu ajutorul unor keyframe -uri aș a cum este ilustrat în Figura
29 punctul b. Am realizat aceeași pași și pentru restul butoanelor. Pentru tot meniul am realizat o
animaț ie de intrare în scenă: Figura 30 . Inițial i -am setat poziția în stânga canvasului, și am setat
transparența la 0, apoi i -am aplicat o roti re pe ax a Z pentru a avea efect 3D, iar în poziția finală l –
am adus în interiorul Canvasului și i -am setat transparența la 1.
Figura 30. Animația de intrare în scenă
Am creat o scenă nouă, numită Scena_Interzis . Am scris un script C#, care conține o funcție
ce realizează trecerea la o scenă nouă, specificată prin nume. Codul pentru funcție :
public void sch_scena( string numeScena )
{
Application .LoadLevel(numeScena);
}
Funcția se numește sch_scena, și are un parametru de tip string: numeScena. Acest parametru va fi
preluat din Inspector. Application.LoadLevel() realizează trecerea la o scenă specificată de
parametrul numeScenă. Scriptul l -am atribuit componentei Canvas. În scena Nivel1, pe butonul
Interzis am adăugat funcția de schimbare a scenei, iar la numele scenei am scr is Scena_Interzis ca
în Figura 31 .
Figura 31. Setări realizate pe buton pentru a schimba scena
La fel am procedat și pentru butoanele cedează trecerea, obligatoriu în față, stop, drum cu prioritate,
obligatoriu înainte sau în față și butonul pentru întoarcere în meniul principal. Pentru butonul Exit
am realizat un script cu o funcție care să realizeze ieșirea din joc.
public void exit_joc()
{
Application .Quit();
}
Funcția se numește exit_joc, este void deoarece nu returnează nimic și nu are nici -un parametru.
Application.Quit() realizează ieșirea din joc. În continuare, în scena Scena_Intezis am plasat un
teren, căruia i -am modificat dimensiunile la 25×25. Pe Asset Store am căutat o textură de iarbă și
am importat -o în proiect. Am setat textura de iarba pentru teren. Tot de pe Asset Store am importat
și un pachet cu părți de asfalt și un pachet cu o mașină. Am plasat peste teren bucățile de drum și
am format o intersecțieca cea din Figura 32, punctul a. Am plasat mașina în scenă pe o bucată din
drum, și i -am atribuit o cameră, am schimbat câmpul de vizualiza re astfel încât să surprindă mașina
din spate și drumul pe care va merge, ca în Figura 32, punctul b.
23
a. b. c.
Figura 32. Construirea scenei
Terenul obținut l -am duplicat și am format un pattern cu 6 intersecții. Pe terenul inițial am plasat
mașina, semnul de circulație interz is și două săgeti ca în Figura 32, punctul c. Semnul de circulație
și săgeata le -am construit importând o poza .png în Assets, apoi în Inspector am modificat tipul de
textură ca fiind Sprite (2D and UI). Ulterior am plasat în scenă un obiect 3D: Plane, i -am atribuit
texura de semn interzis, și în Inspector am modificat shader -ul ca fiind Unlit/Transparent. La fel
am procedat și pentru săgeți, pentru semnul “corect” și pentru semnul „greșit”, astfel am creat
elementele 3d din Figura 33, ce pot fi plasate în scenă ca obiecte de joc.
Semnul interzis Săgeată indicatoare Semn pentru situație
corectă Semn pentru situație
greșită
Figura 33. Elementele 3D ce pot fi inserate ca obiecte de joc
Pe săgeată am realizat o animație. Animația constă în modificarea culorii săgeții, pentru a fi mai
vizibilă direcția unde are voie mașina să circule. Următorul pas pe care l -am facut a fost
imple mentarea componentei animator care realizează animația de respectarea corectă a semnului
interzis. Pe mașina din scenă am înregistrat mai multe animații și le -am legat asa cum este arătat în
Figura 34 .
Figura 34. Componenta Animator cu cele 6 animații
24
“Initial” este prima animație în care mașina așteaptă câteva secunde în poziția inițială pentru a -i
permite utilizatorului să se acomodeze cu scena. În cea de -a doua animație: ”Inainte de intersect ie”
am deplasat mașina din poziția inițială până în intersecție. În cea de -a treia animație: „Inainte” am
deplasat mașina de la intrarea în intersecție drept în față, am plasat un element 3D collider pe
drumul din față și am pus un script pe mașină. În momentul când mașina trece prin collider, am
setat să se afișeze semnul de greșit, deoarece s -a intrat pe interzis. În a patra animație: „Dreapta”
am deplasat mașina de la intrarea în intersecție spre dreapta, unde și aici am plasat un collider, și
atunci când mașina ajunge la el, am afișat semnul pentru situație corectă. La fel am proc edat și cu
animația “Stanga”. În animația “GoMenuOD” mașina staționează câteva secunde în ultima poziție,
apoi este schimbată scena automat spre scena cu semnele de circulație. Acest lucru l -am realizat
cu un script. În funcția Update am verificat dacă st area curentă din Animator este ultima stare, și
în caz că da, să se schimbe scena.
void Update ()
{
if (anim.GetCurrentAnimatorStateInfo(0).IsName( "GoMenuCT" ) ||
anim.GetCurrentAnimatorStateInfo(0).IsName( "GoMenuID" ) ||
anim.GetCurre ntAnimatorStateInfo(0).IsName( "GoMenuOD" ))
{
sch_scena(numeScena);
}
Funcția care detectează interacțiunea dintre mașină și collider am implementat -o în alt script:
void OnTriggerEnter (Collider col)
{
if (col.gameObject.name == "Fata")// verifică dacă se lovește
colliderul din față
{
wrong1.SetActive( true); // semnul de situație greșită devine
vizibil
}
}
Am procedat la fel pentru semnul cedează trecerea, stop, obligatoriu în față, obligatoriu înainte sau
la dreapta, drum cu prioritate. Diferențele constau în poziția în care au fost plasate în scenă obiectele
3D care anunță că situația e corectă sau greși tă. Pentru fiecare semn, am creat în Canvas, un Panel
cu explicația de spre semnificația fiecărui semn de circulație din cele 6, explicație luată din cartea
de legislație rutieră.
3.3.2 Nivelul 2
Nivelul 2 este nivelul care folosește Realitatea Augmentată pentru a crea și a testa scenarii
dintr -o intersecție. În proiectul di n Unity a m creat o scenă nouă, numită ScenaAR1 și am eliminat
componenta MainCamera. Am căutat portalul Vuforia, am creat un cont, apoi în secțiunea
Downloads, pe portalul Vuforia am descărcat Vuforia SDK pentru Unity, apoi am importat -o în
proiectul din U nity. Am creat 5 markeri care să ajute la modelarea scenei virtuale. Markerii din
Figura 35 sunt coduri QR, însă acest format s -a ales doar pentru că oferă detalii suficiente pentru a
fi detectați și urmăriți.
25
Figura 35. Markerii asociați detectării semnelor de circulație
Cu acești markeri am creat pe portalul Vuforia, în secțiunea Develop ->Target Manager o baza de
date. Am avut grijă ca imaginile să respecte cerințele, să fie .jpg sau .png și să aibă maxim 2mb.
După ce am creat baza de date, am descărcat -o și am importat -o în proiect. Următorul pas pe care
l-am facut a fost să creez licența, ca proiectul să funcționeze. Pe portal, în secț iunea Develop ->
License Manager am adăugat o nouă licenț ă și s -a generat un cod. În proiectul din Unity am adăugat
în scenă componenta ARCamera, apoi am deschis setările Vuforia și am adăugat codul care s -a
generat pe portal. Tot în această secțiune am setat numărul maxim de markeri ca fiind 6, pentru a
permite detectarea în același timp a mai multor markeri și în Datasets am activat baza de date pe
care am importat -o de pe portal. Toate aceste s etări se pot observa în Figura 36 .
Figura 36. Setările Vuforia
În scena SenaAR1 am adăugat un prefab ImageTarget: Figura 37 punctul a, iar la Image Target
Behaviour am setat la Database baza de date creată pe portalul Vuforia, și la Image Target am
selectat markerul pentru intersecți e cum se poate vedea în Fig ura 37 punctul b. Apoi, pe suprafața
ImageTarget -ului am plasat o mașină. Am mai plasat în scenă încă patru prefaburi ImageTarget,
pentru semnul stop, cedează trecerea, interzis și obligatoriu dreapta, și am realizat aceleași setări,
iar pe suprafața lor am plasa t semnul de circulație corespunzător aș a cum este ilustrat în Figura 37
punctul c.
a. b. c.
Figura 37. Plasarea markerilor în scenă
26
Acești cinci markeri i -am scos la imprimantă și am creat suportul fizic.
De pe Asset Store am importat un pachet cu clădiri și pe suprafața markerului ce reprezintă
intersecția am plasat 3 clădiri, astfel să se deosebească suportul fizic de suportul virtual. Am dat
Play la scenă și am verificat cu ajutorul camerei de la stația de lucru dacă markerii sunt detectați.
Următorul pas pe care l -am realizat a fost punerea mașinii în mișcare prin apasarea unor butoane.
Am plasat în scenă un obiect Canvas, unde am adăugat patru butoane, și le -am schimbat imaginea
cu o imagine sugestivă din punct de vedere al direcției în care va circula mașina. Am realizat un
script cu cinci funcții, patru pentru direcțiile față, spate, stânga, dreapta, și o funcție pentru ca
mașina să stea pe loc când nu e apăsat nici -un buton.
public void MoveFata()
{
speed = new Vector3(0f, 0f,
moveSpeed);
} public void SetToZero()
{
speed = new Vector3(0, 0f, 0f);
sd = new Vector3(0f, 0f, 0f);
}
Figura 38. Funcțiile plasate pe butonul de mers în față
Scriptul l -am adăugat pe mașină, apoi pentru fiecare buton am adăugat un Event Trigger. De
exemplu, butonului de mers în față la Event Trigger -> Pointer Down am adăugat funcția de mai
sus, MoveFata() care translatează mașina pe direcția Z cu o valoare specificată de variabila
moveSpeed atunci când butonul este ținut apăsat, iar la Pointer Up am adăugat funcția SetToZero()
ce setează atât translația cât și rotația obiectului de joc mașină la 0 ca în Figura 38 . La fel am
procedat cu butoanele spate, stânga, dreapta, fiecare având o funcție proprie care realizează
translația m așinii într -o anumită direcție. Tot în componenta Canvas am mai realizat două butoane,
un buton de reluare a scenei, și un buton de ieșire din scenă. Pentru fiecare buton am reali zat câte
o funcție separată. A m mai adăugat patru obiecte UI Panel, și în fiecare Panel câte o componentă
UI text. Fiecărui Panel i -am setat o culoare și o dimensiune. Patru din cele cinci texte sunt de
atenționare și avertizare dacă nu au fost respectate semnele de circulație, iar cel de -al cincelea text
este de felicitare pentru respectarea corectă a semnelor. În continuare, pe suprafața imaginii target
intersecție am plasat collidere astfel încât mașina să nu poată depăși marginile drumului. Ac este
collidere le -am lă sat ca și componente active în scenă, și am plasat încă patru pentru verificarea
respectării regulilor de circualție, însă pe acestea le -am setat inactive. În cazul semnului interzis
atunci când camera detectează markerul pentru semnul interz is, am setat colliderul să devină activ,
iar dacă mașina ajunge și lovește acest collider am setat să se afișeze textul creat în Canvas pentru
semnul Interzis . La fel am procedat și pentru o bligatoriu dreapta. Pentru semnele stop și c edează
trecerea am pla sat colliderele inactive unul la intrarea în intersecție iar celălalt după intersecție. În
momentul când unul din cele două semne e detectat, colliderele devin active. Funcția care
realizează acest lucru este funcția implicită din Vuforia OnTrackingFound c areia i -am adăugat mici
modificări.
private void OnTrackingFound()
{ …
col1.SetActive( true);
col2.SetActive( true);
} private void OnTrackingLost()
{ …
col1.SetActive( false);
col2.SetActive( false);
}
Dacă markerul nu mai este detectat intra în funcțiune OnTrackingLost, funcția care setează
colliderele să fie inactive și mașina să nu poată interacționa cu ele. Dacă în scenă este plasat unul
din semnele Stop sau Cedează trecerea, cele două collidere devin active. În momentul în care
27
mașina ajunge la primul collider, am setat prin cod să se salveze într -o variabilă timpul trecut până
la întâlnirea p rimului collid er, apoi să se salveze timpul câ nd se ajung e la al doilea collider, am
făcut diferența dintre cei doi timpi , Figura 39 ,punctul a, iar dacă rezultatul e mai mic decât cinci
secunde înseamnă că nu s -a respectat semnul de circulație și am setat să se afișeze mesajul pentru
ne respectarea corectă a semnului , cel din Figura 39 , punctul b . Dacă timpul e mai mare ca 5
secunde în seamnă că a fost respectat semnul și în acest caz am afișat mesajul de felicitare.
a. Calculul timpului b. Afișarea mesajului de ne respectare a
semnului
Figura 39. Setările pentru semnul Stop
Funcția care realizează acest lucru face parte dintr -un script pe care l -am atribuit mașinii. Am folosit
funcția OnTriggerEnter pentru a detecta coliziunile dintre mașină și collidere.
col.gameObject.name returnează numele colliderului cu care interacționează mașina.
void OnTriggerEnter (Collider col)
{
if (col.gameObject.name ==
"Stop")
{
startTime1 = Time.time;
s = startTime1;
} if (col.gameObject.name == "notStop" )
{
startTime2 = Time.time;
st = startTime2;
dif = st – s;
if (dif < 5)
{
notstop_text.SetActive( true);
Time.timeScale = .5f;
}
else
{
stop_text.SetActive( true);
}
}
3.3.3 Nivelul 3
Nivelul 3 este nivelul de punere în aplicare a cunoștințelor dobâ ndite în primele două
niveluri. Pentru început am realizat o scenă care să îi permită utilizatorului să se acomodeze cu
drumul și modul de conducere al mașinii, și am numit -o scena Acomodare. În această scenă am
plasat un teren, l -am redimensionat la 25×25 m și utilizând pachetul cu drumuri importat pentru
primul nivel, am realizat o intersecție cu patru drumuri. Pe o una din cele patru am p lasat mașina.
Mașinii i-am adăugat ca și componentă Rigidbody, i -am stetat masa la 700 kg, și am bifat opțiunea
Use Gravity. Ulterior am realizat un script prin care să controlez mașina cu ajutorul săgeților de pe
tastatură. Am setat o vitez ă, și o forță p entru direcție, am setat publice componentele roților pentru
a le putea introduce din Inspector, am preluat ca și date de intrare axa orizontală și axa verticală.
Coordonatele axei orizontale le -am utilizat pentru a seta ca mașina să vireze cu 45 grade stâ nga sau
dreapta, iar datele provenite de la axa verticală le -am utilizat pentru a mișca mașina în față sau în
28
spate. Aceast ă fizică am aplicat -o pentru colliderele roților, iar pentru a obține un rezultat mai
apropiat de realitate, am setat ca anvelopele m așinii să aibă rotația și poziția colliderelor. Am atașat
scriptul pe mașină, iar în Inspector am adăugat cele 4 collidere ale roților și anvel opele de cauciuc
ca în Figura 40 .
Figura 40. Atașarea colliderelor și anvelopelor
În momentul când am dat Play pentru a verifica dacă pot controla mașina cu ajutorul săgeților, am
observat că mașina este scufundată cu roțile în asfalt și poate depăși marginile drumului, cum este
arătat în Figura 41 punctul a. Această problemă am rezolv at-o plasând în scenă collidere, pe fiecare
drum carosabil, și pe marginile trotuarului, astfel mașina să nu mai poată să iasă d e pe carosabil,
ca în Figura 41, punctul b.
a. Inițial b. Cu asignarea colliderelor
Figura 41. Interacțiune mașină -carosabil
În continuare am plasat în scenă un collider în mijlocul intersecției pentru putea detecta momentul
când mașina trece de el, și în fiecare parte a drumului am plasat câte un collider pentru a putea
recunoaște direcția în care merge mașina, ca în Figura 42 . Am realizat un script pentru duplicarea
terenului în funcție de direcția în care mașina este condusă de către utilizator. De exemplu, pentru
demararea mașinii în direcția față dacă se trece de mijlocul intersecției și se det ectează că mașina
va merge în față, am calculat poziția pentru noul teren care va fi adăugat în față și am duplicat
terenul inițial, setându -i noua poziție. Atunci când mașina ajunge pe terenul duplicat, am setat să
se distrugă terenul inițial. Partea din cod care realizează acest lucru este cea scrisă mai jos. Acest
script l -am aplicat mașinii.
if (mijl_int == true && other.gameObject.tag == "fata")
{ pos = new Vector3(teren_actual.transform.position.x + 25,
teren_actual.transform.position.y, teren_actual.transform.position.z);
var go = Instantiate(teren_actual, pos, rot);
mijl_int = false;
teren_de_distrus = teren_actual;
teren_actual = go;
}
Principiul intersecției :
29
În Figura 43 este ilustrat principiul de generare dinamică a drumului. Se detectează direcția de
mers, și se adaugă teren în acea direcție. În continuare am plasat în scenă un obiect Canvas, aici
am creat trei butoane. Două pentru a manevra mașina în față și în spate și unul pentru a ieși din
această scenă. Am scris un script nou pentru a prelua date de la accelerometrul unui dispozitiv
mobil cu Android în vederea deplasării mașinii stânga -dreapta. Input.acceleration.x este codul
care preia datele de la accelerometrul telefonului mobil. Tot în acest script, am creat trei funcții,
prima pentru a deplasa mașina în față, una pentru ca mașina să se oprească, și ultima pentru ca
mașina să se deplaseze în spate. Am atașat scriptul mașinii, iar butoanelor din interfață le -am
realizat aceleași setări descrise mai sus la punctul 3.2.2 folosind Event Trigger, singura diferență
constă în funcțiile folosite. Mașinii i -am atribuit patru camere și le -am setat câmpu l de vizualizare
ca în Figura 44 . Camera marcată cu punctul 1 prezintă o vedere a mașinii și a intersecției din spatele
mașinii, în punctul 2 am setat câmpul de vizualizare din fața mașinii , în punct ul 4 din spatele
mașinii, iar în punctul 3 am setat o vedere de sus a intersecției și a mașinii.
Figura 44. Câmpul de vizualizare a celor patru camere asignate mașinii
În continuare am mai creat o scenă, în care am plasat terenul și mașina cu camere din scena
anterioară, și componenta Canvas cu butoanele. Am plasat în intersecție un obiect de joc gol, și i –
am atribuit 7 semne de circulație : cedeaz ă trecerea, obligatoriu înainte sau la dreapta, inte rzis,
obligatoriu dreapta, obligatoriu înainte, drum cu prioritate, stop. Aceste semne le -am setat să fie
inactive, și am scris un script care să activeze aleator unul dintre semne.
Figura 42. Plasarea în scenă a coliderelor Figura 43. Principiul de generare dinamică a
drumului
30
void Start () {
obj[UnityEngine. Random.Range(0,obj.Length)].SetActive( true);
}
Am creat un vector de elemente, numit obj, și din Inspector am introdus cele 7 semne de circualție.
Cu ajutorul funcției UnityEngine.Random.Range(0, obj.Lenght) am selectat aleator un semn din
cele 7, apoi cu ajutorul f uncției SetActive(), l -am activat ca să apară în intersecție. Această funcție
e apelată de fiecare dată cand se pornește scena sau când e resetată. Pentru semnele obligatoriu
înainte sau la dreapta, interzis și obligatoriu dreapta am plasat în scenă câte u n collider, iar pentru
cedează trecerea, stop și obligatoriu înainte am plasat în scenă câte două collidere. Rolul acestor
collidere este de a verifica dacă semnul de circulație este respectat sau nu. În componenta Canvas
am adăugat cinci obiecte UI text, patru dintre ele să atenționeze atunci când nu se respectă semnul
de circulație, iar cel de -al cincelea pentru a felicita respectarea corectă a semnelor. Am modificat
culoarea, fontul și dimensiunea textului și fiecărei componentă UI text i -am adăugat cîte o
componentă UI Button pe care am pus următoarea funcție de reluare a scenei :
public void Reset()
{
Application .LoadLevel( Application .loadedLevel);
}
Motivul pentru care am pus acest buton este pentru a -i permite utilizatorului să treacă la intersecția
unde este plasat aleator următorul semn de circulație, după ce a interacționat deja cu unul. Acestui
teren nu i -am setat proprietatea de a se duplica din amic în funcție de direcția în care circulă mașina,
ci doar oferă situații de testat î n aceeași intersecție, prin schimbarea în mod aleator a semnelor de
circulație.
Următoarea scenă am construit -o la fel ca pe prima scenă prezentată, cu aceeasi componentă
Canvas, cu butoane, dar în intersecție am adăugat 4 sem ne de circulație ca în Figura 45 , punctul a.
Două semne drum cu prioritate și două semne cedează trecerea, toate însoțite de câte un panou ce
indică direcția drumului cu prioritate.
a. Plasarea semnel or în intersecție b. Poziționarea terenului duplicat
Figura 45. Plasarea semnelor în intersecție și poziționarea terenului duplicat
Semnelor cedează trecerea le -am adăugat câte două collidere pentru a verifica dacă sunt respectate
iar în Canvas am adăugat componente text UI pentru avertizare în cazul în care nu sunt respectate
semnele . Pe mașină am pus un script asemănător cu cel reali zat pentru prima scenă din această
secțiune. În funcție de cum interacționează mașina cu colliderele este duplicat acest teren și plasat
în direcția de mers a mașinii cum se poate vedea în Figura 45, punctul b.
În următoarea scenă pe care am realizat -o am construit un pattern format din 9 intersecții, și am
plasat mașina în mijlocul gridului, înainte de intersecția din mijloc. În a ceastă intersecție , care este
prima intersecție cu care va interacționa mașina, am plasat un singur semn de circulație. Din
intersecția din mijloc, mașina poate merge în față, poate vira la dreapta sau la stânga, iar indiferent
de calea pe care o alege am setat să întâlnească acceași situație în care va trebui să țină cont de
31
același semn de circulație pe care l -a întâlnit în prima intersecție, dar și de o mașină care circulă pe
drumul prioritar. Situ ația se poate vedea în Figura 46 punctul a.
a. Patternul inițial b. Patternul duplicat
Figura 46. Patternul inițial și patternul duplicat
Pe mașina care va circula pe dumul prioritar am realizat o animație, și am plasat un collider înainte
de intersecția a doua. Am scris o funcție care atunci când detectează că mașina condusă de utilizator
se apropie de acea inter secție, activează animația. În Figura 47 punctu l a este ilustrată plasarea în
scenă a semnului st op și o mașină, iar în Figura 47 punctul b, plasarea în scenă a semnului și a două
mașini. Pe fiecare mașină am plasat un collider, iar în cazul în care mașinile se lovesc, am setat o
compon entă UI text să devină activă. Diagrama de secvență pentru duplicarea terenului este
ilustrată în Figura 48 . Am plasat în scenă collidere pentru a afla momentul în care mașina trece de
intersecții. Când mașina trece de intersecții, am setat din cod să se duplice terenul.
a. b.
Figura 47. Plasarea în scenă a semnului stop și a mașinilor
Figura 48. Diagrama de secvență în cazul d uplicării terenului
3.4 Integrarea nivelurilor aplicației și instalare
Pentru a obține produsul final, am îmbinat cele 3 niveluri cu ajutorul unor scene ce conțin meniuri
și butoane interactive. Scena de început a aplicației am construit -o plasând în scenă componenta
32
Canvas pe care am person alizat -o așa cum arată Figura 49 punctul a. Am adăugat patru butoane pe
care le -am personalizat și pe trei dintre ele am adăugat scriptul de schimbare a scenei pe care l -am
explicat în secțiunea 3.2.1 și pe ultimul buto n am atașat funcția de ieșire din joc . Fiecărui buton i –
am aplicat o animație în momentul când este apăsat cum se poate observa în Figura 49 punctul b .
Am importat o imagine cu o mașină, și în Inspector, la tipul texturii am ales Sprite (2D and UI) și
am plasat -o în C anvas. Canvasului i -am aplicat acceași animație ca cea de scrisă pentru Canvasul
din secțiunea 3.2.1. Am setat ca atunci când este apăsat primul buton, să facă tranziția la scena
denumită Nivel1.
a. Meniul aplicației b. Animația de pe butonul numit Nivelul1
Figura 49. Interfața la pornirea aplicației
Pentru Nivelul 2 am creat o scenă nouă, camerei MainCamera i -am setat fundalul alb. Am importat
5 imagini, le -am aplicat textura de Sprite, și cu ele am realizat o animație care să dea impresia că
un omuleț aleargă dintr -o parte în alta a ecranului. Am creat 4 componente de tip text și 3 butoane
pe care le -am personalizat cu câte o imagine. Cu ajutorul componentelor de tip text am dat
instrucțiuni despre setările care trebuie realizate pentru a construi scena fizică, iar pe unul dintre
butoane am pus funcția de schimbare a scenei spre ScenaA R1 din nivelul 2 ca în Figura 50 punctul
a.
a. Interfața de intrare în nivelul de RA b. Interfața de ieșire din nivelul de RA
Figura 50. Interfețele nivelului 2
În Figura 50 , punctul b este ilustrată interfața de ieșire pe care am realizat -o pentru nivelul 2. Pentru
MainCamera am setat fundalul alb, am adăugat un Canvas în care am adăugat trei butoane. Primului
buton cu textul DA i -am atribuit o funcție de ieșire de tot din joc , butonului cu textul Nu i -am
atribuit funcția de schimbare a scenei spre scena ScenaAR1, iar butonului cu textul Meniu i -am
atribuit funcția de schimbare a scenei spre pr ima scenă cu meniul principal. Pentru nivelul 3 am
creat o nouă scenă, am setat funda lul camerei MainCamera alb, am adăugat un Canvas și l -am
personalizat la fel ca cel din sectiunea 3.2.1, cu aceeași animație de intrare și i -am adăugat 6
butoane. Tuturor butoanelor le -am aplicat scriptul de schimbare a scenei și am introdus numele
scenei spre care doresc să facă tranziția. În Figura 51 se poate observa atât interfața nivelului 3 cât
și animația de pe al 4 -lea buton.
33
Figura 51. Interfața nivelului 3
Ulterior, accesând opțiunile File ->BuildSettings am adăugat toate scenele și am avut grijă ca prima
scenă introdusă să fie interfața de intrare în aplicație. Am schimbat platforma de la PC,Mac&L inux
la Android, ca în Figura 52 .
Figura 52. Adăugarea scenelor și schimbarea platformei
Ultimul pas pe care l -am realizat a fost configurarea setărilor: numele companiei, numele
produsului, i -am adăugat o imagine aplicației. La Resolution and Presentation am setat la or ientare
Landscape Left, iar la Other Settings am competat Bundle Identifier și am setat Minimum API
Level l a Android 6.0 ‘Marshmallow’ (API level 23) apoi am dat Build și am construit aplicația.
Am copiat -o pe propriul dispozitiv mobil și am instalat -o. Am observat că aplicația are nevoie de
ajustări în ceea ce privește dimensiunea butoanelor și poziționarea lor în interfață, am realizat mici
modificări în program, am construit din nou aplicația și am instalat -o din nou pe dispozitivul mobil.
34
4. Rezultate experimentale
În momentul în care aplicația este rulată, prima interfață care apare este interfața cu me niul
principal, cea din Figura 53 .
Figura 53. Interfață meniu principal
S-a obținut o interfață animată, cu 4 butoane interactive. Interactivitatea butoanelor constă în
animarea acestora atunci când sunt apăsate.
4.1 Nivelul 1
Prin apăsarea butonului Nivelul 1 , utilizatorul este trimis către o inter față secundară, cea din
Figura 54. Aceasta conține 8 butoane interactive , 6 reprezentate de semnele de circulație : cedează
trecerea, interzis, stop, obligatoriu în față, drum cu prioritate, obligatoriu înainte sau la dreapta, un
buton de ieșire din aplicație și un buton de întoarcere l a meniul principal .
Figura 54. Meniul cu semnele de circulație
Toate cele 6 semne de circulație duc la scene în care este redată o animație despre respectarea
corectă a semnului. Pe toată durata animației este prezentă explicația din legislația rutieră despre
semnificația semnului și după rularea unei animații, aplica ția se întoarce automat în acest meniu cu
semnele de circulație.
A. Cedează trec erea
Atunci când utilizatorul alege butonul cedează trecrea, el e ste trimis la scena din Figura 55 în care
va privi o animație despre respectarea corectă a acestui semn. S-a obținut o scenă formată dintr -o
intersecție în care este plasat semnul cedează trecerea. Atunci când mașina ajunge în intersecție,
trei săgeți indică direcția în care mașina poate circula așa cum se observă în punctul a. Pentru acest
caz, mașina poate să m eargă în față, poate vira la dreapta sau poate vira la stânga, în toate cele 3
situații se dă un feedback vizual, ca în punctul b, cu semnificația că situația este corectă dacă mașina
încetinește pentru a se asigura atunci când ajunge langă semn și alege una din direcțiile indicate de
săgeți. Animația este însoțită permanent de textul din cadranul negru în care este dată explicația
din legislația rutieră despre semnificația semnului de circulație.
35
Mesaj de explicare a semnului cedeaz ă trecerea
a. Săg ețile indicatoare de direcție b. Feedback vizual pentru situație corectă
Figura 55. Scena semnului cedează trecerea
Pe langă cele 3 situații corecte, mai este prezentată și situația în care mașina nu încetinește în
intersecție pentru a se asigura, iar în acest caz este dat feedbackul vizual de si tuație greșită, cel din
Figura 56 .
Figura 56. Feedback vizual pentru situație greșită
După rularea animației, aplicația se întoarce automat în meniul cu semnele de circulație pentru a -i
permite utilizatorului să aleagă un alt semn.
B. Interzis
În această situație semnul interzis este plasat pe drumul de mers înainte cum se ajunge în
intersecție. Direcțiile de deplasare corecte sunt arătate prin săgețile indi catoare de direcție ca în
Figura 5 7, punctul a. Dacă se alege virajul la stânga sau dreapta, ambele situații sunt corecte și în
acest caz este dat un feedback vizual pentru situație corectă. În cazul în care se intra pe interzis, se
dă feedbackul vizual pe ntru situație eronată, ca în Figura 5 7, punctul b.
36
a. Săgețile indicatoare de direcție b. Feedback vizual pentru intrare pe
interzis
Figura 57. Scena semnului interzis
C. Stop
Situația semnului stop este asemănătoar e cu situația semnului cedează trecerea. Diferențele
constau în textul pentru explicarea semnificației semnului, și prin faptul că în animație, pentru a
arăta situația corectă, mașina se oprește la semnul stop și aște aptă câteva secunde pentru a se
asigura. În Figura 58 este ilustrată scena cu semnul stop, în punctul a se observă săgețile indicatoare
de direcție, iar în punctul b este feedbackul vizual pentru situația în care mașina nu oprește la semn.
a. Săgețile indicatoare de direcție b. Feedback vizual pentru ne respectarea
semnului stop
Figura 58. Scena semnului stop
D. Obligatoriu în față
Mesaj de explicare a semnului obligatoriu înainte
a. Săgeata indicatoare de direcție b. Feedback vizual pentru situație greșită
Figura 59. Scena semnului obligatoriu înainte
Mesaj de explicare a semnului interzis
Mesaj de exp licare a semnului stop
37
Pentru semnul obligatoriu în față, în intersecție este plasată o singură săgeată indicatoare de
direcție, și anume în față, cea din Figura 59 , punctul a, virajul la stânga sau la dreapta fiind interzis.
Dacă se alege o altă direcție de mers decât cea indicată de săgeată, e ste afișat semnul din Figura 59
punctul b.
E. Drum cu prioritate
Animația pentru acest semn este o s ituație în care mașina circulă pe drum fără a încetini,
deoarece are prioritate în intersecția în care va pătrunde. În Figura 60 punctul a, sunt arătate
direcțiile în care mașina are voie să meargă. În toate cele 3 situații feedbackul este unul pentru
situație core ctă ca în punctul b din Figura 60 .
Mesaj de explicare a semnului drum cu prioritate
a. Săgețile indicatoare de direcție b. Feedback vizual situații corecte
Figura 60. Scena semnului drum cu prioritate
F. Obligatoriu în față sau dreapta
Când mașina ajunge în intersecția unde este plasat acest semn, două săgeți indică direcțiile
corecte de mers, și anume în față sau la dreapta. Când mașina alege una din aceste două direcții, se
afișează mesajul de si tuație corectă, cel din Figura 61 , punctul a, iar dacă mașina virează la stânga,
se afișează mesajul din punctul b, de situație eronată.
Mesaj de explicare a semnului obligatoriu înainte sau dreapta
a. Situație corectă b. Situație eronată
Figura 61. Scena semnului obligatoriu în față sau dreapta
38
4.2. Nivelul 2
Prin apăsarea butonului Nivelul 2, utilizatorul este trimis către int erfața secundară din
Figura 62 în care este întâmpinat de mesaje cu două instrucțiuni pentru configurarea scenei cu
eleme ntele fizice. În punctul a se cere plasarea în scenă a mașinii. După ce mașina e pusă, se apasă
butonul din dreptul intrucțiunii, și apare mesajul din punctul b, în care se cere plasarea în scenă a
unui semn de circulație apoi se poate merge spre jocul cu Realitate Augmentată prin apăsarea
butonului „Spre joc”.
a. Instrucțiunea de plasare a mașinii b. Instrucțiunea de plasare a unui semn
Figura 62. Interfața nivelului 2
După respectarea instrucțiunilor, scena fizică trebuie să arate asemănător cu cea din Figura 63
punctul a, iar în urma detectării markerilor, pe ecranul dispozitivului mobil se obține rezultatul din
Figura 63 punctul b. Este reprezentată o interfață unde sunt redate cadrele surprinse de camera
dispozitivului mobil în timp real și 6 butoane, 4 pentru manevrarea mașinii față, spate, stânga,
dreapta, un buton de reluare a scenei și un buton de ieșire din scenă
a. Sena fizică b. Scena augmentată
Figura 63. Scena fizică și scena augmentată
Figura 64. Poziționarea obiectelor virtuale în timp real
39
În Figura 64 se observă atât suportul fizic cât și elementele 3D asignate markerilor. În acest nivel
există posibilitatea testării a 4 semne: stop, cedează trecerea, interzis și obligatoriu dreapta.
A. Semnele stop și cedează trecerea
La plasarea în scenă atât a semnului stop cât și a semnului cedează trec erea se obțin aceleași
rezultate , cele din Figura 65 . În punctul a, se observă mesajul afișat în cazul în care semnul nu este
respectat, adică mașina a intrat în intersecție fără să aștepte pentru a se asigura, iar în punctul b este
afișat mesajul pentru un comportament adecvat în intersecție în care mașina oprește la semn,
așteaptă 5 secunde pentru a se asigura, apoi înaint ează în intersecție.
a. Situație incorectă b. Situație corectă
Figura 65. Cele două situații pentru semnul stop plasat în scenă
B. Semnul interzis
Dacă semnul plasat în scenă este semnul interzis, se pot obține două rezultate, cele din Figura
66. În punctul a este ilustrată situația corectă în care mașina alege o direcție de mers care nu este
restricționată, în cazul de față virează la dreapta. Același mesaj este afișat și dacă mașina virează
la stânga, iar în punctu l b se poate observa mesajul afișat dacă mașina intra pe drumul interzis.
a. Situație corectă b. Situație incorectă
Figura 66. Situațiile pentru semnul interzis
C. Semnul obligatoriu la dreapta
Atunci când în intersecție se plasează semnul obligatoriu în dreapta, există o singură situație
corectă, și anume virajul la dreapta, caz în care s e afișează mesajul din F igura 67 punctul a. În
punctul b este ilustrat mesajul de eroare dacă se alege altă rută.
40
a. Situaț ia corectă b. Situație incorectă
Figura 67. Situațiile pentru semnul obligatoriu la dreapta
Atunci când utilizatorul dorește să părăsească nivelul și apasă butonul “Exit”, apare o a ltă
interfață, cea din Figura 68 , în care este întrebat dacă dorește să părăsească aplicația, și are 3
opțiuni. La apăsarea butonului Da, dispare butonul Nu și apare un mesaj de mulțumire că s -a ales
jocul, c el din Figura 69 , rulează o scurtă animație cu un omuleț, ulterior se iese din aplicație. Dacă
se apasă butonul Meniu, utilizatorul este dus la me niul principal, cel din Figura 53 , iar dacă se
apasă b utonul Nu, se reia scena de Real itate Augmentată.
4.3. Nivelul 3
La alegerea butonului Nivelul 3, utilizatorul este dus spre i nterfața secundară din Figura 70 ,
o interfață cu 6 butoane animate. Primele 4 butoane duc la câte o scenă în care utilizatorul conduce
o mașină
Figura 70. Interfața nivelului 3
A. Acomodarea cu modul de conducere și scena
Figura 68. Interfața de ieșire din nivelul 2 Figura 69. Mesajele afișate la apăsarea
butonului Da
41
Acest nivel este reprezentat de situația în care o mașină este plasată într -o intersecție, fără semne
de circulație. Mașina poate fi condusă în față și spate cu ajutorul celor două butoane din interfață.
Pentru direcțiile stânga și dreapta se înclină dispozitivul mobil, deoarece se preiau date de la
accelerometru. Oricare este direcția de mers a mașinii, se adaugă în mod dinamic drum în fața
mașinii ca în Figura 71 . Mașina a ajuns în intersecție și a demarat în direcția față, astfel s -a plasat
drum în față . Această interfață mai permite comutarea între camere, dacă se apasă butonul din
partea dreaptă, sus. În Figura 72 se poate observa cum camera princip ală este înlocuită cu camera
din dreapta sus.
B. Complexitate 0
Figura 73. Plasarea în intersecție a semnului
cedează trecerea Figura 74. Generarea dinamică a unei noi
intersecții c u semnul obligatoriu dreapta
Figura 75. Mesajul afișat pentru ne respectarea semnului stop
Acest nivel este asemanător cu cel explicat anterior. Diferența constă în faptul că în acest nivel este
plasat în intersecție un semn de circulație de care utilizatorul tr ebuie să țină cont. În Figura 73 este
ilustrată situația în care este plasat în intersecție semnu l cedează trecerea, se merge în față, apoi se
poate observa că se adaugă drum în direcția de mers a mașinii, drum ce conține în intersecție alt
semn de circulație, ca în Figura 74 . Dacă semnele din intersecție sunt respectate, utilizatorul își
continuă dru mul, altfel pe ecran apare un mesaj care îl înștiințează că nu a pro cedat corect, ca în
Figura 75 .
Figura 72. Comutarea între camere Figura 71. Plasarea dinamică a drumului
42
C. Complexitate 1
Acest nivel este construit dintr -o singură intersecție , cea din Figura 76 , care conține două semne
drum cu prioritate și două semne cedează trecerea, însoțite de panoul ce indică direcția drumului
cu prioritate. Aceeași intersecție se adaugă tot timpul în direcția de mers a mașinii ca în Figura 77 .
Figura 76. Intersecți a cu cele 4 semne
Figura 77. Generarea unei noi intersecții
În cazul ne respectării situației din intersecție s e afișează mesaj ca în Figura 78 . Această interfață
permite comutarea între camere. S ituația e ilustrată în Figura 79 .
Figura 78. Afișarea mesajului pentru situație
greșită
Figura 79. Comutarea între camere
D. Complexitate 2
Compl exitate 2 este ultima situație din nivelul 3, situație în care patternul este format din 9
intersecții, mașina e situată în mijlocul patternului, înainte de intersecția din mijloc , unde e plasat
semnul stop , ca în Figura 80 punctul a , iar apoi indiferent de direcția în care merge are de rezolvat
aceeași situație în care trebuie să țină cont de s emnul stop dar și de două mașini care circulă pe
drumul prioritar , ca în Figura 80 , b.
a.
b.
Figura 80. Interacțunea cu semnul Stop și mașinile
43
4.4. Testare funcțională și validare
Aceasta a fost realizată de către mine, dezvoltator ul, manual . În testarea unitară s -au testat funcțiile
scrise pe fiecare nivel . S-a realizat analiza statică prin parcurgerea codului în scopul aflării
defectelor. În testarea integrării s -a urmărit funcționarea corectă a întregii a plicații .
În dezvoltarea aplicației, cele mai multe obstacole le -am întâlnit la generarea dinamică a terenului,
caz în care am realizat cele mai multe teste. Am încercat multiple variante, doar două dintre ele
fiind relevante în final.
Tabel 5. Test case pentru generarea dinamică a terenului
Varianta
Test Case Varianta 1 Varianta 2 Varianta 3
Detectarea corectă a direcției de mers a mașinii DA NU DA
Calculare corectă a poziției în care trebuie adăugat
următorul tren indiferent de numărul de terenuri
adăugate DA NU DA
Clonarea terenului DA DA DA
Poziționarea în scenă a terenului (vizibil) DA DA DA
Poziționarea corectă în scenă a terenului ( ca și
coordonate) NU NU DA
Rotirea terenului NU DA DA
Prima variantă realizează poziționarea corectă a terenului, însă nu asigură și rotirea acestuia
în funcție de direcția de mers a mașinii. Metoda 1 am utilizat -o în aplicație în primele două scene
din nivelul 3.
A doua variantă realizează și rotirea terenului, însă poziționarea acestuia în scenă nu se face
corect decât la prima demarare a mașinii în intersecție, în următoarele se realizează doar rotirea,
iar poziționarea nu. Această variantă nu am utilizat -o deloc în aplicație.
Am realizat mai multe teste, am utilizat atât opțiunea de depanare folosind Visual Studio,
dar și afișarea de mesaje din cod folosind Debug.Log. Un exemplu se poate observa în Figura 81.
Cea de -a 3-a variantă oferă cele mai bune rezultate. Se utilizează doar 3 collidere, se
realizează clonarea terenului, se poziționează corect terenul clonat față de terenul inițial, se
realizează rotirea terenului iar semnele de circulație apar tot timpul în fața mașinii. Pentru
dezvoltarea acestei variante s -au utilizat principii din trigonometrie, cele din Figura 82, iar în Figura
Figura 81. Afișarea mesajelor utilizând Debug.Log()
44
83 este reprezentată schema logică de determinare a po ziției în care trebuie adăugat noul teren.
Această variantă am utilizat -o în ultimele două scene din nivelul 3.
Testarea a cceptării de către utilizator
Aplicația a fost prezentată unui număr de 9 persoane cu deficiențe de auz. Aceștia sunt elevi ai
liceului SAMUS din Cluj -Napoca cu vârsta cuprinsă între 16 -18 ani, și au testat aplicația timp de
50 de minute. Au vizualizat animațiile din nivelul 1, au configurat scena fizică și au rezolvat
scenarii le din nivelul 2, iar în nivelul 3 au condus mașina cu ajutorul accelerometrului și au rezolvat
situațiile din intersecții.
În Tabelul 6 sunt reprezentate reacțiile și stările pe care le -au prezentat elevii față de aplicație. Y
reprezintă numărul total de elevi, iar X reprezintă numărul de elevi care au reacția sau starea
respectivă într -un anumit interval de timp.
Tabel 6. Reacțiile și stările elevilor referitor la testarea aplicației
Nivel Reacție Stare
Uimire( raport X/Y ) Curiozitate( raport X/Y ) Plictiseală( raport X/Y ) Dezinteres( raport X/Y )
Timp[min] Timp[min] Timp[min] Timp[min]
0-10 10-30 30-50 0-10 10-30 30-50 0-10 10-30 30-50 0-10 10-30 30-50
Nivel 1 0/9 0/9 0/9 7/9 4/9 0/9 2/9 5/9 7/9 2/9 2/9 2/9
Nivel 2 3/9 0/9 0/9 7/9 4/9 2/9 2/9 5/9 7/9 2/9 2/9 2/9
Nivel 3 0/9 0/9 0/9 7/9 4/9 1/9 2/9 5/9 8/9 2/9 2/9 2/9
Figura 82. Calculul sinusului și
cosinusului pentru direcțiile de mers ale
mașinii Figura 83. Schema logică de determinare a poziției
45
Concluzii
Această lucrare descrie o aplicație pentru asistarea persoanelor cu deficiențe de auz în
înțelegerea și familiarizarea cu regulile de circulație . Aplicația este dezvoltată în mediul Unity3D
și este structurată pe trei niveluri. S -a optat pentru această abordare pe 3 niveluri pentru eficiența
procesului de învățare. Primul nivel oferă parte teoretică însoțită de exemplificare vizuală, astfel
utiliz atorul să poată face conexiuni între semnificația textului și comportamentul care trebuie
adoptat la întâlnirea unui semn de circulație. Exemplificarea este dată sub formă de animații despre
respectarea corectă a semnelor de circulație. Al doilea nivel rep rezintă o situație în care utilizatorul
poate să își creeze scenarii dintr -o inters ecție, utilizând suport fizic, să se familiarizeze și să
aprofundeze semnificația și comportamentul care trebuie adoptat la întâlnirea anumitor semne
rutiere , tehnologia care a fost utilizată pentru dezvoltarea acestui nivel este Realitatea Augmentată.
Nivelul 3 este un nivel de generare dinamică a scenariilor de testare, în care utilizatorul trebuie să
aplice ceea ce a învățat în primele două niveluri.
1. Avanta jele aplicației
1) Față de site -urile care explică situațiile din trafic sau aplicațiile mobile cu chestionare auto,
aplicația oferă utilizatorului ocazia de a -și forma abilități practice prin manevrarea mașinii
în scenele din nivelul 3.
O comparație cu două aplicații specific similar relevă următoarele avantaje:
2) Comparativ cu [7], în nivelul 2 se aduce în plus posibilitatea utilizatorul ui de a -și crea
diferite situații din trafic utilizând suportul fizic, apoi de a le testa. Mediul este mai
interactiv, fiind vorba despre Realitatea Augmentată, iar folosirea telefonului mobil este
mai accesibilă.
3) Comparativ cu [5] , se aduc în plus elemente 3D care pot fi vizualizate din diferite unghiuri
2. Limitările aplicației
Aplicația poate rula momentan doar pe dispozitive mobile cu Android, iar memoria și capacitățile
telefonului influențează funcționarea aplicației. Pot exista întârzieri în procesarea informațiilor.
Imaginile țintă pentru nivelul 2 trebuie să prezinte detalii suficiente pentru a putea fi detectate și
pentru a oferi stabilite acestea nu pot fi mișcate foarte mult.
3. Dezvoltări ulterioare
1) Scenarii funcționale
Cu ajutorul resurselor deja existente în proiect se dorește crearea unor scenarii cu un nivel
de complexitate mai mare. Într -o intersecție utilizatorul trebuie să țină cont de semnele de
circulație însoțite de panoul indicator de direc ție, de 2 sau 3 mașini și direcțiile de mers ale
acestora.
2) Funcționalități implementare
Se dorește importarea în proiect a mai multor semne de circulație, realizarea unor intersecții
mai complexe și diversificate, adăugarea trecerilor de pietoni și a unor pietoni.
3) Extindere algoritmică
Se dorește realizarea studiului unor algoritmi de detecție a pupilei și ulterior a stării de spirit
a utilizatorului aplicației, iar în funcție de aceasta să fie aleasă compexitatea situației de
testat.
46
Bibliografie
[1] Bryan E. Porter, Handbook of Traffic Psychology, Academic Press, 2011.
[2] (2017) “Deafness and hearing loss.” [Online]. Available:
http://www.who.int/mediacentre/factsheets/fs300/en/.
[3] C. Allen, “Wfd Stat ement on Deaf People ’ S Right To Drive a Car or Other,” Europe , no.
March, p. 3572, 2009.
[4] S. F. Saud and Z. A. Nasruddin, “Design of e -Learning Courseware for Hearing Impaired (
HI ) Students,” pp. 271 –276, 2016.
[5] L. Shoaib, “Learning Technologies for the Hearing Impaired,” pp. 366 –371, 2014.
[6] D. P. Cox, “Effective Communication When Teaching the Deaf to Drive.”
[7] P. Singh, R. Rathore, R. Chauhan, and R. H. Goudar, “A gaming Model for teaching
autistic children basic traffic rules,” Int. J. Inf . Educ. Technol. , vol. 2, no. 5, pp. 14 –17,
2012.
[8] F. Al Ameiri, M. J. Zemerly, and M. Al Marzouqi, “Mobile Arabic sign language,” 2011
Int. Conf. Internet Technol. Secur. Trans. , no. December, pp. 363 –367, 2011.
[9] M. Papadogiorgaki and N. Grammalidis , “Text -to-sign language synthesis tool,” 13th Eur.
signal … , no. 30, pp. 4 –7, 2005.
[10] L. Meuleners and M. Fraser, “A validation study of driving errors using a driving
simulator,” Transp. Res. Part F Traffic Psychol. Behav. , vol. 29, pp. 14 –21, 2015.
[11] J. F. Dols, J. Molina, F. J. Camacho, J. Marín -Morales, A. M. Pérez -Zuriaga, and A.
Garcia, “Design and Development of Driving Simulator Scenarios for Road Validation
Studies,” Transp. Res. Procedia , vol. 18, no. June, pp. 289 –296, 2016.
[12] N. Ferrei ra, “Serious Games,” 2008.
[13] S. Ismail, S. Abdennadher, and W. Abouelsaadat, “Rules on Wheels : A Serious Game for
Teaching Traffic Signs,” 2016.
[14] M. Han, T. Liu, W. Chen, and F. Bai, “Assistive Learning for Hearing Impaired College
Students using M ixed Reality : a Pilot Study,” 2012.
[15] D. E. Krutz, S. A. Malachowsky, S. D. Jones, and J. A. Kaplan, “Enhancing the
Educational Experience for Deaf and Hard of Hearing Students in Software Engineering,”
2015.
[16] L. V. B. Hoof, D. Hermans, and H. Knoo rs, “Research in Developmental Disabilities
Benefits of augmentative signs in word learning : Evidence from children who are deaf /
hard of hearing and children with specific language impairment,” Res. Dev. Disabil. , vol.
59, pp. 338 –350, 2016.
[17] R. Y. Hakkun and A. Baharuddin, “Sign Language Learning based on Android For Deaf
and Speech Impaired People,” pp. 114 –117, 2015.
[18] T. Arsan and O. Ulgen, “Sign Language Converter,” Int. J. Comput. Sci. Eng. Surv. , vol. 6,
no. 4, pp. 39 –51, 2015.
[19] S. M. C ox et al. , “Driving Simulator Performance in Novice Drivers with Autism
Spectrum Disorder : The Role of Executive Functions and Basic Motor Skills,” J. Autism
Dev. Disord. , 2015.
[20] B. Reimer, R. Fried, B. Mehler, N. Zhao, R. Goldin, and J. Biederman, “Brief Report :
Examining Driving Behavior in Young Adults with High Functioning Autism Spectrum
Disorders : A Pilot Study Using a Driving Simulation Paradigm,” pp. 2211 –2217, 2013.
[21] J. Sun, Z. Ma, T. Li, and D. Niu, “Simulation Modelling Practice and Theory Development
and application of an integrated traffic simulation and multi -driving simulators,” Simul.
Model. Pract. Theory , vol. 59, pp. 1 –17, 2015.
[22] J. F. Dols, J. Molina, F. J. Camacho, J. Marín -morales, M. Ana, and A. Garcia, “Design
and deve lopment of driving simulator scenarios for road validation studies,” Transp. Res.
47
Procedia , vol. 18, no. June, pp. 289 –296, 2016.
[23] J. Wade et al. , “Design of a Virtual Reality Driving Environment to Assess Performance of
Teenagers with ASD,” pp. 466 –474.
[24] J. Zhao, M. Yun, H. M. Zhang, and X. Yang, “Driving simulator evaluation of drivers ’
response to intersections with dynamic use of exit -lanes for left -turn,” vol. 81, pp. 107 –
119, 2015.
[25] C. D. La Rocha, “Towards Gamification for Signed Languag es,” no. August, 2015.
[26] F. Schwarz and W. Fastenmeier, “Augmented reality warnings in vehicles: Effects of
modality and specificity on effectiveness,” Accid. Anal. Prev. , vol. 101, pp. 55 –66, 2017.
[27] M. L. Rusch, M. C. Schall, J. D. Lee, J. D. Dawso n, and M. Rizzo, “Augmented reality
cues to assist older drivers with gap estimation for,” Accid. Anal. Prev. , vol. 71, pp. 210 –
221, 2014.
[28] R. Eyraud, E. Zibetti, and T. Baccino, “Allocation of visual attention while driving with
simulated augmented re ality,” Transp. Res. Part F Psychol. Behav. , vol. 32, pp. 46 –55,
2015.
[29] L. Abdi, F. Ben, and A. Meddeb, “In -Vehicle Augmented Reality Tra ffi c Information
System : A New Type of Communication Between Driver and Vehicle,” Procedia –
Procedia Comput. Sc i., vol. 73, no. Awict, pp. 242 –249, 2015.
[30] M. Thesis, “Designing a Collaborative Serious Game on Tabletops for Learning Traffic
Rules,” 2012.
[31] P. C. Ribeiro, B. B. P. L. de Araujo, and A. Raposo, “ComFiM: A Cooperative Serious
Game to Encourage th e Development of Communicative Skills between Children with
Autism,” 2014 Brazilian Symp. Comput. Games Digit. Entertain. , vol. 2014 –Decem, no.
December, pp. 148 –157, 2014.
[32] O. Allal -Chérif and M. Makhlouf, “Using serious games to manage knowledge: The SECI
model perspective,” J. Bus. Res. , vol. 69, no. 5, pp. 1539 –1543, 2016.
[33] F. Steinberger, R. Schroeter, and V. Lindner, “From Gearstick to Joystick – Challenges in
Designing New Interventions for the Safety -Critical Driving Context,” 2015.
[34] (2017)“Învățarea folosirii limbajului mimico -gestual.” [Online]. Available:
http://hesperian.org/wp -content/uploads/pdf/ro_deaf_2009/ro_deaf_2009_08.pdf.
[35] (2017) “Educația.” [Online]. Available: http://hesperian.org/wp –
content/uploads/pdf/ro_deaf_2009/ro_ deaf_2009_12.pdf.
[36] W. Westera, “How people learn while playing serious games : A computational modelling
approach,” J. Comput. Sci. , vol. 18, pp. 32 –45, 2017.
[37] M. Fiorentino, A. E. Uva, M. Gattullo, S. Debernardis, and G. Monno, “Computers in
Industry Augmented reality on large screen for interactive maintenance instructions,”
Comput. Ind. , vol. 65, no. 2, pp. 270 –278, 2014.
[38] M. Mirzaei, “Helping Deaf and har d-of-hearing people by combining augmented reality
and speech technologies,” … Assoc. Technol. , pp. 10 –12, 2012.
[39] M. L. Rusch, M. C. Schall, J. D. Lee, J. D. Dawson, and M. Rizzo, “Augmented reality
cues to assist older drivers with gap estimation for left-turns,” Accid. Anal. Prev. , vol. 71,
pp. 210 –221, 2014.
[40] F. Schwarz and W. Fastenmeier, “Augmented reality warnings in vehicles : Effects of
modality and specificity on effectiveness,” Accid. Anal. Prev. , vol. 101, pp. 55 –66, 2017.
[41] (2017) “How augmented reality works.” [Online]. Available:
http://www.augment.com/how -augmented -reality -works/.
[42] (2017) “Vuforia AR SDK.” [Online]. Available: http://i1 -win.softpedia –
static.com/screenshots/Vuforia -SDK_1.png.
[43] (2017) “Realitate Virtuală.” [Onl ine]. Available: http://stiintasitehnica.com/cum -ne-va-
schimba -lumea -realitatea -virtuala/.
[44] Q. T. Le, A. Pedro, C. R. Lim, H. T. Park, C. S. Park, and H. K. Kim, “A framework for
48
using mobile based virtual reality and augmented reality for experientia l construction
safety education,” Int. J. Eng. Educ , vol. 31, no. 3, pp. 713 –725, 2015.
[45] (2017) “Virtual Reality vs. Augmented Reality.” [Online]. Available:
http://www.augment.com/blog/virtual -reality -vs-augmented -reality/.
[46] (2017) “A generic virtual reality interaction library.” [Online]. Available:
https://www.researchgate.net/publication/261055614_Viargo_ –
_A_generic_virtual_reality_interaction_library.
[47] M. Xu and T. Zwietasch, “Use of Gamification to Assess and Assist Impaire d Persons,”
2014.
[48] Z. S. S. De Urturi, A. M. M. Zorrilla, and B. G. B. G. Zapirain, “Serious Game based on
first aid education for individuals with Autism Spectrum Disorder (ASD) using android
mobile devices,” Proc. CGAMES’2011 USA – 16th Int. Conf. Co mput. Games AI, Animat.
Mobile, Interact. Multimedia, Educ. Serious Games , pp. 223 –227, 2011.
[49] (2017) “Serious Gaming: Research.” [Online]. Available:
https://www.slideshare.net/rogerbarber/serious -gaming -research2 -27664018.
[50] (2017) “Unity3D.” [Onli ne]. Available: https://unity3d.com/unity/editor.
[51] (2017) “Unity Remote.” [Online]. Available:
https://docs.unity3d.com/Manual/UnityRemote5.html.
[52] (2017) “Scripting.” [Online]. Available:
https://docs.unity3d.com/Manual/ScriptingSection.html.
[53] (2017) “Vuforia & PrimeSense Capri Bring Depth To VR.” [Online]. Available:
http://www.i -programmer.info/news/194 -kinect/6335 -vuforia -a-primesense -capri -bring –
depth -to-vr.html.
[54] (2017) . Available:
https://www.google.ro/search?biw=1366&bih=638&tbm=isch& sa=1&q=ar+Vforia+scann
er+3d+car+unity&oq=ar+Vforia+scanner+3d+car+unity&gs_l=img.3…29471.31398.0.316
43.0.0.0.0.0.0.0.0..0.0….0…1.1.64.img..0.0.0.ynnc8iHaa40#imgrc=f9CYM396219CxM:
[55] K. A. Moemedi, “Rendering an Avatar from SignWriting Notation for Sign Language
Animation,” no. November, 2010.
[56] R. Hartanto, A. Susanto, and P. I. Santosa, “Real time static hand gesture recognition
system prototype for Indonesian sign language,” Proc. – 2014 6th Int. Conf. Inf. Technol.
Electr. Eng. Leveraging Res . Technol. Through Univ. Collab. ICITEE 2014 , 2015.
49
7 Anexe
7.1 Scripturi C#
SchimbaScena.cs
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class SchimbaScena : MonoBehaviour {
public void Sch_scena( string numeScena )
{
Application .LoadLevel(numeScena);
}
}
Exitjoc .cs
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Exitjoc : MonoBehaviour {
public void Exit_joc()
{
Application .Quit();
}
}
Nivel 1:
animatie_Cedeaza.cs
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class animatie_Cedeaza : MonoBehaviour {
public Animator anim;
public string numeScena;
// Update is called once per frame
//Daca se detecteaza ca starea curenta e cea din ghilimele, adica ultima stare, automat
aplicatia e trimisa catre interfata nivelului 1
void Update () {
if (anim.GetCurrentAnimatorStateInfo(0).IsName( "GoMenuCT" ) ||
anim.GetCurrentAnimatorStateInfo(0).IsName( "GoMenuID" ) || anim.GetCurrentAnimatorStateInfo(0).IsName( "GoMenuOD" ))
{
Sch_scena(numeScena);
}
}
public void Sch_scena( string numeScena)
{
Application .LoadLevel( numeScena);
}
}
Cedeaza_trecereaScript.cs
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Cedeaza_trecereaScript : MonoBehaviour
{
public GameObject ok_f;
public GameObject ok_d;
public GameObject ok_s;
public GameObject sg_f;
public GameObject sg_d;
public GameObject sg_s;
public GameObject wrong1;
int k = 0;
public void Start()
{
k = 0;
}
50
void OnTriggerEnter (Collider col)
{ //daca se loveste colliderul din fata
if (col.gameObject.name == "Fata")
{
k++; //de cate ori l -a lovit
if (k == 1) // daca l -a lovit o data
{
ok_f.SetActive( true);// setez activ obiectul de joc "corect"
}
if(k==2)//daca l -a lovit de 2 ori
{
wrong1.SetActive( true);// setez activ obiectul de joc "gresit"
}
sg_f.SetActive( false);
}
//daca se loveste colliderul stanga
if (col.gameObject.name == "Stanga" )
{
ok_s.SetActive( true);
sg_s.SetActive( false);
ok_f.SetActive( false);
}
//daca se loveste colliderul dreapta
if (col.gameObject.name == "Dreapta" )
{
ok_d.SetActive( true);
sg_d.SetActive( false);
}
}
}
Nivelul 2:
DefaultTrackableEventHandler.cs
/*==============================================================================
Copyright (c) 2010 -2014 Qualcomm Connected Experiences, Inc.
All Rights Reserved.
Confidential and Proprietary – Protected under copyright and other laws.
==============================================================================*/
using UnityEngine;
namespace Vuforia
{
/// <summary>
/// A custom handler that implements the ITrackableEventHandler interface.
/// </summary>
public class DefaultTrackableEventHandler : MonoBehaviour ,
ITrackableEventHandler
{
#region PRIVATE_MEMBER_VARIABLES
private TrackableBehaviour mTrackableBehaviour;
public GameObject col1;
public GameObject col2;
#endregion // PRIVATE_MEMBER_VARIABLES
#region UNTIY_MONOBEHAVIOUR_METHODS
void Start()
{
mTrackableBehaviour = GetComponent< TrackableBehaviour >();
if (mTrackableBehaviour)
{
mTrackableBehaviour.RegisterTrackableEventHandler( this);
}
}
#endregion // UNTIY_MONOBEHAVIOUR_METHODS
#region PUBLIC_METHODS
/// <summary>
/// Implementation of the ITrackableEventHandler function called when the
/// tracking state changes.
/// </summary>
public void OnTrackableStateChanged(
TrackableBehaviour .Status previousStatus,
51
TrackableBehaviour .Status newStatus)
{
if (newStatus == TrackableBehaviour .Status.DETECTED ||
newStatus == TrackableBehaviour .Status.TRACKED ||
newStatus == TrackableBehaviour .Status.EXTENDED_TRACKED)
{
OnTrackingFound();
}
else
{
OnTrackingLost();
}
}
#endregion // PUBLIC_METHODS
#region PRIVATE_METHODS
private void OnTrackingFound()
{
Renderer [] rendererComponents = GetComponentsInChildren< Renderer >(true);
Collider [] colliderComponents = GetComponentsInChildren< Collider >(true);
// Enable rendering:
foreach (Renderer component in rendererComponents)
{
component.enabled = true;
}
// Enable colliders:
foreach (Collider component in colliderComponents)
{
component.enabled = true;
}
//daca se detecteaza markerul, colliderele devin active
col1.SetActive( true);
col2.SetActive( true);
Debug.Log("Trackable " + mTrackableBehaviour.TrackableName + " found" );
}
private void OnTrackingLost()
{
Renderer [] rendererComponents = GetComponentsInChildren< Renderer >(true);
Collider [] colliderComponents = GetComponentsInChildren< Collider >(true);
// Disable rendering:
foreach (Renderer component in rendererComponents)
{
component.enabled = false;
}
// Disable colliders:
foreach (Collider component in colliderComponents)
{
component.enabled = false;
}
//daca se pierde detectia markerului, colliderele devin inactive
Debug.Log("Trackable " + mTrackableBehaviour.TrackableName + " lost");
col1.SetActive( false);
col2.SetActive( false);
}
#endregion // PRIVATE_METHODS
}
}
btn.cs
using System.Collections.Generic;
using UnityEngine;
public class btn : MonoBehaviour {
//iesirea din aplicatie
public void Exit_btn()
{
Application .Quit();
}
//reluarea scenei, resetarea aplicatiei
public void Reset_btn()
52
{
Application .LoadLevel( Application .loadedLevel);
}
}
PtAR.cs
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class PtAR : MonoBehaviour {
private float start;
private float startTime1;
private float startTime2;
private bool finnished = false;
public float t = 0; // timpul real
public float s = 0; //timpul cand ajunge la stop
public float st = 0;//timpul cand intra in intersectie
public float dif = 0;
public GameObject notstop_text;
public GameObject stop_text;
public GameObject obligatoriuDreapta;
public GameObject interzis;
public GameObject lovit;
public GameObject ok_text;
void Start()
{
start = Time.time;//Timpul in secunde de cand se da play
}
void Update()
{
t = Time.time – start;//t= timpul actual
}
void OnTriggerEnter (Collider col)
{
if (col.gameObject.name == "Stop")
{
Initial();
startTime1 = Time.time; //This is the time in seconds since the start of the game.
s = startTime1; // salvez timpul la care se loveste de colider
}
if (col.gameObject.name == "notStop" )
{
Initial();
startTime2 = Time.time;
st = startTime2; // salvez timpul la care se loveste de colider
dif = st – s;// fac diferenta intre cei doi timpi
if (dif < 3)
{
notstop_text.SetActive( true);// activez un text care e introdus ca obiect de joc
Time.timeScale = .5f;
}
else
{
stop_text.SetActive( true);
}
}
if (col.gameObject.name == "oblig_dr" )
{
Initial();
obligatoriuDreapta.SetActive( true);
Time.timeScale = .5f;
}
if (col.gameObject.name == "interzis" )
{
Initial();
interzis.SetActive( true);
Time.timeScale = .5f;
}
if (col.gameObject.name == "Collider_masinaGalbena" )
{
Initial();
Time.timeScale = .5f;
}
else
53
{
if (col.gameObject.name == "ok" || col.gameObject.name == "ok1" || col.gameObject.name == "ok2")
{
Initial();
ok_text.SetActive( true);
}
}
}
//functie de initializare a interfetei
private void Initial()
{
notstop_text.SetActive( false);
stop_text.SetActive( false);
obligatoriuDreapta.SetActive( false);
interzis.SetActive( false);
ok_text.SetActive( false); ;
}
}
Nivel 3
ControlMasinaButoaneSiAcc .cs
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class ControlMasinaButoaneSiAcc : MonoBehaviour {
public GameObject gameobject_car;
private Rigidbody rigid; //In inspector, masina are o componenta Rigidbody
bool isFlat = true;
public float maxTorque = 50f; //cat de repede sa mearga pe axa z(fata/spate)
public WheelCollider [] wheelColliders = new WheelCollider [4];// in program incarc cele 4 Wheelcolliders
public Transform [] tireMeshes = new Transform [4];//in program incarc(drag and drop) cele 4 anvelope
float t_z = 0.5f;
private void Start()
{
rigid = GetComponent< Rigidbody >();
rigid.transform.Translate(0, 0, 0);
}
void Update()
{
Vector3 tilt = Input.acceleration; // tilt ia valoarea acceleratiei liniare a device'ului mobil
if (isFlat)
tilt = Quaternion .Euler(90, 0, 0) * tilt;
rigid.AddForce( Input.acceleration); // ii atribuie masinii car e are componenta Rigidbody valoarea preluata de la
telefonul mobil
UpdateMeshesPositions(); // functie care face ca WheelMeshes sa se invarta dupa cum se invart WheelColiders
}
void FixedUpdate ()
{
float t_x = Input.acceleratio n.x;//preia valoarea accelerometrului din telefon pe axa x
float finalAngle = t_x * 45f;
//steer= directie , rotile vireaza stanga -dreapta sub un unghi de 45 grade
wheelColliders[0].steerAngle = finalAngle;
wheelColliders[ 1].steerAngle = finalAngle;
}
// functie care face ca tireMeshes sa se invarta dupa cum se invart WheelColiders
void UpdateMeshesPositions()
{
for (int i = 0; i < 4; i++)
{
Quaternion quat;//pentru rotatia WheelMeshes
Vector3 pos;
wheelColliders[i].GetWorldPose( out pos, out quat);
tireMeshes[i].position = pos;
tireMeshes[i].rotation = quat;
}
}
//functie pentru oprire masina cand nu se apasa pe nici un buton
public void car_stop()
{
for (int i = 0; i < 4; i++)
{
wheelColliders[i].brakeTorque = 10000;
}
}
// functie de demarat in fata
public void car_go_fata()
{
for (int i = 0; i < 4; i++)
54
{
wheelColliders[i].brakeTorque = 0;
wheelColliders[i].motorTorque = t_z * maxTorque;
}
}
//functie de mers in spate
public void car_go_spate()
{
for (int i = 0; i < 4; i++)
{
wheelColliders[i].brakeTorque = 0;
wheelColliders[i].motorTorque = -t_z * maxTorque;
}
}
}
Acomodare.cs
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Acomodare : MonoBehaviour {
Vector3 pos;
Quaternion rot = new Quaternion (0f, 0f, 0f, 0f);
public GameObject teren_initial;
GameObject teren_actual;
GameObject teren_de_distrus;
bool mijl_int = false;
int nr = 0;
public void Start()
{
teren_actual = teren_initial;
}
void OnTriggerEnter (Collider other)
{
if (other.gameObject.tag == "mijloc_intersectie" )
{
mijl_int = true;
nr = 0;
}
if (mijl_int == true && other.gameObject.tag == "fata")//daca detectez ca masina merge in fata
{
//calculez pozitia noua pe care trebuie sa o ia noul teren
pos = new Vector3(teren_actual.transform.position.x + 25, teren_actual .transform.position.y,
teren_actual.transform.position.z);
var go = Instantiate(teren_actual, pos, rot); //instantiez terenul cu noua pozitie
mijl_int = false; //inseamna ca masina a trecut de mijlocul intersectiei
teren_de_distrus = teren_actual;
teren_actual = go;
}
if (mijl_int == true && other.gameObject.tag == "spate")
{
pos = new Vector3(teren_actual.transform.position.x – 25, teren_actual.transform.p osition.y,
teren_actual.transform.position.z);
var go = Instantiate(teren_actual, pos, rot);
mijl_int = false;
teren_de_distrus = teren_actual;
teren_actual = go;
}
if (mijl_int == true && other.gameObject.tag == "stanga" )
{
pos = new Vector3(teren_actual.transform.position.x, teren_actual.transform.position.y,
teren_actual.transform.position.z + 25);
var go = Instantiate(teren_actual, pos, rot);
mijl_int = false;
teren_de_distrus = teren_actual;
teren_actual = go;
}
if (mijl_int == true && other.gameObject.tag == "dreapta" )
{
pos = new Vector3(teren_actual.transform.position.x , teren_actual.transform.position.y,
teren_actual.transform.position.z – 25);
var go = Instantiate(teren_actual, pos, rot);
mijl_int = false;
teren_de_distrus = teren_actual;
teren_actual = go;
}
if (other.gameObject.tag == "trecut" )
{
nr++;
if (nr == 2)
{
Destroy(teren_de_distrus); //distrug terenul vechi dupa ce a fost adaugat terenul nou
55
}
}
}
}
Random.cs
using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Random : MonoBehaviour {
public GameObject [] obj;
int x=0;
// Use this for initialization
void Start () {
x = UnityEngine. Random.Range(0, obj.Length);
obj[x].SetActive( true);
}
private void OnTriggerExit (Collider other)
{
if(other.gameObject.name== "ColliderBottom" )
{
obj[x].SetActive( false);
}
}
}
TerrainGenerator .cs
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public enum Direction
{
Front = 0,
Left = -90,
Right = 90,
Back = 180
}
public class TerrainGenerator : MonoBehaviour
{
public GameObject currentTerrain;
GameObject nextTerrain;
GameObject toDelete;
Direction dir;
// dimensiunea unui patrat de teren
float xPoz = 25;
float zPoz = 25;
public void GenerateNextTile( Vector3 position)
{
//Determin ce collider am lovit
if (position.z == 0)
{
if (position.x < 0)
{
dir = Direction .Left;
Debug.Log("stanga" );
}
else
{
dir = Direction .Right;
Debug.Log("dreapta" );
}
}
else
{
if (position.z < 0)
{
dir = Direction .Back;
Debug.Log("spate");
}
else
{
dir = Direction .Front;
Debug.Log("fata");
56
}
}
//salvez pozitia terenului anterior
Vector3 poz = currentTerrain.transform.position;
//salvez rotatia terenului anterior la care adaug rotatia terenului pe care urmeaza sa -l instantiez
//daca terenul curent e 90 si fac dreapta care e tot 90, terenul pe care urmeaza sa -l instantiez trebuie sa fie la
180
float yRot = ( int)dir + curren tTerrain.transform.localEulerAngles.y; //transform.localEulerAngles.y este rotatia
pe y ca unghi Euler in grade
//in functie de rotatie determin in ce directie trebuie sa pun terenul nou
// valorile de la sin si cos pt 0 , 90, 180, 270 sunt 0 sau 1 cu + sau –
// cand sin e 0, cos e 1 , calculeaza toate cazurile de pozitionare
poz.z += zPoz * Mathf.Cos(yRot * Mathf.Deg2Rad); //Mathf.Deg2Rad face conversie din grade in radiani
poz.x += xPoz * Mathf.Sin(yRot * Mathf.Deg2Rad);
nextTerrain = Instantiate(currentTerrain,poz, Quaternion .Euler(new Vector3(0, yRot, 0))); //returneaza o rotatie,
z grade in jurul axei z, x grade in jurul axei x, y grade in jurul axei y
nextTerrain.transform. position = poz;
if(toDelete)
{
Destroy(toDelete); //distruge terenul
}
toDelete = currentTerrain;
currentTerrain = nextTerrain;
}
}
Nivel3_controlMasina
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Nivel3_controlMasina : MonoBehaviour {
public TerrainGenerator terrainGenerator;
public GameObject gameobject_car;
private Rigidbody rigid; //In inspector, masina are o componenta Rigidbody
bool isFlat = true;
public float maxTorque = 30f; //cat de repede sa mearga pe axa z(fata/spate)
public WheelCollider [] wheelColliders = new WheelCollider [4];// in program incarc cele 4 Wheelcolliders
public Transform [] tireMeshes = new Transform [4];//in program incarc(drag and drop) cele 4 anvelope
float t_z = 0.5f;
private void Start()
{
rigid = GetComponent< Rigidbody >();
rigid.transform.Translate(0, 0, 0);
}
void Update()
{
Vector3 tilt = Input.acceleration; // tilt ia valoarea acceleratiei liniare a device'ului mobil
if (isFlat)
tilt = Quaternion .Euler(90, 0, 0) * tilt;
rigid.AddForce( Input.acceleration); // ii atribuie masinii care are componenta Rigidbody valoarea preluata de la
telefonul mobil
UpdateMeshesPositions(); // functie care face ca WheelMeshes sa se invarta dupa cum se invart WheelColiders
}
void FixedUpdate ()
{
float t_x = Input.acceleration.x; //preia valoarea accelerometrului din telefon pe axa x
// float t_z = Input.acceleration.z;//preia valoarea accelerometrului din telefon
pe axa z
float finalAngle = t_x * 45f;
//steer= directie , rotile vireaza stanga -dreapta sub un unghi de 45 grade
wheelColliders[0].steerAngle = finalAngle;
wheelColliders[1].steerAngle = finalAngle;
}
// functie care face ca tireMeshes sa se invarta dupa cum se invart WheelCo liders
void UpdateMeshesPositions()
{
for (int i = 0; i < 4; i++)
{
57
Quaternion quat;//pentru rotatia WheelMeshes
Vector3 pos;
wheelColliders[i].GetWorldPose( out pos, out quat);
tireMeshes[i].position = pos;
tireMeshes[i].rotation = quat;
}
}
public void car_stop()
{
for (int i = 0; i < 4; i++)
{
wheelColliders[i].brakeTorque = 10000;
}
}
public void car_go_fata()
{
for (int i = 0; i < 4; i++)
{
wheelColliders[i].brakeTorque = 0;
wheelColliders[i].motorTorque = t_z * maxTorque;
}
}
public void car_go_spate()
{
for (int i = 0; i < 4; i++)
{
wheelColliders[i].brakeTorque = 0;
wheelColliders[i].motorTorque = -t_z * maxTorque;
}
}
private void OnTriggerEnter (Collider other)
{
if (other.gameObject.tag == "lovire" )
{
terrainGenerator.GenerateNextTile(other.gameObject.transform.localPosition);
}
}
}
58
PERSONAL INFORMATION Anca -Elena Salomia
Cluj-Napoca, Observatorului Street, Nr. 34 (Romania), Cluj -Napoca (Romania)
0764046095
anca_elena1994@yahoo.com
WORK EXPERIENCE
EDUCATION AND TRAINING
PERSONAL SKILLS
01/08/2016 –19/08/2016
Multimedia Syst ems and Applications Laboratory , UTCN, Cluj -Napoca (Romania)
-Application software development in Unity 3D (text to sign – for hard -of-hearing people )
-Modeling a human hand in Blender
-Writing the technical documentation as a scientific article
03/10/2016 –11/11/2016
Multimedia Systems and Applications Laboratory, UTCN, Cluj -Napoca (Romania)
-Positioning 3D GameObjects in Unity3D
-Controlling a car by keys, buttons, accelerometer
-Interaction between elements
– Creating material for a road sign in Adobe Photoshop
-C# scripting
14/09/2009 –21/06/2013
National College Tudor – Vladimirescu, T argu -Jiu (Romania)
Principal subjects/occupational skills covered:
Computer Science, mathematics, physics
01/10/2013 –Present
Faculty of Electronics, T elecommunications and Information T echnology, Cluj -Napoca (Romania)
Principal subjects/occupational skills covered:
-Computer programming (OOP , Java, C/C++), Electronic microsystems technology , Digital integrated
circuits , Multimedia T echnologies, T elevision
Mother tongue(s) Romanian
Other language(s) UNDERSTANDING SPEAKING WRITING
Listening Reading Spoken interaction Spoken production
English B1 B1 B2 B2 B1
French B1 B2 B1 B1 B2
59
ADDITIONAL INFORMATION
Levels: A1 and A2: Basic user – B1 and B2: Independent user – C1 and C2: Proficient user
Common European Framework of Reference for Languages
Communication skills -good communications skills gained through the presentations made at the faculty
Organisational / managerial skills -team work skills: I participated in projects where activities were based on team work.
-present materials (written or oral): In the first year of College I attended a course about presentations.
-writing scientific artic le -I wrote two articles for two applications
Digital competence SELF -ASSESSMENT
Information
processing Communication Content
creation Safety Problem
solving
Independent user Independent user Basic user Basic user Basic user
Digital competences – Self-assessment grid
-document processing (Word , Excel )
Other skills -first aid: In the first year of college I attended a first aid lesson
-reading
-love to travel
– able to listen people and help with their problems
Driving licence B
-2nd place at the student symposium (T ech nical University of Cluj -Napoca ): android application based
on augmented reality ( Unity 3D and Vuforia)
– Android application – Unity 3D: Rotating the ball through the accelerometer and collecting elements .
-Android application -Unity3D and Vuforia: learning traffic signs using augme nted reality , multiple
scenario simulations in an in tersection
-Android application -Unity3D: text to sign
-Andoid application -Unity3D: controlling a car through the accelerometer, solving missions (parking
the car in a preset place ) and comply with traffic rules
-Project: LED cube (3x3x3) – I have acquired practical knowledge to effectively bond components and
also to work in Arduino program
-Project: PBX institution: IP PBX software, Asterisk version – I used mobile software and I have
implemented several funct ions (Say , Record)
-I worked in programs like: Unity3D, Blender, Adobe Photoshop, Adobe Captivate, Eclipse, Microsoft
Visual, EMU, OrCad, VHDL, Power -Point, Word, MatLab , Arduino
60
Asistarea persoanelor cu deficiențe de auz în învățarea regulilor
de circulație folosind realitate augmentată
Anca -Elena SALOMIA
Abstract
Persoanele cu deficiențe de auz se confruntă cu o gamă largă de bariere printre care se numără înțelegerea
regulilor și a principiilor de trafic. Realitatea Augmentată poate îmbunătăți informațiile din trafic, reducând
accidentele. Această lucrare descrie o aplicație pentru asistarea în înțelegerea și familiarizarea cu regulile de
circulație. Solutia propusă se încadrează într -un model aplicabil persoanelor cu deficiențe de auz. Specific,
adresabilitatea vizează Liceul Tehnologic Special „SAMUS” ca mediu d e testare experimentală.
Introducere
În activitatea de conducere, multe caracteristici umane influențează modul în care deținătorul de permis auto
interacționează cu propriul autovehicul și cu traficul rutier. Auzul este considerat al doilea simț ca
impor tanță în orientarea persoanei, pe primul loc aflându -se simțul vizual [1].
Conform statisticilor realizate de Organiza ția Mondială a Sănătății, 360 de milioane de oameni din întreaga
lume au pierdut auzul, iar 32 de milioane din aceștia sunt copii [2]. În România, 2.97% din popula ție prezintă
handicap auditiv a șa cum reiese din statisticile realizate de Autoritatea Natională Pentru Persoanele Cu
Dizabilități,1616 fiind numărul de copi i [2].
Unul dintre drepturile persoanelor surde este de a obține permisul de conducere. În anul 2009 s -a emis o
declarație de către Federația Mondială a Surzilor în care s -a precizat că surditatea nu limitează în nici -un fel
abilitatea unei persoane de a conduce autovehicule. O mare importanță o au integritatea fizică și sănătatea
mentală [2]. Una dintre problemele cu care se confruntă persoanele surde este promovarea examenului
teoretic, deoarece pot să nu înțeleagă sensul unor cuvinte din legislatia rutieră și ordonanța de urgență, sau
chiar atunci când rezolvă chestionarele, nu tot timpul înțeleg ce anume li se cere. Se poate spune ca un
avantaj pe care îl au aceste persoane îl reprezintă faptul că atenția lor nu poate fi distrasă de zgomotele din
jur (muzică, claxoane, voci), ei fiind tot timpul concentrați asupra acțiunilor pe care le fac.
Un alt concept care este din ce în ce mai de s utilizat în asistarea învățării este Realitatea Augmentată (RA).
Realitatea Augmentată este o tehnologie care combină obiecte virtuale cu obiecte din lumea reală în timp
real, și se folosește în multe domenii. Pe partea de asistare în trafic, s -au dezvol tat simulatoare de conducere
bazate pe recunoaștere de semne, măsurarea distanței dintre vehicule, atașarea de obiecte virtuale obiectelor
reale, scopul final fiind îmbunătățirea siguranței în trafic.
Articolul curent descrie un model de realitate augmenta tă pentru recunoașterea semnelor de circulație,
înțelegerea semnificațiilor și a comportamentului care trebuie adoptat la întâlnirea acestora. Implementarea
propusă adaptează principiile jocurilor serioase la specificitatea cognitiva a tinerilor cu deficie nțe de auz. În
vederea aplicabilității practice, se propune un profil de utilizator corespunzător tinerilor cu deficiențe de auz
de la Liceul Tehnologic Special „SAMUS” din Cluj -Napoca
61
Secțiunea 1 include referințe la principiile dezvoltării tehnologiile de asistare a persoanelor cu deficiențe de
auz și a aplicațiilor similare de asistare în trafic. Secțiunea 2 descriere specificațiile modelului propus,
arhitectura de implementare și resursele asociate. Scenariile de testare sunt prezentate în secțiunea 3.
Limitările și poziționarea aplicației precum și propuneri pentru extinderi ulterioare sunt propuse în secțiunea
4.
1 Stadiul actual
Persoanele cu dizabilități se confruntă cu o gamă largă de bariere, inclusiv accesul la informație, educație
și lipsa oportun ităților de angajare. Dezvoltarea aplicatiilor converge spre adaptare la nevoile acestora,
prin îmbunătățirea satisfacției, a vitezei de învățare și a eficienței de învățare [3].
1.1 Tehnologii de învățare pentru persoanele cu dizabilități de auz
Autorii din [4] prezintă o aplicație dezvoltată în special pentru studenții din Malays ia care au probleme cu
auzul. Scopul lor principal este creșterea atenției și interesului studenților în procesul de învățare. Aplicația
reprezintă o interfață de învățare a alfabetului,a cifrelor și apoi a unor cuvinte folosind semne însoțite de
imagini c olorate sau filmulețe pentru a se înțelege semnificația și pentru atragerea atenției. O altă aplicație
pentru deficienții de auz [5] se bazează în primă fază pe asocierea dintre cuvinte și imagini , iar atunci câ nd
se greșește se dă un feedback visual care poate fi înțeles de către jucător. A doua fază se bazează pe
înțelegerea unor propoziții scurte, A treia fază constă în verificarea dacă citirea unei propoziții este cu
înțelegere. În [6] se folosește un sistem de realitate mixtă compus din două componen te: un ecran pe care
apare un filmuleț educativ iar pe alt ecran un caracter virtual poate primi anumite comenzi. La acest studiu
a fost nevoie de câte doi studenți. Unul dintre ei prezintă deficiențe de auz iar celălalt nu. Ambii participanți
trebuiau să dea comenzi caracterului atunci când considerau că informația prezentată în video este
importantă, iar la sfârșit aveau de rezolvat un chestionar. Studenții au evaluat această abordare ca fiind noua,
interesantă și distractivă. În ceea ce privește condusul auto, în [7] se explică comunicarea eficientă care
trebuie adoptată la asistarea persoanelor cu deficiențe de auz iar în [8] este propus un model de jocuri care
să îi învețe regulile de circulație de bază pe copiii cu autism. Modelul constă în rularea unor videoclipuri
animate și apoi rezolvarea unor situații.
1.2 Tehnologii de asistare în famili arizarea cu regulile de circulaț ie
Simulatoarele de conducere au devenit un tool important în îmbunătățirea siguranței rutiere. De exemplu în
următorul studiu se urmărește o validare a erorilor din trafic, folosind un simula tor de conducere [9].
Participanții au fost instruiți să conducă prima dată real o rută selectată, iar apoi au parcurs același traseu
care a fost programat în simulatorul de conducere u tilizând software -ul UC/Win -road. Acest software poate
crea un scenariu de conducere extrem de detaliat și poate reproduce o gamă largă de condiții (noapte, ploaie,
zăpadă). Comportamentele din timpul conducerii au fost evaluate de un terapeut și doi cerc etători și s -a
ajuns la concluzia că simulatorul este valabil pentru evaluarea comportamentelor cum ar fi verificarea
oglinzilor, observațiile stânga, dreapta și înainte, menținerea vitezei, viteza în intersecții și altele. Două
simulatoare driving [10] și [11] au fost folosite pentru examinarea comportamentului de conducere al
persoanelor care suferă de autism. Pentru primul simulator a fost folosit Driver Guidance System (DGS -78)
care conține centura de siguranță, bordul, volanul, semnalizatorul, pedale le pentru frână și accelerație,
oglinzi și un scaun reglabil. Simulatorul permite atât rezolvarea unor teste cât și scenarii de conducere, iar
rezultatele au arătat în acest caz că dificultățile cu care se confruntă persoanele cu autism este memoria
slabă. În cel de -al doilea caz, s -a utilizat pentru studiu o cabină Volkswagen Beetle și participanților le -au
fost constant monitorizate frecvența cardică, privirea, comportamentul de conducere și conductivitatea
pielii. Ca și rezultate, autorii au obținut că a tenția vizuală le este distrasă de diferiți factori, iar acest lucru
reprezintă o problemă cu privire la siguranța lor în trafic. O platformă experimentală este prezentată în [12].
Aceasta reprezintă o integrare a unui simulator de trafic microscopic cu simulatoare de conducere multiplă
într-un mediu în timp real. Mai mulți șoferi participă în același timp la trafic, și se si mulează ca și în viața
reală schimbarea benzilor de circulație, urmărirea unor mașini. Fiecare participant a fost așezat în fața unui
62
calculator, avea propria mașină pe care o controla cu un volan conectat, iar întregul trafic era afișat pe un
ecran mai ma re. Platforma a fost validată în urma obținerii rezultatelor, răspunsul participanților la trafic,
schimbarea benzilor fiind compatibile cu datele obținute din condusul real.
1.3 Tehnologii integrate de asistare
Lucrarea descrisă în [13] folosește realitatea augmentată ca și tehnologie avansată pentru un studiu al
efectelor avertizmentelor vizuale sau auditive privind pericolele ce pot să apară în trafic. Tot realitat ea
augmentată este folosită și în [14] pentru a ajuta șoferii în vârstă ce prezintă o serie de deficiențe al
câmpului vizual util (UFOV -Useful Field Of View) să vireze la stânga în intersecții. Atunci când un astfel
de șofer se apropie de intersecție, și dorește să vireze la stânga, în fu ncție de distanța la care se află
vehiculul care vine din față îi apare un semn care îl înștiințează dacă poate vira sau nu. După un set de
teste s -a ajuns la concluzia că indicii au fost eficienți în motivarea răspunsurilor soferilor si nu au condus
la încălcări ale siguranței în trafic. Autorii din [15] folosesc RA pentru a optimiza atenția vizuală a
șoferilor. La acest studiu s -au folosit douăzeci de filmări din trafic în care s -au pus în evidență
indicatoarele și marcajele rutiere folosind realitatea augmentată. La un moment d in video (atât din video
original cât și din cel cu indicații), participanții au fost instruiți să facă o manevră, iar la sfârșitul
filmulețului aceștia au trebuit să răspundă dacă aveau voie sau nu să o facă. Rezultatele au arătat că RA
optimizează atenți a vizuală a șoferilor în faza de luare a deciziilor. Un nou tip de comunicare între șofer si
vehicul este descris în [16] unde se suprapun obiecte virtuale augmentate într -o scenă reală în toate tipurile
de situații de conduc ere, inclusiv în condiții meteorologice nefavorabile. Metoda e formată din două etape:
generarea ipotezelor și verificarea lor. Într -o primă etapă este extrasă regiunea de interes apoi se verifică
dacă ceea ce s -a extras este o mașină sau un indicator rut ier urmând ca un obiect virtual să fie atașat
obiectului real. Ca și concluzie, autorii au spus că informațiile din trafic pot fi îmbunătățite cu ajutorul
realității augmentate, reducând accidentele. Studiul din [17] arată că realitatea augmen tată aduce
îmbunătățiri și în ceea ce privește instrucțiunile interactive.
Persoanele cu deficiențe de auz se confruntă cu o serie de probleme printre care înțelegerea
informațiilor, a unor idei și concepte privind condusul auto, iar studiul problemei a dus la dezvoltarea unor
aplicații care să asiste înțelegerea, familiarizarea persoanelor cu semnele de circulație și cu traficul rutier.
2 Model suport de dezvoltare și interacțiune
2.1 Premise de aplicabilitate și principii de dezvoltare
2.1.1 Profil de utilizator
Liceul Tehnologic Special “SAMUS” din Cluj -Napoca este o școală care formează și instruiește elevi cu
cerințe educative speciale în vederea integrării socio -profesionale ulterioare. Este specific adresată elevilor
cu deficiențe de auz din zona Transilvani ei, ulterior fiind integrați și elevi cu deficiențe mintale și clase de
învățământ de masă. Școala dispune de diferite cabinete, iar instruirea practică a elevilor are loc în cadrul
atelierelor din școală, specifice meseriilor. Alegerile profesiilor și re partizarea elevilor pe meserii au în
vedere aptitudinile fiecăruia. Referitor la promovarea examenului auto, elevii învață din cartea de legislație
rutieră însă aceasta nu este suficientă pentru ei. A existat un curs de legislație rutieră pentru elevii cu vârstă
între 16 și 18 ani, în care se dădeau explicații pe o tablă unde erau reprezentate situații din intersecții însă a
fost desființat.
2.1.2 Specificații
Elevii deficienți de auz din Liceul „SAMUS” au un câmp vizual bine dezvoltat iar limitările în învățare sunt
reprezentate de ne înțelegerea sensului unor cuvinte atunci când citesc texte. Soluția cu cele mai bune
rezultate este exemplificarea vizuală care îi ajută să facă conexiuni și să înțeleagă concepte. Noile tehnologii
le măresc curiozitatea și dorința de a experimenta. Jocurile pe telefonul mobil reprezintă o mare atracție
pentru ei, fiind preferate mai mult decât jocurile pe calculator și utilizarea uneltelor fizice auxiliare (ex.
joysticks, volan, etc).
63
2.2 Modelare scenă virtuală
Figura 1: Markeri asociați detectării semnelor de circulație
Imaginile folosite ca markeri sunt cele din Figura 1. Formatul de cod QR s -a folosit doar pentru că oferă
detalii suficiente pentru a fi detectate de SDK -ul utilizat în implementare. Markerii sunt i magini pe care
SDK -ul le poate detecta și urmării. Aceștia se importă în mediul de lucru, sunt poziționate obiecte 3D pe
suprafața lor, iar atunci când sunt scanați de o camera de la telefonul mobil, apar obiectele plasate. În cazul
de față utilitatea aces tora este de a construi scena reală, apoi de a plasa elemente 3D virtuale și de a crea
interacțiuni între elemente.
2.3 Model de AR pentru integrarea interacțiunii
Pentru dezvoltarea aplicației s -a utilizat Vuforia, o extensie a mediului Unity3D. Vuforia e ste un kit de
dezvoltare software de realitate augmentată pentru aplicații ce pot rula pe dispozitive mobile. În această
aplicație s -au folosit cinci markeri. Patru au fost folosiți pentru plasarea obiectelor 3D reprezentate de
semnele de circulație stop, interzis, cedează trecerea și obligatoriu dreapta, iar un marker a fost utilizat
pentru plasarea mașinii și a trei blocuri așa cum este arătat în Figura 3. Principiul de funcționare al
aplicațiilor dezvoltate pe baza portalului Vuforia este ilustrat în Fig ura 2 .
Figura 3: Poziționarea și orientarea obiectelor virtuale în timp real
Figura 2. Schema logică de funcționare Vuforia [2]
64
3 Soluție de manipulare și integare
Pentru realizarea aplicației s -au importat markerii în scena din Unity3D, s -au plasat semnele de circulație
ca elemente 3D pe 4 dintre ei, iar pe ultimul, cel care simulează un drum cu o intersecție s-a plasat mașina.
La începutul aplicației utilizatorul este rugat să configureze poziția de start a mașinii și să amplaseze un
semn rutier în scena reală. Ulterior scena este controlată dinamic prin intermediul aplicației. Mașina se
controlează cu ajutoru l unor butoane, iar în funcție de comportamentul în intersecție se primesc mesaje pe
ecran.
3.1 Exemple de scenarii
Figura 4: Situație incorectă Figura 5: Situație corectă
În Figura 4 este o exemplificare pe un scenariu concret. Mașina nu a așteptat în intersecție pentru a se
asigura. În acest caz, un mesaj de eroare este arătat, iar utilizatorul trebuie sa parcurgă din nou drumul. În
cazul în care comportamentul este adecvat în intersecție, se afișează un mesaj așa cum este ilustrat în Figura
5 și utilizatorul poate să treacă la simularea unei alte scene.
3.2 Soluție de integrare
Nivel 1 Nivel 2 Nivel 3
Vizualizare tutoriale cu
scene practice Aplicație AR de
configurare a scenariilor Aplicație mobilă de
generare dinamică a
scenariilor
Generarea de scenarii AR reprezintă nivelul al doilea din dezvoltarea unei aplicații structurată pe 3 niveluri
de percepție și exersare conform principiilor de învățare pentru persoane cu deficiențe de percepție [5].
Figura 6 punctul a. reprezintă scen a reală iar punctul b. ilustrează scena cu imaginile țintă și obiectele 3D
plasate în mediul Unity3D. Aceste scenarii vor fi salvate și pe baza lor se construiesc scenele din nivelul
trei în care utilizatorul trebuie să aplice ceea ce a învățat din primele două niveluri. Un exemplu este dat în
Figura 7 punctul a., punctul b. reprezentând scena din Unity3D. Primul nivel este format din explicații date
sub formă de animații despre respectarea corectă a semnelor de circulație.
Asimilare Familiarizare Testare
65
a. b.
Figura 6: Nivelul 2. Generarea de scenarii AR
a. b.
Figura 7: Nivelul 3. Aprofundarea cunoștințelor
4 Concluzii
Această lucrare descrie o aplicație pentru asistarea persoanelor cu deficiențe de auz în înțelegerea și
familiarizarea cu regulile de circulație. O comparație cu două aplicații specifice similare relevă următoarele
avantaje:
1) Comparativ cu [8], se aduce în plus posibilitatea utilizatorului de a -și crea diferite situații și de a le
testa, mediul este mai interactiv, fiind vorba de realitate augmentată, iar folosirea telefonului mobil
este mai accesibilă .
2) Comparativ cu [5], se aduc în plus elementele 3D care pot fi vizualizate din diferite unghiu ri
Aplicația poate rula momentan doar pe dispozitive mobile cu Android, iar memoria și capacitățile
telefonului influențează funcționarea aplicației. Pot exista întârzieri în procesarea informațiilor. Imaginile
țintă trebuie să prezinte detalii suficiente pentru a putea fi detectate și pentru a oferi stabilite acestea nu pot
fi mișcate foarte mult.
În ceea ce privește munca viitoare, se urmărește ca aplicația să fie testată de elevii de la Liceul „SAMUS”
din Cluj -Napoca. O altă posibilă extindere ar fi inte grarea cu realitate virtuală. (HTC vive, Oculus Rift,
Google Cardboard). Într -o situație reala de conducere a unei mașini, să se detecteze de la o anumită distanță
semnul de circulație și să se arate care este comportamentul corect care trebuie adoptat.
5 Referițe bibliografice
[1] Bryan E. Porter, Handbook of Traffic Psychology, Academic Press, 2011 .
[2] https://gravityjack.com/news/vuforia -sdk-gravity -jacks -browsar -code -stack -is-an-augmented -reality – developers –
dream/ ;http://www.who.int/mediacentre/factsheets/fs300/en/ ;
http://anpd.gov.ro/web/transparenta/statistici/trimestriale/ ;https://wfdeaf.org/databank/wfd -and-other -publications/ ;
[3] M. Laabidi, M. Jemni, L. Jemni, B. Ayed, and H. Ben Brahim, “Learning technologies for people
with disabilities,” J. King Saud Univ. – Comput. Inf. Sci. , vol. 26, no. 1, pp. 29 –45, 2014.
66
[4] S. F. Saud and Z. A. Nasruddin, “Design of e -Learning Courseware for Hearing Impaired ( HI )
Students,” pp. 271 –276, 2016.
[5] L. Shoaib, “Learning Technologies for the Hearing Impaired,” pp. 366–371, 2014.
[6] M. Han, T. Liu, W. Chen, and F. Bai, “Assistive Learning for Hearing Impaired College Students
using Mixed Reality : a Pilot Study,” 2012.
[7] D. P. Cox, “Effective Communication When Teaching the Deaf to Drive.”
[8] P. Singh, R. Rathor e, R. Chauhan, and R. H. Goudar, “A gaming Model for teaching autistic
children basic traffic rules,” Int. J. Inf. Educ. Technol. , vol. 2, no. 5, pp. 14 –17, 2012.
[9] L. Meuleners and M. Fraser, “A validation study of driving errors using a driving simulat or,”
Transp. Res. Part F Psychol. Behav. , vol. 29, pp. 14 –21, 2015.
[10] S. M. Cox et al. , “Driving Simulator Performance in Novice Drivers with Autism Spectrum
Disorder : The Role of Executive Functions and Basic Motor Skills,” J. Autism Dev. Disord. , 201 5.
[11] B. Reimer, R. Fried, B. Mehler, N. Zhao, R. Goldin, and J. Biederman, “Brief Report : Examining
Driving Behavior in Young Adults with High Functioning Autism Spectrum Disorders : A Pilot Study Using a
Driving Simulation Paradigm,” pp. 2211 –2217, 20 13.
[12] J. Sun, Z. Ma, T. Li, and D. Niu, “Simulation Modelling Practice and Theory Development and
application of an integrated traffic simulation and multi -driving simulators,” Simul. Model. Pract. Theory ,
vol. 59, pp. 1 –17, 2015.
[13] F. Schwarz and W. Fastenmeier, “Augmented reality warnings in vehicles : Effects of modality
and specificity on effectiveness,” Accid. Anal. Prev. , vol. 101, pp. 55 –66, 2017.
[14] M. L. Rusch, M. C. Schall, J. D. Lee, J. D. Dawson, and M. Rizzo, “Augmented reality cues to assist
older drivers with gap estimation for,” Accid. Anal. Prev. , vol. 71, pp. 210 –221, 2014.
[15] R. Eyraud, E. Zibetti, and T. Baccino, “Allocation of visual attention while driving with simulated
augmented reality,” Transp. Res. Part F Psychol. Behav. , vol. 32, pp. 46 –55, 2015.
[16] L. Abdi, F. Ben, and A. Meddeb, “In -Vehicle Augmented Reality Tra ffi c Information System : A
New Type of Communication Between Driver and Vehicle,” Procedia – Procedia Comput. Sci. , vol. 73, no.
Awict, pp. 242–249, 2015.
[17] M. Fiorentino, A. E. Uva, M. Gattullo, S. Debernardis, and G. Monno, “Computers in Industry
Augmented reality on large screen for interactive maintenance instructions,” Comput. Ind. , vol. 65, no. 2,
pp. 270 –278, 2014.
Biografie
Salomia Anca -Elena este studentă în anul IV la Facultatea de Electronică, Telecomunicații și Tehnologia Informației
de la Universitatea Tehnică din Cluj -Napoca și este interesată de dezvoltarea de aplicații folosind noi tehnologii cu
aplicabilitate în dome niul social -uman.
Anca -Elena SALOMIA, studentă
Universitatea Tehnică din Cluj -Napoca
Electronică, Telecomunicații și Tehnologia Informației
Cluj-Napoca, ROMÂNIA
E-mail: salomiaancaelena@gmail.com
Copyright Notice
© Licențiada.org respectă drepturile de proprietate intelectuală și așteaptă ca toți utilizatorii să facă același lucru. Dacă consideri că un conținut de pe site încalcă drepturile tale de autor, te rugăm să trimiți o notificare DMCA.
Acest articol: LISTA TABELELOR … … … … iii [604405] (ID: 604405)
Dacă considerați că acest conținut vă încalcă drepturile de autor, vă rugăm să depuneți o cerere pe pagina noastră Copyright Takedown.
