GithubHelp home page GithubHelp logo

tinytinni / kinectfaker Goto Github PK

View Code? Open in Web Editor NEW
10.0 5.0 1.0 235 KB

Kinect Emulator for Skeleton Tracking

License: GNU General Public License v3.0

CMake 40.97% C++ 59.03%
kinect emulator development debugging-tool

kinectfaker's Introduction

Kinect Skeleton Tracking Emulator using DLL-Proxy

Build status

Emulates a Kinect Device (Version 1/xBox360) with Skeleton Tracking. The Kinect Toolkit provides a program, called Kinect Studio, which is able to record and play Skeleton Animations. Sadly, the Kinect Studio program works only on a PC with a connected Kinect Device. This emulator enables testing of Kinect applications without connected Kinect or Kinect runtime by reading skeleton animation files. Currently, only a self defined file format (defined with protobuf) is used and must be recorded first.

Recompiling or relinking of the Kinect application is not needed.

WIP: GUI is WIP. Currently, it can record and play skeleton animations.

See ffmpeg branch for a version for faked color stream.

Requirements

For the Proxy:

For the GUI (Record & Play Skeleton Data):

used libs which will be auto downloaded, when not specified

for tests:

If you want to use Conan or Hunter as package manger, activate the cmake option USE_CONAN resp. USE_HUNTER [default=OFF].

When you are using Hunter, only a Kinect SDK installation is required. Rest will be automatically downloaded. When you are using Conan, make sure you edit the conanfile.txt since it is only used by the build system.

Using DLL-Proxy

  • Record your skeleton using the prototyped recorder (not recommended) or the GUI (recommended).
  • Configure your emulated scene in fake_kinect.config, example can be found in tests.
  • Put the configure file and the skeleton animation into the folder with the binary, which should recieve the emulated skeleton animation.
  • Copy Kinect10.dll + dependencies (e.g. protobuf dlls) into the binary folder of your program.

Run the program.

Implemented Functions

Some functions are free functions and INuiSensor functions. When using functions which also exists in INuiSensor e.g. NuiInitialize instead of multi device mode INuiSensor::NuiInitialize, these "free"-functions will be listed in INuiSensor column. Not implemented functions will return E_NOIMPL.

Free Functions INuiSensor
NuiGetSensorCount NuiInitialize
NuiCreateSensorByIndex NuiShutdown
NuiCreateSensorById NuiSkeletonTrackingEnable
NuiSkeletonTrackingDisable
NuiSkeletonGetNextFrame
NuiTransformSmooth *)
NuiDeviceConnectionId
NuiUniqueId **)
NuiStatus
NuiInstanceIndex
NuiInitializationFlags

*)NuiTransformSmooth Skeleton positions are saved after smoothing, therefore this function does nothing and has to be set in the animation file.

**) NuiUniqueId Recommended by MSDN: Don't use!

Not all members of a NUI_SKELETON_FRAME instance are filled yet.

Functions which will only be avaiable when a Kinect runtime is present:

Kinect Runtime Functions
NuiCreateDepthFilter
NuiCreateCoordinateMapperFromParameters
NuiSkeletonCalculateBoneOrientations
NuiSetDeviceStatusCallback

They are not changed in anyway and not guaranteed to work.

LICENSE

GPLv3© Matthias Möller. Made with ♥ in Germany.

kinectfaker's People

Contributors

tinytinni avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

Forkers

ectoo

kinectfaker's Issues

kinect v2 real-time support

It would be nice if the Kinect v2 could interpreted as a Kinect v1 sensor for applications like garry's mod.

Why does Kinect need to be connected?

I know this is a super old project but I’m starting work on something similar. Can you tell me what limitations you ran into that required the real Kinect to be plugged in?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.