Development log


Introduction / Overview

This application is VR Driving Simulator where people can experience driving a car in a virtual environment. The main purpose of the application is to help people learn a drive.  People can simulate the driving experience, which is extremely helpful for learner drivers.  Driving in a virtual environment for a learner driver is completely risk-free and cost-saving. 

A brief summary of any design revisions since Assignment 4

On assignment 4, the application was not fully functional and missing all the features. On assignment 5, we added the interactions where the user can control the car by virtual hands such as changing the gear and moving the steering wheels. We added a button where users can select which type of car user want to drive such as automatic, or manual type. On assignment 5, we added different car models and the virtual environment as well which is very suitable than before. 

Technical Development 

This application uses virtual reality technology, it is made in the unity 3D software applications and, it is tested and run in the Oculus Quest 1 headset. This application is built on unity version 2020.3.30f1.  We imported the Realistic Car Kit from the unity asset store (“Realistic Car Kit | Physics | Unity Asset Store” 2016).  From this, we imported simple scenes into our project.  Simple scenes come with the environment to drive the car and 3 models of cars. We disable the 2 cars as we need only one car for our project.  After this, we imported VR Interaction Framework for the project (“VR Interaction Framework | Bearded Ninja Games| Systems | Unity Asset Store” 2022). This is very helpful as it comes with many interactive features and, 3D models. We imported the steering wheel and the vehicle gear in our project from these assets. We used an XR rig advanced from the VR interaction framework for the player position right in front of the car. To support these features we installed "XR plugin Management" and, "XR Interaction Toolkit" in our unity project.

When we build and run our project, the user will be in front of the car.  Users can move with the help of thumb sticks from the joystick in the virtual environment. The right joystick refers to the right hand and the left joystick refers to the left hand. When users are inside the car they can choose the car type manually and automatically.  If the user chooses a manual then he needs to put gear through his right hand and control steering through his left hand.  If the user chooses automatic then no need to use gear and the gear will disappear from the vehicle. If you press the right trigger vehicle will move forward and if you press the left trigger vehicle will move backward. Overall this project provides an excellent experience driving in the virtual environment. 

A detailed explanation of key technical development aspects

The main features of this application are vehicle control by the user the virtual hand and point the selection of the car type.  The user must be able to enter the car and exit as well. So we added the C# scripts for the vehicle control and exit and enter. Except for the inbuilt scripts from the assets from the unity asset store, the scripts we added are CarEnter.cs, CarExit.cs, MyVRController.cs, ShiftSelect.cs (Johnny5Alive 2022, “Unity Game Engine Tutorial Real Car Controller 2 VR Conversion Part 1 with Stick Shift using VRIF,” ). The car enter script is added in the CarEnter where the game object is player control, vehicle, car destination, enter cube, right-hand model, and left-hand model. We added things accordingly to the scripts to make these functions work. Car exit also has similar scripts with predefined exit destinations in the unity. Vehicle control scripts contain right grabber, left grabber, and, joystick grabbable functions. It contains vehicle gear and speed functions in the float parameter. Shift select scripts have the functions for changing the vehicle to automatic and standard. This has a stick shifter game object. We used XR Rig advanced in this unity project. 

           Source: https://drive.google.com/file/d/1U6Onk1xZIRhEH1n4NcV2GXJ4mdmSlm31/view (Johnny5Alive 2022, “Unity Game Engine Tutorial Real Car Controller 2 VR Conversion Part 1 with Stick Shift using VRIF,” )

3D Content 

Old Car

The old car is a 3D model of the car vehicle. It is in the scene which is from the realistic car kit. These car controls come with scripts inside the assets of the realistic car kit. This is very important as the user needs to drive this vehicle inside the environment. This old car has all the parts of the car and looks very realistic.


Source: https://assetstore.unity.com/packages/tools/physics/realistic-car-kit-18421

Steeringwheel

Steeringwheel is one of the 3D models, we imported in our unity project inside the old car.  The steering wheel can grab by users and used to control the vehicle inside the project. 

Source: https://assetstore.unity.com/packages/templates/systems/vr-interaction-framework...

JoysticVehicle

We imported JoysticVehicle inside the old car. These are the extra features of the standard vehicle. It is used to put the gear of the vehicle. This 3D object will disappear in the automatic vehicle.


