Mainstream OpenNI support for Orbbec cameras

AFAIK the most active fork of OpenNI2 is the one maintained by Occopital. Is it planned to have the changes required to support Orbbec’s 3D cameras merged with their repo?

This would have several big benefits:

  1. Less maintenance work for Orbbec.
  2. Debian packages are created from this repo (used by Debian, Ubuntu and other Linux distributions).
  3. Orbbec camera support through OpenNI2 debian packages automatically (should) give(s) you support for ROS.
3 Likes

Hi bit-pirate,

Our changes were just to add the astra driver to the build process and additionally allow openni 2 to build for android with our drivers. We don’t feel anything substantive has changed that would be beneficial to the OpenNI2 trunk at this time. On the other hand, we will of course make pull requests should we find any bugs or add any features that would benefit the OpenNI community as a whole.

James

1 Like

Hi James,
A big benefit of merging your changes with upstream would be the fact, that there are OpenNI2 debian packages being created it. That is, users of Linux distributions using Debian packages (Debian, Ubuntu) can very easily install OpenNI2. This is also a prerequisite for making the Astra working out-of-the-box with ROS.

Additionally, it should create less maintenance work for your team, having your changes being merged with upstream.

Cheers,
Marcus

Marcus,

Thanks for your feedback on this. Makes sense. I’m going to pass it up the chain and see if we can prioritize this in the future.

Yours,
James

I was wondering if there was any progress with this?

I’m struggling to try to get the Orbbec cameras working in ROS. Up until now I’ve not succeeded. Can you maybe give any pointers or take the suggestion that Marcus gave?

I’m curious about the progress on this as well.

@JaccovdS did you try the instructions I posted here: Linux SDK & Hardware Support - #4 by bit-pirate ?

@bit-pirate I tried your suggestion there and I got the simple NI viewer running with that.

In the end I also got it running in ROS (could view pcl in RViz) I didn’t do any test in relation to correct depth calculations etc.
So here is how I got it running. I downloaded the Linux driver from the Dropbox. I replaced the library for OpenNi2 in /usr/lib with the one in Redist folder of the download. I also added the Orbbec library to /usr/lib/OpenNi2/Driver/ (there are already a few there) and I also replaced the libOniFile.so in that folder. Don’t forget to also copy the .ini file (just to be sure).
Then I also adjusted the .pc file which is in /usr/lib/pkgconfig/ I added the Orbbec library there. Then I recompiled the openni2_camera package of ROS and launched it through the openni2_launch package.

This is more like a temporary fix. Would appreciate it if the drivers where opensource available or neatly incorporated in OpenNi2. We would in the end like to run it on a Tegra.

Reminder: backup your original .so files before replacing them.

1 Like

@JaccovdS The Dropbox links seem to be dead now. I’m trying to get Astra working with ROS as well. Any chance you could repost a link to the file you downloaded?

@d552 I think it is better to ask Orbbec to upload the files again.
It would even be better if they just push their changes to OpenNi to the OpenNi stack.

@JaccovdS Thanks. I agree, I hope they get to pushing it up. Before I ordered these I was told they were ready for Linux with OpenNI2 support. Now I’ve gone ahead and built their fork. Trying to follow your steps above. Would you happen to know the file name of the “Orbbec” library you referred to in your write-up?

Looks like SimpleViewer is now working. In case anyone else is building OpenNI2 from source, make sure you build the orbbec-dev branch. Before I wasn’t getting the liborbbec.so library because I had checked out master.

@d552 That is the OpenNi2.so file in that directory (usr/lib)

@JaccovdS : sorry i am newbie in ubuntu, i am running ubuntu 14.04 and having trouble running orbbec in ros, how you do adjusted the .pc file which is in /usr/lib/pkgconfig/ and recompile openni2_camera package. i already did copy driver in redist to /usr/lib/OpenNi2/Driver/

@motionagus Use your favorite editor (e.g. gedit) open the file and see how the other libraries are in there. That should give you enough inspiration for adjusting it. Recompiling the package can be done through catkin.
Maybe it is wise to start getting more knowledge of ROS and Ubuntu first before adjusting things in this layer of the OS.

@JaccovdS : i think i already did all step you mention, copy driver to lib/openni2 folder :

change/add lib orbbec to openni2.pc in lib/pkgconfig folder using sudo gedit :

then execute catkin_make in workspace/catkin folder. i didnt change anything in file CMakeList.txt in catkin/src

but why when i test it or execute : " roslaunch openni2_launch openni2.launch " there are error said “invalid device number 1 there are no device connected”

can you tell me what wrong in my step ?

@motionagus Please check the link in this topic from @bit-pirate, it seems you have not set udev rules.

@JaccovdS : i test the sdk, all sample are working so the rules already there, just when i tried with ros its said no device.
i even change rules of primesense-usb priority earlier from one from redist folder and the one already in dev/rules.d but the content is exact same actually. here the udev rules folder :

what i already tried is rosdep, to fix dependency but it seem right. i even ask to ros community but they doesn’t seems to know or tried using orbbec camera. are you really got it working by just tweaking that in those step ?

Did you replace the OpenNi2 lib itself?
Did you replace the libOniFile?
Did you remove your devel and build folder before running catkin make again?
Rosdep doesn’t have to do anything with it.
Yes as I stated I got a pcl in Rviz. Everything that you need should be in this topic.

Did you resolve this? I am running exactly in to the same problem.
Followed the instructions, however I am still getting 'No matching device found …"
I am using the Astra Pro and I am keen to get it running in ROS Indigo.
Any ideas?

Hello,

I have tried to use my Astra on Ubuntu 14.04 without success.

I followed all the steps provided by JaccovdS above. But when I run NiViewer I still receive the same message:

jurbrian@Juliano-PU301LA:~/jrbros/src$ NiViewer
One or more of the following nodes could not be enumerated:

Device: PrimeSense/SensorKinect/5.1.2.1: The device is not connected!

Press any key to continue . . .

What else could be wrong???

I also followed what bit-pirate proposes here, but the output is the same;

By the way, I noticed some people refer to OpenNI while others mention OpenNI2. Is there any difference to Astra?

Isn’t there a complete and official guide from Orbbec on how to install Astra in Ubuntu?

I already tested the camera in Windows, and it’s working fine, which tells me there is nothing wrong with the camera itself. But I need it in Ubuntu.

Thank you in advance for any help.