-
Notifications
You must be signed in to change notification settings - Fork 56
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
OpenNI Driver fails to set USB interface after update to 1.8.9 #18
Comments
Looks like there have been a bunch of commits between 1.8.8 and 1.8.9; not sure which of them might have caused this. Might help if you could download openni_camera from source and try to narrow down which commit caused the error. |
The commit on June 1st works, but the commit on June 20th does not. Attached is the output when I use the June 20th code: http://pastebin.com/quhg534e |
I've found another place where strings from within openni are overwritten. It is a longshot, but you might want to give this a try (i can't test this myself at the moment; however it looks sufficiently simple that it should at least compile ;) https://github.com/forouher/openni_camera/commits/asus-serial Failing that, a backtrace from the nodelet manager might help. |
@forouher I tried your new commit - afraid it still doesn't work for me (it does compile though!). Perhaps it's worth mentioning that I'm using Ubuntu 12.04. I'm not sure how to produce a backtrace from the nodelet manager...? |
(this assumes you're starting the driver using "roslaunch openni_launch Open openni_launch/launch/openni.launch change
to
This should open a terminal with the gdb prompt waiting for your input You have to enter
to actually start execution (see If I've read your log messages correctly, it should crash at some point Now you can ask gdb to provide you with an backtrace using the following
Please post everything gdb has printed out starting after you've entered cheers On 07/08/13 11:37, robevans wrote:
|
Here it is, a backtrace from "roslaunch openni_launch openni.launch" with your latest commit:
|
Hi, sorry, but I still cannot identify the problem. I just tried to reproduce the problem with 1.8.9 upstream, but (un)fortunately it works on my machine. And neither backtrace nor the debug infos are giving away any clues. My best guess is that querying the serial number at that time/place is violating some interface semantics of libopenni. Alas, I don't have time at the moment to search the openni docs and figure out exactly what I did wrong. As stability is probably more important than serial numbers, I can only suggest to revert the patches until someone with more in-depth knowledge of libopenni finds some time to look into it. Apologies, |
Hi, I'm facing this problem too. I currently have 1.8.9 at the moment, installed using "sudo apt-get install ros-groovy-openni-camera". How can I go about reverting to the older version 1.8.8, so that I won't encounter this problem? |
If you want to use 1.8.8 I think you'll need to compile from source right now. I plan to roll back to 1.8.8 and do a release in a couple of days. |
I tried to compile the code for 1.8.8, but I'm getting a fatal error saying that XnCppWrapper.h is not found, at line 46 of openni_camera/include/openni_camera/openni_device.h. I have the file XnCppWrapper.h located in /usr/local/include/ni, which is the default location. Do you know how I can go about fixing this? |
I just tried compiling and it worked for me (on ros Groovy, ubuntu 12.04, on a 64 bit machine). I see XnCppWrapper.h in /usr/include/ni (not /usr/local). That file comes from the deb libopenni-dev. How did you install the openni libs? You should be able to get all the dependencies by doing
|
@andrew-ang when you get it to compile, can you try using the |
@jonbinney I installed openni from here: http://www.openni.org/openni-sdk/openni-sdk-history-2/. I downloaded the SDK v1.5.4 and the driver v5.1.2.1, untarred them, and then ran their install scripts. I just tried using the rosdep command you suggested, but it doesn't help; I'm still getting the error saying that XnCppWrapper.h can't be found. I just checked the OpenNI v1.5.4 install script: in line 76, the include files are copied to/usr/local/include/ni. I'm running ROS Groovy on Ubuntu 12.10, on a 32-bit machine. I got the v1.8.8 openni_camera source from here: https://github.com/ros-drivers/openni_camera/tree/ee00cb1cac2a60d4023eeda0ecb6c5e59f36a6af |
@andrew-ang the version of the openni library in the ROS repostories is not the same as the one from openni.org. It's been modified. I suspect that you need to remove the one you have from source (the stuff in /usr/local/ni), and install openni debs using:
If that doesn't work, please post the output of the following commands: dpkg -l|grep openni rosdep install --from-path <openni_camera path> -s --reinstall env|grep ros |
@jonbinney It compiles now! But, how do I install openni_launch to test if the problem is solved? When I try to do sudo apt-get install ros-groovy-openni-launch, it tells me that extra packages will be installed: ros-groovy-openni-camera. Won't the two openni_camera packages conflict? EDIT: should I install openni_launch from source? If so, should I install the latest version? |
@jonbinney I installed openni_launch from source and tried to run
Seems like the error about setting USB interface still persists, and there's another issue about the depth generator |
It shouldn't matter whether you use openni_launch from source or from debs; this looks like a problem with openni_camera itself. And it also should matter if you install the openni_camera debs - as long as you source devel/setup.bash, rosrun will first look for things in your local catkin workspace (the stuff you compiled from source). You switched to the rollback_usb branch before compiling, right? It shouldn't matter, but can you try running openni_camera directly by doing @robevans could you also try the rollback_usb branch from source and see if it fixes the problem on your hardware? |
I think I am having the same problem as everyone else. I am quite convinced the issue is with 32-bit machines, since everything works fine on my 64-bit desktop but not on my 32-bit robots! Using Fuerte (whose openni_camera version is < 1.8.9) works for me, but not Groovy or Hydro. I'm going to try to compile from source and see what happens! EDIT: Using Fuerte used to work. I should note that I uninstalled all OpenNI packages and reinstalled through apt-get, so I probably had a working Fuerte distro because it wasn't updated. Now I keep getting this message in all ROS distros (which I believe is completely unrelated to the issue at hand, but I'm pasting here just in case): terminate called after throwing an instance of 'openni_wrapper::OpenNIException' what(): unsigned int openni_wrapper::OpenNIDriver::updateDeviceList() @ /tmp/buildd/ros-fuerte-openni-camera-1.8.6/debian/ros-fuerte-openni-camera/opt/ros/fuerte/stacks/openni_camera/src/openni_driver.cpp @ 125 : enumerating image nodes failed. Reason: One or more of the following nodes could not be enumerated: Image: PrimeSense/SensorV2/5.1.0.41: Got a timeout while waiting for a network command to complete! |
@jonbinney Apologies, the output I previously produced was NOT the rollback_usb branch; it was the code I checked out labelled 1.8.8: https://github.com/ros-drivers/openni_camera/tree/ee00cb1cac2a60d4023eeda0ecb6c5e59f36a6af. But in any case, I checked out rollback_usb, and it seems like the output is the same. I'll paste it here just in case:
And, when using
This error repeats for about 5 - 10 seconds until
|
@jonbinney the rollback_usb branch works for me. |
@robevans are you running on a 32-bit or a 64-bit machine? Can you describe your development environment and installation process please? |
@andrew-ang I'm running 64-bit Ubuntu 12.04, and I originally installed ros-groovy-desktop-full from this tutorial: http://wiki.ros.org/groovy/Installation/Ubuntu I have a catkin workspace (this tutorial covers how to make one: http://wiki.ros.org/catkin/Tutorials/create_a_workspace). In my ~/.bashrc file I added the workspace to my ROS_PACKAGE_PATH (by appending The workspace has a src folder in which I have cloned the repo ( Finally I launch a new terminal and run (for example) |
I had a new install of Ubuntu 12.10 on a new machine, and 1.8.8/rollback_usb worked. I don't know whats wrong with my first machine though, it just didn't work. |
I have the same issue, here is the detailed description of the problem: |
device_id: find camera by serial number
@jonbinney Looks like multiple persons confirmed at that time that I just pulled the changed in that branch into |
@130s I don't remember any specific reason for not merging this (it was a while ago). Most likely I just didn't have any time back then, judging from when it was. |
When using an Asus or PrimeSense depth camera, ros_groovy_openni_camera 1.8.9 "fails to set USB interface" and crashes, before continually relaunching unsuccessfully.
The depth cameras work properly with NiViewer.
Reverting to 1.8.8 fixed the problem.
The text was updated successfully, but these errors were encountered: