@@ -14,19 +14,19 @@ Goal: Create a semi autonomous permocar using rust on an raspberry pi, and ardui
## Grading
### 3: Control the permocar remotely:
#### 3: Control the permocar remotely:
Create a multithreaded comminucations software running on a raspberry pi, with key features:
* One thread (Tracker) that can communicate with an arduino over a serial interface, e.g. USB, and other threads using communicators where neccessary. The main purpose of this thread is to continuously update the position, bearing, etc of the permocar and share it with threads that poll for it.
* One thread (Controller) that can receive data over tcp (from the remote operator) and also poll the tracker for current speed using rust communicators. This thread will then update the neccessary voltage using some controller (e.g. P, PI, or PID).
* Examine if rust can control the motor drivers directly using GPIO.
### 4: Control the permocar remotly and map the surroundings using a lidar (SLAM: Simultaneous localisation and mapping).
#### 4: Control the permocar remotly and map the surroundings using a lidar (SLAM: Simultaneous localisation and mapping).
Extend the program with a thread that can poll a SICK LMS311 (lidar) for data, and map that data into an array.
This thread will also poll the tracker for position, heading, etc.
### 5: Semi autonous driving and localisation.
#### 5: Semi autonomous driving and localisation.
After driving the permocar manually around to create a map it should be able to get from its current position, point A, to a given reachable point on the map, point B.
A pathfinding algorithm may be used, such as A-star.