<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="fr">
		<id>https://wiki-ima.plil.fr/mediawiki//api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Zassaieb</id>
		<title>Wiki d'activités IMA - Contributions de l’utilisateur [fr]</title>
		<link rel="self" type="application/atom+xml" href="https://wiki-ima.plil.fr/mediawiki//api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Zassaieb"/>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php/Sp%C3%A9cial:Contributions/Zassaieb"/>
		<updated>2026-04-25T11:05:55Z</updated>
		<subtitle>Contributions de l’utilisateur</subtitle>
		<generator>MediaWiki 1.29.2</generator>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=P6_Gestion_des_flux_thermiques_du_b%C3%A2timent_Polytech&amp;diff=14171</id>
		<title>P6 Gestion des flux thermiques du bâtiment Polytech</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=P6_Gestion_des_flux_thermiques_du_b%C3%A2timent_Polytech&amp;diff=14171"/>
				<updated>2014-10-09T08:43:05Z</updated>
		
		<summary type="html">&lt;p&gt;Zassaieb : /* Cahier des charges */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Présentation du projet ==&lt;br /&gt;
===Contexte===&lt;br /&gt;
Ce projet s'inscrit dans la continuité d'un projet entamé en IMA4 et qui consiste en la réalisation d'un système intelligent de régulation des flux thermiques des radiateurs installés à Polytech Lille pour essayer de réduire au maximum les pertes d'énergie engendrées. Il est réalisé dans le cadre du projet de développement durable initié par la direction de l'école.&lt;br /&gt;
===Objectif===&lt;br /&gt;
Réaliser un système intelligent capable de réguler le flux thermique d'un radiateur d'une salle à Polytech Lille, afin de maintenir la température de cette dernière à valeur constante, en prenant compte certains paramètres parmi lesquels: planning des salles, données météo ou température extérieure … , ainsi que les situations: fenêtre ouverte, utilisation imprévue de salle ... .&lt;br /&gt;
&lt;br /&gt;
Le résultat final est un démonstrateur sur la plateforme de test constitué du radiateur équipé de l'électrovanne automatisé. Par ailleurs, une interface de supervision doit être établi, une interface homme-machine à destination des utilisateurs de la salle peut aussi être envisageable.&lt;br /&gt;
===Cahier des charges===&lt;br /&gt;
*Choix logistique et installation de l'équipement: électrovanne, capteurs, API&lt;br /&gt;
&lt;br /&gt;
*Régulation et commande du radiateur : modélisation, simulation, mises en places des algorithmes et implémentation dans l'API&lt;br /&gt;
&lt;br /&gt;
*Supervision : Simulation du système de défaillance et réalisation de l'interface&lt;br /&gt;
&lt;br /&gt;
*Établir la connexion aux données du planning des salles et données météo&lt;br /&gt;
&lt;br /&gt;
*IHM : Réaliser une interface conviviale avec authentification et gestion des modes de chauffage&lt;br /&gt;
&lt;br /&gt;
==Déroulement du projet==&lt;br /&gt;
===Semaine 1 : 15/09 - 21/09===&lt;br /&gt;
* Analyse du projet&lt;br /&gt;
&lt;br /&gt;
* Réalisation du cahiers des charges et définition des taches&lt;br /&gt;
&lt;br /&gt;
* Etudes comparative des différents équipements&lt;br /&gt;
&lt;br /&gt;
* Comparaisons des entreprises collaboratrices&lt;br /&gt;
&lt;br /&gt;
* Etudes des solutions envisagées&lt;br /&gt;
&lt;br /&gt;
===Semaine 2 : 22/09 - 28/09===&lt;br /&gt;
* Réalisation du diagramme Gant du projet &lt;br /&gt;
&lt;br /&gt;
* Commande des composants chez wago&lt;br /&gt;
&lt;br /&gt;
* Communication avec le directeur technique de Polytech pour diverses informations techniques vis-à-vis des radiateurs&lt;br /&gt;
&lt;br /&gt;
* Analyse du système de commande existant ( projet IMA4 )&lt;br /&gt;
&lt;br /&gt;
===Semaine 3 : 29/09 - 05/10===&lt;br /&gt;
* Modélisation du système&lt;br /&gt;
&lt;br /&gt;
* Contact avec WAGO pour le suivi de la commande des pièces&lt;/div&gt;</summary>
		<author><name>Zassaieb</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=P6_Gestion_des_flux_thermiques_du_b%C3%A2timent_Polytech&amp;diff=14170</id>
		<title>P6 Gestion des flux thermiques du bâtiment Polytech</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=P6_Gestion_des_flux_thermiques_du_b%C3%A2timent_Polytech&amp;diff=14170"/>
				<updated>2014-10-09T08:40:06Z</updated>
		
		<summary type="html">&lt;p&gt;Zassaieb : /* Semaine 2 : 22/09 - 28/09 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Présentation du projet ==&lt;br /&gt;
===Contexte===&lt;br /&gt;
Ce projet s'inscrit dans la continuité d'un projet entamé en IMA4 et qui consiste en la réalisation d'un système intelligent de régulation des flux thermiques des radiateurs installés à Polytech Lille pour essayer de réduire au maximum les pertes d'énergie engendrées. Il est réalisé dans le cadre du projet de développement durable initié par la direction de l'école.&lt;br /&gt;
===Objectif===&lt;br /&gt;
Réaliser un système intelligent capable de réguler le flux thermique d'un radiateur d'une salle à Polytech Lille, afin de maintenir la température de cette dernière à valeur constante, en prenant compte certains paramètres parmi lesquels: planning des salles, données météo ou température extérieure … , ainsi que les situations: fenêtre ouverte, utilisation imprévue de salle ... .&lt;br /&gt;
&lt;br /&gt;
Le résultat final est un démonstrateur sur la plateforme de test constitué du radiateur équipé de l'électrovanne automatisé. Par ailleurs, une interface de supervision doit être établi, une interface homme-machine à destination des utilisateurs de la salle peut aussi être envisageable.&lt;br /&gt;
===Cahier des charges===&lt;br /&gt;
*Choix logistique et installation de l'équipement: électrovanne, capteurs, API&lt;br /&gt;
&lt;br /&gt;
*Régulation et commande du radiateur : modélisation, simulation, mises en places des algorithmes et implémentation dans l'API&lt;br /&gt;
&lt;br /&gt;
*Supervision : Simulation du système de défaillance et réalisation de l'interface&lt;br /&gt;
&lt;br /&gt;
*IHM : Réaliser une interface conviviale avec authentification et gestion des modes de chauffage&lt;br /&gt;
&lt;br /&gt;
==Déroulement du projet==&lt;br /&gt;
===Semaine 1 : 15/09 - 21/09===&lt;br /&gt;
* Analyse du projet&lt;br /&gt;
&lt;br /&gt;
* Réalisation du cahiers des charges et définition des taches&lt;br /&gt;
&lt;br /&gt;
* Etudes comparative des différents équipements&lt;br /&gt;
&lt;br /&gt;
* Comparaisons des entreprises collaboratrices&lt;br /&gt;
&lt;br /&gt;
* Etudes des solutions envisagées&lt;br /&gt;
&lt;br /&gt;
===Semaine 2 : 22/09 - 28/09===&lt;br /&gt;
* Réalisation du diagramme Gant du projet &lt;br /&gt;
&lt;br /&gt;
* Commande des composants chez wago&lt;br /&gt;
&lt;br /&gt;
* Communication avec le directeur technique de Polytech pour diverses informations techniques vis-à-vis des radiateurs&lt;br /&gt;
&lt;br /&gt;
* Analyse du système de commande existant ( projet IMA4 )&lt;br /&gt;
&lt;br /&gt;
===Semaine 3 : 29/09 - 05/10===&lt;br /&gt;
* Modélisation du système&lt;br /&gt;
&lt;br /&gt;
* Contact avec WAGO pour le suivi de la commande des pièces&lt;/div&gt;</summary>
		<author><name>Zassaieb</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=P6_Gestion_des_flux_thermiques_du_b%C3%A2timent_Polytech&amp;diff=14169</id>
		<title>P6 Gestion des flux thermiques du bâtiment Polytech</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=P6_Gestion_des_flux_thermiques_du_b%C3%A2timent_Polytech&amp;diff=14169"/>
				<updated>2014-10-09T08:38:17Z</updated>
		
		<summary type="html">&lt;p&gt;Zassaieb : /* Déroulement du projet */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Présentation du projet ==&lt;br /&gt;
===Contexte===&lt;br /&gt;
Ce projet s'inscrit dans la continuité d'un projet entamé en IMA4 et qui consiste en la réalisation d'un système intelligent de régulation des flux thermiques des radiateurs installés à Polytech Lille pour essayer de réduire au maximum les pertes d'énergie engendrées. Il est réalisé dans le cadre du projet de développement durable initié par la direction de l'école.&lt;br /&gt;
===Objectif===&lt;br /&gt;
Réaliser un système intelligent capable de réguler le flux thermique d'un radiateur d'une salle à Polytech Lille, afin de maintenir la température de cette dernière à valeur constante, en prenant compte certains paramètres parmi lesquels: planning des salles, données météo ou température extérieure … , ainsi que les situations: fenêtre ouverte, utilisation imprévue de salle ... .&lt;br /&gt;
&lt;br /&gt;
Le résultat final est un démonstrateur sur la plateforme de test constitué du radiateur équipé de l'électrovanne automatisé. Par ailleurs, une interface de supervision doit être établi, une interface homme-machine à destination des utilisateurs de la salle peut aussi être envisageable.&lt;br /&gt;
===Cahier des charges===&lt;br /&gt;
*Choix logistique et installation de l'équipement: électrovanne, capteurs, API&lt;br /&gt;
&lt;br /&gt;
*Régulation et commande du radiateur : modélisation, simulation, mises en places des algorithmes et implémentation dans l'API&lt;br /&gt;
&lt;br /&gt;
*Supervision : Simulation du système de défaillance et réalisation de l'interface&lt;br /&gt;
&lt;br /&gt;
*IHM : Réaliser une interface conviviale avec authentification et gestion des modes de chauffage&lt;br /&gt;
&lt;br /&gt;
==Déroulement du projet==&lt;br /&gt;
===Semaine 1 : 15/09 - 21/09===&lt;br /&gt;
* Analyse du projet&lt;br /&gt;
&lt;br /&gt;
* Réalisation du cahiers des charges et définition des taches&lt;br /&gt;
&lt;br /&gt;
* Etudes comparative des différents équipements&lt;br /&gt;
&lt;br /&gt;
* Comparaisons des entreprises collaboratrices&lt;br /&gt;
&lt;br /&gt;
* Etudes des solutions envisagées&lt;br /&gt;
&lt;br /&gt;
===Semaine 2 : 22/09 - 28/09===&lt;br /&gt;
* Réalisation du diagramme Gant du projet ( Annexe )&lt;br /&gt;
&lt;br /&gt;
* Commande des composants chez wago&lt;br /&gt;
&lt;br /&gt;
* Communication avec le directeur technique de Polytech pour diverses informations techniques vis-à-vis des radiateurs&lt;br /&gt;
&lt;br /&gt;
* Analyse du système de commande existant ( projet IMA4 )&lt;br /&gt;
&lt;br /&gt;
===Semaine 3 : 29/09 - 05/10===&lt;br /&gt;
* Modélisation du système&lt;br /&gt;
&lt;br /&gt;
* Contact avec WAGO pour le suivi de la commande des pièces&lt;/div&gt;</summary>
		<author><name>Zassaieb</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=P6_Gestion_des_flux_thermiques_du_b%C3%A2timent_Polytech&amp;diff=14168</id>
		<title>P6 Gestion des flux thermiques du bâtiment Polytech</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=P6_Gestion_des_flux_thermiques_du_b%C3%A2timent_Polytech&amp;diff=14168"/>
				<updated>2014-10-09T08:32:42Z</updated>
		
		<summary type="html">&lt;p&gt;Zassaieb : /* Cahier des charges */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Présentation du projet ==&lt;br /&gt;
===Contexte===&lt;br /&gt;
Ce projet s'inscrit dans la continuité d'un projet entamé en IMA4 et qui consiste en la réalisation d'un système intelligent de régulation des flux thermiques des radiateurs installés à Polytech Lille pour essayer de réduire au maximum les pertes d'énergie engendrées. Il est réalisé dans le cadre du projet de développement durable initié par la direction de l'école.&lt;br /&gt;
===Objectif===&lt;br /&gt;
Réaliser un système intelligent capable de réguler le flux thermique d'un radiateur d'une salle à Polytech Lille, afin de maintenir la température de cette dernière à valeur constante, en prenant compte certains paramètres parmi lesquels: planning des salles, données météo ou température extérieure … , ainsi que les situations: fenêtre ouverte, utilisation imprévue de salle ... .&lt;br /&gt;
&lt;br /&gt;
Le résultat final est un démonstrateur sur la plateforme de test constitué du radiateur équipé de l'électrovanne automatisé. Par ailleurs, une interface de supervision doit être établi, une interface homme-machine à destination des utilisateurs de la salle peut aussi être envisageable.&lt;br /&gt;
===Cahier des charges===&lt;br /&gt;
*Choix logistique et installation de l'équipement: électrovanne, capteurs, API&lt;br /&gt;
&lt;br /&gt;
*Régulation et commande du radiateur : modélisation, simulation, mises en places des algorithmes et implémentation dans l'API&lt;br /&gt;
&lt;br /&gt;
*Supervision : Simulation du système de défaillance et réalisation de l'interface&lt;br /&gt;
&lt;br /&gt;
*IHM : Réaliser une interface conviviale avec authentification et gestion des modes de chauffage&lt;br /&gt;
&lt;br /&gt;
==Déroulement du projet==&lt;br /&gt;
===Semaine 1 : 15/09 - 21/09===&lt;br /&gt;
&lt;br /&gt;
===Semaine 2 : 22/09 - 28/09===&lt;br /&gt;
&lt;br /&gt;
===Semaine 3 : 29/09 - 05/10===&lt;/div&gt;</summary>
		<author><name>Zassaieb</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=P6_Gestion_des_flux_thermiques_du_b%C3%A2timent_Polytech&amp;diff=14167</id>
		<title>P6 Gestion des flux thermiques du bâtiment Polytech</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=P6_Gestion_des_flux_thermiques_du_b%C3%A2timent_Polytech&amp;diff=14167"/>
				<updated>2014-10-09T08:31:45Z</updated>
		
		<summary type="html">&lt;p&gt;Zassaieb : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Présentation du projet ==&lt;br /&gt;
===Contexte===&lt;br /&gt;
Ce projet s'inscrit dans la continuité d'un projet entamé en IMA4 et qui consiste en la réalisation d'un système intelligent de régulation des flux thermiques des radiateurs installés à Polytech Lille pour essayer de réduire au maximum les pertes d'énergie engendrées. Il est réalisé dans le cadre du projet de développement durable initié par la direction de l'école.&lt;br /&gt;
===Objectif===&lt;br /&gt;
Réaliser un système intelligent capable de réguler le flux thermique d'un radiateur d'une salle à Polytech Lille, afin de maintenir la température de cette dernière à valeur constante, en prenant compte certains paramètres parmi lesquels: planning des salles, données météo ou température extérieure … , ainsi que les situations: fenêtre ouverte, utilisation imprévue de salle ... .&lt;br /&gt;
&lt;br /&gt;
Le résultat final est un démonstrateur sur la plateforme de test constitué du radiateur équipé de l'électrovanne automatisé. Par ailleurs, une interface de supervision doit être établi, une interface homme-machine à destination des utilisateurs de la salle peut aussi être envisageable.&lt;br /&gt;
===Cahier des charges===&lt;br /&gt;
Choix logistique et installation de l'équipement: électrovanne, capteurs, API&lt;br /&gt;
&lt;br /&gt;
Régulation et commande du radiateur : modélisation, simulation, mises en places des algorithmes et implémentation dans l'API&lt;br /&gt;
&lt;br /&gt;
Supervision : Simulation du système de défaillance et réalisation de l'interface&lt;br /&gt;
&lt;br /&gt;
IHM : Réaliser une interface conviviale avec authentification et gestion des modes de chauffage&lt;br /&gt;
&lt;br /&gt;
==Déroulement du projet==&lt;br /&gt;
===Semaine 1 : 15/09 - 21/09===&lt;br /&gt;
&lt;br /&gt;
===Semaine 2 : 22/09 - 28/09===&lt;br /&gt;
&lt;br /&gt;
===Semaine 3 : 29/09 - 05/10===&lt;/div&gt;</summary>
		<author><name>Zassaieb</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=P6_Gestion_des_flux_thermiques_du_b%C3%A2timent_Polytech&amp;diff=14042</id>
		<title>P6 Gestion des flux thermiques du bâtiment Polytech</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=P6_Gestion_des_flux_thermiques_du_b%C3%A2timent_Polytech&amp;diff=14042"/>
				<updated>2014-10-01T08:38:41Z</updated>
		
		<summary type="html">&lt;p&gt;Zassaieb : Page créée avec «   == Présentation du projet == ===Contexte=== ===Objectif=== ===Cahier des charges===  ==Déroulement du projet== ===Semaine 1 : 15/09 - 21/09===  ===Semaine 2 : 22/09 - 28/... »&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;br /&gt;
== Présentation du projet ==&lt;br /&gt;
===Contexte===&lt;br /&gt;
===Objectif===&lt;br /&gt;
===Cahier des charges===&lt;br /&gt;
&lt;br /&gt;
==Déroulement du projet==&lt;br /&gt;
===Semaine 1 : 15/09 - 21/09===&lt;br /&gt;
&lt;br /&gt;
===Semaine 2 : 22/09 - 28/09===&lt;br /&gt;
&lt;br /&gt;
===Semaine 3 : 29/09 - 05/10===&lt;/div&gt;</summary>
		<author><name>Zassaieb</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=Projets_IMA5_2014/2015&amp;diff=14041</id>
		<title>Projets IMA5 2014/2015</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=Projets_IMA5_2014/2015&amp;diff=14041"/>
				<updated>2014-10-01T08:27:01Z</updated>
		
		<summary type="html">&lt;p&gt;Zassaieb : /* Répartition des binômes */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Merci de référencer vos pages de projets ici. Merci aussi d'uniformiser vos formats que ce soit en regardant la présentation des projets déjà créés ou en allant modifier le format des précédents si votre façon de faire vous semble la meilleure. Dans tous les cas un minimum de communication entre les binômes est conseillée.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Répartition des binômes ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table border=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;th&amp;gt;Projet&amp;lt;/th&amp;gt;&lt;br /&gt;
  &amp;lt;th&amp;gt;Elèves&amp;lt;/th&amp;gt;&lt;br /&gt;
  &amp;lt;th&amp;gt;Encadrant Ecole&amp;lt;/th&amp;gt;&lt;br /&gt;
  &amp;lt;th&amp;gt;Rapport décembre&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;[[P6 Gestion des flux thermiques du bâtiment Polytech]]&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Florian Royer / Zohour Assaieb &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt; Belkacem Ould Bouamama &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;  &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[P8 Pilulier]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt; Alexandre Mercier / Emile Pinet&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt; Thomas VANTROYS / Alexandre BOE &amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[P9 Agenda pour personnes non lectrices]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt; Cédric DESPREZ &amp;amp; Soufiane HADDAOUI &amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt; GAPAS/Laurent Grisoni &amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[P11 Détecteur d'obstacles pour fauteuils électriques]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt; Geoffrey ROSE / Marjorie TIXIER &amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt; GAPAS / Blaise Conrard &amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[P21 balise Bluetooth Low Energy]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt; Kévin CHALONO / Armagan YAMNAZ&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt; Thomas VANTROYS &amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[P22 Google Glass en logistique ]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt; Jérémy Gondry / Vincent Meunier &amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt; Laurent Grisoni &amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[P24 Robot de surveillance domestique]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt; Sébastien DELTOMBE &amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt; Xavier Redon &amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[P28 Modélisation d'un robot chirurgical déformable pour la simulation et le contrôle]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt; Charlotte BRICOUT / Nathan MARTIN &amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt; Jérémie DEQUIDT&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[P33 Ligthing contactless / « wireless]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt; Benjamin Lafit &amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt; -- &amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[P44 Création d'un systeme domotique sans fil ]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt; Benoit MALIAR / Thomas MAURICE&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt; Pierrick BURET / Thomas VANTROYS  &amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[P45 Aide à la navigation d'un véhicule autonome]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt; Pierre APPERCÉ&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt; Rochdi MERZOUKI &amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[P46 Simulation Temps Réel d'un Environnement de Robots Autonomes Logisticiens]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt; Valentin VERGEZ&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt; Rochdi MERZOUKI &amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;/tr&amp;gt;&lt;br /&gt;
 &amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;[[P59 Assistance globale pour aide au parking]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt; Mathieu GERIER / Céline LY &amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt; Alexandre BOE / Thomas VANTROYS &amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;/div&gt;</summary>
		<author><name>Zassaieb</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=Fichier:RapportProjetIMA4_OutOfSpace.pdf&amp;diff=12358</id>
		<title>Fichier:RapportProjetIMA4 OutOfSpace.pdf</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=Fichier:RapportProjetIMA4_OutOfSpace.pdf&amp;diff=12358"/>
				<updated>2014-04-15T22:16:37Z</updated>
		
		<summary type="html">&lt;p&gt;Zassaieb : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Zassaieb</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=Out_of_Space&amp;diff=12357</id>
		<title>Out of Space</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=Out_of_Space&amp;diff=12357"/>
				<updated>2014-04-15T22:15:59Z</updated>
		
		<summary type="html">&lt;p&gt;Zassaieb : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Généralités sur le projet ==&lt;br /&gt;
&lt;br /&gt;
=== Contexte ===&lt;br /&gt;
&lt;br /&gt;
Ce projet met en collaboration une artiste et une société de production de jeu vidéo 3D, et vise à mettre en place une application interactive utilisant une classe de dispositifs d'interaction orienté &amp;quot;maquette holographique&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=== Descriptif ===&lt;br /&gt;
&lt;br /&gt;
Le projet vise à réaliser une application interactive sur un affichage stéréoscopique, et qui consiste à piloter un objet (une bille) dans un certain environnement, tout en déroulant l’évolution de cet environnement sur une vidéo de fond. Le mouvement de cet objet est contrôlé par les gestes des mains qui sont détectées par une Kinect et traduits sur un écran 3D.&lt;br /&gt;
&lt;br /&gt;
=== Problématique ===&lt;br /&gt;
&lt;br /&gt;
La problématique qui se pose est de pouvoir prendre aussi en compte la tête de l’utilisateur sur l’espace d’acquisition afin d’avoir les données sur l’angle de vision et donc d’orienter l’affichage 3D sur l’écran selon sa position, ainsi le mouvement de la tête impliquera l’inclinaison des objets affichés dans un sens ou dans l’autre.&lt;br /&gt;
&lt;br /&gt;
== == &lt;br /&gt;
&lt;br /&gt;
=== Cahier des charges ===&lt;br /&gt;
{{Petit|''Le cahier des charges ne peut être réalisé pour l'instant car notre projet est une continuité d'un projet réalisé actuellement par des élèves en IMA5, et les tâches qui nous seront affectées vont dépendre de leur avancement. La phase de transition sera faite quelques jours avant leur soutenance. Cependant, nous avons commencé par nous familiariser aux outils à utiliser''}}&amp;lt;br\&amp;gt;&amp;lt;br\&amp;gt;&lt;br /&gt;
-&amp;gt;  Mise en place d’un outil de Calibration pour calibrer et mettre en place la scène 3D selon la position de l’utilisateur, pour l’utilisation par un non informaticien.&lt;br /&gt;
&lt;br /&gt;
=== Les outils matériels/logiciels utilisés ===&lt;br /&gt;
&lt;br /&gt;
* Kinect, le périphérique de reconnaissance de mouvement&amp;lt;br/&amp;gt;&lt;br /&gt;
* Ecran Stereoscopique pour l'affichage 3D&amp;lt;br/&amp;gt;&lt;br /&gt;
* 3Gear possède une technologie qui permet, à partir des caméras 3D de la Kinect, de reconstruire une représentation précise des doigts et de ce que les mains font, en prenant les données 3D brutes et les transformant en informations utilisables sur l'état des mains. Les interfaces de programmation sont basées sur le pointage et le pincement et fournissent les angles des articulations approximatives, elles sont disponibles en C ++, C # et Java&amp;lt;br/&amp;gt;&lt;br /&gt;
* Unity 3D est un logiciel middleware de création de contenu interactif comportant de la vidéo et des objets 3D/2D. Il permet de créer des scènes supportant des éclairages, des terrains, des caméras, des textures ... . L’intérêt de ce logiciel est que celui-ci dispose d’une interface intuitive d’intégration d’objets et de scripts ; l’éditeur d’Unity intègre des composants pré-configurés évitant le développement de code fastidieux.&lt;br /&gt;
* QT est une interface de programmation orientée objet et développée en C++. Elle offre des composants d'interface graphique (widgets), d'accès aux données, de connexions réseaux, de gestion des fils d'exécution, d'analyse XML, etc. Par certains aspects c’est aussi un framework lorsqu'on l'utilise pour concevoir des interfaces graphiques ou que l'on architecture son application en utilisant les mécanismes des “signaux” et “slots” par exemple.&lt;br /&gt;
&lt;br /&gt;
== Déroulement du projet ==&lt;br /&gt;
===Semaine 03/02 – 07/02===&lt;br /&gt;
* Entretien avec Mr Laurent Grisonni pour comprendre le projet&lt;br /&gt;
* Etablissement d’un cahier de charge global en attente de précisions après la soutenance des IMA5&lt;br /&gt;
* Spécifications des outils et matériels utilisés&lt;br /&gt;
===Semaine 10/02 - 14/02===&lt;br /&gt;
* Rencontre avec les étudiants qui travaillent déjà sur le sujet&lt;br /&gt;
* Compréhension du travail réalisé&lt;br /&gt;
* Suggestion d’éventuelles améliorations&lt;br /&gt;
===Semaine 17/02 - 21/02===&lt;br /&gt;
* Prise en main de l’outil Unity à l’aide de quelques Tutoriels pour la création de scènes 3D&lt;br /&gt;
* Compréhension et analyse de la librairie 3gear de détection de geste via la Kinect&lt;br /&gt;
===Semaine 03/03 – 07/03===&lt;br /&gt;
* Spécification du besoin : Mise en place d’un outil de Calibration pour calibrer mettre en place la scène 3D selon la position de l’utilisateur, pour l’utilisation par un non informaticien.&lt;br /&gt;
===Semaine 12/03 – 14/03===&lt;br /&gt;
* Installation à l’IRCICA, remise des clefs et badges de la salle de travail, récupération du SVN du projet.&lt;br /&gt;
* Rencontre de plusieurs problèmes dont :&lt;br /&gt;
o	Pas de licence Windows sur le poste fourni &amp;lt;br/&amp;gt;&lt;br /&gt;
o	Problèmes de réseau et d’accès internet pour l’extraction du SVN&lt;br /&gt;
&lt;br /&gt;
===Semaine 24/03 – 28/03===&lt;br /&gt;
* Installation du logiciel Unity&lt;br /&gt;
* Impossibilité d’installer les logiciels de programmation pour la librairie 3gear: Processeur incompatible&lt;br /&gt;
* Premiers tests du programme existant, incomplets par manque d’outils.&lt;br /&gt;
* Ajustements de la  scène Unity à la taille de l’écran Stéréoscopique&lt;br /&gt;
&lt;br /&gt;
===Semaine 31/03 – 04/04===&lt;br /&gt;
* Prise en main de l’outil de développement d’interfaces graphiques QT&lt;br /&gt;
* Première ébauche de la gestion des fenêtres de l’interface graphique à développer.&lt;br /&gt;
* Problème rencontré : l’outil est bloqué quand on affecte à un bouton le passage à une deuxième fenêtre et l’exécution d’une application en même temps.&lt;br /&gt;
* Réalisation d’un programme C permettant le transfert des coordonnées du fichier source au fichier de destination.&lt;br /&gt;
&lt;br /&gt;
===Semaine 07/04 – 11/04===&lt;br /&gt;
* Test du programme de transfert de données sur l’outil et son implémentation&lt;br /&gt;
* Finalisation de l’interface graphique, en résolvant le problème rencontré.&lt;br /&gt;
* L’outil réalise bien la tâche demandée.&lt;br /&gt;
&lt;br /&gt;
==Travail réalisé==&lt;br /&gt;
===Sur Unity===&lt;br /&gt;
&lt;br /&gt;
Au tout début, il fallait ajuster la scène à la taille de l’écran stéréoscopique  sous Unity. La scène se présente comme suit :&amp;lt;br\&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Unity1.png|vignette|alt=texte alternatif|Scène Unity]]&lt;br /&gt;
La scène était perpendiculaire à l’écran stéréoscopique. Il fallait l’ajuster de façon à ce qu’on aie un ‘ground’ (qui correspond à l’écran stéréoscopique) et qui soit parallèle à la scène et aillant les mêmes dimensions que cette dernière, afin qu’il n’y ait pas de dépassement de bord.  &lt;br /&gt;
A travers plusieurs manipulations sous Unity, nous sommes arrivés au résultat suivant :&amp;lt;br\&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Unity2.png|vignette|alt=texte alternatif|Scène résultat]]&lt;br /&gt;
&lt;br /&gt;
===Sur QT===&lt;br /&gt;
;Outil de calibration : Cet outil est censé permettre à l’artiste ou n’importe quel autre utilisateur non :information de pouvoir ajuster les réglages et le calibrage des Kinects par rapport à l’écran stéréoscopique :sans avoir à modifier les lignes de code de l’application.&lt;br /&gt;
&lt;br /&gt;
;Calibrage : Afin de réaliser le calibrage de la Kinect, il faut d’abord lancer les programmes d’installation :de la librairie 3gear de la Kinect (nimble_calib et nimble_server, ces applications sont fournies avec le kit :de la librairie), il faut ensuite lancer l’application Kinect_MSFT_Calibration. Cette application a été déjà :développée pour ce projet et qui consiste en l’affichage de l’image reçue par la Kinect afin de sélectionner :dessus les points des 4 coins de l’écran stéréoscopique (l’écran étant visible sur l’image), l’application :enregistre alors ces coordonnées dans un fichier texte, et donc, ces coordonnées doivent être repris et mis :dans un autre fichier texte en effectuant quelques modifications dessus. Ce dernier est celui qui est utilisé :par l’application d’affichage de la scène 3D sur l’écran 3D, et qui utilise ces points pour régler :l’affichage.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Dans cette partie, nous avons utilisé le logiciel de développement d’interface graphique QT. &amp;lt;br\&amp;gt;&lt;br /&gt;
Tout d’abord, nous avons commencé à nous familiariser au logiciel QT et à son environnement à travers plusieurs tutoriels, ce qui nous a aidés tout au long de notre projet afin de réaliser notre interface. &amp;lt;br\&amp;gt;&lt;br /&gt;
L’interface graphique de calibration comporte 3 fenêtres. On peut se déplacer d’une fenêtre à l’autre grâce à des boutons &amp;lt;br\&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Première fenêtre :&lt;br /&gt;
La première fenêtre est la fenêtre typique de chaque installation, qui demande à l’utilisateur s’il veut calibrer sa Kinect ou bien s’il s’est trompé d’application et qu’il voudrait annuler. &amp;lt;br\&amp;gt;&amp;lt;br\&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;[[Fichier:Mainwindow.PNG]]&amp;lt;/center&amp;gt; &amp;lt;br\&amp;gt;&lt;br /&gt;
Dans la suite le code MainWindow.h et MainWindow.cpp de la fenêtre.&amp;lt;br\&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
MainWindow.h&lt;br /&gt;
&lt;br /&gt;
    #ifndef MAINWINDOW_H&lt;br /&gt;
    #define MAINWINDOW_H&lt;br /&gt;
    #include &amp;lt;QMainWindow&amp;gt;&lt;br /&gt;
    #include &amp;lt;QApplication&amp;gt;&lt;br /&gt;
    #include &amp;lt;QProcess&amp;gt;&lt;br /&gt;
    #include &amp;lt;QtGui&amp;gt;&lt;br /&gt;
    #include &amp;quot;calibsetup.h&amp;quot;&lt;br /&gt;
&lt;br /&gt;
    namespace Ui &lt;br /&gt;
    {&lt;br /&gt;
        class MainWindow;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    class MainWindow : public QMainWindow&lt;br /&gt;
    {&lt;br /&gt;
        Q_OBJECT&lt;br /&gt;
&lt;br /&gt;
    public:&lt;br /&gt;
        explicit MainWindow(QWidget *parent = 0);&lt;br /&gt;
        ~MainWindow();&lt;br /&gt;
    &lt;br /&gt;
    private slots:&lt;br /&gt;
    &lt;br /&gt;
        void on_pushButton_clicked();&lt;br /&gt;
    &lt;br /&gt;
        void on_pushButton_2_clicked();&lt;br /&gt;
    &lt;br /&gt;
        void on_pushButton_3_clicked();&lt;br /&gt;
    &lt;br /&gt;
    private:&lt;br /&gt;
        Ui::MainWindow *ui;&lt;br /&gt;
        calib *calibsetup;&lt;br /&gt;
    };&lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
    #endif // MAINWINDOW_H&lt;br /&gt;
  &lt;br /&gt;
  &lt;br /&gt;
MainWindow.cpp :&lt;br /&gt;
&lt;br /&gt;
    #include &amp;quot;mainwindow.h&amp;quot;&lt;br /&gt;
    #include &amp;quot;ui_mainwindow.h&amp;quot;&lt;br /&gt;
    #include &amp;quot;calibsetup.h&amp;quot;&lt;br /&gt;
    &lt;br /&gt;
    #include &amp;lt;QFileDialog&amp;gt;&lt;br /&gt;
    #include &amp;lt;QMessageBox&amp;gt;&lt;br /&gt;
    #include &amp;lt;QDesktopServices&amp;gt;&lt;br /&gt;
    #include &amp;lt;QUrl&amp;gt;&lt;br /&gt;
    #include &amp;lt;QApplication&amp;gt;&lt;br /&gt;
    #include &amp;lt;QDebug&amp;gt;&lt;br /&gt;
    #include &amp;lt;QObject&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
    MainWindow::MainWindow(QWidget *parent) :   QMainWindow(parent),&lt;br /&gt;
&lt;br /&gt;
    ui(new Ui::MainWindow)&lt;br /&gt;
    {&lt;br /&gt;
        ui-&amp;gt;setupUi(this);&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    MainWindow::~MainWindow()&lt;br /&gt;
    {&lt;br /&gt;
        delete ui;&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    void MainWindow::on_pushButton_clicked()&lt;br /&gt;
    {&lt;br /&gt;
        calibsetup = new calib;&lt;br /&gt;
        calibsetup-&amp;gt;show();&lt;br /&gt;
        this-&amp;gt;hide();&lt;br /&gt;
    &lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
    void MainWindow::on_pushButton_2_clicked()&lt;br /&gt;
    {&lt;br /&gt;
          QMessageBox msgBox;&lt;br /&gt;
          msgBox.setWindowTitle(&amp;quot;Exit setup&amp;quot;);&lt;br /&gt;
          msgBox.addButton(QMessageBox::Yes);&lt;br /&gt;
          msgBox.addButton(QMessageBox::No);&lt;br /&gt;
          msgBox.setText(&amp;quot;Voulez-vous vraiment quitter la calibration ?&amp;quot;);&lt;br /&gt;
    &lt;br /&gt;
          int selection = msgBox.exec();&lt;br /&gt;
          if(selection == QMessageBox::Yes)&lt;br /&gt;
          {&lt;br /&gt;
            QCoreApplication::quit();&lt;br /&gt;
          }&lt;br /&gt;
    }&lt;br /&gt;
  &lt;br /&gt;
    &amp;lt;br\&amp;gt;&amp;lt;br\&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
* Deuxième fenêtre :&lt;br /&gt;
Le bouton ‘suivant’ permet de continuer l’installation et ainsi de passer à la deuxième fenêtre où on a listé les différentes étapes nécessaires pour la calibration. La calibration se fait via l’application ‘KinectMSFTCalibration’. Pour lancer cette dernière, l’utilisateur a besoin de cliquer sur le bouton ‘commencer’ qui permet d’afficher la vue de la Kinect qui est dirigé vers l’écran stéréoscopique. On pourra par la suite définir les points en cliquant sur F2 puis sur les bords de l’écran en commençant par le bas de l’écran à gauche puis à droite ensuite en haut à droite puis à gauche dans le sens antihoraire. Quand on place les 4 points au bord de l’écran, on définit le plan de définition. F3 nous permet de sauvegarder les coordonnées des points saisie dans un fichier .txt. Quand on clique sur le bouton 'suivant', on exécute un programme qui nous permet de copier ces coordonnées vers un notre fichier texte. Pour pouvoir revenir à la fenêtre calibsetup, il suffit de fermer l’application. &amp;lt;br\&amp;gt;&amp;lt;br\&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;[[Fichier:Setupcalibration.PNG]]&amp;lt;/center&amp;gt;&amp;lt;br\&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La fenêtre qui permet la calibration est la suivante :&amp;lt;br\&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;[[Fichier:Kinect.PNG]]&amp;lt;/center&amp;gt;&amp;lt;br\&amp;gt;&lt;br /&gt;
Comme vous l'avez remarqué, on a 3 points au bord de l'écran intitulé dans l'ordre BL - BR - TR - TL&amp;lt;br\&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Voici le .h et .cpp de cette fenêtre :&lt;br /&gt;
&lt;br /&gt;
Calibsetup.h :&lt;br /&gt;
&lt;br /&gt;
    #ifndef CALIB_H&lt;br /&gt;
    #define CALIB_H&lt;br /&gt;
    &lt;br /&gt;
    #include &amp;lt;QDialog&amp;gt;&lt;br /&gt;
    #include &amp;quot;fincalibration.h&amp;quot;&lt;br /&gt;
    &lt;br /&gt;
    namespace Ui {&lt;br /&gt;
    class calib;&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    class calib : public QDialog&lt;br /&gt;
    {&lt;br /&gt;
        Q_OBJECT&lt;br /&gt;
    &lt;br /&gt;
    public:&lt;br /&gt;
            explicit calib(QWidget *parent = 0);&lt;br /&gt;
        ~calib();&lt;br /&gt;
    &lt;br /&gt;
    private slots:&lt;br /&gt;
        void on_pushButton_clicked();&lt;br /&gt;
    &lt;br /&gt;
        void on_pushButton_2_clicked();&lt;br /&gt;
    &lt;br /&gt;
        void on_pushButton_3_clicked();&lt;br /&gt;
    &lt;br /&gt;
    private:&lt;br /&gt;
        Ui::calib *ui;&lt;br /&gt;
        FinCalibration *fincalib ;&lt;br /&gt;
    };&lt;br /&gt;
    &lt;br /&gt;
    #endif // CALIB_H&lt;br /&gt;
    &lt;br /&gt;
Calibsetup.cpp :&lt;br /&gt;
&lt;br /&gt;
    #include &amp;quot;calibsetup.h&amp;quot;&lt;br /&gt;
    #include &amp;quot;ui_calibsetup.h&amp;quot;&lt;br /&gt;
    #include &amp;quot;fincalibration.h&amp;quot;&lt;br /&gt;
    #include &amp;lt;QMessageBox&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
    calib::calib(QWidget *parent) :&lt;br /&gt;
        QDialog(parent),&lt;br /&gt;
        ui(new Ui::calib)&lt;br /&gt;
    {&lt;br /&gt;
        ui-&amp;gt;setupUi(this);&lt;br /&gt;
    }&lt;br /&gt;
    calib::~calib()&lt;br /&gt;
    {&lt;br /&gt;
        delete ui;&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    void calib::on_pushButton_clicked()&lt;br /&gt;
    {&lt;br /&gt;
        system(&amp;quot;C:/Users/Demo.ALCOVE-HP-MINT4/Desktop/OOS/nimble_calib.bat&amp;quot;);&lt;br /&gt;
        system(&amp;quot;C:/Users/Demo.ALCOVE-HP-MINT4/Desktop/OOS/nimble_server.bat&amp;quot;);&lt;br /&gt;
        system(&amp;quot;C:/Users/Demo.ALCOVE-HP-MINT4/Desktop/OOS/tool/KinectMSFTCalibration.exe&amp;quot;);&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    void calib::on_pushButton_2_clicked()&lt;br /&gt;
    {&lt;br /&gt;
            fincalib = new FinCalibration;&lt;br /&gt;
            fincalib-&amp;gt;show();&lt;br /&gt;
            this-&amp;gt;hide();&lt;br /&gt;
            system(&amp;quot;C:/Users/Demo.ALCOVE-HP-MINT4/Desktop/OOS/Transfert_Points.exe&amp;quot;)&lt;br /&gt;
    ;}&lt;br /&gt;
    &lt;br /&gt;
    void calib::on_pushButton_3_clicked()&lt;br /&gt;
    {&lt;br /&gt;
        QMessageBox msgBox;&lt;br /&gt;
          msgBox.setWindowTitle(&amp;quot;Calibration setup&amp;quot;);&lt;br /&gt;
          msgBox.addButton(QMessageBox::Yes);&lt;br /&gt;
          msgBox.addButton(QMessageBox::No);&lt;br /&gt;
          msgBox.setText(&amp;quot;Voulez-vous vraiment quitter la calibration ?&amp;quot;);&lt;br /&gt;
    &lt;br /&gt;
          int selection = msgBox.exec();&lt;br /&gt;
          if(selection == QMessageBox::Yes)&lt;br /&gt;
          {&lt;br /&gt;
            QCoreApplication::quit();&lt;br /&gt;
          }&lt;br /&gt;
    }&lt;br /&gt;
    &amp;lt;br\&amp;gt;&amp;lt;br\&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
* Troisième fenêtre:&lt;br /&gt;
En ce qui concerne la 3éme fenêtre, elle permet juste de dire à l’utilisateur que la calibration a été bien faite et que les points ont bien été enregistrés dans le fichier texte puis copier dans le deuxième fichier texte. Voici un imprime écran de la fenêtre :&amp;lt;br\&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;[[Fichier:Fin.PNG]]&amp;lt;/center&amp;gt;&amp;lt;br\&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Voici le code .h et .cpp de cette 3éme fenêtre :&amp;lt;br\&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Fincalibration.h&lt;br /&gt;
&lt;br /&gt;
    #ifndef FINCALIBRATION_H&lt;br /&gt;
    #define FINCALIBRATION_H&lt;br /&gt;
    &lt;br /&gt;
    #include &amp;lt;QDialog&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
    namespace Ui {&lt;br /&gt;
    class FinCalibration;&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    class FinCalibration : public QDialog&lt;br /&gt;
    {&lt;br /&gt;
        Q_OBJECT&lt;br /&gt;
    &lt;br /&gt;
    public:&lt;br /&gt;
        explicit FinCalibration(QWidget *parent = 0);&lt;br /&gt;
        ~FinCalibration();&lt;br /&gt;
    &lt;br /&gt;
    private slots:&lt;br /&gt;
        void on_pushButton_clicked();&lt;br /&gt;
    &lt;br /&gt;
    private:&lt;br /&gt;
        Ui::FinCalibration *ui;&lt;br /&gt;
    &lt;br /&gt;
    };&lt;br /&gt;
    &lt;br /&gt;
    #endif // FINCALIBRATION_H&lt;br /&gt;
    &lt;br /&gt;
    Fincalibration.cpp&lt;br /&gt;
    &lt;br /&gt;
    #include &amp;quot;fincalibration.h&amp;quot;&lt;br /&gt;
    #include &amp;quot;ui_fincalibration.h&amp;quot;&lt;br /&gt;
    &lt;br /&gt;
    #include &amp;lt;QMessageBox&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
    FinCalibration::FinCalibration(QWidget *parent) :&lt;br /&gt;
        QDialog(parent),&lt;br /&gt;
        ui(new Ui::FinCalibration)&lt;br /&gt;
    {&lt;br /&gt;
        ui-&amp;gt;setupUi(this);&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    FinCalibration::~FinCalibration()&lt;br /&gt;
    {&lt;br /&gt;
        delete ui;&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    void FinCalibration::on_pushButton_clicked()&lt;br /&gt;
    {&lt;br /&gt;
          QCoreApplication::quit();&lt;br /&gt;
    &lt;br /&gt;
    }&lt;br /&gt;
    &amp;lt;br\&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pour le bouton ‘annuler’ qui est présent dans toutes les fenêtres, quand on appui dessus, il demande à l’utilisateur s’il veut vraiment quitter la calibration en lui proposant deux boutons « Yes » et « No ». Le bouton « no » permet de revenir à la fenêtre précédente et le bouton « yes » permet de quitter l’application.&amp;lt;br\&amp;gt;&lt;br /&gt;
[[Fichier:Annuler.PNG]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Rapport ==&lt;br /&gt;
&lt;br /&gt;
[[Média:RapportProjetIMA4_OutOfSpace.pdf]]&lt;/div&gt;</summary>
		<author><name>Zassaieb</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=Out_of_Space&amp;diff=12143</id>
		<title>Out of Space</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=Out_of_Space&amp;diff=12143"/>
				<updated>2014-04-15T20:07:19Z</updated>
		
		<summary type="html">&lt;p&gt;Zassaieb : /* Semaine 31/03 – 04/04 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Généralités sur le projet ==&lt;br /&gt;
&lt;br /&gt;
=== Contexte ===&lt;br /&gt;
&lt;br /&gt;
Ce projet met en collaboration une artiste et une société de production de jeu vidéo 3D, et vise à mettre en place une application interactive utilisant une classe de dispositifs d'interaction orienté &amp;quot;maquette holographique&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=== Descriptif ===&lt;br /&gt;
&lt;br /&gt;
Le projet vise à réaliser une application interactive sur un affichage stéréoscopique, et qui consiste à piloter un objet (une bille) dans un certain environnement, tout en déroulant l’évolution de cet environnement sur une vidéo de fond. Le mouvement de cet objet est contrôlé par les gestes des mains qui sont détectées par une Kinect et traduits sur un écran 3D.&lt;br /&gt;
&lt;br /&gt;
=== Problématique ===&lt;br /&gt;
&lt;br /&gt;
La problématique qui se pose est de pouvoir prendre aussi en compte la tête de l’utilisateur sur l’espace d’acquisition afin d’avoir les données sur l’angle de vision et donc d’orienter l’affichage 3D sur l’écran selon sa position, ainsi le mouvement de la tête impliquera l’inclinaison des objets affichés dans un sens ou dans l’autre.&lt;br /&gt;
&lt;br /&gt;
== == &lt;br /&gt;
&lt;br /&gt;
=== Cahier des charges ===&lt;br /&gt;
{{Petit|''Le cahier des charges ne peut être réalisé pour l'instant car notre projet est une continuité d'un projet réalisé actuellement par des élèves en IMA5, et les tâches qui nous seront affectées vont dépendre de leur avancement. La phase de transition sera faite quelques jours avant leur soutenance. Cependant, nous avons commencé par nous familiariser aux outils à utiliser''}}&amp;lt;br\&amp;gt;&amp;lt;br\&amp;gt;&lt;br /&gt;
-&amp;gt;  Mise en place d’un outil de Calibration pour calibrer et mettre en place la scène 3D selon la position de l’utilisateur, pour l’utilisation par un non informaticien.&lt;br /&gt;
&lt;br /&gt;
=== Les outils matériels/logiciels utilisés ===&lt;br /&gt;
&lt;br /&gt;
* Kinect, le périphérique de reconnaissance de mouvement&amp;lt;br/&amp;gt;&lt;br /&gt;
* Ecran Stereoscopique pour l'affichage 3D&amp;lt;br/&amp;gt;&lt;br /&gt;
* 3Gear possède une technologie qui permet, à partir des caméras 3D de la Kinect, de reconstruire une représentation précise des doigts et de ce que les mains font, en prenant les données 3D brutes et les transformant en informations utilisables sur l'état des mains. Les interfaces de programmation sont basées sur le pointage et le pincement et fournissent les angles des articulations approximatives, elles sont disponibles en C ++, C # et Java&amp;lt;br/&amp;gt;&lt;br /&gt;
* Unity 3D est un logiciel middleware de création de contenu interactif comportant de la vidéo et des objets 3D/2D. Il permet de créer des scènes supportant des éclairages, des terrains, des caméras, des textures ... . L’intérêt de ce logiciel est que celui-ci dispose d’une interface intuitive d’intégration d’objets et de scripts ; l’éditeur d’Unity intègre des composants pré-configurés évitant le développement de code fastidieux.&lt;br /&gt;
* QT est une interface de programmation orientée objet et développée en C++. Elle offre des composants d'interface graphique (widgets), d'accès aux données, de connexions réseaux, de gestion des fils d'exécution, d'analyse XML, etc. Par certains aspects c’est aussi un framework lorsqu'on l'utilise pour concevoir des interfaces graphiques ou que l'on architecture son application en utilisant les mécanismes des “signaux” et “slots” par exemple.&lt;br /&gt;
&lt;br /&gt;
== Déroulement du projet ==&lt;br /&gt;
===Semaine 03/02 – 07/02===&lt;br /&gt;
* Entretien avec Mr Laurent Grisonni pour comprendre le projet&lt;br /&gt;
* Etablissement d’un cahier de charge global en attente de précisions après la soutenance des IMA5&lt;br /&gt;
* Spécifications des outils et matériels utilisés&lt;br /&gt;
===Semaine 10/02 - 14/02===&lt;br /&gt;
* Rencontre avec les étudiants qui travaillent déjà sur le sujet&lt;br /&gt;
* Compréhension du travail réalisé&lt;br /&gt;
* Suggestion d’éventuelles améliorations&lt;br /&gt;
===Semaine 17/02 - 21/02===&lt;br /&gt;
* Prise en main de l’outil Unity à l’aide de quelques Tutoriels pour la création de scènes 3D&lt;br /&gt;
* Compréhension et analyse de la librairie 3gear de détection de geste via la Kinect&lt;br /&gt;
===Semaine 03/03 – 07/03===&lt;br /&gt;
* Spécification du besoin : Mise en place d’un outil de Calibration pour calibrer mettre en place la scène 3D selon la position de l’utilisateur, pour l’utilisation par un non informaticien.&lt;br /&gt;
===Semaine 12/03 – 14/03===&lt;br /&gt;
* Installation à l’IRCICA, remise des clefs et badges de la salle de travail, récupération du SVN du projet.&lt;br /&gt;
* Rencontre de plusieurs problèmes dont :&lt;br /&gt;
o	Pas de licence Windows sur le poste fourni &amp;lt;br/&amp;gt;&lt;br /&gt;
o	Problèmes de réseau et d’accès internet pour l’extraction du SVN&lt;br /&gt;
&lt;br /&gt;
===Semaine 24/03 – 28/03===&lt;br /&gt;
* Installation du logiciel Unity&lt;br /&gt;
* Impossibilité d’installer les logiciels de programmation pour la librairie 3gear: Processeur incompatible&lt;br /&gt;
* Premiers tests du programme existant, incomplets par manque d’outils.&lt;br /&gt;
* Ajustements de la  scène Unity à la taille de l’écran Stéréoscopique&lt;br /&gt;
&lt;br /&gt;
===Semaine 31/03 – 04/04===&lt;br /&gt;
* Prise en main de l’outil de développement d’interfaces graphiques QT&lt;br /&gt;
* Première ébauche de la gestion des fenêtres de l’interface graphique à développer.&lt;br /&gt;
* Problème rencontré : l’outil est bloqué quand on affecte à un bouton le passage à une deuxième fenêtre et l’exécution d’une application en même temps.&lt;br /&gt;
* Réalisation d’un programme C permettant le transfert des coordonnées du fichier source au fichier de destination.&lt;br /&gt;
&lt;br /&gt;
===Semaine 07/04 – 11/04===&lt;br /&gt;
* Test du programme de transfert de données sur l’outil et son implémentation&lt;br /&gt;
* Finalisation de l’interface graphique, en résolvant le problème rencontré.&lt;br /&gt;
* L’outil réalise bien la tâche demandée.&lt;br /&gt;
&lt;br /&gt;
==Travail réalisé==&lt;br /&gt;
===Sur Unity===&lt;br /&gt;
&lt;br /&gt;
Au tout début, il fallait ajuster la scène à la taille de l’écran stéréoscopique  sous Unity. La scène se présente comme suit :&amp;lt;br\&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Unity1.png|vignette|alt=texte alternatif|Scène Unity]]&lt;br /&gt;
La scène était perpendiculaire à l’écran stéréoscopique. Il fallait l’ajuster de façon à ce qu’on aie un ‘ground’ (qui correspond à l’écran stéréoscopique) et qui soit parallèle à la scène et aillant les mêmes dimensions que cette dernière, afin qu’il n’y ait pas de dépassement de bord.  &lt;br /&gt;
A travers plusieurs manipulations sous Unity, nous sommes arrivés au résultat suivant :&amp;lt;br\&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Unity2.png|vignette|alt=texte alternatif|Scène résultat]]&lt;br /&gt;
&lt;br /&gt;
===Sur QT===&lt;br /&gt;
;Outil de calibration : Cet outil est censé permettre à l’artiste ou n’importe quel autre utilisateur non :information de pouvoir ajuster les réglages et le calibrage des Kinects par rapport à l’écran stéréoscopique :sans avoir à modifier les lignes de code de l’application.&lt;br /&gt;
&lt;br /&gt;
;Calibrage : Afin de réaliser le calibrage de la Kinect, il faut d’abord lancer les programmes d’installation :de la librairie 3gear de la Kinect (nimble_calib et nimble_server, ces applications sont fournies avec le kit :de la librairie), il faut ensuite lancer l’application Kinect_MSFT_Calibration. Cette application a été déjà :développée pour ce projet et qui consiste en l’affichage de l’image reçue par la Kinect afin de sélectionner :dessus les points des 4 coins de l’écran stéréoscopique (l’écran étant visible sur l’image), l’application :enregistre alors ces coordonnées dans un fichier texte, et donc, ces coordonnées doivent être repris et mis :dans un autre fichier texte en effectuant quelques modifications dessus. Ce dernier est celui qui est utilisé :par l’application d’affichage de la scène 3D sur l’écran 3D, et qui utilise ces points pour régler :l’affichage.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Dans cette partie, nous avons utilisé le logiciel de développement d’interface graphique QT. &amp;lt;br\&amp;gt;&lt;br /&gt;
Tout d’abord, nous avons commencé à nous familiariser au logiciel QT et à son environnement à travers plusieurs tutoriels, ce qui nous a aidés tout au long de notre projet afin de réaliser notre interface. &amp;lt;br\&amp;gt;&lt;br /&gt;
L’interface graphique de calibration comporte 3 fenêtres. On peut se déplacer d’une fenêtre à l’autre grâce à des boutons &amp;lt;br\&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Première fenêtre :&lt;br /&gt;
La première fenêtre est la fenêtre typique de chaque installation, qui demande à l’utilisateur s’il veut calibrer sa Kinect ou bien s’il s’est trompé d’application et qu’il voudrait annuler. &amp;lt;br\&amp;gt;&amp;lt;br\&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;[[Fichier:Mainwindow.PNG]]&amp;lt;/center&amp;gt; &amp;lt;br\&amp;gt;&lt;br /&gt;
Dans la suite le code MainWindow.h et MainWindow.cpp de la fenêtre.&amp;lt;br\&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
MainWindow.h&lt;br /&gt;
&lt;br /&gt;
    #ifndef MAINWINDOW_H&lt;br /&gt;
    #define MAINWINDOW_H&lt;br /&gt;
    #include &amp;lt;QMainWindow&amp;gt;&lt;br /&gt;
    #include &amp;lt;QApplication&amp;gt;&lt;br /&gt;
    #include &amp;lt;QProcess&amp;gt;&lt;br /&gt;
    #include &amp;lt;QtGui&amp;gt;&lt;br /&gt;
    #include &amp;quot;calibsetup.h&amp;quot;&lt;br /&gt;
&lt;br /&gt;
    namespace Ui &lt;br /&gt;
    {&lt;br /&gt;
        class MainWindow;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    class MainWindow : public QMainWindow&lt;br /&gt;
    {&lt;br /&gt;
        Q_OBJECT&lt;br /&gt;
&lt;br /&gt;
    public:&lt;br /&gt;
        explicit MainWindow(QWidget *parent = 0);&lt;br /&gt;
        ~MainWindow();&lt;br /&gt;
    &lt;br /&gt;
    private slots:&lt;br /&gt;
    &lt;br /&gt;
        void on_pushButton_clicked();&lt;br /&gt;
    &lt;br /&gt;
        void on_pushButton_2_clicked();&lt;br /&gt;
    &lt;br /&gt;
        void on_pushButton_3_clicked();&lt;br /&gt;
    &lt;br /&gt;
    private:&lt;br /&gt;
        Ui::MainWindow *ui;&lt;br /&gt;
        calib *calibsetup;&lt;br /&gt;
    };&lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
    #endif // MAINWINDOW_H&lt;br /&gt;
  &lt;br /&gt;
  &lt;br /&gt;
MainWindow.cpp :&lt;br /&gt;
&lt;br /&gt;
    #include &amp;quot;mainwindow.h&amp;quot;&lt;br /&gt;
    #include &amp;quot;ui_mainwindow.h&amp;quot;&lt;br /&gt;
    #include &amp;quot;calibsetup.h&amp;quot;&lt;br /&gt;
    &lt;br /&gt;
    #include &amp;lt;QFileDialog&amp;gt;&lt;br /&gt;
    #include &amp;lt;QMessageBox&amp;gt;&lt;br /&gt;
    #include &amp;lt;QDesktopServices&amp;gt;&lt;br /&gt;
    #include &amp;lt;QUrl&amp;gt;&lt;br /&gt;
    #include &amp;lt;QApplication&amp;gt;&lt;br /&gt;
    #include &amp;lt;QDebug&amp;gt;&lt;br /&gt;
    #include &amp;lt;QObject&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
    MainWindow::MainWindow(QWidget *parent) :   QMainWindow(parent),&lt;br /&gt;
&lt;br /&gt;
    ui(new Ui::MainWindow)&lt;br /&gt;
    {&lt;br /&gt;
        ui-&amp;gt;setupUi(this);&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    MainWindow::~MainWindow()&lt;br /&gt;
    {&lt;br /&gt;
        delete ui;&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    void MainWindow::on_pushButton_clicked()&lt;br /&gt;
    {&lt;br /&gt;
        calibsetup = new calib;&lt;br /&gt;
        calibsetup-&amp;gt;show();&lt;br /&gt;
        this-&amp;gt;hide();&lt;br /&gt;
    &lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
    void MainWindow::on_pushButton_2_clicked()&lt;br /&gt;
    {&lt;br /&gt;
          QMessageBox msgBox;&lt;br /&gt;
          msgBox.setWindowTitle(&amp;quot;Exit setup&amp;quot;);&lt;br /&gt;
          msgBox.addButton(QMessageBox::Yes);&lt;br /&gt;
          msgBox.addButton(QMessageBox::No);&lt;br /&gt;
          msgBox.setText(&amp;quot;Voulez-vous vraiment quitter la calibration ?&amp;quot;);&lt;br /&gt;
    &lt;br /&gt;
          int selection = msgBox.exec();&lt;br /&gt;
          if(selection == QMessageBox::Yes)&lt;br /&gt;
          {&lt;br /&gt;
            QCoreApplication::quit();&lt;br /&gt;
          }&lt;br /&gt;
    }&lt;br /&gt;
  &lt;br /&gt;
    &amp;lt;br\&amp;gt;&amp;lt;br\&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
* Deuxième fenêtre :&lt;br /&gt;
Le bouton ‘suivant’ permet de continuer l’installation et ainsi de passer à la deuxième fenêtre où on a listé les différentes étapes nécessaires pour la calibration. La calibration se fait via l’application ‘KinectMSFTCalibration’. Pour lancer cette dernière, l’utilisateur a besoin de cliquer sur le bouton ‘commencer’ qui permet d’afficher la vue de la Kinect qui est dirigé vers l’écran stéréoscopique. On pourra par la suite définir les points en cliquant sur F2 puis sur les bords de l’écran en commençant par le bas de l’écran à gauche puis à droite ensuite en haut à droite puis à gauche dans le sens antihoraire. Quand on place les 4 points au bord de l’écran, on définit le plan de définition. F3 nous permet de sauvegarder les coordonnées des points saisie dans un fichier .txt. Quand on clique sur le bouton 'suivant', on exécute un programme qui nous permet de copier ces coordonnées vers un notre fichier texte. Pour pouvoir revenir à la fenêtre calibsetup, il suffit de fermer l’application. &amp;lt;br\&amp;gt;&amp;lt;br\&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;[[Fichier:Setupcalibration.PNG]]&amp;lt;/center&amp;gt;&amp;lt;br\&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La fenêtre qui permet la calibration est la suivante :&amp;lt;br\&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;[[Fichier:Kinect.PNG]]&amp;lt;/center&amp;gt;&amp;lt;br\&amp;gt;&lt;br /&gt;
Comme vous l'avez remarqué, on a 3 points au bord de l'écran intitulé dans l'ordre BL - BR - TR - TL&amp;lt;br\&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Voici le .h et .cpp de cette fenêtre :&lt;br /&gt;
&lt;br /&gt;
Calibsetup.h :&lt;br /&gt;
&lt;br /&gt;
    #ifndef CALIB_H&lt;br /&gt;
    #define CALIB_H&lt;br /&gt;
    &lt;br /&gt;
    #include &amp;lt;QDialog&amp;gt;&lt;br /&gt;
    #include &amp;quot;fincalibration.h&amp;quot;&lt;br /&gt;
    &lt;br /&gt;
    namespace Ui {&lt;br /&gt;
    class calib;&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    class calib : public QDialog&lt;br /&gt;
    {&lt;br /&gt;
        Q_OBJECT&lt;br /&gt;
    &lt;br /&gt;
    public:&lt;br /&gt;
            explicit calib(QWidget *parent = 0);&lt;br /&gt;
        ~calib();&lt;br /&gt;
    &lt;br /&gt;
    private slots:&lt;br /&gt;
        void on_pushButton_clicked();&lt;br /&gt;
    &lt;br /&gt;
        void on_pushButton_2_clicked();&lt;br /&gt;
    &lt;br /&gt;
        void on_pushButton_3_clicked();&lt;br /&gt;
    &lt;br /&gt;
    private:&lt;br /&gt;
        Ui::calib *ui;&lt;br /&gt;
        FinCalibration *fincalib ;&lt;br /&gt;
    };&lt;br /&gt;
    &lt;br /&gt;
    #endif // CALIB_H&lt;br /&gt;
    &lt;br /&gt;
Calibsetup.cpp :&lt;br /&gt;
&lt;br /&gt;
    #include &amp;quot;calibsetup.h&amp;quot;&lt;br /&gt;
    #include &amp;quot;ui_calibsetup.h&amp;quot;&lt;br /&gt;
    #include &amp;quot;fincalibration.h&amp;quot;&lt;br /&gt;
    #include &amp;lt;QMessageBox&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
    calib::calib(QWidget *parent) :&lt;br /&gt;
        QDialog(parent),&lt;br /&gt;
        ui(new Ui::calib)&lt;br /&gt;
    {&lt;br /&gt;
        ui-&amp;gt;setupUi(this);&lt;br /&gt;
    }&lt;br /&gt;
    calib::~calib()&lt;br /&gt;
    {&lt;br /&gt;
        delete ui;&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    void calib::on_pushButton_clicked()&lt;br /&gt;
    {&lt;br /&gt;
        system(&amp;quot;C:/Users/Demo.ALCOVE-HP-MINT4/Desktop/OOS/nimble_calib.bat&amp;quot;);&lt;br /&gt;
        system(&amp;quot;C:/Users/Demo.ALCOVE-HP-MINT4/Desktop/OOS/nimble_server.bat&amp;quot;);&lt;br /&gt;
        system(&amp;quot;C:/Users/Demo.ALCOVE-HP-MINT4/Desktop/OOS/tool/KinectMSFTCalibration.exe&amp;quot;);&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    void calib::on_pushButton_2_clicked()&lt;br /&gt;
    {&lt;br /&gt;
            fincalib = new FinCalibration;&lt;br /&gt;
            fincalib-&amp;gt;show();&lt;br /&gt;
            this-&amp;gt;hide();&lt;br /&gt;
            system(&amp;quot;C:/Users/Demo.ALCOVE-HP-MINT4/Desktop/OOS/Transfert_Points.exe&amp;quot;)&lt;br /&gt;
    ;}&lt;br /&gt;
    &lt;br /&gt;
    void calib::on_pushButton_3_clicked()&lt;br /&gt;
    {&lt;br /&gt;
        QMessageBox msgBox;&lt;br /&gt;
          msgBox.setWindowTitle(&amp;quot;Calibration setup&amp;quot;);&lt;br /&gt;
          msgBox.addButton(QMessageBox::Yes);&lt;br /&gt;
          msgBox.addButton(QMessageBox::No);&lt;br /&gt;
          msgBox.setText(&amp;quot;Voulez-vous vraiment quitter la calibration ?&amp;quot;);&lt;br /&gt;
    &lt;br /&gt;
          int selection = msgBox.exec();&lt;br /&gt;
          if(selection == QMessageBox::Yes)&lt;br /&gt;
          {&lt;br /&gt;
            QCoreApplication::quit();&lt;br /&gt;
          }&lt;br /&gt;
    }&lt;br /&gt;
    &amp;lt;br\&amp;gt;&amp;lt;br\&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
* Troisième fenêtre:&lt;br /&gt;
En ce qui concerne la 3éme fenêtre, elle permet juste de dire à l’utilisateur que la calibration a été bien faite et que les points ont bien été enregistrés dans le fichier texte puis copier dans le deuxième fichier texte. Voici un imprime écran de la fenêtre :&amp;lt;br\&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;[[Fichier:Fin.PNG]]&amp;lt;/center&amp;gt;&amp;lt;br\&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Voici le code .h et .cpp de cette 3éme fenêtre :&amp;lt;br\&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Fincalibration.h&lt;br /&gt;
&lt;br /&gt;
    #ifndef FINCALIBRATION_H&lt;br /&gt;
    #define FINCALIBRATION_H&lt;br /&gt;
    &lt;br /&gt;
    #include &amp;lt;QDialog&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
    namespace Ui {&lt;br /&gt;
    class FinCalibration;&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    class FinCalibration : public QDialog&lt;br /&gt;
    {&lt;br /&gt;
        Q_OBJECT&lt;br /&gt;
    &lt;br /&gt;
    public:&lt;br /&gt;
        explicit FinCalibration(QWidget *parent = 0);&lt;br /&gt;
        ~FinCalibration();&lt;br /&gt;
    &lt;br /&gt;
    private slots:&lt;br /&gt;
        void on_pushButton_clicked();&lt;br /&gt;
    &lt;br /&gt;
    private:&lt;br /&gt;
        Ui::FinCalibration *ui;&lt;br /&gt;
    &lt;br /&gt;
    };&lt;br /&gt;
    &lt;br /&gt;
    #endif // FINCALIBRATION_H&lt;br /&gt;
    &lt;br /&gt;
    Fincalibration.cpp&lt;br /&gt;
    &lt;br /&gt;
    #include &amp;quot;fincalibration.h&amp;quot;&lt;br /&gt;
    #include &amp;quot;ui_fincalibration.h&amp;quot;&lt;br /&gt;
    &lt;br /&gt;
    #include &amp;lt;QMessageBox&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
    FinCalibration::FinCalibration(QWidget *parent) :&lt;br /&gt;
        QDialog(parent),&lt;br /&gt;
        ui(new Ui::FinCalibration)&lt;br /&gt;
    {&lt;br /&gt;
        ui-&amp;gt;setupUi(this);&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    FinCalibration::~FinCalibration()&lt;br /&gt;
    {&lt;br /&gt;
        delete ui;&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    void FinCalibration::on_pushButton_clicked()&lt;br /&gt;
    {&lt;br /&gt;
          QCoreApplication::quit();&lt;br /&gt;
    &lt;br /&gt;
    }&lt;br /&gt;
    &amp;lt;br\&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pour le bouton ‘annuler’ qui est présent dans toutes les fenêtres, quand on appui dessus, il demande à l’utilisateur s’il veut vraiment quitter la calibration en lui proposant deux boutons « Yes » et « No ». Le bouton « no » permet de revenir à la fenêtre précédente et le bouton « yes » permet de quitter l’application.&amp;lt;br\&amp;gt;&lt;br /&gt;
[[Fichier:Annuler.PNG]]&lt;/div&gt;</summary>
		<author><name>Zassaieb</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=Out_of_Space&amp;diff=12142</id>
		<title>Out of Space</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=Out_of_Space&amp;diff=12142"/>
				<updated>2014-04-15T20:07:00Z</updated>
		
		<summary type="html">&lt;p&gt;Zassaieb : /* Sur QT */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Généralités sur le projet ==&lt;br /&gt;
&lt;br /&gt;
=== Contexte ===&lt;br /&gt;
&lt;br /&gt;
Ce projet met en collaboration une artiste et une société de production de jeu vidéo 3D, et vise à mettre en place une application interactive utilisant une classe de dispositifs d'interaction orienté &amp;quot;maquette holographique&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=== Descriptif ===&lt;br /&gt;
&lt;br /&gt;
Le projet vise à réaliser une application interactive sur un affichage stéréoscopique, et qui consiste à piloter un objet (une bille) dans un certain environnement, tout en déroulant l’évolution de cet environnement sur une vidéo de fond. Le mouvement de cet objet est contrôlé par les gestes des mains qui sont détectées par une Kinect et traduits sur un écran 3D.&lt;br /&gt;
&lt;br /&gt;
=== Problématique ===&lt;br /&gt;
&lt;br /&gt;
La problématique qui se pose est de pouvoir prendre aussi en compte la tête de l’utilisateur sur l’espace d’acquisition afin d’avoir les données sur l’angle de vision et donc d’orienter l’affichage 3D sur l’écran selon sa position, ainsi le mouvement de la tête impliquera l’inclinaison des objets affichés dans un sens ou dans l’autre.&lt;br /&gt;
&lt;br /&gt;
== == &lt;br /&gt;
&lt;br /&gt;
=== Cahier des charges ===&lt;br /&gt;
{{Petit|''Le cahier des charges ne peut être réalisé pour l'instant car notre projet est une continuité d'un projet réalisé actuellement par des élèves en IMA5, et les tâches qui nous seront affectées vont dépendre de leur avancement. La phase de transition sera faite quelques jours avant leur soutenance. Cependant, nous avons commencé par nous familiariser aux outils à utiliser''}}&amp;lt;br\&amp;gt;&amp;lt;br\&amp;gt;&lt;br /&gt;
-&amp;gt;  Mise en place d’un outil de Calibration pour calibrer et mettre en place la scène 3D selon la position de l’utilisateur, pour l’utilisation par un non informaticien.&lt;br /&gt;
&lt;br /&gt;
=== Les outils matériels/logiciels utilisés ===&lt;br /&gt;
&lt;br /&gt;
* Kinect, le périphérique de reconnaissance de mouvement&amp;lt;br/&amp;gt;&lt;br /&gt;
* Ecran Stereoscopique pour l'affichage 3D&amp;lt;br/&amp;gt;&lt;br /&gt;
* 3Gear possède une technologie qui permet, à partir des caméras 3D de la Kinect, de reconstruire une représentation précise des doigts et de ce que les mains font, en prenant les données 3D brutes et les transformant en informations utilisables sur l'état des mains. Les interfaces de programmation sont basées sur le pointage et le pincement et fournissent les angles des articulations approximatives, elles sont disponibles en C ++, C # et Java&amp;lt;br/&amp;gt;&lt;br /&gt;
* Unity 3D est un logiciel middleware de création de contenu interactif comportant de la vidéo et des objets 3D/2D. Il permet de créer des scènes supportant des éclairages, des terrains, des caméras, des textures ... . L’intérêt de ce logiciel est que celui-ci dispose d’une interface intuitive d’intégration d’objets et de scripts ; l’éditeur d’Unity intègre des composants pré-configurés évitant le développement de code fastidieux.&lt;br /&gt;
* QT est une interface de programmation orientée objet et développée en C++. Elle offre des composants d'interface graphique (widgets), d'accès aux données, de connexions réseaux, de gestion des fils d'exécution, d'analyse XML, etc. Par certains aspects c’est aussi un framework lorsqu'on l'utilise pour concevoir des interfaces graphiques ou que l'on architecture son application en utilisant les mécanismes des “signaux” et “slots” par exemple.&lt;br /&gt;
&lt;br /&gt;
== Déroulement du projet ==&lt;br /&gt;
===Semaine 03/02 – 07/02===&lt;br /&gt;
* Entretien avec Mr Laurent Grisonni pour comprendre le projet&lt;br /&gt;
* Etablissement d’un cahier de charge global en attente de précisions après la soutenance des IMA5&lt;br /&gt;
* Spécifications des outils et matériels utilisés&lt;br /&gt;
===Semaine 10/02 - 14/02===&lt;br /&gt;
* Rencontre avec les étudiants qui travaillent déjà sur le sujet&lt;br /&gt;
* Compréhension du travail réalisé&lt;br /&gt;
* Suggestion d’éventuelles améliorations&lt;br /&gt;
===Semaine 17/02 - 21/02===&lt;br /&gt;
* Prise en main de l’outil Unity à l’aide de quelques Tutoriels pour la création de scènes 3D&lt;br /&gt;
* Compréhension et analyse de la librairie 3gear de détection de geste via la Kinect&lt;br /&gt;
===Semaine 03/03 – 07/03===&lt;br /&gt;
* Spécification du besoin : Mise en place d’un outil de Calibration pour calibrer mettre en place la scène 3D selon la position de l’utilisateur, pour l’utilisation par un non informaticien.&lt;br /&gt;
===Semaine 12/03 – 14/03===&lt;br /&gt;
* Installation à l’IRCICA, remise des clefs et badges de la salle de travail, récupération du SVN du projet.&lt;br /&gt;
* Rencontre de plusieurs problèmes dont :&lt;br /&gt;
o	Pas de licence Windows sur le poste fourni &amp;lt;br/&amp;gt;&lt;br /&gt;
o	Problèmes de réseau et d’accès internet pour l’extraction du SVN&lt;br /&gt;
&lt;br /&gt;
===Semaine 24/03 – 28/03===&lt;br /&gt;
* Installation du logiciel Unity&lt;br /&gt;
* Impossibilité d’installer les logiciels de programmation pour la librairie 3gear: Processeur incompatible&lt;br /&gt;
* Premiers tests du programme existant, incomplets par manque d’outils.&lt;br /&gt;
* Ajustements de la  scène Unity à la taille de l’écran Stéréoscopique&lt;br /&gt;
&lt;br /&gt;
===Semaine 31/03 – 04/04===&lt;br /&gt;
''Outil de calibration'' : Cet outil est censé permettre à l’artiste ou n’importe quel autre utilisateur non information de pouvoir ajuster les réglages et le calibrage des Kinects par rapport à l’écran stéréoscopique sans avoir à modifier les lignes de code de l’application. &lt;br /&gt;
&lt;br /&gt;
''Calibrage'' : Afin de réaliser le calibrage de la Kinect, il faut d’abord lancer les programmes d’installation de la librairie 3gear de  la Kinect (nimble_calib et nimble_server, ces applications sont fournies avec le kit de la librairie), il faut ensuite lancer l’application Kinect_MSFT_Calibration. Cette application a été déjà développée pour ce projet et qui consiste en l’affichage de l’image reçue par la Kinect afin de sélectionner dessus les points des 4 coins de l’écran stéréoscopique (l’écran étant visible sur l’image), l’application enregistre alors ces coordonnées dans un fichier texte, et donc, ces coordonnées doivent être repris et mis dans un autre fichier texte en effectuant quelques modifications dessus. Ce dernier est celui qui est utilisé par l’application d’affichage de la scène 3D sur l’écran 3D, et qui utilise ces points pour régler l’affichage. &lt;br /&gt;
&lt;br /&gt;
* Prise en main de l’outil de développement d’interfaces graphiques QT&lt;br /&gt;
* Première ébauche de la gestion des fenêtres de l’interface graphique à développer.&lt;br /&gt;
* Problème rencontré : l’outil est bloqué quand on affecte à un bouton le passage à une deuxième fenêtre et l’exécution d’une application en même temps.&lt;br /&gt;
* Réalisation d’un programme C permettant le transfert des coordonnées du fichier source au fichier de destination.&lt;br /&gt;
&lt;br /&gt;
===Semaine 07/04 – 11/04===&lt;br /&gt;
* Test du programme de transfert de données sur l’outil et son implémentation&lt;br /&gt;
* Finalisation de l’interface graphique, en résolvant le problème rencontré.&lt;br /&gt;
* L’outil réalise bien la tâche demandée.&lt;br /&gt;
&lt;br /&gt;
==Travail réalisé==&lt;br /&gt;
===Sur Unity===&lt;br /&gt;
&lt;br /&gt;
Au tout début, il fallait ajuster la scène à la taille de l’écran stéréoscopique  sous Unity. La scène se présente comme suit :&amp;lt;br\&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Unity1.png|vignette|alt=texte alternatif|Scène Unity]]&lt;br /&gt;
La scène était perpendiculaire à l’écran stéréoscopique. Il fallait l’ajuster de façon à ce qu’on aie un ‘ground’ (qui correspond à l’écran stéréoscopique) et qui soit parallèle à la scène et aillant les mêmes dimensions que cette dernière, afin qu’il n’y ait pas de dépassement de bord.  &lt;br /&gt;
A travers plusieurs manipulations sous Unity, nous sommes arrivés au résultat suivant :&amp;lt;br\&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Unity2.png|vignette|alt=texte alternatif|Scène résultat]]&lt;br /&gt;
&lt;br /&gt;
===Sur QT===&lt;br /&gt;
;Outil de calibration : Cet outil est censé permettre à l’artiste ou n’importe quel autre utilisateur non :information de pouvoir ajuster les réglages et le calibrage des Kinects par rapport à l’écran stéréoscopique :sans avoir à modifier les lignes de code de l’application.&lt;br /&gt;
&lt;br /&gt;
;Calibrage : Afin de réaliser le calibrage de la Kinect, il faut d’abord lancer les programmes d’installation :de la librairie 3gear de la Kinect (nimble_calib et nimble_server, ces applications sont fournies avec le kit :de la librairie), il faut ensuite lancer l’application Kinect_MSFT_Calibration. Cette application a été déjà :développée pour ce projet et qui consiste en l’affichage de l’image reçue par la Kinect afin de sélectionner :dessus les points des 4 coins de l’écran stéréoscopique (l’écran étant visible sur l’image), l’application :enregistre alors ces coordonnées dans un fichier texte, et donc, ces coordonnées doivent être repris et mis :dans un autre fichier texte en effectuant quelques modifications dessus. Ce dernier est celui qui est utilisé :par l’application d’affichage de la scène 3D sur l’écran 3D, et qui utilise ces points pour régler :l’affichage.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Dans cette partie, nous avons utilisé le logiciel de développement d’interface graphique QT. &amp;lt;br\&amp;gt;&lt;br /&gt;
Tout d’abord, nous avons commencé à nous familiariser au logiciel QT et à son environnement à travers plusieurs tutoriels, ce qui nous a aidés tout au long de notre projet afin de réaliser notre interface. &amp;lt;br\&amp;gt;&lt;br /&gt;
L’interface graphique de calibration comporte 3 fenêtres. On peut se déplacer d’une fenêtre à l’autre grâce à des boutons &amp;lt;br\&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Première fenêtre :&lt;br /&gt;
La première fenêtre est la fenêtre typique de chaque installation, qui demande à l’utilisateur s’il veut calibrer sa Kinect ou bien s’il s’est trompé d’application et qu’il voudrait annuler. &amp;lt;br\&amp;gt;&amp;lt;br\&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;[[Fichier:Mainwindow.PNG]]&amp;lt;/center&amp;gt; &amp;lt;br\&amp;gt;&lt;br /&gt;
Dans la suite le code MainWindow.h et MainWindow.cpp de la fenêtre.&amp;lt;br\&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
MainWindow.h&lt;br /&gt;
&lt;br /&gt;
    #ifndef MAINWINDOW_H&lt;br /&gt;
    #define MAINWINDOW_H&lt;br /&gt;
    #include &amp;lt;QMainWindow&amp;gt;&lt;br /&gt;
    #include &amp;lt;QApplication&amp;gt;&lt;br /&gt;
    #include &amp;lt;QProcess&amp;gt;&lt;br /&gt;
    #include &amp;lt;QtGui&amp;gt;&lt;br /&gt;
    #include &amp;quot;calibsetup.h&amp;quot;&lt;br /&gt;
&lt;br /&gt;
    namespace Ui &lt;br /&gt;
    {&lt;br /&gt;
        class MainWindow;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    class MainWindow : public QMainWindow&lt;br /&gt;
    {&lt;br /&gt;
        Q_OBJECT&lt;br /&gt;
&lt;br /&gt;
    public:&lt;br /&gt;
        explicit MainWindow(QWidget *parent = 0);&lt;br /&gt;
        ~MainWindow();&lt;br /&gt;
    &lt;br /&gt;
    private slots:&lt;br /&gt;
    &lt;br /&gt;
        void on_pushButton_clicked();&lt;br /&gt;
    &lt;br /&gt;
        void on_pushButton_2_clicked();&lt;br /&gt;
    &lt;br /&gt;
        void on_pushButton_3_clicked();&lt;br /&gt;
    &lt;br /&gt;
    private:&lt;br /&gt;
        Ui::MainWindow *ui;&lt;br /&gt;
        calib *calibsetup;&lt;br /&gt;
    };&lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
    #endif // MAINWINDOW_H&lt;br /&gt;
  &lt;br /&gt;
  &lt;br /&gt;
MainWindow.cpp :&lt;br /&gt;
&lt;br /&gt;
    #include &amp;quot;mainwindow.h&amp;quot;&lt;br /&gt;
    #include &amp;quot;ui_mainwindow.h&amp;quot;&lt;br /&gt;
    #include &amp;quot;calibsetup.h&amp;quot;&lt;br /&gt;
    &lt;br /&gt;
    #include &amp;lt;QFileDialog&amp;gt;&lt;br /&gt;
    #include &amp;lt;QMessageBox&amp;gt;&lt;br /&gt;
    #include &amp;lt;QDesktopServices&amp;gt;&lt;br /&gt;
    #include &amp;lt;QUrl&amp;gt;&lt;br /&gt;
    #include &amp;lt;QApplication&amp;gt;&lt;br /&gt;
    #include &amp;lt;QDebug&amp;gt;&lt;br /&gt;
    #include &amp;lt;QObject&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
    MainWindow::MainWindow(QWidget *parent) :   QMainWindow(parent),&lt;br /&gt;
&lt;br /&gt;
    ui(new Ui::MainWindow)&lt;br /&gt;
    {&lt;br /&gt;
        ui-&amp;gt;setupUi(this);&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    MainWindow::~MainWindow()&lt;br /&gt;
    {&lt;br /&gt;
        delete ui;&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    void MainWindow::on_pushButton_clicked()&lt;br /&gt;
    {&lt;br /&gt;
        calibsetup = new calib;&lt;br /&gt;
        calibsetup-&amp;gt;show();&lt;br /&gt;
        this-&amp;gt;hide();&lt;br /&gt;
    &lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
    void MainWindow::on_pushButton_2_clicked()&lt;br /&gt;
    {&lt;br /&gt;
          QMessageBox msgBox;&lt;br /&gt;
          msgBox.setWindowTitle(&amp;quot;Exit setup&amp;quot;);&lt;br /&gt;
          msgBox.addButton(QMessageBox::Yes);&lt;br /&gt;
          msgBox.addButton(QMessageBox::No);&lt;br /&gt;
          msgBox.setText(&amp;quot;Voulez-vous vraiment quitter la calibration ?&amp;quot;);&lt;br /&gt;
    &lt;br /&gt;
          int selection = msgBox.exec();&lt;br /&gt;
          if(selection == QMessageBox::Yes)&lt;br /&gt;
          {&lt;br /&gt;
            QCoreApplication::quit();&lt;br /&gt;
          }&lt;br /&gt;
    }&lt;br /&gt;
  &lt;br /&gt;
    &amp;lt;br\&amp;gt;&amp;lt;br\&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
* Deuxième fenêtre :&lt;br /&gt;
Le bouton ‘suivant’ permet de continuer l’installation et ainsi de passer à la deuxième fenêtre où on a listé les différentes étapes nécessaires pour la calibration. La calibration se fait via l’application ‘KinectMSFTCalibration’. Pour lancer cette dernière, l’utilisateur a besoin de cliquer sur le bouton ‘commencer’ qui permet d’afficher la vue de la Kinect qui est dirigé vers l’écran stéréoscopique. On pourra par la suite définir les points en cliquant sur F2 puis sur les bords de l’écran en commençant par le bas de l’écran à gauche puis à droite ensuite en haut à droite puis à gauche dans le sens antihoraire. Quand on place les 4 points au bord de l’écran, on définit le plan de définition. F3 nous permet de sauvegarder les coordonnées des points saisie dans un fichier .txt. Quand on clique sur le bouton 'suivant', on exécute un programme qui nous permet de copier ces coordonnées vers un notre fichier texte. Pour pouvoir revenir à la fenêtre calibsetup, il suffit de fermer l’application. &amp;lt;br\&amp;gt;&amp;lt;br\&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;[[Fichier:Setupcalibration.PNG]]&amp;lt;/center&amp;gt;&amp;lt;br\&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La fenêtre qui permet la calibration est la suivante :&amp;lt;br\&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;[[Fichier:Kinect.PNG]]&amp;lt;/center&amp;gt;&amp;lt;br\&amp;gt;&lt;br /&gt;
Comme vous l'avez remarqué, on a 3 points au bord de l'écran intitulé dans l'ordre BL - BR - TR - TL&amp;lt;br\&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Voici le .h et .cpp de cette fenêtre :&lt;br /&gt;
&lt;br /&gt;
Calibsetup.h :&lt;br /&gt;
&lt;br /&gt;
    #ifndef CALIB_H&lt;br /&gt;
    #define CALIB_H&lt;br /&gt;
    &lt;br /&gt;
    #include &amp;lt;QDialog&amp;gt;&lt;br /&gt;
    #include &amp;quot;fincalibration.h&amp;quot;&lt;br /&gt;
    &lt;br /&gt;
    namespace Ui {&lt;br /&gt;
    class calib;&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    class calib : public QDialog&lt;br /&gt;
    {&lt;br /&gt;
        Q_OBJECT&lt;br /&gt;
    &lt;br /&gt;
    public:&lt;br /&gt;
            explicit calib(QWidget *parent = 0);&lt;br /&gt;
        ~calib();&lt;br /&gt;
    &lt;br /&gt;
    private slots:&lt;br /&gt;
        void on_pushButton_clicked();&lt;br /&gt;
    &lt;br /&gt;
        void on_pushButton_2_clicked();&lt;br /&gt;
    &lt;br /&gt;
        void on_pushButton_3_clicked();&lt;br /&gt;
    &lt;br /&gt;
    private:&lt;br /&gt;
        Ui::calib *ui;&lt;br /&gt;
        FinCalibration *fincalib ;&lt;br /&gt;
    };&lt;br /&gt;
    &lt;br /&gt;
    #endif // CALIB_H&lt;br /&gt;
    &lt;br /&gt;
Calibsetup.cpp :&lt;br /&gt;
&lt;br /&gt;
    #include &amp;quot;calibsetup.h&amp;quot;&lt;br /&gt;
    #include &amp;quot;ui_calibsetup.h&amp;quot;&lt;br /&gt;
    #include &amp;quot;fincalibration.h&amp;quot;&lt;br /&gt;
    #include &amp;lt;QMessageBox&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
    calib::calib(QWidget *parent) :&lt;br /&gt;
        QDialog(parent),&lt;br /&gt;
        ui(new Ui::calib)&lt;br /&gt;
    {&lt;br /&gt;
        ui-&amp;gt;setupUi(this);&lt;br /&gt;
    }&lt;br /&gt;
    calib::~calib()&lt;br /&gt;
    {&lt;br /&gt;
        delete ui;&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    void calib::on_pushButton_clicked()&lt;br /&gt;
    {&lt;br /&gt;
        system(&amp;quot;C:/Users/Demo.ALCOVE-HP-MINT4/Desktop/OOS/nimble_calib.bat&amp;quot;);&lt;br /&gt;
        system(&amp;quot;C:/Users/Demo.ALCOVE-HP-MINT4/Desktop/OOS/nimble_server.bat&amp;quot;);&lt;br /&gt;
        system(&amp;quot;C:/Users/Demo.ALCOVE-HP-MINT4/Desktop/OOS/tool/KinectMSFTCalibration.exe&amp;quot;);&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    void calib::on_pushButton_2_clicked()&lt;br /&gt;
    {&lt;br /&gt;
            fincalib = new FinCalibration;&lt;br /&gt;
            fincalib-&amp;gt;show();&lt;br /&gt;
            this-&amp;gt;hide();&lt;br /&gt;
            system(&amp;quot;C:/Users/Demo.ALCOVE-HP-MINT4/Desktop/OOS/Transfert_Points.exe&amp;quot;)&lt;br /&gt;
    ;}&lt;br /&gt;
    &lt;br /&gt;
    void calib::on_pushButton_3_clicked()&lt;br /&gt;
    {&lt;br /&gt;
        QMessageBox msgBox;&lt;br /&gt;
          msgBox.setWindowTitle(&amp;quot;Calibration setup&amp;quot;);&lt;br /&gt;
          msgBox.addButton(QMessageBox::Yes);&lt;br /&gt;
          msgBox.addButton(QMessageBox::No);&lt;br /&gt;
          msgBox.setText(&amp;quot;Voulez-vous vraiment quitter la calibration ?&amp;quot;);&lt;br /&gt;
    &lt;br /&gt;
          int selection = msgBox.exec();&lt;br /&gt;
          if(selection == QMessageBox::Yes)&lt;br /&gt;
          {&lt;br /&gt;
            QCoreApplication::quit();&lt;br /&gt;
          }&lt;br /&gt;
    }&lt;br /&gt;
    &amp;lt;br\&amp;gt;&amp;lt;br\&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
* Troisième fenêtre:&lt;br /&gt;
En ce qui concerne la 3éme fenêtre, elle permet juste de dire à l’utilisateur que la calibration a été bien faite et que les points ont bien été enregistrés dans le fichier texte puis copier dans le deuxième fichier texte. Voici un imprime écran de la fenêtre :&amp;lt;br\&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;[[Fichier:Fin.PNG]]&amp;lt;/center&amp;gt;&amp;lt;br\&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Voici le code .h et .cpp de cette 3éme fenêtre :&amp;lt;br\&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Fincalibration.h&lt;br /&gt;
&lt;br /&gt;
    #ifndef FINCALIBRATION_H&lt;br /&gt;
    #define FINCALIBRATION_H&lt;br /&gt;
    &lt;br /&gt;
    #include &amp;lt;QDialog&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
    namespace Ui {&lt;br /&gt;
    class FinCalibration;&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    class FinCalibration : public QDialog&lt;br /&gt;
    {&lt;br /&gt;
        Q_OBJECT&lt;br /&gt;
    &lt;br /&gt;
    public:&lt;br /&gt;
        explicit FinCalibration(QWidget *parent = 0);&lt;br /&gt;
        ~FinCalibration();&lt;br /&gt;
    &lt;br /&gt;
    private slots:&lt;br /&gt;
        void on_pushButton_clicked();&lt;br /&gt;
    &lt;br /&gt;
    private:&lt;br /&gt;
        Ui::FinCalibration *ui;&lt;br /&gt;
    &lt;br /&gt;
    };&lt;br /&gt;
    &lt;br /&gt;
    #endif // FINCALIBRATION_H&lt;br /&gt;
    &lt;br /&gt;
    Fincalibration.cpp&lt;br /&gt;
    &lt;br /&gt;
    #include &amp;quot;fincalibration.h&amp;quot;&lt;br /&gt;
    #include &amp;quot;ui_fincalibration.h&amp;quot;&lt;br /&gt;
    &lt;br /&gt;
    #include &amp;lt;QMessageBox&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
    FinCalibration::FinCalibration(QWidget *parent) :&lt;br /&gt;
        QDialog(parent),&lt;br /&gt;
        ui(new Ui::FinCalibration)&lt;br /&gt;
    {&lt;br /&gt;
        ui-&amp;gt;setupUi(this);&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    FinCalibration::~FinCalibration()&lt;br /&gt;
    {&lt;br /&gt;
        delete ui;&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    void FinCalibration::on_pushButton_clicked()&lt;br /&gt;
    {&lt;br /&gt;
          QCoreApplication::quit();&lt;br /&gt;
    &lt;br /&gt;
    }&lt;br /&gt;
    &amp;lt;br\&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pour le bouton ‘annuler’ qui est présent dans toutes les fenêtres, quand on appui dessus, il demande à l’utilisateur s’il veut vraiment quitter la calibration en lui proposant deux boutons « Yes » et « No ». Le bouton « no » permet de revenir à la fenêtre précédente et le bouton « yes » permet de quitter l’application.&amp;lt;br\&amp;gt;&lt;br /&gt;
[[Fichier:Annuler.PNG]]&lt;/div&gt;</summary>
		<author><name>Zassaieb</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=Out_of_Space&amp;diff=12129</id>
		<title>Out of Space</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=Out_of_Space&amp;diff=12129"/>
				<updated>2014-04-15T19:58:49Z</updated>
		
		<summary type="html">&lt;p&gt;Zassaieb : /* Sur Unity */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Généralités sur le projet ==&lt;br /&gt;
&lt;br /&gt;
=== Contexte ===&lt;br /&gt;
&lt;br /&gt;
Ce projet met en collaboration une artiste et une société de production de jeu vidéo 3D, et vise à mettre en place une application interactive utilisant une classe de dispositifs d'interaction orienté &amp;quot;maquette holographique&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=== Descriptif ===&lt;br /&gt;
&lt;br /&gt;
Le projet vise à réaliser une application interactive sur un affichage stéréoscopique, et qui consiste à piloter un objet (une bille) dans un certain environnement, tout en déroulant l’évolution de cet environnement sur une vidéo de fond. Le mouvement de cet objet est contrôlé par les gestes des mains qui sont détectées par une Kinect et traduits sur un écran 3D.&lt;br /&gt;
&lt;br /&gt;
=== Problématique ===&lt;br /&gt;
&lt;br /&gt;
La problématique qui se pose est de pouvoir prendre aussi en compte la tête de l’utilisateur sur l’espace d’acquisition afin d’avoir les données sur l’angle de vision et donc d’orienter l’affichage 3D sur l’écran selon sa position, ainsi le mouvement de la tête impliquera l’inclinaison des objets affichés dans un sens ou dans l’autre.&lt;br /&gt;
&lt;br /&gt;
== == &lt;br /&gt;
&lt;br /&gt;
=== Cahier des charges ===&lt;br /&gt;
{{Petit|''Le cahier des charges ne peut être réalisé pour l'instant car notre projet est une continuité d'un projet réalisé actuellement par des élèves en IMA5, et les tâches qui nous seront affectées vont dépendre de leur avancement. La phase de transition sera faite quelques jours avant leur soutenance. Cependant, nous avons commencé par nous familiariser aux outils à utiliser''}}&amp;lt;br\&amp;gt;&amp;lt;br\&amp;gt;&lt;br /&gt;
-&amp;gt;  Mise en place d’un outil de Calibration pour calibrer et mettre en place la scène 3D selon la position de l’utilisateur, pour l’utilisation par un non informaticien.&lt;br /&gt;
&lt;br /&gt;
=== Les outils matériels/logiciels utilisés ===&lt;br /&gt;
&lt;br /&gt;
* Kinect, le périphérique de reconnaissance de mouvement&amp;lt;br/&amp;gt;&lt;br /&gt;
* Ecran Stereoscopique pour l'affichage 3D&amp;lt;br/&amp;gt;&lt;br /&gt;
* 3Gear possède une technologie qui permet, à partir des caméras 3D de la Kinect, de reconstruire une représentation précise des doigts et de ce que les mains font, en prenant les données 3D brutes et les transformant en informations utilisables sur l'état des mains. Les interfaces de programmation sont basées sur le pointage et le pincement et fournissent les angles des articulations approximatives, elles sont disponibles en C ++, C # et Java&amp;lt;br/&amp;gt;&lt;br /&gt;
* Unity 3D est un logiciel middleware de création de contenu interactif comportant de la vidéo et des objets 3D/2D. Il permet de créer des scènes supportant des éclairages, des terrains, des caméras, des textures ... . L’intérêt de ce logiciel est que celui-ci dispose d’une interface intuitive d’intégration d’objets et de scripts ; l’éditeur d’Unity intègre des composants pré-configurés évitant le développement de code fastidieux.&lt;br /&gt;
* QT est une interface de programmation orientée objet et développée en C++. Elle offre des composants d'interface graphique (widgets), d'accès aux données, de connexions réseaux, de gestion des fils d'exécution, d'analyse XML, etc. Par certains aspects c’est aussi un framework lorsqu'on l'utilise pour concevoir des interfaces graphiques ou que l'on architecture son application en utilisant les mécanismes des “signaux” et “slots” par exemple.&lt;br /&gt;
&lt;br /&gt;
== Déroulement du projet ==&lt;br /&gt;
===Semaine 03/02 – 07/02===&lt;br /&gt;
* Entretien avec Mr Laurent Grisonni pour comprendre le projet&lt;br /&gt;
* Etablissement d’un cahier de charge global en attente de précisions après la soutenance des IMA5&lt;br /&gt;
* Spécifications des outils et matériels utilisés&lt;br /&gt;
===Semaine 10/02 - 14/02===&lt;br /&gt;
* Rencontre avec les étudiants qui travaillent déjà sur le sujet&lt;br /&gt;
* Compréhension du travail réalisé&lt;br /&gt;
* Suggestion d’éventuelles améliorations&lt;br /&gt;
===Semaine 17/02 - 21/02===&lt;br /&gt;
* Prise en main de l’outil Unity à l’aide de quelques Tutoriels pour la création de scènes 3D&lt;br /&gt;
* Compréhension et analyse de la librairie 3gear de détection de geste via la Kinect&lt;br /&gt;
===Semaine 03/03 – 07/03===&lt;br /&gt;
* Spécification du besoin : Mise en place d’un outil de Calibration pour calibrer mettre en place la scène 3D selon la position de l’utilisateur, pour l’utilisation par un non informaticien.&lt;br /&gt;
===Semaine 12/03 – 14/03===&lt;br /&gt;
* Installation à l’IRCICA, remise des clefs et badges de la salle de travail, récupération du SVN du projet.&lt;br /&gt;
* Rencontre de plusieurs problèmes dont :&lt;br /&gt;
o	Pas de licence Windows sur le poste fourni &amp;lt;br/&amp;gt;&lt;br /&gt;
o	Problèmes de réseau et d’accès internet pour l’extraction du SVN&lt;br /&gt;
&lt;br /&gt;
===Semaine 24/03 – 28/03===&lt;br /&gt;
* Installation du logiciel Unity&lt;br /&gt;
* Impossibilité d’installer les logiciels de programmation pour la librairie 3gear: Processeur incompatible&lt;br /&gt;
* Premiers tests du programme existant, incomplets par manque d’outils.&lt;br /&gt;
* Ajustements de la  scène Unity à la taille de l’écran Stéréoscopique&lt;br /&gt;
&lt;br /&gt;
===Semaine 31/03 – 04/04===&lt;br /&gt;
''Outil de calibration'' : Cet outil est censé permettre à l’artiste ou n’importe quel autre utilisateur non information de pouvoir ajuster les réglages et le calibrage des Kinects par rapport à l’écran stéréoscopique sans avoir à modifier les lignes de code de l’application. &lt;br /&gt;
&lt;br /&gt;
''Calibrage'' : Afin de réaliser le calibrage de la Kinect, il faut d’abord lancer les programmes d’installation de la librairie 3gear de  la Kinect (nimble_calib et nimble_server, ces applications sont fournies avec le kit de la librairie), il faut ensuite lancer l’application Kinect_MSFT_Calibration. Cette application a été déjà développée pour ce projet et qui consiste en l’affichage de l’image reçue par la Kinect afin de sélectionner dessus les points des 4 coins de l’écran stéréoscopique (l’écran étant visible sur l’image), l’application enregistre alors ces coordonnées dans un fichier texte, et donc, ces coordonnées doivent être repris et mis dans un autre fichier texte en effectuant quelques modifications dessus. Ce dernier est celui qui est utilisé par l’application d’affichage de la scène 3D sur l’écran 3D, et qui utilise ces points pour régler l’affichage. &lt;br /&gt;
&lt;br /&gt;
* Prise en main de l’outil de développement d’interfaces graphiques QT&lt;br /&gt;
* Première ébauche de la gestion des fenêtres de l’interface graphique à développer.&lt;br /&gt;
* Problème rencontré : l’outil est bloqué quand on affecte à un bouton le passage à une deuxième fenêtre et l’exécution d’une application en même temps.&lt;br /&gt;
* Réalisation d’un programme C permettant le transfert des coordonnées du fichier source au fichier de destination.&lt;br /&gt;
&lt;br /&gt;
===Semaine 07/04 – 11/04===&lt;br /&gt;
* Test du programme de transfert de données sur l’outil et son implémentation&lt;br /&gt;
* Finalisation de l’interface graphique, en résolvant le problème rencontré.&lt;br /&gt;
* L’outil réalise bien la tâche demandée.&lt;br /&gt;
&lt;br /&gt;
==Travail réalisé==&lt;br /&gt;
===Sur Unity===&lt;br /&gt;
&lt;br /&gt;
Au tout début, il fallait ajuster la scène à la taille de l’écran stéréoscopique  sous Unity. La scène se présente comme suit :&amp;lt;br\&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Unity1.png|vignette|alt=texte alternatif|Scène Unity]]&lt;br /&gt;
La scène était perpendiculaire à l’écran stéréoscopique. Il fallait l’ajuster de façon à ce qu’on aie un ‘ground’ (qui correspond à l’écran stéréoscopique) et qui soit parallèle à la scène et aillant les mêmes dimensions que cette dernière, afin qu’il n’y ait pas de dépassement de bord.  &lt;br /&gt;
A travers plusieurs manipulations sous Unity, nous sommes arrivés au résultat suivant :&amp;lt;br\&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Unity2.png|vignette|alt=texte alternatif|Scène résultat]]&lt;br /&gt;
&lt;br /&gt;
===Sur QT===&lt;br /&gt;
Dans cette partie, nous avons utilisé le logiciel de développement d’interface graphique QT. &amp;lt;br\&amp;gt;&lt;br /&gt;
Nous avons développé une interface graphique qui permet à un non informaticien de calibrer les Kinects de l’installation. Tout d’abord, nous avons commencé à nous familiariser au logiciel QT et à son environnement à travers plusieurs tutoriels, ce qui nous a aidés tout au long de notre projet afin de réaliser notre interface. &amp;lt;br\&amp;gt;&amp;lt;br\&amp;gt;&lt;br /&gt;
L’interface graphique de calibration comporte 3 fenêtres. On peut se déplacer d’une fenêtre à l’autre grâce à des boutons &amp;lt;br\&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
*Première fenêtre :&lt;br /&gt;
La première fenêtre est la fenêtre typique de chaque installation, qui demande à l’utilisateur s’il veut calibrer sa Kinect ou bien s’il s’est trompé d’application et qu’il voudrait annuler. &amp;lt;br\&amp;gt;&amp;lt;br\&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;[[Fichier:Mainwindow.PNG]]&amp;lt;/center&amp;gt; &amp;lt;br\&amp;gt;&lt;br /&gt;
Dans la suite le code MainWindow.h et MainWindow.cpp de la fenêtre.&amp;lt;br\&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
MainWindow.h&lt;br /&gt;
&lt;br /&gt;
    #ifndef MAINWINDOW_H&lt;br /&gt;
    #define MAINWINDOW_H&lt;br /&gt;
    #include &amp;lt;QMainWindow&amp;gt;&lt;br /&gt;
    #include &amp;lt;QApplication&amp;gt;&lt;br /&gt;
    #include &amp;lt;QProcess&amp;gt;&lt;br /&gt;
    #include &amp;lt;QtGui&amp;gt;&lt;br /&gt;
    #include &amp;quot;calibsetup.h&amp;quot;&lt;br /&gt;
&lt;br /&gt;
    namespace Ui &lt;br /&gt;
    {&lt;br /&gt;
        class MainWindow;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    class MainWindow : public QMainWindow&lt;br /&gt;
    {&lt;br /&gt;
        Q_OBJECT&lt;br /&gt;
&lt;br /&gt;
    public:&lt;br /&gt;
        explicit MainWindow(QWidget *parent = 0);&lt;br /&gt;
        ~MainWindow();&lt;br /&gt;
    &lt;br /&gt;
    private slots:&lt;br /&gt;
    &lt;br /&gt;
        void on_pushButton_clicked();&lt;br /&gt;
    &lt;br /&gt;
        void on_pushButton_2_clicked();&lt;br /&gt;
    &lt;br /&gt;
        void on_pushButton_3_clicked();&lt;br /&gt;
    &lt;br /&gt;
    private:&lt;br /&gt;
        Ui::MainWindow *ui;&lt;br /&gt;
        calib *calibsetup;&lt;br /&gt;
    };&lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
    #endif // MAINWINDOW_H&lt;br /&gt;
  &lt;br /&gt;
  &lt;br /&gt;
MainWindow.cpp :&lt;br /&gt;
&lt;br /&gt;
    #include &amp;quot;mainwindow.h&amp;quot;&lt;br /&gt;
    #include &amp;quot;ui_mainwindow.h&amp;quot;&lt;br /&gt;
    #include &amp;quot;calibsetup.h&amp;quot;&lt;br /&gt;
    &lt;br /&gt;
    #include &amp;lt;QFileDialog&amp;gt;&lt;br /&gt;
    #include &amp;lt;QMessageBox&amp;gt;&lt;br /&gt;
    #include &amp;lt;QDesktopServices&amp;gt;&lt;br /&gt;
    #include &amp;lt;QUrl&amp;gt;&lt;br /&gt;
    #include &amp;lt;QApplication&amp;gt;&lt;br /&gt;
    #include &amp;lt;QDebug&amp;gt;&lt;br /&gt;
    #include &amp;lt;QObject&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
    MainWindow::MainWindow(QWidget *parent) :   QMainWindow(parent),&lt;br /&gt;
&lt;br /&gt;
    ui(new Ui::MainWindow)&lt;br /&gt;
    {&lt;br /&gt;
        ui-&amp;gt;setupUi(this);&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    MainWindow::~MainWindow()&lt;br /&gt;
    {&lt;br /&gt;
        delete ui;&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    void MainWindow::on_pushButton_clicked()&lt;br /&gt;
    {&lt;br /&gt;
        calibsetup = new calib;&lt;br /&gt;
        calibsetup-&amp;gt;show();&lt;br /&gt;
        this-&amp;gt;hide();&lt;br /&gt;
    &lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
    void MainWindow::on_pushButton_2_clicked()&lt;br /&gt;
    {&lt;br /&gt;
          QMessageBox msgBox;&lt;br /&gt;
          msgBox.setWindowTitle(&amp;quot;Exit setup&amp;quot;);&lt;br /&gt;
          msgBox.addButton(QMessageBox::Yes);&lt;br /&gt;
          msgBox.addButton(QMessageBox::No);&lt;br /&gt;
          msgBox.setText(&amp;quot;Voulez-vous vraiment quitter la calibration ?&amp;quot;);&lt;br /&gt;
    &lt;br /&gt;
          int selection = msgBox.exec();&lt;br /&gt;
          if(selection == QMessageBox::Yes)&lt;br /&gt;
          {&lt;br /&gt;
            QCoreApplication::quit();&lt;br /&gt;
          }&lt;br /&gt;
    }&lt;br /&gt;
  &lt;br /&gt;
    &amp;lt;br\&amp;gt;&amp;lt;br\&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
* Deuxième fenêtre :&lt;br /&gt;
Le bouton ‘suivant’ permet de continuer l’installation et ainsi de passer à la deuxième fenêtre où on a listé les différentes étapes nécessaires pour la calibration. La calibration se fait via l’application ‘KinectMSFTCalibration’. Pour lancer cette dernière, l’utilisateur a besoin de cliquer sur le bouton ‘commencer’ qui permet d’afficher la vue de la Kinect qui est dirigé vers l’écran stéréoscopique. On pourra par la suite définir les points en cliquant sur F2 puis sur les bords de l’écran en commençant par le bas de l’écran à gauche puis à droite ensuite en haut à droite puis à gauche dans le sens antihoraire. Quand on place les 4 points au bord de l’écran, on définit le plan de définition. F3 nous permet de sauvegarder les coordonnées des points saisie dans un fichier .txt. Quand on clique sur le bouton 'suivant', on exécute un programme qui nous permet de copier ces coordonnées vers un notre fichier texte. Pour pouvoir revenir à la fenêtre calibsetup, il suffit de fermer l’application. &amp;lt;br\&amp;gt;&amp;lt;br\&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;[[Fichier:Setupcalibration.PNG]]&amp;lt;/center&amp;gt;&amp;lt;br\&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La fenêtre qui permet la calibration est la suivante :&amp;lt;br\&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;[[Fichier:Kinect.PNG]]&amp;lt;/center&amp;gt;&amp;lt;br\&amp;gt;&lt;br /&gt;
Comme vous l'avez remarqué, on a 3 points au bord de l'écran intitulé dans l'ordre BL - BR - TR - TL&amp;lt;br\&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Voici le .h et .cpp de cette fenêtre :&lt;br /&gt;
&lt;br /&gt;
Calibsetup.h :&lt;br /&gt;
&lt;br /&gt;
    #ifndef CALIB_H&lt;br /&gt;
    #define CALIB_H&lt;br /&gt;
    &lt;br /&gt;
    #include &amp;lt;QDialog&amp;gt;&lt;br /&gt;
    #include &amp;quot;fincalibration.h&amp;quot;&lt;br /&gt;
    &lt;br /&gt;
    namespace Ui {&lt;br /&gt;
    class calib;&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    class calib : public QDialog&lt;br /&gt;
    {&lt;br /&gt;
        Q_OBJECT&lt;br /&gt;
    &lt;br /&gt;
    public:&lt;br /&gt;
            explicit calib(QWidget *parent = 0);&lt;br /&gt;
        ~calib();&lt;br /&gt;
    &lt;br /&gt;
    private slots:&lt;br /&gt;
        void on_pushButton_clicked();&lt;br /&gt;
    &lt;br /&gt;
        void on_pushButton_2_clicked();&lt;br /&gt;
    &lt;br /&gt;
        void on_pushButton_3_clicked();&lt;br /&gt;
    &lt;br /&gt;
    private:&lt;br /&gt;
        Ui::calib *ui;&lt;br /&gt;
        FinCalibration *fincalib ;&lt;br /&gt;
    };&lt;br /&gt;
    &lt;br /&gt;
    #endif // CALIB_H&lt;br /&gt;
    &lt;br /&gt;
Calibsetup.cpp :&lt;br /&gt;
&lt;br /&gt;
    #include &amp;quot;calibsetup.h&amp;quot;&lt;br /&gt;
    #include &amp;quot;ui_calibsetup.h&amp;quot;&lt;br /&gt;
    #include &amp;quot;fincalibration.h&amp;quot;&lt;br /&gt;
    #include &amp;lt;QMessageBox&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
    calib::calib(QWidget *parent) :&lt;br /&gt;
        QDialog(parent),&lt;br /&gt;
        ui(new Ui::calib)&lt;br /&gt;
    {&lt;br /&gt;
        ui-&amp;gt;setupUi(this);&lt;br /&gt;
    }&lt;br /&gt;
    calib::~calib()&lt;br /&gt;
    {&lt;br /&gt;
        delete ui;&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    void calib::on_pushButton_clicked()&lt;br /&gt;
    {&lt;br /&gt;
        system(&amp;quot;C:/Users/Demo.ALCOVE-HP-MINT4/Desktop/OOS/nimble_calib.bat&amp;quot;);&lt;br /&gt;
        system(&amp;quot;C:/Users/Demo.ALCOVE-HP-MINT4/Desktop/OOS/nimble_server.bat&amp;quot;);&lt;br /&gt;
        system(&amp;quot;C:/Users/Demo.ALCOVE-HP-MINT4/Desktop/OOS/tool/KinectMSFTCalibration.exe&amp;quot;);&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    void calib::on_pushButton_2_clicked()&lt;br /&gt;
    {&lt;br /&gt;
            fincalib = new FinCalibration;&lt;br /&gt;
            fincalib-&amp;gt;show();&lt;br /&gt;
            this-&amp;gt;hide();&lt;br /&gt;
            system(&amp;quot;C:/Users/Demo.ALCOVE-HP-MINT4/Desktop/OOS/Transfert_Points.exe&amp;quot;)&lt;br /&gt;
    ;}&lt;br /&gt;
    &lt;br /&gt;
    void calib::on_pushButton_3_clicked()&lt;br /&gt;
    {&lt;br /&gt;
        QMessageBox msgBox;&lt;br /&gt;
          msgBox.setWindowTitle(&amp;quot;Calibration setup&amp;quot;);&lt;br /&gt;
          msgBox.addButton(QMessageBox::Yes);&lt;br /&gt;
          msgBox.addButton(QMessageBox::No);&lt;br /&gt;
          msgBox.setText(&amp;quot;Voulez-vous vraiment quitter la calibration ?&amp;quot;);&lt;br /&gt;
    &lt;br /&gt;
          int selection = msgBox.exec();&lt;br /&gt;
          if(selection == QMessageBox::Yes)&lt;br /&gt;
          {&lt;br /&gt;
            QCoreApplication::quit();&lt;br /&gt;
          }&lt;br /&gt;
    }&lt;br /&gt;
    &amp;lt;br\&amp;gt;&amp;lt;br\&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
* Troisième fenêtre:&lt;br /&gt;
En ce qui concerne la 3éme fenêtre, elle permet juste de dire à l’utilisateur que la calibration a été bien faite et que les points ont bien été enregistrés dans le fichier texte puis copier dans le deuxième fichier texte. Voici un imprime écran de la fenêtre :&amp;lt;br\&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;[[Fichier:Fin.PNG]]&amp;lt;/center&amp;gt;&amp;lt;br\&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Voici le code .h et .cpp de cette 3éme fenêtre :&amp;lt;br\&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Fincalibration.h&lt;br /&gt;
&lt;br /&gt;
    #ifndef FINCALIBRATION_H&lt;br /&gt;
    #define FINCALIBRATION_H&lt;br /&gt;
    &lt;br /&gt;
    #include &amp;lt;QDialog&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
    namespace Ui {&lt;br /&gt;
    class FinCalibration;&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    class FinCalibration : public QDialog&lt;br /&gt;
    {&lt;br /&gt;
        Q_OBJECT&lt;br /&gt;
    &lt;br /&gt;
    public:&lt;br /&gt;
        explicit FinCalibration(QWidget *parent = 0);&lt;br /&gt;
        ~FinCalibration();&lt;br /&gt;
    &lt;br /&gt;
    private slots:&lt;br /&gt;
        void on_pushButton_clicked();&lt;br /&gt;
    &lt;br /&gt;
    private:&lt;br /&gt;
        Ui::FinCalibration *ui;&lt;br /&gt;
    &lt;br /&gt;
    };&lt;br /&gt;
    &lt;br /&gt;
    #endif // FINCALIBRATION_H&lt;br /&gt;
    &lt;br /&gt;
    Fincalibration.cpp&lt;br /&gt;
    &lt;br /&gt;
    #include &amp;quot;fincalibration.h&amp;quot;&lt;br /&gt;
    #include &amp;quot;ui_fincalibration.h&amp;quot;&lt;br /&gt;
    &lt;br /&gt;
    #include &amp;lt;QMessageBox&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
    FinCalibration::FinCalibration(QWidget *parent) :&lt;br /&gt;
        QDialog(parent),&lt;br /&gt;
        ui(new Ui::FinCalibration)&lt;br /&gt;
    {&lt;br /&gt;
        ui-&amp;gt;setupUi(this);&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    FinCalibration::~FinCalibration()&lt;br /&gt;
    {&lt;br /&gt;
        delete ui;&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    void FinCalibration::on_pushButton_clicked()&lt;br /&gt;
    {&lt;br /&gt;
          QCoreApplication::quit();&lt;br /&gt;
    &lt;br /&gt;
    }&lt;br /&gt;
    &amp;lt;br\&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pour le bouton ‘annuler’ qui est présent dans toutes les fenêtres, quand on appui dessus, il demande à l’utilisateur s’il veut vraiment quitter la calibration en lui proposant deux boutons « Yes » et « No ». Le bouton « no » permet de revenir à la fenêtre précédente et le bouton « yes » permet de quitter l’application.&amp;lt;br\&amp;gt;&lt;br /&gt;
[[Fichier:Annuler.PNG]]&lt;/div&gt;</summary>
		<author><name>Zassaieb</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=Out_of_Space&amp;diff=12128</id>
		<title>Out of Space</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=Out_of_Space&amp;diff=12128"/>
				<updated>2014-04-15T19:58:29Z</updated>
		
		<summary type="html">&lt;p&gt;Zassaieb : /* Sur QT */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Généralités sur le projet ==&lt;br /&gt;
&lt;br /&gt;
=== Contexte ===&lt;br /&gt;
&lt;br /&gt;
Ce projet met en collaboration une artiste et une société de production de jeu vidéo 3D, et vise à mettre en place une application interactive utilisant une classe de dispositifs d'interaction orienté &amp;quot;maquette holographique&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=== Descriptif ===&lt;br /&gt;
&lt;br /&gt;
Le projet vise à réaliser une application interactive sur un affichage stéréoscopique, et qui consiste à piloter un objet (une bille) dans un certain environnement, tout en déroulant l’évolution de cet environnement sur une vidéo de fond. Le mouvement de cet objet est contrôlé par les gestes des mains qui sont détectées par une Kinect et traduits sur un écran 3D.&lt;br /&gt;
&lt;br /&gt;
=== Problématique ===&lt;br /&gt;
&lt;br /&gt;
La problématique qui se pose est de pouvoir prendre aussi en compte la tête de l’utilisateur sur l’espace d’acquisition afin d’avoir les données sur l’angle de vision et donc d’orienter l’affichage 3D sur l’écran selon sa position, ainsi le mouvement de la tête impliquera l’inclinaison des objets affichés dans un sens ou dans l’autre.&lt;br /&gt;
&lt;br /&gt;
== == &lt;br /&gt;
&lt;br /&gt;
=== Cahier des charges ===&lt;br /&gt;
{{Petit|''Le cahier des charges ne peut être réalisé pour l'instant car notre projet est une continuité d'un projet réalisé actuellement par des élèves en IMA5, et les tâches qui nous seront affectées vont dépendre de leur avancement. La phase de transition sera faite quelques jours avant leur soutenance. Cependant, nous avons commencé par nous familiariser aux outils à utiliser''}}&amp;lt;br\&amp;gt;&amp;lt;br\&amp;gt;&lt;br /&gt;
-&amp;gt;  Mise en place d’un outil de Calibration pour calibrer et mettre en place la scène 3D selon la position de l’utilisateur, pour l’utilisation par un non informaticien.&lt;br /&gt;
&lt;br /&gt;
=== Les outils matériels/logiciels utilisés ===&lt;br /&gt;
&lt;br /&gt;
* Kinect, le périphérique de reconnaissance de mouvement&amp;lt;br/&amp;gt;&lt;br /&gt;
* Ecran Stereoscopique pour l'affichage 3D&amp;lt;br/&amp;gt;&lt;br /&gt;
* 3Gear possède une technologie qui permet, à partir des caméras 3D de la Kinect, de reconstruire une représentation précise des doigts et de ce que les mains font, en prenant les données 3D brutes et les transformant en informations utilisables sur l'état des mains. Les interfaces de programmation sont basées sur le pointage et le pincement et fournissent les angles des articulations approximatives, elles sont disponibles en C ++, C # et Java&amp;lt;br/&amp;gt;&lt;br /&gt;
* Unity 3D est un logiciel middleware de création de contenu interactif comportant de la vidéo et des objets 3D/2D. Il permet de créer des scènes supportant des éclairages, des terrains, des caméras, des textures ... . L’intérêt de ce logiciel est que celui-ci dispose d’une interface intuitive d’intégration d’objets et de scripts ; l’éditeur d’Unity intègre des composants pré-configurés évitant le développement de code fastidieux.&lt;br /&gt;
* QT est une interface de programmation orientée objet et développée en C++. Elle offre des composants d'interface graphique (widgets), d'accès aux données, de connexions réseaux, de gestion des fils d'exécution, d'analyse XML, etc. Par certains aspects c’est aussi un framework lorsqu'on l'utilise pour concevoir des interfaces graphiques ou que l'on architecture son application en utilisant les mécanismes des “signaux” et “slots” par exemple.&lt;br /&gt;
&lt;br /&gt;
== Déroulement du projet ==&lt;br /&gt;
===Semaine 03/02 – 07/02===&lt;br /&gt;
* Entretien avec Mr Laurent Grisonni pour comprendre le projet&lt;br /&gt;
* Etablissement d’un cahier de charge global en attente de précisions après la soutenance des IMA5&lt;br /&gt;
* Spécifications des outils et matériels utilisés&lt;br /&gt;
===Semaine 10/02 - 14/02===&lt;br /&gt;
* Rencontre avec les étudiants qui travaillent déjà sur le sujet&lt;br /&gt;
* Compréhension du travail réalisé&lt;br /&gt;
* Suggestion d’éventuelles améliorations&lt;br /&gt;
===Semaine 17/02 - 21/02===&lt;br /&gt;
* Prise en main de l’outil Unity à l’aide de quelques Tutoriels pour la création de scènes 3D&lt;br /&gt;
* Compréhension et analyse de la librairie 3gear de détection de geste via la Kinect&lt;br /&gt;
===Semaine 03/03 – 07/03===&lt;br /&gt;
* Spécification du besoin : Mise en place d’un outil de Calibration pour calibrer mettre en place la scène 3D selon la position de l’utilisateur, pour l’utilisation par un non informaticien.&lt;br /&gt;
===Semaine 12/03 – 14/03===&lt;br /&gt;
* Installation à l’IRCICA, remise des clefs et badges de la salle de travail, récupération du SVN du projet.&lt;br /&gt;
* Rencontre de plusieurs problèmes dont :&lt;br /&gt;
o	Pas de licence Windows sur le poste fourni &amp;lt;br/&amp;gt;&lt;br /&gt;
o	Problèmes de réseau et d’accès internet pour l’extraction du SVN&lt;br /&gt;
&lt;br /&gt;
===Semaine 24/03 – 28/03===&lt;br /&gt;
* Installation du logiciel Unity&lt;br /&gt;
* Impossibilité d’installer les logiciels de programmation pour la librairie 3gear: Processeur incompatible&lt;br /&gt;
* Premiers tests du programme existant, incomplets par manque d’outils.&lt;br /&gt;
* Ajustements de la  scène Unity à la taille de l’écran Stéréoscopique&lt;br /&gt;
&lt;br /&gt;
===Semaine 31/03 – 04/04===&lt;br /&gt;
''Outil de calibration'' : Cet outil est censé permettre à l’artiste ou n’importe quel autre utilisateur non information de pouvoir ajuster les réglages et le calibrage des Kinects par rapport à l’écran stéréoscopique sans avoir à modifier les lignes de code de l’application. &lt;br /&gt;
&lt;br /&gt;
''Calibrage'' : Afin de réaliser le calibrage de la Kinect, il faut d’abord lancer les programmes d’installation de la librairie 3gear de  la Kinect (nimble_calib et nimble_server, ces applications sont fournies avec le kit de la librairie), il faut ensuite lancer l’application Kinect_MSFT_Calibration. Cette application a été déjà développée pour ce projet et qui consiste en l’affichage de l’image reçue par la Kinect afin de sélectionner dessus les points des 4 coins de l’écran stéréoscopique (l’écran étant visible sur l’image), l’application enregistre alors ces coordonnées dans un fichier texte, et donc, ces coordonnées doivent être repris et mis dans un autre fichier texte en effectuant quelques modifications dessus. Ce dernier est celui qui est utilisé par l’application d’affichage de la scène 3D sur l’écran 3D, et qui utilise ces points pour régler l’affichage. &lt;br /&gt;
&lt;br /&gt;
* Prise en main de l’outil de développement d’interfaces graphiques QT&lt;br /&gt;
* Première ébauche de la gestion des fenêtres de l’interface graphique à développer.&lt;br /&gt;
* Problème rencontré : l’outil est bloqué quand on affecte à un bouton le passage à une deuxième fenêtre et l’exécution d’une application en même temps.&lt;br /&gt;
* Réalisation d’un programme C permettant le transfert des coordonnées du fichier source au fichier de destination.&lt;br /&gt;
&lt;br /&gt;
===Semaine 07/04 – 11/04===&lt;br /&gt;
* Test du programme de transfert de données sur l’outil et son implémentation&lt;br /&gt;
* Finalisation de l’interface graphique, en résolvant le problème rencontré.&lt;br /&gt;
* L’outil réalise bien la tâche demandée.&lt;br /&gt;
&lt;br /&gt;
==Travail réalisé==&lt;br /&gt;
===Sur Unity===&lt;br /&gt;
&lt;br /&gt;
Au tout début, il fallait ajuster la scène à la taille de l’écran stéréoscopique  sous Unity. La scène se présente comme suit :&amp;lt;br\&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Unity1.png|vignette|alt=texte alternatif|Scène Unity]]&lt;br /&gt;
La scène était perpendiculaire à l’écran stéréoscopique. Il fallait l’ajuster de façon à ce qu’on aie un ‘ground’ (qui correspond à l’écran stéréoscopique) et qui soit parallèle à la scène et aillant les mêmes dimensions que cette dernière, afin qu’il n’y ait pas de dépassement de bord.  &lt;br /&gt;
A travers plusieurs manipulations sous Unity, nous sommes arrivés au résultat suivant :&amp;lt;br\&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Unity2.png|vignette|alt=texte alternatif|Scène résultat]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Sur QT===&lt;br /&gt;
Dans cette partie, nous avons utilisé le logiciel de développement d’interface graphique QT. &amp;lt;br\&amp;gt;&lt;br /&gt;
Nous avons développé une interface graphique qui permet à un non informaticien de calibrer les Kinects de l’installation. Tout d’abord, nous avons commencé à nous familiariser au logiciel QT et à son environnement à travers plusieurs tutoriels, ce qui nous a aidés tout au long de notre projet afin de réaliser notre interface. &amp;lt;br\&amp;gt;&amp;lt;br\&amp;gt;&lt;br /&gt;
L’interface graphique de calibration comporte 3 fenêtres. On peut se déplacer d’une fenêtre à l’autre grâce à des boutons &amp;lt;br\&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
*Première fenêtre :&lt;br /&gt;
La première fenêtre est la fenêtre typique de chaque installation, qui demande à l’utilisateur s’il veut calibrer sa Kinect ou bien s’il s’est trompé d’application et qu’il voudrait annuler. &amp;lt;br\&amp;gt;&amp;lt;br\&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;[[Fichier:Mainwindow.PNG]]&amp;lt;/center&amp;gt; &amp;lt;br\&amp;gt;&lt;br /&gt;
Dans la suite le code MainWindow.h et MainWindow.cpp de la fenêtre.&amp;lt;br\&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
MainWindow.h&lt;br /&gt;
&lt;br /&gt;
    #ifndef MAINWINDOW_H&lt;br /&gt;
    #define MAINWINDOW_H&lt;br /&gt;
    #include &amp;lt;QMainWindow&amp;gt;&lt;br /&gt;
    #include &amp;lt;QApplication&amp;gt;&lt;br /&gt;
    #include &amp;lt;QProcess&amp;gt;&lt;br /&gt;
    #include &amp;lt;QtGui&amp;gt;&lt;br /&gt;
    #include &amp;quot;calibsetup.h&amp;quot;&lt;br /&gt;
&lt;br /&gt;
    namespace Ui &lt;br /&gt;
    {&lt;br /&gt;
        class MainWindow;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    class MainWindow : public QMainWindow&lt;br /&gt;
    {&lt;br /&gt;
        Q_OBJECT&lt;br /&gt;
&lt;br /&gt;
    public:&lt;br /&gt;
        explicit MainWindow(QWidget *parent = 0);&lt;br /&gt;
        ~MainWindow();&lt;br /&gt;
    &lt;br /&gt;
    private slots:&lt;br /&gt;
    &lt;br /&gt;
        void on_pushButton_clicked();&lt;br /&gt;
    &lt;br /&gt;
        void on_pushButton_2_clicked();&lt;br /&gt;
    &lt;br /&gt;
        void on_pushButton_3_clicked();&lt;br /&gt;
    &lt;br /&gt;
    private:&lt;br /&gt;
        Ui::MainWindow *ui;&lt;br /&gt;
        calib *calibsetup;&lt;br /&gt;
    };&lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
    #endif // MAINWINDOW_H&lt;br /&gt;
  &lt;br /&gt;
  &lt;br /&gt;
MainWindow.cpp :&lt;br /&gt;
&lt;br /&gt;
    #include &amp;quot;mainwindow.h&amp;quot;&lt;br /&gt;
    #include &amp;quot;ui_mainwindow.h&amp;quot;&lt;br /&gt;
    #include &amp;quot;calibsetup.h&amp;quot;&lt;br /&gt;
    &lt;br /&gt;
    #include &amp;lt;QFileDialog&amp;gt;&lt;br /&gt;
    #include &amp;lt;QMessageBox&amp;gt;&lt;br /&gt;
    #include &amp;lt;QDesktopServices&amp;gt;&lt;br /&gt;
    #include &amp;lt;QUrl&amp;gt;&lt;br /&gt;
    #include &amp;lt;QApplication&amp;gt;&lt;br /&gt;
    #include &amp;lt;QDebug&amp;gt;&lt;br /&gt;
    #include &amp;lt;QObject&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
    MainWindow::MainWindow(QWidget *parent) :   QMainWindow(parent),&lt;br /&gt;
&lt;br /&gt;
    ui(new Ui::MainWindow)&lt;br /&gt;
    {&lt;br /&gt;
        ui-&amp;gt;setupUi(this);&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    MainWindow::~MainWindow()&lt;br /&gt;
    {&lt;br /&gt;
        delete ui;&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    void MainWindow::on_pushButton_clicked()&lt;br /&gt;
    {&lt;br /&gt;
        calibsetup = new calib;&lt;br /&gt;
        calibsetup-&amp;gt;show();&lt;br /&gt;
        this-&amp;gt;hide();&lt;br /&gt;
    &lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
    void MainWindow::on_pushButton_2_clicked()&lt;br /&gt;
    {&lt;br /&gt;
          QMessageBox msgBox;&lt;br /&gt;
          msgBox.setWindowTitle(&amp;quot;Exit setup&amp;quot;);&lt;br /&gt;
          msgBox.addButton(QMessageBox::Yes);&lt;br /&gt;
          msgBox.addButton(QMessageBox::No);&lt;br /&gt;
          msgBox.setText(&amp;quot;Voulez-vous vraiment quitter la calibration ?&amp;quot;);&lt;br /&gt;
    &lt;br /&gt;
          int selection = msgBox.exec();&lt;br /&gt;
          if(selection == QMessageBox::Yes)&lt;br /&gt;
          {&lt;br /&gt;
            QCoreApplication::quit();&lt;br /&gt;
          }&lt;br /&gt;
    }&lt;br /&gt;
  &lt;br /&gt;
    &amp;lt;br\&amp;gt;&amp;lt;br\&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
* Deuxième fenêtre :&lt;br /&gt;
Le bouton ‘suivant’ permet de continuer l’installation et ainsi de passer à la deuxième fenêtre où on a listé les différentes étapes nécessaires pour la calibration. La calibration se fait via l’application ‘KinectMSFTCalibration’. Pour lancer cette dernière, l’utilisateur a besoin de cliquer sur le bouton ‘commencer’ qui permet d’afficher la vue de la Kinect qui est dirigé vers l’écran stéréoscopique. On pourra par la suite définir les points en cliquant sur F2 puis sur les bords de l’écran en commençant par le bas de l’écran à gauche puis à droite ensuite en haut à droite puis à gauche dans le sens antihoraire. Quand on place les 4 points au bord de l’écran, on définit le plan de définition. F3 nous permet de sauvegarder les coordonnées des points saisie dans un fichier .txt. Quand on clique sur le bouton 'suivant', on exécute un programme qui nous permet de copier ces coordonnées vers un notre fichier texte. Pour pouvoir revenir à la fenêtre calibsetup, il suffit de fermer l’application. &amp;lt;br\&amp;gt;&amp;lt;br\&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;[[Fichier:Setupcalibration.PNG]]&amp;lt;/center&amp;gt;&amp;lt;br\&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La fenêtre qui permet la calibration est la suivante :&amp;lt;br\&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;[[Fichier:Kinect.PNG]]&amp;lt;/center&amp;gt;&amp;lt;br\&amp;gt;&lt;br /&gt;
Comme vous l'avez remarqué, on a 3 points au bord de l'écran intitulé dans l'ordre BL - BR - TR - TL&amp;lt;br\&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Voici le .h et .cpp de cette fenêtre :&lt;br /&gt;
&lt;br /&gt;
Calibsetup.h :&lt;br /&gt;
&lt;br /&gt;
    #ifndef CALIB_H&lt;br /&gt;
    #define CALIB_H&lt;br /&gt;
    &lt;br /&gt;
    #include &amp;lt;QDialog&amp;gt;&lt;br /&gt;
    #include &amp;quot;fincalibration.h&amp;quot;&lt;br /&gt;
    &lt;br /&gt;
    namespace Ui {&lt;br /&gt;
    class calib;&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    class calib : public QDialog&lt;br /&gt;
    {&lt;br /&gt;
        Q_OBJECT&lt;br /&gt;
    &lt;br /&gt;
    public:&lt;br /&gt;
            explicit calib(QWidget *parent = 0);&lt;br /&gt;
        ~calib();&lt;br /&gt;
    &lt;br /&gt;
    private slots:&lt;br /&gt;
        void on_pushButton_clicked();&lt;br /&gt;
    &lt;br /&gt;
        void on_pushButton_2_clicked();&lt;br /&gt;
    &lt;br /&gt;
        void on_pushButton_3_clicked();&lt;br /&gt;
    &lt;br /&gt;
    private:&lt;br /&gt;
        Ui::calib *ui;&lt;br /&gt;
        FinCalibration *fincalib ;&lt;br /&gt;
    };&lt;br /&gt;
    &lt;br /&gt;
    #endif // CALIB_H&lt;br /&gt;
    &lt;br /&gt;
Calibsetup.cpp :&lt;br /&gt;
&lt;br /&gt;
    #include &amp;quot;calibsetup.h&amp;quot;&lt;br /&gt;
    #include &amp;quot;ui_calibsetup.h&amp;quot;&lt;br /&gt;
    #include &amp;quot;fincalibration.h&amp;quot;&lt;br /&gt;
    #include &amp;lt;QMessageBox&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
    calib::calib(QWidget *parent) :&lt;br /&gt;
        QDialog(parent),&lt;br /&gt;
        ui(new Ui::calib)&lt;br /&gt;
    {&lt;br /&gt;
        ui-&amp;gt;setupUi(this);&lt;br /&gt;
    }&lt;br /&gt;
    calib::~calib()&lt;br /&gt;
    {&lt;br /&gt;
        delete ui;&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    void calib::on_pushButton_clicked()&lt;br /&gt;
    {&lt;br /&gt;
        system(&amp;quot;C:/Users/Demo.ALCOVE-HP-MINT4/Desktop/OOS/nimble_calib.bat&amp;quot;);&lt;br /&gt;
        system(&amp;quot;C:/Users/Demo.ALCOVE-HP-MINT4/Desktop/OOS/nimble_server.bat&amp;quot;);&lt;br /&gt;
        system(&amp;quot;C:/Users/Demo.ALCOVE-HP-MINT4/Desktop/OOS/tool/KinectMSFTCalibration.exe&amp;quot;);&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    void calib::on_pushButton_2_clicked()&lt;br /&gt;
    {&lt;br /&gt;
            fincalib = new FinCalibration;&lt;br /&gt;
            fincalib-&amp;gt;show();&lt;br /&gt;
            this-&amp;gt;hide();&lt;br /&gt;
            system(&amp;quot;C:/Users/Demo.ALCOVE-HP-MINT4/Desktop/OOS/Transfert_Points.exe&amp;quot;)&lt;br /&gt;
    ;}&lt;br /&gt;
    &lt;br /&gt;
    void calib::on_pushButton_3_clicked()&lt;br /&gt;
    {&lt;br /&gt;
        QMessageBox msgBox;&lt;br /&gt;
          msgBox.setWindowTitle(&amp;quot;Calibration setup&amp;quot;);&lt;br /&gt;
          msgBox.addButton(QMessageBox::Yes);&lt;br /&gt;
          msgBox.addButton(QMessageBox::No);&lt;br /&gt;
          msgBox.setText(&amp;quot;Voulez-vous vraiment quitter la calibration ?&amp;quot;);&lt;br /&gt;
    &lt;br /&gt;
          int selection = msgBox.exec();&lt;br /&gt;
          if(selection == QMessageBox::Yes)&lt;br /&gt;
          {&lt;br /&gt;
            QCoreApplication::quit();&lt;br /&gt;
          }&lt;br /&gt;
    }&lt;br /&gt;
    &amp;lt;br\&amp;gt;&amp;lt;br\&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
* Troisième fenêtre:&lt;br /&gt;
En ce qui concerne la 3éme fenêtre, elle permet juste de dire à l’utilisateur que la calibration a été bien faite et que les points ont bien été enregistrés dans le fichier texte puis copier dans le deuxième fichier texte. Voici un imprime écran de la fenêtre :&amp;lt;br\&amp;gt;&lt;br /&gt;
&amp;lt;center&amp;gt;[[Fichier:Fin.PNG]]&amp;lt;/center&amp;gt;&amp;lt;br\&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Voici le code .h et .cpp de cette 3éme fenêtre :&amp;lt;br\&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Fincalibration.h&lt;br /&gt;
&lt;br /&gt;
    #ifndef FINCALIBRATION_H&lt;br /&gt;
    #define FINCALIBRATION_H&lt;br /&gt;
    &lt;br /&gt;
    #include &amp;lt;QDialog&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
    namespace Ui {&lt;br /&gt;
    class FinCalibration;&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    class FinCalibration : public QDialog&lt;br /&gt;
    {&lt;br /&gt;
        Q_OBJECT&lt;br /&gt;
    &lt;br /&gt;
    public:&lt;br /&gt;
        explicit FinCalibration(QWidget *parent = 0);&lt;br /&gt;
        ~FinCalibration();&lt;br /&gt;
    &lt;br /&gt;
    private slots:&lt;br /&gt;
        void on_pushButton_clicked();&lt;br /&gt;
    &lt;br /&gt;
    private:&lt;br /&gt;
        Ui::FinCalibration *ui;&lt;br /&gt;
    &lt;br /&gt;
    };&lt;br /&gt;
    &lt;br /&gt;
    #endif // FINCALIBRATION_H&lt;br /&gt;
    &lt;br /&gt;
    Fincalibration.cpp&lt;br /&gt;
    &lt;br /&gt;
    #include &amp;quot;fincalibration.h&amp;quot;&lt;br /&gt;
    #include &amp;quot;ui_fincalibration.h&amp;quot;&lt;br /&gt;
    &lt;br /&gt;
    #include &amp;lt;QMessageBox&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
    FinCalibration::FinCalibration(QWidget *parent) :&lt;br /&gt;
        QDialog(parent),&lt;br /&gt;
        ui(new Ui::FinCalibration)&lt;br /&gt;
    {&lt;br /&gt;
        ui-&amp;gt;setupUi(this);&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    FinCalibration::~FinCalibration()&lt;br /&gt;
    {&lt;br /&gt;
        delete ui;&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    void FinCalibration::on_pushButton_clicked()&lt;br /&gt;
    {&lt;br /&gt;
          QCoreApplication::quit();&lt;br /&gt;
    &lt;br /&gt;
    }&lt;br /&gt;
    &amp;lt;br\&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pour le bouton ‘annuler’ qui est présent dans toutes les fenêtres, quand on appui dessus, il demande à l’utilisateur s’il veut vraiment quitter la calibration en lui proposant deux boutons « Yes » et « No ». Le bouton « no » permet de revenir à la fenêtre précédente et le bouton « yes » permet de quitter l’application.&amp;lt;br\&amp;gt;&lt;br /&gt;
[[Fichier:Annuler.PNG]]&lt;/div&gt;</summary>
		<author><name>Zassaieb</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=Out_of_Space&amp;diff=12118</id>
		<title>Out of Space</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=Out_of_Space&amp;diff=12118"/>
				<updated>2014-04-15T19:54:55Z</updated>
		
		<summary type="html">&lt;p&gt;Zassaieb : /* Sur QT */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Généralités sur le projet ==&lt;br /&gt;
&lt;br /&gt;
=== Contexte ===&lt;br /&gt;
&lt;br /&gt;
Ce projet met en collaboration une artiste et une société de production de jeu vidéo 3D, et vise à mettre en place une application interactive utilisant une classe de dispositifs d'interaction orienté &amp;quot;maquette holographique&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=== Descriptif ===&lt;br /&gt;
&lt;br /&gt;
Le projet vise à réaliser une application interactive sur un affichage stéréoscopique, et qui consiste à piloter un objet (une bille) dans un certain environnement, tout en déroulant l’évolution de cet environnement sur une vidéo de fond. Le mouvement de cet objet est contrôlé par les gestes des mains qui sont détectées par une Kinect et traduits sur un écran 3D.&lt;br /&gt;
&lt;br /&gt;
=== Problématique ===&lt;br /&gt;
&lt;br /&gt;
La problématique qui se pose est de pouvoir prendre aussi en compte la tête de l’utilisateur sur l’espace d’acquisition afin d’avoir les données sur l’angle de vision et donc d’orienter l’affichage 3D sur l’écran selon sa position, ainsi le mouvement de la tête impliquera l’inclinaison des objets affichés dans un sens ou dans l’autre.&lt;br /&gt;
&lt;br /&gt;
== == &lt;br /&gt;
&lt;br /&gt;
=== Cahier des charges ===&lt;br /&gt;
{{Petit|''Le cahier des charges ne peut être réalisé pour l'instant car notre projet est une continuité d'un projet réalisé actuellement par des élèves en IMA5, et les tâches qui nous seront affectées vont dépendre de leur avancement. La phase de transition sera faite quelques jours avant leur soutenance. Cependant, nous avons commencé par nous familiariser aux outils à utiliser''}}&amp;lt;br\&amp;gt;&amp;lt;br\&amp;gt;&lt;br /&gt;
-&amp;gt;  Mise en place d’un outil de Calibration pour calibrer et mettre en place la scène 3D selon la position de l’utilisateur, pour l’utilisation par un non informaticien.&lt;br /&gt;
&lt;br /&gt;
=== Les outils matériels/logiciels utilisés ===&lt;br /&gt;
&lt;br /&gt;
* Kinect, le périphérique de reconnaissance de mouvement&amp;lt;br/&amp;gt;&lt;br /&gt;
* Ecran Stereoscopique pour l'affichage 3D&amp;lt;br/&amp;gt;&lt;br /&gt;
* 3Gear possède une technologie qui permet, à partir des caméras 3D de la Kinect, de reconstruire une représentation précise des doigts et de ce que les mains font, en prenant les données 3D brutes et les transformant en informations utilisables sur l'état des mains. Les interfaces de programmation sont basées sur le pointage et le pincement et fournissent les angles des articulations approximatives, elles sont disponibles en C ++, C # et Java&amp;lt;br/&amp;gt;&lt;br /&gt;
* Unity 3D est un logiciel middleware de création de contenu interactif comportant de la vidéo et des objets 3D/2D. Il permet de créer des scènes supportant des éclairages, des terrains, des caméras, des textures ... . L’intérêt de ce logiciel est que celui-ci dispose d’une interface intuitive d’intégration d’objets et de scripts ; l’éditeur d’Unity intègre des composants pré-configurés évitant le développement de code fastidieux.&lt;br /&gt;
* QT est une interface de programmation orientée objet et développée en C++. Elle offre des composants d'interface graphique (widgets), d'accès aux données, de connexions réseaux, de gestion des fils d'exécution, d'analyse XML, etc. Par certains aspects c’est aussi un framework lorsqu'on l'utilise pour concevoir des interfaces graphiques ou que l'on architecture son application en utilisant les mécanismes des “signaux” et “slots” par exemple.&lt;br /&gt;
&lt;br /&gt;
== Déroulement du projet ==&lt;br /&gt;
===Semaine 03/02 – 07/02===&lt;br /&gt;
* Entretien avec Mr Laurent Grisonni pour comprendre le projet&lt;br /&gt;
* Etablissement d’un cahier de charge global en attente de précisions après la soutenance des IMA5&lt;br /&gt;
* Spécifications des outils et matériels utilisés&lt;br /&gt;
===Semaine 10/02 - 14/02===&lt;br /&gt;
* Rencontre avec les étudiants qui travaillent déjà sur le sujet&lt;br /&gt;
* Compréhension du travail réalisé&lt;br /&gt;
* Suggestion d’éventuelles améliorations&lt;br /&gt;
===Semaine 17/02 - 21/02===&lt;br /&gt;
* Prise en main de l’outil Unity à l’aide de quelques Tutoriels pour la création de scènes 3D&lt;br /&gt;
* Compréhension et analyse de la librairie 3gear de détection de geste via la Kinect&lt;br /&gt;
===Semaine 03/03 – 07/03===&lt;br /&gt;
* Spécification du besoin : Mise en place d’un outil de Calibration pour calibrer mettre en place la scène 3D selon la position de l’utilisateur, pour l’utilisation par un non informaticien.&lt;br /&gt;
===Semaine 12/03 – 14/03===&lt;br /&gt;
* Installation à l’IRCICA, remise des clefs et badges de la salle de travail, récupération du SVN du projet.&lt;br /&gt;
* Rencontre de plusieurs problèmes dont :&lt;br /&gt;
o	Pas de licence Windows sur le poste fourni &amp;lt;br/&amp;gt;&lt;br /&gt;
o	Problèmes de réseau et d’accès internet pour l’extraction du SVN&lt;br /&gt;
&lt;br /&gt;
===Semaine 24/03 – 28/03===&lt;br /&gt;
* Installation du logiciel Unity&lt;br /&gt;
* Impossibilité d’installer les logiciels de programmation pour la librairie 3gear: Processeur incompatible&lt;br /&gt;
* Premiers tests du programme existant, incomplets par manque d’outils.&lt;br /&gt;
* Ajustements de la  scène Unity à la taille de l’écran Stéréoscopique&lt;br /&gt;
&lt;br /&gt;
===Semaine 31/03 – 04/04===&lt;br /&gt;
''Outil de calibration'' : Cet outil est censé permettre à l’artiste ou n’importe quel autre utilisateur non information de pouvoir ajuster les réglages et le calibrage des Kinects par rapport à l’écran stéréoscopique sans avoir à modifier les lignes de code de l’application. &lt;br /&gt;
&lt;br /&gt;
''Calibrage'' : Afin de réaliser le calibrage de la Kinect, il faut d’abord lancer les programmes d’installation de la librairie 3gear de  la Kinect (nimble_calib et nimble_server, ces applications sont fournies avec le kit de la librairie), il faut ensuite lancer l’application Kinect_MSFT_Calibration. Cette application a été déjà développée pour ce projet et qui consiste en l’affichage de l’image reçue par la Kinect afin de sélectionner dessus les points des 4 coins de l’écran stéréoscopique (l’écran étant visible sur l’image), l’application enregistre alors ces coordonnées dans un fichier texte, et donc, ces coordonnées doivent être repris et mis dans un autre fichier texte en effectuant quelques modifications dessus. Ce dernier est celui qui est utilisé par l’application d’affichage de la scène 3D sur l’écran 3D, et qui utilise ces points pour régler l’affichage. &lt;br /&gt;
&lt;br /&gt;
* Prise en main de l’outil de développement d’interfaces graphiques QT&lt;br /&gt;
* Première ébauche de la gestion des fenêtres de l’interface graphique à développer.&lt;br /&gt;
* Problème rencontré : l’outil est bloqué quand on affecte à un bouton le passage à une deuxième fenêtre et l’exécution d’une application en même temps.&lt;br /&gt;
* Réalisation d’un programme C permettant le transfert des coordonnées du fichier source au fichier de destination.&lt;br /&gt;
&lt;br /&gt;
===Semaine 07/04 – 11/04===&lt;br /&gt;
* Test du programme de transfert de données sur l’outil et son implémentation&lt;br /&gt;
* Finalisation de l’interface graphique, en résolvant le problème rencontré.&lt;br /&gt;
* L’outil réalise bien la tâche demandée.&lt;br /&gt;
&lt;br /&gt;
==Travail réalisé==&lt;br /&gt;
===Sur Unity===&lt;br /&gt;
&lt;br /&gt;
Au tout début, il fallait ajuster la scène à la taille de l’écran stéréoscopique  sous Unity. La scène se présente comme suit :&amp;lt;br\&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Unity1.png|vignette|alt=texte alternatif|Scène Unity]]&lt;br /&gt;
La scène était perpendiculaire à l’écran stéréoscopique. Il fallait l’ajuster de façon à ce qu’on aie un ‘ground’ (qui correspond à l’écran stéréoscopique) et qui soit parallèle à la scène et aillant les mêmes dimensions que cette dernière, afin qu’il n’y ait pas de dépassement de bord.  &lt;br /&gt;
A travers plusieurs manipulations sous Unity, nous sommes arrivés au résultat suivant :&amp;lt;br\&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Unity2.png|vignette|alt=texte alternatif|Scène résultat]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Sur QT===&lt;br /&gt;
Dans cette partie, nous avons utilisé le logiciel de développement d’interface graphique QT. &amp;lt;br\&amp;gt;&lt;br /&gt;
Nous avons développé une interface graphique qui permet à un non informaticien de calibrer les Kinects de l’installation. Tout d’abord, nous avons commencé à nous familiariser au logiciel QT et à son environnement à travers plusieurs tutoriels, ce qui nous a aidés tout au long de notre projet afin de réaliser notre interface. &amp;lt;br\&amp;gt;&amp;lt;br\&amp;gt;&lt;br /&gt;
L’interface graphique de calibration comporte 3 fenêtres. On peut se déplacer d’une fenêtre à l’autre grâce à des boutons &amp;lt;br\&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
*Première fenêtre :&lt;br /&gt;
La première fenêtre est la fenêtre typique de chaque installation, qui demande à l’utilisateur s’il veut calibrer sa Kinect ou bien s’il s’est trompé d’application et qu’il voudrait annuler. &amp;lt;br\&amp;gt;&amp;lt;br\&amp;gt;&lt;br /&gt;
[[Fichier:Mainwindow.PNG]] &amp;lt;br\&amp;gt;&lt;br /&gt;
Vous trouverez dans la suite le code MainWindow.h et MainWindow.cpp de la fenêtre.&amp;lt;br\&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
MainWindow.h&lt;br /&gt;
&lt;br /&gt;
    #ifndef MAINWINDOW_H&lt;br /&gt;
    #define MAINWINDOW_H&lt;br /&gt;
    #include &amp;lt;QMainWindow&amp;gt;&lt;br /&gt;
    #include &amp;lt;QApplication&amp;gt;&lt;br /&gt;
    #include &amp;lt;QProcess&amp;gt;&lt;br /&gt;
    #include &amp;lt;QtGui&amp;gt;&lt;br /&gt;
    #include &amp;quot;calibsetup.h&amp;quot;&lt;br /&gt;
&lt;br /&gt;
    namespace Ui &lt;br /&gt;
    {&lt;br /&gt;
        class MainWindow;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    class MainWindow : public QMainWindow&lt;br /&gt;
    {&lt;br /&gt;
        Q_OBJECT&lt;br /&gt;
&lt;br /&gt;
    public:&lt;br /&gt;
        explicit MainWindow(QWidget *parent = 0);&lt;br /&gt;
        ~MainWindow();&lt;br /&gt;
    &lt;br /&gt;
    private slots:&lt;br /&gt;
    &lt;br /&gt;
        void on_pushButton_clicked();&lt;br /&gt;
    &lt;br /&gt;
        void on_pushButton_2_clicked();&lt;br /&gt;
    &lt;br /&gt;
        void on_pushButton_3_clicked();&lt;br /&gt;
    &lt;br /&gt;
    private:&lt;br /&gt;
        Ui::MainWindow *ui;&lt;br /&gt;
        calib *calibsetup;&lt;br /&gt;
    };&lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
    #endif // MAINWINDOW_H&lt;br /&gt;
  &lt;br /&gt;
  &lt;br /&gt;
MainWindow.cpp :&lt;br /&gt;
&lt;br /&gt;
    #include &amp;quot;mainwindow.h&amp;quot;&lt;br /&gt;
    #include &amp;quot;ui_mainwindow.h&amp;quot;&lt;br /&gt;
    #include &amp;quot;calibsetup.h&amp;quot;&lt;br /&gt;
    &lt;br /&gt;
    #include &amp;lt;QFileDialog&amp;gt;&lt;br /&gt;
    #include &amp;lt;QMessageBox&amp;gt;&lt;br /&gt;
    #include &amp;lt;QDesktopServices&amp;gt;&lt;br /&gt;
    #include &amp;lt;QUrl&amp;gt;&lt;br /&gt;
    #include &amp;lt;QApplication&amp;gt;&lt;br /&gt;
    #include &amp;lt;QDebug&amp;gt;&lt;br /&gt;
    #include &amp;lt;QObject&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
    MainWindow::MainWindow(QWidget *parent) :   QMainWindow(parent),&lt;br /&gt;
&lt;br /&gt;
    ui(new Ui::MainWindow)&lt;br /&gt;
    {&lt;br /&gt;
        ui-&amp;gt;setupUi(this);&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    MainWindow::~MainWindow()&lt;br /&gt;
    {&lt;br /&gt;
        delete ui;&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    void MainWindow::on_pushButton_clicked()&lt;br /&gt;
    {&lt;br /&gt;
        calibsetup = new calib;&lt;br /&gt;
        calibsetup-&amp;gt;show();&lt;br /&gt;
        this-&amp;gt;hide();&lt;br /&gt;
    &lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
    void MainWindow::on_pushButton_2_clicked()&lt;br /&gt;
    {&lt;br /&gt;
          QMessageBox msgBox;&lt;br /&gt;
          msgBox.setWindowTitle(&amp;quot;Exit setup&amp;quot;);&lt;br /&gt;
          msgBox.addButton(QMessageBox::Yes);&lt;br /&gt;
          msgBox.addButton(QMessageBox::No);&lt;br /&gt;
          msgBox.setText(&amp;quot;Voulez-vous vraiment quitter la calibration ?&amp;quot;);&lt;br /&gt;
    &lt;br /&gt;
          int selection = msgBox.exec();&lt;br /&gt;
          if(selection == QMessageBox::Yes)&lt;br /&gt;
          {&lt;br /&gt;
            QCoreApplication::quit();&lt;br /&gt;
          }&lt;br /&gt;
    }&lt;br /&gt;
  &lt;br /&gt;
    &amp;lt;br\&amp;gt;&amp;lt;br\&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
* Deuxième fenêtre :&lt;br /&gt;
Le bouton ‘suivant’ permet de continuer l’installation et ainsi de passer à la deuxième fenêtre où on a listé les différentes étapes nécessaires pour la calibration. La calibration se fait via l’application ‘KinectMSFTCalibration’. Pour lancer cette dernière, l’utilisateur a besoin de cliquer sur le bouton ‘commencer’ qui permet d’afficher la vue de la Kinect qui est dirigé vers l’écran stéréoscopique. On pourra par la suite définir les points en cliquant sur F2 puis sur les bords de l’écran en commençant par le bas de l’écran à gauche puis à droite ensuite en haut à droite puis à gauche dans le sens antihoraire. Quand on place les 4 points au bord de l’écran, on définit le plan de définition. F3 nous permet de sauvegarder les coordonnées des points saisie dans un fichier .txt. Quand on clique sur le bouton 'suivant', on exécute un programme qui nous permet de copier ces coordonnées vers un notre fichier texte. Pour pouvoir revenir à la fenêtre calibsetup, il suffit de fermer l’application. &amp;lt;br\&amp;gt;&amp;lt;br\&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Setupcalibration.PNG]]&amp;lt;br\&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La fenêtre qui permet la calibration est la suivante :&amp;lt;br\&amp;gt;&lt;br /&gt;
[[Fichier:Kinect.PNG]]&amp;lt;br\&amp;gt;&lt;br /&gt;
Comme vous l'avez remarqué, on a 3 points au bord de l'écran intitulé dans l'ordre BL - BR - TR - TL&amp;lt;br\&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Voici le .h et .cpp de cette fenêtre :&lt;br /&gt;
&lt;br /&gt;
Calibsetup.h :&lt;br /&gt;
&lt;br /&gt;
    #ifndef CALIB_H&lt;br /&gt;
    #define CALIB_H&lt;br /&gt;
    &lt;br /&gt;
    #include &amp;lt;QDialog&amp;gt;&lt;br /&gt;
    #include &amp;quot;fincalibration.h&amp;quot;&lt;br /&gt;
    &lt;br /&gt;
    namespace Ui {&lt;br /&gt;
    class calib;&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    class calib : public QDialog&lt;br /&gt;
    {&lt;br /&gt;
        Q_OBJECT&lt;br /&gt;
    &lt;br /&gt;
    public:&lt;br /&gt;
            explicit calib(QWidget *parent = 0);&lt;br /&gt;
        ~calib();&lt;br /&gt;
    &lt;br /&gt;
    private slots:&lt;br /&gt;
        void on_pushButton_clicked();&lt;br /&gt;
    &lt;br /&gt;
        void on_pushButton_2_clicked();&lt;br /&gt;
    &lt;br /&gt;
        void on_pushButton_3_clicked();&lt;br /&gt;
    &lt;br /&gt;
    private:&lt;br /&gt;
        Ui::calib *ui;&lt;br /&gt;
        FinCalibration *fincalib ;&lt;br /&gt;
    };&lt;br /&gt;
    &lt;br /&gt;
    #endif // CALIB_H&lt;br /&gt;
    &lt;br /&gt;
Calibsetup.cpp :&lt;br /&gt;
&lt;br /&gt;
    #include &amp;quot;calibsetup.h&amp;quot;&lt;br /&gt;
    #include &amp;quot;ui_calibsetup.h&amp;quot;&lt;br /&gt;
    #include &amp;quot;fincalibration.h&amp;quot;&lt;br /&gt;
    #include &amp;lt;QMessageBox&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
    calib::calib(QWidget *parent) :&lt;br /&gt;
        QDialog(parent),&lt;br /&gt;
        ui(new Ui::calib)&lt;br /&gt;
    {&lt;br /&gt;
        ui-&amp;gt;setupUi(this);&lt;br /&gt;
    }&lt;br /&gt;
    calib::~calib()&lt;br /&gt;
    {&lt;br /&gt;
        delete ui;&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    void calib::on_pushButton_clicked()&lt;br /&gt;
    {&lt;br /&gt;
        system(&amp;quot;C:/Users/Demo.ALCOVE-HP-MINT4/Desktop/OOS/nimble_calib.bat&amp;quot;);&lt;br /&gt;
        system(&amp;quot;C:/Users/Demo.ALCOVE-HP-MINT4/Desktop/OOS/nimble_server.bat&amp;quot;);&lt;br /&gt;
        system(&amp;quot;C:/Users/Demo.ALCOVE-HP-MINT4/Desktop/OOS/tool/KinectMSFTCalibration.exe&amp;quot;);&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    void calib::on_pushButton_2_clicked()&lt;br /&gt;
    {&lt;br /&gt;
            fincalib = new FinCalibration;&lt;br /&gt;
            fincalib-&amp;gt;show();&lt;br /&gt;
            this-&amp;gt;hide();&lt;br /&gt;
            system(&amp;quot;C:/Users/Demo.ALCOVE-HP-MINT4/Desktop/OOS/Transfert_Points.exe&amp;quot;)&lt;br /&gt;
    ;}&lt;br /&gt;
    &lt;br /&gt;
    void calib::on_pushButton_3_clicked()&lt;br /&gt;
    {&lt;br /&gt;
        QMessageBox msgBox;&lt;br /&gt;
          msgBox.setWindowTitle(&amp;quot;Calibration setup&amp;quot;);&lt;br /&gt;
          msgBox.addButton(QMessageBox::Yes);&lt;br /&gt;
          msgBox.addButton(QMessageBox::No);&lt;br /&gt;
          msgBox.setText(&amp;quot;Voulez-vous vraiment quitter la calibration ?&amp;quot;);&lt;br /&gt;
    &lt;br /&gt;
          int selection = msgBox.exec();&lt;br /&gt;
          if(selection == QMessageBox::Yes)&lt;br /&gt;
          {&lt;br /&gt;
            QCoreApplication::quit();&lt;br /&gt;
          }&lt;br /&gt;
    }&lt;br /&gt;
    &amp;lt;br\&amp;gt;&amp;lt;br\&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
* Troisième fenêtre:&lt;br /&gt;
En ce qui concerne la 3éme fenêtre, elle permet juste de dire à l’utilisateur que la calibration a été bien faite et que les points ont bien été enregistrés dans le fichier texte puis copier dans le deuxième fichier texte. Voici un imprime écran de la fenêtre :&amp;lt;br\&amp;gt;&lt;br /&gt;
[[Fichier:Fin.PNG]]&amp;lt;br\&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Voici le code .h et .cpp de cette 3éme fenêtre :&amp;lt;br\&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Fincalibration.h&lt;br /&gt;
&lt;br /&gt;
    #ifndef FINCALIBRATION_H&lt;br /&gt;
    #define FINCALIBRATION_H&lt;br /&gt;
    &lt;br /&gt;
    #include &amp;lt;QDialog&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
    namespace Ui {&lt;br /&gt;
    class FinCalibration;&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    class FinCalibration : public QDialog&lt;br /&gt;
    {&lt;br /&gt;
        Q_OBJECT&lt;br /&gt;
    &lt;br /&gt;
    public:&lt;br /&gt;
        explicit FinCalibration(QWidget *parent = 0);&lt;br /&gt;
        ~FinCalibration();&lt;br /&gt;
    &lt;br /&gt;
    private slots:&lt;br /&gt;
        void on_pushButton_clicked();&lt;br /&gt;
    &lt;br /&gt;
    private:&lt;br /&gt;
        Ui::FinCalibration *ui;&lt;br /&gt;
    &lt;br /&gt;
    };&lt;br /&gt;
    &lt;br /&gt;
    #endif // FINCALIBRATION_H&lt;br /&gt;
    &lt;br /&gt;
    Fincalibration.cpp&lt;br /&gt;
    &lt;br /&gt;
    #include &amp;quot;fincalibration.h&amp;quot;&lt;br /&gt;
    #include &amp;quot;ui_fincalibration.h&amp;quot;&lt;br /&gt;
    &lt;br /&gt;
    #include &amp;lt;QMessageBox&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
    FinCalibration::FinCalibration(QWidget *parent) :&lt;br /&gt;
        QDialog(parent),&lt;br /&gt;
        ui(new Ui::FinCalibration)&lt;br /&gt;
    {&lt;br /&gt;
        ui-&amp;gt;setupUi(this);&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    FinCalibration::~FinCalibration()&lt;br /&gt;
    {&lt;br /&gt;
        delete ui;&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    void FinCalibration::on_pushButton_clicked()&lt;br /&gt;
    {&lt;br /&gt;
          QCoreApplication::quit();&lt;br /&gt;
    &lt;br /&gt;
    }&lt;br /&gt;
    &amp;lt;br\&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pour le bouton ‘annuler’ qui est présent dans toutes les fenêtres, quand on appui dessus, il demande à l’utilisateur s’il veut vraiment quitter la calibration en lui proposant deux boutons « Yes » et « No ». Le bouton « no » permet de revenir à la fenêtre précédente et le bouton « yes » permet de quitter l’application.&amp;lt;br\&amp;gt;&lt;br /&gt;
[[Fichier:Annuler.PNG]]&lt;/div&gt;</summary>
		<author><name>Zassaieb</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=Out_of_Space&amp;diff=12100</id>
		<title>Out of Space</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=Out_of_Space&amp;diff=12100"/>
				<updated>2014-04-15T19:43:40Z</updated>
		
		<summary type="html">&lt;p&gt;Zassaieb : /* Sur QT */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Généralités sur le projet ==&lt;br /&gt;
&lt;br /&gt;
=== Contexte ===&lt;br /&gt;
&lt;br /&gt;
Ce projet met en collaboration une artiste et une société de production de jeu vidéo 3D, et vise à mettre en place une application interactive utilisant une classe de dispositifs d'interaction orienté &amp;quot;maquette holographique&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=== Descriptif ===&lt;br /&gt;
&lt;br /&gt;
Le projet vise à réaliser une application interactive sur un affichage stéréoscopique, et qui consiste à piloter un objet (une bille) dans un certain environnement, tout en déroulant l’évolution de cet environnement sur une vidéo de fond. Le mouvement de cet objet est contrôlé par les gestes des mains qui sont détectées par une Kinect et traduits sur un écran 3D.&lt;br /&gt;
&lt;br /&gt;
=== Problématique ===&lt;br /&gt;
&lt;br /&gt;
La problématique qui se pose est de pouvoir prendre aussi en compte la tête de l’utilisateur sur l’espace d’acquisition afin d’avoir les données sur l’angle de vision et donc d’orienter l’affichage 3D sur l’écran selon sa position, ainsi le mouvement de la tête impliquera l’inclinaison des objets affichés dans un sens ou dans l’autre.&lt;br /&gt;
&lt;br /&gt;
== == &lt;br /&gt;
&lt;br /&gt;
=== Cahier des charges ===&lt;br /&gt;
{{Petit|''Le cahier des charges ne peut être réalisé pour l'instant car notre projet est une continuité d'un projet réalisé actuellement par des élèves en IMA5, et les tâches qui nous seront affectées vont dépendre de leur avancement. La phase de transition sera faite quelques jours avant leur soutenance. Cependant, nous avons commencé par nous familiariser aux outils à utiliser''}}&amp;lt;br\&amp;gt;&amp;lt;br\&amp;gt;&lt;br /&gt;
-&amp;gt;  Mise en place d’un outil de Calibration pour calibrer et mettre en place la scène 3D selon la position de l’utilisateur, pour l’utilisation par un non informaticien.&lt;br /&gt;
&lt;br /&gt;
=== Les outils matériels/logiciels utilisés ===&lt;br /&gt;
&lt;br /&gt;
* Kinect, le périphérique de reconnaissance de mouvement&amp;lt;br/&amp;gt;&lt;br /&gt;
* Ecran Stereoscopique pour l'affichage 3D&amp;lt;br/&amp;gt;&lt;br /&gt;
* 3Gear possède une technologie qui permet, à partir des caméras 3D de la Kinect, de reconstruire une représentation précise des doigts et de ce que les mains font, en prenant les données 3D brutes et les transformant en informations utilisables sur l'état des mains. Les interfaces de programmation sont basées sur le pointage et le pincement et fournissent les angles des articulations approximatives, elles sont disponibles en C ++, C # et Java&amp;lt;br/&amp;gt;&lt;br /&gt;
* Unity 3D est un logiciel middleware de création de contenu interactif comportant de la vidéo et des objets 3D/2D. Il permet de créer des scènes supportant des éclairages, des terrains, des caméras, des textures ... . L’intérêt de ce logiciel est que celui-ci dispose d’une interface intuitive d’intégration d’objets et de scripts ; l’éditeur d’Unity intègre des composants pré-configurés évitant le développement de code fastidieux.&lt;br /&gt;
* QT est une interface de programmation orientée objet et développée en C++. Elle offre des composants d'interface graphique (widgets), d'accès aux données, de connexions réseaux, de gestion des fils d'exécution, d'analyse XML, etc. Par certains aspects c’est aussi un framework lorsqu'on l'utilise pour concevoir des interfaces graphiques ou que l'on architecture son application en utilisant les mécanismes des “signaux” et “slots” par exemple.&lt;br /&gt;
&lt;br /&gt;
== Déroulement du projet ==&lt;br /&gt;
===Semaine 03/02 – 07/02===&lt;br /&gt;
* Entretien avec Mr Laurent Grisonni pour comprendre le projet&lt;br /&gt;
* Etablissement d’un cahier de charge global en attente de précisions après la soutenance des IMA5&lt;br /&gt;
* Spécifications des outils et matériels utilisés&lt;br /&gt;
===Semaine 10/02 - 14/02===&lt;br /&gt;
* Rencontre avec les étudiants qui travaillent déjà sur le sujet&lt;br /&gt;
* Compréhension du travail réalisé&lt;br /&gt;
* Suggestion d’éventuelles améliorations&lt;br /&gt;
===Semaine 17/02 - 21/02===&lt;br /&gt;
* Prise en main de l’outil Unity à l’aide de quelques Tutoriels pour la création de scènes 3D&lt;br /&gt;
* Compréhension et analyse de la librairie 3gear de détection de geste via la Kinect&lt;br /&gt;
===Semaine 03/03 – 07/03===&lt;br /&gt;
* Spécification du besoin : Mise en place d’un outil de Calibration pour calibrer mettre en place la scène 3D selon la position de l’utilisateur, pour l’utilisation par un non informaticien.&lt;br /&gt;
===Semaine 12/03 – 14/03===&lt;br /&gt;
* Installation à l’IRCICA, remise des clefs et badges de la salle de travail, récupération du SVN du projet.&lt;br /&gt;
* Rencontre de plusieurs problèmes dont :&lt;br /&gt;
o	Pas de licence Windows sur le poste fourni &amp;lt;br/&amp;gt;&lt;br /&gt;
o	Problèmes de réseau et d’accès internet pour l’extraction du SVN&lt;br /&gt;
&lt;br /&gt;
===Semaine 24/03 – 28/03===&lt;br /&gt;
* Installation du logiciel Unity&lt;br /&gt;
* Impossibilité d’installer les logiciels de programmation pour la librairie 3gear: Processeur incompatible&lt;br /&gt;
* Premiers tests du programme existant, incomplets par manque d’outils.&lt;br /&gt;
* Ajustements de la  scène Unity à la taille de l’écran Stéréoscopique&lt;br /&gt;
&lt;br /&gt;
===Semaine 31/03 – 04/04===&lt;br /&gt;
''Outil de calibration'' : Cet outil est censé permettre à l’artiste ou n’importe quel autre utilisateur non information de pouvoir ajuster les réglages et le calibrage des Kinects par rapport à l’écran stéréoscopique sans avoir à modifier les lignes de code de l’application. &lt;br /&gt;
&lt;br /&gt;
''Calibrage'' : Afin de réaliser le calibrage de la Kinect, il faut d’abord lancer les programmes d’installation de la librairie 3gear de  la Kinect (nimble_calib et nimble_server, ces applications sont fournies avec le kit de la librairie), il faut ensuite lancer l’application Kinect_MSFT_Calibration. Cette application a été déjà développée pour ce projet et qui consiste en l’affichage de l’image reçue par la Kinect afin de sélectionner dessus les points des 4 coins de l’écran stéréoscopique (l’écran étant visible sur l’image), l’application enregistre alors ces coordonnées dans un fichier texte, et donc, ces coordonnées doivent être repris et mis dans un autre fichier texte en effectuant quelques modifications dessus. Ce dernier est celui qui est utilisé par l’application d’affichage de la scène 3D sur l’écran 3D, et qui utilise ces points pour régler l’affichage. &lt;br /&gt;
&lt;br /&gt;
* Prise en main de l’outil de développement d’interfaces graphiques QT&lt;br /&gt;
* Première ébauche de la gestion des fenêtres de l’interface graphique à développer.&lt;br /&gt;
* Problème rencontré : l’outil est bloqué quand on affecte à un bouton le passage à une deuxième fenêtre et l’exécution d’une application en même temps.&lt;br /&gt;
* Réalisation d’un programme C permettant le transfert des coordonnées du fichier source au fichier de destination.&lt;br /&gt;
&lt;br /&gt;
===Semaine 07/04 – 11/04===&lt;br /&gt;
* Test du programme de transfert de données sur l’outil et son implémentation&lt;br /&gt;
* Finalisation de l’interface graphique, en résolvant le problème rencontré.&lt;br /&gt;
* L’outil réalise bien la tâche demandée.&lt;br /&gt;
&lt;br /&gt;
==Travail réalisé==&lt;br /&gt;
===Sur Unity===&lt;br /&gt;
&lt;br /&gt;
Au tout début, il fallait ajuster la scène à la taille de l’écran stéréoscopique  sous Unity. La scène se présente comme suit :&amp;lt;br\&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Unity1.png|vignette|alt=texte alternatif|Scène Unity]]&lt;br /&gt;
La scène était perpendiculaire à l’écran stéréoscopique. Il fallait l’ajuster de façon à ce qu’on aie un ‘ground’ (qui correspond à l’écran stéréoscopique) et qui soit parallèle à la scène et aillant les mêmes dimensions que cette dernière, afin qu’il n’y ait pas de dépassement de bord.  &lt;br /&gt;
A travers plusieurs manipulations sous Unity, nous sommes arrivés au résultat suivant :&amp;lt;br\&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Unity2.png|vignette|alt=texte alternatif|Scène résultat]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Sur QT===&lt;br /&gt;
Dans cette partie, nous avons utilisé le logiciel de développement d’interface graphique QT. &amp;lt;br\&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nous avons développé une interface graphique qui permet à un non informaticien de calibrer les Kinects de l’installation. Tout d’abord, nous avons commencé à nous familiariser au logiciel QT et à son environnement à travers plusieurs tutoriels, ce qui nous a aidés tout au long de notre projet afin de réaliser notre interface. &amp;lt;br\&amp;gt;&amp;lt;br\&amp;gt;&lt;br /&gt;
L’interface graphique de calibration comporte 3 fenêtres. On peut se déplacer d’une fenêtre à l’autre grâce à des boutons &amp;lt;br\&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
La première fenêtre est la fenêtre typique de chaque installation, qui demande à l’utilisateur s’il veut calibrer sa Kinect ou bien s’il s’est trompé d’application et qu’il voudrait annuler. &amp;lt;br\&amp;gt;&amp;lt;br\&amp;gt;&lt;br /&gt;
[[Fichier:Mainwindow.PNG]] &amp;lt;br\&amp;gt;&lt;br /&gt;
Vous trouverez dans la suite le code MainWindow.h et MainWindow.cpp de la fenêtre.&amp;lt;br\&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
MainWindow.h&lt;br /&gt;
&lt;br /&gt;
    #ifndef MAINWINDOW_H&lt;br /&gt;
    #define MAINWINDOW_H&lt;br /&gt;
    #include &amp;lt;QMainWindow&amp;gt;&lt;br /&gt;
    #include &amp;lt;QApplication&amp;gt;&lt;br /&gt;
    #include &amp;lt;QProcess&amp;gt;&lt;br /&gt;
    #include &amp;lt;QtGui&amp;gt;&lt;br /&gt;
    #include &amp;quot;calibsetup.h&amp;quot;&lt;br /&gt;
&lt;br /&gt;
    namespace Ui &lt;br /&gt;
    {&lt;br /&gt;
        class MainWindow;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    class MainWindow : public QMainWindow&lt;br /&gt;
    {&lt;br /&gt;
        Q_OBJECT&lt;br /&gt;
&lt;br /&gt;
    public:&lt;br /&gt;
        explicit MainWindow(QWidget *parent = 0);&lt;br /&gt;
        ~MainWindow();&lt;br /&gt;
    &lt;br /&gt;
    private slots:&lt;br /&gt;
    &lt;br /&gt;
        void on_pushButton_clicked();&lt;br /&gt;
    &lt;br /&gt;
        void on_pushButton_2_clicked();&lt;br /&gt;
    &lt;br /&gt;
        void on_pushButton_3_clicked();&lt;br /&gt;
    &lt;br /&gt;
    private:&lt;br /&gt;
        Ui::MainWindow *ui;&lt;br /&gt;
        calib *calibsetup;&lt;br /&gt;
    };&lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
    #endif // MAINWINDOW_H&lt;br /&gt;
  &lt;br /&gt;
  &lt;br /&gt;
MainWindow.cpp :&lt;br /&gt;
&lt;br /&gt;
    #include &amp;quot;mainwindow.h&amp;quot;&lt;br /&gt;
    #include &amp;quot;ui_mainwindow.h&amp;quot;&lt;br /&gt;
    #include &amp;quot;calibsetup.h&amp;quot;&lt;br /&gt;
    &lt;br /&gt;
    #include &amp;lt;QFileDialog&amp;gt;&lt;br /&gt;
    #include &amp;lt;QMessageBox&amp;gt;&lt;br /&gt;
    #include &amp;lt;QDesktopServices&amp;gt;&lt;br /&gt;
    #include &amp;lt;QUrl&amp;gt;&lt;br /&gt;
    #include &amp;lt;QApplication&amp;gt;&lt;br /&gt;
    #include &amp;lt;QDebug&amp;gt;&lt;br /&gt;
    #include &amp;lt;QObject&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
    MainWindow::MainWindow(QWidget *parent) :   QMainWindow(parent),&lt;br /&gt;
&lt;br /&gt;
    ui(new Ui::MainWindow)&lt;br /&gt;
    {&lt;br /&gt;
        ui-&amp;gt;setupUi(this);&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    MainWindow::~MainWindow()&lt;br /&gt;
    {&lt;br /&gt;
        delete ui;&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    void MainWindow::on_pushButton_clicked()&lt;br /&gt;
    {&lt;br /&gt;
        calibsetup = new calib;&lt;br /&gt;
        calibsetup-&amp;gt;show();&lt;br /&gt;
        this-&amp;gt;hide();&lt;br /&gt;
    &lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
    void MainWindow::on_pushButton_2_clicked()&lt;br /&gt;
    {&lt;br /&gt;
          QMessageBox msgBox;&lt;br /&gt;
          msgBox.setWindowTitle(&amp;quot;Exit setup&amp;quot;);&lt;br /&gt;
          msgBox.addButton(QMessageBox::Yes);&lt;br /&gt;
          msgBox.addButton(QMessageBox::No);&lt;br /&gt;
          msgBox.setText(&amp;quot;Voulez-vous vraiment quitter la calibration ?&amp;quot;);&lt;br /&gt;
    &lt;br /&gt;
          int selection = msgBox.exec();&lt;br /&gt;
          if(selection == QMessageBox::Yes)&lt;br /&gt;
          {&lt;br /&gt;
            QCoreApplication::quit();&lt;br /&gt;
          }&lt;br /&gt;
    }&lt;br /&gt;
  &lt;br /&gt;
    &amp;lt;br\&amp;gt;&amp;lt;br\&amp;gt;&lt;br /&gt;
Le bouton ‘suivant’ permet de continuer l’installation et ainsi de passer à la deuxième fenêtre où on a listé les différentes étapes nécessaires pour la calibration. La calibration se fait via l’application ‘KinectMSFTCalibration’. Pour lancer cette dernière, l’utilisateur a besoin de cliquer sur le bouton ‘commencer’ qui permet d’afficher la vue de la Kinect qui est dirigé vers l’écran stéréoscopique. On pourra par la suite définir les points en cliquant sur F2 puis sur les bords de l’écran en commençant par le bas de l’écran à gauche puis à droite ensuite en haut à droite puis à gauche dans le sens antihoraire. Quand on place les 4 points au bord de l’écran, on définit le plan de définition. F3 nous permet de sauvegarder les coordonnées des points saisie dans un fichier .txt. Quand on clique sur le bouton 'suivant', on exécute un programme qui nous permet de copier ces coordonnées vers un notre fichier texte. Pour pouvoir revenir à la fenêtre calibsetup, il suffit de fermer l’application. &amp;lt;br\&amp;gt;&amp;lt;br\&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Setupcalibration.PNG]]&amp;lt;br\&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La fenêtre qui permet la calibration est la suivante :&amp;lt;br\&amp;gt;&lt;br /&gt;
[[Fichier:Kinect.PNG]]&amp;lt;br\&amp;gt;&lt;br /&gt;
Comme vous l'avez remarqué, on a 3 points au bord de l'écran intitulé dans l'ordre BL - BR - TR - TL&amp;lt;br\&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Voici le .h et .cpp de cette fenêtre :&lt;br /&gt;
&lt;br /&gt;
Calibsetup.h :&lt;br /&gt;
&lt;br /&gt;
#ifndef CALIB_H&lt;br /&gt;
#define CALIB_H&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;QDialog&amp;gt;&lt;br /&gt;
#include &amp;quot;fincalibration.h&amp;quot;&lt;br /&gt;
&lt;br /&gt;
namespace Ui {&lt;br /&gt;
class calib;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
class calib : public QDialog&lt;br /&gt;
{&lt;br /&gt;
    Q_OBJECT&lt;br /&gt;
&lt;br /&gt;
public:&lt;br /&gt;
    explicit calib(QWidget *parent = 0);&lt;br /&gt;
    ~calib();&lt;br /&gt;
&lt;br /&gt;
private slots:&lt;br /&gt;
    void on_pushButton_clicked();&lt;br /&gt;
&lt;br /&gt;
    void on_pushButton_2_clicked();&lt;br /&gt;
&lt;br /&gt;
    void on_pushButton_3_clicked();&lt;br /&gt;
&lt;br /&gt;
private:&lt;br /&gt;
    Ui::calib *ui;&lt;br /&gt;
    FinCalibration *fincalib ;&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
#endif // CALIB_H&lt;br /&gt;
&lt;br /&gt;
Calibsetup.cpp :&lt;br /&gt;
&lt;br /&gt;
#include &amp;quot;calibsetup.h&amp;quot;&lt;br /&gt;
#include &amp;quot;ui_calibsetup.h&amp;quot;&lt;br /&gt;
#include &amp;quot;fincalibration.h&amp;quot;&lt;br /&gt;
#include &amp;lt;QMessageBox&amp;gt;&lt;br /&gt;
&lt;br /&gt;
calib::calib(QWidget *parent) :&lt;br /&gt;
    QDialog(parent),&lt;br /&gt;
    ui(new Ui::calib)&lt;br /&gt;
{&lt;br /&gt;
    ui-&amp;gt;setupUi(this);&lt;br /&gt;
}&lt;br /&gt;
calib::~calib()&lt;br /&gt;
{&lt;br /&gt;
    delete ui;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void calib::on_pushButton_clicked()&lt;br /&gt;
{&lt;br /&gt;
    system(&amp;quot;C:/Users/Demo.ALCOVE-HP-MINT4/Desktop/OOS/nimble_calib.bat&amp;quot;);&lt;br /&gt;
    system(&amp;quot;C:/Users/Demo.ALCOVE-HP-MINT4/Desktop/OOS/nimble_server.bat&amp;quot;);&lt;br /&gt;
    system(&amp;quot;C:/Users/Demo.ALCOVE-HP-MINT4/Desktop/OOS/tool/KinectMSFTCalibration.exe&amp;quot;);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void calib::on_pushButton_2_clicked()&lt;br /&gt;
{&lt;br /&gt;
        fincalib = new FinCalibration;&lt;br /&gt;
        fincalib-&amp;gt;show();&lt;br /&gt;
        this-&amp;gt;hide();&lt;br /&gt;
        system(&amp;quot;C:/Users/Demo.ALCOVE-HP-MINT4/Desktop/OOS/Transfert_Points.exe&amp;quot;)&lt;br /&gt;
;}&lt;br /&gt;
&lt;br /&gt;
void calib::on_pushButton_3_clicked()&lt;br /&gt;
{&lt;br /&gt;
    QMessageBox msgBox;&lt;br /&gt;
      msgBox.setWindowTitle(&amp;quot;Calibration setup&amp;quot;);&lt;br /&gt;
      msgBox.addButton(QMessageBox::Yes);&lt;br /&gt;
      msgBox.addButton(QMessageBox::No);&lt;br /&gt;
      msgBox.setText(&amp;quot;Voulez-vous vraiment quitter la calibration ?&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
      int selection = msgBox.exec();&lt;br /&gt;
      if(selection == QMessageBox::Yes)&lt;br /&gt;
      {&lt;br /&gt;
        QCoreApplication::quit();&lt;br /&gt;
      }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;br\&amp;gt;&amp;lt;br\&amp;gt;&lt;br /&gt;
En ce qui concerne la 3éme fenêtre, elle permet juste de dire à l’utilisateur que la calibration a été bien faite et que les points ont bien été enregistrés dans le fichier texte puis copier dans le deuxième fichier texte. Voici un imprime écran de la fenêtre :&amp;lt;br\&amp;gt;&lt;br /&gt;
[[Fichier:Fin.PNG]]&amp;lt;br\&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Voici le code .h et .cpp de cette 3éme fenêtre :&amp;lt;br\&amp;gt; &lt;br /&gt;
Fincalibration.h&lt;br /&gt;
#ifndef FINCALIBRATION_H&lt;br /&gt;
#define FINCALIBRATION_H&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;QDialog&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
namespace Ui {&lt;br /&gt;
class FinCalibration;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
class FinCalibration : public QDialog&lt;br /&gt;
{&lt;br /&gt;
    Q_OBJECT&lt;br /&gt;
&lt;br /&gt;
public:&lt;br /&gt;
    explicit FinCalibration(QWidget *parent = 0);&lt;br /&gt;
    ~FinCalibration();&lt;br /&gt;
&lt;br /&gt;
private slots:&lt;br /&gt;
    void on_pushButton_clicked();&lt;br /&gt;
&lt;br /&gt;
private:&lt;br /&gt;
    Ui::FinCalibration *ui;&lt;br /&gt;
&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
#endif // FINCALIBRATION_H&lt;br /&gt;
&lt;br /&gt;
Fincalibration.cpp&lt;br /&gt;
&lt;br /&gt;
#include &amp;quot;fincalibration.h&amp;quot;&lt;br /&gt;
#include &amp;quot;ui_fincalibration.h&amp;quot;&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;QMessageBox&amp;gt;&lt;br /&gt;
&lt;br /&gt;
FinCalibration::FinCalibration(QWidget *parent) :&lt;br /&gt;
    QDialog(parent),&lt;br /&gt;
    ui(new Ui::FinCalibration)&lt;br /&gt;
{&lt;br /&gt;
    ui-&amp;gt;setupUi(this);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
FinCalibration::~FinCalibration()&lt;br /&gt;
{&lt;br /&gt;
    delete ui;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void FinCalibration::on_pushButton_clicked()&lt;br /&gt;
{&lt;br /&gt;
      QCoreApplication::quit();&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;br\&amp;gt;&lt;br /&gt;
Pour le bouton ‘annuler’ qui est présent dans toutes les fenêtres, quand on appui dessus, il demande à l’utilisateur s’il veut vraiment quitter la calibration en lui proposant deux boutons « Yes » et « No ». Le bouton « no » permet de revenir à la fenêtre précédente et le bouton « yes » permet de quitter l’application.&amp;lt;br\&amp;gt;&lt;br /&gt;
[[Fichier:Annuler.PNG]]&lt;/div&gt;</summary>
		<author><name>Zassaieb</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=Out_of_Space&amp;diff=12087</id>
		<title>Out of Space</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=Out_of_Space&amp;diff=12087"/>
				<updated>2014-04-15T19:36:35Z</updated>
		
		<summary type="html">&lt;p&gt;Zassaieb : /* Sur Unity */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Généralités sur le projet ==&lt;br /&gt;
&lt;br /&gt;
=== Contexte ===&lt;br /&gt;
&lt;br /&gt;
Ce projet met en collaboration une artiste et une société de production de jeu vidéo 3D, et vise à mettre en place une application interactive utilisant une classe de dispositifs d'interaction orienté &amp;quot;maquette holographique&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=== Descriptif ===&lt;br /&gt;
&lt;br /&gt;
Le projet vise à réaliser une application interactive sur un affichage stéréoscopique, et qui consiste à piloter un objet (une bille) dans un certain environnement, tout en déroulant l’évolution de cet environnement sur une vidéo de fond. Le mouvement de cet objet est contrôlé par les gestes des mains qui sont détectées par une Kinect et traduits sur un écran 3D.&lt;br /&gt;
&lt;br /&gt;
=== Problématique ===&lt;br /&gt;
&lt;br /&gt;
La problématique qui se pose est de pouvoir prendre aussi en compte la tête de l’utilisateur sur l’espace d’acquisition afin d’avoir les données sur l’angle de vision et donc d’orienter l’affichage 3D sur l’écran selon sa position, ainsi le mouvement de la tête impliquera l’inclinaison des objets affichés dans un sens ou dans l’autre.&lt;br /&gt;
&lt;br /&gt;
== == &lt;br /&gt;
&lt;br /&gt;
=== Cahier des charges ===&lt;br /&gt;
{{Petit|''Le cahier des charges ne peut être réalisé pour l'instant car notre projet est une continuité d'un projet réalisé actuellement par des élèves en IMA5, et les tâches qui nous seront affectées vont dépendre de leur avancement. La phase de transition sera faite quelques jours avant leur soutenance. Cependant, nous avons commencé par nous familiariser aux outils à utiliser''}}&amp;lt;br\&amp;gt;&amp;lt;br\&amp;gt;&lt;br /&gt;
-&amp;gt;  Mise en place d’un outil de Calibration pour calibrer et mettre en place la scène 3D selon la position de l’utilisateur, pour l’utilisation par un non informaticien.&lt;br /&gt;
&lt;br /&gt;
=== Les outils matériels/logiciels utilisés ===&lt;br /&gt;
&lt;br /&gt;
* Kinect, le périphérique de reconnaissance de mouvement&amp;lt;br/&amp;gt;&lt;br /&gt;
* Ecran Stereoscopique pour l'affichage 3D&amp;lt;br/&amp;gt;&lt;br /&gt;
* 3Gear possède une technologie qui permet, à partir des caméras 3D de la Kinect, de reconstruire une représentation précise des doigts et de ce que les mains font, en prenant les données 3D brutes et les transformant en informations utilisables sur l'état des mains. Les interfaces de programmation sont basées sur le pointage et le pincement et fournissent les angles des articulations approximatives, elles sont disponibles en C ++, C # et Java&amp;lt;br/&amp;gt;&lt;br /&gt;
* Unity 3D est un logiciel middleware de création de contenu interactif comportant de la vidéo et des objets 3D/2D. Il permet de créer des scènes supportant des éclairages, des terrains, des caméras, des textures ... . L’intérêt de ce logiciel est que celui-ci dispose d’une interface intuitive d’intégration d’objets et de scripts ; l’éditeur d’Unity intègre des composants pré-configurés évitant le développement de code fastidieux.&lt;br /&gt;
* QT est une interface de programmation orientée objet et développée en C++. Elle offre des composants d'interface graphique (widgets), d'accès aux données, de connexions réseaux, de gestion des fils d'exécution, d'analyse XML, etc. Par certains aspects c’est aussi un framework lorsqu'on l'utilise pour concevoir des interfaces graphiques ou que l'on architecture son application en utilisant les mécanismes des “signaux” et “slots” par exemple.&lt;br /&gt;
&lt;br /&gt;
== Déroulement du projet ==&lt;br /&gt;
===Semaine 03/02 – 07/02===&lt;br /&gt;
* Entretien avec Mr Laurent Grisonni pour comprendre le projet&lt;br /&gt;
* Etablissement d’un cahier de charge global en attente de précisions après la soutenance des IMA5&lt;br /&gt;
* Spécifications des outils et matériels utilisés&lt;br /&gt;
===Semaine 10/02 - 14/02===&lt;br /&gt;
* Rencontre avec les étudiants qui travaillent déjà sur le sujet&lt;br /&gt;
* Compréhension du travail réalisé&lt;br /&gt;
* Suggestion d’éventuelles améliorations&lt;br /&gt;
===Semaine 17/02 - 21/02===&lt;br /&gt;
* Prise en main de l’outil Unity à l’aide de quelques Tutoriels pour la création de scènes 3D&lt;br /&gt;
* Compréhension et analyse de la librairie 3gear de détection de geste via la Kinect&lt;br /&gt;
===Semaine 03/03 – 07/03===&lt;br /&gt;
* Spécification du besoin : Mise en place d’un outil de Calibration pour calibrer mettre en place la scène 3D selon la position de l’utilisateur, pour l’utilisation par un non informaticien.&lt;br /&gt;
===Semaine 12/03 – 14/03===&lt;br /&gt;
* Installation à l’IRCICA, remise des clefs et badges de la salle de travail, récupération du SVN du projet.&lt;br /&gt;
* Rencontre de plusieurs problèmes dont :&lt;br /&gt;
o	Pas de licence Windows sur le poste fourni &amp;lt;br/&amp;gt;&lt;br /&gt;
o	Problèmes de réseau et d’accès internet pour l’extraction du SVN&lt;br /&gt;
&lt;br /&gt;
===Semaine 24/03 – 28/03===&lt;br /&gt;
* Installation du logiciel Unity&lt;br /&gt;
* Impossibilité d’installer les logiciels de programmation pour la librairie 3gear: Processeur incompatible&lt;br /&gt;
* Premiers tests du programme existant, incomplets par manque d’outils.&lt;br /&gt;
* Ajustements de la  scène Unity à la taille de l’écran Stéréoscopique&lt;br /&gt;
&lt;br /&gt;
===Semaine 31/03 – 04/04===&lt;br /&gt;
''Outil de calibration'' : Cet outil est censé permettre à l’artiste ou n’importe quel autre utilisateur non information de pouvoir ajuster les réglages et le calibrage des Kinects par rapport à l’écran stéréoscopique sans avoir à modifier les lignes de code de l’application. &lt;br /&gt;
&lt;br /&gt;
''Calibrage'' : Afin de réaliser le calibrage de la Kinect, il faut d’abord lancer les programmes d’installation de la librairie 3gear de  la Kinect (nimble_calib et nimble_server, ces applications sont fournies avec le kit de la librairie), il faut ensuite lancer l’application Kinect_MSFT_Calibration. Cette application a été déjà développée pour ce projet et qui consiste en l’affichage de l’image reçue par la Kinect afin de sélectionner dessus les points des 4 coins de l’écran stéréoscopique (l’écran étant visible sur l’image), l’application enregistre alors ces coordonnées dans un fichier texte, et donc, ces coordonnées doivent être repris et mis dans un autre fichier texte en effectuant quelques modifications dessus. Ce dernier est celui qui est utilisé par l’application d’affichage de la scène 3D sur l’écran 3D, et qui utilise ces points pour régler l’affichage. &lt;br /&gt;
&lt;br /&gt;
* Prise en main de l’outil de développement d’interfaces graphiques QT&lt;br /&gt;
* Première ébauche de la gestion des fenêtres de l’interface graphique à développer.&lt;br /&gt;
* Problème rencontré : l’outil est bloqué quand on affecte à un bouton le passage à une deuxième fenêtre et l’exécution d’une application en même temps.&lt;br /&gt;
* Réalisation d’un programme C permettant le transfert des coordonnées du fichier source au fichier de destination.&lt;br /&gt;
&lt;br /&gt;
===Semaine 07/04 – 11/04===&lt;br /&gt;
* Test du programme de transfert de données sur l’outil et son implémentation&lt;br /&gt;
* Finalisation de l’interface graphique, en résolvant le problème rencontré.&lt;br /&gt;
* L’outil réalise bien la tâche demandée.&lt;br /&gt;
&lt;br /&gt;
==Travail réalisé==&lt;br /&gt;
===Sur Unity===&lt;br /&gt;
&lt;br /&gt;
Au tout début, il fallait ajuster la scène à la taille de l’écran stéréoscopique  sous Unity. La scène se présente comme suit :&amp;lt;br\&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Unity1.png|vignette|alt=texte alternatif|Scène Unity]]&lt;br /&gt;
La scène était perpendiculaire à l’écran stéréoscopique. Il fallait l’ajuster de façon à ce qu’on aie un ‘ground’ (qui correspond à l’écran stéréoscopique) et qui soit parallèle à la scène et aillant les mêmes dimensions que cette dernière, afin qu’il n’y ait pas de dépassement de bord.  &lt;br /&gt;
A travers plusieurs manipulations sous Unity, nous sommes arrivés au résultat suivant :&amp;lt;br\&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Unity2.png|vignette|alt=texte alternatif|Scène résultat]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Sur QT===&lt;br /&gt;
Dans cette partie, nous avons utilisé le logiciel de développement d’interface graphique QT. &amp;lt;br\&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nous avons développé une interface graphique qui permet à un non informaticien de calibrer les Kinects de l’installation. Tout d’abord, nous avons commencé à nous familiariser au logiciel QT et à son environnement à travers plusieurs tutoriels, ce qui nous a aidés tout au long de notre projet afin de réaliser notre interface. &amp;lt;br\&amp;gt;&amp;lt;br\&amp;gt;&lt;br /&gt;
L’interface graphique de calibration comporte 3 fenêtres. On peut se déplacer d’une fenêtre à l’autre grâce à des boutons &amp;lt;br\&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
La première fenêtre est la fenêtre typique de chaque installation, qui demande à l’utilisateur s’il veut calibrer sa Kinect ou bien s’il s’est trompé d’application et qu’il voudrait annuler. &amp;lt;br\&amp;gt;&amp;lt;br\&amp;gt;&lt;br /&gt;
[[Fichier:Mainwindow.PNG]] &amp;lt;br\&amp;gt;&lt;br /&gt;
Vous trouverez dans la suite le code MainWindow.h et MainWindow.cpp de la fenêtre.&amp;lt;br\&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
MainWindow.h&lt;br /&gt;
#ifndef MAINWINDOW_H&lt;br /&gt;
#define MAINWINDOW_H&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;QMainWindow&amp;gt;&lt;br /&gt;
#include &amp;lt;QApplication&amp;gt;&lt;br /&gt;
#include &amp;lt;QProcess&amp;gt;&lt;br /&gt;
#include &amp;lt;QtGui&amp;gt;&lt;br /&gt;
#include &amp;quot;calibsetup.h&amp;quot;&lt;br /&gt;
&lt;br /&gt;
namespace Ui {&lt;br /&gt;
class MainWindow;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
class MainWindow : public QMainWindow&lt;br /&gt;
{&lt;br /&gt;
    Q_OBJECT&lt;br /&gt;
&lt;br /&gt;
public:&lt;br /&gt;
    explicit MainWindow(QWidget *parent = 0);&lt;br /&gt;
    ~MainWindow();&lt;br /&gt;
&lt;br /&gt;
private slots:&lt;br /&gt;
&lt;br /&gt;
    void on_pushButton_clicked();&lt;br /&gt;
&lt;br /&gt;
    void on_pushButton_2_clicked();&lt;br /&gt;
&lt;br /&gt;
    void on_pushButton_3_clicked();&lt;br /&gt;
&lt;br /&gt;
private:&lt;br /&gt;
    Ui::MainWindow *ui;&lt;br /&gt;
    calib *calibsetup;&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#endif // MAINWINDOW_H&lt;br /&gt;
}&lt;br /&gt;
{&lt;br /&gt;
MainWindow.cpp :&lt;br /&gt;
#include &amp;quot;mainwindow.h&amp;quot;&lt;br /&gt;
#include &amp;quot;ui_mainwindow.h&amp;quot;&lt;br /&gt;
#include &amp;quot;calibsetup.h&amp;quot;&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;QFileDialog&amp;gt;&lt;br /&gt;
#include &amp;lt;QMessageBox&amp;gt;&lt;br /&gt;
#include &amp;lt;QDesktopServices&amp;gt;&lt;br /&gt;
#include &amp;lt;QUrl&amp;gt;&lt;br /&gt;
#include &amp;lt;QApplication&amp;gt;&lt;br /&gt;
#include &amp;lt;QDebug&amp;gt;&lt;br /&gt;
#include &amp;lt;QObject&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
MainWindow::MainWindow(QWidget *parent) :&lt;br /&gt;
    QMainWindow(parent),&lt;br /&gt;
    ui(new Ui::MainWindow)&lt;br /&gt;
{&lt;br /&gt;
    ui-&amp;gt;setupUi(this);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
MainWindow::~MainWindow()&lt;br /&gt;
{&lt;br /&gt;
    delete ui;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void MainWindow::on_pushButton_clicked()&lt;br /&gt;
{&lt;br /&gt;
    calibsetup = new calib;&lt;br /&gt;
    calibsetup-&amp;gt;show();&lt;br /&gt;
    this-&amp;gt;hide();&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
void MainWindow::on_pushButton_2_clicked()&lt;br /&gt;
{&lt;br /&gt;
   //QMessageBox::information(this,&amp;quot;QUIT&amp;quot;,&amp;quot;Voulez-vous quitter l'application ?&amp;quot;,&amp;quot;Non&amp;quot;,&amp;quot;Oui&amp;quot;);&lt;br /&gt;
    QMessageBox msgBox;&lt;br /&gt;
      msgBox.setWindowTitle(&amp;quot;Exit setup&amp;quot;);&lt;br /&gt;
      msgBox.addButton(QMessageBox::Yes);&lt;br /&gt;
      msgBox.addButton(QMessageBox::No);&lt;br /&gt;
      msgBox.setText(&amp;quot;Voulez-vous vraiment quitter la calibration ?&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
      int selection = msgBox.exec();&lt;br /&gt;
      if(selection == QMessageBox::Yes)&lt;br /&gt;
      {&lt;br /&gt;
        QCoreApplication::quit();&lt;br /&gt;
      }&lt;br /&gt;
}&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;br\&amp;gt;&amp;lt;br\&amp;gt;&lt;br /&gt;
Le bouton ‘suivant’ permet de continuer l’installation et ainsi de passer à la deuxième fenêtre où on a listé les différentes étapes nécessaires pour la calibration. La calibration se fait via l’application ‘KinectMSFTCalibration’. Pour lancer cette dernière, l’utilisateur a besoin de cliquer sur le bouton ‘commencer’ qui permet d’afficher la vue de la Kinect qui est dirigé vers l’écran stéréoscopique. On pourra par la suite définir les points en cliquant sur F2 puis sur les bords de l’écran en commençant par le bas de l’écran à gauche puis à droite ensuite en haut à droite puis à gauche dans le sens antihoraire. Quand on place les 4 points au bord de l’écran, on définit le plan de définition. F3 nous permet de sauvegarder les coordonnées des points saisie dans un fichier .txt. Quand on clique sur le bouton 'suivant', on exécute un programme qui nous permet de copier ces coordonnées vers un notre fichier texte. Pour pouvoir revenir à la fenêtre calibsetup, il suffit de fermer l’application. &amp;lt;br\&amp;gt;&amp;lt;br\&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Setupcalibration.PNG]]&amp;lt;br\&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La fenêtre qui permet la calibration est la suivante :&amp;lt;br\&amp;gt;&lt;br /&gt;
[[Fichier:Kinect.PNG]]&amp;lt;br\&amp;gt;&lt;br /&gt;
Comme vous l'avez remarqué, on a 3 points au bord de l'écran intitulé dans l'ordre BL - BR - TR - TL&amp;lt;br\&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Voici le .h et .cpp de cette fenêtre :&lt;br /&gt;
&lt;br /&gt;
Calibsetup.h :&lt;br /&gt;
&lt;br /&gt;
#ifndef CALIB_H&lt;br /&gt;
#define CALIB_H&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;QDialog&amp;gt;&lt;br /&gt;
#include &amp;quot;fincalibration.h&amp;quot;&lt;br /&gt;
&lt;br /&gt;
namespace Ui {&lt;br /&gt;
class calib;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
class calib : public QDialog&lt;br /&gt;
{&lt;br /&gt;
    Q_OBJECT&lt;br /&gt;
&lt;br /&gt;
public:&lt;br /&gt;
    explicit calib(QWidget *parent = 0);&lt;br /&gt;
    ~calib();&lt;br /&gt;
&lt;br /&gt;
private slots:&lt;br /&gt;
    void on_pushButton_clicked();&lt;br /&gt;
&lt;br /&gt;
    void on_pushButton_2_clicked();&lt;br /&gt;
&lt;br /&gt;
    void on_pushButton_3_clicked();&lt;br /&gt;
&lt;br /&gt;
private:&lt;br /&gt;
    Ui::calib *ui;&lt;br /&gt;
    FinCalibration *fincalib ;&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
#endif // CALIB_H&lt;br /&gt;
&lt;br /&gt;
Calibsetup.cpp :&lt;br /&gt;
&lt;br /&gt;
#include &amp;quot;calibsetup.h&amp;quot;&lt;br /&gt;
#include &amp;quot;ui_calibsetup.h&amp;quot;&lt;br /&gt;
#include &amp;quot;fincalibration.h&amp;quot;&lt;br /&gt;
#include &amp;lt;QMessageBox&amp;gt;&lt;br /&gt;
&lt;br /&gt;
calib::calib(QWidget *parent) :&lt;br /&gt;
    QDialog(parent),&lt;br /&gt;
    ui(new Ui::calib)&lt;br /&gt;
{&lt;br /&gt;
    ui-&amp;gt;setupUi(this);&lt;br /&gt;
}&lt;br /&gt;
calib::~calib()&lt;br /&gt;
{&lt;br /&gt;
    delete ui;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void calib::on_pushButton_clicked()&lt;br /&gt;
{&lt;br /&gt;
    system(&amp;quot;C:/Users/Demo.ALCOVE-HP-MINT4/Desktop/OOS/nimble_calib.bat&amp;quot;);&lt;br /&gt;
    system(&amp;quot;C:/Users/Demo.ALCOVE-HP-MINT4/Desktop/OOS/nimble_server.bat&amp;quot;);&lt;br /&gt;
    system(&amp;quot;C:/Users/Demo.ALCOVE-HP-MINT4/Desktop/OOS/tool/KinectMSFTCalibration.exe&amp;quot;);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void calib::on_pushButton_2_clicked()&lt;br /&gt;
{&lt;br /&gt;
        fincalib = new FinCalibration;&lt;br /&gt;
        fincalib-&amp;gt;show();&lt;br /&gt;
        this-&amp;gt;hide();&lt;br /&gt;
        system(&amp;quot;C:/Users/Demo.ALCOVE-HP-MINT4/Desktop/OOS/Transfert_Points.exe&amp;quot;)&lt;br /&gt;
;}&lt;br /&gt;
&lt;br /&gt;
void calib::on_pushButton_3_clicked()&lt;br /&gt;
{&lt;br /&gt;
    QMessageBox msgBox;&lt;br /&gt;
      msgBox.setWindowTitle(&amp;quot;Calibration setup&amp;quot;);&lt;br /&gt;
      msgBox.addButton(QMessageBox::Yes);&lt;br /&gt;
      msgBox.addButton(QMessageBox::No);&lt;br /&gt;
      msgBox.setText(&amp;quot;Voulez-vous vraiment quitter la calibration ?&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
      int selection = msgBox.exec();&lt;br /&gt;
      if(selection == QMessageBox::Yes)&lt;br /&gt;
      {&lt;br /&gt;
        QCoreApplication::quit();&lt;br /&gt;
      }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;br\&amp;gt;&amp;lt;br\&amp;gt;&lt;br /&gt;
En ce qui concerne la 3éme fenêtre, elle permet juste de dire à l’utilisateur que la calibration a été bien faite et que les points ont bien été enregistrés dans le fichier texte puis copier dans le deuxième fichier texte. Voici un imprime écran de la fenêtre :&amp;lt;br\&amp;gt;&lt;br /&gt;
[[Fichier:Fin.PNG]]&amp;lt;br\&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Voici le code .h et .cpp de cette 3éme fenêtre :&amp;lt;br\&amp;gt; &lt;br /&gt;
Fincalibration.h&lt;br /&gt;
#ifndef FINCALIBRATION_H&lt;br /&gt;
#define FINCALIBRATION_H&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;QDialog&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
namespace Ui {&lt;br /&gt;
class FinCalibration;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
class FinCalibration : public QDialog&lt;br /&gt;
{&lt;br /&gt;
    Q_OBJECT&lt;br /&gt;
&lt;br /&gt;
public:&lt;br /&gt;
    explicit FinCalibration(QWidget *parent = 0);&lt;br /&gt;
    ~FinCalibration();&lt;br /&gt;
&lt;br /&gt;
private slots:&lt;br /&gt;
    void on_pushButton_clicked();&lt;br /&gt;
&lt;br /&gt;
private:&lt;br /&gt;
    Ui::FinCalibration *ui;&lt;br /&gt;
&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
#endif // FINCALIBRATION_H&lt;br /&gt;
&lt;br /&gt;
Fincalibration.cpp&lt;br /&gt;
&lt;br /&gt;
#include &amp;quot;fincalibration.h&amp;quot;&lt;br /&gt;
#include &amp;quot;ui_fincalibration.h&amp;quot;&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;QMessageBox&amp;gt;&lt;br /&gt;
&lt;br /&gt;
FinCalibration::FinCalibration(QWidget *parent) :&lt;br /&gt;
    QDialog(parent),&lt;br /&gt;
    ui(new Ui::FinCalibration)&lt;br /&gt;
{&lt;br /&gt;
    ui-&amp;gt;setupUi(this);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
FinCalibration::~FinCalibration()&lt;br /&gt;
{&lt;br /&gt;
    delete ui;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void FinCalibration::on_pushButton_clicked()&lt;br /&gt;
{&lt;br /&gt;
      QCoreApplication::quit();&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;br\&amp;gt;&lt;br /&gt;
Pour le bouton ‘annuler’ qui est présent dans toutes les fenêtres, quand on appui dessus, il demande à l’utilisateur s’il veut vraiment quitter la calibration en lui proposant deux boutons « Yes » et « No ». Le bouton « no » permet de revenir à la fenêtre précédente et le bouton « yes » permet de quitter l’application.&amp;lt;br\&amp;gt;&lt;br /&gt;
[[Fichier:Annuler.PNG]]&lt;/div&gt;</summary>
		<author><name>Zassaieb</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=Out_of_Space&amp;diff=12084</id>
		<title>Out of Space</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=Out_of_Space&amp;diff=12084"/>
				<updated>2014-04-15T19:35:52Z</updated>
		
		<summary type="html">&lt;p&gt;Zassaieb : /* Sur Unity */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Généralités sur le projet ==&lt;br /&gt;
&lt;br /&gt;
=== Contexte ===&lt;br /&gt;
&lt;br /&gt;
Ce projet met en collaboration une artiste et une société de production de jeu vidéo 3D, et vise à mettre en place une application interactive utilisant une classe de dispositifs d'interaction orienté &amp;quot;maquette holographique&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=== Descriptif ===&lt;br /&gt;
&lt;br /&gt;
Le projet vise à réaliser une application interactive sur un affichage stéréoscopique, et qui consiste à piloter un objet (une bille) dans un certain environnement, tout en déroulant l’évolution de cet environnement sur une vidéo de fond. Le mouvement de cet objet est contrôlé par les gestes des mains qui sont détectées par une Kinect et traduits sur un écran 3D.&lt;br /&gt;
&lt;br /&gt;
=== Problématique ===&lt;br /&gt;
&lt;br /&gt;
La problématique qui se pose est de pouvoir prendre aussi en compte la tête de l’utilisateur sur l’espace d’acquisition afin d’avoir les données sur l’angle de vision et donc d’orienter l’affichage 3D sur l’écran selon sa position, ainsi le mouvement de la tête impliquera l’inclinaison des objets affichés dans un sens ou dans l’autre.&lt;br /&gt;
&lt;br /&gt;
== == &lt;br /&gt;
&lt;br /&gt;
=== Cahier des charges ===&lt;br /&gt;
{{Petit|''Le cahier des charges ne peut être réalisé pour l'instant car notre projet est une continuité d'un projet réalisé actuellement par des élèves en IMA5, et les tâches qui nous seront affectées vont dépendre de leur avancement. La phase de transition sera faite quelques jours avant leur soutenance. Cependant, nous avons commencé par nous familiariser aux outils à utiliser''}}&amp;lt;br\&amp;gt;&amp;lt;br\&amp;gt;&lt;br /&gt;
-&amp;gt;  Mise en place d’un outil de Calibration pour calibrer et mettre en place la scène 3D selon la position de l’utilisateur, pour l’utilisation par un non informaticien.&lt;br /&gt;
&lt;br /&gt;
=== Les outils matériels/logiciels utilisés ===&lt;br /&gt;
&lt;br /&gt;
* Kinect, le périphérique de reconnaissance de mouvement&amp;lt;br/&amp;gt;&lt;br /&gt;
* Ecran Stereoscopique pour l'affichage 3D&amp;lt;br/&amp;gt;&lt;br /&gt;
* 3Gear possède une technologie qui permet, à partir des caméras 3D de la Kinect, de reconstruire une représentation précise des doigts et de ce que les mains font, en prenant les données 3D brutes et les transformant en informations utilisables sur l'état des mains. Les interfaces de programmation sont basées sur le pointage et le pincement et fournissent les angles des articulations approximatives, elles sont disponibles en C ++, C # et Java&amp;lt;br/&amp;gt;&lt;br /&gt;
* Unity 3D est un logiciel middleware de création de contenu interactif comportant de la vidéo et des objets 3D/2D. Il permet de créer des scènes supportant des éclairages, des terrains, des caméras, des textures ... . L’intérêt de ce logiciel est que celui-ci dispose d’une interface intuitive d’intégration d’objets et de scripts ; l’éditeur d’Unity intègre des composants pré-configurés évitant le développement de code fastidieux.&lt;br /&gt;
* QT est une interface de programmation orientée objet et développée en C++. Elle offre des composants d'interface graphique (widgets), d'accès aux données, de connexions réseaux, de gestion des fils d'exécution, d'analyse XML, etc. Par certains aspects c’est aussi un framework lorsqu'on l'utilise pour concevoir des interfaces graphiques ou que l'on architecture son application en utilisant les mécanismes des “signaux” et “slots” par exemple.&lt;br /&gt;
&lt;br /&gt;
== Déroulement du projet ==&lt;br /&gt;
===Semaine 03/02 – 07/02===&lt;br /&gt;
* Entretien avec Mr Laurent Grisonni pour comprendre le projet&lt;br /&gt;
* Etablissement d’un cahier de charge global en attente de précisions après la soutenance des IMA5&lt;br /&gt;
* Spécifications des outils et matériels utilisés&lt;br /&gt;
===Semaine 10/02 - 14/02===&lt;br /&gt;
* Rencontre avec les étudiants qui travaillent déjà sur le sujet&lt;br /&gt;
* Compréhension du travail réalisé&lt;br /&gt;
* Suggestion d’éventuelles améliorations&lt;br /&gt;
===Semaine 17/02 - 21/02===&lt;br /&gt;
* Prise en main de l’outil Unity à l’aide de quelques Tutoriels pour la création de scènes 3D&lt;br /&gt;
* Compréhension et analyse de la librairie 3gear de détection de geste via la Kinect&lt;br /&gt;
===Semaine 03/03 – 07/03===&lt;br /&gt;
* Spécification du besoin : Mise en place d’un outil de Calibration pour calibrer mettre en place la scène 3D selon la position de l’utilisateur, pour l’utilisation par un non informaticien.&lt;br /&gt;
===Semaine 12/03 – 14/03===&lt;br /&gt;
* Installation à l’IRCICA, remise des clefs et badges de la salle de travail, récupération du SVN du projet.&lt;br /&gt;
* Rencontre de plusieurs problèmes dont :&lt;br /&gt;
o	Pas de licence Windows sur le poste fourni &amp;lt;br/&amp;gt;&lt;br /&gt;
o	Problèmes de réseau et d’accès internet pour l’extraction du SVN&lt;br /&gt;
&lt;br /&gt;
===Semaine 24/03 – 28/03===&lt;br /&gt;
* Installation du logiciel Unity&lt;br /&gt;
* Impossibilité d’installer les logiciels de programmation pour la librairie 3gear: Processeur incompatible&lt;br /&gt;
* Premiers tests du programme existant, incomplets par manque d’outils.&lt;br /&gt;
* Ajustements de la  scène Unity à la taille de l’écran Stéréoscopique&lt;br /&gt;
&lt;br /&gt;
===Semaine 31/03 – 04/04===&lt;br /&gt;
''Outil de calibration'' : Cet outil est censé permettre à l’artiste ou n’importe quel autre utilisateur non information de pouvoir ajuster les réglages et le calibrage des Kinects par rapport à l’écran stéréoscopique sans avoir à modifier les lignes de code de l’application. &lt;br /&gt;
&lt;br /&gt;
''Calibrage'' : Afin de réaliser le calibrage de la Kinect, il faut d’abord lancer les programmes d’installation de la librairie 3gear de  la Kinect (nimble_calib et nimble_server, ces applications sont fournies avec le kit de la librairie), il faut ensuite lancer l’application Kinect_MSFT_Calibration. Cette application a été déjà développée pour ce projet et qui consiste en l’affichage de l’image reçue par la Kinect afin de sélectionner dessus les points des 4 coins de l’écran stéréoscopique (l’écran étant visible sur l’image), l’application enregistre alors ces coordonnées dans un fichier texte, et donc, ces coordonnées doivent être repris et mis dans un autre fichier texte en effectuant quelques modifications dessus. Ce dernier est celui qui est utilisé par l’application d’affichage de la scène 3D sur l’écran 3D, et qui utilise ces points pour régler l’affichage. &lt;br /&gt;
&lt;br /&gt;
* Prise en main de l’outil de développement d’interfaces graphiques QT&lt;br /&gt;
* Première ébauche de la gestion des fenêtres de l’interface graphique à développer.&lt;br /&gt;
* Problème rencontré : l’outil est bloqué quand on affecte à un bouton le passage à une deuxième fenêtre et l’exécution d’une application en même temps.&lt;br /&gt;
* Réalisation d’un programme C permettant le transfert des coordonnées du fichier source au fichier de destination.&lt;br /&gt;
&lt;br /&gt;
===Semaine 07/04 – 11/04===&lt;br /&gt;
* Test du programme de transfert de données sur l’outil et son implémentation&lt;br /&gt;
* Finalisation de l’interface graphique, en résolvant le problème rencontré.&lt;br /&gt;
* L’outil réalise bien la tâche demandée.&lt;br /&gt;
&lt;br /&gt;
==Travail réalisé==&lt;br /&gt;
===Sur Unity===&lt;br /&gt;
&lt;br /&gt;
Au tout début, il fallait ajuster la scène à la taille de l’écran stéréoscopique  sous Unity. La scène se présente comme suit :&amp;lt;br\&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Unity1.png|vignette|alt=texte alternatif|Scène Unity]]&lt;br /&gt;
La scène était perpendiculaire à l’écran stéréoscopique. Il fallait l’ajuster de façon à ce qu’on aie un ‘ground’ (qui correspond à l’écran stéréoscopique) et qui soit parallèle à la scène et aillant les mêmes dimensions que cette dernière, afin qu’il n’y ait pas de dépassement de bord.  &lt;br /&gt;
A travers plusieurs manipulations sous Unity, nous sommes arrivés au résultat suivant :&amp;lt;br\&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Unity2.png|vignette|alt=texte alternatif|Scène résultat]]&lt;br /&gt;
&lt;br /&gt;
===Sur QT===&lt;br /&gt;
Dans cette partie, nous avons utilisé le logiciel de développement d’interface graphique QT. &amp;lt;br\&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nous avons développé une interface graphique qui permet à un non informaticien de calibrer les Kinects de l’installation. Tout d’abord, nous avons commencé à nous familiariser au logiciel QT et à son environnement à travers plusieurs tutoriels, ce qui nous a aidés tout au long de notre projet afin de réaliser notre interface. &amp;lt;br\&amp;gt;&amp;lt;br\&amp;gt;&lt;br /&gt;
L’interface graphique de calibration comporte 3 fenêtres. On peut se déplacer d’une fenêtre à l’autre grâce à des boutons &amp;lt;br\&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
La première fenêtre est la fenêtre typique de chaque installation, qui demande à l’utilisateur s’il veut calibrer sa Kinect ou bien s’il s’est trompé d’application et qu’il voudrait annuler. &amp;lt;br\&amp;gt;&amp;lt;br\&amp;gt;&lt;br /&gt;
[[Fichier:Mainwindow.PNG]] &amp;lt;br\&amp;gt;&lt;br /&gt;
Vous trouverez dans la suite le code MainWindow.h et MainWindow.cpp de la fenêtre.&amp;lt;br\&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
MainWindow.h&lt;br /&gt;
#ifndef MAINWINDOW_H&lt;br /&gt;
#define MAINWINDOW_H&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;QMainWindow&amp;gt;&lt;br /&gt;
#include &amp;lt;QApplication&amp;gt;&lt;br /&gt;
#include &amp;lt;QProcess&amp;gt;&lt;br /&gt;
#include &amp;lt;QtGui&amp;gt;&lt;br /&gt;
#include &amp;quot;calibsetup.h&amp;quot;&lt;br /&gt;
&lt;br /&gt;
namespace Ui {&lt;br /&gt;
class MainWindow;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
class MainWindow : public QMainWindow&lt;br /&gt;
{&lt;br /&gt;
    Q_OBJECT&lt;br /&gt;
&lt;br /&gt;
public:&lt;br /&gt;
    explicit MainWindow(QWidget *parent = 0);&lt;br /&gt;
    ~MainWindow();&lt;br /&gt;
&lt;br /&gt;
private slots:&lt;br /&gt;
&lt;br /&gt;
    void on_pushButton_clicked();&lt;br /&gt;
&lt;br /&gt;
    void on_pushButton_2_clicked();&lt;br /&gt;
&lt;br /&gt;
    void on_pushButton_3_clicked();&lt;br /&gt;
&lt;br /&gt;
private:&lt;br /&gt;
    Ui::MainWindow *ui;&lt;br /&gt;
    calib *calibsetup;&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#endif // MAINWINDOW_H&lt;br /&gt;
}&lt;br /&gt;
{&lt;br /&gt;
MainWindow.cpp :&lt;br /&gt;
#include &amp;quot;mainwindow.h&amp;quot;&lt;br /&gt;
#include &amp;quot;ui_mainwindow.h&amp;quot;&lt;br /&gt;
#include &amp;quot;calibsetup.h&amp;quot;&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;QFileDialog&amp;gt;&lt;br /&gt;
#include &amp;lt;QMessageBox&amp;gt;&lt;br /&gt;
#include &amp;lt;QDesktopServices&amp;gt;&lt;br /&gt;
#include &amp;lt;QUrl&amp;gt;&lt;br /&gt;
#include &amp;lt;QApplication&amp;gt;&lt;br /&gt;
#include &amp;lt;QDebug&amp;gt;&lt;br /&gt;
#include &amp;lt;QObject&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
MainWindow::MainWindow(QWidget *parent) :&lt;br /&gt;
    QMainWindow(parent),&lt;br /&gt;
    ui(new Ui::MainWindow)&lt;br /&gt;
{&lt;br /&gt;
    ui-&amp;gt;setupUi(this);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
MainWindow::~MainWindow()&lt;br /&gt;
{&lt;br /&gt;
    delete ui;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void MainWindow::on_pushButton_clicked()&lt;br /&gt;
{&lt;br /&gt;
    calibsetup = new calib;&lt;br /&gt;
    calibsetup-&amp;gt;show();&lt;br /&gt;
    this-&amp;gt;hide();&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
void MainWindow::on_pushButton_2_clicked()&lt;br /&gt;
{&lt;br /&gt;
   //QMessageBox::information(this,&amp;quot;QUIT&amp;quot;,&amp;quot;Voulez-vous quitter l'application ?&amp;quot;,&amp;quot;Non&amp;quot;,&amp;quot;Oui&amp;quot;);&lt;br /&gt;
    QMessageBox msgBox;&lt;br /&gt;
      msgBox.setWindowTitle(&amp;quot;Exit setup&amp;quot;);&lt;br /&gt;
      msgBox.addButton(QMessageBox::Yes);&lt;br /&gt;
      msgBox.addButton(QMessageBox::No);&lt;br /&gt;
      msgBox.setText(&amp;quot;Voulez-vous vraiment quitter la calibration ?&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
      int selection = msgBox.exec();&lt;br /&gt;
      if(selection == QMessageBox::Yes)&lt;br /&gt;
      {&lt;br /&gt;
        QCoreApplication::quit();&lt;br /&gt;
      }&lt;br /&gt;
}&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;br\&amp;gt;&amp;lt;br\&amp;gt;&lt;br /&gt;
Le bouton ‘suivant’ permet de continuer l’installation et ainsi de passer à la deuxième fenêtre où on a listé les différentes étapes nécessaires pour la calibration. La calibration se fait via l’application ‘KinectMSFTCalibration’. Pour lancer cette dernière, l’utilisateur a besoin de cliquer sur le bouton ‘commencer’ qui permet d’afficher la vue de la Kinect qui est dirigé vers l’écran stéréoscopique. On pourra par la suite définir les points en cliquant sur F2 puis sur les bords de l’écran en commençant par le bas de l’écran à gauche puis à droite ensuite en haut à droite puis à gauche dans le sens antihoraire. Quand on place les 4 points au bord de l’écran, on définit le plan de définition. F3 nous permet de sauvegarder les coordonnées des points saisie dans un fichier .txt. Quand on clique sur le bouton 'suivant', on exécute un programme qui nous permet de copier ces coordonnées vers un notre fichier texte. Pour pouvoir revenir à la fenêtre calibsetup, il suffit de fermer l’application. &amp;lt;br\&amp;gt;&amp;lt;br\&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Setupcalibration.PNG]]&amp;lt;br\&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La fenêtre qui permet la calibration est la suivante :&amp;lt;br\&amp;gt;&lt;br /&gt;
[[Fichier:Kinect.PNG]]&amp;lt;br\&amp;gt;&lt;br /&gt;
Comme vous l'avez remarqué, on a 3 points au bord de l'écran intitulé dans l'ordre BL - BR - TR - TL&amp;lt;br\&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Voici le .h et .cpp de cette fenêtre :&lt;br /&gt;
&lt;br /&gt;
Calibsetup.h :&lt;br /&gt;
&lt;br /&gt;
#ifndef CALIB_H&lt;br /&gt;
#define CALIB_H&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;QDialog&amp;gt;&lt;br /&gt;
#include &amp;quot;fincalibration.h&amp;quot;&lt;br /&gt;
&lt;br /&gt;
namespace Ui {&lt;br /&gt;
class calib;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
class calib : public QDialog&lt;br /&gt;
{&lt;br /&gt;
    Q_OBJECT&lt;br /&gt;
&lt;br /&gt;
public:&lt;br /&gt;
    explicit calib(QWidget *parent = 0);&lt;br /&gt;
    ~calib();&lt;br /&gt;
&lt;br /&gt;
private slots:&lt;br /&gt;
    void on_pushButton_clicked();&lt;br /&gt;
&lt;br /&gt;
    void on_pushButton_2_clicked();&lt;br /&gt;
&lt;br /&gt;
    void on_pushButton_3_clicked();&lt;br /&gt;
&lt;br /&gt;
private:&lt;br /&gt;
    Ui::calib *ui;&lt;br /&gt;
    FinCalibration *fincalib ;&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
#endif // CALIB_H&lt;br /&gt;
&lt;br /&gt;
Calibsetup.cpp :&lt;br /&gt;
&lt;br /&gt;
#include &amp;quot;calibsetup.h&amp;quot;&lt;br /&gt;
#include &amp;quot;ui_calibsetup.h&amp;quot;&lt;br /&gt;
#include &amp;quot;fincalibration.h&amp;quot;&lt;br /&gt;
#include &amp;lt;QMessageBox&amp;gt;&lt;br /&gt;
&lt;br /&gt;
calib::calib(QWidget *parent) :&lt;br /&gt;
    QDialog(parent),&lt;br /&gt;
    ui(new Ui::calib)&lt;br /&gt;
{&lt;br /&gt;
    ui-&amp;gt;setupUi(this);&lt;br /&gt;
}&lt;br /&gt;
calib::~calib()&lt;br /&gt;
{&lt;br /&gt;
    delete ui;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void calib::on_pushButton_clicked()&lt;br /&gt;
{&lt;br /&gt;
    system(&amp;quot;C:/Users/Demo.ALCOVE-HP-MINT4/Desktop/OOS/nimble_calib.bat&amp;quot;);&lt;br /&gt;
    system(&amp;quot;C:/Users/Demo.ALCOVE-HP-MINT4/Desktop/OOS/nimble_server.bat&amp;quot;);&lt;br /&gt;
    system(&amp;quot;C:/Users/Demo.ALCOVE-HP-MINT4/Desktop/OOS/tool/KinectMSFTCalibration.exe&amp;quot;);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void calib::on_pushButton_2_clicked()&lt;br /&gt;
{&lt;br /&gt;
        fincalib = new FinCalibration;&lt;br /&gt;
        fincalib-&amp;gt;show();&lt;br /&gt;
        this-&amp;gt;hide();&lt;br /&gt;
        system(&amp;quot;C:/Users/Demo.ALCOVE-HP-MINT4/Desktop/OOS/Transfert_Points.exe&amp;quot;)&lt;br /&gt;
;}&lt;br /&gt;
&lt;br /&gt;
void calib::on_pushButton_3_clicked()&lt;br /&gt;
{&lt;br /&gt;
    QMessageBox msgBox;&lt;br /&gt;
      msgBox.setWindowTitle(&amp;quot;Calibration setup&amp;quot;);&lt;br /&gt;
      msgBox.addButton(QMessageBox::Yes);&lt;br /&gt;
      msgBox.addButton(QMessageBox::No);&lt;br /&gt;
      msgBox.setText(&amp;quot;Voulez-vous vraiment quitter la calibration ?&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
      int selection = msgBox.exec();&lt;br /&gt;
      if(selection == QMessageBox::Yes)&lt;br /&gt;
      {&lt;br /&gt;
        QCoreApplication::quit();&lt;br /&gt;
      }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;br\&amp;gt;&amp;lt;br\&amp;gt;&lt;br /&gt;
En ce qui concerne la 3éme fenêtre, elle permet juste de dire à l’utilisateur que la calibration a été bien faite et que les points ont bien été enregistrés dans le fichier texte puis copier dans le deuxième fichier texte. Voici un imprime écran de la fenêtre :&amp;lt;br\&amp;gt;&lt;br /&gt;
[[Fichier:Fin.PNG]]&amp;lt;br\&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Voici le code .h et .cpp de cette 3éme fenêtre :&amp;lt;br\&amp;gt; &lt;br /&gt;
Fincalibration.h&lt;br /&gt;
#ifndef FINCALIBRATION_H&lt;br /&gt;
#define FINCALIBRATION_H&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;QDialog&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
namespace Ui {&lt;br /&gt;
class FinCalibration;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
class FinCalibration : public QDialog&lt;br /&gt;
{&lt;br /&gt;
    Q_OBJECT&lt;br /&gt;
&lt;br /&gt;
public:&lt;br /&gt;
    explicit FinCalibration(QWidget *parent = 0);&lt;br /&gt;
    ~FinCalibration();&lt;br /&gt;
&lt;br /&gt;
private slots:&lt;br /&gt;
    void on_pushButton_clicked();&lt;br /&gt;
&lt;br /&gt;
private:&lt;br /&gt;
    Ui::FinCalibration *ui;&lt;br /&gt;
&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
#endif // FINCALIBRATION_H&lt;br /&gt;
&lt;br /&gt;
Fincalibration.cpp&lt;br /&gt;
&lt;br /&gt;
#include &amp;quot;fincalibration.h&amp;quot;&lt;br /&gt;
#include &amp;quot;ui_fincalibration.h&amp;quot;&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;QMessageBox&amp;gt;&lt;br /&gt;
&lt;br /&gt;
FinCalibration::FinCalibration(QWidget *parent) :&lt;br /&gt;
    QDialog(parent),&lt;br /&gt;
    ui(new Ui::FinCalibration)&lt;br /&gt;
{&lt;br /&gt;
    ui-&amp;gt;setupUi(this);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
FinCalibration::~FinCalibration()&lt;br /&gt;
{&lt;br /&gt;
    delete ui;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void FinCalibration::on_pushButton_clicked()&lt;br /&gt;
{&lt;br /&gt;
      QCoreApplication::quit();&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;br\&amp;gt;&lt;br /&gt;
Pour le bouton ‘annuler’ qui est présent dans toutes les fenêtres, quand on appui dessus, il demande à l’utilisateur s’il veut vraiment quitter la calibration en lui proposant deux boutons « Yes » et « No ». Le bouton « no » permet de revenir à la fenêtre précédente et le bouton « yes » permet de quitter l’application.&amp;lt;br\&amp;gt;&lt;br /&gt;
[[Fichier:Annuler.PNG]]&lt;/div&gt;</summary>
		<author><name>Zassaieb</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=Out_of_Space&amp;diff=12075</id>
		<title>Out of Space</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=Out_of_Space&amp;diff=12075"/>
				<updated>2014-04-15T19:30:27Z</updated>
		
		<summary type="html">&lt;p&gt;Zassaieb : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Généralités sur le projet ==&lt;br /&gt;
&lt;br /&gt;
=== Contexte ===&lt;br /&gt;
&lt;br /&gt;
Ce projet met en collaboration une artiste et une société de production de jeu vidéo 3D, et vise à mettre en place une application interactive utilisant une classe de dispositifs d'interaction orienté &amp;quot;maquette holographique&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=== Descriptif ===&lt;br /&gt;
&lt;br /&gt;
Le projet vise à réaliser une application interactive sur un affichage stéréoscopique, et qui consiste à piloter un objet (une bille) dans un certain environnement, tout en déroulant l’évolution de cet environnement sur une vidéo de fond. Le mouvement de cet objet est contrôlé par les gestes des mains qui sont détectées par une Kinect et traduits sur un écran 3D.&lt;br /&gt;
&lt;br /&gt;
=== Problématique ===&lt;br /&gt;
&lt;br /&gt;
La problématique qui se pose est de pouvoir prendre aussi en compte la tête de l’utilisateur sur l’espace d’acquisition afin d’avoir les données sur l’angle de vision et donc d’orienter l’affichage 3D sur l’écran selon sa position, ainsi le mouvement de la tête impliquera l’inclinaison des objets affichés dans un sens ou dans l’autre.&lt;br /&gt;
&lt;br /&gt;
== == &lt;br /&gt;
&lt;br /&gt;
=== Cahier des charges ===&lt;br /&gt;
{{Petit|''Le cahier des charges ne peut être réalisé pour l'instant car notre projet est une continuité d'un projet réalisé actuellement par des élèves en IMA5, et les tâches qui nous seront affectées vont dépendre de leur avancement. La phase de transition sera faite quelques jours avant leur soutenance. Cependant, nous avons commencé par nous familiariser aux outils à utiliser''}}&amp;lt;br\&amp;gt;&amp;lt;br\&amp;gt;&lt;br /&gt;
-&amp;gt;  Mise en place d’un outil de Calibration pour calibrer et mettre en place la scène 3D selon la position de l’utilisateur, pour l’utilisation par un non informaticien.&lt;br /&gt;
&lt;br /&gt;
=== Les outils matériels/logiciels utilisés ===&lt;br /&gt;
&lt;br /&gt;
* Kinect, le périphérique de reconnaissance de mouvement&amp;lt;br/&amp;gt;&lt;br /&gt;
* Ecran Stereoscopique pour l'affichage 3D&amp;lt;br/&amp;gt;&lt;br /&gt;
* 3Gear possède une technologie qui permet, à partir des caméras 3D de la Kinect, de reconstruire une représentation précise des doigts et de ce que les mains font, en prenant les données 3D brutes et les transformant en informations utilisables sur l'état des mains. Les interfaces de programmation sont basées sur le pointage et le pincement et fournissent les angles des articulations approximatives, elles sont disponibles en C ++, C # et Java&amp;lt;br/&amp;gt;&lt;br /&gt;
* Unity 3D est un logiciel middleware de création de contenu interactif comportant de la vidéo et des objets 3D/2D. Il permet de créer des scènes supportant des éclairages, des terrains, des caméras, des textures ... . L’intérêt de ce logiciel est que celui-ci dispose d’une interface intuitive d’intégration d’objets et de scripts ; l’éditeur d’Unity intègre des composants pré-configurés évitant le développement de code fastidieux.&lt;br /&gt;
* QT est une interface de programmation orientée objet et développée en C++. Elle offre des composants d'interface graphique (widgets), d'accès aux données, de connexions réseaux, de gestion des fils d'exécution, d'analyse XML, etc. Par certains aspects c’est aussi un framework lorsqu'on l'utilise pour concevoir des interfaces graphiques ou que l'on architecture son application en utilisant les mécanismes des “signaux” et “slots” par exemple.&lt;br /&gt;
&lt;br /&gt;
== Déroulement du projet ==&lt;br /&gt;
===Semaine 03/02 – 07/02===&lt;br /&gt;
* Entretien avec Mr Laurent Grisonni pour comprendre le projet&lt;br /&gt;
* Etablissement d’un cahier de charge global en attente de précisions après la soutenance des IMA5&lt;br /&gt;
* Spécifications des outils et matériels utilisés&lt;br /&gt;
===Semaine 10/02 - 14/02===&lt;br /&gt;
* Rencontre avec les étudiants qui travaillent déjà sur le sujet&lt;br /&gt;
* Compréhension du travail réalisé&lt;br /&gt;
* Suggestion d’éventuelles améliorations&lt;br /&gt;
===Semaine 17/02 - 21/02===&lt;br /&gt;
* Prise en main de l’outil Unity à l’aide de quelques Tutoriels pour la création de scènes 3D&lt;br /&gt;
* Compréhension et analyse de la librairie 3gear de détection de geste via la Kinect&lt;br /&gt;
===Semaine 03/03 – 07/03===&lt;br /&gt;
* Spécification du besoin : Mise en place d’un outil de Calibration pour calibrer mettre en place la scène 3D selon la position de l’utilisateur, pour l’utilisation par un non informaticien.&lt;br /&gt;
===Semaine 12/03 – 14/03===&lt;br /&gt;
* Installation à l’IRCICA, remise des clefs et badges de la salle de travail, récupération du SVN du projet.&lt;br /&gt;
* Rencontre de plusieurs problèmes dont :&lt;br /&gt;
o	Pas de licence Windows sur le poste fourni &amp;lt;br/&amp;gt;&lt;br /&gt;
o	Problèmes de réseau et d’accès internet pour l’extraction du SVN&lt;br /&gt;
&lt;br /&gt;
===Semaine 24/03 – 28/03===&lt;br /&gt;
* Installation du logiciel Unity&lt;br /&gt;
* Impossibilité d’installer les logiciels de programmation pour la librairie 3gear: Processeur incompatible&lt;br /&gt;
* Premiers tests du programme existant, incomplets par manque d’outils.&lt;br /&gt;
* Ajustements de la  scène Unity à la taille de l’écran Stéréoscopique&lt;br /&gt;
&lt;br /&gt;
===Semaine 31/03 – 04/04===&lt;br /&gt;
''Outil de calibration'' : Cet outil est censé permettre à l’artiste ou n’importe quel autre utilisateur non information de pouvoir ajuster les réglages et le calibrage des Kinects par rapport à l’écran stéréoscopique sans avoir à modifier les lignes de code de l’application. &lt;br /&gt;
&lt;br /&gt;
''Calibrage'' : Afin de réaliser le calibrage de la Kinect, il faut d’abord lancer les programmes d’installation de la librairie 3gear de  la Kinect (nimble_calib et nimble_server, ces applications sont fournies avec le kit de la librairie), il faut ensuite lancer l’application Kinect_MSFT_Calibration. Cette application a été déjà développée pour ce projet et qui consiste en l’affichage de l’image reçue par la Kinect afin de sélectionner dessus les points des 4 coins de l’écran stéréoscopique (l’écran étant visible sur l’image), l’application enregistre alors ces coordonnées dans un fichier texte, et donc, ces coordonnées doivent être repris et mis dans un autre fichier texte en effectuant quelques modifications dessus. Ce dernier est celui qui est utilisé par l’application d’affichage de la scène 3D sur l’écran 3D, et qui utilise ces points pour régler l’affichage. &lt;br /&gt;
&lt;br /&gt;
* Prise en main de l’outil de développement d’interfaces graphiques QT&lt;br /&gt;
* Première ébauche de la gestion des fenêtres de l’interface graphique à développer.&lt;br /&gt;
* Problème rencontré : l’outil est bloqué quand on affecte à un bouton le passage à une deuxième fenêtre et l’exécution d’une application en même temps.&lt;br /&gt;
* Réalisation d’un programme C permettant le transfert des coordonnées du fichier source au fichier de destination.&lt;br /&gt;
&lt;br /&gt;
===Semaine 07/04 – 11/04===&lt;br /&gt;
* Test du programme de transfert de données sur l’outil et son implémentation&lt;br /&gt;
* Finalisation de l’interface graphique, en résolvant le problème rencontré.&lt;br /&gt;
* L’outil réalise bien la tâche demandée.&lt;br /&gt;
&lt;br /&gt;
==Travail réalisé==&lt;br /&gt;
===Sur Unity===&lt;br /&gt;
&lt;br /&gt;
Au tout début, il fallait ajuster la scène à la taille de l’écran stéréoscopique  sous Unity. La scène se présente comme suit :&amp;lt;br\&amp;gt;&lt;br /&gt;
[[Fichier:Unity1.png]]&lt;br /&gt;
La scène était perpendiculaire à l’écran stéréoscopique. Il fallait l’ajuster de façon à ce qu’on aie un ‘ground’ (qui correspond à l’écran stéréoscopique) et qui soit parallèle à la scène et aillant les mêmes dimensions que cette dernière, afin qu’il n’y ait pas de dépassement de bord.  &lt;br /&gt;
A travers plusieurs manipulations sous Unity, nous sommes arrivés au résultat suivant :&amp;lt;br\&amp;gt;&lt;br /&gt;
[[Fichier:Unity2.png]]&lt;br /&gt;
&lt;br /&gt;
===Sur QT===&lt;br /&gt;
Dans cette partie, nous avons utilisé le logiciel de développement d’interface graphique QT. &amp;lt;br\&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nous avons développé une interface graphique qui permet à un non informaticien de calibrer les Kinects de l’installation. Tout d’abord, nous avons commencé à nous familiariser au logiciel QT et à son environnement à travers plusieurs tutoriels, ce qui nous a aidés tout au long de notre projet afin de réaliser notre interface. &amp;lt;br\&amp;gt;&amp;lt;br\&amp;gt;&lt;br /&gt;
L’interface graphique de calibration comporte 3 fenêtres. On peut se déplacer d’une fenêtre à l’autre grâce à des boutons &amp;lt;br\&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
La première fenêtre est la fenêtre typique de chaque installation, qui demande à l’utilisateur s’il veut calibrer sa Kinect ou bien s’il s’est trompé d’application et qu’il voudrait annuler. &amp;lt;br\&amp;gt;&amp;lt;br\&amp;gt;&lt;br /&gt;
[[Fichier:Mainwindow.PNG]] &amp;lt;br\&amp;gt;&lt;br /&gt;
Vous trouverez dans la suite le code MainWindow.h et MainWindow.cpp de la fenêtre.&amp;lt;br\&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
MainWindow.h&lt;br /&gt;
#ifndef MAINWINDOW_H&lt;br /&gt;
#define MAINWINDOW_H&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;QMainWindow&amp;gt;&lt;br /&gt;
#include &amp;lt;QApplication&amp;gt;&lt;br /&gt;
#include &amp;lt;QProcess&amp;gt;&lt;br /&gt;
#include &amp;lt;QtGui&amp;gt;&lt;br /&gt;
#include &amp;quot;calibsetup.h&amp;quot;&lt;br /&gt;
&lt;br /&gt;
namespace Ui {&lt;br /&gt;
class MainWindow;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
class MainWindow : public QMainWindow&lt;br /&gt;
{&lt;br /&gt;
    Q_OBJECT&lt;br /&gt;
&lt;br /&gt;
public:&lt;br /&gt;
    explicit MainWindow(QWidget *parent = 0);&lt;br /&gt;
    ~MainWindow();&lt;br /&gt;
&lt;br /&gt;
private slots:&lt;br /&gt;
&lt;br /&gt;
    void on_pushButton_clicked();&lt;br /&gt;
&lt;br /&gt;
    void on_pushButton_2_clicked();&lt;br /&gt;
&lt;br /&gt;
    void on_pushButton_3_clicked();&lt;br /&gt;
&lt;br /&gt;
private:&lt;br /&gt;
    Ui::MainWindow *ui;&lt;br /&gt;
    calib *calibsetup;&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#endif // MAINWINDOW_H&lt;br /&gt;
}&lt;br /&gt;
{&lt;br /&gt;
MainWindow.cpp :&lt;br /&gt;
#include &amp;quot;mainwindow.h&amp;quot;&lt;br /&gt;
#include &amp;quot;ui_mainwindow.h&amp;quot;&lt;br /&gt;
#include &amp;quot;calibsetup.h&amp;quot;&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;QFileDialog&amp;gt;&lt;br /&gt;
#include &amp;lt;QMessageBox&amp;gt;&lt;br /&gt;
#include &amp;lt;QDesktopServices&amp;gt;&lt;br /&gt;
#include &amp;lt;QUrl&amp;gt;&lt;br /&gt;
#include &amp;lt;QApplication&amp;gt;&lt;br /&gt;
#include &amp;lt;QDebug&amp;gt;&lt;br /&gt;
#include &amp;lt;QObject&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
MainWindow::MainWindow(QWidget *parent) :&lt;br /&gt;
    QMainWindow(parent),&lt;br /&gt;
    ui(new Ui::MainWindow)&lt;br /&gt;
{&lt;br /&gt;
    ui-&amp;gt;setupUi(this);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
MainWindow::~MainWindow()&lt;br /&gt;
{&lt;br /&gt;
    delete ui;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void MainWindow::on_pushButton_clicked()&lt;br /&gt;
{&lt;br /&gt;
    calibsetup = new calib;&lt;br /&gt;
    calibsetup-&amp;gt;show();&lt;br /&gt;
    this-&amp;gt;hide();&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
void MainWindow::on_pushButton_2_clicked()&lt;br /&gt;
{&lt;br /&gt;
   //QMessageBox::information(this,&amp;quot;QUIT&amp;quot;,&amp;quot;Voulez-vous quitter l'application ?&amp;quot;,&amp;quot;Non&amp;quot;,&amp;quot;Oui&amp;quot;);&lt;br /&gt;
    QMessageBox msgBox;&lt;br /&gt;
      msgBox.setWindowTitle(&amp;quot;Exit setup&amp;quot;);&lt;br /&gt;
      msgBox.addButton(QMessageBox::Yes);&lt;br /&gt;
      msgBox.addButton(QMessageBox::No);&lt;br /&gt;
      msgBox.setText(&amp;quot;Voulez-vous vraiment quitter la calibration ?&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
      int selection = msgBox.exec();&lt;br /&gt;
      if(selection == QMessageBox::Yes)&lt;br /&gt;
      {&lt;br /&gt;
        QCoreApplication::quit();&lt;br /&gt;
      }&lt;br /&gt;
}&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;br\&amp;gt;&amp;lt;br\&amp;gt;&lt;br /&gt;
Le bouton ‘suivant’ permet de continuer l’installation et ainsi de passer à la deuxième fenêtre où on a listé les différentes étapes nécessaires pour la calibration. La calibration se fait via l’application ‘KinectMSFTCalibration’. Pour lancer cette dernière, l’utilisateur a besoin de cliquer sur le bouton ‘commencer’ qui permet d’afficher la vue de la Kinect qui est dirigé vers l’écran stéréoscopique. On pourra par la suite définir les points en cliquant sur F2 puis sur les bords de l’écran en commençant par le bas de l’écran à gauche puis à droite ensuite en haut à droite puis à gauche dans le sens antihoraire. Quand on place les 4 points au bord de l’écran, on définit le plan de définition. F3 nous permet de sauvegarder les coordonnées des points saisie dans un fichier .txt. Quand on clique sur le bouton 'suivant', on exécute un programme qui nous permet de copier ces coordonnées vers un notre fichier texte. Pour pouvoir revenir à la fenêtre calibsetup, il suffit de fermer l’application. &amp;lt;br\&amp;gt;&amp;lt;br\&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Setupcalibration.PNG]]&amp;lt;br\&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La fenêtre qui permet la calibration est la suivante :&amp;lt;br\&amp;gt;&lt;br /&gt;
[[Fichier:Kinect.PNG]]&amp;lt;br\&amp;gt;&lt;br /&gt;
Comme vous l'avez remarqué, on a 3 points au bord de l'écran intitulé dans l'ordre BL - BR - TR - TL&amp;lt;br\&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Voici le .h et .cpp de cette fenêtre :&lt;br /&gt;
&lt;br /&gt;
Calibsetup.h :&lt;br /&gt;
&lt;br /&gt;
#ifndef CALIB_H&lt;br /&gt;
#define CALIB_H&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;QDialog&amp;gt;&lt;br /&gt;
#include &amp;quot;fincalibration.h&amp;quot;&lt;br /&gt;
&lt;br /&gt;
namespace Ui {&lt;br /&gt;
class calib;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
class calib : public QDialog&lt;br /&gt;
{&lt;br /&gt;
    Q_OBJECT&lt;br /&gt;
&lt;br /&gt;
public:&lt;br /&gt;
    explicit calib(QWidget *parent = 0);&lt;br /&gt;
    ~calib();&lt;br /&gt;
&lt;br /&gt;
private slots:&lt;br /&gt;
    void on_pushButton_clicked();&lt;br /&gt;
&lt;br /&gt;
    void on_pushButton_2_clicked();&lt;br /&gt;
&lt;br /&gt;
    void on_pushButton_3_clicked();&lt;br /&gt;
&lt;br /&gt;
private:&lt;br /&gt;
    Ui::calib *ui;&lt;br /&gt;
    FinCalibration *fincalib ;&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
#endif // CALIB_H&lt;br /&gt;
&lt;br /&gt;
Calibsetup.cpp :&lt;br /&gt;
&lt;br /&gt;
#include &amp;quot;calibsetup.h&amp;quot;&lt;br /&gt;
#include &amp;quot;ui_calibsetup.h&amp;quot;&lt;br /&gt;
#include &amp;quot;fincalibration.h&amp;quot;&lt;br /&gt;
#include &amp;lt;QMessageBox&amp;gt;&lt;br /&gt;
&lt;br /&gt;
calib::calib(QWidget *parent) :&lt;br /&gt;
    QDialog(parent),&lt;br /&gt;
    ui(new Ui::calib)&lt;br /&gt;
{&lt;br /&gt;
    ui-&amp;gt;setupUi(this);&lt;br /&gt;
}&lt;br /&gt;
calib::~calib()&lt;br /&gt;
{&lt;br /&gt;
    delete ui;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void calib::on_pushButton_clicked()&lt;br /&gt;
{&lt;br /&gt;
    system(&amp;quot;C:/Users/Demo.ALCOVE-HP-MINT4/Desktop/OOS/nimble_calib.bat&amp;quot;);&lt;br /&gt;
    system(&amp;quot;C:/Users/Demo.ALCOVE-HP-MINT4/Desktop/OOS/nimble_server.bat&amp;quot;);&lt;br /&gt;
    system(&amp;quot;C:/Users/Demo.ALCOVE-HP-MINT4/Desktop/OOS/tool/KinectMSFTCalibration.exe&amp;quot;);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void calib::on_pushButton_2_clicked()&lt;br /&gt;
{&lt;br /&gt;
        fincalib = new FinCalibration;&lt;br /&gt;
        fincalib-&amp;gt;show();&lt;br /&gt;
        this-&amp;gt;hide();&lt;br /&gt;
        system(&amp;quot;C:/Users/Demo.ALCOVE-HP-MINT4/Desktop/OOS/Transfert_Points.exe&amp;quot;)&lt;br /&gt;
;}&lt;br /&gt;
&lt;br /&gt;
void calib::on_pushButton_3_clicked()&lt;br /&gt;
{&lt;br /&gt;
    QMessageBox msgBox;&lt;br /&gt;
      msgBox.setWindowTitle(&amp;quot;Calibration setup&amp;quot;);&lt;br /&gt;
      msgBox.addButton(QMessageBox::Yes);&lt;br /&gt;
      msgBox.addButton(QMessageBox::No);&lt;br /&gt;
      msgBox.setText(&amp;quot;Voulez-vous vraiment quitter la calibration ?&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
      int selection = msgBox.exec();&lt;br /&gt;
      if(selection == QMessageBox::Yes)&lt;br /&gt;
      {&lt;br /&gt;
        QCoreApplication::quit();&lt;br /&gt;
      }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;br\&amp;gt;&amp;lt;br\&amp;gt;&lt;br /&gt;
En ce qui concerne la 3éme fenêtre, elle permet juste de dire à l’utilisateur que la calibration a été bien faite et que les points ont bien été enregistrés dans le fichier texte puis copier dans le deuxième fichier texte. Voici un imprime écran de la fenêtre :&amp;lt;br\&amp;gt;&lt;br /&gt;
[[Fichier:Fin.PNG]]&amp;lt;br\&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Voici le code .h et .cpp de cette 3éme fenêtre :&amp;lt;br\&amp;gt; &lt;br /&gt;
Fincalibration.h&lt;br /&gt;
#ifndef FINCALIBRATION_H&lt;br /&gt;
#define FINCALIBRATION_H&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;QDialog&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
namespace Ui {&lt;br /&gt;
class FinCalibration;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
class FinCalibration : public QDialog&lt;br /&gt;
{&lt;br /&gt;
    Q_OBJECT&lt;br /&gt;
&lt;br /&gt;
public:&lt;br /&gt;
    explicit FinCalibration(QWidget *parent = 0);&lt;br /&gt;
    ~FinCalibration();&lt;br /&gt;
&lt;br /&gt;
private slots:&lt;br /&gt;
    void on_pushButton_clicked();&lt;br /&gt;
&lt;br /&gt;
private:&lt;br /&gt;
    Ui::FinCalibration *ui;&lt;br /&gt;
&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
#endif // FINCALIBRATION_H&lt;br /&gt;
&lt;br /&gt;
Fincalibration.cpp&lt;br /&gt;
&lt;br /&gt;
#include &amp;quot;fincalibration.h&amp;quot;&lt;br /&gt;
#include &amp;quot;ui_fincalibration.h&amp;quot;&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;QMessageBox&amp;gt;&lt;br /&gt;
&lt;br /&gt;
FinCalibration::FinCalibration(QWidget *parent) :&lt;br /&gt;
    QDialog(parent),&lt;br /&gt;
    ui(new Ui::FinCalibration)&lt;br /&gt;
{&lt;br /&gt;
    ui-&amp;gt;setupUi(this);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
FinCalibration::~FinCalibration()&lt;br /&gt;
{&lt;br /&gt;
    delete ui;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void FinCalibration::on_pushButton_clicked()&lt;br /&gt;
{&lt;br /&gt;
      QCoreApplication::quit();&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;br\&amp;gt;&lt;br /&gt;
Pour le bouton ‘annuler’ qui est présent dans toutes les fenêtres, quand on appui dessus, il demande à l’utilisateur s’il veut vraiment quitter la calibration en lui proposant deux boutons « Yes » et « No ». Le bouton « no » permet de revenir à la fenêtre précédente et le bouton « yes » permet de quitter l’application.&amp;lt;br\&amp;gt;&lt;br /&gt;
[[Fichier:Annuler.PNG]]&lt;/div&gt;</summary>
		<author><name>Zassaieb</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=Out_of_Space&amp;diff=12065</id>
		<title>Out of Space</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=Out_of_Space&amp;diff=12065"/>
				<updated>2014-04-15T19:24:06Z</updated>
		
		<summary type="html">&lt;p&gt;Zassaieb : /* Les outils matériels/logiciels utilisés */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Généralités sur le projet ==&lt;br /&gt;
&lt;br /&gt;
=== Contexte ===&lt;br /&gt;
&lt;br /&gt;
Ce projet met en collaboration une artiste et une société de production de jeu vidéo 3D, et vise à mettre en place une application interactive utilisant une classe de dispositifs d'interaction orienté &amp;quot;maquette holographique&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=== Descriptif ===&lt;br /&gt;
&lt;br /&gt;
Le projet vise à réaliser une application interactive sur un affichage stéréoscopique, et qui consiste à piloter un objet (une bille) dans un certain environnement, tout en déroulant l’évolution de cet environnement sur une vidéo de fond. Le mouvement de cet objet est contrôlé par les gestes des mains qui sont détectées par une Kinect et traduits sur un écran 3D.&lt;br /&gt;
&lt;br /&gt;
=== Problématique ===&lt;br /&gt;
&lt;br /&gt;
La problématique qui se pose est de pouvoir prendre aussi en compte la tête de l’utilisateur sur l’espace d’acquisition afin d’avoir les données sur l’angle de vision et donc d’orienter l’affichage 3D sur l’écran selon sa position, ainsi le mouvement de la tête impliquera l’inclinaison des objets affichés dans un sens ou dans l’autre.&lt;br /&gt;
&lt;br /&gt;
== == &lt;br /&gt;
&lt;br /&gt;
=== Cahier des charges ===&lt;br /&gt;
{{Petit|''Le cahier des charges ne peut être réalisé pour l'instant car notre projet est une continuité d'un projet réalisé actuellement par des élèves en IMA5, et les tâches qui nous seront affectées vont dépendre de leur avancement. La phase de transition sera faite quelques jours avant leur soutenance. Cependant, nous avons commencé par nous familiariser aux outils à utiliser''}}&amp;lt;br\&amp;gt;&amp;lt;br\&amp;gt;&lt;br /&gt;
-&amp;gt;  Mise en place d’un outil de Calibration pour calibrer et mettre en place la scène 3D selon la position de l’utilisateur, pour l’utilisation par un non informaticien.&lt;br /&gt;
&lt;br /&gt;
=== Les outils matériels/logiciels utilisés ===&lt;br /&gt;
&lt;br /&gt;
* Kinect, le périphérique de reconnaissance de mouvement&amp;lt;br/&amp;gt;&lt;br /&gt;
* Ecran Stereoscopique pour l'affichage 3D&amp;lt;br/&amp;gt;&lt;br /&gt;
* 3Gear possède une technologie qui permet, à partir des caméras 3D de la Kinect, de reconstruire une représentation précise des doigts et de ce que les mains font, en prenant les données 3D brutes et les transformant en informations utilisables sur l'état des mains. Les interfaces de programmation sont basées sur le pointage et le pincement et fournissent les angles des articulations approximatives, elles sont disponibles en C ++, C # et Java&amp;lt;br/&amp;gt;&lt;br /&gt;
* Unity 3D est un logiciel middleware de création de contenu interactif comportant de la vidéo et des objets 3D/2D. Il permet de créer des scènes supportant des éclairages, des terrains, des caméras, des textures ... . L’intérêt de ce logiciel est que celui-ci dispose d’une interface intuitive d’intégration d’objets et de scripts ; l’éditeur d’Unity intègre des composants pré-configurés évitant le développement de code fastidieux.&lt;br /&gt;
* QT est une interface de programmation orientée objet et développée en C++. Elle offre des composants d'interface graphique (widgets), d'accès aux données, de connexions réseaux, de gestion des fils d'exécution, d'analyse XML, etc. Par certains aspects c’est aussi un framework lorsqu'on l'utilise pour concevoir des interfaces graphiques ou que l'on architecture son application en utilisant les mécanismes des “signaux” et “slots” par exemple.&lt;br /&gt;
&lt;br /&gt;
== Travail réalisé ==&lt;br /&gt;
===Semaine 03/02 – 07/02===&lt;br /&gt;
* Entretien avec Mr Laurent Grisonni pour comprendre le projet&lt;br /&gt;
* Etablissement d’un cahier de charge global en attente de précisions après la soutenance des IMA5&lt;br /&gt;
* Spécifications des outils et matériels utilisés&lt;br /&gt;
===Semaine 10/02 - 14/02===&lt;br /&gt;
* Rencontre avec les étudiants qui travaillent déjà sur le sujet&lt;br /&gt;
* Compréhension du travail réalisé&lt;br /&gt;
* Suggestion d’éventuelles améliorations&lt;br /&gt;
===Semaine 17/02 - 21/02===&lt;br /&gt;
* Prise en main de l’outil Unity à l’aide de quelques Tutoriels pour la création de scènes 3D&lt;br /&gt;
* Compréhension et analyse de la librairie 3gear de détection de geste via la Kinect&lt;br /&gt;
===Semaine 03/03 – 07/03===&lt;br /&gt;
* Spécification du besoin : Mise en place d’un outil de Calibration pour calibrer mettre en place la scène 3D selon la position de l’utilisateur, pour l’utilisation par un non informaticien.&lt;br /&gt;
===Semaine 12/03 – 14/03===&lt;br /&gt;
* Installation à l’IRCICA, remise des clefs et badges de la salle de travail, récupération du SVN du projet.&lt;br /&gt;
* Rencontre de plusieurs problèmes dont :&lt;br /&gt;
o	Pas de licence Windows sur le poste fourni &amp;lt;br/&amp;gt;&lt;br /&gt;
o	Problèmes de réseau et d’accès internet pour l’extraction du SVN&lt;br /&gt;
&lt;br /&gt;
===Semaine 24/03 – 28/03===&lt;br /&gt;
* Installation du logiciel Unity&lt;br /&gt;
* Impossibilité d’installer les logiciels de programmation pour la librairie 3gear: Processeur incompatible&lt;br /&gt;
* Premiers tests du programme existant, incomplets par manque d’outils.&lt;br /&gt;
* Ajustements de la  scène Unity à la taille de l’écran Stéréoscopique&lt;br /&gt;
&lt;br /&gt;
===Semaine 31/03 – 04/04===&lt;br /&gt;
''Outil de calibration'' : Cet outil est censé permettre à l’artiste ou n’importe quel autre utilisateur non information de pouvoir ajuster les réglages et le calibrage des Kinects par rapport à l’écran stéréoscopique sans avoir à modifier les lignes de code de l’application. &lt;br /&gt;
&lt;br /&gt;
''Calibrage'' : Afin de réaliser le calibrage de la Kinect, il faut d’abord lancer les programmes d’installation de la librairie 3gear de  la Kinect (nimble_calib et nimble_server, ces applications sont fournies avec le kit de la librairie), il faut ensuite lancer l’application Kinect_MSFT_Calibration. Cette application a été déjà développée pour ce projet et qui consiste en l’affichage de l’image reçue par la Kinect afin de sélectionner dessus les points des 4 coins de l’écran stéréoscopique (l’écran étant visible sur l’image), l’application enregistre alors ces coordonnées dans un fichier texte, et donc, ces coordonnées doivent être repris et mis dans un autre fichier texte en effectuant quelques modifications dessus. Ce dernier est celui qui est utilisé par l’application d’affichage de la scène 3D sur l’écran 3D, et qui utilise ces points pour régler l’affichage. &lt;br /&gt;
&lt;br /&gt;
* Prise en main de l’outil de développement d’interfaces graphiques QT&lt;br /&gt;
* Première ébauche de la gestion des fenêtres de l’interface graphique à développer.&lt;br /&gt;
* Problème rencontré : l’outil est bloqué quand on affecte à un bouton le passage à une deuxième fenêtre et l’exécution d’une application en même temps.&lt;br /&gt;
* Réalisation d’un programme C permettant le transfert des coordonnées du fichier source au fichier de destination.&lt;br /&gt;
&lt;br /&gt;
===Semaine 07/04 – 11/04===&lt;br /&gt;
* Test du programme de transfert de données sur l’outil et son implémentation&lt;br /&gt;
* Finalisation de l’interface graphique, en résolvant le problème rencontré.&lt;br /&gt;
* L’outil réalise bien la tâche demandée.&lt;br /&gt;
&lt;br /&gt;
==Utilisation de Unity==&lt;br /&gt;
&lt;br /&gt;
Au tout début, il fallait ajuster la scène à la taille de l’écran stéréoscopique  sous Unity. La scène se présente comme suit :&amp;lt;br\&amp;gt;&lt;br /&gt;
[[Fichier:Unity1.png]]&lt;br /&gt;
La scène était perpendiculaire à l’écran stéréoscopique. Il fallait l’ajuster de façon à ce qu’on est un ‘ground’ (qui correspond à l’écran stéréoscopique) qui soit parallèle à la scène et aillant les mêmes dimensions de cette dernière afin qu’il n’y ait pas de dépassement de bord.  &lt;br /&gt;
A travers plusieurs manipulations sous Unity, nous sommes arrivés au résultat suivant :&amp;lt;br\&amp;gt;&lt;br /&gt;
[[Fichier:Unity2.png]]&lt;br /&gt;
&lt;br /&gt;
==Utilisation de QT==&lt;br /&gt;
Dans cette partie, nous avons utilisé le logiciel de développement d’interface graphique QT qui est un API orientée objet et développé en C++ par QT development Frameworks. QT offre des composants d’interface graphiques (widgets), d’accès aux données, de connexions réseaux, de gestion des fils d’exécution, d’analyse XML, etc. &amp;lt;br\&amp;gt;&amp;lt;br\&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nous avons développé une interface graphique qui va permettre à un non informaticien de calibrer les Kinects de l’installation sans devoir modifier dans le code. Tout d’abord, nous avons commencé à nous familiariser au logiciel QT et à son environnement à travers plusieurs tutoriels, ce qui nous a aidés tout au long de notre projet afin de réaliser notre interface. &amp;lt;br\&amp;gt;&lt;br /&gt;
L’interface graphique de calibration comporte 3 fenêtres. On peut se déplacer d’une fenêtre à l’autre grâce à des boutons &amp;lt;br\&amp;gt;&amp;lt;br\&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
La première fenêtre est la fenêtre typique de chaque installation, qui demande à l’utilisateur s’il veut calibrer sa Kinect ou bien c’est juste qu’il s’est trompé d’application et qu’il voudrait annuler. &amp;lt;br\&amp;gt;&amp;lt;br\&amp;gt;&lt;br /&gt;
[[Fichier:Mainwindow.PNG]] &amp;lt;br\&amp;gt;&lt;br /&gt;
Vous trouverez dans la suite le code MainWindow.h et MainWindow.cpp de la fenêtre.&amp;lt;br\&amp;gt;&lt;br /&gt;
&lt;br /&gt;
MainWindow.h&lt;br /&gt;
#ifndef MAINWINDOW_H&lt;br /&gt;
#define MAINWINDOW_H&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;QMainWindow&amp;gt;&lt;br /&gt;
#include &amp;lt;QApplication&amp;gt;&lt;br /&gt;
#include &amp;lt;QProcess&amp;gt;&lt;br /&gt;
#include &amp;lt;QtGui&amp;gt;&lt;br /&gt;
#include &amp;quot;calibsetup.h&amp;quot;&lt;br /&gt;
&lt;br /&gt;
namespace Ui {&lt;br /&gt;
class MainWindow;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
class MainWindow : public QMainWindow&lt;br /&gt;
{&lt;br /&gt;
    Q_OBJECT&lt;br /&gt;
&lt;br /&gt;
public:&lt;br /&gt;
    explicit MainWindow(QWidget *parent = 0);&lt;br /&gt;
    ~MainWindow();&lt;br /&gt;
&lt;br /&gt;
private slots:&lt;br /&gt;
&lt;br /&gt;
    void on_pushButton_clicked();&lt;br /&gt;
&lt;br /&gt;
    void on_pushButton_2_clicked();&lt;br /&gt;
&lt;br /&gt;
    void on_pushButton_3_clicked();&lt;br /&gt;
&lt;br /&gt;
private:&lt;br /&gt;
    Ui::MainWindow *ui;&lt;br /&gt;
    calib *calibsetup;&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#endif // MAINWINDOW_H&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
MainWindow.cpp :&lt;br /&gt;
#include &amp;quot;mainwindow.h&amp;quot;&lt;br /&gt;
#include &amp;quot;ui_mainwindow.h&amp;quot;&lt;br /&gt;
#include &amp;quot;calibsetup.h&amp;quot;&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;QFileDialog&amp;gt;&lt;br /&gt;
#include &amp;lt;QMessageBox&amp;gt;&lt;br /&gt;
#include &amp;lt;QDesktopServices&amp;gt;&lt;br /&gt;
#include &amp;lt;QUrl&amp;gt;&lt;br /&gt;
#include &amp;lt;QApplication&amp;gt;&lt;br /&gt;
#include &amp;lt;QDebug&amp;gt;&lt;br /&gt;
#include &amp;lt;QObject&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
MainWindow::MainWindow(QWidget *parent) :&lt;br /&gt;
    QMainWindow(parent),&lt;br /&gt;
    ui(new Ui::MainWindow)&lt;br /&gt;
{&lt;br /&gt;
    ui-&amp;gt;setupUi(this);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
MainWindow::~MainWindow()&lt;br /&gt;
{&lt;br /&gt;
    delete ui;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void MainWindow::on_pushButton_clicked()&lt;br /&gt;
{&lt;br /&gt;
    calibsetup = new calib;&lt;br /&gt;
    calibsetup-&amp;gt;show();&lt;br /&gt;
    this-&amp;gt;hide();&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
void MainWindow::on_pushButton_2_clicked()&lt;br /&gt;
{&lt;br /&gt;
   //QMessageBox::information(this,&amp;quot;QUIT&amp;quot;,&amp;quot;Voulez-vous quitter l'application ?&amp;quot;,&amp;quot;Non&amp;quot;,&amp;quot;Oui&amp;quot;);&lt;br /&gt;
    QMessageBox msgBox;&lt;br /&gt;
      msgBox.setWindowTitle(&amp;quot;Exit setup&amp;quot;);&lt;br /&gt;
      msgBox.addButton(QMessageBox::Yes);&lt;br /&gt;
      msgBox.addButton(QMessageBox::No);&lt;br /&gt;
      msgBox.setText(&amp;quot;Voulez-vous vraiment quitter la calibration ?&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
      int selection = msgBox.exec();&lt;br /&gt;
      if(selection == QMessageBox::Yes)&lt;br /&gt;
      {&lt;br /&gt;
        QCoreApplication::quit();&lt;br /&gt;
      }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;br\&amp;gt;&amp;lt;br\&amp;gt;&lt;br /&gt;
Le bouton ‘suivant’ permet de continuer l’installation et ainsi de passer à la deuxième fenêtre où on a listé les différentes étapes nécessaires pour la calibration. La calibration se fait via l’application ‘KinectMSFTCalibration’. Pour lancer cette dernière, l’utilisateur a besoin de cliquer sur le bouton ‘commencer’ qui permet d’afficher la vue de la Kinect qui est dirigé vers l’écran stéréoscopique. On pourra par la suite définir les points en cliquant sur F2 puis sur les bords de l’écran en commençant par le bas de l’écran à gauche puis à droite ensuite en haut à droite puis à gauche dans le sens antihoraire. Quand on place les 4 points au bord de l’écran, on définit le plan de définition. F3 nous permet de sauvegarder les coordonnées des points saisie dans un fichier .txt. Quand on clique sur le bouton 'suivant', on exécute un programme qui nous permet de copier ces coordonnées vers un notre fichier texte. Pour pouvoir revenir à la fenêtre calibsetup, il suffit de fermer l’application. &amp;lt;br\&amp;gt;&amp;lt;br\&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Setupcalibration.PNG]]&amp;lt;br\&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La fenêtre qui permet la calibration est la suivante :&amp;lt;br\&amp;gt;&lt;br /&gt;
[[Fichier:Kinect.PNG]]&amp;lt;br\&amp;gt;&lt;br /&gt;
Comme vous l'avez remarqué, on a 3 points au bord de l'écran intitulé dans l'ordre BL - BR - TR - TL&amp;lt;br\&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Voici le .h et .cpp de cette fenêtre :&lt;br /&gt;
&lt;br /&gt;
Calibsetup.h :&lt;br /&gt;
&lt;br /&gt;
#ifndef CALIB_H&lt;br /&gt;
#define CALIB_H&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;QDialog&amp;gt;&lt;br /&gt;
#include &amp;quot;fincalibration.h&amp;quot;&lt;br /&gt;
&lt;br /&gt;
namespace Ui {&lt;br /&gt;
class calib;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
class calib : public QDialog&lt;br /&gt;
{&lt;br /&gt;
    Q_OBJECT&lt;br /&gt;
&lt;br /&gt;
public:&lt;br /&gt;
    explicit calib(QWidget *parent = 0);&lt;br /&gt;
    ~calib();&lt;br /&gt;
&lt;br /&gt;
private slots:&lt;br /&gt;
    void on_pushButton_clicked();&lt;br /&gt;
&lt;br /&gt;
    void on_pushButton_2_clicked();&lt;br /&gt;
&lt;br /&gt;
    void on_pushButton_3_clicked();&lt;br /&gt;
&lt;br /&gt;
private:&lt;br /&gt;
    Ui::calib *ui;&lt;br /&gt;
    FinCalibration *fincalib ;&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
#endif // CALIB_H&lt;br /&gt;
&lt;br /&gt;
Calibsetup.cpp :&lt;br /&gt;
&lt;br /&gt;
#include &amp;quot;calibsetup.h&amp;quot;&lt;br /&gt;
#include &amp;quot;ui_calibsetup.h&amp;quot;&lt;br /&gt;
#include &amp;quot;fincalibration.h&amp;quot;&lt;br /&gt;
#include &amp;lt;QMessageBox&amp;gt;&lt;br /&gt;
&lt;br /&gt;
calib::calib(QWidget *parent) :&lt;br /&gt;
    QDialog(parent),&lt;br /&gt;
    ui(new Ui::calib)&lt;br /&gt;
{&lt;br /&gt;
    ui-&amp;gt;setupUi(this);&lt;br /&gt;
}&lt;br /&gt;
calib::~calib()&lt;br /&gt;
{&lt;br /&gt;
    delete ui;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void calib::on_pushButton_clicked()&lt;br /&gt;
{&lt;br /&gt;
    system(&amp;quot;C:/Users/Demo.ALCOVE-HP-MINT4/Desktop/OOS/nimble_calib.bat&amp;quot;);&lt;br /&gt;
    system(&amp;quot;C:/Users/Demo.ALCOVE-HP-MINT4/Desktop/OOS/nimble_server.bat&amp;quot;);&lt;br /&gt;
    system(&amp;quot;C:/Users/Demo.ALCOVE-HP-MINT4/Desktop/OOS/tool/KinectMSFTCalibration.exe&amp;quot;);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void calib::on_pushButton_2_clicked()&lt;br /&gt;
{&lt;br /&gt;
        fincalib = new FinCalibration;&lt;br /&gt;
        fincalib-&amp;gt;show();&lt;br /&gt;
        this-&amp;gt;hide();&lt;br /&gt;
        system(&amp;quot;C:/Users/Demo.ALCOVE-HP-MINT4/Desktop/OOS/Transfert_Points.exe&amp;quot;)&lt;br /&gt;
;}&lt;br /&gt;
&lt;br /&gt;
void calib::on_pushButton_3_clicked()&lt;br /&gt;
{&lt;br /&gt;
    QMessageBox msgBox;&lt;br /&gt;
      msgBox.setWindowTitle(&amp;quot;Calibration setup&amp;quot;);&lt;br /&gt;
      msgBox.addButton(QMessageBox::Yes);&lt;br /&gt;
      msgBox.addButton(QMessageBox::No);&lt;br /&gt;
      msgBox.setText(&amp;quot;Voulez-vous vraiment quitter la calibration ?&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
      int selection = msgBox.exec();&lt;br /&gt;
      if(selection == QMessageBox::Yes)&lt;br /&gt;
      {&lt;br /&gt;
        QCoreApplication::quit();&lt;br /&gt;
      }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;br\&amp;gt;&amp;lt;br\&amp;gt;&lt;br /&gt;
En ce qui concerne la 3éme fenêtre, elle permet juste de dire à l’utilisateur que la calibration a été bien faite et que les points ont bien été enregistrés dans le fichier texte puis copier dans le deuxième fichier texte. Voici un imprime écran de la fenêtre :&amp;lt;br\&amp;gt;&lt;br /&gt;
[[Fichier:Fin.PNG]]&amp;lt;br\&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Voici le code .h et .cpp de cette 3éme fenêtre :&amp;lt;br\&amp;gt; &lt;br /&gt;
Fincalibration.h&lt;br /&gt;
#ifndef FINCALIBRATION_H&lt;br /&gt;
#define FINCALIBRATION_H&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;QDialog&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
namespace Ui {&lt;br /&gt;
class FinCalibration;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
class FinCalibration : public QDialog&lt;br /&gt;
{&lt;br /&gt;
    Q_OBJECT&lt;br /&gt;
&lt;br /&gt;
public:&lt;br /&gt;
    explicit FinCalibration(QWidget *parent = 0);&lt;br /&gt;
    ~FinCalibration();&lt;br /&gt;
&lt;br /&gt;
private slots:&lt;br /&gt;
    void on_pushButton_clicked();&lt;br /&gt;
&lt;br /&gt;
private:&lt;br /&gt;
    Ui::FinCalibration *ui;&lt;br /&gt;
&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
#endif // FINCALIBRATION_H&lt;br /&gt;
&lt;br /&gt;
Fincalibration.cpp&lt;br /&gt;
&lt;br /&gt;
#include &amp;quot;fincalibration.h&amp;quot;&lt;br /&gt;
#include &amp;quot;ui_fincalibration.h&amp;quot;&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;QMessageBox&amp;gt;&lt;br /&gt;
&lt;br /&gt;
FinCalibration::FinCalibration(QWidget *parent) :&lt;br /&gt;
    QDialog(parent),&lt;br /&gt;
    ui(new Ui::FinCalibration)&lt;br /&gt;
{&lt;br /&gt;
    ui-&amp;gt;setupUi(this);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
FinCalibration::~FinCalibration()&lt;br /&gt;
{&lt;br /&gt;
    delete ui;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void FinCalibration::on_pushButton_clicked()&lt;br /&gt;
{&lt;br /&gt;
      QCoreApplication::quit();&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;br\&amp;gt;&lt;br /&gt;
Pour le bouton ‘annuler’ qui est présent dans toutes les fenêtres, quand on appui dessus, il demande à l’utilisateur s’il veut vraiment quitter la calibration en lui proposant deux boutons « Yes » et « No ». Le bouton « no » permet de revenir à la fenêtre précédente et le bouton « yes » permet de quitter l’application.&amp;lt;br\&amp;gt;&lt;br /&gt;
[[Fichier:Annuler.PNG]]&lt;/div&gt;</summary>
		<author><name>Zassaieb</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=Out_of_Space&amp;diff=12064</id>
		<title>Out of Space</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=Out_of_Space&amp;diff=12064"/>
				<updated>2014-04-15T19:23:01Z</updated>
		
		<summary type="html">&lt;p&gt;Zassaieb : /* Utilisation de QT */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Généralités sur le projet ==&lt;br /&gt;
&lt;br /&gt;
=== Contexte ===&lt;br /&gt;
&lt;br /&gt;
Ce projet met en collaboration une artiste et une société de production de jeu vidéo 3D, et vise à mettre en place une application interactive utilisant une classe de dispositifs d'interaction orienté &amp;quot;maquette holographique&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=== Descriptif ===&lt;br /&gt;
&lt;br /&gt;
Le projet vise à réaliser une application interactive sur un affichage stéréoscopique, et qui consiste à piloter un objet (une bille) dans un certain environnement, tout en déroulant l’évolution de cet environnement sur une vidéo de fond. Le mouvement de cet objet est contrôlé par les gestes des mains qui sont détectées par une Kinect et traduits sur un écran 3D.&lt;br /&gt;
&lt;br /&gt;
=== Problématique ===&lt;br /&gt;
&lt;br /&gt;
La problématique qui se pose est de pouvoir prendre aussi en compte la tête de l’utilisateur sur l’espace d’acquisition afin d’avoir les données sur l’angle de vision et donc d’orienter l’affichage 3D sur l’écran selon sa position, ainsi le mouvement de la tête impliquera l’inclinaison des objets affichés dans un sens ou dans l’autre.&lt;br /&gt;
&lt;br /&gt;
== == &lt;br /&gt;
&lt;br /&gt;
=== Cahier des charges ===&lt;br /&gt;
{{Petit|''Le cahier des charges ne peut être réalisé pour l'instant car notre projet est une continuité d'un projet réalisé actuellement par des élèves en IMA5, et les tâches qui nous seront affectées vont dépendre de leur avancement. La phase de transition sera faite quelques jours avant leur soutenance. Cependant, nous avons commencé par nous familiariser aux outils à utiliser''}}&amp;lt;br\&amp;gt;&amp;lt;br\&amp;gt;&lt;br /&gt;
-&amp;gt;  Mise en place d’un outil de Calibration pour calibrer et mettre en place la scène 3D selon la position de l’utilisateur, pour l’utilisation par un non informaticien.&lt;br /&gt;
&lt;br /&gt;
=== Les outils matériels/logiciels utilisés ===&lt;br /&gt;
&lt;br /&gt;
* Kinect, le périphérique de reconnaissance de mouvement&amp;lt;br/&amp;gt;&lt;br /&gt;
* Ecran Stereoscopique pour l'affichage 3D&amp;lt;br/&amp;gt;&lt;br /&gt;
* 3Gear possède une technologie qui permet, à partir des caméras 3D de la Kinect, de reconstruire une représentation précise des doigts et de ce que les mains font, en prenant les données 3D brutes et les transformant en informations utilisables sur l'état des mains. Les interfaces de programmation sont basées sur le pointage et le pincement et fournissent les angles des articulations approximatives, elles sont disponibles en C ++, C # et Java&amp;lt;br/&amp;gt;&lt;br /&gt;
* Unity 3D est un logiciel middleware de création de contenu interactif comportant de la vidéo et des objets 3D/2D. Il permet de créer des scènes supportant des éclairages, des terrains, des caméras, des textures ... . L’intérêt de ce logiciel est que celui-ci dispose d’une interface intuitive d’intégration d’objets et de scripts ; l’éditeur d’Unity intègre des composants pré-configurés évitant le développement de code fastidieux.&lt;br /&gt;
* QT&lt;br /&gt;
&lt;br /&gt;
== Travail réalisé ==&lt;br /&gt;
===Semaine 03/02 – 07/02===&lt;br /&gt;
* Entretien avec Mr Laurent Grisonni pour comprendre le projet&lt;br /&gt;
* Etablissement d’un cahier de charge global en attente de précisions après la soutenance des IMA5&lt;br /&gt;
* Spécifications des outils et matériels utilisés&lt;br /&gt;
===Semaine 10/02 - 14/02===&lt;br /&gt;
* Rencontre avec les étudiants qui travaillent déjà sur le sujet&lt;br /&gt;
* Compréhension du travail réalisé&lt;br /&gt;
* Suggestion d’éventuelles améliorations&lt;br /&gt;
===Semaine 17/02 - 21/02===&lt;br /&gt;
* Prise en main de l’outil Unity à l’aide de quelques Tutoriels pour la création de scènes 3D&lt;br /&gt;
* Compréhension et analyse de la librairie 3gear de détection de geste via la Kinect&lt;br /&gt;
===Semaine 03/03 – 07/03===&lt;br /&gt;
* Spécification du besoin : Mise en place d’un outil de Calibration pour calibrer mettre en place la scène 3D selon la position de l’utilisateur, pour l’utilisation par un non informaticien.&lt;br /&gt;
===Semaine 12/03 – 14/03===&lt;br /&gt;
* Installation à l’IRCICA, remise des clefs et badges de la salle de travail, récupération du SVN du projet.&lt;br /&gt;
* Rencontre de plusieurs problèmes dont :&lt;br /&gt;
o	Pas de licence Windows sur le poste fourni &amp;lt;br/&amp;gt;&lt;br /&gt;
o	Problèmes de réseau et d’accès internet pour l’extraction du SVN&lt;br /&gt;
&lt;br /&gt;
===Semaine 24/03 – 28/03===&lt;br /&gt;
* Installation du logiciel Unity&lt;br /&gt;
* Impossibilité d’installer les logiciels de programmation pour la librairie 3gear: Processeur incompatible&lt;br /&gt;
* Premiers tests du programme existant, incomplets par manque d’outils.&lt;br /&gt;
* Ajustements de la  scène Unity à la taille de l’écran Stéréoscopique&lt;br /&gt;
&lt;br /&gt;
===Semaine 31/03 – 04/04===&lt;br /&gt;
''Outil de calibration'' : Cet outil est censé permettre à l’artiste ou n’importe quel autre utilisateur non information de pouvoir ajuster les réglages et le calibrage des Kinects par rapport à l’écran stéréoscopique sans avoir à modifier les lignes de code de l’application. &lt;br /&gt;
&lt;br /&gt;
''Calibrage'' : Afin de réaliser le calibrage de la Kinect, il faut d’abord lancer les programmes d’installation de la librairie 3gear de  la Kinect (nimble_calib et nimble_server, ces applications sont fournies avec le kit de la librairie), il faut ensuite lancer l’application Kinect_MSFT_Calibration. Cette application a été déjà développée pour ce projet et qui consiste en l’affichage de l’image reçue par la Kinect afin de sélectionner dessus les points des 4 coins de l’écran stéréoscopique (l’écran étant visible sur l’image), l’application enregistre alors ces coordonnées dans un fichier texte, et donc, ces coordonnées doivent être repris et mis dans un autre fichier texte en effectuant quelques modifications dessus. Ce dernier est celui qui est utilisé par l’application d’affichage de la scène 3D sur l’écran 3D, et qui utilise ces points pour régler l’affichage. &lt;br /&gt;
&lt;br /&gt;
* Prise en main de l’outil de développement d’interfaces graphiques QT&lt;br /&gt;
* Première ébauche de la gestion des fenêtres de l’interface graphique à développer.&lt;br /&gt;
* Problème rencontré : l’outil est bloqué quand on affecte à un bouton le passage à une deuxième fenêtre et l’exécution d’une application en même temps.&lt;br /&gt;
* Réalisation d’un programme C permettant le transfert des coordonnées du fichier source au fichier de destination.&lt;br /&gt;
&lt;br /&gt;
===Semaine 07/04 – 11/04===&lt;br /&gt;
* Test du programme de transfert de données sur l’outil et son implémentation&lt;br /&gt;
* Finalisation de l’interface graphique, en résolvant le problème rencontré.&lt;br /&gt;
* L’outil réalise bien la tâche demandée.&lt;br /&gt;
&lt;br /&gt;
==Utilisation de Unity==&lt;br /&gt;
&lt;br /&gt;
Au tout début, il fallait ajuster la scène à la taille de l’écran stéréoscopique  sous Unity. La scène se présente comme suit :&amp;lt;br\&amp;gt;&lt;br /&gt;
[[Fichier:Unity1.png]]&lt;br /&gt;
La scène était perpendiculaire à l’écran stéréoscopique. Il fallait l’ajuster de façon à ce qu’on est un ‘ground’ (qui correspond à l’écran stéréoscopique) qui soit parallèle à la scène et aillant les mêmes dimensions de cette dernière afin qu’il n’y ait pas de dépassement de bord.  &lt;br /&gt;
A travers plusieurs manipulations sous Unity, nous sommes arrivés au résultat suivant :&amp;lt;br\&amp;gt;&lt;br /&gt;
[[Fichier:Unity2.png]]&lt;br /&gt;
&lt;br /&gt;
==Utilisation de QT==&lt;br /&gt;
Dans cette partie, nous avons utilisé le logiciel de développement d’interface graphique QT qui est un API orientée objet et développé en C++ par QT development Frameworks. QT offre des composants d’interface graphiques (widgets), d’accès aux données, de connexions réseaux, de gestion des fils d’exécution, d’analyse XML, etc. &amp;lt;br\&amp;gt;&amp;lt;br\&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nous avons développé une interface graphique qui va permettre à un non informaticien de calibrer les Kinects de l’installation sans devoir modifier dans le code. Tout d’abord, nous avons commencé à nous familiariser au logiciel QT et à son environnement à travers plusieurs tutoriels, ce qui nous a aidés tout au long de notre projet afin de réaliser notre interface. &amp;lt;br\&amp;gt;&lt;br /&gt;
L’interface graphique de calibration comporte 3 fenêtres. On peut se déplacer d’une fenêtre à l’autre grâce à des boutons &amp;lt;br\&amp;gt;&amp;lt;br\&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
La première fenêtre est la fenêtre typique de chaque installation, qui demande à l’utilisateur s’il veut calibrer sa Kinect ou bien c’est juste qu’il s’est trompé d’application et qu’il voudrait annuler. &amp;lt;br\&amp;gt;&amp;lt;br\&amp;gt;&lt;br /&gt;
[[Fichier:Mainwindow.PNG]] &amp;lt;br\&amp;gt;&lt;br /&gt;
Vous trouverez dans la suite le code MainWindow.h et MainWindow.cpp de la fenêtre.&amp;lt;br\&amp;gt;&lt;br /&gt;
&lt;br /&gt;
MainWindow.h&lt;br /&gt;
#ifndef MAINWINDOW_H&lt;br /&gt;
#define MAINWINDOW_H&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;QMainWindow&amp;gt;&lt;br /&gt;
#include &amp;lt;QApplication&amp;gt;&lt;br /&gt;
#include &amp;lt;QProcess&amp;gt;&lt;br /&gt;
#include &amp;lt;QtGui&amp;gt;&lt;br /&gt;
#include &amp;quot;calibsetup.h&amp;quot;&lt;br /&gt;
&lt;br /&gt;
namespace Ui {&lt;br /&gt;
class MainWindow;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
class MainWindow : public QMainWindow&lt;br /&gt;
{&lt;br /&gt;
    Q_OBJECT&lt;br /&gt;
&lt;br /&gt;
public:&lt;br /&gt;
    explicit MainWindow(QWidget *parent = 0);&lt;br /&gt;
    ~MainWindow();&lt;br /&gt;
&lt;br /&gt;
private slots:&lt;br /&gt;
&lt;br /&gt;
    void on_pushButton_clicked();&lt;br /&gt;
&lt;br /&gt;
    void on_pushButton_2_clicked();&lt;br /&gt;
&lt;br /&gt;
    void on_pushButton_3_clicked();&lt;br /&gt;
&lt;br /&gt;
private:&lt;br /&gt;
    Ui::MainWindow *ui;&lt;br /&gt;
    calib *calibsetup;&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#endif // MAINWINDOW_H&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
MainWindow.cpp :&lt;br /&gt;
#include &amp;quot;mainwindow.h&amp;quot;&lt;br /&gt;
#include &amp;quot;ui_mainwindow.h&amp;quot;&lt;br /&gt;
#include &amp;quot;calibsetup.h&amp;quot;&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;QFileDialog&amp;gt;&lt;br /&gt;
#include &amp;lt;QMessageBox&amp;gt;&lt;br /&gt;
#include &amp;lt;QDesktopServices&amp;gt;&lt;br /&gt;
#include &amp;lt;QUrl&amp;gt;&lt;br /&gt;
#include &amp;lt;QApplication&amp;gt;&lt;br /&gt;
#include &amp;lt;QDebug&amp;gt;&lt;br /&gt;
#include &amp;lt;QObject&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
MainWindow::MainWindow(QWidget *parent) :&lt;br /&gt;
    QMainWindow(parent),&lt;br /&gt;
    ui(new Ui::MainWindow)&lt;br /&gt;
{&lt;br /&gt;
    ui-&amp;gt;setupUi(this);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
MainWindow::~MainWindow()&lt;br /&gt;
{&lt;br /&gt;
    delete ui;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void MainWindow::on_pushButton_clicked()&lt;br /&gt;
{&lt;br /&gt;
    calibsetup = new calib;&lt;br /&gt;
    calibsetup-&amp;gt;show();&lt;br /&gt;
    this-&amp;gt;hide();&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
void MainWindow::on_pushButton_2_clicked()&lt;br /&gt;
{&lt;br /&gt;
   //QMessageBox::information(this,&amp;quot;QUIT&amp;quot;,&amp;quot;Voulez-vous quitter l'application ?&amp;quot;,&amp;quot;Non&amp;quot;,&amp;quot;Oui&amp;quot;);&lt;br /&gt;
    QMessageBox msgBox;&lt;br /&gt;
      msgBox.setWindowTitle(&amp;quot;Exit setup&amp;quot;);&lt;br /&gt;
      msgBox.addButton(QMessageBox::Yes);&lt;br /&gt;
      msgBox.addButton(QMessageBox::No);&lt;br /&gt;
      msgBox.setText(&amp;quot;Voulez-vous vraiment quitter la calibration ?&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
      int selection = msgBox.exec();&lt;br /&gt;
      if(selection == QMessageBox::Yes)&lt;br /&gt;
      {&lt;br /&gt;
        QCoreApplication::quit();&lt;br /&gt;
      }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;br\&amp;gt;&amp;lt;br\&amp;gt;&lt;br /&gt;
Le bouton ‘suivant’ permet de continuer l’installation et ainsi de passer à la deuxième fenêtre où on a listé les différentes étapes nécessaires pour la calibration. La calibration se fait via l’application ‘KinectMSFTCalibration’. Pour lancer cette dernière, l’utilisateur a besoin de cliquer sur le bouton ‘commencer’ qui permet d’afficher la vue de la Kinect qui est dirigé vers l’écran stéréoscopique. On pourra par la suite définir les points en cliquant sur F2 puis sur les bords de l’écran en commençant par le bas de l’écran à gauche puis à droite ensuite en haut à droite puis à gauche dans le sens antihoraire. Quand on place les 4 points au bord de l’écran, on définit le plan de définition. F3 nous permet de sauvegarder les coordonnées des points saisie dans un fichier .txt. Quand on clique sur le bouton 'suivant', on exécute un programme qui nous permet de copier ces coordonnées vers un notre fichier texte. Pour pouvoir revenir à la fenêtre calibsetup, il suffit de fermer l’application. &amp;lt;br\&amp;gt;&amp;lt;br\&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Setupcalibration.PNG]]&amp;lt;br\&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La fenêtre qui permet la calibration est la suivante :&amp;lt;br\&amp;gt;&lt;br /&gt;
[[Fichier:Kinect.PNG]]&amp;lt;br\&amp;gt;&lt;br /&gt;
Comme vous l'avez remarqué, on a 3 points au bord de l'écran intitulé dans l'ordre BL - BR - TR - TL&amp;lt;br\&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Voici le .h et .cpp de cette fenêtre :&lt;br /&gt;
&lt;br /&gt;
Calibsetup.h :&lt;br /&gt;
&lt;br /&gt;
#ifndef CALIB_H&lt;br /&gt;
#define CALIB_H&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;QDialog&amp;gt;&lt;br /&gt;
#include &amp;quot;fincalibration.h&amp;quot;&lt;br /&gt;
&lt;br /&gt;
namespace Ui {&lt;br /&gt;
class calib;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
class calib : public QDialog&lt;br /&gt;
{&lt;br /&gt;
    Q_OBJECT&lt;br /&gt;
&lt;br /&gt;
public:&lt;br /&gt;
    explicit calib(QWidget *parent = 0);&lt;br /&gt;
    ~calib();&lt;br /&gt;
&lt;br /&gt;
private slots:&lt;br /&gt;
    void on_pushButton_clicked();&lt;br /&gt;
&lt;br /&gt;
    void on_pushButton_2_clicked();&lt;br /&gt;
&lt;br /&gt;
    void on_pushButton_3_clicked();&lt;br /&gt;
&lt;br /&gt;
private:&lt;br /&gt;
    Ui::calib *ui;&lt;br /&gt;
    FinCalibration *fincalib ;&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
#endif // CALIB_H&lt;br /&gt;
&lt;br /&gt;
Calibsetup.cpp :&lt;br /&gt;
&lt;br /&gt;
#include &amp;quot;calibsetup.h&amp;quot;&lt;br /&gt;
#include &amp;quot;ui_calibsetup.h&amp;quot;&lt;br /&gt;
#include &amp;quot;fincalibration.h&amp;quot;&lt;br /&gt;
#include &amp;lt;QMessageBox&amp;gt;&lt;br /&gt;
&lt;br /&gt;
calib::calib(QWidget *parent) :&lt;br /&gt;
    QDialog(parent),&lt;br /&gt;
    ui(new Ui::calib)&lt;br /&gt;
{&lt;br /&gt;
    ui-&amp;gt;setupUi(this);&lt;br /&gt;
}&lt;br /&gt;
calib::~calib()&lt;br /&gt;
{&lt;br /&gt;
    delete ui;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void calib::on_pushButton_clicked()&lt;br /&gt;
{&lt;br /&gt;
    system(&amp;quot;C:/Users/Demo.ALCOVE-HP-MINT4/Desktop/OOS/nimble_calib.bat&amp;quot;);&lt;br /&gt;
    system(&amp;quot;C:/Users/Demo.ALCOVE-HP-MINT4/Desktop/OOS/nimble_server.bat&amp;quot;);&lt;br /&gt;
    system(&amp;quot;C:/Users/Demo.ALCOVE-HP-MINT4/Desktop/OOS/tool/KinectMSFTCalibration.exe&amp;quot;);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void calib::on_pushButton_2_clicked()&lt;br /&gt;
{&lt;br /&gt;
        fincalib = new FinCalibration;&lt;br /&gt;
        fincalib-&amp;gt;show();&lt;br /&gt;
        this-&amp;gt;hide();&lt;br /&gt;
        system(&amp;quot;C:/Users/Demo.ALCOVE-HP-MINT4/Desktop/OOS/Transfert_Points.exe&amp;quot;)&lt;br /&gt;
;}&lt;br /&gt;
&lt;br /&gt;
void calib::on_pushButton_3_clicked()&lt;br /&gt;
{&lt;br /&gt;
    QMessageBox msgBox;&lt;br /&gt;
      msgBox.setWindowTitle(&amp;quot;Calibration setup&amp;quot;);&lt;br /&gt;
      msgBox.addButton(QMessageBox::Yes);&lt;br /&gt;
      msgBox.addButton(QMessageBox::No);&lt;br /&gt;
      msgBox.setText(&amp;quot;Voulez-vous vraiment quitter la calibration ?&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
      int selection = msgBox.exec();&lt;br /&gt;
      if(selection == QMessageBox::Yes)&lt;br /&gt;
      {&lt;br /&gt;
        QCoreApplication::quit();&lt;br /&gt;
      }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;br\&amp;gt;&amp;lt;br\&amp;gt;&lt;br /&gt;
En ce qui concerne la 3éme fenêtre, elle permet juste de dire à l’utilisateur que la calibration a été bien faite et que les points ont bien été enregistrés dans le fichier texte puis copier dans le deuxième fichier texte. Voici un imprime écran de la fenêtre :&amp;lt;br\&amp;gt;&lt;br /&gt;
[[Fichier:Fin.PNG]]&amp;lt;br\&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Voici le code .h et .cpp de cette 3éme fenêtre :&amp;lt;br\&amp;gt; &lt;br /&gt;
Fincalibration.h&lt;br /&gt;
#ifndef FINCALIBRATION_H&lt;br /&gt;
#define FINCALIBRATION_H&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;QDialog&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
namespace Ui {&lt;br /&gt;
class FinCalibration;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
class FinCalibration : public QDialog&lt;br /&gt;
{&lt;br /&gt;
    Q_OBJECT&lt;br /&gt;
&lt;br /&gt;
public:&lt;br /&gt;
    explicit FinCalibration(QWidget *parent = 0);&lt;br /&gt;
    ~FinCalibration();&lt;br /&gt;
&lt;br /&gt;
private slots:&lt;br /&gt;
    void on_pushButton_clicked();&lt;br /&gt;
&lt;br /&gt;
private:&lt;br /&gt;
    Ui::FinCalibration *ui;&lt;br /&gt;
&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
#endif // FINCALIBRATION_H&lt;br /&gt;
&lt;br /&gt;
Fincalibration.cpp&lt;br /&gt;
&lt;br /&gt;
#include &amp;quot;fincalibration.h&amp;quot;&lt;br /&gt;
#include &amp;quot;ui_fincalibration.h&amp;quot;&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;QMessageBox&amp;gt;&lt;br /&gt;
&lt;br /&gt;
FinCalibration::FinCalibration(QWidget *parent) :&lt;br /&gt;
    QDialog(parent),&lt;br /&gt;
    ui(new Ui::FinCalibration)&lt;br /&gt;
{&lt;br /&gt;
    ui-&amp;gt;setupUi(this);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
FinCalibration::~FinCalibration()&lt;br /&gt;
{&lt;br /&gt;
    delete ui;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void FinCalibration::on_pushButton_clicked()&lt;br /&gt;
{&lt;br /&gt;
      QCoreApplication::quit();&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;br\&amp;gt;&lt;br /&gt;
Pour le bouton ‘annuler’ qui est présent dans toutes les fenêtres, quand on appui dessus, il demande à l’utilisateur s’il veut vraiment quitter la calibration en lui proposant deux boutons « Yes » et « No ». Le bouton « no » permet de revenir à la fenêtre précédente et le bouton « yes » permet de quitter l’application.&amp;lt;br\&amp;gt;&lt;br /&gt;
[[Fichier:Annuler.PNG]]&lt;/div&gt;</summary>
		<author><name>Zassaieb</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=Out_of_Space&amp;diff=12061</id>
		<title>Out of Space</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=Out_of_Space&amp;diff=12061"/>
				<updated>2014-04-15T19:20:11Z</updated>
		
		<summary type="html">&lt;p&gt;Zassaieb : /* Utilisation de Unity */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Généralités sur le projet ==&lt;br /&gt;
&lt;br /&gt;
=== Contexte ===&lt;br /&gt;
&lt;br /&gt;
Ce projet met en collaboration une artiste et une société de production de jeu vidéo 3D, et vise à mettre en place une application interactive utilisant une classe de dispositifs d'interaction orienté &amp;quot;maquette holographique&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=== Descriptif ===&lt;br /&gt;
&lt;br /&gt;
Le projet vise à réaliser une application interactive sur un affichage stéréoscopique, et qui consiste à piloter un objet (une bille) dans un certain environnement, tout en déroulant l’évolution de cet environnement sur une vidéo de fond. Le mouvement de cet objet est contrôlé par les gestes des mains qui sont détectées par une Kinect et traduits sur un écran 3D.&lt;br /&gt;
&lt;br /&gt;
=== Problématique ===&lt;br /&gt;
&lt;br /&gt;
La problématique qui se pose est de pouvoir prendre aussi en compte la tête de l’utilisateur sur l’espace d’acquisition afin d’avoir les données sur l’angle de vision et donc d’orienter l’affichage 3D sur l’écran selon sa position, ainsi le mouvement de la tête impliquera l’inclinaison des objets affichés dans un sens ou dans l’autre.&lt;br /&gt;
&lt;br /&gt;
== == &lt;br /&gt;
&lt;br /&gt;
=== Cahier des charges ===&lt;br /&gt;
{{Petit|''Le cahier des charges ne peut être réalisé pour l'instant car notre projet est une continuité d'un projet réalisé actuellement par des élèves en IMA5, et les tâches qui nous seront affectées vont dépendre de leur avancement. La phase de transition sera faite quelques jours avant leur soutenance. Cependant, nous avons commencé par nous familiariser aux outils à utiliser''}}&amp;lt;br\&amp;gt;&amp;lt;br\&amp;gt;&lt;br /&gt;
-&amp;gt;  Mise en place d’un outil de Calibration pour calibrer et mettre en place la scène 3D selon la position de l’utilisateur, pour l’utilisation par un non informaticien.&lt;br /&gt;
&lt;br /&gt;
=== Les outils matériels/logiciels utilisés ===&lt;br /&gt;
&lt;br /&gt;
* Kinect, le périphérique de reconnaissance de mouvement&amp;lt;br/&amp;gt;&lt;br /&gt;
* Ecran Stereoscopique pour l'affichage 3D&amp;lt;br/&amp;gt;&lt;br /&gt;
* 3Gear possède une technologie qui permet, à partir des caméras 3D de la Kinect, de reconstruire une représentation précise des doigts et de ce que les mains font, en prenant les données 3D brutes et les transformant en informations utilisables sur l'état des mains. Les interfaces de programmation sont basées sur le pointage et le pincement et fournissent les angles des articulations approximatives, elles sont disponibles en C ++, C # et Java&amp;lt;br/&amp;gt;&lt;br /&gt;
* Unity 3D est un logiciel middleware de création de contenu interactif comportant de la vidéo et des objets 3D/2D. Il permet de créer des scènes supportant des éclairages, des terrains, des caméras, des textures ... . L’intérêt de ce logiciel est que celui-ci dispose d’une interface intuitive d’intégration d’objets et de scripts ; l’éditeur d’Unity intègre des composants pré-configurés évitant le développement de code fastidieux.&lt;br /&gt;
* QT&lt;br /&gt;
&lt;br /&gt;
== Travail réalisé ==&lt;br /&gt;
===Semaine 03/02 – 07/02===&lt;br /&gt;
* Entretien avec Mr Laurent Grisonni pour comprendre le projet&lt;br /&gt;
* Etablissement d’un cahier de charge global en attente de précisions après la soutenance des IMA5&lt;br /&gt;
* Spécifications des outils et matériels utilisés&lt;br /&gt;
===Semaine 10/02 - 14/02===&lt;br /&gt;
* Rencontre avec les étudiants qui travaillent déjà sur le sujet&lt;br /&gt;
* Compréhension du travail réalisé&lt;br /&gt;
* Suggestion d’éventuelles améliorations&lt;br /&gt;
===Semaine 17/02 - 21/02===&lt;br /&gt;
* Prise en main de l’outil Unity à l’aide de quelques Tutoriels pour la création de scènes 3D&lt;br /&gt;
* Compréhension et analyse de la librairie 3gear de détection de geste via la Kinect&lt;br /&gt;
===Semaine 03/03 – 07/03===&lt;br /&gt;
* Spécification du besoin : Mise en place d’un outil de Calibration pour calibrer mettre en place la scène 3D selon la position de l’utilisateur, pour l’utilisation par un non informaticien.&lt;br /&gt;
===Semaine 12/03 – 14/03===&lt;br /&gt;
* Installation à l’IRCICA, remise des clefs et badges de la salle de travail, récupération du SVN du projet.&lt;br /&gt;
* Rencontre de plusieurs problèmes dont :&lt;br /&gt;
o	Pas de licence Windows sur le poste fourni &amp;lt;br/&amp;gt;&lt;br /&gt;
o	Problèmes de réseau et d’accès internet pour l’extraction du SVN&lt;br /&gt;
&lt;br /&gt;
===Semaine 24/03 – 28/03===&lt;br /&gt;
* Installation du logiciel Unity&lt;br /&gt;
* Impossibilité d’installer les logiciels de programmation pour la librairie 3gear: Processeur incompatible&lt;br /&gt;
* Premiers tests du programme existant, incomplets par manque d’outils.&lt;br /&gt;
* Ajustements de la  scène Unity à la taille de l’écran Stéréoscopique&lt;br /&gt;
&lt;br /&gt;
===Semaine 31/03 – 04/04===&lt;br /&gt;
''Outil de calibration'' : Cet outil est censé permettre à l’artiste ou n’importe quel autre utilisateur non information de pouvoir ajuster les réglages et le calibrage des Kinects par rapport à l’écran stéréoscopique sans avoir à modifier les lignes de code de l’application. &lt;br /&gt;
&lt;br /&gt;
''Calibrage'' : Afin de réaliser le calibrage de la Kinect, il faut d’abord lancer les programmes d’installation de la librairie 3gear de  la Kinect (nimble_calib et nimble_server, ces applications sont fournies avec le kit de la librairie), il faut ensuite lancer l’application Kinect_MSFT_Calibration. Cette application a été déjà développée pour ce projet et qui consiste en l’affichage de l’image reçue par la Kinect afin de sélectionner dessus les points des 4 coins de l’écran stéréoscopique (l’écran étant visible sur l’image), l’application enregistre alors ces coordonnées dans un fichier texte, et donc, ces coordonnées doivent être repris et mis dans un autre fichier texte en effectuant quelques modifications dessus. Ce dernier est celui qui est utilisé par l’application d’affichage de la scène 3D sur l’écran 3D, et qui utilise ces points pour régler l’affichage. &lt;br /&gt;
&lt;br /&gt;
* Prise en main de l’outil de développement d’interfaces graphiques QT&lt;br /&gt;
* Première ébauche de la gestion des fenêtres de l’interface graphique à développer.&lt;br /&gt;
* Problème rencontré : l’outil est bloqué quand on affecte à un bouton le passage à une deuxième fenêtre et l’exécution d’une application en même temps.&lt;br /&gt;
* Réalisation d’un programme C permettant le transfert des coordonnées du fichier source au fichier de destination.&lt;br /&gt;
&lt;br /&gt;
===Semaine 07/04 – 11/04===&lt;br /&gt;
* Test du programme de transfert de données sur l’outil et son implémentation&lt;br /&gt;
* Finalisation de l’interface graphique, en résolvant le problème rencontré.&lt;br /&gt;
* L’outil réalise bien la tâche demandée.&lt;br /&gt;
&lt;br /&gt;
==Utilisation de Unity==&lt;br /&gt;
&lt;br /&gt;
Au tout début, il fallait ajuster la scène à la taille de l’écran stéréoscopique  sous Unity. La scène se présente comme suit :&amp;lt;br\&amp;gt;&lt;br /&gt;
[[Fichier:Unity1.png]]&lt;br /&gt;
La scène était perpendiculaire à l’écran stéréoscopique. Il fallait l’ajuster de façon à ce qu’on est un ‘ground’ (qui correspond à l’écran stéréoscopique) qui soit parallèle à la scène et aillant les mêmes dimensions de cette dernière afin qu’il n’y ait pas de dépassement de bord.  &lt;br /&gt;
A travers plusieurs manipulations sous Unity, nous sommes arrivés au résultat suivant :&amp;lt;br\&amp;gt;&lt;br /&gt;
[[Fichier:Unity2.png]]&lt;br /&gt;
&lt;br /&gt;
==Utilisation de QT==&lt;br /&gt;
Dans cette partie, nous avons utilisé le logiciel de développement d’interface graphique QT qui est un API orientée objet et développé en C++ par QT development Frameworks. QT offre des composants d’interface graphiques (widgets), d’accès aux données, de connexions réseaux, de gestion des fils d’exécution, d’analyse XML, etc. &lt;br /&gt;
&lt;br /&gt;
Nous avons développé une interface graphique qui va permettre à un non informaticien de calibrer les Kinect de l’installation sans devoir modifier dans le code. Tout d’abord, nous avons commencé à nous familiariser au logiciel QT et à son environnement à travers plusieurs tutoriels, ce qui nous a aidés tout au long de notre projet afin de réaliser notre interface. &lt;br /&gt;
L’interface graphique de calibration comporte 3 fenêtres. On peut se déplacer d’une fenêtre à l’autre grâce à des boutons &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
La première fenêtre est la fenêtre typique de chaque installation, qui demande à l’utilisateur s’il veut calibrer sa Kinect ou bien c’est juste qu’il s’est trompé d’application et qu’il voudrait annuler. &lt;br /&gt;
[[Fichier:Mainwindow.PNG]] &lt;br /&gt;
Vous trouverez dans la suite le code MainWindow.h et MainWindow.cpp de la fenêtre.&lt;br /&gt;
&lt;br /&gt;
MainWindow.h&lt;br /&gt;
#ifndef MAINWINDOW_H&lt;br /&gt;
#define MAINWINDOW_H&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;QMainWindow&amp;gt;&lt;br /&gt;
#include &amp;lt;QApplication&amp;gt;&lt;br /&gt;
#include &amp;lt;QProcess&amp;gt;&lt;br /&gt;
#include &amp;lt;QtGui&amp;gt;&lt;br /&gt;
#include &amp;quot;calibsetup.h&amp;quot;&lt;br /&gt;
&lt;br /&gt;
namespace Ui {&lt;br /&gt;
class MainWindow;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
class MainWindow : public QMainWindow&lt;br /&gt;
{&lt;br /&gt;
    Q_OBJECT&lt;br /&gt;
&lt;br /&gt;
public:&lt;br /&gt;
    explicit MainWindow(QWidget *parent = 0);&lt;br /&gt;
    ~MainWindow();&lt;br /&gt;
&lt;br /&gt;
private slots:&lt;br /&gt;
&lt;br /&gt;
    void on_pushButton_clicked();&lt;br /&gt;
&lt;br /&gt;
    void on_pushButton_2_clicked();&lt;br /&gt;
&lt;br /&gt;
    void on_pushButton_3_clicked();&lt;br /&gt;
&lt;br /&gt;
private:&lt;br /&gt;
    Ui::MainWindow *ui;&lt;br /&gt;
    calib *calibsetup;&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#endif // MAINWINDOW_H&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
MainWindow.cpp :&lt;br /&gt;
#include &amp;quot;mainwindow.h&amp;quot;&lt;br /&gt;
#include &amp;quot;ui_mainwindow.h&amp;quot;&lt;br /&gt;
#include &amp;quot;calibsetup.h&amp;quot;&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;QFileDialog&amp;gt;&lt;br /&gt;
#include &amp;lt;QMessageBox&amp;gt;&lt;br /&gt;
#include &amp;lt;QDesktopServices&amp;gt;&lt;br /&gt;
#include &amp;lt;QUrl&amp;gt;&lt;br /&gt;
#include &amp;lt;QApplication&amp;gt;&lt;br /&gt;
#include &amp;lt;QDebug&amp;gt;&lt;br /&gt;
#include &amp;lt;QObject&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
MainWindow::MainWindow(QWidget *parent) :&lt;br /&gt;
    QMainWindow(parent),&lt;br /&gt;
    ui(new Ui::MainWindow)&lt;br /&gt;
{&lt;br /&gt;
    ui-&amp;gt;setupUi(this);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
MainWindow::~MainWindow()&lt;br /&gt;
{&lt;br /&gt;
    delete ui;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void MainWindow::on_pushButton_clicked()&lt;br /&gt;
{&lt;br /&gt;
    calibsetup = new calib;&lt;br /&gt;
    calibsetup-&amp;gt;show();&lt;br /&gt;
    this-&amp;gt;hide();&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
void MainWindow::on_pushButton_2_clicked()&lt;br /&gt;
{&lt;br /&gt;
   //QMessageBox::information(this,&amp;quot;QUIT&amp;quot;,&amp;quot;Voulez-vous quitter l'application ?&amp;quot;,&amp;quot;Non&amp;quot;,&amp;quot;Oui&amp;quot;);&lt;br /&gt;
    QMessageBox msgBox;&lt;br /&gt;
      msgBox.setWindowTitle(&amp;quot;Exit setup&amp;quot;);&lt;br /&gt;
      msgBox.addButton(QMessageBox::Yes);&lt;br /&gt;
      msgBox.addButton(QMessageBox::No);&lt;br /&gt;
      msgBox.setText(&amp;quot;Voulez-vous vraiment quitter la calibration ?&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
      int selection = msgBox.exec();&lt;br /&gt;
      if(selection == QMessageBox::Yes)&lt;br /&gt;
      {&lt;br /&gt;
        QCoreApplication::quit();&lt;br /&gt;
      }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
Le bouton ‘suivant’ permet de continuer l’installation et ainsi de passer à la deuxième fenêtre où on a listé les différentes étapes nécessaires pour la calibration. La calibration se fait via l’application ‘KinectMSFTCalibration’. Pour lancer cette dernière, l’utilisateur a besoin de cliquer sur le bouton ‘commencer’ qui permet d’afficher la vue de la Kinect qui est dirigé vers l’écran stéréoscopique. On pourra par la suite définir les points en cliquant sur F2 puis sur les bords de l’écran en commençant par le bas de l’écran à gauche puis à droite ensuite en haut à droite puis à gauche dans le sens antihoraire. Quand on place les 4 points au bord de l’écran, on définit le plan de définition. F3 nous permet de sauvegarder les coordonnées des points saisie dans un fichier .txt. Quand on clique sur le bouton 'suivant', on exécute un programme qui nous permet de copier ces coordonnées vers un notre fichier texte. Pour pouvoir revenir à la fenêtre calibsetup, il suffit de fermer l’application. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Setupcalibration.PNG]]&lt;br /&gt;
&lt;br /&gt;
La fenêtre qui permet la calibration est la suivante :&lt;br /&gt;
[[Fichier:Kinect.PNG]]&lt;br /&gt;
Comme vous l'avez remarqué, on a 3 points au bord de l'écran intitulé dans l'ordre BL - BR - TR - TL&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Voici le .h et .cpp de cette fenêtre :&lt;br /&gt;
&lt;br /&gt;
Calibsetup.h :&lt;br /&gt;
&lt;br /&gt;
#ifndef CALIB_H&lt;br /&gt;
#define CALIB_H&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;QDialog&amp;gt;&lt;br /&gt;
#include &amp;quot;fincalibration.h&amp;quot;&lt;br /&gt;
&lt;br /&gt;
namespace Ui {&lt;br /&gt;
class calib;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
class calib : public QDialog&lt;br /&gt;
{&lt;br /&gt;
    Q_OBJECT&lt;br /&gt;
&lt;br /&gt;
public:&lt;br /&gt;
    explicit calib(QWidget *parent = 0);&lt;br /&gt;
    ~calib();&lt;br /&gt;
&lt;br /&gt;
private slots:&lt;br /&gt;
    void on_pushButton_clicked();&lt;br /&gt;
&lt;br /&gt;
    void on_pushButton_2_clicked();&lt;br /&gt;
&lt;br /&gt;
    void on_pushButton_3_clicked();&lt;br /&gt;
&lt;br /&gt;
private:&lt;br /&gt;
    Ui::calib *ui;&lt;br /&gt;
    FinCalibration *fincalib ;&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
#endif // CALIB_H&lt;br /&gt;
&lt;br /&gt;
Calibsetup.cpp :&lt;br /&gt;
&lt;br /&gt;
#include &amp;quot;calibsetup.h&amp;quot;&lt;br /&gt;
#include &amp;quot;ui_calibsetup.h&amp;quot;&lt;br /&gt;
#include &amp;quot;fincalibration.h&amp;quot;&lt;br /&gt;
#include &amp;lt;QMessageBox&amp;gt;&lt;br /&gt;
&lt;br /&gt;
calib::calib(QWidget *parent) :&lt;br /&gt;
    QDialog(parent),&lt;br /&gt;
    ui(new Ui::calib)&lt;br /&gt;
{&lt;br /&gt;
    ui-&amp;gt;setupUi(this);&lt;br /&gt;
}&lt;br /&gt;
calib::~calib()&lt;br /&gt;
{&lt;br /&gt;
    delete ui;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void calib::on_pushButton_clicked()&lt;br /&gt;
{&lt;br /&gt;
    system(&amp;quot;C:/Users/Demo.ALCOVE-HP-MINT4/Desktop/OOS/nimble_calib.bat&amp;quot;);&lt;br /&gt;
    system(&amp;quot;C:/Users/Demo.ALCOVE-HP-MINT4/Desktop/OOS/nimble_server.bat&amp;quot;);&lt;br /&gt;
    system(&amp;quot;C:/Users/Demo.ALCOVE-HP-MINT4/Desktop/OOS/tool/KinectMSFTCalibration.exe&amp;quot;);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void calib::on_pushButton_2_clicked()&lt;br /&gt;
{&lt;br /&gt;
        fincalib = new FinCalibration;&lt;br /&gt;
        fincalib-&amp;gt;show();&lt;br /&gt;
        this-&amp;gt;hide();&lt;br /&gt;
        system(&amp;quot;C:/Users/Demo.ALCOVE-HP-MINT4/Desktop/OOS/Transfert_Points.exe&amp;quot;)&lt;br /&gt;
;}&lt;br /&gt;
&lt;br /&gt;
void calib::on_pushButton_3_clicked()&lt;br /&gt;
{&lt;br /&gt;
    QMessageBox msgBox;&lt;br /&gt;
      msgBox.setWindowTitle(&amp;quot;Calibration setup&amp;quot;);&lt;br /&gt;
      msgBox.addButton(QMessageBox::Yes);&lt;br /&gt;
      msgBox.addButton(QMessageBox::No);&lt;br /&gt;
      msgBox.setText(&amp;quot;Voulez-vous vraiment quitter la calibration ?&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
      int selection = msgBox.exec();&lt;br /&gt;
      if(selection == QMessageBox::Yes)&lt;br /&gt;
      {&lt;br /&gt;
        QCoreApplication::quit();&lt;br /&gt;
      }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
En ce qui concerne la 3éme fenêtre, elle permet juste de dire à l’utilisateur que la calibration a été bien faite et que les points ont bien été enregistrés dans le fichier texte puis copier dans le deuxième fichier texte. Voici un imprime écran de la fenêtre :&lt;br /&gt;
[[Fichier:Fin.PNG]]&lt;br /&gt;
&lt;br /&gt;
Voici le code .h et .cpp de cette 3éme fenêtre : &lt;br /&gt;
Fincalibration.h&lt;br /&gt;
#ifndef FINCALIBRATION_H&lt;br /&gt;
#define FINCALIBRATION_H&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;QDialog&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
namespace Ui {&lt;br /&gt;
class FinCalibration;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
class FinCalibration : public QDialog&lt;br /&gt;
{&lt;br /&gt;
    Q_OBJECT&lt;br /&gt;
&lt;br /&gt;
public:&lt;br /&gt;
    explicit FinCalibration(QWidget *parent = 0);&lt;br /&gt;
    ~FinCalibration();&lt;br /&gt;
&lt;br /&gt;
private slots:&lt;br /&gt;
    void on_pushButton_clicked();&lt;br /&gt;
&lt;br /&gt;
private:&lt;br /&gt;
    Ui::FinCalibration *ui;&lt;br /&gt;
&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
#endif // FINCALIBRATION_H&lt;br /&gt;
&lt;br /&gt;
Fincalibration.cpp&lt;br /&gt;
&lt;br /&gt;
#include &amp;quot;fincalibration.h&amp;quot;&lt;br /&gt;
#include &amp;quot;ui_fincalibration.h&amp;quot;&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;QMessageBox&amp;gt;&lt;br /&gt;
&lt;br /&gt;
FinCalibration::FinCalibration(QWidget *parent) :&lt;br /&gt;
    QDialog(parent),&lt;br /&gt;
    ui(new Ui::FinCalibration)&lt;br /&gt;
{&lt;br /&gt;
    ui-&amp;gt;setupUi(this);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
FinCalibration::~FinCalibration()&lt;br /&gt;
{&lt;br /&gt;
    delete ui;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void FinCalibration::on_pushButton_clicked()&lt;br /&gt;
{&lt;br /&gt;
      QCoreApplication::quit();&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
Pour le bouton ‘annuler’ qui est présent dans toutes les fenêtres, quand on appui dessus, il demande à l’utilisateur s’il veut vraiment quitter la calibration en lui proposant deux boutons « Yes » et « No ». Le bouton « no » permet de revenir à la fenêtre précédente et le bouton « yes » permet de quitter l’application.&lt;br /&gt;
[[Fichier:Annuler.PNG]]&lt;/div&gt;</summary>
		<author><name>Zassaieb</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=Out_of_Space&amp;diff=12059</id>
		<title>Out of Space</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=Out_of_Space&amp;diff=12059"/>
				<updated>2014-04-15T19:19:52Z</updated>
		
		<summary type="html">&lt;p&gt;Zassaieb : /* Utilisation de Unity */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Généralités sur le projet ==&lt;br /&gt;
&lt;br /&gt;
=== Contexte ===&lt;br /&gt;
&lt;br /&gt;
Ce projet met en collaboration une artiste et une société de production de jeu vidéo 3D, et vise à mettre en place une application interactive utilisant une classe de dispositifs d'interaction orienté &amp;quot;maquette holographique&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=== Descriptif ===&lt;br /&gt;
&lt;br /&gt;
Le projet vise à réaliser une application interactive sur un affichage stéréoscopique, et qui consiste à piloter un objet (une bille) dans un certain environnement, tout en déroulant l’évolution de cet environnement sur une vidéo de fond. Le mouvement de cet objet est contrôlé par les gestes des mains qui sont détectées par une Kinect et traduits sur un écran 3D.&lt;br /&gt;
&lt;br /&gt;
=== Problématique ===&lt;br /&gt;
&lt;br /&gt;
La problématique qui se pose est de pouvoir prendre aussi en compte la tête de l’utilisateur sur l’espace d’acquisition afin d’avoir les données sur l’angle de vision et donc d’orienter l’affichage 3D sur l’écran selon sa position, ainsi le mouvement de la tête impliquera l’inclinaison des objets affichés dans un sens ou dans l’autre.&lt;br /&gt;
&lt;br /&gt;
== == &lt;br /&gt;
&lt;br /&gt;
=== Cahier des charges ===&lt;br /&gt;
{{Petit|''Le cahier des charges ne peut être réalisé pour l'instant car notre projet est une continuité d'un projet réalisé actuellement par des élèves en IMA5, et les tâches qui nous seront affectées vont dépendre de leur avancement. La phase de transition sera faite quelques jours avant leur soutenance. Cependant, nous avons commencé par nous familiariser aux outils à utiliser''}}&amp;lt;br\&amp;gt;&amp;lt;br\&amp;gt;&lt;br /&gt;
-&amp;gt;  Mise en place d’un outil de Calibration pour calibrer et mettre en place la scène 3D selon la position de l’utilisateur, pour l’utilisation par un non informaticien.&lt;br /&gt;
&lt;br /&gt;
=== Les outils matériels/logiciels utilisés ===&lt;br /&gt;
&lt;br /&gt;
* Kinect, le périphérique de reconnaissance de mouvement&amp;lt;br/&amp;gt;&lt;br /&gt;
* Ecran Stereoscopique pour l'affichage 3D&amp;lt;br/&amp;gt;&lt;br /&gt;
* 3Gear possède une technologie qui permet, à partir des caméras 3D de la Kinect, de reconstruire une représentation précise des doigts et de ce que les mains font, en prenant les données 3D brutes et les transformant en informations utilisables sur l'état des mains. Les interfaces de programmation sont basées sur le pointage et le pincement et fournissent les angles des articulations approximatives, elles sont disponibles en C ++, C # et Java&amp;lt;br/&amp;gt;&lt;br /&gt;
* Unity 3D est un logiciel middleware de création de contenu interactif comportant de la vidéo et des objets 3D/2D. Il permet de créer des scènes supportant des éclairages, des terrains, des caméras, des textures ... . L’intérêt de ce logiciel est que celui-ci dispose d’une interface intuitive d’intégration d’objets et de scripts ; l’éditeur d’Unity intègre des composants pré-configurés évitant le développement de code fastidieux.&lt;br /&gt;
* QT&lt;br /&gt;
&lt;br /&gt;
== Travail réalisé ==&lt;br /&gt;
===Semaine 03/02 – 07/02===&lt;br /&gt;
* Entretien avec Mr Laurent Grisonni pour comprendre le projet&lt;br /&gt;
* Etablissement d’un cahier de charge global en attente de précisions après la soutenance des IMA5&lt;br /&gt;
* Spécifications des outils et matériels utilisés&lt;br /&gt;
===Semaine 10/02 - 14/02===&lt;br /&gt;
* Rencontre avec les étudiants qui travaillent déjà sur le sujet&lt;br /&gt;
* Compréhension du travail réalisé&lt;br /&gt;
* Suggestion d’éventuelles améliorations&lt;br /&gt;
===Semaine 17/02 - 21/02===&lt;br /&gt;
* Prise en main de l’outil Unity à l’aide de quelques Tutoriels pour la création de scènes 3D&lt;br /&gt;
* Compréhension et analyse de la librairie 3gear de détection de geste via la Kinect&lt;br /&gt;
===Semaine 03/03 – 07/03===&lt;br /&gt;
* Spécification du besoin : Mise en place d’un outil de Calibration pour calibrer mettre en place la scène 3D selon la position de l’utilisateur, pour l’utilisation par un non informaticien.&lt;br /&gt;
===Semaine 12/03 – 14/03===&lt;br /&gt;
* Installation à l’IRCICA, remise des clefs et badges de la salle de travail, récupération du SVN du projet.&lt;br /&gt;
* Rencontre de plusieurs problèmes dont :&lt;br /&gt;
o	Pas de licence Windows sur le poste fourni &amp;lt;br/&amp;gt;&lt;br /&gt;
o	Problèmes de réseau et d’accès internet pour l’extraction du SVN&lt;br /&gt;
&lt;br /&gt;
===Semaine 24/03 – 28/03===&lt;br /&gt;
* Installation du logiciel Unity&lt;br /&gt;
* Impossibilité d’installer les logiciels de programmation pour la librairie 3gear: Processeur incompatible&lt;br /&gt;
* Premiers tests du programme existant, incomplets par manque d’outils.&lt;br /&gt;
* Ajustements de la  scène Unity à la taille de l’écran Stéréoscopique&lt;br /&gt;
&lt;br /&gt;
===Semaine 31/03 – 04/04===&lt;br /&gt;
''Outil de calibration'' : Cet outil est censé permettre à l’artiste ou n’importe quel autre utilisateur non information de pouvoir ajuster les réglages et le calibrage des Kinects par rapport à l’écran stéréoscopique sans avoir à modifier les lignes de code de l’application. &lt;br /&gt;
&lt;br /&gt;
''Calibrage'' : Afin de réaliser le calibrage de la Kinect, il faut d’abord lancer les programmes d’installation de la librairie 3gear de  la Kinect (nimble_calib et nimble_server, ces applications sont fournies avec le kit de la librairie), il faut ensuite lancer l’application Kinect_MSFT_Calibration. Cette application a été déjà développée pour ce projet et qui consiste en l’affichage de l’image reçue par la Kinect afin de sélectionner dessus les points des 4 coins de l’écran stéréoscopique (l’écran étant visible sur l’image), l’application enregistre alors ces coordonnées dans un fichier texte, et donc, ces coordonnées doivent être repris et mis dans un autre fichier texte en effectuant quelques modifications dessus. Ce dernier est celui qui est utilisé par l’application d’affichage de la scène 3D sur l’écran 3D, et qui utilise ces points pour régler l’affichage. &lt;br /&gt;
&lt;br /&gt;
* Prise en main de l’outil de développement d’interfaces graphiques QT&lt;br /&gt;
* Première ébauche de la gestion des fenêtres de l’interface graphique à développer.&lt;br /&gt;
* Problème rencontré : l’outil est bloqué quand on affecte à un bouton le passage à une deuxième fenêtre et l’exécution d’une application en même temps.&lt;br /&gt;
* Réalisation d’un programme C permettant le transfert des coordonnées du fichier source au fichier de destination.&lt;br /&gt;
&lt;br /&gt;
===Semaine 07/04 – 11/04===&lt;br /&gt;
* Test du programme de transfert de données sur l’outil et son implémentation&lt;br /&gt;
* Finalisation de l’interface graphique, en résolvant le problème rencontré.&lt;br /&gt;
* L’outil réalise bien la tâche demandée.&lt;br /&gt;
&lt;br /&gt;
==Utilisation de Unity==&lt;br /&gt;
&lt;br /&gt;
Au tout début, il fallait ajuster la scène à la taille de l’écran stéréoscopique  sous Unity. La scène se présente comme suit :&amp;lt;\br&amp;gt;&lt;br /&gt;
[[Fichier:Unity1.png]]&lt;br /&gt;
La scène était perpendiculaire à l’écran stéréoscopique. Il fallait l’ajuster de façon à ce qu’on est un ‘ground’ (qui correspond à l’écran stéréoscopique) qui soit parallèle à la scène et aillant les mêmes dimensions de cette dernière afin qu’il n’y ait pas de dépassement de bord.  &lt;br /&gt;
A travers plusieurs manipulations sous Unity, nous sommes arrivés au résultat suivant :&amp;lt;br\&amp;gt;&lt;br /&gt;
[[Fichier:Unity2.png]]&lt;br /&gt;
&lt;br /&gt;
==Utilisation de QT==&lt;br /&gt;
Dans cette partie, nous avons utilisé le logiciel de développement d’interface graphique QT qui est un API orientée objet et développé en C++ par QT development Frameworks. QT offre des composants d’interface graphiques (widgets), d’accès aux données, de connexions réseaux, de gestion des fils d’exécution, d’analyse XML, etc. &lt;br /&gt;
&lt;br /&gt;
Nous avons développé une interface graphique qui va permettre à un non informaticien de calibrer les Kinect de l’installation sans devoir modifier dans le code. Tout d’abord, nous avons commencé à nous familiariser au logiciel QT et à son environnement à travers plusieurs tutoriels, ce qui nous a aidés tout au long de notre projet afin de réaliser notre interface. &lt;br /&gt;
L’interface graphique de calibration comporte 3 fenêtres. On peut se déplacer d’une fenêtre à l’autre grâce à des boutons &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
La première fenêtre est la fenêtre typique de chaque installation, qui demande à l’utilisateur s’il veut calibrer sa Kinect ou bien c’est juste qu’il s’est trompé d’application et qu’il voudrait annuler. &lt;br /&gt;
[[Fichier:Mainwindow.PNG]] &lt;br /&gt;
Vous trouverez dans la suite le code MainWindow.h et MainWindow.cpp de la fenêtre.&lt;br /&gt;
&lt;br /&gt;
MainWindow.h&lt;br /&gt;
#ifndef MAINWINDOW_H&lt;br /&gt;
#define MAINWINDOW_H&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;QMainWindow&amp;gt;&lt;br /&gt;
#include &amp;lt;QApplication&amp;gt;&lt;br /&gt;
#include &amp;lt;QProcess&amp;gt;&lt;br /&gt;
#include &amp;lt;QtGui&amp;gt;&lt;br /&gt;
#include &amp;quot;calibsetup.h&amp;quot;&lt;br /&gt;
&lt;br /&gt;
namespace Ui {&lt;br /&gt;
class MainWindow;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
class MainWindow : public QMainWindow&lt;br /&gt;
{&lt;br /&gt;
    Q_OBJECT&lt;br /&gt;
&lt;br /&gt;
public:&lt;br /&gt;
    explicit MainWindow(QWidget *parent = 0);&lt;br /&gt;
    ~MainWindow();&lt;br /&gt;
&lt;br /&gt;
private slots:&lt;br /&gt;
&lt;br /&gt;
    void on_pushButton_clicked();&lt;br /&gt;
&lt;br /&gt;
    void on_pushButton_2_clicked();&lt;br /&gt;
&lt;br /&gt;
    void on_pushButton_3_clicked();&lt;br /&gt;
&lt;br /&gt;
private:&lt;br /&gt;
    Ui::MainWindow *ui;&lt;br /&gt;
    calib *calibsetup;&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#endif // MAINWINDOW_H&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
MainWindow.cpp :&lt;br /&gt;
#include &amp;quot;mainwindow.h&amp;quot;&lt;br /&gt;
#include &amp;quot;ui_mainwindow.h&amp;quot;&lt;br /&gt;
#include &amp;quot;calibsetup.h&amp;quot;&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;QFileDialog&amp;gt;&lt;br /&gt;
#include &amp;lt;QMessageBox&amp;gt;&lt;br /&gt;
#include &amp;lt;QDesktopServices&amp;gt;&lt;br /&gt;
#include &amp;lt;QUrl&amp;gt;&lt;br /&gt;
#include &amp;lt;QApplication&amp;gt;&lt;br /&gt;
#include &amp;lt;QDebug&amp;gt;&lt;br /&gt;
#include &amp;lt;QObject&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
MainWindow::MainWindow(QWidget *parent) :&lt;br /&gt;
    QMainWindow(parent),&lt;br /&gt;
    ui(new Ui::MainWindow)&lt;br /&gt;
{&lt;br /&gt;
    ui-&amp;gt;setupUi(this);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
MainWindow::~MainWindow()&lt;br /&gt;
{&lt;br /&gt;
    delete ui;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void MainWindow::on_pushButton_clicked()&lt;br /&gt;
{&lt;br /&gt;
    calibsetup = new calib;&lt;br /&gt;
    calibsetup-&amp;gt;show();&lt;br /&gt;
    this-&amp;gt;hide();&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
void MainWindow::on_pushButton_2_clicked()&lt;br /&gt;
{&lt;br /&gt;
   //QMessageBox::information(this,&amp;quot;QUIT&amp;quot;,&amp;quot;Voulez-vous quitter l'application ?&amp;quot;,&amp;quot;Non&amp;quot;,&amp;quot;Oui&amp;quot;);&lt;br /&gt;
    QMessageBox msgBox;&lt;br /&gt;
      msgBox.setWindowTitle(&amp;quot;Exit setup&amp;quot;);&lt;br /&gt;
      msgBox.addButton(QMessageBox::Yes);&lt;br /&gt;
      msgBox.addButton(QMessageBox::No);&lt;br /&gt;
      msgBox.setText(&amp;quot;Voulez-vous vraiment quitter la calibration ?&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
      int selection = msgBox.exec();&lt;br /&gt;
      if(selection == QMessageBox::Yes)&lt;br /&gt;
      {&lt;br /&gt;
        QCoreApplication::quit();&lt;br /&gt;
      }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
Le bouton ‘suivant’ permet de continuer l’installation et ainsi de passer à la deuxième fenêtre où on a listé les différentes étapes nécessaires pour la calibration. La calibration se fait via l’application ‘KinectMSFTCalibration’. Pour lancer cette dernière, l’utilisateur a besoin de cliquer sur le bouton ‘commencer’ qui permet d’afficher la vue de la Kinect qui est dirigé vers l’écran stéréoscopique. On pourra par la suite définir les points en cliquant sur F2 puis sur les bords de l’écran en commençant par le bas de l’écran à gauche puis à droite ensuite en haut à droite puis à gauche dans le sens antihoraire. Quand on place les 4 points au bord de l’écran, on définit le plan de définition. F3 nous permet de sauvegarder les coordonnées des points saisie dans un fichier .txt. Quand on clique sur le bouton 'suivant', on exécute un programme qui nous permet de copier ces coordonnées vers un notre fichier texte. Pour pouvoir revenir à la fenêtre calibsetup, il suffit de fermer l’application. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Setupcalibration.PNG]]&lt;br /&gt;
&lt;br /&gt;
La fenêtre qui permet la calibration est la suivante :&lt;br /&gt;
[[Fichier:Kinect.PNG]]&lt;br /&gt;
Comme vous l'avez remarqué, on a 3 points au bord de l'écran intitulé dans l'ordre BL - BR - TR - TL&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Voici le .h et .cpp de cette fenêtre :&lt;br /&gt;
&lt;br /&gt;
Calibsetup.h :&lt;br /&gt;
&lt;br /&gt;
#ifndef CALIB_H&lt;br /&gt;
#define CALIB_H&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;QDialog&amp;gt;&lt;br /&gt;
#include &amp;quot;fincalibration.h&amp;quot;&lt;br /&gt;
&lt;br /&gt;
namespace Ui {&lt;br /&gt;
class calib;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
class calib : public QDialog&lt;br /&gt;
{&lt;br /&gt;
    Q_OBJECT&lt;br /&gt;
&lt;br /&gt;
public:&lt;br /&gt;
    explicit calib(QWidget *parent = 0);&lt;br /&gt;
    ~calib();&lt;br /&gt;
&lt;br /&gt;
private slots:&lt;br /&gt;
    void on_pushButton_clicked();&lt;br /&gt;
&lt;br /&gt;
    void on_pushButton_2_clicked();&lt;br /&gt;
&lt;br /&gt;
    void on_pushButton_3_clicked();&lt;br /&gt;
&lt;br /&gt;
private:&lt;br /&gt;
    Ui::calib *ui;&lt;br /&gt;
    FinCalibration *fincalib ;&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
#endif // CALIB_H&lt;br /&gt;
&lt;br /&gt;
Calibsetup.cpp :&lt;br /&gt;
&lt;br /&gt;
#include &amp;quot;calibsetup.h&amp;quot;&lt;br /&gt;
#include &amp;quot;ui_calibsetup.h&amp;quot;&lt;br /&gt;
#include &amp;quot;fincalibration.h&amp;quot;&lt;br /&gt;
#include &amp;lt;QMessageBox&amp;gt;&lt;br /&gt;
&lt;br /&gt;
calib::calib(QWidget *parent) :&lt;br /&gt;
    QDialog(parent),&lt;br /&gt;
    ui(new Ui::calib)&lt;br /&gt;
{&lt;br /&gt;
    ui-&amp;gt;setupUi(this);&lt;br /&gt;
}&lt;br /&gt;
calib::~calib()&lt;br /&gt;
{&lt;br /&gt;
    delete ui;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void calib::on_pushButton_clicked()&lt;br /&gt;
{&lt;br /&gt;
    system(&amp;quot;C:/Users/Demo.ALCOVE-HP-MINT4/Desktop/OOS/nimble_calib.bat&amp;quot;);&lt;br /&gt;
    system(&amp;quot;C:/Users/Demo.ALCOVE-HP-MINT4/Desktop/OOS/nimble_server.bat&amp;quot;);&lt;br /&gt;
    system(&amp;quot;C:/Users/Demo.ALCOVE-HP-MINT4/Desktop/OOS/tool/KinectMSFTCalibration.exe&amp;quot;);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void calib::on_pushButton_2_clicked()&lt;br /&gt;
{&lt;br /&gt;
        fincalib = new FinCalibration;&lt;br /&gt;
        fincalib-&amp;gt;show();&lt;br /&gt;
        this-&amp;gt;hide();&lt;br /&gt;
        system(&amp;quot;C:/Users/Demo.ALCOVE-HP-MINT4/Desktop/OOS/Transfert_Points.exe&amp;quot;)&lt;br /&gt;
;}&lt;br /&gt;
&lt;br /&gt;
void calib::on_pushButton_3_clicked()&lt;br /&gt;
{&lt;br /&gt;
    QMessageBox msgBox;&lt;br /&gt;
      msgBox.setWindowTitle(&amp;quot;Calibration setup&amp;quot;);&lt;br /&gt;
      msgBox.addButton(QMessageBox::Yes);&lt;br /&gt;
      msgBox.addButton(QMessageBox::No);&lt;br /&gt;
      msgBox.setText(&amp;quot;Voulez-vous vraiment quitter la calibration ?&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
      int selection = msgBox.exec();&lt;br /&gt;
      if(selection == QMessageBox::Yes)&lt;br /&gt;
      {&lt;br /&gt;
        QCoreApplication::quit();&lt;br /&gt;
      }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
En ce qui concerne la 3éme fenêtre, elle permet juste de dire à l’utilisateur que la calibration a été bien faite et que les points ont bien été enregistrés dans le fichier texte puis copier dans le deuxième fichier texte. Voici un imprime écran de la fenêtre :&lt;br /&gt;
[[Fichier:Fin.PNG]]&lt;br /&gt;
&lt;br /&gt;
Voici le code .h et .cpp de cette 3éme fenêtre : &lt;br /&gt;
Fincalibration.h&lt;br /&gt;
#ifndef FINCALIBRATION_H&lt;br /&gt;
#define FINCALIBRATION_H&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;QDialog&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
namespace Ui {&lt;br /&gt;
class FinCalibration;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
class FinCalibration : public QDialog&lt;br /&gt;
{&lt;br /&gt;
    Q_OBJECT&lt;br /&gt;
&lt;br /&gt;
public:&lt;br /&gt;
    explicit FinCalibration(QWidget *parent = 0);&lt;br /&gt;
    ~FinCalibration();&lt;br /&gt;
&lt;br /&gt;
private slots:&lt;br /&gt;
    void on_pushButton_clicked();&lt;br /&gt;
&lt;br /&gt;
private:&lt;br /&gt;
    Ui::FinCalibration *ui;&lt;br /&gt;
&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
#endif // FINCALIBRATION_H&lt;br /&gt;
&lt;br /&gt;
Fincalibration.cpp&lt;br /&gt;
&lt;br /&gt;
#include &amp;quot;fincalibration.h&amp;quot;&lt;br /&gt;
#include &amp;quot;ui_fincalibration.h&amp;quot;&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;QMessageBox&amp;gt;&lt;br /&gt;
&lt;br /&gt;
FinCalibration::FinCalibration(QWidget *parent) :&lt;br /&gt;
    QDialog(parent),&lt;br /&gt;
    ui(new Ui::FinCalibration)&lt;br /&gt;
{&lt;br /&gt;
    ui-&amp;gt;setupUi(this);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
FinCalibration::~FinCalibration()&lt;br /&gt;
{&lt;br /&gt;
    delete ui;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void FinCalibration::on_pushButton_clicked()&lt;br /&gt;
{&lt;br /&gt;
      QCoreApplication::quit();&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
Pour le bouton ‘annuler’ qui est présent dans toutes les fenêtres, quand on appui dessus, il demande à l’utilisateur s’il veut vraiment quitter la calibration en lui proposant deux boutons « Yes » et « No ». Le bouton « no » permet de revenir à la fenêtre précédente et le bouton « yes » permet de quitter l’application.&lt;br /&gt;
[[Fichier:Annuler.PNG]]&lt;/div&gt;</summary>
		<author><name>Zassaieb</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=Out_of_Space&amp;diff=11552</id>
		<title>Out of Space</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=Out_of_Space&amp;diff=11552"/>
				<updated>2014-04-13T15:19:08Z</updated>
		
		<summary type="html">&lt;p&gt;Zassaieb : /* Semaine 24/03 – 28/03 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Généralités sur le projet ==&lt;br /&gt;
&lt;br /&gt;
=== Contexte ===&lt;br /&gt;
&lt;br /&gt;
Ce projet met en collaboration une artiste et une société de production de jeu vidéo 3D, et vise à mettre en place une application interactive utilisant une classe de dispositifs d'interaction orienté &amp;quot;maquette holographique&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=== Descriptif ===&lt;br /&gt;
&lt;br /&gt;
Le projet vise à réaliser une application interactive sur un affichage stéréoscopique, et qui consiste à piloter un objet (une bille) dans un certain environnement, tout en déroulant l’évolution de cet environnement sur une vidéo de fond. Le mouvement de cet objet est contrôlé par les gestes des mains qui sont détectées par une Kinect et traduits sur un écran 3D.&lt;br /&gt;
&lt;br /&gt;
=== Problématique ===&lt;br /&gt;
&lt;br /&gt;
La problématique qui se pose est de pouvoir prendre aussi en compte la tête de l’utilisateur sur l’espace d’acquisition afin d’avoir les données sur l’angle de vision et donc d’orienter l’affichage 3D sur l’écran selon sa position, ainsi le mouvement de la tête impliquera l’inclinaison des objets affichés dans un sens ou dans l’autre.&lt;br /&gt;
&lt;br /&gt;
== == &lt;br /&gt;
&lt;br /&gt;
=== Cahier des charges ===&lt;br /&gt;
{{Petit|''Le cahier des charges ne peut être réalisé pour l'instant car notre projet est une continuité d'un projet réalisé actuellement par des élèves en IMA5, et les tâches qui nous seront affectées vont dépendre de leur avancement. La phase de transition sera faite quelques jours avant leur soutenance. Cependant, nous avons commencé par nous familiariser aux outils à utiliser''}}&amp;lt;br\&amp;gt;&amp;lt;br\&amp;gt;&lt;br /&gt;
-&amp;gt;  Mise en place d’un outil de Calibration pour calibrer et mettre en place la scène 3D selon la position de l’utilisateur, pour l’utilisation par un non informaticien.&lt;br /&gt;
&lt;br /&gt;
=== Les outils matériels/logiciels utilisés ===&lt;br /&gt;
&lt;br /&gt;
* Kinect, le périphérique de reconnaissance de mouvement&amp;lt;br/&amp;gt;&lt;br /&gt;
* Ecran Stereoscopique pour l'affichage 3D&amp;lt;br/&amp;gt;&lt;br /&gt;
* 3Gear possède une technologie qui permet, à partir des caméras 3D de la Kinect, de reconstruire une représentation précise des doigts et de ce que les mains font, en prenant les données 3D brutes et les transformant en informations utilisables sur l'état des mains. Les interfaces de programmation sont basées sur le pointage et le pincement et fournissent les angles des articulations approximatives, elles sont disponibles en C ++, C # et Java&amp;lt;br/&amp;gt;&lt;br /&gt;
* Unity 3D est un logiciel middleware de création de contenu interactif comportant de la vidéo et des objets 3D/2D. Il permet de créer des scènes supportant des éclairages, des terrains, des caméras, des textures ... . L’intérêt de ce logiciel est que celui-ci dispose d’une interface intuitive d’intégration d’objets et de scripts ; l’éditeur d’Unity intègre des composants pré-configurés évitant le développement de code fastidieux.&lt;br /&gt;
* QT&lt;br /&gt;
&lt;br /&gt;
== Travail réalisé ==&lt;br /&gt;
===Semaine 03/02 – 07/02===&lt;br /&gt;
* Entretien avec Mr Laurent Grisonni pour comprendre le projet&lt;br /&gt;
* Etablissement d’un cahier de charge global en attente de précisions après la soutenance des IMA5&lt;br /&gt;
* Spécifications des outils et matériels utilisés&lt;br /&gt;
===Semaine 10/02 - 14/02===&lt;br /&gt;
* Rencontre avec les étudiants qui travaillent déjà sur le sujet&lt;br /&gt;
* Compréhension du travail réalisé&lt;br /&gt;
* Suggestion d’éventuelles améliorations&lt;br /&gt;
===Semaine 17/02 - 21/02===&lt;br /&gt;
* Prise en main de l’outil Unity à l’aide de quelques Tutoriels pour la création de scènes 3D&lt;br /&gt;
* Compréhension et analyse de la librairie 3gear de détection de geste via la Kinect&lt;br /&gt;
===Semaine 03/03 – 07/03===&lt;br /&gt;
* Spécification du besoin : Mise en place d’un outil de Calibration pour calibrer mettre en place la scène 3D selon la position de l’utilisateur, pour l’utilisation par un non informaticien.&lt;br /&gt;
===Semaine 12/03 – 14/03===&lt;br /&gt;
* Installation à l’IRCICA, remise des clefs et badges de la salle de travail, récupération du SVN du projet.&lt;br /&gt;
* Rencontre de plusieurs problèmes dont :&lt;br /&gt;
o	Pas de licence Windows sur le poste fourni &amp;lt;br/&amp;gt;&lt;br /&gt;
o	Problèmes de réseau et d’accès internet pour l’extraction du SVN&lt;br /&gt;
&lt;br /&gt;
===Semaine 24/03 – 28/03===&lt;br /&gt;
* Installation du logiciel Unity&lt;br /&gt;
* Impossibilité d’installer les logiciels de programmation pour la librairie 3gear: Processeur incompatible&lt;br /&gt;
* Premiers tests du programme existant, incomplets par manque d’outils.&lt;br /&gt;
* Ajustements de la  scène Unity à la taille de l’écran Stéréoscopique&lt;br /&gt;
&lt;br /&gt;
===Semaine 31/03 – 04/04===&lt;br /&gt;
''Outil de calibration'' : Cet outil est censé permettre à l’artiste ou n’importe quel autre utilisateur non information de pouvoir ajuster les réglages et le calibrage des Kinects par rapport à l’écran stéréoscopique sans avoir à modifier les lignes de code de l’application. &lt;br /&gt;
&lt;br /&gt;
''Calibrage'' : Afin de réaliser le calibrage de la Kinect, il faut d’abord lancer les programmes d’installation de la librairie 3gear de  la Kinect (nimble_calib et nimble_server, ces applications sont fournies avec le kit de la librairie), il faut ensuite lancer l’application Kinect_MSFT_Calibration. Cette application a été déjà développée pour ce projet et qui consiste en l’affichage de l’image reçue par la Kinect afin de sélectionner dessus les points des 4 coins de l’écran stéréoscopique (l’écran étant visible sur l’image), l’application enregistre alors ces coordonnées dans un fichier texte, et donc, ces coordonnées doivent être repris et mis dans un autre fichier texte en effectuant quelques modifications dessus. Ce dernier est celui qui est utilisé par l’application d’affichage de la scène 3D sur l’écran 3D, et qui utilise ces points pour régler l’affichage. &lt;br /&gt;
&lt;br /&gt;
* Prise en main de l’outil de développement d’interfaces graphiques QT&lt;br /&gt;
* Première ébauche de la gestion des fenêtres de l’interface graphique à développer.&lt;br /&gt;
* Problème rencontré : l’outil est bloqué quand on affecte à un bouton le passage à une deuxième fenêtre et l’exécution d’une application en même temps.&lt;br /&gt;
* Réalisation d’un programme C permettant le transfert des coordonnées du fichier source au fichier de destination.&lt;br /&gt;
&lt;br /&gt;
===Semaine 07/04 – 11/04===&lt;br /&gt;
* Test du programme de transfert de données sur l’outil et son implémentation&lt;br /&gt;
* Finalisation de l’interface graphique, en résolvant le problème rencontré.&lt;br /&gt;
* L’outil réalise bien la tâche demandée.&lt;/div&gt;</summary>
		<author><name>Zassaieb</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=Out_of_Space&amp;diff=11551</id>
		<title>Out of Space</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=Out_of_Space&amp;diff=11551"/>
				<updated>2014-04-13T15:18:33Z</updated>
		
		<summary type="html">&lt;p&gt;Zassaieb : /* Les outils matériels/logiciels utilisés */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Généralités sur le projet ==&lt;br /&gt;
&lt;br /&gt;
=== Contexte ===&lt;br /&gt;
&lt;br /&gt;
Ce projet met en collaboration une artiste et une société de production de jeu vidéo 3D, et vise à mettre en place une application interactive utilisant une classe de dispositifs d'interaction orienté &amp;quot;maquette holographique&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=== Descriptif ===&lt;br /&gt;
&lt;br /&gt;
Le projet vise à réaliser une application interactive sur un affichage stéréoscopique, et qui consiste à piloter un objet (une bille) dans un certain environnement, tout en déroulant l’évolution de cet environnement sur une vidéo de fond. Le mouvement de cet objet est contrôlé par les gestes des mains qui sont détectées par une Kinect et traduits sur un écran 3D.&lt;br /&gt;
&lt;br /&gt;
=== Problématique ===&lt;br /&gt;
&lt;br /&gt;
La problématique qui se pose est de pouvoir prendre aussi en compte la tête de l’utilisateur sur l’espace d’acquisition afin d’avoir les données sur l’angle de vision et donc d’orienter l’affichage 3D sur l’écran selon sa position, ainsi le mouvement de la tête impliquera l’inclinaison des objets affichés dans un sens ou dans l’autre.&lt;br /&gt;
&lt;br /&gt;
== == &lt;br /&gt;
&lt;br /&gt;
=== Cahier des charges ===&lt;br /&gt;
{{Petit|''Le cahier des charges ne peut être réalisé pour l'instant car notre projet est une continuité d'un projet réalisé actuellement par des élèves en IMA5, et les tâches qui nous seront affectées vont dépendre de leur avancement. La phase de transition sera faite quelques jours avant leur soutenance. Cependant, nous avons commencé par nous familiariser aux outils à utiliser''}}&amp;lt;br\&amp;gt;&amp;lt;br\&amp;gt;&lt;br /&gt;
-&amp;gt;  Mise en place d’un outil de Calibration pour calibrer et mettre en place la scène 3D selon la position de l’utilisateur, pour l’utilisation par un non informaticien.&lt;br /&gt;
&lt;br /&gt;
=== Les outils matériels/logiciels utilisés ===&lt;br /&gt;
&lt;br /&gt;
* Kinect, le périphérique de reconnaissance de mouvement&amp;lt;br/&amp;gt;&lt;br /&gt;
* Ecran Stereoscopique pour l'affichage 3D&amp;lt;br/&amp;gt;&lt;br /&gt;
* 3Gear possède une technologie qui permet, à partir des caméras 3D de la Kinect, de reconstruire une représentation précise des doigts et de ce que les mains font, en prenant les données 3D brutes et les transformant en informations utilisables sur l'état des mains. Les interfaces de programmation sont basées sur le pointage et le pincement et fournissent les angles des articulations approximatives, elles sont disponibles en C ++, C # et Java&amp;lt;br/&amp;gt;&lt;br /&gt;
* Unity 3D est un logiciel middleware de création de contenu interactif comportant de la vidéo et des objets 3D/2D. Il permet de créer des scènes supportant des éclairages, des terrains, des caméras, des textures ... . L’intérêt de ce logiciel est que celui-ci dispose d’une interface intuitive d’intégration d’objets et de scripts ; l’éditeur d’Unity intègre des composants pré-configurés évitant le développement de code fastidieux.&lt;br /&gt;
* QT&lt;br /&gt;
&lt;br /&gt;
== Travail réalisé ==&lt;br /&gt;
===Semaine 03/02 – 07/02===&lt;br /&gt;
* Entretien avec Mr Laurent Grisonni pour comprendre le projet&lt;br /&gt;
* Etablissement d’un cahier de charge global en attente de précisions après la soutenance des IMA5&lt;br /&gt;
* Spécifications des outils et matériels utilisés&lt;br /&gt;
===Semaine 10/02 - 14/02===&lt;br /&gt;
* Rencontre avec les étudiants qui travaillent déjà sur le sujet&lt;br /&gt;
* Compréhension du travail réalisé&lt;br /&gt;
* Suggestion d’éventuelles améliorations&lt;br /&gt;
===Semaine 17/02 - 21/02===&lt;br /&gt;
* Prise en main de l’outil Unity à l’aide de quelques Tutoriels pour la création de scènes 3D&lt;br /&gt;
* Compréhension et analyse de la librairie 3gear de détection de geste via la Kinect&lt;br /&gt;
===Semaine 03/03 – 07/03===&lt;br /&gt;
* Spécification du besoin : Mise en place d’un outil de Calibration pour calibrer mettre en place la scène 3D selon la position de l’utilisateur, pour l’utilisation par un non informaticien.&lt;br /&gt;
===Semaine 12/03 – 14/03===&lt;br /&gt;
* Installation à l’IRCICA, remise des clefs et badges de la salle de travail, récupération du SVN du projet.&lt;br /&gt;
* Rencontre de plusieurs problèmes dont :&lt;br /&gt;
o	Pas de licence Windows sur le poste fourni &amp;lt;br/&amp;gt;&lt;br /&gt;
o	Problèmes de réseau et d’accès internet pour l’extraction du SVN&lt;br /&gt;
&lt;br /&gt;
===Semaine 24/03 – 28/03===&lt;br /&gt;
* Installation du logiciel Unity&lt;br /&gt;
* Impossibilité d’installer les logiciels de programmation pour la librairie 3gear: Processeur incompatible&lt;br /&gt;
* Premiers tests du projet existant, incomplets par manque d’outils.&lt;br /&gt;
* Ajustements de la  scène Unity à la taille de l’écran Stéréoscopique&lt;br /&gt;
===Semaine 31/03 – 04/04===&lt;br /&gt;
''Outil de calibration'' : Cet outil est censé permettre à l’artiste ou n’importe quel autre utilisateur non information de pouvoir ajuster les réglages et le calibrage des Kinects par rapport à l’écran stéréoscopique sans avoir à modifier les lignes de code de l’application. &lt;br /&gt;
&lt;br /&gt;
''Calibrage'' : Afin de réaliser le calibrage de la Kinect, il faut d’abord lancer les programmes d’installation de la librairie 3gear de  la Kinect (nimble_calib et nimble_server, ces applications sont fournies avec le kit de la librairie), il faut ensuite lancer l’application Kinect_MSFT_Calibration. Cette application a été déjà développée pour ce projet et qui consiste en l’affichage de l’image reçue par la Kinect afin de sélectionner dessus les points des 4 coins de l’écran stéréoscopique (l’écran étant visible sur l’image), l’application enregistre alors ces coordonnées dans un fichier texte, et donc, ces coordonnées doivent être repris et mis dans un autre fichier texte en effectuant quelques modifications dessus. Ce dernier est celui qui est utilisé par l’application d’affichage de la scène 3D sur l’écran 3D, et qui utilise ces points pour régler l’affichage. &lt;br /&gt;
&lt;br /&gt;
* Prise en main de l’outil de développement d’interfaces graphiques QT&lt;br /&gt;
* Première ébauche de la gestion des fenêtres de l’interface graphique à développer.&lt;br /&gt;
* Problème rencontré : l’outil est bloqué quand on affecte à un bouton le passage à une deuxième fenêtre et l’exécution d’une application en même temps.&lt;br /&gt;
* Réalisation d’un programme C permettant le transfert des coordonnées du fichier source au fichier de destination.&lt;br /&gt;
&lt;br /&gt;
===Semaine 07/04 – 11/04===&lt;br /&gt;
* Test du programme de transfert de données sur l’outil et son implémentation&lt;br /&gt;
* Finalisation de l’interface graphique, en résolvant le problème rencontré.&lt;br /&gt;
* L’outil réalise bien la tâche demandée.&lt;/div&gt;</summary>
		<author><name>Zassaieb</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=Out_of_Space&amp;diff=11550</id>
		<title>Out of Space</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=Out_of_Space&amp;diff=11550"/>
				<updated>2014-04-13T15:18:00Z</updated>
		
		<summary type="html">&lt;p&gt;Zassaieb : /* Cahier des charges */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Généralités sur le projet ==&lt;br /&gt;
&lt;br /&gt;
=== Contexte ===&lt;br /&gt;
&lt;br /&gt;
Ce projet met en collaboration une artiste et une société de production de jeu vidéo 3D, et vise à mettre en place une application interactive utilisant une classe de dispositifs d'interaction orienté &amp;quot;maquette holographique&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=== Descriptif ===&lt;br /&gt;
&lt;br /&gt;
Le projet vise à réaliser une application interactive sur un affichage stéréoscopique, et qui consiste à piloter un objet (une bille) dans un certain environnement, tout en déroulant l’évolution de cet environnement sur une vidéo de fond. Le mouvement de cet objet est contrôlé par les gestes des mains qui sont détectées par une Kinect et traduits sur un écran 3D.&lt;br /&gt;
&lt;br /&gt;
=== Problématique ===&lt;br /&gt;
&lt;br /&gt;
La problématique qui se pose est de pouvoir prendre aussi en compte la tête de l’utilisateur sur l’espace d’acquisition afin d’avoir les données sur l’angle de vision et donc d’orienter l’affichage 3D sur l’écran selon sa position, ainsi le mouvement de la tête impliquera l’inclinaison des objets affichés dans un sens ou dans l’autre.&lt;br /&gt;
&lt;br /&gt;
== == &lt;br /&gt;
&lt;br /&gt;
=== Cahier des charges ===&lt;br /&gt;
{{Petit|''Le cahier des charges ne peut être réalisé pour l'instant car notre projet est une continuité d'un projet réalisé actuellement par des élèves en IMA5, et les tâches qui nous seront affectées vont dépendre de leur avancement. La phase de transition sera faite quelques jours avant leur soutenance. Cependant, nous avons commencé par nous familiariser aux outils à utiliser''}}&amp;lt;br\&amp;gt;&amp;lt;br\&amp;gt;&lt;br /&gt;
-&amp;gt;  Mise en place d’un outil de Calibration pour calibrer et mettre en place la scène 3D selon la position de l’utilisateur, pour l’utilisation par un non informaticien.&lt;br /&gt;
&lt;br /&gt;
=== Les outils matériels/logiciels utilisés ===&lt;br /&gt;
&lt;br /&gt;
* Kinect, le périphérique de reconnaissance de mouvement&amp;lt;br/&amp;gt;&lt;br /&gt;
* Ecran Stereoscopique pour l'affichage 3D&amp;lt;br/&amp;gt;&lt;br /&gt;
* 3Gear possède une technologie qui permet, à partir des caméras 3D de la Kinect, de reconstruire une représentation précise des doigts et de ce que les mains font, en prenant les données 3D brutes et les transformant en informations utilisables sur l'état des mains. Les interfaces de programmation sont basées sur le pointage et le pincement et fournissent les angles des articulations approximatives, elles sont disponibles en C ++, C # et Java&amp;lt;br/&amp;gt;&lt;br /&gt;
* Unity 3D est un logiciel middleware de création de contenu interactif comportant de la vidéo et des objets 3D/2D. Il permet de créer des scènes supportant des éclairages, des terrains, des caméras, des textures ... . L’intérêt de ce logiciel est que celui-ci dispose d’une interface intuitive d’intégration d’objets et de scripts ; l’éditeur d’Unity intègre des composants pré-configurés évitant le développement de code fastidieux.&lt;br /&gt;
&lt;br /&gt;
== Travail réalisé ==&lt;br /&gt;
===Semaine 03/02 – 07/02===&lt;br /&gt;
* Entretien avec Mr Laurent Grisonni pour comprendre le projet&lt;br /&gt;
* Etablissement d’un cahier de charge global en attente de précisions après la soutenance des IMA5&lt;br /&gt;
* Spécifications des outils et matériels utilisés&lt;br /&gt;
===Semaine 10/02 - 14/02===&lt;br /&gt;
* Rencontre avec les étudiants qui travaillent déjà sur le sujet&lt;br /&gt;
* Compréhension du travail réalisé&lt;br /&gt;
* Suggestion d’éventuelles améliorations&lt;br /&gt;
===Semaine 17/02 - 21/02===&lt;br /&gt;
* Prise en main de l’outil Unity à l’aide de quelques Tutoriels pour la création de scènes 3D&lt;br /&gt;
* Compréhension et analyse de la librairie 3gear de détection de geste via la Kinect&lt;br /&gt;
===Semaine 03/03 – 07/03===&lt;br /&gt;
* Spécification du besoin : Mise en place d’un outil de Calibration pour calibrer mettre en place la scène 3D selon la position de l’utilisateur, pour l’utilisation par un non informaticien.&lt;br /&gt;
===Semaine 12/03 – 14/03===&lt;br /&gt;
* Installation à l’IRCICA, remise des clefs et badges de la salle de travail, récupération du SVN du projet.&lt;br /&gt;
* Rencontre de plusieurs problèmes dont :&lt;br /&gt;
o	Pas de licence Windows sur le poste fourni &amp;lt;br/&amp;gt;&lt;br /&gt;
o	Problèmes de réseau et d’accès internet pour l’extraction du SVN&lt;br /&gt;
&lt;br /&gt;
===Semaine 24/03 – 28/03===&lt;br /&gt;
* Installation du logiciel Unity&lt;br /&gt;
* Impossibilité d’installer les logiciels de programmation pour la librairie 3gear: Processeur incompatible&lt;br /&gt;
* Premiers tests du projet existant, incomplets par manque d’outils.&lt;br /&gt;
* Ajustements de la  scène Unity à la taille de l’écran Stéréoscopique&lt;br /&gt;
===Semaine 31/03 – 04/04===&lt;br /&gt;
''Outil de calibration'' : Cet outil est censé permettre à l’artiste ou n’importe quel autre utilisateur non information de pouvoir ajuster les réglages et le calibrage des Kinects par rapport à l’écran stéréoscopique sans avoir à modifier les lignes de code de l’application. &lt;br /&gt;
&lt;br /&gt;
''Calibrage'' : Afin de réaliser le calibrage de la Kinect, il faut d’abord lancer les programmes d’installation de la librairie 3gear de  la Kinect (nimble_calib et nimble_server, ces applications sont fournies avec le kit de la librairie), il faut ensuite lancer l’application Kinect_MSFT_Calibration. Cette application a été déjà développée pour ce projet et qui consiste en l’affichage de l’image reçue par la Kinect afin de sélectionner dessus les points des 4 coins de l’écran stéréoscopique (l’écran étant visible sur l’image), l’application enregistre alors ces coordonnées dans un fichier texte, et donc, ces coordonnées doivent être repris et mis dans un autre fichier texte en effectuant quelques modifications dessus. Ce dernier est celui qui est utilisé par l’application d’affichage de la scène 3D sur l’écran 3D, et qui utilise ces points pour régler l’affichage. &lt;br /&gt;
&lt;br /&gt;
* Prise en main de l’outil de développement d’interfaces graphiques QT&lt;br /&gt;
* Première ébauche de la gestion des fenêtres de l’interface graphique à développer.&lt;br /&gt;
* Problème rencontré : l’outil est bloqué quand on affecte à un bouton le passage à une deuxième fenêtre et l’exécution d’une application en même temps.&lt;br /&gt;
* Réalisation d’un programme C permettant le transfert des coordonnées du fichier source au fichier de destination.&lt;br /&gt;
&lt;br /&gt;
===Semaine 07/04 – 11/04===&lt;br /&gt;
* Test du programme de transfert de données sur l’outil et son implémentation&lt;br /&gt;
* Finalisation de l’interface graphique, en résolvant le problème rencontré.&lt;br /&gt;
* L’outil réalise bien la tâche demandée.&lt;/div&gt;</summary>
		<author><name>Zassaieb</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=Out_of_Space&amp;diff=11368</id>
		<title>Out of Space</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=Out_of_Space&amp;diff=11368"/>
				<updated>2014-04-12T17:24:06Z</updated>
		
		<summary type="html">&lt;p&gt;Zassaieb : /* Semaine 12/03 – 14/03 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Généralités sur le projet ==&lt;br /&gt;
&lt;br /&gt;
=== Contexte ===&lt;br /&gt;
&lt;br /&gt;
Ce projet met en collaboration une artiste et une société de production de jeu vidéo 3D, et vise à mettre en place une application interactive utilisant une classe de dispositifs d'interaction orienté &amp;quot;maquette holographique&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=== Descriptif ===&lt;br /&gt;
&lt;br /&gt;
Le projet vise à réaliser une application interactive sur un affichage stéréoscopique, et qui consiste à piloter un objet (une bille) dans un certain environnement, tout en déroulant l’évolution de cet environnement sur une vidéo de fond. Le mouvement de cet objet est contrôlé par les gestes des mains qui sont détectées par une Kinect et traduits sur un écran 3D.&lt;br /&gt;
&lt;br /&gt;
=== Problématique ===&lt;br /&gt;
&lt;br /&gt;
La problématique qui se pose est de pouvoir prendre aussi en compte la tête de l’utilisateur sur l’espace d’acquisition afin d’avoir les données sur l’angle de vision et donc d’orienter l’affichage 3D sur l’écran selon sa position, ainsi le mouvement de la tête impliquera l’inclinaison des objets affichés dans un sens ou dans l’autre.&lt;br /&gt;
&lt;br /&gt;
== == &lt;br /&gt;
&lt;br /&gt;
=== Cahier des charges ===&lt;br /&gt;
{{Petit|''Le cahier des charges ne peut être réalisé pour l'instant car notre projet est une continuité d'un projet réalisé actuellement par des élèves en IMA5, et les tâches qui nous seront affectées vont dépendre de leur avancement. La phase de transition sera faite quelques jours avant leur soutenance. Cependant, nous avons commencé par nous familiariser aux outils à utiliser''}}&lt;br /&gt;
&lt;br /&gt;
=== Les outils matériels/logiciels utilisés ===&lt;br /&gt;
&lt;br /&gt;
* Kinect, le périphérique de reconnaissance de mouvement&amp;lt;br/&amp;gt;&lt;br /&gt;
* Ecran Stereoscopique pour l'affichage 3D&amp;lt;br/&amp;gt;&lt;br /&gt;
* 3Gear possède une technologie qui permet, à partir des caméras 3D de la Kinect, de reconstruire une représentation précise des doigts et de ce que les mains font, en prenant les données 3D brutes et les transformant en informations utilisables sur l'état des mains. Les interfaces de programmation sont basées sur le pointage et le pincement et fournissent les angles des articulations approximatives, elles sont disponibles en C ++, C # et Java&amp;lt;br/&amp;gt;&lt;br /&gt;
* Unity 3D est un logiciel middleware de création de contenu interactif comportant de la vidéo et des objets 3D/2D. Il permet de créer des scènes supportant des éclairages, des terrains, des caméras, des textures ... . L’intérêt de ce logiciel est que celui-ci dispose d’une interface intuitive d’intégration d’objets et de scripts ; l’éditeur d’Unity intègre des composants pré-configurés évitant le développement de code fastidieux.&lt;br /&gt;
&lt;br /&gt;
== Travail réalisé ==&lt;br /&gt;
===Semaine 03/02 – 07/02===&lt;br /&gt;
* Entretien avec Mr Laurent Grisonni pour comprendre le projet&lt;br /&gt;
* Etablissement d’un cahier de charge global en attente de précisions après la soutenance des IMA5&lt;br /&gt;
* Spécifications des outils et matériels utilisés&lt;br /&gt;
===Semaine 10/02 - 14/02===&lt;br /&gt;
* Rencontre avec les étudiants qui travaillent déjà sur le sujet&lt;br /&gt;
* Compréhension du travail réalisé&lt;br /&gt;
* Suggestion d’éventuelles améliorations&lt;br /&gt;
===Semaine 17/02 - 21/02===&lt;br /&gt;
* Prise en main de l’outil Unity à l’aide de quelques Tutoriels pour la création de scènes 3D&lt;br /&gt;
* Compréhension et analyse de la librairie 3gear de détection de geste via la Kinect&lt;br /&gt;
===Semaine 03/03 – 07/03===&lt;br /&gt;
* Spécification du besoin : Mise en place d’un outil de Calibration pour calibrer mettre en place la scène 3D selon la position de l’utilisateur, pour l’utilisation par un non informaticien.&lt;br /&gt;
===Semaine 12/03 – 14/03===&lt;br /&gt;
* Installation à l’IRCICA, remise des clefs et badges de la salle de travail, récupération du SVN du projet.&lt;br /&gt;
* Rencontre de plusieurs problèmes dont :&lt;br /&gt;
o	Pas de licence Windows sur le poste fourni &amp;lt;br/&amp;gt;&lt;br /&gt;
o	Problèmes de réseau et d’accès internet pour l’extraction du SVN&lt;br /&gt;
&lt;br /&gt;
===Semaine 24/03 – 28/03===&lt;br /&gt;
* Installation du logiciel Unity&lt;br /&gt;
* Impossibilité d’installer les logiciels de programmation pour la librairie 3gear: Processeur incompatible&lt;br /&gt;
* Premiers tests du projet existant, incomplets par manque d’outils.&lt;br /&gt;
* Ajustements de la  scène Unity à la taille de l’écran Stéréoscopique&lt;br /&gt;
===Semaine 31/03 – 04/04===&lt;br /&gt;
''Outil de calibration'' : Cet outil est censé permettre à l’artiste ou n’importe quel autre utilisateur non information de pouvoir ajuster les réglages et le calibrage des Kinects par rapport à l’écran stéréoscopique sans avoir à modifier les lignes de code de l’application. &lt;br /&gt;
&lt;br /&gt;
''Calibrage'' : Afin de réaliser le calibrage de la Kinect, il faut d’abord lancer les programmes d’installation de la librairie 3gear de  la Kinect (nimble_calib et nimble_server, ces applications sont fournies avec le kit de la librairie), il faut ensuite lancer l’application Kinect_MSFT_Calibration. Cette application a été déjà développée pour ce projet et qui consiste en l’affichage de l’image reçue par la Kinect afin de sélectionner dessus les points des 4 coins de l’écran stéréoscopique (l’écran étant visible sur l’image), l’application enregistre alors ces coordonnées dans un fichier texte, et donc, ces coordonnées doivent être repris et mis dans un autre fichier texte en effectuant quelques modifications dessus. Ce dernier est celui qui est utilisé par l’application d’affichage de la scène 3D sur l’écran 3D, et qui utilise ces points pour régler l’affichage. &lt;br /&gt;
&lt;br /&gt;
* Prise en main de l’outil de développement d’interfaces graphiques QT&lt;br /&gt;
* Première ébauche de la gestion des fenêtres de l’interface graphique à développer.&lt;br /&gt;
* Problème rencontré : l’outil est bloqué quand on affecte à un bouton le passage à une deuxième fenêtre et l’exécution d’une application en même temps.&lt;br /&gt;
* Réalisation d’un programme C permettant le transfert des coordonnées du fichier source au fichier de destination.&lt;br /&gt;
&lt;br /&gt;
===Semaine 07/04 – 11/04===&lt;br /&gt;
* Test du programme de transfert de données sur l’outil et son implémentation&lt;br /&gt;
* Finalisation de l’interface graphique, en résolvant le problème rencontré.&lt;br /&gt;
* L’outil réalise bien la tâche demandée.&lt;/div&gt;</summary>
		<author><name>Zassaieb</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=Out_of_Space&amp;diff=11367</id>
		<title>Out of Space</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=Out_of_Space&amp;diff=11367"/>
				<updated>2014-04-12T17:22:14Z</updated>
		
		<summary type="html">&lt;p&gt;Zassaieb : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Généralités sur le projet ==&lt;br /&gt;
&lt;br /&gt;
=== Contexte ===&lt;br /&gt;
&lt;br /&gt;
Ce projet met en collaboration une artiste et une société de production de jeu vidéo 3D, et vise à mettre en place une application interactive utilisant une classe de dispositifs d'interaction orienté &amp;quot;maquette holographique&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=== Descriptif ===&lt;br /&gt;
&lt;br /&gt;
Le projet vise à réaliser une application interactive sur un affichage stéréoscopique, et qui consiste à piloter un objet (une bille) dans un certain environnement, tout en déroulant l’évolution de cet environnement sur une vidéo de fond. Le mouvement de cet objet est contrôlé par les gestes des mains qui sont détectées par une Kinect et traduits sur un écran 3D.&lt;br /&gt;
&lt;br /&gt;
=== Problématique ===&lt;br /&gt;
&lt;br /&gt;
La problématique qui se pose est de pouvoir prendre aussi en compte la tête de l’utilisateur sur l’espace d’acquisition afin d’avoir les données sur l’angle de vision et donc d’orienter l’affichage 3D sur l’écran selon sa position, ainsi le mouvement de la tête impliquera l’inclinaison des objets affichés dans un sens ou dans l’autre.&lt;br /&gt;
&lt;br /&gt;
== == &lt;br /&gt;
&lt;br /&gt;
=== Cahier des charges ===&lt;br /&gt;
{{Petit|''Le cahier des charges ne peut être réalisé pour l'instant car notre projet est une continuité d'un projet réalisé actuellement par des élèves en IMA5, et les tâches qui nous seront affectées vont dépendre de leur avancement. La phase de transition sera faite quelques jours avant leur soutenance. Cependant, nous avons commencé par nous familiariser aux outils à utiliser''}}&lt;br /&gt;
&lt;br /&gt;
=== Les outils matériels/logiciels utilisés ===&lt;br /&gt;
&lt;br /&gt;
* Kinect, le périphérique de reconnaissance de mouvement&amp;lt;br/&amp;gt;&lt;br /&gt;
* Ecran Stereoscopique pour l'affichage 3D&amp;lt;br/&amp;gt;&lt;br /&gt;
* 3Gear possède une technologie qui permet, à partir des caméras 3D de la Kinect, de reconstruire une représentation précise des doigts et de ce que les mains font, en prenant les données 3D brutes et les transformant en informations utilisables sur l'état des mains. Les interfaces de programmation sont basées sur le pointage et le pincement et fournissent les angles des articulations approximatives, elles sont disponibles en C ++, C # et Java&amp;lt;br/&amp;gt;&lt;br /&gt;
* Unity 3D est un logiciel middleware de création de contenu interactif comportant de la vidéo et des objets 3D/2D. Il permet de créer des scènes supportant des éclairages, des terrains, des caméras, des textures ... . L’intérêt de ce logiciel est que celui-ci dispose d’une interface intuitive d’intégration d’objets et de scripts ; l’éditeur d’Unity intègre des composants pré-configurés évitant le développement de code fastidieux.&lt;br /&gt;
&lt;br /&gt;
== Travail réalisé ==&lt;br /&gt;
===Semaine 03/02 – 07/02===&lt;br /&gt;
* Entretien avec Mr Laurent Grisonni pour comprendre le projet&lt;br /&gt;
* Etablissement d’un cahier de charge global en attente de précisions après la soutenance des IMA5&lt;br /&gt;
* Spécifications des outils et matériels utilisés&lt;br /&gt;
===Semaine 10/02 - 14/02===&lt;br /&gt;
* Rencontre avec les étudiants qui travaillent déjà sur le sujet&lt;br /&gt;
* Compréhension du travail réalisé&lt;br /&gt;
* Suggestion d’éventuelles améliorations&lt;br /&gt;
===Semaine 17/02 - 21/02===&lt;br /&gt;
* Prise en main de l’outil Unity à l’aide de quelques Tutoriels pour la création de scènes 3D&lt;br /&gt;
* Compréhension et analyse de la librairie 3gear de détection de geste via la Kinect&lt;br /&gt;
===Semaine 03/03 – 07/03===&lt;br /&gt;
* Spécification du besoin : Mise en place d’un outil de Calibration pour calibrer mettre en place la scène 3D selon la position de l’utilisateur, pour l’utilisation par un non informaticien.&lt;br /&gt;
===Semaine 12/03 – 14/03===&lt;br /&gt;
* Installation à l’IRCICA, remise des clefs et badges de la salle de travail, récupération du SVN du projet.&lt;br /&gt;
* Rencontre de plusieurs problèmes dont :&lt;br /&gt;
o	Pas de licence Windows sur le poste fourni &lt;br /&gt;
o	Problèmes de réseau et d’accès internet pour l’extraction du SVN &lt;br /&gt;
===Semaine 24/03 – 28/03===&lt;br /&gt;
* Installation du logiciel Unity&lt;br /&gt;
* Impossibilité d’installer les logiciels de programmation pour la librairie 3gear: Processeur incompatible&lt;br /&gt;
* Premiers tests du projet existant, incomplets par manque d’outils.&lt;br /&gt;
* Ajustements de la  scène Unity à la taille de l’écran Stéréoscopique&lt;br /&gt;
===Semaine 31/03 – 04/04===&lt;br /&gt;
''Outil de calibration'' : Cet outil est censé permettre à l’artiste ou n’importe quel autre utilisateur non information de pouvoir ajuster les réglages et le calibrage des Kinects par rapport à l’écran stéréoscopique sans avoir à modifier les lignes de code de l’application. &lt;br /&gt;
&lt;br /&gt;
''Calibrage'' : Afin de réaliser le calibrage de la Kinect, il faut d’abord lancer les programmes d’installation de la librairie 3gear de  la Kinect (nimble_calib et nimble_server, ces applications sont fournies avec le kit de la librairie), il faut ensuite lancer l’application Kinect_MSFT_Calibration. Cette application a été déjà développée pour ce projet et qui consiste en l’affichage de l’image reçue par la Kinect afin de sélectionner dessus les points des 4 coins de l’écran stéréoscopique (l’écran étant visible sur l’image), l’application enregistre alors ces coordonnées dans un fichier texte, et donc, ces coordonnées doivent être repris et mis dans un autre fichier texte en effectuant quelques modifications dessus. Ce dernier est celui qui est utilisé par l’application d’affichage de la scène 3D sur l’écran 3D, et qui utilise ces points pour régler l’affichage. &lt;br /&gt;
&lt;br /&gt;
* Prise en main de l’outil de développement d’interfaces graphiques QT&lt;br /&gt;
* Première ébauche de la gestion des fenêtres de l’interface graphique à développer.&lt;br /&gt;
* Problème rencontré : l’outil est bloqué quand on affecte à un bouton le passage à une deuxième fenêtre et l’exécution d’une application en même temps.&lt;br /&gt;
* Réalisation d’un programme C permettant le transfert des coordonnées du fichier source au fichier de destination.&lt;br /&gt;
&lt;br /&gt;
===Semaine 07/04 – 11/04===&lt;br /&gt;
* Test du programme de transfert de données sur l’outil et son implémentation&lt;br /&gt;
* Finalisation de l’interface graphique, en résolvant le problème rencontré.&lt;br /&gt;
* L’outil réalise bien la tâche demandée.&lt;/div&gt;</summary>
		<author><name>Zassaieb</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=Out_of_Space&amp;diff=8993</id>
		<title>Out of Space</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=Out_of_Space&amp;diff=8993"/>
				<updated>2014-02-05T14:35:57Z</updated>
		
		<summary type="html">&lt;p&gt;Zassaieb : /* Cahier des charges */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Généralités sur le projet ==&lt;br /&gt;
&lt;br /&gt;
=== Contexte ===&lt;br /&gt;
&lt;br /&gt;
Ce projet met en collaboration une artiste et une société de production de jeu vidéo 3D, et vise à mettre en place une application interactive utilisant une classe de dispositifs d'interaction orienté &amp;quot;maquette holographique&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=== Descriptif ===&lt;br /&gt;
&lt;br /&gt;
Le projet vise à réaliser une application interactive sur un affichage stéréoscopique, et qui consiste à piloter un objet (une bille) dans un certain environnement, tout en déroulant l’évolution de cet environnement sur une vidéo de fond. Le mouvement de cet objet est contrôlé par les gestes des mains qui sont détectées par une Kinect et traduits sur un écran 3D.&lt;br /&gt;
&lt;br /&gt;
=== Problématique ===&lt;br /&gt;
&lt;br /&gt;
La problématique qui se pose est de pouvoir prendre aussi en compte la tête de l’utilisateur sur l’espace d’acquisition afin d’avoir les données sur l’angle de vision et donc d’orienter l’affichage 3D sur l’écran selon sa position, ainsi le mouvement de la tête impliquera l’inclinaison des objets affichés dans un sens ou dans l’autre.&lt;br /&gt;
&lt;br /&gt;
== == &lt;br /&gt;
&lt;br /&gt;
=== Cahier des charges ===&lt;br /&gt;
{{Petit|''Le cahier des charges ne peut être réalisé pour l'instant car notre projet est une continuité d'un projet réalisé actuellement par des élèves en IMA5, et les tâches qui nous seront affectées vont dépendre de leur avancement. La phase de transition sera faite quelques jours avant leur soutenance. Cependant, nous avons commencé par nous familiariser aux outils à utiliser''}}&lt;br /&gt;
&lt;br /&gt;
=== Les outils matériels/logiciels utilisés ===&lt;br /&gt;
&lt;br /&gt;
* Kinect, le périphérique de reconnaissance de mouvement&amp;lt;br/&amp;gt;&lt;br /&gt;
* Ecran Stereoscopique pour l'affichage 3D&amp;lt;br/&amp;gt;&lt;br /&gt;
* 3Gear possède une technologie qui permet, à partir des caméras 3D de la Kinect, de reconstruire une représentation précise des doigts et de ce que les mains font, en prenant les données 3D brutes et les transformant en informations utilisables sur l'état des mains. Les interfaces de programmation sont basées sur le pointage et le pincement et fournissent les angles des articulations approximatives, elles sont disponibles en C ++, C # et Java&amp;lt;br/&amp;gt;&lt;br /&gt;
* Unity 3D est un logiciel middleware de création de contenu interactif comportant de la vidéo et des objets 3D/2D. Il permet de créer des scènes supportant des éclairages, des terrains, des caméras, des textures ... . L’intérêt de ce logiciel est que celui-ci dispose d’une interface intuitive d’intégration d’objets et de scripts ; l’éditeur d’Unity intègre des composants pré-configurés évitant le développement de code fastidieux.&lt;/div&gt;</summary>
		<author><name>Zassaieb</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=Mod%C3%A8le:Petit&amp;diff=8976</id>
		<title>Modèle:Petit</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=Mod%C3%A8le:Petit&amp;diff=8976"/>
				<updated>2014-02-05T14:06:15Z</updated>
		
		<summary type="html">&lt;p&gt;Zassaieb : Page créée avec « ''Le cahier des charges ne peut être réalisé pour l'instant car notre projet est une continuité d'un projet réalisé actuellement par des élèves en IMA5, et les tâche... »&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''Le cahier des charges ne peut être réalisé pour l'instant car notre projet est une continuité d'un projet réalisé actuellement par des élèves en IMA5, et les tâches qui nous seront affectées vont dépendre de leur avancement. La phase de transition sera faite quelques jours avant leur soutenance. Cependant, nous avons commencé par nous familiariser aux outils à utiliser''&lt;/div&gt;</summary>
		<author><name>Zassaieb</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=Out_of_Space&amp;diff=8965</id>
		<title>Out of Space</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=Out_of_Space&amp;diff=8965"/>
				<updated>2014-02-05T13:57:24Z</updated>
		
		<summary type="html">&lt;p&gt;Zassaieb : /* Descriptif */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Généralités sur le projet ==&lt;br /&gt;
&lt;br /&gt;
=== Contexte ===&lt;br /&gt;
&lt;br /&gt;
Ce projet met en collaboration une artiste et une société de production de jeu vidéo 3D, et vise à mettre en place une application interactive utilisant une classe de dispositifs d'interaction orienté &amp;quot;maquette holographique&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=== Descriptif ===&lt;br /&gt;
&lt;br /&gt;
Le projet vise à réaliser une application interactive sur un affichage stéréoscopique, et qui consiste à piloter un objet (une bille) dans un certain environnement, tout en déroulant l’évolution de cet environnement sur une vidéo de fond. Le mouvement de cet objet est contrôlé par les gestes des mains qui sont détectées par une Kinect et traduits sur un écran 3D.&lt;br /&gt;
&lt;br /&gt;
=== Problématique ===&lt;br /&gt;
&lt;br /&gt;
La problématique qui se pose est de pouvoir prendre aussi en compte la tête de l’utilisateur sur l’espace d’acquisition afin d’avoir les données sur l’angle de vision et donc d’orienter l’affichage 3D sur l’écran selon sa position, ainsi le mouvement de la tête impliquera l’inclinaison des objets affichés dans un sens ou dans l’autre.&lt;br /&gt;
&lt;br /&gt;
== == &lt;br /&gt;
&lt;br /&gt;
=== Cahier des charges ===&lt;br /&gt;
''Le cahier des charges ne peut être réalisé pour l'instant car notre projet est une continuité d'un projet réalisé actuellement par des élèves en IMA5, et les tâches qui nous seront affectées vont dépendre de leur avancement. La phase de transition sera faite quelques jours avant leur soutenance. Cependant, nous avons commencé par nous familiariser aux outils à utiliser''&lt;br /&gt;
&lt;br /&gt;
=== Les outils matériels/logiciels utilisés ===&lt;br /&gt;
&lt;br /&gt;
* Kinect, le périphérique de reconnaissance de mouvement&amp;lt;br/&amp;gt;&lt;br /&gt;
* Ecran Stereoscopique pour l'affichage 3D&amp;lt;br/&amp;gt;&lt;br /&gt;
* 3Gear possède une technologie qui permet, à partir des caméras 3D de la Kinect, de reconstruire une représentation précise des doigts et de ce que les mains font, en prenant les données 3D brutes et les transformant en informations utilisables sur l'état des mains. Les interfaces de programmation sont basées sur le pointage et le pincement et fournissent les angles des articulations approximatives, elles sont disponibles en C ++, C # et Java&amp;lt;br/&amp;gt;&lt;br /&gt;
* Unity 3D est un logiciel middleware de création de contenu interactif comportant de la vidéo et des objets 3D/2D. Il permet de créer des scènes supportant des éclairages, des terrains, des caméras, des textures ... . L’intérêt de ce logiciel est que celui-ci dispose d’une interface intuitive d’intégration d’objets et de scripts ; l’éditeur d’Unity intègre des composants pré-configurés évitant le développement de code fastidieux.&lt;/div&gt;</summary>
		<author><name>Zassaieb</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=Out_of_Space&amp;diff=8962</id>
		<title>Out of Space</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=Out_of_Space&amp;diff=8962"/>
				<updated>2014-02-05T13:52:36Z</updated>
		
		<summary type="html">&lt;p&gt;Zassaieb : /* Cahier des charges */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Généralités sur le projet ==&lt;br /&gt;
&lt;br /&gt;
=== Contexte ===&lt;br /&gt;
&lt;br /&gt;
Ce projet met en collaboration une artiste et une société de production de jeu vidéo 3D, et vise à mettre en place une application interactive utilisant une classe de dispositifs d'interaction orienté &amp;quot;maquette holographique&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=== Descriptif ===&lt;br /&gt;
&lt;br /&gt;
Le projet vise à réaliser une application interactive sur un affichage stéréoscopique, et qui consiste piloter un objet (une bille) dans un certain environnement, tout en déroulant l’évolution de cet environnement sur une vidéo de fond. Le mouvement de cet objet est contrôlé par les gestes des mains qui sont détectées par une Kinect et traduits sur un écran 3D.&lt;br /&gt;
&lt;br /&gt;
=== Problématique ===&lt;br /&gt;
&lt;br /&gt;
La problématique qui se pose est de pouvoir prendre aussi en compte la tête de l’utilisateur sur l’espace d’acquisition afin d’avoir les données sur l’angle de vision et donc d’orienter l’affichage 3D sur l’écran selon sa position, ainsi le mouvement de la tête impliquera l’inclinaison des objets affichés dans un sens ou dans l’autre.&lt;br /&gt;
&lt;br /&gt;
== == &lt;br /&gt;
&lt;br /&gt;
=== Cahier des charges ===&lt;br /&gt;
''Le cahier des charges ne peut être réalisé pour l'instant car notre projet est une continuité d'un projet réalisé actuellement par des élèves en IMA5, et les tâches qui nous seront affectées vont dépendre de leur avancement. La phase de transition sera faite quelques jours avant leur soutenance. Cependant, nous avons commencé par nous familiariser aux outils à utiliser''&lt;br /&gt;
&lt;br /&gt;
=== Les outils matériels/logiciels utilisés ===&lt;br /&gt;
&lt;br /&gt;
* Kinect, le périphérique de reconnaissance de mouvement&amp;lt;br/&amp;gt;&lt;br /&gt;
* Ecran Stereoscopique pour l'affichage 3D&amp;lt;br/&amp;gt;&lt;br /&gt;
* 3Gear possède une technologie qui permet, à partir des caméras 3D de la Kinect, de reconstruire une représentation précise des doigts et de ce que les mains font, en prenant les données 3D brutes et les transformant en informations utilisables sur l'état des mains. Les interfaces de programmation sont basées sur le pointage et le pincement et fournissent les angles des articulations approximatives, elles sont disponibles en C ++, C # et Java&amp;lt;br/&amp;gt;&lt;br /&gt;
* Unity 3D est un logiciel middleware de création de contenu interactif comportant de la vidéo et des objets 3D/2D. Il permet de créer des scènes supportant des éclairages, des terrains, des caméras, des textures ... . L’intérêt de ce logiciel est que celui-ci dispose d’une interface intuitive d’intégration d’objets et de scripts ; l’éditeur d’Unity intègre des composants pré-configurés évitant le développement de code fastidieux.&lt;/div&gt;</summary>
		<author><name>Zassaieb</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=Out_of_Space&amp;diff=8961</id>
		<title>Out of Space</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=Out_of_Space&amp;diff=8961"/>
				<updated>2014-02-05T13:52:14Z</updated>
		
		<summary type="html">&lt;p&gt;Zassaieb : /* Cahier des charges */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Généralités sur le projet ==&lt;br /&gt;
&lt;br /&gt;
=== Contexte ===&lt;br /&gt;
&lt;br /&gt;
Ce projet met en collaboration une artiste et une société de production de jeu vidéo 3D, et vise à mettre en place une application interactive utilisant une classe de dispositifs d'interaction orienté &amp;quot;maquette holographique&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=== Descriptif ===&lt;br /&gt;
&lt;br /&gt;
Le projet vise à réaliser une application interactive sur un affichage stéréoscopique, et qui consiste piloter un objet (une bille) dans un certain environnement, tout en déroulant l’évolution de cet environnement sur une vidéo de fond. Le mouvement de cet objet est contrôlé par les gestes des mains qui sont détectées par une Kinect et traduits sur un écran 3D.&lt;br /&gt;
&lt;br /&gt;
=== Problématique ===&lt;br /&gt;
&lt;br /&gt;
La problématique qui se pose est de pouvoir prendre aussi en compte la tête de l’utilisateur sur l’espace d’acquisition afin d’avoir les données sur l’angle de vision et donc d’orienter l’affichage 3D sur l’écran selon sa position, ainsi le mouvement de la tête impliquera l’inclinaison des objets affichés dans un sens ou dans l’autre.&lt;br /&gt;
&lt;br /&gt;
== == &lt;br /&gt;
&lt;br /&gt;
=== Cahier des charges ===&lt;br /&gt;
''Le cahier des charges ne peut être réalisé pour l'instant car notre projet est une continuité d'un projet réalisé actuellement par des élèves en IMA5, et les tâches qui nous seront affectées vont dépendre de leur avancement. La phase de transition sera faite quelques jours avant leur soutenance. Cependant, nous avons commencé nous familiariser aux outils à utiliser''&lt;br /&gt;
&lt;br /&gt;
=== Les outils matériels/logiciels utilisés ===&lt;br /&gt;
&lt;br /&gt;
* Kinect, le périphérique de reconnaissance de mouvement&amp;lt;br/&amp;gt;&lt;br /&gt;
* Ecran Stereoscopique pour l'affichage 3D&amp;lt;br/&amp;gt;&lt;br /&gt;
* 3Gear possède une technologie qui permet, à partir des caméras 3D de la Kinect, de reconstruire une représentation précise des doigts et de ce que les mains font, en prenant les données 3D brutes et les transformant en informations utilisables sur l'état des mains. Les interfaces de programmation sont basées sur le pointage et le pincement et fournissent les angles des articulations approximatives, elles sont disponibles en C ++, C # et Java&amp;lt;br/&amp;gt;&lt;br /&gt;
* Unity 3D est un logiciel middleware de création de contenu interactif comportant de la vidéo et des objets 3D/2D. Il permet de créer des scènes supportant des éclairages, des terrains, des caméras, des textures ... . L’intérêt de ce logiciel est que celui-ci dispose d’une interface intuitive d’intégration d’objets et de scripts ; l’éditeur d’Unity intègre des composants pré-configurés évitant le développement de code fastidieux.&lt;/div&gt;</summary>
		<author><name>Zassaieb</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=Out_of_Space&amp;diff=8958</id>
		<title>Out of Space</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=Out_of_Space&amp;diff=8958"/>
				<updated>2014-02-05T13:48:17Z</updated>
		
		<summary type="html">&lt;p&gt;Zassaieb : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Généralités sur le projet ==&lt;br /&gt;
&lt;br /&gt;
=== Contexte ===&lt;br /&gt;
&lt;br /&gt;
Ce projet met en collaboration une artiste et une société de production de jeu vidéo 3D, et vise à mettre en place une application interactive utilisant une classe de dispositifs d'interaction orienté &amp;quot;maquette holographique&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=== Descriptif ===&lt;br /&gt;
&lt;br /&gt;
Le projet vise à réaliser une application interactive sur un affichage stéréoscopique, et qui consiste piloter un objet (une bille) dans un certain environnement, tout en déroulant l’évolution de cet environnement sur une vidéo de fond. Le mouvement de cet objet est contrôlé par les gestes des mains qui sont détectées par une Kinect et traduits sur un écran 3D.&lt;br /&gt;
&lt;br /&gt;
=== Problématique ===&lt;br /&gt;
&lt;br /&gt;
La problématique qui se pose est de pouvoir prendre aussi en compte la tête de l’utilisateur sur l’espace d’acquisition afin d’avoir les données sur l’angle de vision et donc d’orienter l’affichage 3D sur l’écran selon sa position, ainsi le mouvement de la tête impliquera l’inclinaison des objets affichés dans un sens ou dans l’autre.&lt;br /&gt;
&lt;br /&gt;
== == &lt;br /&gt;
&lt;br /&gt;
=== Cahier des charges ===&lt;br /&gt;
''Le cahier des charges ne peut être réalisé pour l'instant car notre projet est une continuité d'un projet réalisé actuellement par des élèves en IMA5, et les tâches qui nous seront affectées vont dépendre de leur avancement. La phase de transition sera faite quelques jours avant leur soutenance. Nous commençons le moment par une prise en main des outils à utiliser''&lt;br /&gt;
&lt;br /&gt;
=== Les outils matériels/logiciels utilisés ===&lt;br /&gt;
&lt;br /&gt;
* Kinect, le périphérique de reconnaissance de mouvement&amp;lt;br/&amp;gt;&lt;br /&gt;
* Ecran Stereoscopique pour l'affichage 3D&amp;lt;br/&amp;gt;&lt;br /&gt;
* 3Gear possède une technologie qui permet, à partir des caméras 3D de la Kinect, de reconstruire une représentation précise des doigts et de ce que les mains font, en prenant les données 3D brutes et les transformant en informations utilisables sur l'état des mains. Les interfaces de programmation sont basées sur le pointage et le pincement et fournissent les angles des articulations approximatives, elles sont disponibles en C ++, C # et Java&amp;lt;br/&amp;gt;&lt;br /&gt;
* Unity 3D est un logiciel middleware de création de contenu interactif comportant de la vidéo et des objets 3D/2D. Il permet de créer des scènes supportant des éclairages, des terrains, des caméras, des textures ... . L’intérêt de ce logiciel est que celui-ci dispose d’une interface intuitive d’intégration d’objets et de scripts ; l’éditeur d’Unity intègre des composants pré-configurés évitant le développement de code fastidieux.&lt;/div&gt;</summary>
		<author><name>Zassaieb</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=Out_of_Space&amp;diff=8952</id>
		<title>Out of Space</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=Out_of_Space&amp;diff=8952"/>
				<updated>2014-02-05T13:35:25Z</updated>
		
		<summary type="html">&lt;p&gt;Zassaieb : /* Les outils matériels/logiciels utilisés */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Généralités ==&lt;br /&gt;
&lt;br /&gt;
=== Contexte ===&lt;br /&gt;
&lt;br /&gt;
Ce projet met en collaboration une artiste et une société de production de jeu vidéo 3D, et vise à mettre en place une application interactive utilisant une classe de dispositifs d'interaction orienté &amp;quot;maquette holographique&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=== Descriptif ===&lt;br /&gt;
&lt;br /&gt;
Le projet vise à réaliser une application interactive sur un affichage stéréoscopique, et qui consiste piloter un objet (une bille) dans un certain environnement, tout en déroulant l’évolution de cet environnement sur une vidéo de fond. Le mouvement de cet objet est contrôlé par les gestes des mains qui sont détectées par une Kinect et traduits sur un écran 3D.&lt;br /&gt;
&lt;br /&gt;
=== Problématique ===&lt;br /&gt;
&lt;br /&gt;
La problématique qui se pose est de pouvoir prendre aussi en compte la tête de l’utilisateur sur l’espace d’acquisition afin d’avoir les données sur l’angle de vision et donc d’orienter l’affichage 3D sur l’écran selon sa position, ainsi le mouvement de la tête impliquera l’inclinaison des objets affichés dans un sens ou dans l’autre.&lt;br /&gt;
&lt;br /&gt;
=== Les outils matériels/logiciels utilisés ===&lt;br /&gt;
&lt;br /&gt;
* Kinect, le périphérique de reconnaissance de mouvement&amp;lt;br/&amp;gt;&lt;br /&gt;
* Ecran Stereoscopique pour l'affichage 3D&amp;lt;br/&amp;gt;&lt;br /&gt;
* 3Gear possède une technologie qui permet, à partir des caméras 3D de la Kinect, de reconstruire une représentation précise des doigts et de ce que les mains font, en prenant les données 3D brutes et les transformant en informations utilisables sur l'état des mains. Les interfaces de programmation sont basées sur le pointage et le pincement et fournissent les angles des articulations approximatives, elles sont disponibles en C ++, C # et Java&amp;lt;br/&amp;gt;&lt;br /&gt;
* Unity 3D est un logiciel middleware de création de contenu interactif comportant de la vidéo et des objets 3D/2D. Il permet de créer des scènes supportant des éclairages, des terrains, des caméras, des textures ... . L’intérêt de ce logiciel est que celui-ci dispose d’une interface intuitive d’intégration d’objets et de scripts ; l’éditeur d’Unity intègre des composants pré-configurés évitant le développement de code fastidieux.&lt;/div&gt;</summary>
		<author><name>Zassaieb</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=Out_of_Space&amp;diff=8951</id>
		<title>Out of Space</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=Out_of_Space&amp;diff=8951"/>
				<updated>2014-02-05T13:34:46Z</updated>
		
		<summary type="html">&lt;p&gt;Zassaieb : /* Les outils matériels/logiciels utilisés */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Généralités ==&lt;br /&gt;
&lt;br /&gt;
=== Contexte ===&lt;br /&gt;
&lt;br /&gt;
Ce projet met en collaboration une artiste et une société de production de jeu vidéo 3D, et vise à mettre en place une application interactive utilisant une classe de dispositifs d'interaction orienté &amp;quot;maquette holographique&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=== Descriptif ===&lt;br /&gt;
&lt;br /&gt;
Le projet vise à réaliser une application interactive sur un affichage stéréoscopique, et qui consiste piloter un objet (une bille) dans un certain environnement, tout en déroulant l’évolution de cet environnement sur une vidéo de fond. Le mouvement de cet objet est contrôlé par les gestes des mains qui sont détectées par une Kinect et traduits sur un écran 3D.&lt;br /&gt;
&lt;br /&gt;
=== Problématique ===&lt;br /&gt;
&lt;br /&gt;
La problématique qui se pose est de pouvoir prendre aussi en compte la tête de l’utilisateur sur l’espace d’acquisition afin d’avoir les données sur l’angle de vision et donc d’orienter l’affichage 3D sur l’écran selon sa position, ainsi le mouvement de la tête impliquera l’inclinaison des objets affichés dans un sens ou dans l’autre.&lt;br /&gt;
&lt;br /&gt;
=== Les outils matériels/logiciels utilisés ===&lt;br /&gt;
&lt;br /&gt;
* Kinect le périphérique de reconnaissance de mouvement&amp;lt;br/&amp;gt;&lt;br /&gt;
* Ecran Stereoscopique pour l'affichage 3D&amp;lt;br/&amp;gt;&lt;br /&gt;
* 3Gear possède une technologie qui permet, à partir des caméras 3D de la Kinect, de reconstruire une représentation précise des doigts et de ce que les mains font, en prenant les données 3D brutes et les transformant en informations utilisables sur l'état des mains. Les interfaces de programmation sont basées sur le pointage et le pincement et fournissent les angles des articulations approximatives, elles sont disponibles en C ++, C # et Java&amp;lt;br/&amp;gt;&lt;br /&gt;
* Unity 3D est un logiciel middleware de création de contenu interactif comportant de la vidéo et des objets 3D/2D. Il permet de créer des scènes supportant des éclairages, des terrains, des caméras, des textures ... . L’intérêt de ce logiciel est que celui-ci dispose d’une interface intuitive d’intégration d’objets et de scripts ; l’éditeur d’Unity intègre des composants pré-configurés évitant le développement de code fastidieux.&lt;/div&gt;</summary>
		<author><name>Zassaieb</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=Out_of_Space&amp;diff=8945</id>
		<title>Out of Space</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=Out_of_Space&amp;diff=8945"/>
				<updated>2014-02-05T12:17:59Z</updated>
		
		<summary type="html">&lt;p&gt;Zassaieb : /* Les outils matériels/logiciels utilisés */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Généralités ==&lt;br /&gt;
&lt;br /&gt;
=== Contexte ===&lt;br /&gt;
&lt;br /&gt;
Ce projet met en collaboration une artiste et une société de production de jeu vidéo 3D, et vise à mettre en place une application interactive utilisant une classe de dispositifs d'interaction orienté &amp;quot;maquette holographique&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=== Descriptif ===&lt;br /&gt;
&lt;br /&gt;
Le projet vise à réaliser une application interactive sur un affichage stéréoscopique, et qui consiste piloter un objet (une bille) dans un certain environnement, tout en déroulant l’évolution de cet environnement sur une vidéo de fond. Le mouvement de cet objet est contrôlé par les gestes des mains qui sont détectées par une Kinect et traduits sur un écran 3D.&lt;br /&gt;
&lt;br /&gt;
=== Problématique ===&lt;br /&gt;
&lt;br /&gt;
La problématique qui se pose est de pouvoir prendre aussi en compte la tête de l’utilisateur sur l’espace d’acquisition afin d’avoir les données sur l’angle de vision et donc d’orienter l’affichage 3D sur l’écran selon sa position, ainsi le mouvement de la tête impliquera l’inclinaison des objets affichés dans un sens ou dans l’autre.&lt;br /&gt;
&lt;br /&gt;
=== Les outils matériels/logiciels utilisés ===&lt;br /&gt;
{{colonnes|nombre=1|&lt;br /&gt;
&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Zassaieb</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=Out_of_Space&amp;diff=8944</id>
		<title>Out of Space</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=Out_of_Space&amp;diff=8944"/>
				<updated>2014-02-05T12:16:45Z</updated>
		
		<summary type="html">&lt;p&gt;Zassaieb : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Généralités ==&lt;br /&gt;
&lt;br /&gt;
=== Contexte ===&lt;br /&gt;
&lt;br /&gt;
Ce projet met en collaboration une artiste et une société de production de jeu vidéo 3D, et vise à mettre en place une application interactive utilisant une classe de dispositifs d'interaction orienté &amp;quot;maquette holographique&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=== Descriptif ===&lt;br /&gt;
&lt;br /&gt;
Le projet vise à réaliser une application interactive sur un affichage stéréoscopique, et qui consiste piloter un objet (une bille) dans un certain environnement, tout en déroulant l’évolution de cet environnement sur une vidéo de fond. Le mouvement de cet objet est contrôlé par les gestes des mains qui sont détectées par une Kinect et traduits sur un écran 3D.&lt;br /&gt;
&lt;br /&gt;
=== Problématique ===&lt;br /&gt;
&lt;br /&gt;
La problématique qui se pose est de pouvoir prendre aussi en compte la tête de l’utilisateur sur l’espace d’acquisition afin d’avoir les données sur l’angle de vision et donc d’orienter l’affichage 3D sur l’écran selon sa position, ainsi le mouvement de la tête impliquera l’inclinaison des objets affichés dans un sens ou dans l’autre.&lt;br /&gt;
&lt;br /&gt;
=== Les outils matériels/logiciels utilisés ===&lt;br /&gt;
{{colonnes|nombre=1|&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Zassaieb</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=Mod%C3%A8le:Colonnes&amp;diff=8943</id>
		<title>Modèle:Colonnes</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=Mod%C3%A8le:Colonnes&amp;diff=8943"/>
				<updated>2014-02-05T12:15:46Z</updated>
		
		<summary type="html">&lt;p&gt;Zassaieb : Page créée avec « *	3Gear possède une technologie qui permet, à partir des caméras 3D de la Kinect, de reconstruire une représentation précise des doigts et de ce que les mains font, en p... »&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;*	3Gear possède une technologie qui permet, à partir des caméras 3D de la Kinect, de reconstruire une représentation précise des doigts et de ce que les mains font, en prenant les données 3D brutes et les transformant en informations utilisables sur l'état des mains. Les interfaces de programmation sont basées sur le pointage et le pincement et fournissent les angles des articulations approximatives, elles sont disponibles en C ++, C # et Java.&lt;br /&gt;
*	Unity 3D est un logiciel middleware de création de contenu interactif comportant de la vidéo et des objets 3D/2D. Il permet de créer des scènes supportant des éclairages, des terrains, des caméras, des textures ... . L’intérêt de ce logiciel est que celui-ci dispose d’une interface intuitive d’intégration d’objets et de scripts ; l’éditeur d’Unity intègre des composants pré-configurés évitant le développement de code fastidieux.&lt;/div&gt;</summary>
		<author><name>Zassaieb</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=Out_of_Space&amp;diff=8942</id>
		<title>Out of Space</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=Out_of_Space&amp;diff=8942"/>
				<updated>2014-02-05T12:14:58Z</updated>
		
		<summary type="html">&lt;p&gt;Zassaieb : Page créée avec « == Généralités ==  === Contexte ===  Ce projet met en collaboration une artiste et une société de production de jeu vidéo 3D, et vise à mettre en place une application... »&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Généralités ==&lt;br /&gt;
&lt;br /&gt;
=== Contexte ===&lt;br /&gt;
&lt;br /&gt;
Ce projet met en collaboration une artiste et une société de production de jeu vidéo 3D, et vise à mettre en place une application interactive utilisant une classe de dispositifs d'interaction orienté &amp;quot;maquette holographique&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=== Descriptif ===&lt;br /&gt;
&lt;br /&gt;
Le projet vise à réaliser une application interactive sur un affichage stéréoscopique, et qui consiste piloter un objet (une bille) dans un certain environnement, tout en déroulant l’évolution de cet environnement sur une vidéo de fond. Le mouvement de cet objet est contrôlé par les gestes des mains qui sont détectées par une Kinect et traduits sur un écran 3D.&lt;br /&gt;
&lt;br /&gt;
=== Problématique ===&lt;br /&gt;
&lt;br /&gt;
La problématique qui se pose est de pouvoir prendre aussi en compte la tête de l’utilisateur sur l’espace d’acquisition afin d’avoir les données sur l’angle de vision et donc d’orienter l’affichage 3D sur l’écran selon sa position, ainsi le mouvement de la tête impliquera l’inclinaison des objets affichés dans un sens ou dans l’autre.&lt;br /&gt;
&lt;br /&gt;
=== Les outils matériels/logiciels utilisés ===&lt;br /&gt;
{{colonnes|nombre=1|&lt;br /&gt;
*3Gear possède une technologie qui permet, à partir des caméras 3D de la Kinect, de reconstruire une représentation précise des doigts et de ce que les mains font, en prenant les données 3D brutes et les transformant en informations utilisables sur l'état des mains. Les interfaces de programmation sont basées sur le pointage et le pincement et fournissent les angles des articulations approximatives, elles sont disponibles en C ++, C # et Java.&lt;br /&gt;
*Unity 3D est un logiciel middleware de création de contenu interactif comportant de la vidéo et des objets 3D/2D. Il permet de créer des scènes supportant des éclairages, des terrains, des caméras, des textures ... . L’intérêt de ce logiciel est que celui-ci dispose d’une interface intuitive d’intégration d’objets et de scripts ; l’éditeur d’Unity intègre des composants pré-configurés évitant le développement de code fastidieux.&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Zassaieb</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=Gestion_afficheurs,_2012/2013,_TD3&amp;diff=5035</id>
		<title>Gestion afficheurs, 2012/2013, TD3</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=Gestion_afficheurs,_2012/2013,_TD3&amp;diff=5035"/>
				<updated>2013-04-30T17:25:19Z</updated>
		
		<summary type="html">&lt;p&gt;Zassaieb : /* Rapports des élèves */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Evaluation informatique et électronique ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Ne pas modifier, ecrivez votre rapport plus bas --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Gestion de projet / rédaction Wiki ===&lt;br /&gt;
&lt;br /&gt;
* Informatique : &lt;br /&gt;
* Electronique :&lt;br /&gt;
Note .&lt;br /&gt;
&lt;br /&gt;
=== Test fonctionnels ===&lt;br /&gt;
&lt;br /&gt;
* Sous-système.&lt;br /&gt;
** Sous-système informatique : &lt;br /&gt;
** Sous-système électronique :&lt;br /&gt;
&lt;br /&gt;
=== Qualité de la réalisation ===&lt;br /&gt;
&lt;br /&gt;
* Informatique : Note .&lt;br /&gt;
** procédure de test :&lt;br /&gt;
** pages HTML et Javascript :&lt;br /&gt;
** scripts PHP ou programmes C :&lt;br /&gt;
** installation sur FoxBoard :&lt;br /&gt;
* Electronique : Note .&lt;br /&gt;
** qualité de la réalisation :&lt;br /&gt;
** tests autonomes :&lt;br /&gt;
&lt;br /&gt;
=== Bilan ===&lt;br /&gt;
&lt;br /&gt;
Note finale :&lt;br /&gt;
&lt;br /&gt;
== Rapports des élèves ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Pour la vidéo finale ne pas effacer&lt;br /&gt;
&amp;lt;include nopre noesc src=&amp;quot;/home/pedago/pimasc/include/video-xxxx-iframe.html&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both;&amp;quot;&amp;gt;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Commencez votre rapport ici ! --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Rapport pour la séance du 28/03/2013'''&lt;br /&gt;
&lt;br /&gt;
'''Partie Electronique:'''&lt;br /&gt;
&lt;br /&gt;
Lors de cette première séance de projet, nous avons effectué deux tâches.&lt;br /&gt;
Tout d'abord, nous avons appris à nous servir du logiciel Altium grâce à un tutoriel PDF fourni par Mr WICHMANN. Nous avons testé les fonctionnalités du logiciel à l'aide d'un exemple fourni par ce tutoriel.&lt;br /&gt;
Enfin, nous avons commencé à mettre en place le schéma électronique et à définir les composants dont nous aurons besoin; parmi eux, des multiplexeurs et démultiplexeurs, des bascules D servant de fonctions mémoires. Nous avons également réfléchi aux connexions que nous devrons utiliser (mise en place des bus de données, des liaisons séries, etc.). Et nous avons finalement créer un premier schéma validé par Mr WICHMANN qui pourrait représenter notre montage. Celui-ci est bien entendu un premier jet à perfectionner.&lt;br /&gt;
Durant cette première séance, les principales difficultés rencontrées furent la prise en main d'Altium, car ce fut la première fois que nous utilisions ce logiciel pour cette fonctionnalité. Il a fallu ensuite bien comprendre le système à réaliser pour définir nos objectifs et les techniques à mettre en oeuvre.&lt;br /&gt;
&lt;br /&gt;
'''Partie Informatique:'''&lt;br /&gt;
&lt;br /&gt;
En ce qui concerne la partie informatique, il a fallut tout d'abord comprendre tous les annexes et exemples proposés pour la partie des afficheurs 7 segments, puis essayer de faire un schéma des étapes nécessaires à la conception du programme. Ensuite, nous avons testé l'affichage sur le banc Arduino afin de nous assurer de son bon fonctionnement, nous avons également testé chacun des segments afin de trouver la correspondance entre les bits d'un octet représentant un caractère et les segments des afficheurs.&lt;br /&gt;
Ce n'est qu'après que nous avons entamé la réalisation du programme: nous avons commencé par écrire une fonction qui demande un message à l'utilisateur et le charge dans un tableau de caractères, puis une fonction qui convertit chacun de ces caractères alphanumériques à son code afin qu'ils soient affichés sur les segments correspondants. Ces caractères sont ensuite envoyés en série aux 4 afficheurs et défilés à une vitesse d'une seconde par caractère jusqu'à l'affichage du message complet.&lt;br /&gt;
La principale difficulté rencontrée est celle de trouver un code à chacun des 36 caractères alphanumériques et les tester un à un pour vérifier l'exactitude du code.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Rapport pour la séance du 4/04/2013'''&lt;br /&gt;
&lt;br /&gt;
'''Partie Electronique:'''&lt;br /&gt;
&lt;br /&gt;
Lors de cette deuxième séance nous avons finalisé le schéma sur le logiciel Altium:&lt;br /&gt;
[[Fichier:Schema1.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous avons branché la Nanobord et apprit à compiler (synthetize + build + program FPGA). &lt;br /&gt;
Nous avons débuté les tests sur l'oscilloscope (sans avoir abouti à des résultats satisfaisants), nous avons alors modifié le schéma.&lt;br /&gt;
&lt;br /&gt;
Les problèmes que nous avons rencontré lors des manipulations:&lt;br /&gt;
-Connexion entre Altium et la Nanobord&lt;br /&gt;
-Beaucoup d'erreurs de compilation au niveau de la programmation de la mémoire(que nous avons réussi à corriger)&lt;br /&gt;
-Erreur lors de l'utilisation des bascules D en fonction mémoire donc notre programme ne s'exécute pas comme nous le souhaitons&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Partie Informatique:'''&lt;br /&gt;
&lt;br /&gt;
Ayant bien avancé lors de la première séance pour la partie informatique, il eut des changements au niveau du cahier de charge.&lt;br /&gt;
&lt;br /&gt;
Pour la deuxième séance, nous sommes passés de l’affichage sur 7 segments à un affichage sur 16 segments, dans ce cas un caractère est représenté par deux mots de 8 bits soit 16 bits au total. Cela demande encore de nouveaux tests, recherche des correspondances entre bits et segments, et une modification de la fonction qui convertit un caractère à un code en changeant les 36 codes de chaque caractère. De plus, au lieu de récupérer le texte à la saisie, nous avons modifié la fonction pour que celle-ci récupère le texte à partir d’un fichier où le message à afficher sera stocké. &lt;br /&gt;
&lt;br /&gt;
Ensuite, nous avons écrit les fonctions qui permettront de contrôler la vitesse de défilement du texte: ralentir ou accélérer, et qui seront exécutées par envoie d’un signal au programme (SIGUSR1 et SIGUSR2) à partir du terminal par la commande « killall –SIGUSR1/2 programme ».&lt;br /&gt;
 &lt;br /&gt;
Et enfin, nous avons créé une page html statique, qui contiendra l’interface Web du programme.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Rapport pour la séance du 11/04/2013'''&lt;br /&gt;
&lt;br /&gt;
'''Partie Informatique:'''&lt;br /&gt;
&lt;br /&gt;
Cette dernière séance du projet était réservée à la réalisation de la page Web, et des tests finaux.&lt;br /&gt;
Dans le fichier html de l’interface Web, nous avons créé une page contenant une zone de texte où sera écrit le message et trois boutons cliquables, l’un pour envoyer le message et deux pour accélérer ou ralentir la vitesse de défilement. Cette page utilisant la bibliothèque JavaScript « jquery .js », nous avons créé les fonctions envoie accélère ou ralenti qui récupèrent l’action et font appels a des scripts PHP. Ensuite, nous avons créé deux fichiers PHP, l’un pour l’envoie du message et son stockage dans le fichier texte utilisé pour récupérer le message et le faire défiler, et l’autre pour gérer la vitesse de défilement en envoyant le signal nécessaire (SIGUSR1 ou SIGUSR2) pour accélérer ou ralentir.  &lt;br /&gt;
Après que la page Web fut faite, nous avons chargé le programme sur la Foxboard puis fait les tests.&lt;br /&gt;
Le programme réalise bien ce qui est demandé.&lt;/div&gt;</summary>
		<author><name>Zassaieb</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=Gestion_afficheurs,_2012/2013,_TD3&amp;diff=5034</id>
		<title>Gestion afficheurs, 2012/2013, TD3</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=Gestion_afficheurs,_2012/2013,_TD3&amp;diff=5034"/>
				<updated>2013-04-30T17:15:52Z</updated>
		
		<summary type="html">&lt;p&gt;Zassaieb : /* Rapports des élèves */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Evaluation informatique et électronique ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Ne pas modifier, ecrivez votre rapport plus bas --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Gestion de projet / rédaction Wiki ===&lt;br /&gt;
&lt;br /&gt;
* Informatique : &lt;br /&gt;
* Electronique :&lt;br /&gt;
Note .&lt;br /&gt;
&lt;br /&gt;
=== Test fonctionnels ===&lt;br /&gt;
&lt;br /&gt;
* Sous-système.&lt;br /&gt;
** Sous-système informatique : &lt;br /&gt;
** Sous-système électronique :&lt;br /&gt;
&lt;br /&gt;
=== Qualité de la réalisation ===&lt;br /&gt;
&lt;br /&gt;
* Informatique : Note .&lt;br /&gt;
** procédure de test :&lt;br /&gt;
** pages HTML et Javascript :&lt;br /&gt;
** scripts PHP ou programmes C :&lt;br /&gt;
** installation sur FoxBoard :&lt;br /&gt;
* Electronique : Note .&lt;br /&gt;
** qualité de la réalisation :&lt;br /&gt;
** tests autonomes :&lt;br /&gt;
&lt;br /&gt;
=== Bilan ===&lt;br /&gt;
&lt;br /&gt;
Note finale :&lt;br /&gt;
&lt;br /&gt;
== Rapports des élèves ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Pour la vidéo finale ne pas effacer&lt;br /&gt;
&amp;lt;include nopre noesc src=&amp;quot;/home/pedago/pimasc/include/video-xxxx-iframe.html&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both;&amp;quot;&amp;gt;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Commencez votre rapport ici ! --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Rapport pour la séance du 28/03/2013'''&lt;br /&gt;
&lt;br /&gt;
'''Partie Electronique:'''&lt;br /&gt;
&lt;br /&gt;
Lors de cette première séance de projet, nous avons effectué deux tâches.&lt;br /&gt;
Tout d'abord, nous avons appris à nous servir du logiciel Altium grâce à un tutoriel PDF fourni par Mr WICHMANN. Nous avons testé les fonctionnalités du logiciel à l'aide d'un exemple fourni par ce tutoriel.&lt;br /&gt;
Enfin, nous avons commencé à mettre en place le schéma électronique et à définir les composants dont nous aurons besoin; parmi eux, des multiplexeurs et démultiplexeurs, des bascules D servant de fonctions mémoires. Nous avons également réfléchi aux connexions que nous devrons utiliser (mise en place des bus de données, des liaisons séries, etc.). Et nous avons finalement créer un premier schéma validé par Mr WICHMANN qui pourrait représenter notre montage. Celui-ci est bien entendu un premier jet à perfectionner.&lt;br /&gt;
Durant cette première séance, les principales difficultés rencontrées furent la prise en main d'Altium, car ce fut la première fois que nous utilisions ce logiciel pour cette fonctionnalité. Il a fallu ensuite bien comprendre le système à réaliser pour définir nos objectifs et les techniques à mettre en oeuvre.&lt;br /&gt;
&lt;br /&gt;
'''Partie Informatique:'''&lt;br /&gt;
&lt;br /&gt;
En ce qui concerne la partie informatique, il a fallut tout d'abord comprendre tous les annexes et exemples proposés pour la partie des afficheurs 7 segments, puis essayer de faire un schéma des étapes nécessaires à la conception du programme. Ensuite, nous avons testé l'affichage sur le banc Arduino afin de nous assurer de son bon fonctionnement, nous avons également testé chacun des segments afin de trouver la correspondance entre les bits d'un octet représentant un caractère et les segments des afficheurs.&lt;br /&gt;
Ce n'est qu'après que nous avons entamé la réalisation du programme: nous avons commencé par écrire une fonction qui demande un message à l'utilisateur et le charge dans un tableau de caractères, puis une fonction qui convertit chacun de ces caractères alphanumériques à son code afin qu'ils soient affichés sur les segments correspondants. Ces caractères sont ensuite envoyés en série aux 4 afficheurs et défilés à une vitesse d'une seconde par caractère jusqu'à l'affichage du message complet.&lt;br /&gt;
La principale difficulté rencontrée est celle de trouver un code à chacun des 36 caractères alphanumériques et les tester un à un pour vérifier l'exactitude du code.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Rapport pour la séance du 4/04/2013'''&lt;br /&gt;
&lt;br /&gt;
'''Partie Electronique:'''&lt;br /&gt;
&lt;br /&gt;
Lors de cette deuxième séance nous avons finalisé le schéma sur le logiciel Altium:&lt;br /&gt;
[[Fichier:Schema1.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous avons branché la Nanobord et apprit à compiler (synthetize + build + program FPGA). &lt;br /&gt;
Nous avons débuté les tests sur l'oscilloscope (sans avoir abouti à des résultats satisfaisants), nous avons alors modifié le schéma.&lt;br /&gt;
&lt;br /&gt;
Les problèmes que nous avons rencontré lors des manipulations:&lt;br /&gt;
-Connexion entre Altium et la Nanobord&lt;br /&gt;
-Beaucoup d'erreurs de compilation au niveau de la programmation de la mémoire(que nous avons réussi à corriger)&lt;br /&gt;
-Erreur lors de l'utilisation des bascules D en fonction mémoire donc notre programme ne s'exécute pas comme nous le souhaitons&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Partie Informatique:'''&lt;br /&gt;
&lt;br /&gt;
Ayant bien avancé lors de la première séance pour la partie informatique, il eut des changements au niveau du cahier de charge.&lt;br /&gt;
&lt;br /&gt;
Pour la deuxième séance, nous sommes passés de l’affichage sur 7 segments à un affichage sur 16 segments, dans ce cas un caractère est représenté par deux mots de 8 bits soit 16 bits au total. Cela demande encore de nouveaux tests, recherche des correspondances entre bits et segments, et une modification de la fonction qui convertit un caractère à un code en changeant les 36 codes de chaque caractère. De plus, au lieu de récupérer le texte à la saisie, nous avons modifié la fonction pour que celle-ci récupère le texte à partir d’un fichier où le message à afficher sera stocké. &lt;br /&gt;
&lt;br /&gt;
Ensuite, nous avons écrit les fonctions qui permettront de contrôler la vitesse de défilement du texte: ralentir ou accélérer, et qui seront exécutées par envoie d’un signal au programme (SIGUSR1 et SIGUSR2) à partir du terminal par la commande « killall –SIGUSR1/2 programme ».&lt;br /&gt;
 &lt;br /&gt;
Et enfin, nous avons créé une page html statique, qui contiendra l’interface Web du programme.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Rapport pour la séance du 11/04/2013'''&lt;br /&gt;
&lt;br /&gt;
'''Partie Informatique:'''&lt;br /&gt;
&lt;br /&gt;
Cette dernière séance du projet était réservée pour la réalisation de la page Web, et des tests finaux.&lt;br /&gt;
Dans le fichier html de l’interface Web, nous avons créé une page contenant une zone de texte où sera écris le message et trois bouton cliquable, l’un pour envoyer le message et deux pour accélérer ou ralentir la vitesse de défilement. Cette page utilisant la bibliothèque JavaScript « jquery .js », nous avons donc créé les fonctions envoie accélère ou ralenti qui récupèrent l’action et font appels a des scripts PHP. Ensuite, nous avons créé deux fichiers PHP, l’un pour l’envoie du message et son stockage dans le fichier texte utilisé pour récupérer le message et le faire défilé, et l’autre pour gérer la vitesse de défilement en envoyant le signal nécessaire (SIGUSR1 ou SIGUSR2) pour accélérer ou ralentir.  &lt;br /&gt;
Après que la page Web soit faite, nous avons chargé le programme sur la Foxboard puis fait les tests, le programme réalise bien ce qui est demandé.&lt;/div&gt;</summary>
		<author><name>Zassaieb</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=Gestion_afficheurs,_2012/2013,_TD3&amp;diff=5033</id>
		<title>Gestion afficheurs, 2012/2013, TD3</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=Gestion_afficheurs,_2012/2013,_TD3&amp;diff=5033"/>
				<updated>2013-04-30T15:54:18Z</updated>
		
		<summary type="html">&lt;p&gt;Zassaieb : /* Rapports des élèves */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Evaluation informatique et électronique ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Ne pas modifier, ecrivez votre rapport plus bas --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Gestion de projet / rédaction Wiki ===&lt;br /&gt;
&lt;br /&gt;
* Informatique : &lt;br /&gt;
* Electronique :&lt;br /&gt;
Note .&lt;br /&gt;
&lt;br /&gt;
=== Test fonctionnels ===&lt;br /&gt;
&lt;br /&gt;
* Sous-système.&lt;br /&gt;
** Sous-système informatique : &lt;br /&gt;
** Sous-système électronique :&lt;br /&gt;
&lt;br /&gt;
=== Qualité de la réalisation ===&lt;br /&gt;
&lt;br /&gt;
* Informatique : Note .&lt;br /&gt;
** procédure de test :&lt;br /&gt;
** pages HTML et Javascript :&lt;br /&gt;
** scripts PHP ou programmes C :&lt;br /&gt;
** installation sur FoxBoard :&lt;br /&gt;
* Electronique : Note .&lt;br /&gt;
** qualité de la réalisation :&lt;br /&gt;
** tests autonomes :&lt;br /&gt;
&lt;br /&gt;
=== Bilan ===&lt;br /&gt;
&lt;br /&gt;
Note finale :&lt;br /&gt;
&lt;br /&gt;
== Rapports des élèves ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Pour la vidéo finale ne pas effacer&lt;br /&gt;
&amp;lt;include nopre noesc src=&amp;quot;/home/pedago/pimasc/include/video-xxxx-iframe.html&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both;&amp;quot;&amp;gt;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Commencez votre rapport ici ! --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Rapport pour la séance du 28/03/2013'''&lt;br /&gt;
&lt;br /&gt;
'''Partie Electronique:'''&lt;br /&gt;
&lt;br /&gt;
Lors de cette première séance de projet, nous avons effectué deux tâches.&lt;br /&gt;
Tout d'abord, nous avons appris à nous servir du logiciel Altium grâce à un tutoriel PDF fourni par Mr WICHMANN. Nous avons testé les fonctionnalités du logiciel à l'aide d'un exemple fourni par ce tutoriel.&lt;br /&gt;
Enfin, nous avons commencé à mettre en place le schéma électronique et à définir les composants dont nous aurons besoin; parmi eux, des multiplexeurs et démultiplexeurs, des bascules D servant de fonctions mémoires. Nous avons également réfléchi aux connexions que nous devrons utiliser (mise en place des bus de données, des liaisons séries, etc.). Et nous avons finalement créer un premier schéma validé par Mr WICHMANN qui pourrait représenter notre montage. Celui-ci est bien entendu un premier jet à perfectionner.&lt;br /&gt;
Durant cette première séance, les principales difficultés rencontrées furent la prise en main d'Altium, car ce fut la première fois que nous utilisions ce logiciel pour cette fonctionnalité. Il a fallu ensuite bien comprendre le système à réaliser pour définir nos objectifs et les techniques à mettre en oeuvre.&lt;br /&gt;
&lt;br /&gt;
'''Partie Informatique:'''&lt;br /&gt;
&lt;br /&gt;
En ce qui concerne la partie informatique, il a fallut tout d'abord comprendre tous les annexes et exemples proposés pour la partie des afficheurs 7 segments, puis essayer de faire un schéma des étapes nécessaires à la conception du programme. Ensuite, nous avons testé l'affichage sur le banc Arduino afin de nous assurer de son bon fonctionnement, nous avons également testé chacun des segments afin de trouver la correspondance entre les bits d'un octet représentant un caractère et les segments des afficheurs.&lt;br /&gt;
Ce n'est qu'après que nous avons entamé la réalisation du programme: nous avons commencé par écrire une fonction qui demande un message à l'utilisateur et le charge dans un tableau de caractères, puis une fonction qui convertit chacun de ces caractères alphanumériques à son code afin qu'ils soient affichés sur les segments correspondants. Ces caractères sont ensuite envoyés en série aux 4 afficheurs et défilés à une vitesse d'une seconde par caractère jusqu'à l'affichage du message complet.&lt;br /&gt;
La principale difficulté rencontrée est celle de trouver un code à chacun des 36 caractères alphanumériques et les tester un à un pour vérifier l'exactitude du code.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Rapport pour la séance du 4/04/2013'''&lt;br /&gt;
&lt;br /&gt;
'''Partie Electronique:'''&lt;br /&gt;
&lt;br /&gt;
Lors de cette deuxième séance nous avons finalisé le schéma sur le logiciel Altium:&lt;br /&gt;
[[Fichier:Schema1.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous avons branché la Nanobord et apprit à compiler (synthetize + build + program FPGA). &lt;br /&gt;
Nous avons débuté les tests sur l'oscilloscope (sans avoir abouti à des résultats satisfaisants), nous avons alors modifié le schéma.&lt;br /&gt;
&lt;br /&gt;
Les problèmes que nous avons rencontré lors des manipulations:&lt;br /&gt;
-Connexion entre Altium et la Nanobord&lt;br /&gt;
-Beaucoup d'erreurs de compilation au niveau de la programmation de la mémoire(que nous avons réussi à corriger)&lt;br /&gt;
-Erreur lors de l'utilisation des bascules D en fonction mémoire donc notre programme ne s'exécute pas comme nous le souhaitons&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Partie Informatique:'''&lt;br /&gt;
&lt;br /&gt;
Ayant bien avancé lors de la première séance pour la partie informatique, il eut des changements au niveau du cahier de charge.&lt;br /&gt;
&lt;br /&gt;
Pour la deuxième séance, nous sommes passés de l’affichage sur 7 segments à un affichage sur 16 segments, dans ce cas un caractère est représenté par deux mots de 8 bits soit 16 bits au total. Cela demande encore de nouveaux tests, recherche des correspondances entre bits et segments, et une modification de la fonction qui convertit un caractère à un code en changeant les 36 codes de chaque caractère. De plus, au lieu de récupérer le texte à la saisie, nous avons modifié la fonction pour que celle-ci récupère le texte à partir d’un fichier où le message à afficher sera stocké. &lt;br /&gt;
&lt;br /&gt;
Ensuite, nous avons écrit les fonctions qui permettront de contrôler la vitesse de défilement du texte: ralentir ou accélérer, et qui seront exécutées par envoie d’un signal au programme (SIGUSR1 et SIGUSR2) à partir du terminal par la commande « killall –SIGUSR1/2 programme ».&lt;br /&gt;
 &lt;br /&gt;
Et enfin, nous avons créé une page html statique, qui contiendra l’interface Web du programme.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Rapport pour la séance du 11/04/2013'''&lt;br /&gt;
&lt;br /&gt;
'''Partie Informatique:'''&lt;/div&gt;</summary>
		<author><name>Zassaieb</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=Gestion_afficheurs,_2012/2013,_TD3&amp;diff=5032</id>
		<title>Gestion afficheurs, 2012/2013, TD3</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=Gestion_afficheurs,_2012/2013,_TD3&amp;diff=5032"/>
				<updated>2013-04-30T15:53:48Z</updated>
		
		<summary type="html">&lt;p&gt;Zassaieb : /* Rapports des élèves */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Evaluation informatique et électronique ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Ne pas modifier, ecrivez votre rapport plus bas --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Gestion de projet / rédaction Wiki ===&lt;br /&gt;
&lt;br /&gt;
* Informatique : &lt;br /&gt;
* Electronique :&lt;br /&gt;
Note .&lt;br /&gt;
&lt;br /&gt;
=== Test fonctionnels ===&lt;br /&gt;
&lt;br /&gt;
* Sous-système.&lt;br /&gt;
** Sous-système informatique : &lt;br /&gt;
** Sous-système électronique :&lt;br /&gt;
&lt;br /&gt;
=== Qualité de la réalisation ===&lt;br /&gt;
&lt;br /&gt;
* Informatique : Note .&lt;br /&gt;
** procédure de test :&lt;br /&gt;
** pages HTML et Javascript :&lt;br /&gt;
** scripts PHP ou programmes C :&lt;br /&gt;
** installation sur FoxBoard :&lt;br /&gt;
* Electronique : Note .&lt;br /&gt;
** qualité de la réalisation :&lt;br /&gt;
** tests autonomes :&lt;br /&gt;
&lt;br /&gt;
=== Bilan ===&lt;br /&gt;
&lt;br /&gt;
Note finale :&lt;br /&gt;
&lt;br /&gt;
== Rapports des élèves ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Pour la vidéo finale ne pas effacer&lt;br /&gt;
&amp;lt;include nopre noesc src=&amp;quot;/home/pedago/pimasc/include/video-xxxx-iframe.html&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both;&amp;quot;&amp;gt;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Commencez votre rapport ici ! --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Rapport pour la séance du 28/03/2013'''&lt;br /&gt;
&lt;br /&gt;
'''Partie Electronique:'''&lt;br /&gt;
&lt;br /&gt;
Lors de cette première séance de projet, nous avons effectué deux tâches.&lt;br /&gt;
Tout d'abord, nous avons appris à nous servir du logiciel Altium grâce à un tutoriel PDF fourni par Mr WICHMANN. Nous avons testé les fonctionnalités du logiciel à l'aide d'un exemple fourni par ce tutoriel.&lt;br /&gt;
Enfin, nous avons commencé à mettre en place le schéma électronique et à définir les composants dont nous aurons besoin; parmi eux, des multiplexeurs et démultiplexeurs, des bascules D servant de fonctions mémoires. Nous avons également réfléchi aux connexions que nous devrons utiliser (mise en place des bus de données, des liaisons séries, etc.). Et nous avons finalement créer un premier schéma validé par Mr WICHMANN qui pourrait représenter notre montage. Celui-ci est bien entendu un premier jet à perfectionner.&lt;br /&gt;
Durant cette première séance, les principales difficultés rencontrées furent la prise en main d'Altium, car ce fut la première fois que nous utilisions ce logiciel pour cette fonctionnalité. Il a fallu ensuite bien comprendre le système à réaliser pour définir nos objectifs et les techniques à mettre en oeuvre.&lt;br /&gt;
&lt;br /&gt;
'''Partie Informatique:'''&lt;br /&gt;
&lt;br /&gt;
En ce qui concerne la partie informatique, il a fallut tout d'abord comprendre tous les annexes et exemples proposés pour la partie des afficheurs 7 segments, puis essayer de faire un schéma des étapes nécessaires à la conception du programme. Ensuite, nous avons testé l'affichage sur le banc Arduino afin de nous assurer de son bon fonctionnement, nous avons également testé chacun des segments afin de trouver la correspondance entre les bits d'un octet représentant un caractère et les segments des afficheurs.&lt;br /&gt;
Ce n'est qu'après que nous avons entamé la réalisation du programme: nous avons commencé par écrire une fonction qui demande un message à l'utilisateur et le charge dans un tableau de caractères, puis une fonction qui convertit chacun de ces caractères alphanumériques à son code afin qu'ils soient affichés sur les segments correspondants. Ces caractères sont ensuite envoyés en série aux 4 afficheurs et défilés à une vitesse d'une seconde par caractère jusqu'à l'affichage du message complet.&lt;br /&gt;
La principale difficulté rencontrée est celle de trouver un code à chacun des 36 caractères alphanumériques et les tester un à un pour vérifier l'exactitude du code.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Rapport pour la séance du 4/04/2013'''&lt;br /&gt;
&lt;br /&gt;
'''Partie Electronique:'''&lt;br /&gt;
&lt;br /&gt;
Lors de cette deuxième séance nous avons finalisé le schéma sur le logiciel Altium:&lt;br /&gt;
[[Fichier:Schema1.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous avons branché la Nanobord et apprit à compiler (synthetize + build + program FPGA). &lt;br /&gt;
Nous avons débuté les tests sur l'oscilloscope (sans avoir abouti à des résultats satisfaisants), nous avons alors modifié le schéma.&lt;br /&gt;
&lt;br /&gt;
Les problèmes que nous avons rencontré lors des manipulations:&lt;br /&gt;
-Connexion entre Altium et la Nanobord&lt;br /&gt;
-Beaucoup d'erreurs de compilation au niveau de la programmation de la mémoire(que nous avons réussi à corriger)&lt;br /&gt;
-Erreur lors de l'utilisation des bascules D en fonction mémoire donc notre programme ne s'exécute pas comme nous le souhaitons&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Partie Informatique:'''&lt;br /&gt;
Ayant bien avancé lors de la première séance pour la partie informatique, il eut des changements au niveau du cahier de charge.&lt;br /&gt;
&lt;br /&gt;
Pour la deuxième séance, nous sommes passés de l’affichage sur 7 segments à un affichage sur 16 segments, dans ce cas un caractère est représenté par deux mots de 8 bits soit 16 bits au total. Cela demande encore de nouveaux tests, recherche des correspondances entre bits et segments, et une modification de la fonction qui convertit un caractère à un code en changeant les 36 codes de chaque caractère. De plus, au lieu de récupérer le texte à la saisie, nous avons modifié la fonction pour que celle-ci récupère le texte à partir d’un fichier où le message à afficher sera stocké. &lt;br /&gt;
&lt;br /&gt;
Ensuite, nous avons écrit les fonctions qui permettront de contrôler la vitesse de défilement du texte: ralentir ou accélérer, et qui seront exécutées par envoie d’un signal au programme (SIGUSR1 et SIGUSR2) à partir du terminal par la commande « killall –SIGUSR1/2 programme ».&lt;br /&gt;
 &lt;br /&gt;
Et enfin, nous avons créé une page html statique, qui contiendra l’interface Web du programme.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Rapport pour la séance du 11/04/2013'''&lt;br /&gt;
&lt;br /&gt;
'''Partie Informatique:'''&lt;/div&gt;</summary>
		<author><name>Zassaieb</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=Gestion_afficheurs,_2012/2013,_TD3&amp;diff=5031</id>
		<title>Gestion afficheurs, 2012/2013, TD3</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=Gestion_afficheurs,_2012/2013,_TD3&amp;diff=5031"/>
				<updated>2013-04-30T15:52:33Z</updated>
		
		<summary type="html">&lt;p&gt;Zassaieb : /* Rapports des élèves */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Evaluation informatique et électronique ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Ne pas modifier, ecrivez votre rapport plus bas --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Gestion de projet / rédaction Wiki ===&lt;br /&gt;
&lt;br /&gt;
* Informatique : &lt;br /&gt;
* Electronique :&lt;br /&gt;
Note .&lt;br /&gt;
&lt;br /&gt;
=== Test fonctionnels ===&lt;br /&gt;
&lt;br /&gt;
* Sous-système.&lt;br /&gt;
** Sous-système informatique : &lt;br /&gt;
** Sous-système électronique :&lt;br /&gt;
&lt;br /&gt;
=== Qualité de la réalisation ===&lt;br /&gt;
&lt;br /&gt;
* Informatique : Note .&lt;br /&gt;
** procédure de test :&lt;br /&gt;
** pages HTML et Javascript :&lt;br /&gt;
** scripts PHP ou programmes C :&lt;br /&gt;
** installation sur FoxBoard :&lt;br /&gt;
* Electronique : Note .&lt;br /&gt;
** qualité de la réalisation :&lt;br /&gt;
** tests autonomes :&lt;br /&gt;
&lt;br /&gt;
=== Bilan ===&lt;br /&gt;
&lt;br /&gt;
Note finale :&lt;br /&gt;
&lt;br /&gt;
== Rapports des élèves ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Pour la vidéo finale ne pas effacer&lt;br /&gt;
&amp;lt;include nopre noesc src=&amp;quot;/home/pedago/pimasc/include/video-xxxx-iframe.html&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both;&amp;quot;&amp;gt;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Commencez votre rapport ici ! --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Rapport pour la séance du 28/03/2013'''&lt;br /&gt;
&lt;br /&gt;
'''Partie Electronique:'''&lt;br /&gt;
&lt;br /&gt;
Lors de cette première séance de projet, nous avons effectué deux tâches.&lt;br /&gt;
Tout d'abord, nous avons appris à nous servir du logiciel Altium grâce à un tutoriel PDF fourni par Mr WICHMANN. Nous avons testé les fonctionnalités du logiciel à l'aide d'un exemple fourni par ce tutoriel.&lt;br /&gt;
Enfin, nous avons commencé à mettre en place le schéma électronique et à définir les composants dont nous aurons besoin; parmi eux, des multiplexeurs et démultiplexeurs, des bascules D servant de fonctions mémoires. Nous avons également réfléchi aux connexions que nous devrons utiliser (mise en place des bus de données, des liaisons séries, etc.). Et nous avons finalement créer un premier schéma validé par Mr WICHMANN qui pourrait représenter notre montage. Celui-ci est bien entendu un premier jet à perfectionner.&lt;br /&gt;
Durant cette première séance, les principales difficultés rencontrées furent la prise en main d'Altium, car ce fut la première fois que nous utilisions ce logiciel pour cette fonctionnalité. Il a fallu ensuite bien comprendre le système à réaliser pour définir nos objectifs et les techniques à mettre en oeuvre.&lt;br /&gt;
&lt;br /&gt;
'''Partie Informatique:'''&lt;br /&gt;
&lt;br /&gt;
  En ce qui concerne la partie informatique, il a fallut tout d'abord comprendre tous les annexes et exemples proposés pour la partie des afficheurs 7 segments, puis essayer de faire un schéma des étapes nécessaires à la conception du programme. Ensuite, nous avons testé l'affichage sur le banc Arduino afin de nous assurer de son bon fonctionnement, nous avons également testé chacun des segments afin de trouver la correspondance entre les bits d'un octet représentant un caractère et les segments des afficheurs.&lt;br /&gt;
  Ce n'est qu'après que nous avons entamé la réalisation du programme: nous avons commencé par écrire une fonction qui demande un message à l'utilisateur et le charge dans un tableau de caractères, puis une fonction qui convertit chacun de ces caractères alphanumériques à son code afin qu'ils soient affichés sur les segments correspondants. Ces caractères sont ensuite envoyés en série aux 4 afficheurs et défilés à une vitesse d'une seconde par caractère jusqu'à l'affichage du message complet.&lt;br /&gt;
  La principale difficulté rencontrée est celle de trouver un code à chacun des 36 caractères alphanumériques et les tester un à un pour vérifier l'exactitude du code.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Rapport pour la séance du 4/04/2013'''&lt;br /&gt;
&lt;br /&gt;
'''Partie Electronique:'''&lt;br /&gt;
&lt;br /&gt;
Lors de cette deuxième séance nous avons finalisé le schéma sur le logiciel Altium:&lt;br /&gt;
[[Fichier:Schema1.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous avons branché la Nanobord et apprit à compiler (synthetize + build + program FPGA). &lt;br /&gt;
Nous avons débuté les tests sur l'oscilloscope (sans avoir abouti à des résultats satisfaisants), nous avons alors modifié le schéma.&lt;br /&gt;
&lt;br /&gt;
Les problèmes que nous avons rencontré lors des manipulations:&lt;br /&gt;
 Connexion entre Altium et la Nanobord&lt;br /&gt;
 Beaucoup d'erreurs de compilation au niveau de la programmation de la mémoire(que nous avons réussi à corriger)&lt;br /&gt;
 Erreur lors de l'utilisation des bascules D en fonction mémoire donc notre programme ne s'exécute pas comme nous le souhaitons&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Partie Informatique:'''&lt;br /&gt;
  Ayant bien avancé lors de la première séance pour la partie informatique, il eut des changements au niveau du cahier de charge.&lt;br /&gt;
&lt;br /&gt;
  Pour la deuxième séance, nous sommes passés de l’affichage sur 7 segments à un affichage sur 16 segments, dans ce cas un caractère est représenté par deux mots de 8 bits soit 16 bits au total. Cela demande encore de nouveaux tests, recherche des correspondances entre bits et segments, et une modification de la fonction qui convertit un caractère à un code en changeant les 36 codes de chaque caractère. De plus, au lieu de récupérer le texte à la saisie, nous avons modifié la fonction pour que celle-ci récupère le texte à partir d’un fichier où le message à afficher sera stocké. &lt;br /&gt;
&lt;br /&gt;
  Ensuite, nous avons écrit les fonctions qui permettront de contrôler la vitesse de défilement du texte: ralentir ou accélérer, et qui seront exécutées par envoie d’un signal au programme (SIGUSR1 et SIGUSR2) à partir du terminal par la commande « killall –SIGUSR1/2 programme ».&lt;br /&gt;
 &lt;br /&gt;
  Et enfin, nous avons créé une page html statique, qui contiendra l’interface Web du programme.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Rapport pour la séance du 11/04/2013'''&lt;br /&gt;
&lt;br /&gt;
'''Partie Informatique:'''&lt;/div&gt;</summary>
		<author><name>Zassaieb</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=Gestion_afficheurs,_2012/2013,_TD3&amp;diff=5030</id>
		<title>Gestion afficheurs, 2012/2013, TD3</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=Gestion_afficheurs,_2012/2013,_TD3&amp;diff=5030"/>
				<updated>2013-04-30T15:51:27Z</updated>
		
		<summary type="html">&lt;p&gt;Zassaieb : /* Rapports des élèves */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Evaluation informatique et électronique ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Ne pas modifier, ecrivez votre rapport plus bas --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Gestion de projet / rédaction Wiki ===&lt;br /&gt;
&lt;br /&gt;
* Informatique : &lt;br /&gt;
* Electronique :&lt;br /&gt;
Note .&lt;br /&gt;
&lt;br /&gt;
=== Test fonctionnels ===&lt;br /&gt;
&lt;br /&gt;
* Sous-système.&lt;br /&gt;
** Sous-système informatique : &lt;br /&gt;
** Sous-système électronique :&lt;br /&gt;
&lt;br /&gt;
=== Qualité de la réalisation ===&lt;br /&gt;
&lt;br /&gt;
* Informatique : Note .&lt;br /&gt;
** procédure de test :&lt;br /&gt;
** pages HTML et Javascript :&lt;br /&gt;
** scripts PHP ou programmes C :&lt;br /&gt;
** installation sur FoxBoard :&lt;br /&gt;
* Electronique : Note .&lt;br /&gt;
** qualité de la réalisation :&lt;br /&gt;
** tests autonomes :&lt;br /&gt;
&lt;br /&gt;
=== Bilan ===&lt;br /&gt;
&lt;br /&gt;
Note finale :&lt;br /&gt;
&lt;br /&gt;
== Rapports des élèves ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Pour la vidéo finale ne pas effacer&lt;br /&gt;
&amp;lt;include nopre noesc src=&amp;quot;/home/pedago/pimasc/include/video-xxxx-iframe.html&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both;&amp;quot;&amp;gt;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Commencez votre rapport ici ! --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Rapport pour la séance du 28/03/2013'''&lt;br /&gt;
&lt;br /&gt;
[['''Partie Electronique:''']]&lt;br /&gt;
&lt;br /&gt;
Lors de cette première séance de projet, nous avons effectué deux tâches.&lt;br /&gt;
Tout d'abord, nous avons appris à nous servir du logiciel Altium grâce à un tutoriel PDF fourni par Mr WICHMANN. Nous avons testé les fonctionnalités du logiciel à l'aide d'un exemple fourni par ce tutoriel.&lt;br /&gt;
Enfin, nous avons commencé à mettre en place le schéma électronique et à définir les composants dont nous aurons besoin; parmi eux, des multiplexeurs et démultiplexeurs, des bascules D servant de fonctions mémoires. Nous avons également réfléchi aux connexions que nous devrons utiliser (mise en place des bus de données, des liaisons séries, etc.). Et nous avons finalement créer un premier schéma validé par Mr WICHMANN qui pourrait représenter notre montage. Celui-ci est bien entendu un premier jet à perfectionner.&lt;br /&gt;
Durant cette première séance, les principales difficultés rencontrées furent la prise en main d'Altium, car ce fut la première fois que nous utilisions ce logiciel pour cette fonctionnalité. Il a fallu ensuite bien comprendre le système à réaliser pour définir nos objectifs et les techniques à mettre en oeuvre.&lt;br /&gt;
&lt;br /&gt;
[['''Partie Informatique:''']]&lt;br /&gt;
&lt;br /&gt;
  En ce qui concerne la partie informatique, il a fallut tout d'abord comprendre tous les annexes et exemples proposés pour la partie des afficheurs 7 segments, puis essayer de faire un schéma des étapes nécessaires à la conception du programme. Ensuite, nous avons testé l'affichage sur le banc Arduino afin de nous assurer de son bon fonctionnement, nous avons également testé chacun des segments afin de trouver la correspondance entre les bits d'un octet représentant un caractère et les segments des afficheurs.&lt;br /&gt;
  Ce n'est qu'après que nous avons entamé la réalisation du programme: nous avons commencé par écrire une fonction qui demande un message à l'utilisateur et le charge dans un tableau de caractères, puis une fonction qui convertit chacun de ces caractères alphanumériques à son code afin qu'ils soient affichés sur les segments correspondants. Ces caractères sont ensuite envoyés en série aux 4 afficheurs et défilés à une vitesse d'une seconde par caractère jusqu'à l'affichage du message complet.&lt;br /&gt;
  La principale difficulté rencontrée est celle de trouver un code à chacun des 36 caractères alphanumériques et les tester un à un pour vérifier l'exactitude du code.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Rapport pour la séance du 4/04/2013'''&lt;br /&gt;
&lt;br /&gt;
[['''Partie Electronique:''']]&lt;br /&gt;
&lt;br /&gt;
Lors de cette deuxième séance nous avons finalisé le schéma sur le logiciel Altium:&lt;br /&gt;
[[Fichier:Schema1.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous avons branché la Nanobord et apprit à compiler (synthetize + build + program FPGA). &lt;br /&gt;
Nous avons débuté les tests sur l'oscilloscope (sans avoir abouti à des résultats satisfaisants), nous avons alors modifié le schéma.&lt;br /&gt;
&lt;br /&gt;
Les problèmes que nous avons rencontré lors des manipulations:&lt;br /&gt;
 Connexion entre Altium et la Nanobord&lt;br /&gt;
 Beaucoup d'erreurs de compilation au niveau de la programmation de la mémoire(que nous avons réussi à corriger)&lt;br /&gt;
 Erreur lors de l'utilisation des bascules D en fonction mémoire donc notre programme ne s'exécute pas comme nous le souhaitons&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[['''Partie Informatique:''']]&lt;br /&gt;
  Ayant bien avancé lors de la première séance pour la partie informatique, il eut des changements au niveau du cahier de charge.&lt;br /&gt;
&lt;br /&gt;
  Pour la deuxième séance, nous sommes passés de l’affichage sur 7 segments à un affichage sur 16 segments, dans ce cas un caractère est représenté par deux mots de 8 bits soit 16 bits au total. Cela demande encore de nouveaux tests, recherche des correspondances entre bits et segments, et une modification de la fonction qui convertit un caractère à un code en changeant les 36 codes de chaque caractère. De plus, au lieu de récupérer le texte à la saisie, nous avons modifié la fonction pour que celle-ci récupère le texte à partir d’un fichier où le message à afficher sera stocké. &lt;br /&gt;
&lt;br /&gt;
  Ensuite, nous avons écrit les fonctions qui permettront de contrôler la vitesse de défilement du texte: ralentir ou accélérer, et qui seront exécutées par envoie d’un signal au programme (SIGUSR1 et SIGUSR2) à partir du terminal par la commande « killall –SIGUSR1/2 programme ».&lt;br /&gt;
 &lt;br /&gt;
  Et enfin, nous avons créé une page html statique, qui contiendra l’interface Web du programme.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Rapport pour la séance du 11/04/2013'''&lt;br /&gt;
&lt;br /&gt;
'''Partie Informatique:'''&lt;/div&gt;</summary>
		<author><name>Zassaieb</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=Gestion_afficheurs,_2012/2013,_TD3&amp;diff=5029</id>
		<title>Gestion afficheurs, 2012/2013, TD3</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=Gestion_afficheurs,_2012/2013,_TD3&amp;diff=5029"/>
				<updated>2013-04-30T15:49:11Z</updated>
		
		<summary type="html">&lt;p&gt;Zassaieb : /* Rapports des élèves */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Evaluation informatique et électronique ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Ne pas modifier, ecrivez votre rapport plus bas --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Gestion de projet / rédaction Wiki ===&lt;br /&gt;
&lt;br /&gt;
* Informatique : &lt;br /&gt;
* Electronique :&lt;br /&gt;
Note .&lt;br /&gt;
&lt;br /&gt;
=== Test fonctionnels ===&lt;br /&gt;
&lt;br /&gt;
* Sous-système.&lt;br /&gt;
** Sous-système informatique : &lt;br /&gt;
** Sous-système électronique :&lt;br /&gt;
&lt;br /&gt;
=== Qualité de la réalisation ===&lt;br /&gt;
&lt;br /&gt;
* Informatique : Note .&lt;br /&gt;
** procédure de test :&lt;br /&gt;
** pages HTML et Javascript :&lt;br /&gt;
** scripts PHP ou programmes C :&lt;br /&gt;
** installation sur FoxBoard :&lt;br /&gt;
* Electronique : Note .&lt;br /&gt;
** qualité de la réalisation :&lt;br /&gt;
** tests autonomes :&lt;br /&gt;
&lt;br /&gt;
=== Bilan ===&lt;br /&gt;
&lt;br /&gt;
Note finale :&lt;br /&gt;
&lt;br /&gt;
== Rapports des élèves ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Pour la vidéo finale ne pas effacer&lt;br /&gt;
&amp;lt;include nopre noesc src=&amp;quot;/home/pedago/pimasc/include/video-xxxx-iframe.html&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both;&amp;quot;&amp;gt;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Commencez votre rapport ici ! --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Rapport pour la séance du 28/03/2013'''&lt;br /&gt;
&lt;br /&gt;
'''Partie Electronique:'''&lt;br /&gt;
&lt;br /&gt;
Lors de cette première séance de projet, nous avons effectué deux tâches.&lt;br /&gt;
Tout d'abord, nous avons appris à nous servir du logiciel Altium grâce à un tutoriel PDF fourni par Mr WICHMANN. Nous avons testé les fonctionnalités du logiciel à l'aide d'un exemple fourni par ce tutoriel.&lt;br /&gt;
Enfin, nous avons commencé à mettre en place le schéma électronique et à définir les composants dont nous aurons besoin; parmi eux, des multiplexeurs et démultiplexeurs, des bascules D servant de fonctions mémoires. Nous avons également réfléchi aux connexions que nous devrons utiliser (mise en place des bus de données, des liaisons séries, etc.). Et nous avons finalement créer un premier schéma validé par Mr WICHMANN qui pourrait représenter notre montage. Celui-ci est bien entendu un premier jet à perfectionner.&lt;br /&gt;
Durant cette première séance, les principales difficultés rencontrées furent la prise en main d'Altium, car ce fut la première fois que nous utilisions ce logiciel pour cette fonctionnalité. Il a fallu ensuite bien comprendre le système à réaliser pour définir nos objectifs et les techniques à mettre en oeuvre.&lt;br /&gt;
&lt;br /&gt;
'''Partie Informatique:'''&lt;br /&gt;
&lt;br /&gt;
En ce qui concerne la partie informatique, il a fallut tout d'abord comprendre tous les annexes et exemples proposés pour la partie des afficheurs 7 segments, puis essayer de faire un schéma des étapes nécessaires à la conception du programme. Ensuite, nous avons testé l'affichage sur le banc Arduino afin de nous assurer de son bon fonctionnement, nous avons également testé chacun des segments afin de trouver la correspondance entre les bits d'un octet représentant un caractère et les segments des afficheurs.&lt;br /&gt;
Ce n'est qu'après que nous avons entamé la réalisation du programme: nous avons commencé par écrire une fonction qui demande un message à l'utilisateur et le charge dans un tableau de caractères, puis une fonction qui convertit chacun de ces caractères alphanumériques à son code afin qu'ils soient affichés sur les segments correspondants. Ces caractères sont ensuite envoyés en série aux 4 afficheurs et défilés à une vitesse d'une seconde par caractère jusqu'à l'affichage du message complet.&lt;br /&gt;
La principale difficulté rencontrée est celle de trouver un code à chacun des 36 caractères alphanumériques et les tester un à un pour vérifier l'exactitude du code.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Rapport pour la séance du 4/04/2013'''&lt;br /&gt;
&lt;br /&gt;
'''Partie Electronique:'''&lt;br /&gt;
&lt;br /&gt;
Lors de cette deuxième séance nous avons finalisé le schéma sur le logiciel Altium:&lt;br /&gt;
[[Fichier:Schema1.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous avons branché la Nanobord et apprit à compiler (synthetize + build + program FPGA). &lt;br /&gt;
Nous avons débuté les tests sur l'oscilloscope (sans avoir abouti à des résultats satisfaisants), nous avons alors modifié le schéma.&lt;br /&gt;
&lt;br /&gt;
Les problèmes que nous avons rencontré lors des manipulations:&lt;br /&gt;
 Connexion entre Altium et la Nanobord&lt;br /&gt;
 Beaucoup d'erreurs de compilation au niveau de la programmation de la mémoire(que nous avons réussi à corriger)&lt;br /&gt;
 Erreur lors de l'utilisation des bascules D en fonction mémoire donc notre programme ne s'exécute pas comme nous le souhaitons&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Partie Informatique:'''&lt;br /&gt;
&lt;br /&gt;
Ayant bien avancé lors de la première séance pour la partie informatique, il eut des changements au niveau du cahier de charge.&lt;br /&gt;
Pour la deuxième séance, nous sommes passés de l’affichage sur 7 segments à un affichage sur 16 segments, dans ce cas un caractère est représenté par deux mots de 8 bits soit 16 bits au total. Cela demande encore de nouveaux tests, recherche des correspondances entre bits et segments, et une modification de la fonction qui convertit un caractère à un code en changeant les 36 codes de chaque caractère. De plus, au lieu de récupérer le texte à la saisie, nous avons modifié la fonction pour que celle-ci récupère le texte à partir d’un fichier où le message à afficher sera stocké. &lt;br /&gt;
Ensuite, nous avons écrit les fonctions qui permettront de contrôler la vitesse de défilement du texte: ralentir ou accélérer, et qui seront exécutées par envoie d’un signal au programme (SIGUSR1 et SIGUSR2) à partir du terminal par la commande « killall –SIGUSR1/2 programme ». &lt;br /&gt;
Et enfin, nous avons créé une page html statique, qui contiendra l’interface Web du programme.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Rapport pour la séance du 11/04/2013'''&lt;br /&gt;
&lt;br /&gt;
'''Partie Informatique:'''&lt;/div&gt;</summary>
		<author><name>Zassaieb</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=Gestion_afficheurs,_2012/2013,_TD3&amp;diff=4742</id>
		<title>Gestion afficheurs, 2012/2013, TD3</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=Gestion_afficheurs,_2012/2013,_TD3&amp;diff=4742"/>
				<updated>2013-04-03T17:11:02Z</updated>
		
		<summary type="html">&lt;p&gt;Zassaieb : /* Rapports des élèves */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Evaluation informatique et électronique ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Ne pas modifier, ecrivez votre rapport plus bas --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Gestion de projet / rédaction Wiki ===&lt;br /&gt;
&lt;br /&gt;
* Informatique : &lt;br /&gt;
* Electronique :&lt;br /&gt;
Note .&lt;br /&gt;
&lt;br /&gt;
=== Test fonctionnels ===&lt;br /&gt;
&lt;br /&gt;
* Sous-système.&lt;br /&gt;
** Sous-système informatique : &lt;br /&gt;
** Sous-système électronique :&lt;br /&gt;
&lt;br /&gt;
=== Qualité de la réalisation ===&lt;br /&gt;
&lt;br /&gt;
* Informatique : Note .&lt;br /&gt;
** procédure de test :&lt;br /&gt;
** pages HTML et Javascript :&lt;br /&gt;
** scripts PHP ou programmes C :&lt;br /&gt;
** installation sur FoxBoard :&lt;br /&gt;
* Electronique : Note .&lt;br /&gt;
** qualité de la réalisation :&lt;br /&gt;
** tests autonomes :&lt;br /&gt;
&lt;br /&gt;
=== Bilan ===&lt;br /&gt;
&lt;br /&gt;
Note finale :&lt;br /&gt;
&lt;br /&gt;
== Rapports des élèves ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Pour la vidéo finale ne pas effacer&lt;br /&gt;
&amp;lt;include nopre noesc src=&amp;quot;/home/pedago/pimasc/include/video-xxxx-iframe.html&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both;&amp;quot;&amp;gt;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Commencez votre rapport ici ! --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Rapport pour la séance du 28/03/2013'''&lt;br /&gt;
&lt;br /&gt;
'''Partie Electronique:'''&lt;br /&gt;
&lt;br /&gt;
Lors de cette première séance de projet, nous avons effectué deux tâches.&lt;br /&gt;
Tout d'abord, nous avons appris à nous servir du logiciel Altium grâce à un tutoriel PDF fourni par Mr WICHMANN. Nous avons testé les fonctionnalités du logiciel à l'aide d'un exemple fourni par ce tutoriel.&lt;br /&gt;
Enfin, nous avons commencé à mettre en place le schéma électronique et à définir les composants dont nous aurons besoin; parmi eux, des multiplexeurs et démultiplexeurs, des bascules D servant de fonctions mémoires. Nous avons également réfléchi aux connexions que nous devrons utiliser (mise en place des bus de données, des liaisons séries, etc.). Et nous avons finalement créer un premier schéma validé par Mr WICHMANN qui pourrait représenter notre montage. Celui-ci est bien entendu un premier jet à perfectionner.&lt;br /&gt;
Durant cette première séance, les principales difficultés rencontrées furent la prise en main d'Altium, car ce fut la première fois que nous utilisions ce logiciel pour cette fonctionnalité. Il a fallu ensuite bien comprendre le système à réaliser pour définir nos objectifs et les techniques à mettre en oeuvre.&lt;br /&gt;
&lt;br /&gt;
'''Partie Informatique:'''&lt;br /&gt;
&lt;br /&gt;
En ce qui concerne la partie informatique, il a fallut d'abord comprendre tous les annexes et exemples proposés pour la partie des afficheurs 7 segments, puis essayer de faire un schéma des étapes nécessaires à la conception du programme. Ensuite, j'ai testé l'affichage sur le banc Arduino pour s'assurer si ça marche bien, j'ai également testé chacun des segments afin de trouver la correspondance entre les bits d'un octet représentant un caractère et les segments des afficheurs.&lt;br /&gt;
Ce n'est qu'après que j'ai commencer la réalisation du programme: j'ai commencé par écrire une fonction qui demande un message à l'utilisateur et le charge dans un tableau de caractères, puis une fonction qui convertit chacun de ces caractères alphanumériques à son code afin qu'ils soient affichés sur les segments correspondants. Ces caractères sont ensuite envoyés en série aux 4 afficheurs et défilés à une vitesse d'une seconde par caractère jusqu'à l'affichage du message complet.&lt;br /&gt;
La principale difficulté rencontrée est celle de trouver un code à chacun des 36 caractères alphanumériques et les tester un à un pour vérifier l'exactitude du code.&lt;/div&gt;</summary>
		<author><name>Zassaieb</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=Projets_troisi%C3%A8me_ann%C3%A9e,_2012/2013,_TD3&amp;diff=4671</id>
		<title>Projets troisième année, 2012/2013, TD3</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=Projets_troisi%C3%A8me_ann%C3%A9e,_2012/2013,_TD3&amp;diff=4671"/>
				<updated>2013-03-28T07:33:33Z</updated>
		
		<summary type="html">&lt;p&gt;Zassaieb : /* Répartition des binômes */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Répartition des binômes ==&lt;br /&gt;
&lt;br /&gt;
Ecrivez vos noms sous le format exact &amp;quot;Prénom Nom&amp;quot;, séparez vos noms par des virgules.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Projet !! Elèves&lt;br /&gt;
|- &lt;br /&gt;
| [[Contrôle de matrice leds, 2012/2013, TD3]] || Oumaima Bekraoui, Florian Caron, Demba Fall, Quentin Pesqueux&lt;br /&gt;
|-&lt;br /&gt;
| [[Communication série, 2012/2013, TD3]] ||wu shuyun yuchao luo simon duthoit émile pinet&lt;br /&gt;
|-&lt;br /&gt;
| [[Gestion afficheurs, 2012/2013, TD3]] || jebbari zineb assaieb zohour vantom eddy&lt;br /&gt;
|-&lt;br /&gt;
| [[Gestion de LED RVB, 2012/2013, TD3]] ||&lt;br /&gt;
|-&lt;br /&gt;
| [[Contrôle de sonar, 2012/2013, TD3]] || Adnane JAOUI, Ismail ZIOU, Oussama HAMZAOUI, Smaïn LABDOUNI&lt;br /&gt;
|-&lt;br /&gt;
| [[Contrôle d'accéléromètre, 2012/2013, TD3]] || Mélanie Hautecoeur, Ismail Tahry, Geoffrey Bruno, Simon Malthieu&lt;br /&gt;
|-&lt;br /&gt;
| [[Contrôle de bras robotique, 2012/2013, TD3]] || Jérome Vaessen, Cédric Desprez, Jamal Chamane, Mathieu Bossennec&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Zassaieb</name></author>	</entry>

	</feed>