Compiled code uploading vs PC

I hope this is the right category

I have a few questions about JAVA directory structure and the process of compiling and distributing code once compiled. They’ll be separate posts but interrelated. If it seems I’ve missed something obvious in the docs, I’m sorry but there seems to be a lot to grasp for people new to the program.

This one is about where the code goes once compiled and the interaction with the FRC Driver Station.

In my readings, it seems that the code we compile is uploaded to the Roborio and once loaded will interact with the FRC Driver Station and the FRC Driver Station does not change. Once started, it connects to the robot over WIFI and ethernet and the human driver then takes over control of the robot. If that is true, I wonder about adding new/updated subsystems to the robot and being able to control them.

I’ve been using a ROMI robot to learn about the basic programming and I know(?) the communications are different from “normal” robot control but I’m not sure I understand the regular robot system’s block diagram. Is there an overview block diagram that I’ve missed?

Thanks for any help you can offer

Correct - Driver Station is always the same for everyone. Lots of things on the roboRIO are the same too (NI provides many things running there). The compiled java code (.jar) that you supply is one component which you make unique for your robot.

Maybe, though it depends on what you mean by “subsystems”. Anything you can add inside of your user code is the easiest way to do this. There are other ways (“it’s just software!”), but I’d tend to say don’t get creative here unless you’ve got a good reason to be creative.

Yes. ROMI is… almost… completely different.

In ROMI, the code runs in simulation on your computer - no RIO involved. The ROMI-specific portion hooks the simulation to send additional messages to get the simulation to interact with ROMI hardware.

Personal opinion: the ROMI tool is really great for understanding how to type code, and seeing the impact of that code in the real world. It’s not good at driving understanding as to how the overall architecture of FRC robot control works - just not in scope. IE - don’t get too hung up on the differences.

Thanks for the reply. I realize that the ROMI is quite different and limited in it’s capabilities but without access to the old robot and the roboRIO, it’s a good start. In our room, there’s no space run the full sized one (even in the school halls) so it gives new members a chance to drive in a very small area. One of last year’s drivers said the response time to the joystick was very similar to the big robot so even from just driving, it offers value (and it’s a lot cheaper than buying just a roboRIO) to test your control circuitry. :slight_smile: ) I know I learned a lot about the system setup (still more to go) so I thought it was a good use of my money. Used Win 10 laptop, ROMI and pi3B were less than a RIO.

Again thanks for the response