Log in

View Full Version : GRIP Issues with RPi2


ktrod
03-02-2016, 20:01
Following this tutorial (https://github.com/WPIRoboticsProjects/GRIP/wiki/Running-GRIP-on-a-Raspberry-Pi-2) for setting up GRIP on a Raspberry Pi 2, I was able to successfully deploy the required libraries and the grip.jar and project.grip into my RPi2 running Ubuntu Mate 15.10.1. However, when attempting to run GRIP with the provided command for running GRIP, env LD_LIBRARY_PATH=/home/team1073/vision/grip:LD_LIBRARY_PATH java -jar /home/team1073/vision/grip/grip.jar /home/team1073/vision/grip/project.grip, I receive the following uncaught exception

Loading Dependency Injection Framework
Jan 30, 2016 11:46:08 PM java.util.logging.LogManager$RootLogger log
CONFIG: Configuration done.
Jan 30, 2016 11:46:09 PM java.util.logging.LogManager$RootLogger log
CONFIG: GRIP Version: 1.1.1
platform: /Linux/arm/
Jan 30, 2016 11:46:28 PM edu.wpi.grip.core.GRIPCoreModule onThreadException
SEVERE: Uncaught Exception on thread Thread[main,5,main]
com.google.inject.ProvisionException: Unable to provision, see the following errors:

1) Error injecting constructor, java.lang.UnsatisfiedLinkError: /tmp/libNetworkTablesJNI3879377472892182855.so: /tmp/libNetworkTablesJNI3879377472892182855.so: cannot open shared object file: No such file or directory
at edu.wpi.grip.core.operations.networktables.NTManag er.<init>(Unknown Source)
at edu.wpi.grip.core.operations.networktables.NTManag er.class(Unknown Source)
while locating edu.wpi.grip.core.operations.networktables.NTManag er
for field at edu.wpi.grip.core.Pipeline.ntManager(Unknown Source)
at edu.wpi.grip.core.Pipeline.class(Unknown Source)
while locating edu.wpi.grip.core.Pipeline
for field at edu.wpi.grip.core.serialization.Project.pipeline(U nknown Source)
at edu.wpi.grip.core.serialization.Project.class(Unkn own Source)
while locating edu.wpi.grip.core.serialization.Project
for field at edu.wpi.grip.core.Main.project(Unknown Source)
while locating edu.wpi.grip.core.Main
Caused by: java.lang.UnsatisfiedLinkError: /tmp/libNetworkTablesJNI3879377472892182855.so: /tmp/libNetworkTablesJNI3879377472892182855.so: cannot open shared object file: No such file or directory
at java.lang.ClassLoader$NativeLibrary.load(Native Method)
at java.lang.ClassLoader.loadLibrary0(ClassLoader.jav a:1938)
at java.lang.ClassLoader.loadLibrary(ClassLoader.java :1821)
at java.lang.Runtime.load0(Runtime.java:809)
at java.lang.System.load(System.java:1086)
at edu.wpi.first.wpilibj.networktables.NetworkTablesJ NI.<clinit>(NetworkTablesJNI.java:55)
at edu.wpi.grip.core.operations.networktables.NTManag er.<init>(NTManager.java:50)
at sun.reflect.NativeConstructorAccessorImpl.newInsta nce0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInsta nce(NativeConstructorAccessorImpl.java:62)
at sun.reflect.DelegatingConstructorAccessorImpl.newI nstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Construc tor.java:422)
at com.google.inject.internal.DefaultConstructionProx yFactory$1.newInstance(DefaultConstructionProxyFac tory.java:86)
at com.google.inject.internal.ConstructorInjector.pro vision(ConstructorInjector.java:105)
at com.google.inject.internal.ConstructorInjector.con struct(ConstructorInjector.java:85)
at com.google.inject.internal.ConstructorBindingImpl$ Factory.get(ConstructorBindingImpl.java:267)
at com.google.inject.internal.ProviderToInternalFacto ryAdapter$1.call(ProviderToInternalFactoryAdapter. java:46)
at com.google.inject.internal.InjectorImpl.callInCont ext(InjectorImpl.java:1103)
at com.google.inject.internal.ProviderToInternalFacto ryAdapter.get(ProviderToInternalFactoryAdapter.jav a:40)
at com.google.inject.internal.SingletonScope$1.get(Si ngletonScope.java:145)
at com.google.inject.internal.InternalFactoryToProvid erAdapter.get(InternalFactoryToProviderAdapter.jav a:41)
at com.google.inject.internal.SingleFieldInjector.inj ect(SingleFieldInjector.java:54)
at com.google.inject.internal.MembersInjectorImpl.inj ectMembers(MembersInjectorImpl.java:132)
at com.google.inject.internal.ConstructorInjector.pro vision(ConstructorInjector.java:114)
at com.google.inject.internal.ConstructorInjector.con struct(ConstructorInjector.java:85)
at com.google.inject.internal.ConstructorBindingImpl$ Factory.get(ConstructorBindingImpl.java:267)
at com.google.inject.internal.ProviderToInternalFacto ryAdapter$1.call(ProviderToInternalFactoryAdapter. java:46)
at com.google.inject.internal.InjectorImpl.callInCont ext(InjectorImpl.java:1103)
at com.google.inject.internal.ProviderToInternalFacto ryAdapter.get(ProviderToInternalFactoryAdapter.jav a:40)
at com.google.inject.internal.SingletonScope$1.get(Si ngletonScope.java:145)
at com.google.inject.internal.InternalFactoryToProvid erAdapter.get(InternalFactoryToProviderAdapter.jav a:41)
at com.google.inject.internal.SingleFieldInjector.inj ect(SingleFieldInjector.java:54)
at com.google.inject.internal.MembersInjectorImpl.inj ectMembers(MembersInjectorImpl.java:132)
at com.google.inject.internal.ConstructorInjector.pro vision(ConstructorInjector.java:114)
at com.google.inject.internal.ConstructorInjector.con struct(ConstructorInjector.java:85)
at com.google.inject.internal.ConstructorBindingImpl$ Factory.get(ConstructorBindingImpl.java:267)
at com.google.inject.internal.ProviderToInternalFacto ryAdapter$1.call(ProviderToInternalFactoryAdapter. java:46)
at com.google.inject.internal.InjectorImpl.callInCont ext(InjectorImpl.java:1103)
at com.google.inject.internal.ProviderToInternalFacto ryAdapter.get(ProviderToInternalFactoryAdapter.jav a:40)
at com.google.inject.internal.SingletonScope$1.get(Si ngletonScope.java:145)
at com.google.inject.internal.InternalFactoryToProvid erAdapter.get(InternalFactoryToProviderAdapter.jav a:41)
at com.google.inject.internal.SingleFieldInjector.inj ect(SingleFieldInjector.java:54)
at com.google.inject.internal.MembersInjectorImpl.inj ectMembers(MembersInjectorImpl.java:132)
at com.google.inject.internal.ConstructorInjector.pro vision(ConstructorInjector.java:114)
at com.google.inject.internal.ConstructorInjector.con struct(ConstructorInjector.java:85)
at com.google.inject.internal.ConstructorBindingImpl$ Factory.get(ConstructorBindingImpl.java:267)
at com.google.inject.internal.InjectorImpl$2$1.call(I njectorImpl.java:1016)
at com.google.inject.internal.InjectorImpl.callInCont ext(InjectorImpl.java:1092)
at com.google.inject.internal.InjectorImpl$2.get(Inje ctorImpl.java:1012)
at com.google.inject.internal.InjectorImpl.getInstanc e(InjectorImpl.java:1051)
at edu.wpi.grip.core.Main.main(Main.java:41)

2) Error injecting constructor, java.lang.NoClassDefFoundError: Could not initialize class edu.wpi.first.wpilibj.networktables.NetworkTablesJ NI
at edu.wpi.grip.core.operations.networktables.NTManag er.<init>(Unknown Source)
at edu.wpi.grip.core.operations.networktables.NTManag er.class(Unknown Source)
while locating edu.wpi.grip.core.operations.networktables.NTManag er
for field at edu.wpi.grip.core.Pipeline.ntManager(Unknown Source)
at edu.wpi.grip.core.Pipeline.class(Unknown Source)
while locating edu.wpi.grip.core.Pipeline
for field at edu.wpi.grip.core.serialization.StepConverter.pipe line(Unknown Source)
while locating edu.wpi.grip.core.serialization.StepConverter
for parameter 0 at edu.wpi.grip.core.serialization.Project.initialize (Unknown Source)
at edu.wpi.grip.core.serialization.Project.class(Unkn own Source)
while locating edu.wpi.grip.core.serialization.Project
for field at edu.wpi.grip.core.Main.project(Unknown Source)
while locating edu.wpi.grip.core.Main
Caused by: java.lang.NoClassDefFoundError: Could not initialize class edu.wpi.first.wpilibj.networktables.NetworkTablesJ NI
at edu.wpi.grip.core.operations.networktables.NTManag er.<init>(NTManager.java:50)
at sun.reflect.NativeConstructorAccessorImpl.newInsta nce0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInsta nce(NativeConstructorAccessorImpl.java:62)
at sun.reflect.DelegatingConstructorAccessorImpl.newI nstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Construc tor.java:422)
at com.google.inject.internal.DefaultConstructionProx yFactory$1.newInstance(DefaultConstructionProxyFac tory.java:86)
at com.google.inject.internal.ConstructorInjector.pro vision(ConstructorInjector.java:105)
at com.google.inject.internal.ConstructorInjector.con struct(ConstructorInjector.java:85)
at com.google.inject.internal.ConstructorBindingImpl$ Factory.get(ConstructorBindingImpl.java:267)
at com.google.inject.internal.ProviderToInternalFacto ryAdapter$1.call(ProviderToInternalFactoryAdapter. java:46)
at com.google.inject.internal.InjectorImpl.callInCont ext(InjectorImpl.java:1103)
at com.google.inject.internal.ProviderToInternalFacto ryAdapter.get(ProviderToInternalFactoryAdapter.jav a:40)
at com.google.inject.internal.SingletonScope$1.get(Si ngletonScope.java:145)
at com.google.inject.internal.InternalFactoryToProvid erAdapter.get(InternalFactoryToProviderAdapter.jav a:41)
at com.google.inject.internal.SingleFieldInjector.inj ect(SingleFieldInjector.java:54)
at com.google.inject.internal.MembersInjectorImpl.inj ectMembers(MembersInjectorImpl.java:132)
at com.google.inject.internal.ConstructorInjector.pro vision(ConstructorInjector.java:114)
at com.google.inject.internal.ConstructorInjector.con struct(ConstructorInjector.java:85)
at com.google.inject.internal.ConstructorBindingImpl$ Factory.get(ConstructorBindingImpl.java:267)
at com.google.inject.internal.ProviderToInternalFacto ryAdapter$1.call(ProviderToInternalFactoryAdapter. java:46)
at com.google.inject.internal.InjectorImpl.callInCont ext(InjectorImpl.java:1103)
at com.google.inject.internal.ProviderToInternalFacto ryAdapter.get(ProviderToInternalFactoryAdapter.jav a:40)
at com.google.inject.internal.SingletonScope$1.get(Si ngletonScope.java:145)
at com.google.inject.internal.InternalFactoryToProvid erAdapter.get(InternalFactoryToProviderAdapter.jav a:41)
at com.google.inject.internal.SingleFieldInjector.inj ect(SingleFieldInjector.java:54)
at com.google.inject.internal.MembersInjectorImpl.inj ectMembers(MembersInjectorImpl.java:132)
at com.google.inject.internal.ConstructorInjector.pro vision(ConstructorInjector.java:114)
at com.google.inject.internal.ConstructorInjector.con struct(ConstructorInjector.java:85)
at com.google.inject.internal.ConstructorBindingImpl$ Factory.get(ConstructorBindingImpl.java:267)
at com.google.inject.internal.SingleParameterInjector .inject(SingleParameterInjector.java:38)
at com.google.inject.internal.SingleParameterInjector .getAll(SingleParameterInjector.java:62)
at com.google.inject.internal.SingleMethodInjector.in ject(SingleMethodInjector.java:84)
at com.google.inject.internal.MembersInjectorImpl.inj ectMembers(MembersInjectorImpl.java:132)
at com.google.inject.internal.ConstructorInjector.pro vision(ConstructorInjector.java:114)
at com.google.inject.internal.ConstructorInjector.con struct(ConstructorInjector.java:85)
at com.google.inject.internal.ConstructorBindingImpl$ Factory.get(ConstructorBindingImpl.java:267)
at com.google.inject.internal.ProviderToInternalFacto ryAdapter$1.call(ProviderToInternalFactoryAdapter. java:46)
at com.google.inject.internal.InjectorImpl.callInCont ext(InjectorImpl.java:1103)
at com.google.inject.internal.ProviderToInternalFacto ryAdapter.get(ProviderToInternalFactoryAdapter.jav a:40)
at com.google.inject.internal.SingletonScope$1.get(Si ngletonScope.java:145)
at com.google.inject.internal.InternalFactoryToProvid erAdapter.get(InternalFactoryToProviderAdapter.jav a:41)
at com.google.inject.internal.SingleFieldInjector.inj ect(SingleFieldInjector.java:54)
at com.google.inject.internal.MembersInjectorImpl.inj ectMembers(MembersInjectorImpl.java:132)
at com.google.inject.internal.ConstructorInjector.pro vision(ConstructorInjector.java:114)
at com.google.inject.internal.ConstructorInjector.con struct(ConstructorInjector.java:85)
at com.google.inject.internal.ConstructorBindingImpl$ Factory.get(ConstructorBindingImpl.java:267)
at com.google.inject.internal.InjectorImpl$2$1.call(I njectorImpl.java:1016)
at com.google.inject.internal.InjectorImpl.callInCont ext(InjectorImpl.java:1092)
at com.google.inject.internal.InjectorImpl$2.get(Inje ctorImpl.java:1012)
at com.google.inject.internal.InjectorImpl.getInstanc e(InjectorImpl.java:1051)
at edu.wpi.grip.core.Main.main(Main.java:41)

