Code Monkey home page Code Monkey logo

kinectron's Introduction

Kinectron

Kinectron is a node-based library that broadcasts Kinect2 data over a peer connection. It builds on the Node Kinect2 and PeerJS libraries.

Kinectron has two components--an electron application to broadcast Kinect2 data over a peer connection, and a client-side API to request and receive Kinect2 data over a peer connection.

Resources

Contribute

kinectron's People

Contributors

aaronsantiago avatar dependabot[bot] avatar lisajamhoury avatar montoyamoraga avatar vanevery avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

kinectron's Issues

three.js

I'm thinking of working in three.js, rather than the more common (for this project) p5.js. Just wondering if there was any demo three.js files?

Thanks.

Frame rate

Hello lisa,
First of all congratulations for your work, it's really interesting.

Could you please tell me how to control the frames per second during the acquisition of body tracking and Color? Can you select a constant frame rate (assuming the computer is good enough)?

It is my interest to compare Color and body tracking acquired with the kinect with a video of a RGB camera and the position of the body found through video processing, following the position of physical markers placed on the joints.

To make such a comparison, I would need both videos to have the same frame rate.

Waiting for your comments.

Regards

Leandro

Build issue: valid-iterable and is-property/ file names too long for destination folder.

Error from Windows built-in extraction process. Not a big issue since the built application will run fine, but source code may not be fully downloaded without those files. Happens when the extracted folder is named in full:

Kinectron-0.0.5.0-win32-x64

but if it's simply changed from that to

Kinectron

or something shorter, the problem disappears.

Files affected: valid-iterable, is-property (directory)

The file name(s) would be too long for the destination folder. You can shorten the file name and try again, or try a location that has a shorter path.

How to get Kinect data

I am able to see the Peer ID when I run the P5.js application along with kinectron. However, I wanted to know how can I use the Peer ID to collect Kinect data on a different computer that is on the same local network as the computer running the Kinectron application? Also I saw Using the Kinectron API https://kinectron.github.io/docs/api2.html#set-callbacks and was having trouble with Connect to personal peer network part.

I didnt know what I have to put here:
var kinectron = new Kinectron("myusername", { // enter the username to connect to
"host": "myserver.com", // your personal peer server
"port": "9001", // your portnumber
"path": "/", // your path
"secure": "true" // include parameters per peer.js documentation
});

Also, how would use just javascript code to access the data? Do i need to make an HTML webpage? I have attached images below so you can have a look. Thanks!

untitled3

untitled4

too many branches

can we delete some of the branches?
maybe some of them are not needed at all?
maybe some of them can be releases?

Message unrecognized on heartbeat in peer server

This issue is coming from the PeerJS Peer Server.

Issue on PeerJS repo peers/peerjs#575

I forked this and made a change to comment out the error message, but the repo has no build instructions. For now I'm commenting out line 105 in node_modules/peer/lib/server.js

// util.prettyError("Message unrecognized");

This is an unsustainable solution as it only works on the local repository and in the build. Need to work on moving off of PeerJS to avoid issue.

Fails to start

Hi,

I just wanted to try it Kinectron on a fresh Window 10 Pro 64bit installation, but it fails with a node error: Module not found.

Does anybody have any idea what could be causing this or how to work around it?

Thanks

fad7a4c5-44c1-44d8-9cc1-704c73228ec5

'colorX: "colorY" returned by Kinectron client

Look into this issue from Vlad Seghete:

I get a lot of noise from Kinectron, and I think it's related to a bug: every once in a while a joint will return 'colorX: "colorY"' instead of a number, and this seems to break all the joints following it. The live preview in Kinectron looks fine though. Do you know how to fix this? I added a screenshot of the json object I got on the client end, the default color coding makes it very easy to spot the problem.

  • this always happens with colorX: colorY, that is the only field that messes up
  • this only happens on the client side: if I record the session server-side everything looks legit, even though client side up to half the joints are missing
  • IMPORTANT: when this happens, the server side recording shows that, for the joint that is messed up, colorX and colorY are null; I suspect what is happening is peerjs is not treating null values correctly inside JSONs, either when sending or receiving, and the data on the client side ends up confused, thinking that colorX is set to the string "colorY". It's also possible that the json parser on the client side is busted in some way.