Source: https://assetstore.unity.com/packages/templates/systems/vr-interaction-framework...


3D Cube

This is a 3D object imported from unity. It is used as an entering cube and it allows the user to enter inside the car. This is not visible inside the unity project as it is irrelevant to the driving simulator project. 



Source: Unity version 2020.3.30f1


SimpleScene

This is an imported environment for our project. This is imported from the realistic car kit simple scene. This is a very useful environment for the driving simulator as it provides different types of road conditions, bridges, and, road lines. 

Source: https://assetstore.unity.com/packages/tools/physics/realistic-car-kit-18421


Usability Testing 

Introduction

Usability testing is a method for assessing a product by using it on actual users, who can give feedback on how they use the system directly. It seeks to determine whether the product satisfies the presumptive objectives and specifications (Kamińska et al., 2022). Usability testing is a type of evaluation where one or more representative users carry out tasks or explain their intentions while being observed (Riihiaho, 2017). 

Target Audience 

The users are primarily university students who were on the same tutorial as ours. We also conducted our usability testing on the students who were not enrolled in this unit and were unfamiliar with Virtual Reality as well as the family members who are learning car driving. Altogether there were 5 participants that were chosen to do the testing where 2 students were of the same tutorial and 2 were from a different unit and 1 family member. The environment where the usability testing was done was the university and home.  Generally, when choosing a user, we choose users who are learner licenses and who are professional at driving to get different types of results. Foer test this application user needs to wear the headset that is oculus quest 2. At the start of the application, the user will be inside the virtual environment with the car right in front of the user. Before we test the user about the application, the user needs to get inside the vehicle and position himself in a comfortable way to drive the car.

After successfully entering the car, the user needs to choose which type of car he wants to drive. It is either automatic or manual (standard). The user needs to drive the car using the right and left trigger and needs to control the car by using virtual hands. 


  • Design and Plan

 From the purposes/aims of the application, what aspect(s) of the application does the testing need to focus on?  Scope of the testing (e.g. what to or not to test)  Take into account the current stage of development of the software application. 

The main purpose of the application is to help to learn driving to learner drivers. Testing must focus on which is a suitable vehicle for learner drivers between the automatic and manual driving types. Another main aspect of testing is how sensitive the steering wheel of the application is and needs to figure out whether it is similar to a real vehicle. 

Design relevant tasks that participants need to perform during the testing.

Task 1: Driving the car automatic and controlling the steering wheel

Task 2: Driving the car in the manual (standard) and controlling the steering wheel.

The sets of tasks users need to follow inside the virtual environment 

Step 1: Get inside the vehicle 

step 2: Choose the types of car they want drive needs to select by virtual hand.

Step 3:  Control the vehicle with virtual hands 

step 4: Change another driving type and do the same as before

Pre-experiment questions 

Before starting the testing in the virtual environment, we asked some of the pre-experiment questions to the participants to know more about them and their particular experiences in this field. 

1) Do you drive a car and what is your license type?

2) Did you have experience with any Virtual reality driving simulator before?

3) Do you feel nervous while driving?

4) Do you involve in any accidents while driving before?

Post-experiment questionnaires

Post experiment question is important to analyze the experience of the users inside the virtual environment. The set of post-experiment questions is listed below:

  1. Is the car realistic in a virtual environment?
  2. Can you easily handle the car with virtual hands? 
  3. Can you see road lines and marks easily?
  4. Is reversing the car and parking the car realistic?
  5. Do you think this provides better learning skills than on the roads?

why the questions are relevant and suitable for the aims of your test?

Is the car realistic in a virtual environment? : Car is an important factor in the virtual environment. If you feel the car is realistic only then user feels and experience it. 

Can you easily handle the car with virtual hands? :  We drive the car by hand in the real environment, so we develop an application where users can handle the car with virtual hands.  To find out to what extent the hand is working in the applications, we decided to include these questions. 

Can you see road lines and marks easily?: Road lines are important in driving. We need to see clear lines on the road. So this question is important in the testing. 

Is reversing the car and parking the car realistic? :  Reversing and parking are one of the tasks required when learning driving skills. So it must be realistic inside the virtual environment. 

Do you think this provides better learning skills than on the roads?:   Overall experiences of the participants must be analyzed. Participants will give you feedback after the testing, so it is relevant questions to our application. 


  • Recruitment

