Giter VIP home page Giter VIP logo

group-09's People

Contributors

gunoahj avatar hexjohn avatar legitprogrammer avatar peym77 avatar platisd avatar sneakypopcorn avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

group-09's Issues

Add camera to vehicle (emulator)

As a user I want my vehicle in the emulator to have a camera attached to it so that I can get a video feed from the vehicle.

Acceptance Criteria:

  • The emulator vehicle has a working camera device attached to it.
  • The implementation is tested.

Get camera feed

As a user I want to steer my car wirelessly so that I can control the vehicle remotely.

Acceptance Criteria:

  • The user is able to receive real-time video feed from the camera device attached to the vehicle.
  • The implementation is tested.

Keyboard to movement

As a user I want to be able to steer the vehicle using a keyboard so that I can manually control it.

Acceptance Criteria:

  • User can steer the vehicle by pressing WSAD keys on the keyboard.
  • The implementation is tested.

Online steering

As a user I want to steer my car wirelessly so that I can control the vehicle remotely.

  • The client app can send movement commands to a private MQTT broker over the internet
  • The vehicle can follow movement commands from a MQTT broker on internet
  • Implementation is tested
  • Function is successfully added

Custom Map

As a user I want a custom made map so that I can try out the features of the program to its full extent.

  • Individual models imported and placed appropriately
  • Map meshed and import as gltf
  • Environment and hitboxes created, export to SMCE
  • The implementation is tested

Escape hatch

As a user I want an escape hatch to return to the homescreen so that I can perform the main functionalities that are present there.

  • The escape hatch button is consistent and clear across all screens
  • The escape hatch is responsive and consistent
  • The implementation is tested

Movement with analog input

As a user I want to be able to steer the vehicle using an analog input so that I can manually control it with more granularity.

Acceptance Criteria:

  • Steering can be done using analog input.
  • The implementation is tested.

Translate simple natural language to commands

As a user I want to be able to provide simple natural language input so that I can maneuver the car without explicit knowledge of the commands the car can understand.

Acceptance Criteria:

  • The system is able to recognize simple movement commands when provided with a very simple english sentence.
  • The implemenation is tested.

Drive in the path of shapes

As a user I want to be able to instruct the car to follow the path of shapes so that it can perform more complex maneuvers with less specification

  • The car can drive in basic 2D shapes like circles, stars, and squares
  • The car is consistent and does not deviate outside specification
  • Implementation is tested

Visually appealing GUI

As a user I want the GUI to look appealing and modern so that I can enjoy interacting with the app.

  • The GUI looks modern and pretty.
  • The new design is tested.

GUI consistency

As a user I want the GUI to be consistent across different operating systems and computers, so that there is no unintended problems when I use application on a different machine

Acceptance Criteria:

  • Font is universally consistent
  • Spacing is universally consistent
  • Start view and Steering view follow a more consistent theme
  • The implementation is tested

Emergency stop when about to collide

As a vehicle owner, I want the vehicle to automatically stop driving when it is about to hit an obstacle, so that I can prevent vehicle damage.

Acceptance Criteria:

  • The vehicle can detect when it is about to crash with something.
  • The vehicle starts breaking automatically when it detects an imminent crash.
  • The implementation is tested.

GUI Settings

As a user I want to be able to change settings in the GUI so that I can customize the way the software works based on my needs.

Acceptance Criteria:

  • Language of the application can be changed.
  • The implementation is tested.

Intent detection

As a user I want the system to be able to understand the intent of my commands so that it would execute them with a high accuracy.

  • The trained model is able to break a complex command into multiple simple commands.
  • The trained model is able to understand the intent and context of each simple command.
  • The implementation is tested.

Sensor output to user

As a user I want to see the output from the vehicles measurement instruments like the proximity sensors or the odometer so that I can know the state of the vehicle in real time.

Acceptance Criteria:

  • User can see the current status and readings of all measuring instruments present on the steered vehicle.
  • The implementation is tested

Turn speech into text

As a user I want the system to turn speech into text so that I do not need to write.

Acceptance Criteria

  • System accepts input from a microphone.
  • The voice input is translated into text.
  • Implementation is tested.

Application exit

The application does not exit when you close the GUI which could cause unexpected behaviours. A possible solution could be using System.exit(0) when closing the GUI.

Multiple steerable vehicles in the emulator

As a user I want to have the option to have another user steer a separate vehicle so that we can do things together.

  • Multiple users can steer their vehicles at the same time in one emulator instance.
  • The implementation is tested
  • Function is successfully added

Access to all software functionalities