I managed to fix the bug. I don't know how good/generalizable my fix is, but it works for my use case at least: I added the following line at line 3098 of kinectron.bundle.js:

connection.serialization = "json";

and that seems to have been enough.

server

I've just started using the Kinectron. I can get everything to work fine when I'm using the p5.js editor on the same computer as the server (and have this line):
kinectron = new Kinectron();

When I add the IP address on another computer on our home network, with otherwise the same code, it doesn't get the feed. (I switched to a mac for this.) So, first question: what can cause that?

And second question, how do you set up the peer network? I assume it has to be done on the same PC that's running the server, so that any computer (running a browser running the p5.js file on an HTML page can see the Kinect stream.) That seems like the next step?

RTCIceServer.url is deprecated! Use urls instead.

Sorry I would submit a pull request but I'm still learning this stuff.
Can be fixed in the kinectron.bundle.js on line 1044 change:

var defaultConfig = {'iceServers': [{ 'url': 'stun:stun.l.google.com:19302' }]};
to
var defaultConfig = {'iceServers': [{ 'urls': 'stun:stun.l.google.com:19302' }]};

Error resolving paths in Macbook's Bootcamp

Uncaught Error: The specified module could not be found.
\\?\C:\kinectron-server-0.0.5.1\resources\app\node_modules\kinect2\build\Release\kinect2.node

I'm using the preview release 0.0.5.1 and got this error after starting kinectron-server.exe

I've got a Windows 10 dual boot in a MacBook Pro Mid 2014 using Bootcamp.

kinectron = new Kinectron(); Error

I'm a total newbie with Kinect. When there's no IP in the argument I get an error in the console:

Failed to load resource: net::ERR_CONNECTION_REFUSED

I'm not sure what happened?

multiple kinect joint data stream

We used console.log(joint); function and successfully got joint data from kinect # 1 streaming over a LAN to a different computer. The console shows real-time objects with color, depth, position as shown in the picture I sent few days ago.

Now I'm having trouble getting data from 2 kinects streaming onto the same 1 computer over LAN. The problem is only one kinect is sending the joint data. We have to pause one kinect to send it from the other. Is there a way to have both kinect's sending the joint data (picture above) at the same time simultaneously?

In other words, we are is there a way to get data from two exterior kinect-computer clients (at two different IP address, Slave) transferred to a 3rd computer (master) via p5.js.

http://alpha.editor.p5js.org/jay.tailor/sketches/r16WbuplX
Have 2 kinects sending skeleton to a third computer. How can we get the JOINT data from those two kinects simultaneously one one console.

Get Joint Name and its x,y,z position

Hey, when I do console.log(joint) I only see depth, color, camera position however I want the object to display JSON objects like:
Name: Head
x=-0.2126
y=0.523
z=0.2323

Currently, it's like this:

42768986-eee97ec4-88ee-11e8-9960-7bb1065701aa

But I want it like (different code):

untitled

Not able to develop the server

I installed everything

Ran into some trouble because of multiple Python distributions in my computer and had to
make npm and node-gyp point to Python 2.7

Ran into some trouble with Visual Studio, I had installed Visual Studio Community 2017 and had to uninstall and go back to Visual Studio 2015 because of node-gyp.

Real-time obtain x and y coordinates of the joint

I see that its possible to access joint.depthX and joint.depthY to get the x and y coordinates of the joint on the depth image, but how? Is there a way to see the coordinates in real time so as my hands moves the positions of the coordinates change?

Acquiring Data Real-Time

On p5.js I was able to connect multiple kinetics and get the skeletons from both computers I was wondering is their is any way to acquire the data of the skeleton in real time from both kinetics? I want to fusion the skeletons as one and I need the dataset in order to do it.

Fix Parcel Minify Error

When I minify kinectron-client.js using Parcel I get the following error. The un minified file works fine without error.