3) Error injecting constructor, java.lang.NoClassDefFoundError: Could not initialize class edu.wpi.first.wpilibj.networktables.NetworkTablesJ NI
at edu.wpi.grip.core.operations.networktables.NTManag er.<init>(Unknown Source)
at edu.wpi.grip.core.operations.networktables.NTManag er.class(Unknown Source)
while locating edu.wpi.grip.core.operations.networktables.NTManag er
for field at edu.wpi.grip.core.Pipeline.ntManager(Unknown Source)
at edu.wpi.grip.core.Pipeline.class(Unknown Source)
while locating edu.wpi.grip.core.Pipeline
for field at edu.wpi.grip.core.serialization.SocketConverter.pi peline(Unknown Source)
while locating edu.wpi.grip.core.serialization.SocketConverter
for parameter 2 at edu.wpi.grip.core.serialization.Project.initialize (Unknown Source)
at edu.wpi.grip.core.serialization.Project.class(Unkn own Source)
while locating edu.wpi.grip.core.serialization.Project
for field at edu.wpi.grip.core.Main.project(Unknown Source)
while locating edu.wpi.grip.core.Main
Caused by: java.lang.NoClassDefFoundError: Could not initialize class edu.wpi.first.wpilibj.networktables.NetworkTablesJ NI
at edu.wpi.grip.core.operations.networktables.NTManag er.<init>(NTManager.java:50)
at sun.reflect.NativeConstructorAccessorImpl.newInsta nce0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInsta nce(NativeConstructorAccessorImpl.java:62)
at sun.reflect.DelegatingConstructorAccessorImpl.newI nstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Construc tor.java:422)
at com.google.inject.internal.DefaultConstructionProx yFactory$1.newInstance(DefaultConstructionProxyFac tory.java:86)
at com.google.inject.internal.ConstructorInjector.pro vision(ConstructorInjector.java:105)
at com.google.inject.internal.ConstructorInjector.con struct(ConstructorInjector.java:85)
at com.google.inject.internal.ConstructorBindingImpl$ Factory.get(ConstructorBindingImpl.java:267)
at com.google.inject.internal.ProviderToInternalFacto ryAdapter$1.call(ProviderToInternalFactoryAdapter. java:46)
at com.google.inject.internal.InjectorImpl.callInCont ext(InjectorImpl.java:1103)
at com.google.inject.internal.ProviderToInternalFacto ryAdapter.get(ProviderToInternalFactoryAdapter.jav a:40)
at com.google.inject.internal.SingletonScope$1.get(Si ngletonScope.java:145)
at com.google.inject.internal.InternalFactoryToProvid erAdapter.get(InternalFactoryToProviderAdapter.jav a:41)
at com.google.inject.internal.SingleFieldInjector.inj ect(SingleFieldInjector.java:54)
at com.google.inject.internal.MembersInjectorImpl.inj ectMembers(MembersInjectorImpl.java:132)
at com.google.inject.internal.ConstructorInjector.pro vision(ConstructorInjector.java:114)
at com.google.inject.internal.ConstructorInjector.con struct(ConstructorInjector.java:85)
at com.google.inject.internal.ConstructorBindingImpl$ Factory.get(ConstructorBindingImpl.java:267)
at com.google.inject.internal.ProviderToInternalFacto ryAdapter$1.call(ProviderToInternalFactoryAdapter. java:46)
at com.google.inject.internal.InjectorImpl.callInCont ext(InjectorImpl.java:1103)
at com.google.inject.internal.ProviderToInternalFacto ryAdapter.get(ProviderToInternalFactoryAdapter.jav a:40)
at com.google.inject.internal.SingletonScope$1.get(Si ngletonScope.java:145)
at com.google.inject.internal.InternalFactoryToProvid erAdapter.get(InternalFactoryToProviderAdapter.jav a:41)
at com.google.inject.internal.SingleFieldInjector.inj ect(SingleFieldInjector.java:54)
at com.google.inject.internal.MembersInjectorImpl.inj ectMembers(MembersInjectorImpl.java:132)
at com.google.inject.internal.ConstructorInjector.pro vision(ConstructorInjector.java:114)
at com.google.inject.internal.ConstructorInjector.con struct(ConstructorInjector.java:85)
at com.google.inject.internal.ConstructorBindingImpl$ Factory.get(ConstructorBindingImpl.java:267)
at com.google.inject.internal.SingleParameterInjector .inject(SingleParameterInjector.java:38)
at com.google.inject.internal.SingleParameterInjector .getAll(SingleParameterInjector.java:62)
at com.google.inject.internal.SingleMethodInjector.in ject(SingleMethodInjector.java:84)
at com.google.inject.internal.MembersInjectorImpl.inj ectMembers(MembersInjectorImpl.java:132)
at com.google.inject.internal.ConstructorInjector.pro vision(ConstructorInjector.java:114)
at com.google.inject.internal.ConstructorInjector.con struct(ConstructorInjector.java:85)
at com.google.inject.internal.ConstructorBindingImpl$ Factory.get(ConstructorBindingImpl.java:267)
at com.google.inject.internal.ProviderToInternalFacto ryAdapter$1.call(ProviderToInternalFactoryAdapter. java:46)
at com.google.inject.internal.InjectorImpl.callInCont ext(InjectorImpl.java:1103)
at com.google.inject.internal.ProviderToInternalFacto ryAdapter.get(ProviderToInternalFactoryAdapter.jav a:40)
at com.google.inject.internal.SingletonScope$1.get(Si ngletonScope.java:145)
at com.google.inject.internal.InternalFactoryToProvid erAdapter.get(InternalFactoryToProviderAdapter.jav a:41)
at com.google.inject.internal.SingleFieldInjector.inj ect(SingleFieldInjector.java:54)
at com.google.inject.internal.MembersInjectorImpl.inj ectMembers(MembersInjectorImpl.java:132)
at com.google.inject.internal.ConstructorInjector.pro vision(ConstructorInjector.java:114)
at com.google.inject.internal.ConstructorInjector.con struct(ConstructorInjector.java:85)
at com.google.inject.internal.ConstructorBindingImpl$ Factory.get(ConstructorBindingImpl.java:267)
at com.google.inject.internal.InjectorImpl$2$1.call(I njectorImpl.java:1016)
at com.google.inject.internal.InjectorImpl.callInCont ext(InjectorImpl.java:1092)
at com.google.inject.internal.InjectorImpl$2.get(Inje ctorImpl.java:1012)
at com.google.inject.internal.InjectorImpl.getInstanc e(InjectorImpl.java:1051)
at edu.wpi.grip.core.Main.main(Main.java:41)