As a user I want full access to all functionalities of the software so that I can perform tasks properly and efficiently

  • The GUI is straightforward and apparent for all intents
  • The GUI is responsive and consistent
  • The implementation is tested

Application launcher

As a user I want to be able to launch the application from a launcher so that I don't have to use the command line every time that I want to use the application.

  • Application can be run from a single executable jar.
  • Application runs properly on Windows.
  • Application runs properly on Mac.

Run simple command

As a user I want to be able to run a command so that I can make the vehicle move.

Acceptance Criteria:

  • System recognizes simple movement commands (left, right, forwards, backwards, stop)
  • System can execute said commands
  • Implementation is tested

Return to start

As a user I want the car to return to its origin so that I can effortlessly go back to where I started.

  • Car returns to original position
  • Car retains original orientation
  • Implementation is tested

Online sensor outputs

As a user I want to be able to wirelessly read all sensors data from the vehicle so that I can monitor everything remotely

  • Readings and current states of all measuring instruments on the vehicle can be uploaded to a private MQTT broker over the internet.
  • The client app is able to receive all the data from a private MQTT broker
  • Implementation is tested
  • Function is successfully added

Using .wav files

As a user I want to be able to submit an .wav file and have it converted to text, so that I do not need to speak directly.

Acceptance Critera

  • The system allows file uploads.
  • The system can convert uploaded .wav files into text.
  • The implementation is tested.

Accurate movement

As a user I want the vehicle to execute movement commands with a great precision so that I don't need to be worried about monitoring the vehicle constantly when it is working.

Acceptance Criteria:

  • The inaccuracy of car turning is not greater than 1 degree.
  • The inaccuracy of straight movement is not greater than 1 centimetre.
  • The implementation is tested.

Translate semi-complex natural language to commands

As a user I want to be able to provide semi-advanced english language input to the car, so that I can make it do more complex and interesting things without having to resort to using the simplest movement commands.

Acceptance Criteria:

  • The system is able to recognize more advanced commands that require the car to perform multiple movements sequentially when provided with a non-simple english sentence.
  • The implementation is tested.

Run sequential list of commands

As a user I want to be able to give a set of commands so that I can create a more sophisticated behavior.

Acceptance Criteria:

  • Vehicle can perform multiple commands in the given order
  • All provided commands are executed
  • Implementation is tested

Improved file loading and writing

The current implementation of HashMap loading and writing from .txt files is needlesly complicated and needs to be simplified.

  • A universal method for loading HashMaps from .txt files is made.
  • A universal method for saving HashMaps to .txt files is made.
  • The implementation is tested.

List the interpreted commands

As a user I want to see how the interpreter translated my input so that I know if something was not understood properly.

Acceptance Criteria

  • Should show the translation as soon as it is finished.
  • The keywords that were translated should be highlighted.

Loading files from jar

The language processing module loads the files in a way that can't be used from a jar file. This makes it impossible to make a launcher for the program. I need the to be able to manually override the base directory in which the files are loaded from through a provided API.

Online video feed

As a user I want to be able to wirelessly receive a video feed from the vehicle’s camera so that I can see where the car is headed

Acceptance Criteria:

  • The vehicle can transmit its camera feed to a private MQTT broker over the internet
  • Client is able to decode the camera feed into a viewable video stream
  • Implementation is tested
  • Function is successfully added

Save credentials

As a user I want the software to save my MQTT and car name credentials every time that I have a successful login so that I can easily access the same car later without having to enter all the credentials again

  • The desktop software is able to save credentials on the hard drive on successful logins
  • The software is able to load credentials from a file
  • Implantation is tested

Accept text files

As a user I want to be able to submit a text file and have it translated to commands, so that I don’t need to write everything manually each time.

Acceptance Criteria:

  • Should accept .txt files
  • The .txt file should be translated to system commands in the provided order.
  • Implementation is tested.

Go to coordinate

As a user I want the car to go to a specific coordinate so that I can effortlessly go to a specific location with a single command.

  • Car gradually maps a coordinate system as it traverses its environment
  • Car is able to drive to a specific given coordinate
  • Implementation is tested

Car Settings

As a user I want to be able to change settings of the car so that I can tweak the way it operates.

Acceptance Criteria:

  • collision detection can be turned on/off.
  • The implementation is tested.

Add emergency stop to code execution

As a user I want to be able to halt any currently running or queued commands so that they are not executed if I change my mind.

Acceptance Criteria:

  • The vehicle comes to a stop
  • All queued commands are cleared
  • Vehicle is able to accept new instructions after the the breaking and command clearing procedures are finished
  • The implementation is tested

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.