Skip to content
Victor edited this page May 28, 2022 · 47 revisions

Pocket Parking

What is Pocket Parking?
Pocket Parking is an automated parking service for drivers. Our solution aims to reduce car accidents that frequently occur in parking lots. Our goal is also to introduce digitalized personal valet parking, that everyone can afford, right in your pocket!

Why is Pocket Parking necessary?

"20 percent of car accidents happen in parking lots" - MotorBiscuit

Pocket Parking aims to reduce driver accidents within parking lots by taking an automated approach to the problem. Driverless parking is not only safer, it is also quite efficient and time saving.

How does Pocket Parking work?
Pocket Parking will use the car's sensors to detect obstacles and avoid collisions, find available parking spaces and find secure paths to drive through in search of parking. It will detect presence of pedestrians and make decisions on how to keep distance to avoid harming them.

Milestones

Basic Car Control
Parking lot terrain
Android Application
Advanced Parking Algorithms
Internal Map of Parking Lot

Github issue workflow

Some rules regarding on how to use work on issues.

  1. go to the issues page, click on "Create a new branch for this issue or link a pull request." which creates a branch meant for just that issue

  2. go to the Scrum Board and move the issue you are working on to "in progress" (if the issue does not exist on the scrum board, go to the issue on the issues page and add it in the "Projects" tab)

  3. every commit made to the new branch should mention the issues ID (#XX) and follow The seven rules of a great Git commit message

  4. after an issue has been solved, merge the new branch with master. The pull request should:

  • have the issue ID in the title
  • assign yourself and others who have been working in the branch in the "assignee" tab
  • close the issue by selecting the issue in the "Development" tab or write "This closes issue #XX"
  • should reference the current sprint in the "Labels" tab
  • If the issue has the "bug" label, add that label to the Pull request as well
  • should make sure the pull request is connected to the correct milestone in the "Milestone" tab
  • should add at least one person from the team as a reviewer to the "Reviewers" tab
  • move the issue on the Scrum Board to "To be verified"
  1. if the pull request gets accepted, the reviewer should merge the branch and move the issue on the scrum board to "Done"

The seven rules of a great Git commit message

Separate subject from body with a blank line https://cbea.ms/git-commit/#separate

Limit the subject line to 50 characters https://cbea.ms/git-commit/#limit-50

Capitalize the subject line https://cbea.ms/git-commit/#capitalize

Do not end the subject line with a period https://cbea.ms/git-commit/#end

Use the imperative mood in the subject line https://cbea.ms/git-commit/#imperative

Wrap the body at 72 characters https://cbea.ms/git-commit/#wrap-72

Use the body to explain what and why vs. how https://cbea.ms/git-commit/#why-not-how

Modding

In DIT113-V22/group-02/mod directory, for the mod to be recognized by the emulator, one needs to find a file called "ppmod.pck" and copy-paste it in a folder called "mods" in the user directory of the SMCE-Godot app:

For Windows: C:/Users/admin/AppData/Roaming/Godot/app_userdata/SMCE

For Mac: ~/Library/Application Support/Godot/app_userdata/SMCE/mods

For Linux: ~/.local/share/godot/app_userdata/SMCE/mods/

It is also important to run the sketch in DIT113-V22/group-02/arduino/smartcar directory, as it also contains the necessary config files for the mod to work correctly on the emulator.

User manual

App

Joystick

Joy

The joystick can be used to control: the cars speed by moving the joystick up and down the cars direction by moving the joystick left and right

Data Visualization

The two squares below the camera image are the Data Visualization, the left heads up display show the speed that the car driving on, the write one shows the distance the the car has travled.

Cruise control

Skärmavbild 2022-05-28 kl  13 45 19

By moving the cruise control wheel up and down you can set the speed the of the car to the displayed number.

Parking button

ParkingLot P

By having the car in the parking lot terrain and roughly in the area in which it spawns, you can press the parking button and have the car automatically scan for an empty parking spot, drive up to said parking spot and then park.

Retrieve button

R

If the car has parked itself with the use of the parking button, The graphics should change to a new button. If pressed, this button will cause the car to drive itself back to the starting location.

Note: The joystick and cruise control features are disabled the parking and retrieval process.

Camera

The camera starts out displaying the very front of the car, with the press of the camera switch button, you can instead display 360 degrees around the car.
SwitchCamera

Speedometer and Distance-2-Object

Data

This area of the app shows the cars current speed and Distance to frontal objects. The Speedometer does not update itself during automatic parking and retrieval.