Showing posts with label Chess Robots. Show all posts
Showing posts with label Chess Robots. Show all posts

Monday, April 8, 2013

National Robotics Week (and a quick note on MakerFaire)

It's National Robotics Week! And apparently, there is just TOO MUCH ROBOTICS for just one standard week, because NRW spans 9 days, and the website lists events pretty much all month.

There are a number of events in the Bay Area. First up is the Robot Block Party at Stanford from 1-6PM on Wednesday -- there are usually a ton of bots around in a somewhat impromptu show and tell. While I don't think I'll be pulling Maxwell out for this event, I'll probably be there for the later part of the event. Oh, and it's FREE.

Also this week is an interesting event by on Thursday at SRI, put on by Xconomy: Robots Remake the Workplace. Including a keynotes speech from Rodney Brooks.

April 19-21, it's RoboGames! Maxwell will be making an appearance there for sure, likely in the Silicon Valley HomeBrew Robotics Club booth.

And finally, Maxwell will battle PR-Lite at MakerFaire 2013. In chess, that is. That's right, I've dusted off the old AAAI Chess code and the PR-Lite guys have been working to adapt it to their robot. I actually ran into some major issues upgrading the chess code to Groovy as many of the PCL nodelets were not ported forward during the catkinization. So, I took this as an opportunity to rewrite the whole board/piece detection pipeline into a single node that is way faster than the old one, taking into account a number of better heuristics.


I'm still working to integrate MoveIt instead of arm_navigation, but the current code is posted now on github.

Thursday, August 11, 2011

Maxwell Wins at AAAI

Maxwell won 1st place in the 2011 AAAI Small Scale Manipulation Challenge! Video and photos soon video soon.

-Fergs

Sunday, April 3, 2011

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.

-Fergs