What I did last week
Built and tested the robotic arm
Worked on RRT octree implementation
What I did this week
This week I finished the RRT implementation on the octree. Upon finishing this implementation and further discussions with my teammates, we decided that a dense matrix implementation would be ideal for the FPGA. For this reason I developed functions to compress the octree into a dense matrix. I then implemented RRT on the dense matrix. These backend implementations are abstracted away in the perception simulator. Swapping out the octree and dense matrix backends is as simple as toggling the “COMPRESSED” macro in the header file.
While the current RRT implementations are operational, they are not optimized. My current focus has been on getting a baseline implementation working. I have added some notes to our code base and have developed some ideas on future optimizations. I believe that the largest speedup will be found in optimizing search for the nearest neighbor to a specific voxel. This computation is highly parallelizable and there are some heuristics about the order in which the state space is traversed that should be followed.
I have begun implementing A* for the dense matrix backend and I am targeting completing it by the end of the weekend. When I finish A*, the baseline implementation of our motion planning module will be complete. From here I will transition to work on inverse-kinematics and arm control modules.
What I plan to do next week
Finish implementing A* on dense matrix
Continue work on inverse kinematics and arm control