This week the team worked on integration and getting the system to work completely end to end. This mostly included refining the path planning algorithm to be more consistent and resistant to drip in the data.
In particular, the vehicle mechanics are build in such a way that the car tends to one direction rather than straight. This was due to the wheels of the vehicles not being completely perpendicular. In order to mitigate the issues with physical vehicle drift we played around with PID control to try to maintain wheel velocity at a constant. On top of this we also added an acceleration period to allow the vehicle to build up speed instead of instantly trying to change from one speed to another. This produced much more consistent results and helped to reduce drift but we still saw a little bit of side drift. We also tried to map voltage to our motor velocity scale so that we could get better accuracy for odometry at a given battery voltage (ex: 8v)
We also integrated the object detection algorithm into the flow of the system. For this when we detect an object we report the objects location to the path planner. The planner then adds the obstacle to the map and runs A* algorithm to get a new path for the vehicle to take. The camera lens is also not quite at the center of the vehicle so we have to account for this by adding a slight offset in the Y direction. For now the system gives reasonable results; however, we would still like to see more consistency.
The next week we would like to add additional obstacles, tighten up our systems to be more robust and consistent and add the second vehicle to fully test communication and coordination capabilities.