uwreact / frc_control

ROS metapackage enabling FRC teams to use ROS on their robots
BSD 3-Clause "New" or "Revised" License
5 stars 0 forks source link

Upload to RIO #64

Closed matthew-reynolds closed 5 years ago

matthew-reynolds commented 5 years ago

Pull Request

Closes #9, #10, and #30. In doing so, also closes meta-issue #7.

Adds scripts to upload the ROS environment to the roboRIO, as well as to deploy user code to the roboRIO. When deploying user code, a launch file is specified. The system is set up such that the normal robot code command is replaced with the roslaunch command. This allows code to be started, stopped, and restarted using the normal FRC mechanisms. That means code will start automatically at boot, will restart whenever it crashes, can be restarted using the Restart Robot Code button on the driver station, etc.

In getting this upload process ironed out, I also tweaked the way the cross-compilation works. All linked libraries are linked dynamically except for vendor libraries, which are linked statically. This aligns with how the gradleRIO tools compile the code. Additionally, libraries are uploaded to the same directories as a standard gradleRIO code deploy. Overall, I moved to mimic the key behaviours of the standard FRC programming procedure as much as possible in order to minimize complexity.

There are still improvements which can/should be made to this uploading process. However, the current iteration works and seems reliable from my testing, so I'd like to get it landed and I will open up follow-up issues to address further improvements such as centralizing parameters like team number, launch file, etc to a config file rather than specifying everything on the command line every time.

Contribution Checklist

Change Checklist