Chris’ Status Report for 02/17/2024

What I did last week

Repository set up.  Initialized simulator in python and RRT in C.  Learned and used ctypes to facilitate calls to the RRT implementation.

Researched motion planning algorithms.

What I did this week

I began the week by working on the octree design and implementation.  This implementation is almost done therefore I have begun to transition to the baseline RRT implementation.

My teammates and I created an outline of the interface between the perception module (real & simulated) and the motion planning module. Now that we have this, I have continued work on the perception simulator and on the initialization of our motion planning module’s data structures.  I did research on efficient ways of compressing the motion planning data structures for transmission to and for use by the FPGA.  Key ideas involve one time initialization of the state space and only transmitting deltas in the collision data.  The goal is to create an efficient representation of the state space, allow for massive parallelism during search, and efficient reconstruction of paths.  This design decision will heavily impact our micro-architecture and work is still ongoing.

One major step that was still unclear going into this week was how we would have our robot actually follow the paths we generated.  RRT generates a path between two points in the state space.  This path is a list of edges and will likely need to be smoothed before the robotic arm can follow it.  Not only this but RRT does not account for the sweep of the arm in the state space.  We also must generate the correct controls for the robotic arm to follow the path.  In order to handle this, I spent this week researching these problems and found an open source library to do inverse-kinematics.  This along with the texts I have compiled will allow us to address the aforementioned issues.

I also helped created the design presentation slides.

What I plan to do next week

Continue work on the baseline RRT implementation

Continue work on the perception module simulator.

Begin work on path pruning, smoothing, and optimization

Begin work with inverse-kinematics library to check path feasibility and generate robotic arm control signals.