(log)
(log)
Line 16: Line 16:
  
 
The process research has been fast thanks to [https://bitbucket.org/polymorphteam/raw/ raw]. In the viewer application, a raw "writer" have been added, witch stores each new pair positions while the calibration data retrieval. To develop the algorithm, I started a new application that loads these positions via a raw "reader". It has been easy to develop the algo on stored data instead of having to stops the viewer, change the algo, restart the app, wait for the kinect to connect, set the roles and moves in front of the kinects to generate the data.
 
The process research has been fast thanks to [https://bitbucket.org/polymorphteam/raw/ raw]. In the viewer application, a raw "writer" have been added, witch stores each new pair positions while the calibration data retrieval. To develop the algorithm, I started a new application that loads these positions via a raw "reader". It has been easy to develop the algo on stored data instead of having to stops the viewer, change the algo, restart the app, wait for the kinect to connect, set the roles and moves in front of the kinects to generate the data.
 +
  
 
'''25/11/2017''' - Working on a visualing / calibrating software, called NetworkViewer in the repo. A first attempt of "auto calibration" is not giving too bad results. The orientation are not processed yet, I will work on this tomorrow.
 
'''25/11/2017''' - Working on a visualing / calibrating software, called NetworkViewer in the repo. A first attempt of "auto calibration" is not giving too bad results. The orientation are not processed yet, I will work on this tomorrow.

Revision as of 14:24, 26 November 2017

log

26/11/2017 - calibration based on successive positions of skeleton >

  • white points: reference, or ground truth
  • yellow points: points to be calibrated
  • cyan points not linked together: calibrated points rotated, before translation
  • cyan points linked: calibrated points after full matrix correction

there is also a 2d projection of the trajectories on the ground, for better readability.

The process research has been fast thanks to raw. In the viewer application, a raw "writer" have been added, witch stores each new pair positions while the calibration data retrieval. To develop the algorithm, I started a new application that loads these positions via a raw "reader". It has been easy to develop the algo on stored data instead of having to stops the viewer, change the algo, restart the app, wait for the kinect to connect, set the roles and moves in front of the kinects to generate the data.


25/11/2017 - Working on a visualing / calibrating software, called NetworkViewer in the repo. A first attempt of "auto calibration" is not giving too bad results. The orientation are not processed yet, I will work on this tomorrow.

This software is a visualiser of streams. It displays messages processed by the "streamer", the software mapping kinect skeletons on an avatar (see http://vimeo.com/242486050). In this example, 2 kinects are largely overlapping each other. A first attempt to calibrate them, based only on positions, is not giving too bad results.


24/11/2017 - back to my desk! La connection de 2 kinects simultanément est concluant:

Kinectstreamer2kinect.png

Le travail sur un soft de calibration des différents points de vue est commencé:

Kinectstreamer calibrator.png


13/11/2017 - premiers essais de mapping vers divers squelettes - les hanches et le "spine" posent problèmes dans la plupart des modèles...

12/11/2017 - le calcul des orientations relatives à envoyer à blender a été tout aussi fastidieux que le reste, mais moins long. Pour ceux qui aiment la magie noire, il a fallu environ 5 heures de prises de tête pour écrire ces 2 lignes de code.

if (parent != NUI_SKELETON_POSITION_COUNT) {
	m = absolute_matrices[i] *
	absolute_matricesi[parent] * 
	model.delta_matricesi[i];
}
else {
	m = absolute_matrices[i] * model.absolute_matricesi[i];
}

Le reste des modifications est de l'ordre de l'optimisation et de la dataviz, comme la grille de 6 squelettes sous le modèle.

10/11/2017 - l'alignement du squelette kinect et de l'armature exportée depuis blender est maintenant automatique, plus besoin de tuner les matrices à la main

Kinectstreamer-automatic-skeleton-alignment-cropped.png

08/11/2017 - importation des matrices des os de l'armature blender dans l'application. Les orientations ne sont plus calculées par blender, ce qui posait de gros problèmespour le spin (rotations autour de l'axe alignés avec la direction de l'os).

Kinectstreamer-blender-matrices-import.png

05/11/2017 - première réussite: les orientations relatives sont calculées correctement et envoyées à blender via OSC[1]

23/10/2017 - code archeology, re-enabling ofxKinectNui[2]

Technology-archeology-kinect.png

resources


  1. Open Sound Control, site officiel et wikipedia
  2. https://github.com/sadmb/ofxKinectNui

online identity ∋ [ social ∋ [mastodon♥, twitter®, facebook®, diaspora, linkedin®] ∥ repos ∋ [github®, gitlab♥, bitbucket®, sourceforge] ∥ media ∋ [itch.io®, vimeo®, peertube♥, twitch.tv®, tumblr®] ∥ communities ∋ [godotengine♥, openprocessing, stackoverflow, threejs]]