Firefox can’t establish a connection to the server at ws://localhost:56569/.

On Chrome: parcel WebSocket connection to 'ws://localhost:56569/' failed: Error in connection establishment: net::ERR_CONNECTION_REFUSED

There is an error that appears similar but refers to docker, not browser:
parcel-bundler/parcel#377

Add warning for null IP address on client side

if (kinectronIpAddress !== null ) {
kinectron = new Kinectron(kinectronIpAddress);
} else {
console.warn(Enter the IP address from your Kinectron server. See https://kinectron.github.io/docs/api.html#2-create-an-instance-of-kinectron);
}

Broadcast bodies with rgbd

Is it possible to broadcast body-index rgbd?
Basically, just broadcast people with rgbd, and eliminate background.

console.log multiple arguments

Modified Code --> http://alpha.editor.p5js.org/jay.tailor/sketches/SkZ2_s7V7

Since we can see two bodies (1 from each kinect) on one screen, this means the joint data is being sent over. We wish to see both kinect's joint data on console.log. This way we can extend the program to more than 2 kinects later easily. Do you know how where we can put >> console.log(joint, joint2); << so it can display both joints data?

2 different kinect, 1 screen, over same network -->
oqagt

Add version message to client-side api

What is the proper way to version the client library? I add version numbers when I create new releases of the server, but there's currently no way to know which client library file is the most up to date.

Getting feed on server but not sending to P5 local editor

Kinectron is getting feed(showing skeletons) on server, but example code are not receiving data from kincectron.

The two laptops are connected with the same WiFi. One thing that is also strange: the IP address in Kinectron is not updating, always showing the same address when I restart the software.

The whole setup worked yesterday under the same environment and network.

Any idea how could I fix it?
Thanks!

Using the "Multiple Frame" feature HELP

Having some trouble with the Multiple Frames function on Kinectron.exe

When trying to use the multiple frame feature, what do we put inside the boxes to establish a Peer Id. Currently we have two computers with a kinect each on the same LAN.

What would we enter for peer DI and Server Details? How do we find what our ID is to use?
Thanks in advance

capture

personal peer network

This may have been asked already--I'm a bit unclear on how to set up a personal peer network if you want to connect a second computer that is not on the same wireless network. I imagine the computer that has the Kinect connected to it has to be running off a server hosted on the same computer? I think I'm not even sure where to start thinking about this.

Can't access the kinect data from from another computer

I'm having a problem with getting the kinect data to pass from my PC over to my Mac. The kinectron data is picked up in browser no problem when I try on the PC that the kinect is connected to.
But when I try to access the kinectron server from my MAC by passing in the IP address there is no response. Could this be to do the college firewall perhaps?

Here is my code.

let kinectron;

function setup() {
createCanvas(400, 400);
kinectron = new Kinectron("172.16.31.39");
kinectron.makeConnection();
kinectron.startTrackedBodies(drawBodies);
}

function draw() {
background(220);
}

function drawBodies(body){
console.log(body)
}

Thanks!!

How to get Kinect Joint Data without using Chrome's Console

I am using the Client-side Kinectron API and was wondering if there is a way to see there is a way to see the kinect joint data wihtout using Chrome's console? Also if there is a way to see the position of each indivual joint ex. Head (x,y,z) Neck (x,y,z)? And is there a way to use the Peer ID in C# to display the joint data?

untitled5

delete most branches

i think there are too many branches?
what are the ones apart from master that we should keep?
maybe some old ones could be exported as releases, for documentation purposes?

realsense support

Hi!

Thanks for the great work? Are you aware of an ongoing realsensron project?

Best,
Iman

new architecture for releases

kinectron.bundle.js should be kinectron_client.js or kinectron-client.js

for every release there should be a zip file with the client and a zip file with the server.

Kinectron.server doesn't work

Thanks to Kinectron, I made a great piece of work last semester.

Few Months later, I tried to operate same task but it doen't work.

connecting with kinectron in p5.js is working well but data(joint, image) doesn't come in my p5.js

I'd appreciate your help.

Sorry for not being able to speak English well.

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.