Omkar’s Status Report for 11/5

This week, we met on Sunday to work on getting the robot to follow a path from the path planner. We were able to tune PID values such that the robot could follow the path with reasonable accuracy (may have to do more tuning later though). We noticed that the communication latency was causing our frame rate to drop from ~25fps from the CV to ~5fps. I prototyped using socket communication for lower latency, but ended up running into out of memory issues on the ESP8266 due to malloc overwriting the heap. I switched to writing a multi-threaded application, where the main program does the CV, path planning, and controls generation, and there are separate children threads that take the controls commands and asynchronously send the commands to the robots. This brought our frame rate up to ~14fps. We also noticed that the cubic interpolation caused large changes in theta error at the waypoints due to an aggressive orientation change. Saral and I worked to debug this and switch to a cubic hermite spline interpolation with a downsampled path on the straights to arrive at a more gradual interpolated trajectory.

Prithu’s Status Report for 11/5

This past week we met on Saturday to work on getting the robot to properly follow a path from the path planner, pick up, and drop off the pallet. Through this process, I found several bugs that needed to be addressed. 1) The collision checking being performed was extremely inefficient and was causing the planner to take much longer than expected. 2) The planner did not have the ability to turn counter-clockwise. 3) A straight-line runway was needed as the robot was approaching the pallet to prevent it from turning too close to it and bumping. 4) New costs were assigned to differentiate between turning and going straight and encourage the robot to drive in a straight line rather than turn. All of these bugs were fixed and implemented for the demo on Monday.