Arduino-based hardware-in-the-loop simulation of FRC robot hardware.
RoboSim is a set of hardware and software designed to enable simulation of mechanical hardware on a robot designed for the First Robotics Competition. The goal is to enable mentors and students to design a sufficiently functional plant mode for their robot, connect a fully-constructed electrical board with software, and observe the effects of control inputs on their simulated robot platform. This allows the electrical, software, and mechanical teams to work more in parallel.
RoboSim is build around an Arduino Mega. There are two sets of peripheral boards which expand the arduino's IO capability. The Arduino sends state information to a desktop PC running a plant model, and receives return data which it can feed back to the simulated robot's electrical board. The plant model on the PC is run using GNU Octave (a free Malab alternative). The Octave Plant model simulates the robot hardware (taking only motor and solenoid voltages as inputs). Serial data is transfered between the arduino and Octave for IO with the electrical board.
RoboSim is currently in development. All releases as of now are tested, but considered "alpha".
- arduino_src - source code for the embedded arduino controller inside of RoboSim
- Octave - source code for the Octave-run plant model and GUI
- Eagle - electrical schematics for RoboSim peripheral boards
- PSPICE - electrical simulations for RoboSim peripheral boards
- docs - an increasing collection of documentation.
- Arduino IDE
- Python 3.2 (32bit)- other versions may work but are untested
- PySerial 2.7 win32 py3k -https://pypi.python.org/pypi/pyserial
- GNU Octave + instrument-control package
- http://www.gnu.org/software/octave/download.html
- Once installed, run "pkg install -forge instrument-control" at the Octave command window
- Other Tools
- Eagle PCB design
- LtSpice circuit simulator
- Autodesk Inventor