dat255's People
dat255's Issues
Return dummy data from HW-methods
Until all the HW is upp and running we as a team need dummy values to start developing
Java API specification
As developers we want to specify a Java API to communicate with the MOPED. This way we can implement software while the hardware communication is still in the works.
DoD: create a java interface with relevant methods. The interface itself will be implemented by the hardware-team.
Write Java method to get odometer value from VCU
As a developer implementing the velocity control part of the adaptive cruise control system I need a Java interface to read the odometer
DoD: Calling the method should return the speed in cm/s based on the latest recorded values
Visualize platooning state machine
As developers we want to visualize the state machine for platooning.
It should cover possible states in platooning. As a follower and as driver
This should be done to get a clear view on how the program should operate
User Interface
As
DoD:
Analyse CAN frames / Reverse engineer existing code (if any) for reading VCU CAN frames
As a developer implementing the odometer value access Java interface I need to know how odometer data is packaged and how to extract a odometer packet from the CAN data stream
Read documentation on the MOPED
As developers we want to know the current software status of the MOPED.
DOD: Everyone in the group should have a view of how the current code is implemented and what exists.
Take picture
Read data from distance sensor using plugin
As a developer I want to be able to read data from the distance sensors on our MOPED so it can be seen how far ahead of us a object is.
Tasks:
-Familiarizing with the hardware and the existing software enough to write a reliable program.
-Write the program.
-Create the plugin.
-Test the plugin on the simulator. This will probably not work due to the limited utility of the simulator, but will give a sense of compatibility with the MOPED later on.
DOD: A prototype plugin is written and tested in the simulator.
Camera
Create a control system for steering
As developers we want the MOPED to be able to adjust its lateral course based on data from images taken by the camera so that the MOPED can follow other MOPEDs.
DoD: The MOPED aligns itself laterally with the preceding car
Read Moped Documentation
As developers we want to know the current software status of the MOPED.
DOD: Everyone in the group should have a view of how the current code is implemented and what exists.
Write Java method to get distance sensor value from SCU
As a developer implementing the distance control part of the adaptive cruise control system I need a Java interface to read the distance sensor value
The MOPED can stop at obstacles
As developers we want the MOPED to stop before it runs into an obstacle as a first step towards platooning.
Tasks:
-Using the existing software, create a program that stops the MOPED when detecting an immovable obstacle.
-Create plugin and send onto RPi.
-Test plugin.
DoD: The moped stops when detecting an immovable obstacle.
Adaptive Cruise Control (longitudinal control)
As a product owner I want the car to be able to accelerate and decelerate based on the cars ahead or behind.
DoD: We can accelerate and decelerate whilst being in cruise control(fixed speed).
Keep a distance to the MOPED in front
As developers we want the MOPED to be able to keep distance to the MOPED in front of ours, so that we can prevent collision when the vehicle is in platooning mode.
DOD: Combine the read data from sensor and set a fixed distance to moped in front programs, so that our MOPED can successfully be in platooning mode.
Java implementation of a control system
As developers we want to have software that regulates the velocity of the car based on input from the sensor, so that the speed will be more controllable.
DoD: The function returns a stable output when given values on a set interval.
Analyse CAN frames / Reverse engineer existing code (if any) for reading SCU CAN frames
As a developer implementing the sensor value access Java interface I need to know how sensor data is packaged and how to extract a sensor packet from the CAN data stream
UDP implementation
As a developer I want to be able to send and receive data between the MOPED and a app/computer.
DOD: Being able to send and receive data over the internet from and to our MOPED.
Try to use a local python script on the MOPED
As developers, we want a backup solution if we can't get the plugin server to work. We want to be able to use python scripts that can communicate directly with the CAN bus on the MOPED.
DoD: successfully used an existing python script (e.g. run.py)
Drive forwards/backwards in the simulator using plugin(s)
As developers we want to be able to drive the MOPED forwards and backwards with the help of one or several plugins. We first test the drive mode in the simulator.
Tasks:
-Familarize with the other plugins and additional software enough to create a program.
-Write the program.
-Create plugin.
-Test on the simulator.
DOD: We can successfully drive forwards and backwards in the simulator using plugin(s).
Set a fixed distance to the MOPED in front
As a developer I want to be able to se a fixed distance(Int) between our MOPED and the MOPED in front of ours.
DOD: We can follow a moped with a fixed distance infront of us.
Setup IDE
As a team we want each team member to have a working development environment to be able to contribute to the project. We don't want this to hinder our progress.
DoD: each team member have successfully setup their development environment
Broker hardware communication api specification
As a team working on either the SW or HW side we need a unified vision of how each hardware access method should be named as well as how in which manner of Java classes they should be structured into. The team also must be in agreement of which communication model the hardware access methods should apply. direct access vs event driven. If direct access should a call block until new sensor data is available or should the latest value be returned?
Drive forwards/backwards the MOPED using plugin
As developers we want to be able to drive the MOPED forwards and backwards autonomously with the help of one plugins.
Tasks:
-Familiarize with the plugin created for the simulator.
-Implement the plugin to the MOPED vehicle.
DOD: We can successfully drive forwards and backwards the MOPED using a plugin.
Setup Git
As developers we want a working git setup for the group so that we can work on the project in paralell.
Every member shall add their names in README.md and push to repository.
DoD: Every member writes their name in the README.txt.
Set up plugin server
Set up a server so we can send plugins to the MOPED.
Tasks:
The tasks are described in the moped.txt document.
DOD : Being able to at least send one plugin to the server and update the MOPED
Set motor voltage
As developers we want to be able to set a constant MOPED-motor voltage to keep a fixed speed. This way we can achieve one part of the Adaptive Cruise Control-theme.
DoD: the MOPED can be run in a specific motor voltage.
Send a pre-made plugin to the server
As developers, we want to make sure the plugin system is working as intended. The MOPED have numerous existing plugins.
DoD: an existing plugin of our choice can be used by the MOPED.
Write document about the work so far(D3)
As developers we want to evaluate the project when it's halfway done, so that we can learn a lesson for the next time.
DoD: Complete the assignment before due deadline.
Write Java method to send motor value to VCU using cansend
As a developer implementing the adaptive cruise control I need a Java interface for setting motor voltage
Read data from sensor
As developers we want to be able to read data from the distance sensors on our MOPED, so that we can see how far ahead of us a object(MOPED) is located. It is necessary that we can slow down the vehicle to be able to have smooth platooning.
Tasks:
-Familiarizing with the software implementation and the existing code enough to write a reliable program.
-Write the program and complete testing.
DOD: A program written that can successfully read values from the vehicle sensors.
Put together the features for ACC
As developers we want to put together the features we developed for the ACC, so that the MOPED can automatically adjust its speed to keep a safe distance from other MOPED(s) in the simulator.
DoD: All interfaces and regulator(s) to run the ACC are put together into an ACC-class.
Check speed
As a developer we want to be able to constantly check the speed that the moped is going in.
DoD: We can view the speed that the moped is having.
Create domain UML
As developers we want to create a domain UML, so that we can very easily get an overview of our classes or functions.
DOD: An understandable UML diagram created.
Set a fixed speed
As a developer we want to be able to set a fixed speed on our MOPED.
DOD: We can drive the car automatically with a fixed speed.
CAN Interface
As developers we need an interface to use in our code so that we can control the MOPED
DoD: Be able to send and receive messages via the CAN-bus.
Create a MOPED simulator
As developers, we want to have a modular simulator that can simulate the ACC between 2 or more mopeds so that we can test our control systems without access to the hardware.
DoD: A working simulator that we can use to adjust our Control System variables.
Platooning (longitudinal and lateral control)
As a developer we want to be able to start platooning after another MOPED and automatically follow its movements.
DOD: We can join another MOPED and start following it.
Upload code to RPi
As developers we want to find a unified way to upload code to the RPi, so that we can take a step closer to be able to run code on RPi.
DoD: Code is successfully uploaded to RPi. There should be at least two persons who can do this process.
Car recognition - prestudy
As developers, we want to examine our options for implementing platooning using the provided camera so that we can plan our future software implementation.
DoD: A small presentation for the rest of the group explaining the requirements and possible challenges implementing car recognition.
Write Java method to send steering value to VCU using cansend
As a developer implementing the longitudinal control part of the adaptive cruise control system I need a Java interface to set steering value
Write
Set distance
As developers we want to be able to set the distance for the MOPED-car, so that we can keep a desired distance.
DoD: Set a desired distance for the MOPED-car.
Read
HW communication
Send a self-made plugin to the server
As developers, we want to make sure our own code works in a foreign environment and we know how to use the plugin system.
DoD: our self-made plugin can be used on the MOPED.
Reverse Engineer protocol of cansend operation in existing python files
As a developer implementing the motor and/or steering value Java interface I need to know how the protocol for sending values to the appropriate control unit works using cansend
SW communicatiion
Communication between python and java
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google โค๏ธ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.