Skip to content
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

Proxynect to enable multiple low-latency Kinect clients #401

Open
wants to merge 6 commits into
base: master
Choose a base branch
from

Conversation

nneonneo
Copy link
Contributor

@nneonneo nneonneo commented Jul 3, 2014

For a project I did, it was necessary to have one Kinect be used by two very separate programs.

The usual approach is to e.g. stream data over TCP. But this is rather slow with full-frame full-speed RGB/depth data.

Instead, I implemented an approach that uses shared memory IPC to share a single memory buffer with multiple clients. Synchronization and limited control over the depth stream are provided. The library works on POSIX systems supporting shm_open, which should cover Linux and OS X. No solution for Windows yet, but Cygwin supports shm_open which means that this should theoretically work under Windows if you're willing to use Cygwin.

Usage is similar to using fakenect. Launch the proxydaemon in the background, then have clients load libraries from lib/proxynect.

One final advantage is that this approach enables "keep-alive" of the Kinect, which reduces startup time (for programs that are not persistent). This helped me a lot when developing, since I could rerun my app without having to wait for the Kinect depth stream to settle.

Proxynect passes all requests through a persistent daemon process.
This allows the Kinect to be used by more than one process at a time,
and also solves some issues relating to repeated reinitialization
(e.g. gradually shifting depth values).

Signed-off-by: Robert Xiao <brx@cs.cmu.edu>
We also avoid setting the mode if there's no change; this prevents
problems with repeated depth or video start/stops.

Signed-off-by: Robert Xiao <brx@cs.cmu.edu>
Signed-off-by: Robert Xiao <brx@cs.cmu.edu>
Signed-off-by: Robert Xiao <brx@cs.cmu.edu>
Signed-off-by: Robert Xiao <brx@cs.cmu.edu>
@piedar piedar added this to the v0.5.2 milestone Jul 15, 2014
@piedar piedar force-pushed the master branch 2 times, most recently from e241863 to 4e489af Compare September 1, 2014 21:07
@piedar piedar modified the milestones: v0.6.0, v0.5.2 Dec 2, 2014
@piedar piedar modified the milestones: v0.6.1, v0.6.0 Jul 14, 2015
@piedar piedar modified the milestones: v0.6.1, v0.6.3 Mar 19, 2020
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.

None yet

2 participants