3 errors
at com.google.inject.internal.InjectorImpl$2.get(Inje ctorImpl.java:1025)
at com.google.inject.internal.InjectorImpl.getInstanc e(InjectorImpl.java:1051)
at edu.wpi.grip.core.Main.main(Main.java:41)

From looking at it, it appears as though GRIP is looking for libraries that aren't there. If someone could provide insight as how to fix this, it would be greatly appreciated.

BrianAtlanta
04-02-2016, 09:15
I can't help you with the GRIP problems on the Pi2. Since they were still working on getting it running on the Pi2 when got our Pi, we decided to install OpenCV, with a python server talking pyNetworkTables. If you decide to go that route, let me know and I'll point to some instructions that worked for me. Heads up, the openCV install takes 4-5 hours.

In parallel, we developed GRIP on DS. Since both options use NetworkTables, the code doesn't care where the vision processing is done. So we'll test both and choose.

Brian

xjschwen
04-02-2016, 11:33
Great open CV on RP2

http://www.pyimagesearch.com/2015/02/23/install-opencv-and-python-on-your-raspberry-pi-2-and-b/

Ubiquity
04-02-2016, 12:43
I am not sure how well straight OpenCV works on the RPi2 with the RPi2 camera, But ROS Indigo + Ubuntu 14.04 (Robot Operating System, which has OpenCV included) works well on the Pi. In addition I heard there is a Library for MyRio (Labview) That integrates ROS and Labview. Not sure if that will help you in the next three weeks. This is a mountainous learning curve.

BrianAtlanta
04-02-2016, 13:53
Great open CV on RP2

http://www.pyimagesearch.com/2015/02/23/install-opencv-and-python-on-your-raspberry-pi-2-and-b/

This is the generic link I found, and lead to the one that we used. I didn't use this link due to the distribution we had. If you see the update just before Step 0, we used the Raspian Jessie instructions since that's the distro we had.

Important: some of the steps have a paragraph following the command. Sometimes the extra paragraph might make you skip or change a command. So make sure to read everything first and THEN do the install.

Brian