Nease 2010 code

10 replies [Last post]
matthewbot
Title: YAC
Joined: 04/12/2009
Posts:
BotPoints: 94
User offline. Last seen 12 years 10 weeks ago.

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

--
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/

matthewbot
Title: YAC
Joined: 04/12/2009
Posts:
BotPoints: 94
User offline. Last seen 12 years 10 weeks ago.

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/

Jeremy Rand
Jeremy Rand's picture
Title: Botball Youth Advisory Council
Joined: 04/03/2009
Posts:
BotPoints: 1168
User offline. Last seen 7 years 18 weeks ago.

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

PiPeep
PiPeep's picture
Title: RocketBot
Joined: 07/19/2009
Posts:
BotPoints: 170
User offline. Last seen 8 years 28 weeks ago.

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.

matthewbot
Title: YAC
Joined: 04/12/2009
Posts:
BotPoints: 94
User offline. Last seen 12 years 10 weeks ago.

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/

jake harvey
Title: NooBot+
Joined: 07/10/2010
Posts:
BotPoints: 6
User offline. Last seen 12 years 1 week ago.

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

jake harvey
Title: NooBot+
Joined: 07/10/2010
Posts:
BotPoints: 6
User offline. Last seen 12 years 1 week ago.

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

jake harvey
Title: NooBot+
Joined: 07/10/2010
Posts:
BotPoints: 6
User offline. Last seen 12 years 1 week ago.

scratch that last one again. Why did you write it in Lua? Jsut because its different and more universal?

PiPeep
PiPeep's picture
Title: RocketBot
Joined: 07/19/2009
Posts:
BotPoints: 170
User offline. Last seen 8 years 28 weeks ago.

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.

PiPeep
PiPeep's picture
Title: RocketBot
Joined: 07/19/2009
Posts:
BotPoints: 170
User offline. Last seen 8 years 28 weeks ago.

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.

Jeremy Rand
Jeremy Rand's picture
Title: Botball Youth Advisory Council
Joined: 04/03/2009
Posts:
BotPoints: 1168
User offline. Last seen 7 years 18 weeks ago.

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