This week was spent really finishing the design and making changes to the requirements. We spent a majority of the time massaging the budget constraint and choosing parts that would satisfy it.
Performed calculations for parts finalizing
Finalized the CAD design and finished the BOM for the chassis
Ordered all the parts on our BOM
Finished the design presentation and have practiced
Schedule Progress
We are on schedule for our project. We ordered parts and they will be arriving by the end of next week.
While we wait for parts we will begin to build out the software systems in simulation.
Deliverables for Next Week
Finish proof of concept for collision avoidance algorithm
Finish the design presentation and practice giving it using the feedback from the last presentation
This week, I finished up the global planner implementation and tested it.
The global planner batches orders to plan for the robot’s waypoints, and can take in orders online.
I tested it by writing a “simulated” robot ROS node that takes waypoints and sends back location updates to make sure that the global planner node works. It just instantaneously teleports to the waypoint, essentially.
I plan to make the robot a bit more rigorous by having it simulate “driving” to the waypoint with ROS::Duration::sleep.
The global planner might be done, but there’s a lot of things I can do to make it more robust.
I know how to make it give a better route by returning the minimum route across every searched path, but that may drastically increase the runtime as it must search ALL paths and not just return the first one.
I feel like this is optimal, and I thought about proving it by inducting on the list of orders somehow, but it seems pretty hard to prove that this is optimal.
I discovered some dynamic programming potential here, by memoizing a hash of the robot state to take advantage of any repeated searches (however, I have to write a hash function for the robot state first haha).
Worked on design presentation and helped with parts ordering
Progress:
I am currently on-schedule with my tasks.
Next week’s deliverables:
Next week, I want to write some more rigorous tests and make it an optimization problem by minimizing the overall distance + make it DP.