Using LabVIEW vision with Java code

So our team is trying to use the LabVIEW vision code that our LabVIEW team created, to run alongside our Java code. The problem is, is that when I start the LabVIEW runtime at “/usr/local/natinst/labview/lvrt” on the RoboRIO, this error pops up:

Can't find library liblvrt.so.15.0
Make sure this library is installed in your LD_LIBRARY_PATH
search path, or in /usr/lib

Now we tried adding the environment variable “LD_LIBRARY_PATH” on the roboRIO to point to liblvrt.so.15.0, but that didn’t work. After, we copied liblvrt.so.15.0 to /usr/lib from /usr/local/natinst/labview/, our code did not seem to run upon startup without us manually running frcRunRobot.sh. But after running our code, what’s strange is that there was an error for “CPUInformation.cpp” at line 405. Has anyone else here tried this at all? If so, did you come across these errors and how did you get across them?

After some more experimentation, it seems like when you copy liblvrt.so.15.0, the script that continuously runs frcRunRobot.sh gets hung somewhere and stops running until the file is deleted. Also adding the environment variable LD_LIBRARY_PATH to .bashrc (in /home/lvuser) and having it point to liblvrt.so.15.0’s directory doesn’t work.

If I understand what you are saying, you are trying to run both LabVIEW and Java code on the robot simultaneously. I am by no means an expert on the roboRIO, but I am pretty sure that is not supported. I assume it is simply not designed to run two programs at once (someone feel free to correct me if I am wrong). However, if you try hard enough, it may be possible, but you would probably have to do some deep digging into what the roboRIO does when handling your vision code and the robot code. I have a feeling that the error isn’t because of a reconfiguration, more that it is handling an unexpected situation.

While that does not solve your problem, I’ll share what we did this year. I used a LabVIEW dashboard to process vision, connecting directly to an axis IP camera (you would have to stream the USB camera from the roboRIO if you are using the life cam or another USB camera). It runs all the vision code on the driver station laptop, and sends back essential data to the robot about the targets’ centers of mass, widths, etc. I haven’t had any noticeable issues with latency, since the camera streams straight over the network to the dashboard and then just sends data over NetworkTables to the Java robot code.