Skip to content

Use new libfreenect2 API #189

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

Merged
merged 1 commit into from
Dec 9, 2015
Merged

Use new libfreenect2 API #189

merged 1 commit into from
Dec 9, 2015

Conversation

xlz
Copy link
Contributor

@xlz xlz commented Dec 2, 2015

libfreenect2 has changed API and it breaks iai_kinect2 in the current state.

libfreenect2 API no longer exports details about DepthPacketProcessor. Use Freenect2Device::setConfiguration() instead.

Reason of the API breakage: In the process of avoiding exposing implementation details of various depth processors and making it hard to maintain future API stability, DepthProcessor is entirely hidden from API/ABI. I provided a compatibility workaround to allow the then current iai_kinect2 to work, but the workaround broke MSVC compilation and was reverted.

Use the new libfreenect2 API here.

@JimmyDaSilva
Copy link

+1
Thanks @xlz this works

@JimmyDaSilva
Copy link

@xlz Sorry. Actually it compiles yes, but kinect2_bridge fails on start up now.

[FATAL] [1449233655.354852103]: Service call failed!
[kinect2-2] process has died [pid 27612, exit code -11, cmd /opt/ros/indigo/lib/nodelet/nodelet manager __name:=kinect2 __log:=/home/kuka/.ros/log/1b1b0652-9a86-11e5-b670-989096ba320d/kinect2-2.log].
log file: /home/kuka/.ros/log/1b1b0652-9a86-11e5-b670-989096ba320d/kinect2-2*.log
[kinect2_bridge-3] process has died [pid 27617, exit code 255, cmd /opt/ros/indigo/lib/nodelet/nodelet load kinect2_bridge/kinect2_bridge_nodelet kinect2 __name:=kinect2_bridge __log:=/home/kuka/.ros/log/1b1b0652-9a86-11e5-b670-989096ba320d/kinect2_bridge-3.log].
log file: /home/kuka/.ros/log/1b1b0652-9a86-11e5-b670-989096ba320d/kinect2_bridge-3*.log

If I go back to a previous state of libfreenect2 (21 nov), then both branches master and use-new-api work
And in that state of libfreenect2, or the most recent one, Protonect works perfectly with cpu, cl, gl

@kohrt
Copy link

kohrt commented Dec 4, 2015

Thanks for the pull request, I will try it out next week and also check out the newest libfreenect2 then.

libfreenect2 API no longer exports details about
DepthPacketProcessor. Use Freenect2Device::setConfiguration()
instead.
@xlz
Copy link
Contributor Author

xlz commented Dec 4, 2015

OK, the first try was not correct. It was setting configuration in initPipeline() which is before device initialization. setConfiguration() cannot be called without initializing device first with the current libfreenect2 API.

This commit should be tested and good now.

@JimmyDaSilva
Copy link

Great @xlz ! Seems to work like a charm :) 👍

@dkoguciuk
Copy link

Works for me too :)

@kohrt kohrt merged commit 462c822 into code-iai:master Dec 9, 2015
@kohrt
Copy link

kohrt commented Dec 9, 2015

Merged! Thanks a lot for the Pull-Request and the testing.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants