My favorites | Sign in
Project Home Wiki Issues Source
READ-ONLY: This project has been archived. For more information see this post.
Project Information
Members
Featured
Wiki pages

Easy Robot Programming (ERL) is a replacement programming system for FRC robots.

Features

  • Uses Python as the programming language to make programming considerably easier and more fun.
    • We use the Python provided by the RobotPy project done by Peter Johnson of FRC Team 294, et al, and which is offered as an open source project here. This gives us Python running under vxworks on the Compact RIO. Their hard work is greatly appreciated!
  • Completely replaces the WPILib with a counterpart written entirely in Python.
  • Uses a web server interface to provide a ProgrammingUI for the robot.
    • This is somewhat like the Robot Builder that FRC provides, but is not a template system. Rather, the programmer writes the entire application through the web interface, which generates the Python application file (robot.py). The programmer does not touch the generated file (nor does he have to even read it).
      • Thus there are no problems when updating the program.
    • The programmer does not have to remember how to initialize the various classes provided in the library. When he selects a class (from a list), he is prompted for all of the initialization parameters, including a short help text explaining what each parameter does.
      • This makes it easy to support more initialization parameters, to provide library objects that are more capable than their WPILib counterparts.
  • Uses non-preemptable Python generators for multi-tasking rather than preempting operating system threads so that no data synchronization is required within the code.
    • This, plus the virtual elimination of all boilerplate code due to being written in Python, helps to make the RobotLib code much easier to read than the WPILib code.
  • Rather than the cumbersome Network Tables that the WPILib uses, the RobotLib logs all sensor data (including joystick data sent from the driver station), as well as all actuator settings (e.g., motor controllers) to the PC, every 20 mSec, to be accumulated permanently for later inspection. It uses IPython notebooks and matplotlib to provide access to the data for data analysis to understand how your robot is performing and be able to gain better control over it. All of this data is logged all of the time, completely automatically without any effort required by the programmer.
  • Provides a RobotSimulator that runs all of the Python code locally on your PC, by stubbing out the low-level NetworkCommunications and ChipObject routines. This is driven from a simple time-based script indicating, e.g., when joystick buttons are pressed and other sensor values. It does not have any graphics, and does not attempt to reproduce the robots movements accurately. Rather, it provides a way to test your programs prior to placing them on your robot. The simulator uses the same logging facility as the robot does to allow you to examine what happened during the simulated run.

Installation

See SettingUpWindows.

Powered by Google Project Hosting