Before recruiting the participants, we analyze our target audience to choose suitable participants for our applications. 

In our evaluations, we have 5 participants

- Gender: 4 male, 1 female

- VR familiarization

3 have to experience

2 have no experience at all

- Driving experiences

2: full license

1: Red P licenses

2: Learner licenses

When we recruit, we try to cover both gender, age types, and all types of licensed participants. We do not want to result biased so we need to gather all the participants with different levels and skills. 


  • Protocol of the testing

  • Report of the findings

During the testing procedure, we put the answer of the participants on the form, so we can analyze results easily and, figure out the percentage.







  • Analyses of the findings

From the questions after the testing, we try to analyze the participant's results. The first question we asked is the car looks realistic in the applications and most of the users were neutral and agreed with this question. That is about 40% of each of the results. On the question, can you easily handle the car with virtual hands, most people agree with the decision and only a few around 20% disagree with the questions. on all questions user agrees however in the section about parking the car and, reversing the car user provide equal types of decisions where 20% each answer for all options. 

After the analysis, we found that most of the functions of our vehicle are realistic to the real vehicle. The only list of the changes required in the application as all the functions work properly in the application.

user feedback, providing insight into what your application does or does not do well, which led to impactful modification(s) of your application

After testing 5 participants now we have the results and user feedback, which is very important for the further development of our applications. We are ready to make some improvements that users figure out must be in the application. The list of user feedback for our driving simulator application is listed below:

1) User does not like the manual types of car as it is hard to drive.

2) User wants a road with traffic rules so they can learn some rules while driving inside the virtual environment. 

3) User wants more functions in the car like horn, side lights, and virtual brake.

4) User wants a speed limit sign and wants to know the speed of the vehicle. 


Addressing the Results of the Usability Testing 

From the usability testing, we gather a lot of user feedback which is very helpful for future improvements. The main thing user like to remove is manual types of car as it is very hard to drive and, most of the users do not want to learn this type of car. The user likes to more engagement on the road with a number of traffic rules and signs. The user wants full functions of the car with the light, horns, and sidelights for the signal. Overall after the usability testing, we figure out the things that are missing from the applications, and possible suggestions for future development.  As we decided in the group, we would like to add more  features to our application and, they are as listed below:

1) Speed limit warning: It is an important feature required and suggested by the participants for the future development of the driving simulator application. 

2) Vehicle damage percentage: It is important to have in this application, as it shows how bad is driver and, how rough he drives. 

3) Traffic Signs: Traffic signs is important so learner driver is able to learn traffic rules while driving. 

This important function needs to be in the driving simulator as it justifies its purpose. By adding these functions, users can have more experience in driving and gain more knowledge while driving in the VR environment. 

Conclusion

Overall the application provides very good simulations of driving. Many people can learn to drive through these applications. We looking forward to more improvements in this applications.

Referencing

“Realistic Car Kit | Physics | Unity Asset Store” 2016, Realistic Car Kit | Physics | Unity Asset Store, viewed 26 October 2022, <https: assetstore.unity.com="" packages="" tools="" physics="" realistic-car-kit-18421=""></https:>

“VR Interaction Framework | Bearded Ninja Games| Systems | Unity Asset Store” 2022, VR Interaction Framework | Systems | Unity Asset Store, viewed October 2022, <https: assetstore.unity.com="" packages="" templates="" systems="" vr-interaction-framework-161066="">.</https:>

Johnny5Alive 2022, “Unity Game Engine Tutorial Real Car Controller 2 VR Conversion Part 1 with Stick Shift using VRIF,” YouTube, viewed October 2022, <https://www.youtube.com/watch?v=Orl7jKA4YH8&t=2024s>.

Riihiaho, S. (2017) “Usability testing,” The Wiley Handbook of Human Computer Interaction, pp. 255–275. Available at: https://doi.org/10.1002/9781118976005.ch14.

Kamińska, D., Zwoliński, G. and Laska-Leśniewicz, A. (2022) “Usability testing of virtual reality applications—the pilot study,” Sensors, 22(4), p. 1342. Available at: https://doi.org/10.3390/s22041342.

Get Assignment 5 Development and Evaluation of Interface Application

Leave a comment

Log in with itch.io to leave a comment.