Real-time Simulink Abstraction Layer

National Instruments Compact Rio

During January and February of 2009 I student mentored a FIRST robotics group. FIRST (For Inspiration and Recognition of Science and Technology) is an organization whose goal it to promote STEM majors primarily to pre-college aged students. Each year there are four contests splitting a range of six year olds to high school seniors. Teams have six weeks to create a robot capable of competing in a game. This past year the goal was for teams to shoot balls into opponents’ trailers. It features a limited autonomous portion (around 30 seconds) and a remote controlled portion (around 2 minutes).

At the beginning of build season each team is given a kit of parts. For the high school competition this includes a National Instruments Compact Rio (cRio). This is a high tech data acquisition and controls device capable of performing in situations far outside the reach of FIRST. Programs can be written in LabVIEW and C++. Many libraries and some startup examples are provided to make using the cRio easier. 

As part of this lab we are trying to leverage the power of a cRio for our own work. Compared to using the device within FIRST, it is much more complicated to setup. First, examples provided by the competition cannot be used directly because the version of LabVIEW in the lab is different than the version provided. Because the cRio does not communicate using Matlab/Simulink commands, the NI Simulation Interface Toolkit must be used. This sends data to or from LabVIEW from Matlab. This data is transformed into signals sent to the cRio.

There have been compiling issues. These may be related to former versions of LabVIEW (specifically the FIRST 2009 version).

There are certain procedures required to work between Simulink, LabVIEW, and the cRio. These can be split into different sections: Working between Simulink and LabVIEW, interfacing the cRio with LabVIEW, and connecting Simulink to the cRio. The first two parts are documented in video form and can be accessed on my webpage [1]. I have had difficulties with the third part. Most of my efforts were done while I was having compiler issues. This is a project somebody else will be working on.

Introduction to using the Compact Rio with Labview

Simulink to LabVIEW walkthough using the Simulation Interface Toolkit