This is a really good reason, especially for a rookie team.
However, I just learned that it’s Java ME, which means some of the stuff we want to use (such as certain linear algebra libraries for AI) may not be compatible.
Many things are hard to find in FRC’s Java – you have to know where to look to find the network API, for instance. However, I found out (after build season was over) that it is there.
With respect to the linear algebra libraries, that is a concern. However, I don’t think it’s a large concern – the vast majority of teams don’t use non-FRC libraries of any sort.
I’ve taken a look at C/C++, but I’m not sure if it’s doable under Linux.
I recall there being a project to compile C++ for FRC on Linux, but it’s not done by FIRST, so I’d recommend against it (you’re at the mercy of whoever’s putting it together; if you choose to do it yourself, it’s just a lot of extra work).
I only saw mentions saying that Java can be developed under Netbean under Linux (Anyway to change that to eclipse by any chance?). Is Java the best choice here?
We did all of our programming under Linux – Java in NetBeans worked fine without the need for any tweaking. If Linux is all you have (or are willing to use), then it’s a fine choice.
The programming environment uses NetBeans plugins – I don’t think it’s possible to use Eclipse instead.
Since our programming team (which includes myself as the lead programmer) has little experiences on “bare metal”, how should we gain more experience? Is it beneficial to start something such as a mock interface and some code (maybe some algorithm such as object tracking instead actual control)?
Thanks for any input.
Other than learning the language (which you already know), there’s not much I can think of that would help you learn this system. You can look through last year’s WPILib documentation, code from other teams (C++ and Java’s versions of WPILib are virtually identical), and download the plugins for last year. The development environment set up for teams can hardly be described as “bare metal” (there’s a lot of libraries and virtually no low-level programming with this control system), so learning embedded programming is not necessary.
Good luck!