Skip to content

Design Goals

Roshan Ravi edited this page Dec 27, 2018 · 4 revisions

This page enumerates some of the key goals of this project.

  • Remote development

    • It would be really cool if robot code could be designed iteratively, while working in one's preferred development environment. The idea here is that the RoboRIO is loaded with generic code that provides a remote procedure call interface to all of the low-level functionality. The robot control code, then could run remotely, communicating via Wifi or ethernet during development. The robot control code would issue remote procedure calls to the RoboRIO, and the RoboRIO could also potentially issue remote procedure calls back to the control code upon any asynchronous events occurring on the RoboRIO.
  • Simplified development

    • There should be high-level functions that allow the novice (whether novice at robot programming, or novice at JavaScript and NodeJS) to get started quickly, and then to customize iteratively.
  • Easy debugging

    • With the Remote development feature described above, since the robot control code is running in NodeJS on the development computer, it would be easy to serve a web page to a browser, that provides control state. This may be instead of the monitoring features available on the Driver Station, or in addition to. Much of this could be automated and controlled via configuration.
  • Minimal Learning Curve / In-depth Documentation

    • As far as BMHS goes, most of our CS curriculum revolves around Java and Python, so shifting to JavaScript could increase the learning curve for certain students while also alienating them from other pre-existing resources in the FRC community. This could be mitigated with well-written documentation.
Clone this wiki locally