Skip to content

joakimthorell/potential-couscous

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Software Engineering Project DAT255, Autumn 2017

Team

Description

This is a repository for a software engineering project at Chalmers University of Technology. The project consist of developing software for autonomous platooning implemented on a Mobile Open Platform Development (MOPED) unit under real-life working conditions with the purpose of learning and implementing Scrum.

Documents

Code

  • /main - Contains the main program developed in order to make the MOPED work as intended.
  • /tests - Contains different test scripts used to test both hardware and software.
  • /app - Android application source code. For complete app download APK here. Make sure your device can run API 25 or higher.

Overview

  1. A Computer, the MOPED and a mobile device need to be connected to the same hotspot. All data between devices is sent through local network.

  2. In order to run the main.py file you need to connect to the MOPED using ssh command from your computer. See the How-To.

  3. You can connect your phone to the MOPED when main.py is running by using the CousCousDrive application. The app sends data to CousCous server, telling main.py to execute different scripts and functions and generate desired output depending on mode. App will change UI depending on mode. Mobile device connects to MOPED by entering MOPED's ip-address (port 8888 needs to be open).

  4. The main.py system is developed with Python 2.7. It runs the car by sending data to ecm socket at localhost port 9000. System changes between 3 diffrent states: Manual, ACC and Platooning.

  5. The /main system collects data from the CAN-Bus. Data from the Ultra Sonic Sensor is used to execute Platooning and ACC mode.

How to run the system

Follow instructions here.

External libraries

OpenCV was used in order to execute platooning by helping the MOPED find an object to follow. Other libraries were mostly graphical in order to make the app more user friendly (See here).

Code tests and quality insurance

During the development we created /tests/ for some of our code. Additional info can be found here. We also performed some given tests eg. FindBugs on our java files(Android application) and were presented to perform PyLint on our Python Code. The FindBugs results can be seen here. In summary there was one inisignificant issue (read the results for more info). Regarding PyLint, we choose not to perform these tests since it wasn't a necessity (read here for further explanation).

Gitinspector

Gitinspector was used to measure the amount of code written by each team member. Bare in mind that most code was written pairwise, therefore these statistics are misleading. See result

Contributors

Name CID GitHub
Alexandra Garrido Jaque jaque AlexAndraGarrido
Anne Keller annekel kelleranne
Anton Hägermalm anthage antonhager
Fredrik Viberg vibergf vibergf
Jakob Erlandsson erjakob JakobErlandsson
Jakob Wall jwall jakwall
Joakim Mattsson joamatt mattssonj
Kevin Brunström kevinbr Kevinbrunstrom
Philip Nord nordp nordp
Sanjin Slavnic slavnic lasanjin
Simon Kärrman simkarr skarrman
Svante Bennhage svaben Skroudelz

About

Course DAT255

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published