4 ms·
I'm curious why Java was chosen as the language of First Robotics? Why not use Racket for example.
by djmips 7y ago
I'm curious why Java was chosen as the language of First Robotics? Why not use Racket for example.
- deckeraa 7y agoThere is an official controller that all robots need to use per the rules. It's (or at least was ~5 years ago when I last competed) a National Instruments cRIO. I think this decision was made based on NI giving a large cost break on the units. Supported languages for the cRIO include LabView and Java, making those two the prominent languages that teams use.
- pacoWebConsult 7y agoIt has since been changed to use the NI RoboRio https://www.andymark.com/products/ni-roborio https://www.andymark.com/products/ni-roborio C++ was also always supported but from the one year we used that I can guarantee our team's dev speed was much less than LabVIEW. Something about the data-flow UI and live probing of values and VI controls view made it so much more intuitive to develop a robot with. We had a mecanum drive that we developed a dual layer PID system to control individual wheel power using a PID, but also a PID control on wheel rate. The effect was a super smooth but extremely fast control scheme that also had the effect of the robot pushing back if it were moved without user input. Great application in 2014 where the field was entirely open and physical defense was key, but I would have preferred to have normal wheels and all of the traction benefits that come with them that year instead.
- gurustave 7y agoThe Official Supported languages, since 2005 are LabVIEW, Java, and C++. There are also unofficial languages available including Python, Go, Rust and I'm sure a couple more (generally these run on top of the JRE). This is mainly due to the current controller for the FRC Competition being a National Instruments RoboRIO controller.
- auscompgeek 7y agoFor those not in the know, the NI roboRIO is a Xilinx Z-7020 (ARM Cortex-A9 SoC with FPGA) and runs GNU/Linux. As long as your language can target ARMv7 Linux and can call into C libraries, it'll run on the roboRIO.
- elil17 7y agoFRC isn’t meant to be a intro to programming. The kids writing the robot systems have to know their shit. Some teams will teach new members in a good first language like Racket or Python, but when it comes to actually writing robot code the vast array of libraries designed for the RoboRIO available in Java and LabVIEW make them the only viable options.