Our FPGA module attempts to simplify parallelizable tasks that are also highly latency dependent. Most of these capabilities come from the FPGA itself. Programmable logic gates mean that it could do image convolutions, corner detection, non-maximum suppression, image gradients in ways that an average CPU could never imagine.

But, it isn’t good at everything. In fact, for most part of the SLAM pipeline, its quite useless in that regard. The main point of FPGAs is to give us better connectivity through High-speed IO. Compute would be a nice bonus if we’re able to implement it fully.

Modern SLAM algorithms use feature points to make SLAM stable to illumination differences and dynamic objects. The objective of the FPGA is to take as much work as it can on the “frontend” and have a more powerful machine running the backend.