Giter Club home page Giter Club logo

tudelft_bicycle_handling_test's Introduction

TUDelft Bicycle Handling Test

During my Master's project, I had to set up an experimental setup to be able to measure the performance of the MPC controller. The setup involved a participant riding a bicycle on a treadmill and collecting virtual stars, for which the participant was assigned a score. After the experiment, Jason came up with an idea to use this setup to qualitatively measure handling qualities of different bicycles. Using the whole software package that was developed for the MPC controller would be overkill for this application, therefore this repository contains the minimum amount of software required.

Requirements

  • PC running Windows 10
  • HTC Vive Tracker 3.0 + 2x Base Station 2.0
  • Raspberry Pi 4 Model B 4GB (I used a headless 32-bit Raspberry OS)
  • Simulink with Simulink Desktop Real-Time, Aerospace Blockset and DSP System toolboxes
  • libsurvive (currently on Raspberry Pi, but Windows should be possible)
  • NeoKey Trinkey or Arduino Uno with a button

File structure

Arduino Uno/ and NeoKey Trinkey/ -- A button is needed to start the trial/test. Originally, for the MPC, a personal NeoKey Trinkey was used as it had two buttons and an LED. For this application, a simple Arduino Uno with a button is enough. Code for both of them are held here.

Raspberry Pi -- Raspberry Pi is acting as a middle-man between HTC Vive Tracker 3.0 and Simulink. It uses libsurvive to receive and make sense of the raw data coming from the Tracker, and then sends it to a desktop PC running Simulink. I am using RPi since I had trouble setting libsurvive up on Windows and did not want to waste more time than needed.

Simulink -- This folder contains a MATLAB script to generate the sequence of the virtual stars, as well as a Simulink model, which is a middle-man between Raspberry Pi, Arduino Uno and Unity. The model also logs the data from the sensors for later analysis.

Unity Game -- Contains the executable for the visualisation of the virtual stars.

Unity Project -- Contains the Unity project files from which the game can be compiled.

tudelft_bicycle_handling_test's People

Contributors

sdrauksas avatar

Stargazers

Jason K. Moore avatar

Watchers

Jason K. Moore avatar  avatar

tudelft_bicycle_handling_test's Issues

Not ready for VR

Currently, only the things that are in front of the camera are created. If VR will be used, some stuff to the sides and the back should also be added so the participants are not looking at the void.

Additionally, the object sizes might not be appropriate for VR

Only one star is displayed

For the MPC experiment, I only had to display one star at a time. Therefore, the script dealing with star rendering GatesLoc.cs can only render one star.

Lines 42 and 79 have break in them, which triggers whenever the first star is found along a reference line, and all data that follows afterwards is not looked at.

If multiple stars are needed (for example if the distance between them is smaller than 6 seconds), then this issue should be addressed.

Issues with perspective

MPC experiment participants expressed some complaints regarding the perspective and difficulty estimating the location of the upcoming star.

For a handling test that needs to be repeatable, the influence of human factors should be limited as much as possible. Therefore, we should give the rider as much information as possible about the upcoming star. Some suggestions:

  • Try different camera setups. Currently the camera is fixed to the middle of the treadmill. Maybe make it move/rotate according to bicycle's position?
  • Draw a straight line from the star towards the bottom of the screen, so that the rider has a line to follow.
  • Draw a "ruler" between the star and a virtual bicycle that changes its length relative to how far the bicycle is from the star.
  • Use a pre-set star sequence instead of a randomised one.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.