Closed eric-schleicher closed 5 years ago
In my debugging branch: https://github.com/awesomebytes/vive_ros/tree/debugging I got over that compilation error (the structure used for getting text version of errors does not exist in that form anymore). I just commented out some lines. The branch is based in some extra debugging info I added. You can give it a try although it crashes with a segmentation fault. :(
That seems to be a typo, I replaced vr::ChaperoneCalibrationState_Error_BaseStationUninitalized
for vr::ChaperoneCalibrationState_Error_BaseStationUninitialized
and it worked. But I also get the segmentation fault when starting the vrserver.
Hi, I've been trying to make this thing work again as well. Look at my post in the openvr repo: openvr/issues/232
With the latest openvr, Ubuntu 16.04 and ros kinetic, I get to the point when the catkin_make actually compiles the code (with the typo @musamarcusso mentions and the vr::VRApplication_Background
setting @awesomebytes proposed).
When run with the original runtime settings from @robosavvy, I get the 102 error when calling the VR_Init. So there has been some change, the original libraries from the launch script are these:
/home/robot/.local/share/Steam/ubuntu12_32/steam-runtime/i386/lib/i386-linux-gnu: /home/robot/.local/share/Steam/ubuntu12_32/steam-runtime/amd64/lib/x86_64-linux-gnu: /home/robot/.local/share/Steam/steamapps/common/SteamVR/bin/linux32: /home/robot/.local/share/Steam/steamapps/common/SteamVR/bin/linux64: /home/robot/.local/share/Steam/steamapps/common/SteamVR/drivers/lighthouse/bin/linux32: /home/robot/.local/share/Steam/steamapps/common/SteamVR/drivers/lighthouse/bin/linux64: /home/robot/libraries/openvr/lib/linux32: /home/robot/libraries/openvr/lib/linux64
And the libraries set by Steam's run.sh script are these:
/home/robot/.local/share/Steam/ubuntu12_32/steam-runtime/amd64/lib/x86_64-linux-gnu: /home/robot/.local/share/Steam/ubuntu12_32/steam-runtime/amd64/lib: /home/robot/.local/share/Steam/ubuntu12_32/steam-runtime/amd64/usr/lib/x86_64-linux-gnu: /home/robot/.local/share/Steam/ubuntu12_32/steam-runtime/amd64/usr/lib: /home/robot/.local/share/Steam/ubuntu12_32/steam-runtime/i386/lib/i386-linux-gnu: /home/robot/.local/share/Steam/ubuntu12_32/steam-runtime/i386/lib: /home/robot/.local/share/Steam/ubuntu12_32/steam-runtime/i386/usr/lib/i386-linux-gnu: /home/robot/.local/share/Steam/ubuntu12_32/steam-runtime/i386/usr/lib: /home/robot/catkin_ws/devel/lib: /opt/ros/kinetic/lib: /home/robot/libraries/openvr/lib/linux64/
The problem I run into when launching the tracker node from within the current runtime is that there is something wrong with their libstdc++.so.6.0.21 and I get this dynamic linking error:
robot@asimov:~$ .local/share/Steam/ubuntu12_32/steam-runtime/run.sh /home/robot/catkin_ws/devel/lib/vive_ros/vive_node /home/robot/catkin_ws/devel/lib/vive_ros/vive_node: relocation error: /usr/lib/x86_64-linux-gnu/liblog4cxx.so.10: symbol _ZTTNSt7__cxx1119basic_ostringstreamIwSt11char_traitsIwESaIwEEE, version GLIBCXX_3.4.21 not defined in file libstdc++.so.6 with link time reference
So I've done something really nasty: Backed up their libstdc++.so.6.0.21 file and copied there my system one, the one which the catkin_make compiles against. And success :)
Another option is to make a ROS node using pyopenvr
instead.
Oh, that looks too good to be true :D Have you tried it, does it work? It's definitely worth rewriting this node to python if we can avoid this c++ linking hell. Does it still need the "server" part running?
Hi, I have been trying it out and so far it works for the most part. The only issue is that somehow the information about the buttons are not being updated but the frames for the headset and controllers can be read without a problem. It does need the server part, but you don't need to start it separately, it does it in the application already (see this example to track the HMD). You still need to setup the paths to the libraries, but at least it is only one launch file and one node that you need to start.
Great, thanks :)
If you try it out and suddenly pyopenvr
complains that it can't find libopenvr_api_64.so
, try adding also this path to LD_LIBRARY_PATH:
/usr/local/lib/python2.7/dist-packages/openvr-1.0.801-py2.7.egg/openvr
(or something similar depending on which version of pyopenvr
it is right now)
I don't know if this is the correct way to do it, but it worked for me.
I was able to create a ros node using pyopen VR. @musamarcusso did you convert the coordinate space to z up? I'm struggling with that at the moment.
The current state of this repo is working with latest openvr release(from Valve's repo), ubuntu 16.04 and ROS Kinetic. Closing this issue.
I thought I was making good progress on getting this library working with my robot, but not just yet... working, as I'm very excited about using lighthouse tracked objects in ROS.
I've followed the instructions on installation and believe that I've satisfied all of the prereqs correctly OS: Ubuntu 16.04 ROS: Kinetic (though i don't believe it matter so much in this case [yet])
I've cloned the most recent master of the Valve OpenVR commit 7fa6470f2972970859f2395f1390f6d87d4b0fc3
...And compiled it successfully per this Repos Install instructions. Note: This repo's install.md instructions point to a depricated (per that repo owner; image shown below). So I cloned the more recent upstream OpenVR.
I've cloned this repo into my ROS workspace and run 'catkin_make'
the process succeed on all of my prior dependencies but fails compiling the vive_ros components with the following error(s)
Pasted [link]
inline log
Any help/pointers much apprecaited