Hey guys, I set our botball repository to public on github since a couple of people showed some interest in seeing our GCER code. I'll also do my best to answer questions on how and why it works. In the future I may also package up the C vision code in a KISS-C compatible format, giving access to both our blob tracking and our grid tracking systems. I still need a bit of a Botball break however, so it may be a bit of time before I get around to it. Anyway, between our Botball-2010 repository, the cbclua repository, and the nhs-patchset repository, every line of code running on our GCER bots is now open sourced. I hope it proves useful to many generations of future botballers!
Botball-2010: http://github.com/matthewbot/Botball-2010
CBCLua: http://github.com/matthewbot/CBCLua
NHS Patchset: http://github.com/matthewbot/cbc
Oh and if anyone from KIPR finds this and looks at the vision code, I just gave the blob tracking code a glance over and realized the merging logic doesn't handle a certain case... and I think it actually explains a few of our oil slick mis-reads. Thats life for ya.
--
Any intelligent fool can make things bigger, more complex, and more violent. It takes a touch of genius -- and a lot of courage -- to move in the opposite direction.
Albert Einstein
Project Quadcopter: http://quadcopter.wordpress.com/
Nice, thanks for sharing! This should be fun to look through over the next few months.
-Jeremy Rand
Senior Programmer, Team SNARC (2012-2013), Norman Advanced (2010-2011), Norman HS (2008-2009), Norman North (2005-2007), Whittier MS (2003-2004)
2012-2013 VP of Tech, 2011 President, Botball YAC (2009-2013)
Mentor, Alcott and Whittier MS
It is great to see so many people embracing F/OSS this year! Thank you for this code. It looks pretty clean. I hope you don't mind if I try to port the motor easing code over to CBCJVM next year.
Good luck with the Smooth code... it ended up being a total hack job in an attempt to get it to work on time. As for embracing open source software.. I still encourage everyone to keep their competition code to themselves but answer questions, write papers, and give presentations, to promote self discovery and discourage new teams grabbing off the shelf solutions to common botball problems. I'm giving this up only because I have no further use for it, because there are several IMO unique things in here that I didn't get a chance to write or talk about, and because of the fact that none of it will integrate directly into anyones else's code, being that it is written in Lua. Feel free to port it to CBCJVM, but I'll be much happier when someone learns from it, improves its accuracy and/or code quality, and gives a paper or talk on ways to make robots drive more accurately.
--
Any intelligent fool can make things bigger, more complex, and more violent. It takes a touch of genius -- and a lot of courage -- to move in the opposite direction.
Albert Einstein
Project Quadcopter: http://quadcopter.wordpress.com/
Thansk for sharing! I was wondering how you coded the create without the CBC. Now I might understand :) good job at GCER and on your paper btw.
-Jake Harvey, ESD robotics
Ok scratch that; I don't understand at all. Sorry I'm new to programming, but what language are you using? It looks pythony?
-Jake
scratch that last one again. Why did you write it in Lua? Jsut because its different and more universal?
Jake Harvey, I can't speak for Matt with Lua, but I know the reason I use Java is because it is an OOP language and therefore more easily manageable, and therefore faster to develop for. I would assume the same here.
To answer your other question, I believe either Norman or Nease wrote a paper one year about running the Create without a CBC. They use the Create's scripting support, described in the Create manual (page 13) From what I understand, coding the Create without the CBC is very limited.
Yes, I wrote two papers on using the Create without a CBC. They're both posted on this forum (Create Open Interface Scripting). You can actually get a surprising amount of use out of this technique in Botball, but your strategy needs to be well-suited to it. In general, if your strategy calls for a simple additional robot that needs to move fast but not be very smart, Create scripting is a good fit.
There's some additional research underway at Norman (my team) which might improve the feature set of Create scripting. But the research is still in early stages, so I can't guarantee anything. Keep an eye out for a GCER paper.
-Jeremy Rand
Senior Programmer, Team SNARC (2012-2013), Norman Advanced (2010-2011), Norman HS (2008-2009), Norman North (2005-2007), Whittier MS (2003-2004)
2012-2013 VP of Tech, 2011 President, Botball YAC (2009-2013)
Mentor, Alcott and Whittier MS