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.
-
Deliverables
- D1. Strategies for SCRUM
- D2. Backlog
- D3. Half-time evaluation
- D4. Presentation at Lindholmen
- D.5 Report
- Extras
-
Meeting protocols - Weekly meeting protocols.
-
Retrospectives - Weekly sprint retrospectives
/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.
-
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.
-
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.
-
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). -
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. -
The
/main
system collects data from the CAN-Bus. Data from the Ultra Sonic Sensor is used to execute Platooning and ACC mode.
Follow instructions here.
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).
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 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
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 |