Localizing the Chess Board

The AAAI Small Scale Manipulation challenge is just a few months away now. I've been working on a slightly different approach to chess board localization over the past few days. We had previously been using a Canny edge detector, followed by OpenCV's probabilistic Hough transform to find lines. From this, we iterated over hypothesis about which lines corresponded to particular lines on the board.

Recently, I had a different thought: forget the lines, let's look at points alone. I'm now finding the intersections of the lines, projecting those points to 3d using the point cloud, and then doing ICP against an ideal set of intersections:

You can see fairly large red spheres inserted where each of the detected intersections is, and a TF frame being localized into the lower corner of the board.

This is working OK so far. One issue is that the ICP is occasionally deciding that it has converged when it is actually quite far off. I think the next step will be creating a different method for finding the correspondence hypothesis.