<?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=Jgondry</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=Jgondry"/>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php/Sp%C3%A9cial:Contributions/Jgondry"/>
		<updated>2026-05-13T00:23:02Z</updated>
		<subtitle>Contributions de l’utilisateur</subtitle>
		<generator>MediaWiki 1.29.2</generator>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=Projets_IMA5_2014/2015&amp;diff=17540</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=17540"/>
				<updated>2015-02-23T22:22:42Z</updated>
		
		<summary type="html">&lt;p&gt;Jgondry : /* 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;[[P1 Modélisation et commande de l'auto-ignition d'un moteur HCCI]]&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Moulé Alexandre / Taché Clément &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt; Anne-Lise Gehin / Jean-Yves Dieulot &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;[[Fichier:Rapport decembre moule tache.pdf]]  &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;[[P5 Filtrage des indicateurs numériques de diagnostic]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt; ZIOU Ismaïl / HAMZAOUI Oussama &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;[[Fichier:rapport_Z.pdf]]&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&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; [[Fichier:Rapport_Intermédiaire_Royer_Assaieb.pdf]] &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;[[P7 Utilisation d'un Robot Nao pour les enfants autistes]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt; Rodriguez Loïc/Ismaïl Tahry&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;[[Fichier:Projetpfenaomi.pdf]]&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;[[Fichier:Rapport decembre PFE pilulier mercier pinet.pdf]]&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;[[Fichier:Rapport_MiSoutenance_DESPREZ_HADDAOUI.pdf]]&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; [[Fichier:Rapport_Intermédiaire_PFE_GAPAS_Rose_Tixier.pdf]]&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;[[P12 Automatiser à l'aide d'une interface LabView la procédure de mesure de conductivité électrique d'un alternateur à griffes]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt; Hugo FONDU &amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt; Abdelkader Benabou &amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Fichier:rapport_presoutenance.pdf]]&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;[[P13 Construction d'un support motorisé pour la réalisation des essais de décharges électrostatique]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt; JEBBARI Zineb / BEKRAOUI Oumaima &amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt; Nathalie Rolland &amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt; [[Fichier:rapportJebbek.pdf]] &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;[[P19 Contrôle et synchronisation d'instruments en microscopie]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt; Simon Duthoit&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt; Samuel Hym &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; [[ Fichier:ProjetBLE 1 pdf.pdf]]&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 Bis Prototypage d'interactions localisées et contextualisées ]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt; Olivier Tailliez&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt; Thomas Vantroys / Yvan Peter &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;[[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;[[Fichier:Rapport_intermediaire_Gondry_Meunier.pdf]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;[[Fichier:Rapport_final_PFE_Meunier_Gondry.pdf]]&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;[[Fichier:Rapport_PFE_P24_Deltombe.pdf]]&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;[[P25 SmartMeter]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt; Thomas Ederlé / Sylvain Fossaert&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt; Guillaume Renault / Xavier Redon / Alexandre Boé &amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt; [[Fichier:RapportFossaertEderle.pdf]] &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;[[P26 Vehicule Electrique ]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt; Smain Labdouni / Adnane Jaoui &amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt; Arnaud Chielens / Philippe Delarue &amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;  [[Fichier:RAPPORT_VE_DEC.pdf]]&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;[[P27 Controle Direct de Puissance d'un Convertisseur Matriciel ]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt; Quentin Pesqueux / Nicolas Alexandre &amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt; Philippe Delarue &amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;  [[Fichier:PFE_IMA5_MATRIX_CONVERTER_Alexandre_Pesqueux.pdf]]&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; [[Fichier:-BRICOUT MARTIN--Rapport PFE.pdf]] &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 / &amp;quot;wireless&amp;quot;]]&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; Alexandre Boé &amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt; [[Fichier:Rapport_Benjamin_Lafit.pdf]] &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;[[P35 Hack-a-Wii : Emulation de wiimote pour rendre la Wii accessibles aux personnes handicapées ]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt; Fabien Violier &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;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;[[P37 Creation d'un composant d'audit des accès cache mémoire sur un microprocesseur LEON3 simulé en FPGA ]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt; Jérôme Vaessen &amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt; Julien Cartigny / Pierrick Buret &amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt; [[Fichier:Rapport_VAESSEN_presoutenance.pdf]] &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; [[Fichier:RapportMaliarMauriceDecembre.pdf]] &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;[[P57 CHRU Lille : Smart Picking]]&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt; Mathieu Bossennec / Florian Caron&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt; Gwénaëlle Maton / Alexandre Boé / 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;&lt;br /&gt;
&amp;lt;td&amp;gt;[[P58 Transformation des spectateurs d’un concert en afficheur géant interactif]]&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt; Hautecoeur Mélanie &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt; Alexandre Boé / 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;[[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>Jgondry</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=Fichier:Rapport_final_PFE_Meunier_Gondry.pdf&amp;diff=17539</id>
		<title>Fichier:Rapport final PFE Meunier Gondry.pdf</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=Fichier:Rapport_final_PFE_Meunier_Gondry.pdf&amp;diff=17539"/>
				<updated>2015-02-23T22:21:46Z</updated>
		
		<summary type="html">&lt;p&gt;Jgondry : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Jgondry</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=P22_Google_Glass_en_logistique&amp;diff=17439</id>
		<title>P22 Google Glass en logistique</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=P22_Google_Glass_en_logistique&amp;diff=17439"/>
				<updated>2015-02-22T22:59:39Z</updated>
		
		<summary type="html">&lt;p&gt;Jgondry : /*  Interface  */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Introduction =&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Description du sujet &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
Notre projet vise à l’optimisation du stockage et de l’adressage des palettes dans un entrepôt. En effet, lors du déchargement d’un camion, chercher un emplacement libre pour les palettes dans un entrepôt occupant une grande superficie fait perdre du temps et donc de la productivité dans le stockage. Sachant qu’un cariste perd un temps non négligeable à la recherche d’emplacement disponible, optimiser ce temps de recherche permettrait de gagner du temps sur cette opération.&lt;br /&gt;
Développer un prototype permettrait de rendre compte des moyens existants qui pourrait être mis en place dans une solution métier.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Analyse du sujet &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Google_glass.png|200px|thumb|right|Paire de Google Glass]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Optinvent_ora.png|200px|thumb|right|Paire de ORA d'Optivent]]&lt;br /&gt;
&lt;br /&gt;
Notre projet consiste à fluidifier le déchargement en indiquant au cariste l’emplacement libre le plus proche. Pour ne pas gêner le travail des employés, un dispositif main-libre comme une Google Glass semble adapté. Ce projet soulève plusieurs problématiques : développer une interface homme-machine apportant une information pertinente pour l’utilisateur sans pour autant être perturbante. &lt;br /&gt;
&lt;br /&gt;
L’idée serait de réaliser dans les grandes lignes un système similaire à ce scénario d’utilisation :&lt;br /&gt;
http://n.mynews.ly/!lB.Bs4fw&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Moyen d’affichage de l’Informations pertinentes'''&lt;br /&gt;
&lt;br /&gt;
Les Google Glass ne sont pas les seules smart glasses sur le marché. Il nous faudra choisir les appareils les plus adaptés. L’information pertinente pourrait être une direction à suivre dans l’entrepôt ou simplement un numéro d’emplacement (adressage intuitif de l’entrepôt). &lt;br /&gt;
&lt;br /&gt;
'''Géolocalisation'''&lt;br /&gt;
&lt;br /&gt;
Dans le cas d’une direction à suivre se pose le problème de la géolocalisation indoor dont l’utilité et la faisabilité seront discutés au fil des réunions avec l’entreprise. &lt;br /&gt;
&lt;br /&gt;
'''Adressage / flashage'''&lt;br /&gt;
&lt;br /&gt;
En ce qui concerne l’adressage des palettes en entrepôt, la solution existante repose sur un flashage des codes barres associés à l’emplacement venant d’être occupé. Une étude de faisabilité/utilité sera aussi faite sur une solution de remplacement grâce aux possibilités qu’offrent les smart glasses.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Cahier des charges &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
En partant de l'analyse du sujet et des discussion avec notre tuteur, nous avons définie un cahier des charges plus précis des tâches à accomplir:&lt;br /&gt;
&lt;br /&gt;
* '''Développer un système embarqué sur une paire de lunette Smart Glass'''&lt;br /&gt;
** Comparer les différentes offres en matière de Smart Glass notamment Google Glass &amp;amp; ORA de Optinvent&lt;br /&gt;
** Concevoir une interface homme-machine non perturbante pour l'utilisateur.&lt;br /&gt;
* '''Etudier la nécessité d'utiliser une géolocalisation en entrepôt et l'implémenter si besoin'''&lt;br /&gt;
** Via RSSI (Wifi, Bluetooh Low Energy ...)&lt;br /&gt;
** Via traitement d'images (reconnaissance de la signalétique en entrepôt)&lt;br /&gt;
* '''Etudier les possibilités d'optimisation du système d'adressage des palettes'''&lt;br /&gt;
** Implémenter la reconnaissance de code barre&lt;br /&gt;
** La tester en réalité métier (utilité ajoutée, habitude des magasiniers, vitesse de traitement...)&lt;br /&gt;
&lt;br /&gt;
Le cahier des charges est encore en cours de construction&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Matériel utilisé &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; SmartGlass &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Lors de la réunion nous avons discuté des technologies à utiliser dans le projet, et plus particulièrement des différentes SmartGlass. En effet, il existe une multitude de sociétés qui développe ce genre de lunettes. Nous commencerons à utiliser les Google Glass étant donné que notre tuteur en a déjà commandé puis nous développerons sur les lunettes ORA de Optivent qui seront livrées fin octobre. Nous devrons donc faire un comparatif entre ces deux SmartGlass puis étudier les autres appareils disponibles sur le marché.&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Localisation &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
L'utilisation de la géolocalisation dans le projet est à débattre. Mais des tests seront probablement mis en place. L'entreprise possède quelque iBeacons BLE Estimote dans ses bureaux d'innovations que nous pourrons emprunter.&lt;br /&gt;
Dans le cas où leur gain d'informations serait utile il nous faudra comparer les modèles disponibles. Choisir un nombre de module et des emplacements stratégiques dans l'entrepôt afin d'avoir une localisation assez précise pour l'application.&lt;br /&gt;
&lt;br /&gt;
L'utilisation d'autres technologies de géolocalisation a été discuté comme le Wifi ou le XBee mais le BLE semblait le plus adapté dans le cadre de notre projet.&lt;br /&gt;
&lt;br /&gt;
= Déroulement du projet =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 22/09 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Réunion avec le tuteur entreprise dans l’entrepôt &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Nous avons observé en situation le problème et discuté des besoins, des moyens déjà utilisables. Il nous faudra prendre en compte plusieurs paramètres dans notre réflexion tels que le système de stockage et d'adressages des palettes, sens de circulation des caristes, superficie des zones à desservir, durée de livraison.&lt;br /&gt;
Nous avons suggéré des étapes de validation intermédiaire du système par les futurs utilisateurs et pour cela nous rencontrerons le chef d'équipe des magasiniers lorsque qu'une version sera assez développée.&lt;br /&gt;
&lt;br /&gt;
Nous avons défini avec le tuteur les premières deadlines du projet, voici la timeline récapitulative:&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Timeline_1.jpg||center|1000px]]&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Compte Rendu &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Nous avons rédigé un compte rendu de la première réunion détaillant les spécifications des versions des livrables, des schémas et les sujets abordés lors de la rencontre :&lt;br /&gt;
&lt;br /&gt;
'''Compte Rendu réunion du 25/09/2014 :''' [[Fichier:Compte_Rendu_25_09.pdf]]&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 29/09 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Découverte des Google Glass &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
*Prise en main des Google Glass. &lt;br /&gt;
*Installation d'applications (.apk) grand public. Nous avons utilisé l'outil Android Debug Bridge(adb). Se mettre à la place d'un utilisateur.&lt;br /&gt;
*L'une des deux lunettes qui serait retenue imposera forcément le développement d'une application android (ou d'une technologie trés proche d'android, pour les Google Glass, se basant sur le Glass Development Kit qui est un add-on au SDK classique d'android). Nous avons donc téléchargé les packages nécessaires pour commencer à développer. &lt;br /&gt;
** Nous commençons à nous former sur les technologies android :développement d'applications minimaliste.&lt;br /&gt;
** Installation de nos premières apk minimalistes pour Android.&lt;br /&gt;
** Installation d'une application minimaliste sur la Google Glass.&lt;br /&gt;
&lt;br /&gt;
Voici un comparatif réalisé entre les lunettes ORA et les Google Glass.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Différences Google Glass/ORA &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!   !! Google Glass !! ORA &lt;br /&gt;
|-&lt;br /&gt;
|Connectique&lt;br /&gt;
|Compatible BLE (à partir de la XE 16 KitKat Update), Wifi &lt;br /&gt;
|Compatible BLE, Wifi&lt;br /&gt;
|-&lt;br /&gt;
|Autonomie en utilisation normale&lt;br /&gt;
|de 1h à 2h &lt;br /&gt;
|de 4h à 8h&lt;br /&gt;
|-&lt;br /&gt;
|Son&lt;br /&gt;
|Conductivité Cranienne&lt;br /&gt;
|Prise jack&lt;br /&gt;
|-&lt;br /&gt;
|Interface&lt;br /&gt;
|Ecran occupant une faible superficie dans le champ de vision &lt;br /&gt;
|Ecran 2 positions (moyennes et basses), plus étendu permettant une réalité augmentée &lt;br /&gt;
|-&lt;br /&gt;
|Système d'exploitation&lt;br /&gt;
|Android 4.4&lt;br /&gt;
|Android 4.2.2&lt;br /&gt;
|-&lt;br /&gt;
|Calculs&lt;br /&gt;
|CPU &amp;amp; GPU&lt;br /&gt;
|CPU &amp;amp; GPU&lt;br /&gt;
|-&lt;br /&gt;
|Prix&lt;br /&gt;
|1500$ &lt;br /&gt;
|949$&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 06/10 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Deuxième rendez-vous avec le tuteur entreprise &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Nous avons fait part de notre avancée en matière de prise en main et des problèmes rencontrés en matière de développement.&lt;br /&gt;
Les lunettes ORA sont commandées elles arrivent d'ici la fin octobre.&lt;br /&gt;
&lt;br /&gt;
La première version V1 de l'application pour Google Glass à livrer pour la mi-novembre est fixée.&lt;br /&gt;
&lt;br /&gt;
En partant d'une position connue (en dur dans l'application) dans l'entrepôt, elle indiquera à un utilisateur les emplacements libres les plus proches.&lt;br /&gt;
&lt;br /&gt;
L'état d'occupation des emplacements sera consulté et stocké dans l'application. Il n'y aura donc pas de gestion des conflits. Le sens de circulation dans l'entrepôt sera pris en compte.&lt;br /&gt;
Une communication avec la base de donnée de l'entrepôt n'est pour le moment pas d'actualité, cela nécessiterait des développements en amont.&lt;br /&gt;
La géolocalisation n'est pas au goût du jour non plus. L'adressage des emplacements dans l'entrepôt est intuitif, il est donc facile pour un magasinier de &lt;br /&gt;
se rendre à un emplacement en connaissant l'adresse.&lt;br /&gt;
&lt;br /&gt;
Pour l'IHM, nous nous inspirerons des applications pour Google Glass (les Glasswares) de type GPS.&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Premiers programmes sur Google Glass &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Pour nous familiariser avec la programmation sur ce genre d'appareil nous avons tous deux décidé de suivre en premier le tutoriel Android d'un site spécialisé. Cela afin de mieux comprendre le système Android, avec les concepts d'activités, de view etc.&lt;br /&gt;
Dans un deuxième temps nous avons choisi de suivre plusieurs tutoriels nous expliquant la prise en main basique des lunettes afin de saisir les particularités de leur programmation.&lt;br /&gt;
&lt;br /&gt;
Le plus dur étant finalement de comprendre les liens entre tous les fichiers du projets, les problèmes de drivers et d'upload simple que nous avons rencontrés et l’exécution du programme sur les lunettes. Des choses que nous arrivons maintenant à maitriser mais qui était floues à l'origine.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 13/10 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Programmation et gestion des interactions &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Durant cette semaine nous avons commencé a vraiment toucher aux fonctionnalités des Glass. Pour rester en main libre, nous avons fait des recherches et commencé à programmer de la reconnaissance vocale. Nous avons ainsi crée un système de navigation basique par commande vocale dans différents menus. Pour un accès rapide à l'application et toujours dans la même optique nous avons réussi à inclure le lancement de notre logiciel à partir du &amp;quot;Ok Glass&amp;quot; menu qui est le menu de lancement d'application par commande vocale des Google Glass. Voici un aperçu du résultat:&lt;br /&gt;
[[Fichier:V0_menu.png|1000px|center]]&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Analyse et évaluation du rendu &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Le début de la prise en main des fonctionnalités des Google Glass n'a pas été facile étant donné que la plupart des fonctionnalités sont propres à ce genre d'appareil. De plus elles nécessitent des techniques spéciales de programmation qui ne sont pas toujours très utilisées donc il est parfois difficile de trouver des exemples sur internet.&lt;br /&gt;
Néanmoins après l'implémentation de ces fonctionnalités nous avons pu rencontrer quelques difficultés de reconnaissance. En effet, les Google Glass possèdent un dictionnaire de mots/phrases pour la reconnaissance vocale mais elles nous permettent aussi d'écrire n'importe quelle phrase dans le mode développeur. Les phrases du dictionnaires ne posent aucun problème mais les phrases que nous écrivons sont parfois dures à reconnaitre. La reconnaissance de lettre seule ou de certains numéros est par exemple quasi impossible ou très aléatoire.&lt;br /&gt;
Le système de vu est quant à lui plutôt facile à prendre en main et intuitif dans l'utilisation.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 20/10 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Premiere structure de donnée &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Nous avons opté pour une structure de donnée récursive. Une Cellule, contenant des Allées, qui contiennent des Baies, contenant des Rangées, contenant des Emplacements.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Structure_export_resized.png|750px|center]]&lt;br /&gt;
Nous avons conçu cette structure de donnée pour qu'elle génère, dans un premier temps &amp;quot;en dur&amp;quot;, une cellule contenant des emplacements automatiquement adressés à la manière de ceux présent dans l'entrepôt. Ces adresses sont de la forme &amp;quot;D61A514&amp;quot; traduisez &amp;quot; Cellule 6 Allée 1A Baie 5 Rang 1 Niveau 4&amp;quot;.&lt;br /&gt;
Cette structure prend on compte le sens de circulation dans l'entrepôt.&lt;br /&gt;
Lors de futures interactions avec une base de donnée, cette structure serait sujette à évolution par une modification des méthodes de génération/modification du statut des adresses en fonction de cette base de donnée. Mais celle-ci constitue essentiellement une base pour appréhender plus pratiquement les problématiques de recherches de l'emplacement le plus proche.&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Prise en main de l'interface &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Nous avons déjà abordé les layouts java en TP donc il a été assez facile de commencer à faire des interfaces graphiques simples. Nous avons construit une interface graphique simple pour de faire une démonstration du programme aux tuteurs entreprise afin qu'ils comprennent bien le fonctionnement de notre algorithme.&lt;br /&gt;
L'interface graphique finale du programme sera très sobre afin de ne pas donner trop gêner le magasinier dans sa tâche.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 27/10 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Chemin optimal : Parcours intelligent Vs Sélection intelligente &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Un premier algorithme de recherche de l'emplacement le plus proche a été développé, celui-ci ne prend en compte qu'un seul scénario. &lt;br /&gt;
Celui de la position de départ (quai de déchargement où reviendra constamment le magasinier aprés chaque livraison) correspondante à la première allée de l'entrepôt, et en prenant en compte le sens de circulation. &lt;br /&gt;
A partir de ce moment, nous avons dégager deux grandes manières d'appréhender le problème.&lt;br /&gt;
&lt;br /&gt;
* Un parcours intelligent de la structure de donnée. C'est à dire parcourir les emplacements les plus proches, et choisir le premier emplacement libre. Une solution complexe à réaliser sur le plan algorithmique. En tenant compte du sens de circulation, il apparait que l'emplacement libre &amp;quot;leplusproche&amp;quot; (à vol d'oiseau) trouvé le plus tôt, ne correspondrait pas forcément à l'emplacement le plus proche compte tenu du chemin emprunté par un magasinier. Et c'est plutôt l'intérêt de cette algorithme.(Sauf dans l'unique cas où l'emplacement libre se trouve directement dans l'allée faisant face à la position de départ du magasinier, et le sens de circulation lui permet directement de se rendre à l'emplacement sans détour).&lt;br /&gt;
&lt;br /&gt;
* Une sélection intelligente parmi les emplacements libres. Leurs adresses renseignent à quelles allées, les emplacements libres appartiennent, donc renseignent sur le sens de circulation. A partir de la position de départ du magasinier et de l'ensemble des emplacements libres, on peut calculer la distance nécessaire à celui-ci pour les atteindre. Pour ainsi choisir l'adresse pour laquelle la distance est minimale.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 3/11 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Chemin optimal : sélection intelligente des adresses &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Nous avons écrit une premiere méthode de détermination. &lt;br /&gt;
On choisit l'emplacement, parmi tous ceux qui sont libres, pour lequel la distance de parcours est minimale entre le départ et celui-ci. &lt;br /&gt;
Ici l'unité de distance est la baie. La simplicité de l'algorithme réside dans le fait que le magasinier ne transporte qu'une seule caisse à la fois et repars toujours au même point de départ.&lt;br /&gt;
&lt;br /&gt;
Ci dessous un plan de l'entrepôt.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:schema_entrepot.png|750px|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Si on se place à l'entrée de l'Allée A :&lt;br /&gt;
&lt;br /&gt;
**le déplacement jusqu'à A4 (sens de circulation direct) est de : &lt;br /&gt;
&lt;br /&gt;
                        Y baies - (indice de la baie/2 +indice de la baie % 2) &lt;br /&gt;
&lt;br /&gt;
**le déplacement jusqu'à B1 (sens de circulation indirect) est de : &lt;br /&gt;
&lt;br /&gt;
                        Y baies + différence entre l'allée A et B donc X baies + indice de la baie/2 +indice de la baie % 2&lt;br /&gt;
**le déplacement jusqu'à C1 (sens de circulation direct) est de : &lt;br /&gt;
                      &lt;br /&gt;
                        Y baies - (indice de la baie/2 +indice de la baie % 2)+différence entre l'allée A et C donc 2*X baies.&lt;br /&gt;
&lt;br /&gt;
*Si on se place à l'entrée de l'Allée B :&lt;br /&gt;
**le déplacement jusqu'à B1 (sens de circulation indirect avec contournement) est de : &lt;br /&gt;
                        &lt;br /&gt;
                        2*X baies + Y baies + 2*X baies + (indice de la baie/2 +indice de la baie % 2)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On peut généraliser l'ensemble de ces situations de déplacement avec l'algorithme suivant :&lt;br /&gt;
&lt;br /&gt;
Pseudo code&lt;br /&gt;
&lt;br /&gt;
  Leplusproche( Allee depart )&lt;br /&gt;
    distance_la_plus_petite = valeurMAX&lt;br /&gt;
      le_plus_proche=&amp;quot;&amp;quot;&lt;br /&gt;
         Pour chaque Allee de Cellule&lt;br /&gt;
           sens=Allee.sens&lt;br /&gt;
           Pour chaque Baie de Allee&lt;br /&gt;
             Pour chaque Rang de Allee&lt;br /&gt;
 	       Pour chaque Emplacement de Rang&lt;br /&gt;
                Si Emplacement estlibre &lt;br /&gt;
                &lt;br /&gt;
                indice_baie = selection_indice_baie(Emplacement.adresse)&lt;br /&gt;
   		 allee_cible = selection_indice_allee(Emplacement.adresse)  &lt;br /&gt;
   		 difference_allee = valeur_absolue(depart -cible) &lt;br /&gt;
                    Si difference_allee==0 et sens.estindirect&lt;br /&gt;
                      //sens indirect +contournement&lt;br /&gt;
                      distance_actuelle=(indice_baie/2)+indice_baie%2+(2*(difference_allee))+4*X+Y			&lt;br /&gt;
                    Sinon	&lt;br /&gt;
                        Si sens estdirect&lt;br /&gt;
                          //sens direct &lt;br /&gt;
                          distance_actuelle=(Y-((indice_baie/2)+indice_baie%2))+2*difference_allee&lt;br /&gt;
                        Sinon&lt;br /&gt;
                          //sens indirect mais pas de contournement&lt;br /&gt;
                          distance_actuelle=((indice_baie/2)+indice_baie%2)+2*difference_allee+Y&lt;br /&gt;
                        Finsi	&lt;br /&gt;
                    Finsi	&lt;br /&gt;
                    Si distance_actuelle &amp;lt; distance_la_plus_petite&lt;br /&gt;
                      le_plus_proche=Emplacement.adresse&lt;br /&gt;
                      distance_la_plus_petite=distance_actuelle&lt;br /&gt;
                    Finsi&lt;br /&gt;
                Finsi  &lt;br /&gt;
            Finpour&lt;br /&gt;
          Finpour&lt;br /&gt;
        Finpour&lt;br /&gt;
      Finpour&lt;br /&gt;
    retourne le_plus_proche&lt;br /&gt;
  Finleplusproche&lt;br /&gt;
&lt;br /&gt;
Cet algorithme nous donne satisfaction (dans le cadre de la V1)&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 10/11 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Programmation et gestion des interactions &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Aprés quelques difficultés vis à vis de la gestion des menus vocaux sur les lunettes qui ne fonctionnent pas de la même manière que les menus classiques sous android, nous avons étoffé les interactions possible avec l'application des google glass. (Nous souhaitions inflater un deuxième menu pour interagir de manière plus contextuelle, il fallait le faire dans la méthode onCreatePanelMenu dont l'appel serait forcé avec getWindow().invalidatePanelMenu(WindowUtils.FEATURE_VOICE_COMMANDS) plutôt que dans onPrepareOptionsMenu forcée par invalidateOptionMenu()...) &lt;br /&gt;
&lt;br /&gt;
schéma d'utilisation...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Proposition projet affichage télévision &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Tele_concept.png|200px|thumb|right]]&lt;br /&gt;
&lt;br /&gt;
Notre tuteur nous a contacté pour nous proposer d'étudier un second projet en parallèle au projet initial. Celui consistant à gérer l'affichage d'information personnalisé d'un magasinier passant à proximité d'un écran de télévision. Nous devons effectuer un Proof Of Concept (POC) et réfléchir à ce sujet.&lt;br /&gt;
L'utilisation du BLE est donc de nouveau d'actualité, car je rappel que sont utilité était discutable dans une réalité métier du projet initial. La question étant plus de savoir comment gérer le système du coté du téléviseur.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Le concept de base étant de :&lt;br /&gt;
* Fournir une beacon aux magasiniers de l'entrepôt.&lt;br /&gt;
* Installer une télévision sur un centre de vie dans l'entrepôt avec une beacon&lt;br /&gt;
* Pousser du contenu personnalisé au magasinier qui se présente devant la tv dans son centre de vie&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 17/11 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Brainstorming à Polytech &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Dans la cadre du POC sur l'affichage personnalisé sur une télévision, nous avons profité d'un exercice de management pour faire participer la classe à notre projet. Grâce à cette intervention nous avons pu confirmer nos idées sur les technologies à utiliser. Mais nous avons surtout eu une multitude de propositions sur les données à afficher sur l'écran.&lt;br /&gt;
&lt;br /&gt;
Pour plus détails, le compte rendu est disponible à ce lien:&lt;br /&gt;
&lt;br /&gt;
'''Compte Rendu Brainstorming 17/11/2014 :''' [[Fichier:Compte_Rendu_POC_17_11.pdf]]&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Entretien avec notre tuteur entreprise &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Durant cet entretien, nous avons livré la première version de l'application et nous avons discuté de la suite du projet.&lt;br /&gt;
Ci joint le Compte Rendu.&lt;br /&gt;
&lt;br /&gt;
'''Compte Rendu  19/11/2014 :''' [[Fichier:Compte_Rendu_19_11.pdf]]&lt;br /&gt;
&lt;br /&gt;
De cette réunion, les points suivants en sont sortis:&lt;br /&gt;
&lt;br /&gt;
*Une reconnaissance vocale en langue française sur les lunettes serait plus intéressante pour les employés (une piste serait d’utiliser l’outil pocketsphinx-  android).&lt;br /&gt;
*Par rapport à l'IHM, il faudrait mettre l’affichage au premier plan sur les Google Glass pour une démo auprés des parties prenantes du projet.&lt;br /&gt;
*Choisir une architecture pour l’affichage d’information personnalisées.&lt;br /&gt;
**La télévision connectée à une raspberry qui communiquerait via un dongle BLE avec le beacon d’un magasinier, ce qui permettrait l’identification de celui-ci prés de la Télévision, et déclencherait un processus d’échange d’information. (Communication via le protocole Bluetooh, wifi entre les lunettes et la Raspberry  ou communication avec la Raspberry avec la Base de Donnée sur le réseau de l’entreprise)&lt;br /&gt;
**Une télévision connectée en continu à un site internet via un dongle HDMI.&lt;br /&gt;
**Une tablette android géante supportant le BLE, ou utilisant un dongle BLE.&lt;br /&gt;
* Réaliser le portage de l’application sur le prototype des lunettes ORA.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 24/11 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Reconnaissance vocale en Français &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Pocket Sphinx Android est une librairie permettant de faire de la reconnaissance vocale d'un langage donné sur un système android en offline.&lt;br /&gt;
Pour supporter une langue, elle nécessite: &lt;br /&gt;
*un modèle acoustique (ensemble d'informations pour le traitement sonore)&lt;br /&gt;
*un dictionnaire associant les mots et leur phonèmes&lt;br /&gt;
*une grammaire, c'est un fichier définissant comment seraient articulé les mots à reconnaître et limitant les possibilités de langage).&lt;br /&gt;
&lt;br /&gt;
La grammaire étant un automate. Voici un exemple de la grammaire menu.gram pour la reconnaissance de la porte de déchargement.&lt;br /&gt;
[[Fichier:Arborescence_pocket_sphinx.png|200px|thumb|right|PocketSphinx dans un projet Android]]&lt;br /&gt;
&lt;br /&gt;
  #JSGF V1.0;&lt;br /&gt;
  grammar menu;&lt;br /&gt;
  &amp;lt;porte&amp;gt; = porte a |&lt;br /&gt;
            porte b |&lt;br /&gt;
            porte c |&lt;br /&gt;
            porte d |&lt;br /&gt;
            porte e |&lt;br /&gt;
            porte f |&lt;br /&gt;
            porte g |&lt;br /&gt;
            porte h |&lt;br /&gt;
            porte i |&lt;br /&gt;
            porte j ;&lt;br /&gt;
  public &amp;lt;porte&amp;gt; = &amp;lt;porte&amp;gt;+;&lt;br /&gt;
&lt;br /&gt;
Un extrait du dictionnaire french_letter.dic associé avec les phonemes&lt;br /&gt;
&lt;br /&gt;
  a aa &amp;lt;-- juste la lettre a et son phoneme &lt;br /&gt;
  autre au tt rr&lt;br /&gt;
  autre(2) au tt rr ee &lt;br /&gt;
  b bb &lt;br /&gt;
  c ss &lt;br /&gt;
  d dd ei d(2) dd ait &lt;br /&gt;
  e eu e(2) eu zz &lt;br /&gt;
  f ai ff &lt;br /&gt;
  g jj ei g(2) gg ai &lt;br /&gt;
  h aa ch  &lt;br /&gt;
  i ii &lt;br /&gt;
  j jj yy j(2) jj ii&lt;br /&gt;
  porte pp oo rr tt&lt;br /&gt;
  porte(2) pp oo rr tt ee&lt;br /&gt;
  portes(2) pp oo rr tt ee&lt;br /&gt;
  portes(3) pp oo rr tt ee zz&lt;br /&gt;
  portes(4) pp oo rr tt zz&lt;br /&gt;
&lt;br /&gt;
Le modèle acoustique que nous avons téléchargé étant inclu dans lium_french_f0&lt;br /&gt;
&lt;br /&gt;
Nous avons testé la reconnaissance vocale sur un téléphone android, les mots sont, dans la majorité des cas, bien reconnus.&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Comparaison architectures projet TV &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Au niveau de l’architecture nous avons établi plusieurs propositions après la réunion avec notre tuteur:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour une Raspberry Pi avec un dongle BLE :&lt;br /&gt;
* Installation OS Linux sur la Raspberry&lt;br /&gt;
* Librairie BlueZ pour l’utilisation du BLE (tests rapides effectués sur Linux avec le Dongle)&lt;br /&gt;
* Interface graphique avec une bibliothèque comme Qt (ou encore SDL…)&lt;br /&gt;
* Prix : Rpi = 26€ (chez RadioSpare), Dongle = 10€, TV = à partir de 358€ pour 117cm, + Connectique vidéo. Total = 394€&lt;br /&gt;
&lt;br /&gt;
Pour un écran ViewSonic VSD231 :&lt;br /&gt;
* Possède une API Bluetooth classic + API BLE&lt;br /&gt;
* Interface graphique Android (View, Layout...)&lt;br /&gt;
* Prix : écran ViewSonic VSD231 = 558 € pour 58 cm (chez ViewSonic).&lt;br /&gt;
&lt;br /&gt;
Récupération d’informations :&lt;br /&gt;
* Si données sur les lunettes : Bluetooth ou Wifi.&lt;br /&gt;
* Si données sur serveur : Ethernet ou Wifi.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Vu les propositions possibles nous pensons que la première proposition permettra une meilleure souplesse dans le développement mais serait un peu plus compliquée. Mais nous la trouvons aussi plus intéressante à faire de plus elle est moins coûteuse et permet d'utiliser un écran plus grand. Le développement sur tablette serait sûrement plus rapide à faire en contrepartie.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 01/12 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Conférence GlassCamp à l'Imaginarium &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
GlassCamp est une association qui essaye de répandre l'utilisation de toute les Smart Glass en général. Elle propose de multiples conférences dans lesquelles ils essayent de montrer au public l’intérêt de développer sur ces appareils. Dans le cadre de notre projet, notre tuteur nous a proposé de participer à cette présentation afin de mieux s’approprier le sujet. La conférence a eu lieu le 4 décembre à l'Imaginarium: une grande partie était plutôt tournée vers la présentation mais nous avons apprîs plusieurs choses intéressantes qui sont décrites dans le compte rendu.&lt;br /&gt;
&lt;br /&gt;
'''Compte Rendu Conférence 04/12/2014 :''' [[Fichier:Compte_Rendu_Conf_GlassCamp.pdf]]&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaines du 08/12 et 15/12 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Reconnaissance vocale en Français &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Nous avons avancé sur la version française de l'application. A la manière du menu vocal des google glass, nous avons utilisé un délimiteur&lt;br /&gt;
&amp;quot;ok lunettes&amp;quot; pour démarrer l'interaction avec l'application, afin que les discussions et bruits ambiants n'interfèrent pas sur l'utilisation de celle-ci.&lt;br /&gt;
Voici le scénario d'utilisation de la nouvelle version de l'application en Français.&lt;br /&gt;
[[Fichier:Schema_fr.png|700px|center]]&lt;br /&gt;
&lt;br /&gt;
Sous pocketsphinx, le délimiteur n'apparait pas dans une grammaire. La grammaire permet de prédestiner l'application à choisir entre deux mots. &lt;br /&gt;
Dans notre application, le moteur de reconnaissance vocale choisi la distance la plus courte, séparant le mot prononcé par l'utilisateur et ceux&lt;br /&gt;
qu'il est possible d'entendre. Ainsi entre &amp;quot;oui&amp;quot; et &amp;quot;non&amp;quot;, l'application choisira forcément l'un des deux, même si l'utilisateur dit &amp;quot;bonjour&amp;quot;&lt;br /&gt;
&lt;br /&gt;
L'avantage du délimiteur est que sa détection repose sur un seuillage entre ce qui est prononcé et ce qui doit être reconnu, nous pouvons régler ce seuil.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 05/01 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Entretien avec notre tuteur &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Durant cet entretien nous avons défini les évolutions du projet.&lt;br /&gt;
&lt;br /&gt;
'''Compte Rendu de l'entretien du 06/01/2015 :''' [[Fichier:Compte_Rendu_4.pdf]]&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 12/01 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; TV connectée &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Nous avons pris en main la détection des beacons (de la marque Estimote fournis par l'entreprise) dans les systèmes android.&lt;br /&gt;
L'adresse MAC et le RSSI sont accessibles, ce sont les seules informations nécessaires que nous avons besoin en ce qui concerne les beacons.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 19/01 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Interfaces_exemple.png|100px|thumb|right]]&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt;Interface TV &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Nous avons développé plusieurs exemples d'interfaces avec les instructions de notre tuteur afin de choisir les meilleurs résultats ensembles. Nous avons défini quelques contraintes pour le design. Elle doit être&lt;br /&gt;
* Simple et intuitive&lt;br /&gt;
* En accord avec les couleurs de l'entreprise&lt;br /&gt;
* Moderne (système de tuile ou autre)&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 26/01 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Entretien avec notre tuteur &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Durant cette entretien nous avons défini plus précisément les objectifs restant à faire sur le projet.&lt;br /&gt;
Ci dessous le compte rendu.&lt;br /&gt;
&lt;br /&gt;
'''Compte Rendu de l'entretien du 26/01/2015 :''' [[Fichier:Compte_Rendu_5.pdf]]&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 02/02 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Portage d'une application de SmartPicking sur les Google Glass &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Une application android main libre pour les ORA glasses a été développé pour permettre à l'entreprise, &lt;br /&gt;
d'accélerer les opérations de picking(prélévement à l'article) en entrepôt. Celle-ci était à destination des lunettes ORA de Optinvent.&lt;br /&gt;
Notre tuteur souhaitait donc que nous réalisions le portage de cette application vers les google glass. Le but étant de comparer l'usage de cette application sur deux supports différents entre les lunettes. &lt;br /&gt;
&lt;br /&gt;
*Nous avons procédé à des ajustements au niveau de la gestion des layouts de l'interface, à équilibrer la places qu'occupe certaines informations données par l'application.&lt;br /&gt;
*Cette application communique par bluetooth avec une autre application lancée sur une tablette android, cette dernière permet de réaliser l'appairage avec la smartglass. La tablette étant la seule à être connectée au serveur de l'entreprise (l'AS400) via un réseau sécurisé. Nous avons du appairer manuellement les glass avec la tablette, et retirer dans le code le lancement d'un intent permettant aux lunettes de se rendre visible sur le réseau. Lorsque cet intent est lancé il génère une exception non attendue qui ne concerne que les google glass. Aprés recherches sur le net, il semble que c'est un problème récurrent qui a été signalé mais pas encore résolu.&lt;br /&gt;
&lt;br /&gt;
Ci dessous des screenshot de l'application en question adaptée par nos soins :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Schema_picking.png|800px|center]]&lt;br /&gt;
&lt;br /&gt;
L'écran de gauche, correspond à la phase de prélévement d'un article ici &amp;quot;VE RAINCUT TRUE BLACK SS14&amp;quot; une veste à l'adresse C4FU-10-1-3, il faut en prélever 12, et le tableau à gauche correspond à la façade de l'étagère concernée, il indique grossièrement (case verte) le carton à déballer, en partant du principe que l'utilisateur respecte le sens de circulation de l'entrepôt.&lt;br /&gt;
L'écran de droite, correspond à la phase de dépôt des articles dans le chariot de l'utilisateur, il lui indique dans quel compartiment le placer.&lt;br /&gt;
&lt;br /&gt;
Nous avons participé à une demi-journée de test en production avec le responsable du picking, le responsable innovation, notre tuteur et d'autres parties prenantes du projet. La version sur les google glass a bien rempli son rôle à la manière de la version originale sur les ORA one, les préférences des parties prenantes se sont portés essentiellement sur les avantages qu'offrent les supports.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 09/02 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Connectivité android et TV connectée &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Pour tester la connectivité de l'application sur la tablette géante, dans le cadre de la fonctionnalité de TV connectée, nous voulions une base de donnée accessible depuis n'importe où. L'école met à disposition un site avec nom de domaine, nous avons donc profité de cet outil pour créer une BDD SQL. &lt;br /&gt;
Nous interrogeons cette BDD via un HttpRequest lancé dans l'application android sur une page php qui contient la requête SQL. En POST nous envoyons l'adresse mac du beacons le plus proche, qui permet de ne sélectionner que les informations nécessaires. L'idée est de pousser l'utilisation du matériel, et de prendre en main cet aspect de l'application, même si le système final pourrait reposer plutôt sur un webservice réalisé par l'équipe de développement de l'entreprise.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 16/02 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Interface TV&amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Il a été décidé que nous afficherons plutôt des statistiques propres à une équipe plutôt qu'individuelles.&lt;br /&gt;
Aprés plusieurs remaniements, voici les interfaces correspondantes à l'équipe.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Reception.png|100px|thumb|center]] [[Fichier:Picking.png|100px|thumb|center]]&lt;/div&gt;</summary>
		<author><name>Jgondry</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=Fichier:Picking.png&amp;diff=17438</id>
		<title>Fichier:Picking.png</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=Fichier:Picking.png&amp;diff=17438"/>
				<updated>2015-02-22T22:57:28Z</updated>
		
		<summary type="html">&lt;p&gt;Jgondry : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Jgondry</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=P22_Google_Glass_en_logistique&amp;diff=17437</id>
		<title>P22 Google Glass en logistique</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=P22_Google_Glass_en_logistique&amp;diff=17437"/>
				<updated>2015-02-22T22:57:05Z</updated>
		
		<summary type="html">&lt;p&gt;Jgondry : /*  Interface  */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Introduction =&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Description du sujet &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
Notre projet vise à l’optimisation du stockage et de l’adressage des palettes dans un entrepôt. En effet, lors du déchargement d’un camion, chercher un emplacement libre pour les palettes dans un entrepôt occupant une grande superficie fait perdre du temps et donc de la productivité dans le stockage. Sachant qu’un cariste perd un temps non négligeable à la recherche d’emplacement disponible, optimiser ce temps de recherche permettrait de gagner du temps sur cette opération.&lt;br /&gt;
Développer un prototype permettrait de rendre compte des moyens existants qui pourrait être mis en place dans une solution métier.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Analyse du sujet &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Google_glass.png|200px|thumb|right|Paire de Google Glass]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Optinvent_ora.png|200px|thumb|right|Paire de ORA d'Optivent]]&lt;br /&gt;
&lt;br /&gt;
Notre projet consiste à fluidifier le déchargement en indiquant au cariste l’emplacement libre le plus proche. Pour ne pas gêner le travail des employés, un dispositif main-libre comme une Google Glass semble adapté. Ce projet soulève plusieurs problématiques : développer une interface homme-machine apportant une information pertinente pour l’utilisateur sans pour autant être perturbante. &lt;br /&gt;
&lt;br /&gt;
L’idée serait de réaliser dans les grandes lignes un système similaire à ce scénario d’utilisation :&lt;br /&gt;
http://n.mynews.ly/!lB.Bs4fw&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Moyen d’affichage de l’Informations pertinentes'''&lt;br /&gt;
&lt;br /&gt;
Les Google Glass ne sont pas les seules smart glasses sur le marché. Il nous faudra choisir les appareils les plus adaptés. L’information pertinente pourrait être une direction à suivre dans l’entrepôt ou simplement un numéro d’emplacement (adressage intuitif de l’entrepôt). &lt;br /&gt;
&lt;br /&gt;
'''Géolocalisation'''&lt;br /&gt;
&lt;br /&gt;
Dans le cas d’une direction à suivre se pose le problème de la géolocalisation indoor dont l’utilité et la faisabilité seront discutés au fil des réunions avec l’entreprise. &lt;br /&gt;
&lt;br /&gt;
'''Adressage / flashage'''&lt;br /&gt;
&lt;br /&gt;
En ce qui concerne l’adressage des palettes en entrepôt, la solution existante repose sur un flashage des codes barres associés à l’emplacement venant d’être occupé. Une étude de faisabilité/utilité sera aussi faite sur une solution de remplacement grâce aux possibilités qu’offrent les smart glasses.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Cahier des charges &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
En partant de l'analyse du sujet et des discussion avec notre tuteur, nous avons définie un cahier des charges plus précis des tâches à accomplir:&lt;br /&gt;
&lt;br /&gt;
* '''Développer un système embarqué sur une paire de lunette Smart Glass'''&lt;br /&gt;
** Comparer les différentes offres en matière de Smart Glass notamment Google Glass &amp;amp; ORA de Optinvent&lt;br /&gt;
** Concevoir une interface homme-machine non perturbante pour l'utilisateur.&lt;br /&gt;
* '''Etudier la nécessité d'utiliser une géolocalisation en entrepôt et l'implémenter si besoin'''&lt;br /&gt;
** Via RSSI (Wifi, Bluetooh Low Energy ...)&lt;br /&gt;
** Via traitement d'images (reconnaissance de la signalétique en entrepôt)&lt;br /&gt;
* '''Etudier les possibilités d'optimisation du système d'adressage des palettes'''&lt;br /&gt;
** Implémenter la reconnaissance de code barre&lt;br /&gt;
** La tester en réalité métier (utilité ajoutée, habitude des magasiniers, vitesse de traitement...)&lt;br /&gt;
&lt;br /&gt;
Le cahier des charges est encore en cours de construction&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Matériel utilisé &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; SmartGlass &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Lors de la réunion nous avons discuté des technologies à utiliser dans le projet, et plus particulièrement des différentes SmartGlass. En effet, il existe une multitude de sociétés qui développe ce genre de lunettes. Nous commencerons à utiliser les Google Glass étant donné que notre tuteur en a déjà commandé puis nous développerons sur les lunettes ORA de Optivent qui seront livrées fin octobre. Nous devrons donc faire un comparatif entre ces deux SmartGlass puis étudier les autres appareils disponibles sur le marché.&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Localisation &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
L'utilisation de la géolocalisation dans le projet est à débattre. Mais des tests seront probablement mis en place. L'entreprise possède quelque iBeacons BLE Estimote dans ses bureaux d'innovations que nous pourrons emprunter.&lt;br /&gt;
Dans le cas où leur gain d'informations serait utile il nous faudra comparer les modèles disponibles. Choisir un nombre de module et des emplacements stratégiques dans l'entrepôt afin d'avoir une localisation assez précise pour l'application.&lt;br /&gt;
&lt;br /&gt;
L'utilisation d'autres technologies de géolocalisation a été discuté comme le Wifi ou le XBee mais le BLE semblait le plus adapté dans le cadre de notre projet.&lt;br /&gt;
&lt;br /&gt;
= Déroulement du projet =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 22/09 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Réunion avec le tuteur entreprise dans l’entrepôt &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Nous avons observé en situation le problème et discuté des besoins, des moyens déjà utilisables. Il nous faudra prendre en compte plusieurs paramètres dans notre réflexion tels que le système de stockage et d'adressages des palettes, sens de circulation des caristes, superficie des zones à desservir, durée de livraison.&lt;br /&gt;
Nous avons suggéré des étapes de validation intermédiaire du système par les futurs utilisateurs et pour cela nous rencontrerons le chef d'équipe des magasiniers lorsque qu'une version sera assez développée.&lt;br /&gt;
&lt;br /&gt;
Nous avons défini avec le tuteur les premières deadlines du projet, voici la timeline récapitulative:&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Timeline_1.jpg||center|1000px]]&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Compte Rendu &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Nous avons rédigé un compte rendu de la première réunion détaillant les spécifications des versions des livrables, des schémas et les sujets abordés lors de la rencontre :&lt;br /&gt;
&lt;br /&gt;
'''Compte Rendu réunion du 25/09/2014 :''' [[Fichier:Compte_Rendu_25_09.pdf]]&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 29/09 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Découverte des Google Glass &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
*Prise en main des Google Glass. &lt;br /&gt;
*Installation d'applications (.apk) grand public. Nous avons utilisé l'outil Android Debug Bridge(adb). Se mettre à la place d'un utilisateur.&lt;br /&gt;
*L'une des deux lunettes qui serait retenue imposera forcément le développement d'une application android (ou d'une technologie trés proche d'android, pour les Google Glass, se basant sur le Glass Development Kit qui est un add-on au SDK classique d'android). Nous avons donc téléchargé les packages nécessaires pour commencer à développer. &lt;br /&gt;
** Nous commençons à nous former sur les technologies android :développement d'applications minimaliste.&lt;br /&gt;
** Installation de nos premières apk minimalistes pour Android.&lt;br /&gt;
** Installation d'une application minimaliste sur la Google Glass.&lt;br /&gt;
&lt;br /&gt;
Voici un comparatif réalisé entre les lunettes ORA et les Google Glass.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Différences Google Glass/ORA &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!   !! Google Glass !! ORA &lt;br /&gt;
|-&lt;br /&gt;
|Connectique&lt;br /&gt;
|Compatible BLE (à partir de la XE 16 KitKat Update), Wifi &lt;br /&gt;
|Compatible BLE, Wifi&lt;br /&gt;
|-&lt;br /&gt;
|Autonomie en utilisation normale&lt;br /&gt;
|de 1h à 2h &lt;br /&gt;
|de 4h à 8h&lt;br /&gt;
|-&lt;br /&gt;
|Son&lt;br /&gt;
|Conductivité Cranienne&lt;br /&gt;
|Prise jack&lt;br /&gt;
|-&lt;br /&gt;
|Interface&lt;br /&gt;
|Ecran occupant une faible superficie dans le champ de vision &lt;br /&gt;
|Ecran 2 positions (moyennes et basses), plus étendu permettant une réalité augmentée &lt;br /&gt;
|-&lt;br /&gt;
|Système d'exploitation&lt;br /&gt;
|Android 4.4&lt;br /&gt;
|Android 4.2.2&lt;br /&gt;
|-&lt;br /&gt;
|Calculs&lt;br /&gt;
|CPU &amp;amp; GPU&lt;br /&gt;
|CPU &amp;amp; GPU&lt;br /&gt;
|-&lt;br /&gt;
|Prix&lt;br /&gt;
|1500$ &lt;br /&gt;
|949$&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 06/10 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Deuxième rendez-vous avec le tuteur entreprise &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Nous avons fait part de notre avancée en matière de prise en main et des problèmes rencontrés en matière de développement.&lt;br /&gt;
Les lunettes ORA sont commandées elles arrivent d'ici la fin octobre.&lt;br /&gt;
&lt;br /&gt;
La première version V1 de l'application pour Google Glass à livrer pour la mi-novembre est fixée.&lt;br /&gt;
&lt;br /&gt;
En partant d'une position connue (en dur dans l'application) dans l'entrepôt, elle indiquera à un utilisateur les emplacements libres les plus proches.&lt;br /&gt;
&lt;br /&gt;
L'état d'occupation des emplacements sera consulté et stocké dans l'application. Il n'y aura donc pas de gestion des conflits. Le sens de circulation dans l'entrepôt sera pris en compte.&lt;br /&gt;
Une communication avec la base de donnée de l'entrepôt n'est pour le moment pas d'actualité, cela nécessiterait des développements en amont.&lt;br /&gt;
La géolocalisation n'est pas au goût du jour non plus. L'adressage des emplacements dans l'entrepôt est intuitif, il est donc facile pour un magasinier de &lt;br /&gt;
se rendre à un emplacement en connaissant l'adresse.&lt;br /&gt;
&lt;br /&gt;
Pour l'IHM, nous nous inspirerons des applications pour Google Glass (les Glasswares) de type GPS.&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Premiers programmes sur Google Glass &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Pour nous familiariser avec la programmation sur ce genre d'appareil nous avons tous deux décidé de suivre en premier le tutoriel Android d'un site spécialisé. Cela afin de mieux comprendre le système Android, avec les concepts d'activités, de view etc.&lt;br /&gt;
Dans un deuxième temps nous avons choisi de suivre plusieurs tutoriels nous expliquant la prise en main basique des lunettes afin de saisir les particularités de leur programmation.&lt;br /&gt;
&lt;br /&gt;
Le plus dur étant finalement de comprendre les liens entre tous les fichiers du projets, les problèmes de drivers et d'upload simple que nous avons rencontrés et l’exécution du programme sur les lunettes. Des choses que nous arrivons maintenant à maitriser mais qui était floues à l'origine.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 13/10 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Programmation et gestion des interactions &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Durant cette semaine nous avons commencé a vraiment toucher aux fonctionnalités des Glass. Pour rester en main libre, nous avons fait des recherches et commencé à programmer de la reconnaissance vocale. Nous avons ainsi crée un système de navigation basique par commande vocale dans différents menus. Pour un accès rapide à l'application et toujours dans la même optique nous avons réussi à inclure le lancement de notre logiciel à partir du &amp;quot;Ok Glass&amp;quot; menu qui est le menu de lancement d'application par commande vocale des Google Glass. Voici un aperçu du résultat:&lt;br /&gt;
[[Fichier:V0_menu.png|1000px|center]]&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Analyse et évaluation du rendu &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Le début de la prise en main des fonctionnalités des Google Glass n'a pas été facile étant donné que la plupart des fonctionnalités sont propres à ce genre d'appareil. De plus elles nécessitent des techniques spéciales de programmation qui ne sont pas toujours très utilisées donc il est parfois difficile de trouver des exemples sur internet.&lt;br /&gt;
Néanmoins après l'implémentation de ces fonctionnalités nous avons pu rencontrer quelques difficultés de reconnaissance. En effet, les Google Glass possèdent un dictionnaire de mots/phrases pour la reconnaissance vocale mais elles nous permettent aussi d'écrire n'importe quelle phrase dans le mode développeur. Les phrases du dictionnaires ne posent aucun problème mais les phrases que nous écrivons sont parfois dures à reconnaitre. La reconnaissance de lettre seule ou de certains numéros est par exemple quasi impossible ou très aléatoire.&lt;br /&gt;
Le système de vu est quant à lui plutôt facile à prendre en main et intuitif dans l'utilisation.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 20/10 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Premiere structure de donnée &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Nous avons opté pour une structure de donnée récursive. Une Cellule, contenant des Allées, qui contiennent des Baies, contenant des Rangées, contenant des Emplacements.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Structure_export_resized.png|750px|center]]&lt;br /&gt;
Nous avons conçu cette structure de donnée pour qu'elle génère, dans un premier temps &amp;quot;en dur&amp;quot;, une cellule contenant des emplacements automatiquement adressés à la manière de ceux présent dans l'entrepôt. Ces adresses sont de la forme &amp;quot;D61A514&amp;quot; traduisez &amp;quot; Cellule 6 Allée 1A Baie 5 Rang 1 Niveau 4&amp;quot;.&lt;br /&gt;
Cette structure prend on compte le sens de circulation dans l'entrepôt.&lt;br /&gt;
Lors de futures interactions avec une base de donnée, cette structure serait sujette à évolution par une modification des méthodes de génération/modification du statut des adresses en fonction de cette base de donnée. Mais celle-ci constitue essentiellement une base pour appréhender plus pratiquement les problématiques de recherches de l'emplacement le plus proche.&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Prise en main de l'interface &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Nous avons déjà abordé les layouts java en TP donc il a été assez facile de commencer à faire des interfaces graphiques simples. Nous avons construit une interface graphique simple pour de faire une démonstration du programme aux tuteurs entreprise afin qu'ils comprennent bien le fonctionnement de notre algorithme.&lt;br /&gt;
L'interface graphique finale du programme sera très sobre afin de ne pas donner trop gêner le magasinier dans sa tâche.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 27/10 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Chemin optimal : Parcours intelligent Vs Sélection intelligente &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Un premier algorithme de recherche de l'emplacement le plus proche a été développé, celui-ci ne prend en compte qu'un seul scénario. &lt;br /&gt;
Celui de la position de départ (quai de déchargement où reviendra constamment le magasinier aprés chaque livraison) correspondante à la première allée de l'entrepôt, et en prenant en compte le sens de circulation. &lt;br /&gt;
A partir de ce moment, nous avons dégager deux grandes manières d'appréhender le problème.&lt;br /&gt;
&lt;br /&gt;
* Un parcours intelligent de la structure de donnée. C'est à dire parcourir les emplacements les plus proches, et choisir le premier emplacement libre. Une solution complexe à réaliser sur le plan algorithmique. En tenant compte du sens de circulation, il apparait que l'emplacement libre &amp;quot;leplusproche&amp;quot; (à vol d'oiseau) trouvé le plus tôt, ne correspondrait pas forcément à l'emplacement le plus proche compte tenu du chemin emprunté par un magasinier. Et c'est plutôt l'intérêt de cette algorithme.(Sauf dans l'unique cas où l'emplacement libre se trouve directement dans l'allée faisant face à la position de départ du magasinier, et le sens de circulation lui permet directement de se rendre à l'emplacement sans détour).&lt;br /&gt;
&lt;br /&gt;
* Une sélection intelligente parmi les emplacements libres. Leurs adresses renseignent à quelles allées, les emplacements libres appartiennent, donc renseignent sur le sens de circulation. A partir de la position de départ du magasinier et de l'ensemble des emplacements libres, on peut calculer la distance nécessaire à celui-ci pour les atteindre. Pour ainsi choisir l'adresse pour laquelle la distance est minimale.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 3/11 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Chemin optimal : sélection intelligente des adresses &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Nous avons écrit une premiere méthode de détermination. &lt;br /&gt;
On choisit l'emplacement, parmi tous ceux qui sont libres, pour lequel la distance de parcours est minimale entre le départ et celui-ci. &lt;br /&gt;
Ici l'unité de distance est la baie. La simplicité de l'algorithme réside dans le fait que le magasinier ne transporte qu'une seule caisse à la fois et repars toujours au même point de départ.&lt;br /&gt;
&lt;br /&gt;
Ci dessous un plan de l'entrepôt.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:schema_entrepot.png|750px|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Si on se place à l'entrée de l'Allée A :&lt;br /&gt;
&lt;br /&gt;
**le déplacement jusqu'à A4 (sens de circulation direct) est de : &lt;br /&gt;
&lt;br /&gt;
                        Y baies - (indice de la baie/2 +indice de la baie % 2) &lt;br /&gt;
&lt;br /&gt;
**le déplacement jusqu'à B1 (sens de circulation indirect) est de : &lt;br /&gt;
&lt;br /&gt;
                        Y baies + différence entre l'allée A et B donc X baies + indice de la baie/2 +indice de la baie % 2&lt;br /&gt;
**le déplacement jusqu'à C1 (sens de circulation direct) est de : &lt;br /&gt;
                      &lt;br /&gt;
                        Y baies - (indice de la baie/2 +indice de la baie % 2)+différence entre l'allée A et C donc 2*X baies.&lt;br /&gt;
&lt;br /&gt;
*Si on se place à l'entrée de l'Allée B :&lt;br /&gt;
**le déplacement jusqu'à B1 (sens de circulation indirect avec contournement) est de : &lt;br /&gt;
                        &lt;br /&gt;
                        2*X baies + Y baies + 2*X baies + (indice de la baie/2 +indice de la baie % 2)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On peut généraliser l'ensemble de ces situations de déplacement avec l'algorithme suivant :&lt;br /&gt;
&lt;br /&gt;
Pseudo code&lt;br /&gt;
&lt;br /&gt;
  Leplusproche( Allee depart )&lt;br /&gt;
    distance_la_plus_petite = valeurMAX&lt;br /&gt;
      le_plus_proche=&amp;quot;&amp;quot;&lt;br /&gt;
         Pour chaque Allee de Cellule&lt;br /&gt;
           sens=Allee.sens&lt;br /&gt;
           Pour chaque Baie de Allee&lt;br /&gt;
             Pour chaque Rang de Allee&lt;br /&gt;
 	       Pour chaque Emplacement de Rang&lt;br /&gt;
                Si Emplacement estlibre &lt;br /&gt;
                &lt;br /&gt;
                indice_baie = selection_indice_baie(Emplacement.adresse)&lt;br /&gt;
   		 allee_cible = selection_indice_allee(Emplacement.adresse)  &lt;br /&gt;
   		 difference_allee = valeur_absolue(depart -cible) &lt;br /&gt;
                    Si difference_allee==0 et sens.estindirect&lt;br /&gt;
                      //sens indirect +contournement&lt;br /&gt;
                      distance_actuelle=(indice_baie/2)+indice_baie%2+(2*(difference_allee))+4*X+Y			&lt;br /&gt;
                    Sinon	&lt;br /&gt;
                        Si sens estdirect&lt;br /&gt;
                          //sens direct &lt;br /&gt;
                          distance_actuelle=(Y-((indice_baie/2)+indice_baie%2))+2*difference_allee&lt;br /&gt;
                        Sinon&lt;br /&gt;
                          //sens indirect mais pas de contournement&lt;br /&gt;
                          distance_actuelle=((indice_baie/2)+indice_baie%2)+2*difference_allee+Y&lt;br /&gt;
                        Finsi	&lt;br /&gt;
                    Finsi	&lt;br /&gt;
                    Si distance_actuelle &amp;lt; distance_la_plus_petite&lt;br /&gt;
                      le_plus_proche=Emplacement.adresse&lt;br /&gt;
                      distance_la_plus_petite=distance_actuelle&lt;br /&gt;
                    Finsi&lt;br /&gt;
                Finsi  &lt;br /&gt;
            Finpour&lt;br /&gt;
          Finpour&lt;br /&gt;
        Finpour&lt;br /&gt;
      Finpour&lt;br /&gt;
    retourne le_plus_proche&lt;br /&gt;
  Finleplusproche&lt;br /&gt;
&lt;br /&gt;
Cet algorithme nous donne satisfaction (dans le cadre de la V1)&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 10/11 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Programmation et gestion des interactions &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Aprés quelques difficultés vis à vis de la gestion des menus vocaux sur les lunettes qui ne fonctionnent pas de la même manière que les menus classiques sous android, nous avons étoffé les interactions possible avec l'application des google glass. (Nous souhaitions inflater un deuxième menu pour interagir de manière plus contextuelle, il fallait le faire dans la méthode onCreatePanelMenu dont l'appel serait forcé avec getWindow().invalidatePanelMenu(WindowUtils.FEATURE_VOICE_COMMANDS) plutôt que dans onPrepareOptionsMenu forcée par invalidateOptionMenu()...) &lt;br /&gt;
&lt;br /&gt;
schéma d'utilisation...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Proposition projet affichage télévision &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Tele_concept.png|200px|thumb|right]]&lt;br /&gt;
&lt;br /&gt;
Notre tuteur nous a contacté pour nous proposer d'étudier un second projet en parallèle au projet initial. Celui consistant à gérer l'affichage d'information personnalisé d'un magasinier passant à proximité d'un écran de télévision. Nous devons effectuer un Proof Of Concept (POC) et réfléchir à ce sujet.&lt;br /&gt;
L'utilisation du BLE est donc de nouveau d'actualité, car je rappel que sont utilité était discutable dans une réalité métier du projet initial. La question étant plus de savoir comment gérer le système du coté du téléviseur.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Le concept de base étant de :&lt;br /&gt;
* Fournir une beacon aux magasiniers de l'entrepôt.&lt;br /&gt;
* Installer une télévision sur un centre de vie dans l'entrepôt avec une beacon&lt;br /&gt;
* Pousser du contenu personnalisé au magasinier qui se présente devant la tv dans son centre de vie&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 17/11 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Brainstorming à Polytech &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Dans la cadre du POC sur l'affichage personnalisé sur une télévision, nous avons profité d'un exercice de management pour faire participer la classe à notre projet. Grâce à cette intervention nous avons pu confirmer nos idées sur les technologies à utiliser. Mais nous avons surtout eu une multitude de propositions sur les données à afficher sur l'écran.&lt;br /&gt;
&lt;br /&gt;
Pour plus détails, le compte rendu est disponible à ce lien:&lt;br /&gt;
&lt;br /&gt;
'''Compte Rendu Brainstorming 17/11/2014 :''' [[Fichier:Compte_Rendu_POC_17_11.pdf]]&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Entretien avec notre tuteur entreprise &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Durant cet entretien, nous avons livré la première version de l'application et nous avons discuté de la suite du projet.&lt;br /&gt;
Ci joint le Compte Rendu.&lt;br /&gt;
&lt;br /&gt;
'''Compte Rendu  19/11/2014 :''' [[Fichier:Compte_Rendu_19_11.pdf]]&lt;br /&gt;
&lt;br /&gt;
De cette réunion, les points suivants en sont sortis:&lt;br /&gt;
&lt;br /&gt;
*Une reconnaissance vocale en langue française sur les lunettes serait plus intéressante pour les employés (une piste serait d’utiliser l’outil pocketsphinx-  android).&lt;br /&gt;
*Par rapport à l'IHM, il faudrait mettre l’affichage au premier plan sur les Google Glass pour une démo auprés des parties prenantes du projet.&lt;br /&gt;
*Choisir une architecture pour l’affichage d’information personnalisées.&lt;br /&gt;
**La télévision connectée à une raspberry qui communiquerait via un dongle BLE avec le beacon d’un magasinier, ce qui permettrait l’identification de celui-ci prés de la Télévision, et déclencherait un processus d’échange d’information. (Communication via le protocole Bluetooh, wifi entre les lunettes et la Raspberry  ou communication avec la Raspberry avec la Base de Donnée sur le réseau de l’entreprise)&lt;br /&gt;
**Une télévision connectée en continu à un site internet via un dongle HDMI.&lt;br /&gt;
**Une tablette android géante supportant le BLE, ou utilisant un dongle BLE.&lt;br /&gt;
* Réaliser le portage de l’application sur le prototype des lunettes ORA.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 24/11 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Reconnaissance vocale en Français &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Pocket Sphinx Android est une librairie permettant de faire de la reconnaissance vocale d'un langage donné sur un système android en offline.&lt;br /&gt;
Pour supporter une langue, elle nécessite: &lt;br /&gt;
*un modèle acoustique (ensemble d'informations pour le traitement sonore)&lt;br /&gt;
*un dictionnaire associant les mots et leur phonèmes&lt;br /&gt;
*une grammaire, c'est un fichier définissant comment seraient articulé les mots à reconnaître et limitant les possibilités de langage).&lt;br /&gt;
&lt;br /&gt;
La grammaire étant un automate. Voici un exemple de la grammaire menu.gram pour la reconnaissance de la porte de déchargement.&lt;br /&gt;
[[Fichier:Arborescence_pocket_sphinx.png|200px|thumb|right|PocketSphinx dans un projet Android]]&lt;br /&gt;
&lt;br /&gt;
  #JSGF V1.0;&lt;br /&gt;
  grammar menu;&lt;br /&gt;
  &amp;lt;porte&amp;gt; = porte a |&lt;br /&gt;
            porte b |&lt;br /&gt;
            porte c |&lt;br /&gt;
            porte d |&lt;br /&gt;
            porte e |&lt;br /&gt;
            porte f |&lt;br /&gt;
            porte g |&lt;br /&gt;
            porte h |&lt;br /&gt;
            porte i |&lt;br /&gt;
            porte j ;&lt;br /&gt;
  public &amp;lt;porte&amp;gt; = &amp;lt;porte&amp;gt;+;&lt;br /&gt;
&lt;br /&gt;
Un extrait du dictionnaire french_letter.dic associé avec les phonemes&lt;br /&gt;
&lt;br /&gt;
  a aa &amp;lt;-- juste la lettre a et son phoneme &lt;br /&gt;
  autre au tt rr&lt;br /&gt;
  autre(2) au tt rr ee &lt;br /&gt;
  b bb &lt;br /&gt;
  c ss &lt;br /&gt;
  d dd ei d(2) dd ait &lt;br /&gt;
  e eu e(2) eu zz &lt;br /&gt;
  f ai ff &lt;br /&gt;
  g jj ei g(2) gg ai &lt;br /&gt;
  h aa ch  &lt;br /&gt;
  i ii &lt;br /&gt;
  j jj yy j(2) jj ii&lt;br /&gt;
  porte pp oo rr tt&lt;br /&gt;
  porte(2) pp oo rr tt ee&lt;br /&gt;
  portes(2) pp oo rr tt ee&lt;br /&gt;
  portes(3) pp oo rr tt ee zz&lt;br /&gt;
  portes(4) pp oo rr tt zz&lt;br /&gt;
&lt;br /&gt;
Le modèle acoustique que nous avons téléchargé étant inclu dans lium_french_f0&lt;br /&gt;
&lt;br /&gt;
Nous avons testé la reconnaissance vocale sur un téléphone android, les mots sont, dans la majorité des cas, bien reconnus.&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Comparaison architectures projet TV &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Au niveau de l’architecture nous avons établi plusieurs propositions après la réunion avec notre tuteur:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour une Raspberry Pi avec un dongle BLE :&lt;br /&gt;
* Installation OS Linux sur la Raspberry&lt;br /&gt;
* Librairie BlueZ pour l’utilisation du BLE (tests rapides effectués sur Linux avec le Dongle)&lt;br /&gt;
* Interface graphique avec une bibliothèque comme Qt (ou encore SDL…)&lt;br /&gt;
* Prix : Rpi = 26€ (chez RadioSpare), Dongle = 10€, TV = à partir de 358€ pour 117cm, + Connectique vidéo. Total = 394€&lt;br /&gt;
&lt;br /&gt;
Pour un écran ViewSonic VSD231 :&lt;br /&gt;
* Possède une API Bluetooth classic + API BLE&lt;br /&gt;
* Interface graphique Android (View, Layout...)&lt;br /&gt;
* Prix : écran ViewSonic VSD231 = 558 € pour 58 cm (chez ViewSonic).&lt;br /&gt;
&lt;br /&gt;
Récupération d’informations :&lt;br /&gt;
* Si données sur les lunettes : Bluetooth ou Wifi.&lt;br /&gt;
* Si données sur serveur : Ethernet ou Wifi.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Vu les propositions possibles nous pensons que la première proposition permettra une meilleure souplesse dans le développement mais serait un peu plus compliquée. Mais nous la trouvons aussi plus intéressante à faire de plus elle est moins coûteuse et permet d'utiliser un écran plus grand. Le développement sur tablette serait sûrement plus rapide à faire en contrepartie.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 01/12 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Conférence GlassCamp à l'Imaginarium &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
GlassCamp est une association qui essaye de répandre l'utilisation de toute les Smart Glass en général. Elle propose de multiples conférences dans lesquelles ils essayent de montrer au public l’intérêt de développer sur ces appareils. Dans le cadre de notre projet, notre tuteur nous a proposé de participer à cette présentation afin de mieux s’approprier le sujet. La conférence a eu lieu le 4 décembre à l'Imaginarium: une grande partie était plutôt tournée vers la présentation mais nous avons apprîs plusieurs choses intéressantes qui sont décrites dans le compte rendu.&lt;br /&gt;
&lt;br /&gt;
'''Compte Rendu Conférence 04/12/2014 :''' [[Fichier:Compte_Rendu_Conf_GlassCamp.pdf]]&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaines du 08/12 et 15/12 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Reconnaissance vocale en Français &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Nous avons avancé sur la version française de l'application. A la manière du menu vocal des google glass, nous avons utilisé un délimiteur&lt;br /&gt;
&amp;quot;ok lunettes&amp;quot; pour démarrer l'interaction avec l'application, afin que les discussions et bruits ambiants n'interfèrent pas sur l'utilisation de celle-ci.&lt;br /&gt;
Voici le scénario d'utilisation de la nouvelle version de l'application en Français.&lt;br /&gt;
[[Fichier:Schema_fr.png|700px|center]]&lt;br /&gt;
&lt;br /&gt;
Sous pocketsphinx, le délimiteur n'apparait pas dans une grammaire. La grammaire permet de prédestiner l'application à choisir entre deux mots. &lt;br /&gt;
Dans notre application, le moteur de reconnaissance vocale choisi la distance la plus courte, séparant le mot prononcé par l'utilisateur et ceux&lt;br /&gt;
qu'il est possible d'entendre. Ainsi entre &amp;quot;oui&amp;quot; et &amp;quot;non&amp;quot;, l'application choisira forcément l'un des deux, même si l'utilisateur dit &amp;quot;bonjour&amp;quot;&lt;br /&gt;
&lt;br /&gt;
L'avantage du délimiteur est que sa détection repose sur un seuillage entre ce qui est prononcé et ce qui doit être reconnu, nous pouvons régler ce seuil.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 05/01 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Entretien avec notre tuteur &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Durant cet entretien nous avons défini les évolutions du projet.&lt;br /&gt;
&lt;br /&gt;
'''Compte Rendu de l'entretien du 06/01/2015 :''' [[Fichier:Compte_Rendu_4.pdf]]&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 12/01 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; TV connectée &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Nous avons pris en main la détection des beacons (de la marque Estimote fournis par l'entreprise) dans les systèmes android.&lt;br /&gt;
L'adresse MAC et le RSSI sont accessibles, ce sont les seules informations nécessaires que nous avons besoin en ce qui concerne les beacons.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 19/01 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Interfaces_exemple.png|100px|thumb|right]]&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt;Interface TV &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Nous avons développé plusieurs exemples d'interfaces avec les instructions de notre tuteur afin de choisir les meilleurs résultats ensembles. Nous avons défini quelques contraintes pour le design. Elle doit être&lt;br /&gt;
* Simple et intuitive&lt;br /&gt;
* En accord avec les couleurs de l'entreprise&lt;br /&gt;
* Moderne (système de tuile ou autre)&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 26/01 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Entretien avec notre tuteur &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Durant cette entretien nous avons défini plus précisément les objectifs restant à faire sur le projet.&lt;br /&gt;
Ci dessous le compte rendu.&lt;br /&gt;
&lt;br /&gt;
'''Compte Rendu de l'entretien du 26/01/2015 :''' [[Fichier:Compte_Rendu_5.pdf]]&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 02/02 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Portage d'une application de SmartPicking sur les Google Glass &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Une application android main libre pour les ORA glasses a été développé pour permettre à l'entreprise, &lt;br /&gt;
d'accélerer les opérations de picking(prélévement à l'article) en entrepôt. Celle-ci était à destination des lunettes ORA de Optinvent.&lt;br /&gt;
Notre tuteur souhaitait donc que nous réalisions le portage de cette application vers les google glass. Le but étant de comparer l'usage de cette application sur deux supports différents entre les lunettes. &lt;br /&gt;
&lt;br /&gt;
*Nous avons procédé à des ajustements au niveau de la gestion des layouts de l'interface, à équilibrer la places qu'occupe certaines informations données par l'application.&lt;br /&gt;
*Cette application communique par bluetooth avec une autre application lancée sur une tablette android, cette dernière permet de réaliser l'appairage avec la smartglass. La tablette étant la seule à être connectée au serveur de l'entreprise (l'AS400) via un réseau sécurisé. Nous avons du appairer manuellement les glass avec la tablette, et retirer dans le code le lancement d'un intent permettant aux lunettes de se rendre visible sur le réseau. Lorsque cet intent est lancé il génère une exception non attendue qui ne concerne que les google glass. Aprés recherches sur le net, il semble que c'est un problème récurrent qui a été signalé mais pas encore résolu.&lt;br /&gt;
&lt;br /&gt;
Ci dessous des screenshot de l'application en question adaptée par nos soins :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Schema_picking.png|800px|center]]&lt;br /&gt;
&lt;br /&gt;
L'écran de gauche, correspond à la phase de prélévement d'un article ici &amp;quot;VE RAINCUT TRUE BLACK SS14&amp;quot; une veste à l'adresse C4FU-10-1-3, il faut en prélever 12, et le tableau à gauche correspond à la façade de l'étagère concernée, il indique grossièrement (case verte) le carton à déballer, en partant du principe que l'utilisateur respecte le sens de circulation de l'entrepôt.&lt;br /&gt;
L'écran de droite, correspond à la phase de dépôt des articles dans le chariot de l'utilisateur, il lui indique dans quel compartiment le placer.&lt;br /&gt;
&lt;br /&gt;
Nous avons participé à une demi-journée de test en production avec le responsable du picking, le responsable innovation, notre tuteur et d'autres parties prenantes du projet. La version sur les google glass a bien rempli son rôle à la manière de la version originale sur les ORA one, les préférences des parties prenantes se sont portés essentiellement sur les avantages qu'offrent les supports.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 09/02 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Connectivité android et TV connectée &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Pour tester la connectivité de l'application sur la tablette géante, dans le cadre de la fonctionnalité de TV connectée, nous voulions une base de donnée accessible depuis n'importe où. L'école met à disposition un site avec nom de domaine, nous avons donc profité de cet outil pour créer une BDD SQL. &lt;br /&gt;
Nous interrogeons cette BDD via un HttpRequest lancé dans l'application android sur une page php qui contient la requête SQL. En POST nous envoyons l'adresse mac du beacons le plus proche, qui permet de ne sélectionner que les informations nécessaires. L'idée est de pousser l'utilisation du matériel, et de prendre en main cet aspect de l'application, même si le système final pourrait reposer plutôt sur un webservice réalisé par l'équipe de développement de l'entreprise.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 16/02 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Interface &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Il a été décidé que nous afficherons plutôt des statistiques propres à une équipe plutôt qu'individuelles.&lt;br /&gt;
Aprés plusieurs remaniements, voici les interfaces correspondantes à l'équipe.&lt;br /&gt;
&lt;br /&gt;
Reception.png&lt;/div&gt;</summary>
		<author><name>Jgondry</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=Fichier:Reception.png&amp;diff=17436</id>
		<title>Fichier:Reception.png</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=Fichier:Reception.png&amp;diff=17436"/>
				<updated>2015-02-22T22:56:28Z</updated>
		
		<summary type="html">&lt;p&gt;Jgondry : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Jgondry</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=P22_Google_Glass_en_logistique&amp;diff=17435</id>
		<title>P22 Google Glass en logistique</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=P22_Google_Glass_en_logistique&amp;diff=17435"/>
				<updated>2015-02-22T22:55:29Z</updated>
		
		<summary type="html">&lt;p&gt;Jgondry : /*  Interface  */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Introduction =&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Description du sujet &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
Notre projet vise à l’optimisation du stockage et de l’adressage des palettes dans un entrepôt. En effet, lors du déchargement d’un camion, chercher un emplacement libre pour les palettes dans un entrepôt occupant une grande superficie fait perdre du temps et donc de la productivité dans le stockage. Sachant qu’un cariste perd un temps non négligeable à la recherche d’emplacement disponible, optimiser ce temps de recherche permettrait de gagner du temps sur cette opération.&lt;br /&gt;
Développer un prototype permettrait de rendre compte des moyens existants qui pourrait être mis en place dans une solution métier.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Analyse du sujet &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Google_glass.png|200px|thumb|right|Paire de Google Glass]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Optinvent_ora.png|200px|thumb|right|Paire de ORA d'Optivent]]&lt;br /&gt;
&lt;br /&gt;
Notre projet consiste à fluidifier le déchargement en indiquant au cariste l’emplacement libre le plus proche. Pour ne pas gêner le travail des employés, un dispositif main-libre comme une Google Glass semble adapté. Ce projet soulève plusieurs problématiques : développer une interface homme-machine apportant une information pertinente pour l’utilisateur sans pour autant être perturbante. &lt;br /&gt;
&lt;br /&gt;
L’idée serait de réaliser dans les grandes lignes un système similaire à ce scénario d’utilisation :&lt;br /&gt;
http://n.mynews.ly/!lB.Bs4fw&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Moyen d’affichage de l’Informations pertinentes'''&lt;br /&gt;
&lt;br /&gt;
Les Google Glass ne sont pas les seules smart glasses sur le marché. Il nous faudra choisir les appareils les plus adaptés. L’information pertinente pourrait être une direction à suivre dans l’entrepôt ou simplement un numéro d’emplacement (adressage intuitif de l’entrepôt). &lt;br /&gt;
&lt;br /&gt;
'''Géolocalisation'''&lt;br /&gt;
&lt;br /&gt;
Dans le cas d’une direction à suivre se pose le problème de la géolocalisation indoor dont l’utilité et la faisabilité seront discutés au fil des réunions avec l’entreprise. &lt;br /&gt;
&lt;br /&gt;
'''Adressage / flashage'''&lt;br /&gt;
&lt;br /&gt;
En ce qui concerne l’adressage des palettes en entrepôt, la solution existante repose sur un flashage des codes barres associés à l’emplacement venant d’être occupé. Une étude de faisabilité/utilité sera aussi faite sur une solution de remplacement grâce aux possibilités qu’offrent les smart glasses.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Cahier des charges &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
En partant de l'analyse du sujet et des discussion avec notre tuteur, nous avons définie un cahier des charges plus précis des tâches à accomplir:&lt;br /&gt;
&lt;br /&gt;
* '''Développer un système embarqué sur une paire de lunette Smart Glass'''&lt;br /&gt;
** Comparer les différentes offres en matière de Smart Glass notamment Google Glass &amp;amp; ORA de Optinvent&lt;br /&gt;
** Concevoir une interface homme-machine non perturbante pour l'utilisateur.&lt;br /&gt;
* '''Etudier la nécessité d'utiliser une géolocalisation en entrepôt et l'implémenter si besoin'''&lt;br /&gt;
** Via RSSI (Wifi, Bluetooh Low Energy ...)&lt;br /&gt;
** Via traitement d'images (reconnaissance de la signalétique en entrepôt)&lt;br /&gt;
* '''Etudier les possibilités d'optimisation du système d'adressage des palettes'''&lt;br /&gt;
** Implémenter la reconnaissance de code barre&lt;br /&gt;
** La tester en réalité métier (utilité ajoutée, habitude des magasiniers, vitesse de traitement...)&lt;br /&gt;
&lt;br /&gt;
Le cahier des charges est encore en cours de construction&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Matériel utilisé &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; SmartGlass &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Lors de la réunion nous avons discuté des technologies à utiliser dans le projet, et plus particulièrement des différentes SmartGlass. En effet, il existe une multitude de sociétés qui développe ce genre de lunettes. Nous commencerons à utiliser les Google Glass étant donné que notre tuteur en a déjà commandé puis nous développerons sur les lunettes ORA de Optivent qui seront livrées fin octobre. Nous devrons donc faire un comparatif entre ces deux SmartGlass puis étudier les autres appareils disponibles sur le marché.&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Localisation &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
L'utilisation de la géolocalisation dans le projet est à débattre. Mais des tests seront probablement mis en place. L'entreprise possède quelque iBeacons BLE Estimote dans ses bureaux d'innovations que nous pourrons emprunter.&lt;br /&gt;
Dans le cas où leur gain d'informations serait utile il nous faudra comparer les modèles disponibles. Choisir un nombre de module et des emplacements stratégiques dans l'entrepôt afin d'avoir une localisation assez précise pour l'application.&lt;br /&gt;
&lt;br /&gt;
L'utilisation d'autres technologies de géolocalisation a été discuté comme le Wifi ou le XBee mais le BLE semblait le plus adapté dans le cadre de notre projet.&lt;br /&gt;
&lt;br /&gt;
= Déroulement du projet =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 22/09 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Réunion avec le tuteur entreprise dans l’entrepôt &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Nous avons observé en situation le problème et discuté des besoins, des moyens déjà utilisables. Il nous faudra prendre en compte plusieurs paramètres dans notre réflexion tels que le système de stockage et d'adressages des palettes, sens de circulation des caristes, superficie des zones à desservir, durée de livraison.&lt;br /&gt;
Nous avons suggéré des étapes de validation intermédiaire du système par les futurs utilisateurs et pour cela nous rencontrerons le chef d'équipe des magasiniers lorsque qu'une version sera assez développée.&lt;br /&gt;
&lt;br /&gt;
Nous avons défini avec le tuteur les premières deadlines du projet, voici la timeline récapitulative:&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Timeline_1.jpg||center|1000px]]&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Compte Rendu &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Nous avons rédigé un compte rendu de la première réunion détaillant les spécifications des versions des livrables, des schémas et les sujets abordés lors de la rencontre :&lt;br /&gt;
&lt;br /&gt;
'''Compte Rendu réunion du 25/09/2014 :''' [[Fichier:Compte_Rendu_25_09.pdf]]&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 29/09 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Découverte des Google Glass &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
*Prise en main des Google Glass. &lt;br /&gt;
*Installation d'applications (.apk) grand public. Nous avons utilisé l'outil Android Debug Bridge(adb). Se mettre à la place d'un utilisateur.&lt;br /&gt;
*L'une des deux lunettes qui serait retenue imposera forcément le développement d'une application android (ou d'une technologie trés proche d'android, pour les Google Glass, se basant sur le Glass Development Kit qui est un add-on au SDK classique d'android). Nous avons donc téléchargé les packages nécessaires pour commencer à développer. &lt;br /&gt;
** Nous commençons à nous former sur les technologies android :développement d'applications minimaliste.&lt;br /&gt;
** Installation de nos premières apk minimalistes pour Android.&lt;br /&gt;
** Installation d'une application minimaliste sur la Google Glass.&lt;br /&gt;
&lt;br /&gt;
Voici un comparatif réalisé entre les lunettes ORA et les Google Glass.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Différences Google Glass/ORA &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!   !! Google Glass !! ORA &lt;br /&gt;
|-&lt;br /&gt;
|Connectique&lt;br /&gt;
|Compatible BLE (à partir de la XE 16 KitKat Update), Wifi &lt;br /&gt;
|Compatible BLE, Wifi&lt;br /&gt;
|-&lt;br /&gt;
|Autonomie en utilisation normale&lt;br /&gt;
|de 1h à 2h &lt;br /&gt;
|de 4h à 8h&lt;br /&gt;
|-&lt;br /&gt;
|Son&lt;br /&gt;
|Conductivité Cranienne&lt;br /&gt;
|Prise jack&lt;br /&gt;
|-&lt;br /&gt;
|Interface&lt;br /&gt;
|Ecran occupant une faible superficie dans le champ de vision &lt;br /&gt;
|Ecran 2 positions (moyennes et basses), plus étendu permettant une réalité augmentée &lt;br /&gt;
|-&lt;br /&gt;
|Système d'exploitation&lt;br /&gt;
|Android 4.4&lt;br /&gt;
|Android 4.2.2&lt;br /&gt;
|-&lt;br /&gt;
|Calculs&lt;br /&gt;
|CPU &amp;amp; GPU&lt;br /&gt;
|CPU &amp;amp; GPU&lt;br /&gt;
|-&lt;br /&gt;
|Prix&lt;br /&gt;
|1500$ &lt;br /&gt;
|949$&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 06/10 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Deuxième rendez-vous avec le tuteur entreprise &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Nous avons fait part de notre avancée en matière de prise en main et des problèmes rencontrés en matière de développement.&lt;br /&gt;
Les lunettes ORA sont commandées elles arrivent d'ici la fin octobre.&lt;br /&gt;
&lt;br /&gt;
La première version V1 de l'application pour Google Glass à livrer pour la mi-novembre est fixée.&lt;br /&gt;
&lt;br /&gt;
En partant d'une position connue (en dur dans l'application) dans l'entrepôt, elle indiquera à un utilisateur les emplacements libres les plus proches.&lt;br /&gt;
&lt;br /&gt;
L'état d'occupation des emplacements sera consulté et stocké dans l'application. Il n'y aura donc pas de gestion des conflits. Le sens de circulation dans l'entrepôt sera pris en compte.&lt;br /&gt;
Une communication avec la base de donnée de l'entrepôt n'est pour le moment pas d'actualité, cela nécessiterait des développements en amont.&lt;br /&gt;
La géolocalisation n'est pas au goût du jour non plus. L'adressage des emplacements dans l'entrepôt est intuitif, il est donc facile pour un magasinier de &lt;br /&gt;
se rendre à un emplacement en connaissant l'adresse.&lt;br /&gt;
&lt;br /&gt;
Pour l'IHM, nous nous inspirerons des applications pour Google Glass (les Glasswares) de type GPS.&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Premiers programmes sur Google Glass &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Pour nous familiariser avec la programmation sur ce genre d'appareil nous avons tous deux décidé de suivre en premier le tutoriel Android d'un site spécialisé. Cela afin de mieux comprendre le système Android, avec les concepts d'activités, de view etc.&lt;br /&gt;
Dans un deuxième temps nous avons choisi de suivre plusieurs tutoriels nous expliquant la prise en main basique des lunettes afin de saisir les particularités de leur programmation.&lt;br /&gt;
&lt;br /&gt;
Le plus dur étant finalement de comprendre les liens entre tous les fichiers du projets, les problèmes de drivers et d'upload simple que nous avons rencontrés et l’exécution du programme sur les lunettes. Des choses que nous arrivons maintenant à maitriser mais qui était floues à l'origine.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 13/10 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Programmation et gestion des interactions &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Durant cette semaine nous avons commencé a vraiment toucher aux fonctionnalités des Glass. Pour rester en main libre, nous avons fait des recherches et commencé à programmer de la reconnaissance vocale. Nous avons ainsi crée un système de navigation basique par commande vocale dans différents menus. Pour un accès rapide à l'application et toujours dans la même optique nous avons réussi à inclure le lancement de notre logiciel à partir du &amp;quot;Ok Glass&amp;quot; menu qui est le menu de lancement d'application par commande vocale des Google Glass. Voici un aperçu du résultat:&lt;br /&gt;
[[Fichier:V0_menu.png|1000px|center]]&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Analyse et évaluation du rendu &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Le début de la prise en main des fonctionnalités des Google Glass n'a pas été facile étant donné que la plupart des fonctionnalités sont propres à ce genre d'appareil. De plus elles nécessitent des techniques spéciales de programmation qui ne sont pas toujours très utilisées donc il est parfois difficile de trouver des exemples sur internet.&lt;br /&gt;
Néanmoins après l'implémentation de ces fonctionnalités nous avons pu rencontrer quelques difficultés de reconnaissance. En effet, les Google Glass possèdent un dictionnaire de mots/phrases pour la reconnaissance vocale mais elles nous permettent aussi d'écrire n'importe quelle phrase dans le mode développeur. Les phrases du dictionnaires ne posent aucun problème mais les phrases que nous écrivons sont parfois dures à reconnaitre. La reconnaissance de lettre seule ou de certains numéros est par exemple quasi impossible ou très aléatoire.&lt;br /&gt;
Le système de vu est quant à lui plutôt facile à prendre en main et intuitif dans l'utilisation.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 20/10 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Premiere structure de donnée &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Nous avons opté pour une structure de donnée récursive. Une Cellule, contenant des Allées, qui contiennent des Baies, contenant des Rangées, contenant des Emplacements.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Structure_export_resized.png|750px|center]]&lt;br /&gt;
Nous avons conçu cette structure de donnée pour qu'elle génère, dans un premier temps &amp;quot;en dur&amp;quot;, une cellule contenant des emplacements automatiquement adressés à la manière de ceux présent dans l'entrepôt. Ces adresses sont de la forme &amp;quot;D61A514&amp;quot; traduisez &amp;quot; Cellule 6 Allée 1A Baie 5 Rang 1 Niveau 4&amp;quot;.&lt;br /&gt;
Cette structure prend on compte le sens de circulation dans l'entrepôt.&lt;br /&gt;
Lors de futures interactions avec une base de donnée, cette structure serait sujette à évolution par une modification des méthodes de génération/modification du statut des adresses en fonction de cette base de donnée. Mais celle-ci constitue essentiellement une base pour appréhender plus pratiquement les problématiques de recherches de l'emplacement le plus proche.&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Prise en main de l'interface &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Nous avons déjà abordé les layouts java en TP donc il a été assez facile de commencer à faire des interfaces graphiques simples. Nous avons construit une interface graphique simple pour de faire une démonstration du programme aux tuteurs entreprise afin qu'ils comprennent bien le fonctionnement de notre algorithme.&lt;br /&gt;
L'interface graphique finale du programme sera très sobre afin de ne pas donner trop gêner le magasinier dans sa tâche.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 27/10 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Chemin optimal : Parcours intelligent Vs Sélection intelligente &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Un premier algorithme de recherche de l'emplacement le plus proche a été développé, celui-ci ne prend en compte qu'un seul scénario. &lt;br /&gt;
Celui de la position de départ (quai de déchargement où reviendra constamment le magasinier aprés chaque livraison) correspondante à la première allée de l'entrepôt, et en prenant en compte le sens de circulation. &lt;br /&gt;
A partir de ce moment, nous avons dégager deux grandes manières d'appréhender le problème.&lt;br /&gt;
&lt;br /&gt;
* Un parcours intelligent de la structure de donnée. C'est à dire parcourir les emplacements les plus proches, et choisir le premier emplacement libre. Une solution complexe à réaliser sur le plan algorithmique. En tenant compte du sens de circulation, il apparait que l'emplacement libre &amp;quot;leplusproche&amp;quot; (à vol d'oiseau) trouvé le plus tôt, ne correspondrait pas forcément à l'emplacement le plus proche compte tenu du chemin emprunté par un magasinier. Et c'est plutôt l'intérêt de cette algorithme.(Sauf dans l'unique cas où l'emplacement libre se trouve directement dans l'allée faisant face à la position de départ du magasinier, et le sens de circulation lui permet directement de se rendre à l'emplacement sans détour).&lt;br /&gt;
&lt;br /&gt;
* Une sélection intelligente parmi les emplacements libres. Leurs adresses renseignent à quelles allées, les emplacements libres appartiennent, donc renseignent sur le sens de circulation. A partir de la position de départ du magasinier et de l'ensemble des emplacements libres, on peut calculer la distance nécessaire à celui-ci pour les atteindre. Pour ainsi choisir l'adresse pour laquelle la distance est minimale.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 3/11 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Chemin optimal : sélection intelligente des adresses &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Nous avons écrit une premiere méthode de détermination. &lt;br /&gt;
On choisit l'emplacement, parmi tous ceux qui sont libres, pour lequel la distance de parcours est minimale entre le départ et celui-ci. &lt;br /&gt;
Ici l'unité de distance est la baie. La simplicité de l'algorithme réside dans le fait que le magasinier ne transporte qu'une seule caisse à la fois et repars toujours au même point de départ.&lt;br /&gt;
&lt;br /&gt;
Ci dessous un plan de l'entrepôt.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:schema_entrepot.png|750px|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Si on se place à l'entrée de l'Allée A :&lt;br /&gt;
&lt;br /&gt;
**le déplacement jusqu'à A4 (sens de circulation direct) est de : &lt;br /&gt;
&lt;br /&gt;
                        Y baies - (indice de la baie/2 +indice de la baie % 2) &lt;br /&gt;
&lt;br /&gt;
**le déplacement jusqu'à B1 (sens de circulation indirect) est de : &lt;br /&gt;
&lt;br /&gt;
                        Y baies + différence entre l'allée A et B donc X baies + indice de la baie/2 +indice de la baie % 2&lt;br /&gt;
**le déplacement jusqu'à C1 (sens de circulation direct) est de : &lt;br /&gt;
                      &lt;br /&gt;
                        Y baies - (indice de la baie/2 +indice de la baie % 2)+différence entre l'allée A et C donc 2*X baies.&lt;br /&gt;
&lt;br /&gt;
*Si on se place à l'entrée de l'Allée B :&lt;br /&gt;
**le déplacement jusqu'à B1 (sens de circulation indirect avec contournement) est de : &lt;br /&gt;
                        &lt;br /&gt;
                        2*X baies + Y baies + 2*X baies + (indice de la baie/2 +indice de la baie % 2)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On peut généraliser l'ensemble de ces situations de déplacement avec l'algorithme suivant :&lt;br /&gt;
&lt;br /&gt;
Pseudo code&lt;br /&gt;
&lt;br /&gt;
  Leplusproche( Allee depart )&lt;br /&gt;
    distance_la_plus_petite = valeurMAX&lt;br /&gt;
      le_plus_proche=&amp;quot;&amp;quot;&lt;br /&gt;
         Pour chaque Allee de Cellule&lt;br /&gt;
           sens=Allee.sens&lt;br /&gt;
           Pour chaque Baie de Allee&lt;br /&gt;
             Pour chaque Rang de Allee&lt;br /&gt;
 	       Pour chaque Emplacement de Rang&lt;br /&gt;
                Si Emplacement estlibre &lt;br /&gt;
                &lt;br /&gt;
                indice_baie = selection_indice_baie(Emplacement.adresse)&lt;br /&gt;
   		 allee_cible = selection_indice_allee(Emplacement.adresse)  &lt;br /&gt;
   		 difference_allee = valeur_absolue(depart -cible) &lt;br /&gt;
                    Si difference_allee==0 et sens.estindirect&lt;br /&gt;
                      //sens indirect +contournement&lt;br /&gt;
                      distance_actuelle=(indice_baie/2)+indice_baie%2+(2*(difference_allee))+4*X+Y			&lt;br /&gt;
                    Sinon	&lt;br /&gt;
                        Si sens estdirect&lt;br /&gt;
                          //sens direct &lt;br /&gt;
                          distance_actuelle=(Y-((indice_baie/2)+indice_baie%2))+2*difference_allee&lt;br /&gt;
                        Sinon&lt;br /&gt;
                          //sens indirect mais pas de contournement&lt;br /&gt;
                          distance_actuelle=((indice_baie/2)+indice_baie%2)+2*difference_allee+Y&lt;br /&gt;
                        Finsi	&lt;br /&gt;
                    Finsi	&lt;br /&gt;
                    Si distance_actuelle &amp;lt; distance_la_plus_petite&lt;br /&gt;
                      le_plus_proche=Emplacement.adresse&lt;br /&gt;
                      distance_la_plus_petite=distance_actuelle&lt;br /&gt;
                    Finsi&lt;br /&gt;
                Finsi  &lt;br /&gt;
            Finpour&lt;br /&gt;
          Finpour&lt;br /&gt;
        Finpour&lt;br /&gt;
      Finpour&lt;br /&gt;
    retourne le_plus_proche&lt;br /&gt;
  Finleplusproche&lt;br /&gt;
&lt;br /&gt;
Cet algorithme nous donne satisfaction (dans le cadre de la V1)&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 10/11 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Programmation et gestion des interactions &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Aprés quelques difficultés vis à vis de la gestion des menus vocaux sur les lunettes qui ne fonctionnent pas de la même manière que les menus classiques sous android, nous avons étoffé les interactions possible avec l'application des google glass. (Nous souhaitions inflater un deuxième menu pour interagir de manière plus contextuelle, il fallait le faire dans la méthode onCreatePanelMenu dont l'appel serait forcé avec getWindow().invalidatePanelMenu(WindowUtils.FEATURE_VOICE_COMMANDS) plutôt que dans onPrepareOptionsMenu forcée par invalidateOptionMenu()...) &lt;br /&gt;
&lt;br /&gt;
schéma d'utilisation...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Proposition projet affichage télévision &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Tele_concept.png|200px|thumb|right]]&lt;br /&gt;
&lt;br /&gt;
Notre tuteur nous a contacté pour nous proposer d'étudier un second projet en parallèle au projet initial. Celui consistant à gérer l'affichage d'information personnalisé d'un magasinier passant à proximité d'un écran de télévision. Nous devons effectuer un Proof Of Concept (POC) et réfléchir à ce sujet.&lt;br /&gt;
L'utilisation du BLE est donc de nouveau d'actualité, car je rappel que sont utilité était discutable dans une réalité métier du projet initial. La question étant plus de savoir comment gérer le système du coté du téléviseur.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Le concept de base étant de :&lt;br /&gt;
* Fournir une beacon aux magasiniers de l'entrepôt.&lt;br /&gt;
* Installer une télévision sur un centre de vie dans l'entrepôt avec une beacon&lt;br /&gt;
* Pousser du contenu personnalisé au magasinier qui se présente devant la tv dans son centre de vie&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 17/11 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Brainstorming à Polytech &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Dans la cadre du POC sur l'affichage personnalisé sur une télévision, nous avons profité d'un exercice de management pour faire participer la classe à notre projet. Grâce à cette intervention nous avons pu confirmer nos idées sur les technologies à utiliser. Mais nous avons surtout eu une multitude de propositions sur les données à afficher sur l'écran.&lt;br /&gt;
&lt;br /&gt;
Pour plus détails, le compte rendu est disponible à ce lien:&lt;br /&gt;
&lt;br /&gt;
'''Compte Rendu Brainstorming 17/11/2014 :''' [[Fichier:Compte_Rendu_POC_17_11.pdf]]&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Entretien avec notre tuteur entreprise &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Durant cet entretien, nous avons livré la première version de l'application et nous avons discuté de la suite du projet.&lt;br /&gt;
Ci joint le Compte Rendu.&lt;br /&gt;
&lt;br /&gt;
'''Compte Rendu  19/11/2014 :''' [[Fichier:Compte_Rendu_19_11.pdf]]&lt;br /&gt;
&lt;br /&gt;
De cette réunion, les points suivants en sont sortis:&lt;br /&gt;
&lt;br /&gt;
*Une reconnaissance vocale en langue française sur les lunettes serait plus intéressante pour les employés (une piste serait d’utiliser l’outil pocketsphinx-  android).&lt;br /&gt;
*Par rapport à l'IHM, il faudrait mettre l’affichage au premier plan sur les Google Glass pour une démo auprés des parties prenantes du projet.&lt;br /&gt;
*Choisir une architecture pour l’affichage d’information personnalisées.&lt;br /&gt;
**La télévision connectée à une raspberry qui communiquerait via un dongle BLE avec le beacon d’un magasinier, ce qui permettrait l’identification de celui-ci prés de la Télévision, et déclencherait un processus d’échange d’information. (Communication via le protocole Bluetooh, wifi entre les lunettes et la Raspberry  ou communication avec la Raspberry avec la Base de Donnée sur le réseau de l’entreprise)&lt;br /&gt;
**Une télévision connectée en continu à un site internet via un dongle HDMI.&lt;br /&gt;
**Une tablette android géante supportant le BLE, ou utilisant un dongle BLE.&lt;br /&gt;
* Réaliser le portage de l’application sur le prototype des lunettes ORA.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 24/11 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Reconnaissance vocale en Français &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Pocket Sphinx Android est une librairie permettant de faire de la reconnaissance vocale d'un langage donné sur un système android en offline.&lt;br /&gt;
Pour supporter une langue, elle nécessite: &lt;br /&gt;
*un modèle acoustique (ensemble d'informations pour le traitement sonore)&lt;br /&gt;
*un dictionnaire associant les mots et leur phonèmes&lt;br /&gt;
*une grammaire, c'est un fichier définissant comment seraient articulé les mots à reconnaître et limitant les possibilités de langage).&lt;br /&gt;
&lt;br /&gt;
La grammaire étant un automate. Voici un exemple de la grammaire menu.gram pour la reconnaissance de la porte de déchargement.&lt;br /&gt;
[[Fichier:Arborescence_pocket_sphinx.png|200px|thumb|right|PocketSphinx dans un projet Android]]&lt;br /&gt;
&lt;br /&gt;
  #JSGF V1.0;&lt;br /&gt;
  grammar menu;&lt;br /&gt;
  &amp;lt;porte&amp;gt; = porte a |&lt;br /&gt;
            porte b |&lt;br /&gt;
            porte c |&lt;br /&gt;
            porte d |&lt;br /&gt;
            porte e |&lt;br /&gt;
            porte f |&lt;br /&gt;
            porte g |&lt;br /&gt;
            porte h |&lt;br /&gt;
            porte i |&lt;br /&gt;
            porte j ;&lt;br /&gt;
  public &amp;lt;porte&amp;gt; = &amp;lt;porte&amp;gt;+;&lt;br /&gt;
&lt;br /&gt;
Un extrait du dictionnaire french_letter.dic associé avec les phonemes&lt;br /&gt;
&lt;br /&gt;
  a aa &amp;lt;-- juste la lettre a et son phoneme &lt;br /&gt;
  autre au tt rr&lt;br /&gt;
  autre(2) au tt rr ee &lt;br /&gt;
  b bb &lt;br /&gt;
  c ss &lt;br /&gt;
  d dd ei d(2) dd ait &lt;br /&gt;
  e eu e(2) eu zz &lt;br /&gt;
  f ai ff &lt;br /&gt;
  g jj ei g(2) gg ai &lt;br /&gt;
  h aa ch  &lt;br /&gt;
  i ii &lt;br /&gt;
  j jj yy j(2) jj ii&lt;br /&gt;
  porte pp oo rr tt&lt;br /&gt;
  porte(2) pp oo rr tt ee&lt;br /&gt;
  portes(2) pp oo rr tt ee&lt;br /&gt;
  portes(3) pp oo rr tt ee zz&lt;br /&gt;
  portes(4) pp oo rr tt zz&lt;br /&gt;
&lt;br /&gt;
Le modèle acoustique que nous avons téléchargé étant inclu dans lium_french_f0&lt;br /&gt;
&lt;br /&gt;
Nous avons testé la reconnaissance vocale sur un téléphone android, les mots sont, dans la majorité des cas, bien reconnus.&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Comparaison architectures projet TV &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Au niveau de l’architecture nous avons établi plusieurs propositions après la réunion avec notre tuteur:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour une Raspberry Pi avec un dongle BLE :&lt;br /&gt;
* Installation OS Linux sur la Raspberry&lt;br /&gt;
* Librairie BlueZ pour l’utilisation du BLE (tests rapides effectués sur Linux avec le Dongle)&lt;br /&gt;
* Interface graphique avec une bibliothèque comme Qt (ou encore SDL…)&lt;br /&gt;
* Prix : Rpi = 26€ (chez RadioSpare), Dongle = 10€, TV = à partir de 358€ pour 117cm, + Connectique vidéo. Total = 394€&lt;br /&gt;
&lt;br /&gt;
Pour un écran ViewSonic VSD231 :&lt;br /&gt;
* Possède une API Bluetooth classic + API BLE&lt;br /&gt;
* Interface graphique Android (View, Layout...)&lt;br /&gt;
* Prix : écran ViewSonic VSD231 = 558 € pour 58 cm (chez ViewSonic).&lt;br /&gt;
&lt;br /&gt;
Récupération d’informations :&lt;br /&gt;
* Si données sur les lunettes : Bluetooth ou Wifi.&lt;br /&gt;
* Si données sur serveur : Ethernet ou Wifi.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Vu les propositions possibles nous pensons que la première proposition permettra une meilleure souplesse dans le développement mais serait un peu plus compliquée. Mais nous la trouvons aussi plus intéressante à faire de plus elle est moins coûteuse et permet d'utiliser un écran plus grand. Le développement sur tablette serait sûrement plus rapide à faire en contrepartie.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 01/12 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Conférence GlassCamp à l'Imaginarium &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
GlassCamp est une association qui essaye de répandre l'utilisation de toute les Smart Glass en général. Elle propose de multiples conférences dans lesquelles ils essayent de montrer au public l’intérêt de développer sur ces appareils. Dans le cadre de notre projet, notre tuteur nous a proposé de participer à cette présentation afin de mieux s’approprier le sujet. La conférence a eu lieu le 4 décembre à l'Imaginarium: une grande partie était plutôt tournée vers la présentation mais nous avons apprîs plusieurs choses intéressantes qui sont décrites dans le compte rendu.&lt;br /&gt;
&lt;br /&gt;
'''Compte Rendu Conférence 04/12/2014 :''' [[Fichier:Compte_Rendu_Conf_GlassCamp.pdf]]&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaines du 08/12 et 15/12 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Reconnaissance vocale en Français &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Nous avons avancé sur la version française de l'application. A la manière du menu vocal des google glass, nous avons utilisé un délimiteur&lt;br /&gt;
&amp;quot;ok lunettes&amp;quot; pour démarrer l'interaction avec l'application, afin que les discussions et bruits ambiants n'interfèrent pas sur l'utilisation de celle-ci.&lt;br /&gt;
Voici le scénario d'utilisation de la nouvelle version de l'application en Français.&lt;br /&gt;
[[Fichier:Schema_fr.png|700px|center]]&lt;br /&gt;
&lt;br /&gt;
Sous pocketsphinx, le délimiteur n'apparait pas dans une grammaire. La grammaire permet de prédestiner l'application à choisir entre deux mots. &lt;br /&gt;
Dans notre application, le moteur de reconnaissance vocale choisi la distance la plus courte, séparant le mot prononcé par l'utilisateur et ceux&lt;br /&gt;
qu'il est possible d'entendre. Ainsi entre &amp;quot;oui&amp;quot; et &amp;quot;non&amp;quot;, l'application choisira forcément l'un des deux, même si l'utilisateur dit &amp;quot;bonjour&amp;quot;&lt;br /&gt;
&lt;br /&gt;
L'avantage du délimiteur est que sa détection repose sur un seuillage entre ce qui est prononcé et ce qui doit être reconnu, nous pouvons régler ce seuil.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 05/01 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Entretien avec notre tuteur &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Durant cet entretien nous avons défini les évolutions du projet.&lt;br /&gt;
&lt;br /&gt;
'''Compte Rendu de l'entretien du 06/01/2015 :''' [[Fichier:Compte_Rendu_4.pdf]]&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 12/01 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; TV connectée &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Nous avons pris en main la détection des beacons (de la marque Estimote fournis par l'entreprise) dans les systèmes android.&lt;br /&gt;
L'adresse MAC et le RSSI sont accessibles, ce sont les seules informations nécessaires que nous avons besoin en ce qui concerne les beacons.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 19/01 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Interfaces_exemple.png|100px|thumb|right]]&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt;Interface TV &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Nous avons développé plusieurs exemples d'interfaces avec les instructions de notre tuteur afin de choisir les meilleurs résultats ensembles. Nous avons défini quelques contraintes pour le design. Elle doit être&lt;br /&gt;
* Simple et intuitive&lt;br /&gt;
* En accord avec les couleurs de l'entreprise&lt;br /&gt;
* Moderne (système de tuile ou autre)&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 26/01 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Entretien avec notre tuteur &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Durant cette entretien nous avons défini plus précisément les objectifs restant à faire sur le projet.&lt;br /&gt;
Ci dessous le compte rendu.&lt;br /&gt;
&lt;br /&gt;
'''Compte Rendu de l'entretien du 26/01/2015 :''' [[Fichier:Compte_Rendu_5.pdf]]&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 02/02 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Portage d'une application de SmartPicking sur les Google Glass &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Une application android main libre pour les ORA glasses a été développé pour permettre à l'entreprise, &lt;br /&gt;
d'accélerer les opérations de picking(prélévement à l'article) en entrepôt. Celle-ci était à destination des lunettes ORA de Optinvent.&lt;br /&gt;
Notre tuteur souhaitait donc que nous réalisions le portage de cette application vers les google glass. Le but étant de comparer l'usage de cette application sur deux supports différents entre les lunettes. &lt;br /&gt;
&lt;br /&gt;
*Nous avons procédé à des ajustements au niveau de la gestion des layouts de l'interface, à équilibrer la places qu'occupe certaines informations données par l'application.&lt;br /&gt;
*Cette application communique par bluetooth avec une autre application lancée sur une tablette android, cette dernière permet de réaliser l'appairage avec la smartglass. La tablette étant la seule à être connectée au serveur de l'entreprise (l'AS400) via un réseau sécurisé. Nous avons du appairer manuellement les glass avec la tablette, et retirer dans le code le lancement d'un intent permettant aux lunettes de se rendre visible sur le réseau. Lorsque cet intent est lancé il génère une exception non attendue qui ne concerne que les google glass. Aprés recherches sur le net, il semble que c'est un problème récurrent qui a été signalé mais pas encore résolu.&lt;br /&gt;
&lt;br /&gt;
Ci dessous des screenshot de l'application en question adaptée par nos soins :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Schema_picking.png|800px|center]]&lt;br /&gt;
&lt;br /&gt;
L'écran de gauche, correspond à la phase de prélévement d'un article ici &amp;quot;VE RAINCUT TRUE BLACK SS14&amp;quot; une veste à l'adresse C4FU-10-1-3, il faut en prélever 12, et le tableau à gauche correspond à la façade de l'étagère concernée, il indique grossièrement (case verte) le carton à déballer, en partant du principe que l'utilisateur respecte le sens de circulation de l'entrepôt.&lt;br /&gt;
L'écran de droite, correspond à la phase de dépôt des articles dans le chariot de l'utilisateur, il lui indique dans quel compartiment le placer.&lt;br /&gt;
&lt;br /&gt;
Nous avons participé à une demi-journée de test en production avec le responsable du picking, le responsable innovation, notre tuteur et d'autres parties prenantes du projet. La version sur les google glass a bien rempli son rôle à la manière de la version originale sur les ORA one, les préférences des parties prenantes se sont portés essentiellement sur les avantages qu'offrent les supports.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 09/02 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Connectivité android et TV connectée &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Pour tester la connectivité de l'application sur la tablette géante, dans le cadre de la fonctionnalité de TV connectée, nous voulions une base de donnée accessible depuis n'importe où. L'école met à disposition un site avec nom de domaine, nous avons donc profité de cet outil pour créer une BDD SQL. &lt;br /&gt;
Nous interrogeons cette BDD via un HttpRequest lancé dans l'application android sur une page php qui contient la requête SQL. En POST nous envoyons l'adresse mac du beacons le plus proche, qui permet de ne sélectionner que les informations nécessaires. L'idée est de pousser l'utilisation du matériel, et de prendre en main cet aspect de l'application, même si le système final pourrait reposer plutôt sur un webservice réalisé par l'équipe de développement de l'entreprise.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 16/02 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Interface &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Il a été décidé que nous afficherons plutôt des statistiques propres à une équipe plutôt qu'individuelles.&lt;br /&gt;
Aprés plusieurs remaniements, voici les interfaces correspondantes à l'équipe.&lt;/div&gt;</summary>
		<author><name>Jgondry</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=P22_Google_Glass_en_logistique&amp;diff=17109</id>
		<title>P22 Google Glass en logistique</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=P22_Google_Glass_en_logistique&amp;diff=17109"/>
				<updated>2015-02-18T08:33:49Z</updated>
		
		<summary type="html">&lt;p&gt;Jgondry : /*  Connectivité android et TV connectée  */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Introduction =&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Description du sujet &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
Notre projet vise à l’optimisation du stockage et de l’adressage des palettes dans un entrepôt. En effet, lors du déchargement d’un camion, chercher un emplacement libre pour les palettes dans un entrepôt occupant une grande superficie fait perdre du temps et donc de la productivité dans le stockage. Sachant qu’un cariste perd un temps non négligeable à la recherche d’emplacement disponible, optimiser ce temps de recherche permettrait de gagner du temps sur cette opération.&lt;br /&gt;
Développer un prototype permettrait de rendre compte des moyens existants qui pourrait être mis en place dans une solution métier.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Analyse du sujet &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Google_glass.png|200px|thumb|right|Paire de Google Glass]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Optinvent_ora.png|200px|thumb|right|Paire de ORA d'Optivent]]&lt;br /&gt;
&lt;br /&gt;
Notre projet consiste à fluidifier le déchargement en indiquant au cariste l’emplacement libre le plus proche. Pour ne pas gêner le travail des employés, un dispositif main-libre comme une Google Glass semble adapté. Ce projet soulève plusieurs problématiques : développer une interface homme-machine apportant une information pertinente pour l’utilisateur sans pour autant être perturbante. &lt;br /&gt;
&lt;br /&gt;
L’idée serait de réaliser dans les grandes lignes un système similaire à ce scénario d’utilisation :&lt;br /&gt;
http://n.mynews.ly/!lB.Bs4fw&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Moyen d’affichage de l’Informations pertinentes'''&lt;br /&gt;
&lt;br /&gt;
Les Google Glass ne sont pas les seules smart glasses sur le marché. Il nous faudra choisir les appareils les plus adaptés. L’information pertinente pourrait être une direction à suivre dans l’entrepôt ou simplement un numéro d’emplacement (adressage intuitif de l’entrepôt). &lt;br /&gt;
&lt;br /&gt;
'''Géolocalisation'''&lt;br /&gt;
&lt;br /&gt;
Dans le cas d’une direction à suivre se pose le problème de la géolocalisation indoor dont l’utilité et la faisabilité seront discutés au fil des réunions avec l’entreprise. &lt;br /&gt;
&lt;br /&gt;
'''Adressage / flashage'''&lt;br /&gt;
&lt;br /&gt;
En ce qui concerne l’adressage des palettes en entrepôt, la solution existante repose sur un flashage des codes barres associés à l’emplacement venant d’être occupé. Une étude de faisabilité/utilité sera aussi faite sur une solution de remplacement grâce aux possibilités qu’offrent les smart glasses.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Cahier des charges &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
En partant de l'analyse du sujet et des discussion avec notre tuteur, nous avons définie un cahier des charges plus précis des tâches à accomplir:&lt;br /&gt;
&lt;br /&gt;
* '''Développer un système embarqué sur une paire de lunette Smart Glass'''&lt;br /&gt;
** Comparer les différentes offres en matière de Smart Glass notamment Google Glass &amp;amp; ORA de Optinvent&lt;br /&gt;
** Concevoir une interface homme-machine non perturbante pour l'utilisateur.&lt;br /&gt;
* '''Etudier la nécessité d'utiliser une géolocalisation en entrepôt et l'implémenter si besoin'''&lt;br /&gt;
** Via RSSI (Wifi, Bluetooh Low Energy ...)&lt;br /&gt;
** Via traitement d'images (reconnaissance de la signalétique en entrepôt)&lt;br /&gt;
* '''Etudier les possibilités d'optimisation du système d'adressage des palettes'''&lt;br /&gt;
** Implémenter la reconnaissance de code barre&lt;br /&gt;
** La tester en réalité métier (utilité ajoutée, habitude des magasiniers, vitesse de traitement...)&lt;br /&gt;
&lt;br /&gt;
Le cahier des charges est encore en cours de construction&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Matériel utilisé &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; SmartGlass &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Lors de la réunion nous avons discuté des technologies à utiliser dans le projet, et plus particulièrement des différentes SmartGlass. En effet, il existe une multitude de sociétés qui développe ce genre de lunettes. Nous commencerons à utiliser les Google Glass étant donné que notre tuteur en a déjà commandé puis nous développerons sur les lunettes ORA de Optivent qui seront livrées fin octobre. Nous devrons donc faire un comparatif entre ces deux SmartGlass puis étudier les autres appareils disponibles sur le marché.&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Localisation &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
L'utilisation de la géolocalisation dans le projet est à débattre. Mais des tests seront probablement mis en place. L'entreprise possède quelque iBeacons BLE Estimote dans ses bureaux d'innovations que nous pourrons emprunter.&lt;br /&gt;
Dans le cas où leur gain d'informations serait utile il nous faudra comparer les modèles disponibles. Choisir un nombre de module et des emplacements stratégiques dans l'entrepôt afin d'avoir une localisation assez précise pour l'application.&lt;br /&gt;
&lt;br /&gt;
L'utilisation d'autres technologies de géolocalisation a été discuté comme le Wifi ou le XBee mais le BLE semblait le plus adapté dans le cadre de notre projet.&lt;br /&gt;
&lt;br /&gt;
= Déroulement du projet =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 22/09 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Réunion avec le tuteur entreprise dans l’entrepôt &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Nous avons observé en situation le problème et discuté des besoins, des moyens déjà utilisables. Il nous faudra prendre en compte plusieurs paramètres dans notre réflexion tels que le système de stockage et d'adressages des palettes, sens de circulation des caristes, superficie des zones à desservir, durée de livraison.&lt;br /&gt;
Nous avons suggéré des étapes de validation intermédiaire du système par les futurs utilisateurs et pour cela nous rencontrerons le chef d'équipe des magasiniers lorsque qu'une version sera assez développée.&lt;br /&gt;
&lt;br /&gt;
Nous avons défini avec le tuteur les premières deadlines du projet, voici la timeline récapitulative:&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Timeline_1.jpg||center|1000px]]&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Compte Rendu &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Nous avons rédigé un compte rendu de la première réunion détaillant les spécifications des versions des livrables, des schémas et les sujets abordés lors de la rencontre :&lt;br /&gt;
&lt;br /&gt;
'''Compte Rendu réunion du 25/09/2014 :''' [[Fichier:Compte_Rendu_25_09.pdf]]&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 29/09 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Découverte des Google Glass &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
*Prise en main des Google Glass. &lt;br /&gt;
*Installation d'applications (.apk) grand public. Nous avons utilisé l'outil Android Debug Bridge(adb). Se mettre à la place d'un utilisateur.&lt;br /&gt;
*L'une des deux lunettes qui serait retenue imposera forcément le développement d'une application android (ou d'une technologie trés proche d'android, pour les Google Glass, se basant sur le Glass Development Kit qui est un add-on au SDK classique d'android). Nous avons donc téléchargé les packages nécessaires pour commencer à développer. &lt;br /&gt;
** Nous commençons à nous former sur les technologies android :développement d'applications minimaliste.&lt;br /&gt;
** Installation de nos premières apk minimalistes pour Android.&lt;br /&gt;
** Installation d'une application minimaliste sur la Google Glass.&lt;br /&gt;
&lt;br /&gt;
Voici un comparatif réalisé entre les lunettes ORA et les Google Glass.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Différences Google Glass/ORA &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!   !! Google Glass !! ORA &lt;br /&gt;
|-&lt;br /&gt;
|Connectique&lt;br /&gt;
|Compatible BLE (à partir de la XE 16 KitKat Update), Wifi &lt;br /&gt;
|Compatible BLE, Wifi&lt;br /&gt;
|-&lt;br /&gt;
|Autonomie en utilisation normale&lt;br /&gt;
|de 1h à 2h &lt;br /&gt;
|de 4h à 8h&lt;br /&gt;
|-&lt;br /&gt;
|Son&lt;br /&gt;
|Conductivité Cranienne&lt;br /&gt;
|Prise jack&lt;br /&gt;
|-&lt;br /&gt;
|Interface&lt;br /&gt;
|Ecran occupant une faible superficie dans le champ de vision &lt;br /&gt;
|Ecran 2 positions (moyennes et basses), plus étendu permettant une réalité augmentée &lt;br /&gt;
|-&lt;br /&gt;
|Système d'exploitation&lt;br /&gt;
|Android 4.4&lt;br /&gt;
|Android 4.2.2&lt;br /&gt;
|-&lt;br /&gt;
|Calculs&lt;br /&gt;
|CPU &amp;amp; GPU&lt;br /&gt;
|CPU &amp;amp; GPU&lt;br /&gt;
|-&lt;br /&gt;
|Prix&lt;br /&gt;
|1500$ &lt;br /&gt;
|949$&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 06/10 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Deuxième rendez-vous avec le tuteur entreprise &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Nous avons fait part de notre avancée en matière de prise en main et des problèmes rencontrés en matière de développement.&lt;br /&gt;
Les lunettes ORA sont commandées elles arrivent d'ici la fin octobre.&lt;br /&gt;
&lt;br /&gt;
La première version V1 de l'application pour Google Glass à livrer pour la mi-novembre est fixée.&lt;br /&gt;
&lt;br /&gt;
En partant d'une position connue (en dur dans l'application) dans l'entrepôt, elle indiquera à un utilisateur les emplacements libres les plus proches.&lt;br /&gt;
&lt;br /&gt;
L'état d'occupation des emplacements sera consulté et stocké dans l'application. Il n'y aura donc pas de gestion des conflits. Le sens de circulation dans l'entrepôt sera pris en compte.&lt;br /&gt;
Une communication avec la base de donnée de l'entrepôt n'est pour le moment pas d'actualité, cela nécessiterait des développements en amont.&lt;br /&gt;
La géolocalisation n'est pas au goût du jour non plus. L'adressage des emplacements dans l'entrepôt est intuitif, il est donc facile pour un magasinier de &lt;br /&gt;
se rendre à un emplacement en connaissant l'adresse.&lt;br /&gt;
&lt;br /&gt;
Pour l'IHM, nous nous inspirerons des applications pour Google Glass (les Glasswares) de type GPS.&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Premiers programmes sur Google Glass &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Pour nous familiariser avec la programmation sur ce genre d'appareil nous avons tous deux décidé de suivre en premier le tutoriel Android d'un site spécialisé. Cela afin de mieux comprendre le système Android, avec les concepts d'activités, de view etc.&lt;br /&gt;
Dans un deuxième temps nous avons choisi de suivre plusieurs tutoriels nous expliquant la prise en main basique des lunettes afin de saisir les particularités de leur programmation.&lt;br /&gt;
&lt;br /&gt;
Le plus dur étant finalement de comprendre les liens entre tous les fichiers du projets, les problèmes de drivers et d'upload simple que nous avons rencontrés et l’exécution du programme sur les lunettes. Des choses que nous arrivons maintenant à maitriser mais qui était floues à l'origine.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 13/10 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Programmation et gestion des interactions &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Durant cette semaine nous avons commencé a vraiment toucher aux fonctionnalités des Glass. Pour rester en main libre, nous avons fait des recherches et commencé à programmer de la reconnaissance vocale. Nous avons ainsi crée un système de navigation basique par commande vocale dans différents menus. Pour un accès rapide à l'application et toujours dans la même optique nous avons réussi à inclure le lancement de notre logiciel à partir du &amp;quot;Ok Glass&amp;quot; menu qui est le menu de lancement d'application par commande vocale des Google Glass. Voici un aperçu du résultat:&lt;br /&gt;
[[Fichier:V0_menu.png|1000px|center]]&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Analyse et évaluation du rendu &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Le début de la prise en main des fonctionnalités des Google Glass n'a pas été facile étant donné que la plupart des fonctionnalités sont propres à ce genre d'appareil. De plus elles nécessitent des techniques spéciales de programmation qui ne sont pas toujours très utilisées donc il est parfois difficile de trouver des exemples sur internet.&lt;br /&gt;
Néanmoins après l'implémentation de ces fonctionnalités nous avons pu rencontrer quelques difficultés de reconnaissance. En effet, les Google Glass possèdent un dictionnaire de mots/phrases pour la reconnaissance vocale mais elles nous permettent aussi d'écrire n'importe quelle phrase dans le mode développeur. Les phrases du dictionnaires ne posent aucun problème mais les phrases que nous écrivons sont parfois dures à reconnaitre. La reconnaissance de lettre seule ou de certains numéros est par exemple quasi impossible ou très aléatoire.&lt;br /&gt;
Le système de vu est quant à lui plutôt facile à prendre en main et intuitif dans l'utilisation.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 20/10 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Premiere structure de donnée &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Nous avons opté pour une structure de donnée récursive. Une Cellule, contenant des Allées, qui contiennent des Baies, contenant des Rangées, contenant des Emplacements.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Structure_export_resized.png|750px|center]]&lt;br /&gt;
Nous avons conçu cette structure de donnée pour qu'elle génère, dans un premier temps &amp;quot;en dur&amp;quot;, une cellule contenant des emplacements automatiquement adressés à la manière de ceux présent dans l'entrepôt. Ces adresses sont de la forme &amp;quot;D61A514&amp;quot; traduisez &amp;quot; Cellule 6 Allée 1A Baie 5 Rang 1 Niveau 4&amp;quot;.&lt;br /&gt;
Cette structure prend on compte le sens de circulation dans l'entrepôt.&lt;br /&gt;
Lors de futures interactions avec une base de donnée, cette structure serait sujette à évolution par une modification des méthodes de génération/modification du statut des adresses en fonction de cette base de donnée. Mais celle-ci constitue essentiellement une base pour appréhender plus pratiquement les problématiques de recherches de l'emplacement le plus proche.&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Prise en main de l'interface &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Nous avons déjà abordé les layouts java en TP donc il a été assez facile de commencer à faire des interfaces graphiques simples. Nous avons construit une interface graphique simple pour de faire une démonstration du programme aux tuteurs entreprise afin qu'ils comprennent bien le fonctionnement de notre algorithme.&lt;br /&gt;
L'interface graphique finale du programme sera très sobre afin de ne pas donner trop gêner le magasinier dans sa tâche.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 27/10 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Chemin optimal : Parcours intelligent Vs Sélection intelligente &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Un premier algorithme de recherche de l'emplacement le plus proche a été développé, celui-ci ne prend en compte qu'un seul scénario. &lt;br /&gt;
Celui de la position de départ (quai de déchargement où reviendra constamment le magasinier aprés chaque livraison) correspondante à la première allée de l'entrepôt, et en prenant en compte le sens de circulation. &lt;br /&gt;
A partir de ce moment, nous avons dégager deux grandes manières d'appréhender le problème.&lt;br /&gt;
&lt;br /&gt;
* Un parcours intelligent de la structure de donnée. C'est à dire parcourir les emplacements les plus proches, et choisir le premier emplacement libre. Une solution complexe à réaliser sur le plan algorithmique. En tenant compte du sens de circulation, il apparait que l'emplacement libre &amp;quot;leplusproche&amp;quot; (à vol d'oiseau) trouvé le plus tôt, ne correspondrait pas forcément à l'emplacement le plus proche compte tenu du chemin emprunté par un magasinier. Et c'est plutôt l'intérêt de cette algorithme.(Sauf dans l'unique cas où l'emplacement libre se trouve directement dans l'allée faisant face à la position de départ du magasinier, et le sens de circulation lui permet directement de se rendre à l'emplacement sans détour).&lt;br /&gt;
&lt;br /&gt;
* Une sélection intelligente parmi les emplacements libres. Leurs adresses renseignent à quelles allées, les emplacements libres appartiennent, donc renseignent sur le sens de circulation. A partir de la position de départ du magasinier et de l'ensemble des emplacements libres, on peut calculer la distance nécessaire à celui-ci pour les atteindre. Pour ainsi choisir l'adresse pour laquelle la distance est minimale.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 3/11 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Chemin optimal : sélection intelligente des adresses &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Nous avons écrit une premiere méthode de détermination. &lt;br /&gt;
On choisit l'emplacement, parmi tous ceux qui sont libres, pour lequel la distance de parcours est minimale entre le départ et celui-ci. &lt;br /&gt;
Ici l'unité de distance est la baie. La simplicité de l'algorithme réside dans le fait que le magasinier ne transporte qu'une seule caisse à la fois et repars toujours au même point de départ.&lt;br /&gt;
&lt;br /&gt;
Ci dessous un plan de l'entrepôt.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:schema_entrepot.png|750px|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Si on se place à l'entrée de l'Allée A :&lt;br /&gt;
&lt;br /&gt;
**le déplacement jusqu'à A4 (sens de circulation direct) est de : &lt;br /&gt;
&lt;br /&gt;
                        Y baies - (indice de la baie/2 +indice de la baie % 2) &lt;br /&gt;
&lt;br /&gt;
**le déplacement jusqu'à B1 (sens de circulation indirect) est de : &lt;br /&gt;
&lt;br /&gt;
                        Y baies + différence entre l'allée A et B donc X baies + indice de la baie/2 +indice de la baie % 2&lt;br /&gt;
**le déplacement jusqu'à C1 (sens de circulation direct) est de : &lt;br /&gt;
                      &lt;br /&gt;
                        Y baies - (indice de la baie/2 +indice de la baie % 2)+différence entre l'allée A et C donc 2*X baies.&lt;br /&gt;
&lt;br /&gt;
*Si on se place à l'entrée de l'Allée B :&lt;br /&gt;
**le déplacement jusqu'à B1 (sens de circulation indirect avec contournement) est de : &lt;br /&gt;
                        &lt;br /&gt;
                        2*X baies + Y baies + 2*X baies + (indice de la baie/2 +indice de la baie % 2)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On peut généraliser l'ensemble de ces situations de déplacement avec l'algorithme suivant :&lt;br /&gt;
&lt;br /&gt;
Pseudo code&lt;br /&gt;
&lt;br /&gt;
  Leplusproche( Allee depart )&lt;br /&gt;
    distance_la_plus_petite = valeurMAX&lt;br /&gt;
      le_plus_proche=&amp;quot;&amp;quot;&lt;br /&gt;
         Pour chaque Allee de Cellule&lt;br /&gt;
           sens=Allee.sens&lt;br /&gt;
           Pour chaque Baie de Allee&lt;br /&gt;
             Pour chaque Rang de Allee&lt;br /&gt;
 	       Pour chaque Emplacement de Rang&lt;br /&gt;
                Si Emplacement estlibre &lt;br /&gt;
                &lt;br /&gt;
                indice_baie = selection_indice_baie(Emplacement.adresse)&lt;br /&gt;
   		 allee_cible = selection_indice_allee(Emplacement.adresse)  &lt;br /&gt;
   		 difference_allee = valeur_absolue(depart -cible) &lt;br /&gt;
                    Si difference_allee==0 et sens.estindirect&lt;br /&gt;
                      //sens indirect +contournement&lt;br /&gt;
                      distance_actuelle=(indice_baie/2)+indice_baie%2+(2*(difference_allee))+4*X+Y			&lt;br /&gt;
                    Sinon	&lt;br /&gt;
                        Si sens estdirect&lt;br /&gt;
                          //sens direct &lt;br /&gt;
                          distance_actuelle=(Y-((indice_baie/2)+indice_baie%2))+2*difference_allee&lt;br /&gt;
                        Sinon&lt;br /&gt;
                          //sens indirect mais pas de contournement&lt;br /&gt;
                          distance_actuelle=((indice_baie/2)+indice_baie%2)+2*difference_allee+Y&lt;br /&gt;
                        Finsi	&lt;br /&gt;
                    Finsi	&lt;br /&gt;
                    Si distance_actuelle &amp;lt; distance_la_plus_petite&lt;br /&gt;
                      le_plus_proche=Emplacement.adresse&lt;br /&gt;
                      distance_la_plus_petite=distance_actuelle&lt;br /&gt;
                    Finsi&lt;br /&gt;
                Finsi  &lt;br /&gt;
            Finpour&lt;br /&gt;
          Finpour&lt;br /&gt;
        Finpour&lt;br /&gt;
      Finpour&lt;br /&gt;
    retourne le_plus_proche&lt;br /&gt;
  Finleplusproche&lt;br /&gt;
&lt;br /&gt;
Cet algorithme nous donne satisfaction (dans le cadre de la V1)&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 10/11 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Programmation et gestion des interactions &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Aprés quelques difficultés vis à vis de la gestion des menus vocaux sur les lunettes qui ne fonctionnent pas de la même manière que les menus classiques sous android, nous avons étoffé les interactions possible avec l'application des google glass. (Nous souhaitions inflater un deuxième menu pour interagir de manière plus contextuelle, il fallait le faire dans la méthode onCreatePanelMenu dont l'appel serait forcé avec getWindow().invalidatePanelMenu(WindowUtils.FEATURE_VOICE_COMMANDS) plutôt que dans onPrepareOptionsMenu forcée par invalidateOptionMenu()...) &lt;br /&gt;
&lt;br /&gt;
schéma d'utilisation...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Proposition projet affichage télévision &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Tele_concept.png|200px|thumb|right]]&lt;br /&gt;
&lt;br /&gt;
Notre tuteur nous a contacté pour nous proposer d'étudier un second projet en parallèle au projet initial. Celui consistant à gérer l'affichage d'information personnalisé d'un magasinier passant à proximité d'un écran de télévision. Nous devons effectuer un Proof Of Concept (POC) et réfléchir à ce sujet.&lt;br /&gt;
L'utilisation du BLE est donc de nouveau d'actualité, car je rappel que sont utilité était discutable dans une réalité métier du projet initial. La question étant plus de savoir comment gérer le système du coté du téléviseur.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Le concept de base étant de :&lt;br /&gt;
* Fournir une beacon aux magasiniers de l'entrepôt.&lt;br /&gt;
* Installer une télévision sur un centre de vie dans l'entrepôt avec une beacon&lt;br /&gt;
* Pousser du contenu personnalisé au magasinier qui se présente devant la tv dans son centre de vie&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 17/11 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Brainstorming à Polytech &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Dans la cadre du POC sur l'affichage personnalisé sur une télévision, nous avons profité d'un exercice de management pour faire participer la classe à notre projet. Grâce à cette intervention nous avons pu confirmer nos idées sur les technologies à utiliser. Mais nous avons surtout eu une multitude de propositions sur les données à afficher sur l'écran.&lt;br /&gt;
&lt;br /&gt;
Pour plus détails, le compte rendu est disponible à ce lien:&lt;br /&gt;
&lt;br /&gt;
'''Compte Rendu Brainstorming 17/11/2014 :''' [[Fichier:Compte_Rendu_POC_17_11.pdf]]&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Entretien avec notre tuteur entreprise &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Durant cet entretien, nous avons livré la première version de l'application et nous avons discuté de la suite du projet.&lt;br /&gt;
Ci joint le Compte Rendu.&lt;br /&gt;
&lt;br /&gt;
'''Compte Rendu  19/11/2014 :''' [[Fichier:Compte_Rendu_19_11.pdf]]&lt;br /&gt;
&lt;br /&gt;
De cette réunion, les points suivants en sont sortis:&lt;br /&gt;
&lt;br /&gt;
*Une reconnaissance vocale en langue française sur les lunettes serait plus intéressante pour les employés (une piste serait d’utiliser l’outil pocketsphinx-  android).&lt;br /&gt;
*Par rapport à l'IHM, il faudrait mettre l’affichage au premier plan sur les Google Glass pour une démo auprés des parties prenantes du projet.&lt;br /&gt;
*Choisir une architecture pour l’affichage d’information personnalisées.&lt;br /&gt;
**La télévision connectée à une raspberry qui communiquerait via un dongle BLE avec le beacon d’un magasinier, ce qui permettrait l’identification de celui-ci prés de la Télévision, et déclencherait un processus d’échange d’information. (Communication via le protocole Bluetooh, wifi entre les lunettes et la Raspberry  ou communication avec la Raspberry avec la Base de Donnée sur le réseau de l’entreprise)&lt;br /&gt;
**Une télévision connectée en continu à un site internet via un dongle HDMI.&lt;br /&gt;
**Une tablette android géante supportant le BLE, ou utilisant un dongle BLE.&lt;br /&gt;
* Réaliser le portage de l’application sur le prototype des lunettes ORA.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 24/11 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Reconnaissance vocale en Français &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Pocket Sphinx Android est une librairie permettant de faire de la reconnaissance vocale d'un langage donné sur un système android en offline.&lt;br /&gt;
Pour supporter une langue, elle nécessite: &lt;br /&gt;
*un modèle acoustique (ensemble d'informations pour le traitement sonore)&lt;br /&gt;
*un dictionnaire associant les mots et leur phonèmes&lt;br /&gt;
*une grammaire, c'est un fichier définissant comment seraient articulé les mots à reconnaître et limitant les possibilités de langage).&lt;br /&gt;
&lt;br /&gt;
La grammaire étant un automate. Voici un exemple de la grammaire menu.gram pour la reconnaissance de la porte de déchargement.&lt;br /&gt;
[[Fichier:Arborescence_pocket_sphinx.png|200px|thumb|right|PocketSphinx dans un projet Android]]&lt;br /&gt;
&lt;br /&gt;
  #JSGF V1.0;&lt;br /&gt;
  grammar menu;&lt;br /&gt;
  &amp;lt;porte&amp;gt; = porte a |&lt;br /&gt;
            porte b |&lt;br /&gt;
            porte c |&lt;br /&gt;
            porte d |&lt;br /&gt;
            porte e |&lt;br /&gt;
            porte f |&lt;br /&gt;
            porte g |&lt;br /&gt;
            porte h |&lt;br /&gt;
            porte i |&lt;br /&gt;
            porte j ;&lt;br /&gt;
  public &amp;lt;porte&amp;gt; = &amp;lt;porte&amp;gt;+;&lt;br /&gt;
&lt;br /&gt;
Un extrait du dictionnaire french_letter.dic associé avec les phonemes&lt;br /&gt;
&lt;br /&gt;
  a aa &amp;lt;-- juste la lettre a et son phoneme &lt;br /&gt;
  autre au tt rr&lt;br /&gt;
  autre(2) au tt rr ee &lt;br /&gt;
  b bb &lt;br /&gt;
  c ss &lt;br /&gt;
  d dd ei d(2) dd ait &lt;br /&gt;
  e eu e(2) eu zz &lt;br /&gt;
  f ai ff &lt;br /&gt;
  g jj ei g(2) gg ai &lt;br /&gt;
  h aa ch  &lt;br /&gt;
  i ii &lt;br /&gt;
  j jj yy j(2) jj ii&lt;br /&gt;
  porte pp oo rr tt&lt;br /&gt;
  porte(2) pp oo rr tt ee&lt;br /&gt;
  portes(2) pp oo rr tt ee&lt;br /&gt;
  portes(3) pp oo rr tt ee zz&lt;br /&gt;
  portes(4) pp oo rr tt zz&lt;br /&gt;
&lt;br /&gt;
Le modèle acoustique que nous avons téléchargé étant inclu dans lium_french_f0&lt;br /&gt;
&lt;br /&gt;
Nous avons testé la reconnaissance vocale sur un téléphone android, les mots sont, dans la majorité des cas, bien reconnus.&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Comparaison architectures projet TV &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Au niveau de l’architecture nous avons établi plusieurs propositions après la réunion avec notre tuteur:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour une Raspberry Pi avec un dongle BLE :&lt;br /&gt;
* Installation OS Linux sur la Raspberry&lt;br /&gt;
* Librairie BlueZ pour l’utilisation du BLE (tests rapides effectués sur Linux avec le Dongle)&lt;br /&gt;
* Interface graphique avec une bibliothèque comme Qt (ou encore SDL…)&lt;br /&gt;
* Prix : Rpi = 26€ (chez RadioSpare), Dongle = 10€, TV = à partir de 358€ pour 117cm, + Connectique vidéo. Total = 394€&lt;br /&gt;
&lt;br /&gt;
Pour un écran ViewSonic VSD231 :&lt;br /&gt;
* Possède une API Bluetooth classic + API BLE&lt;br /&gt;
* Interface graphique Android (View, Layout...)&lt;br /&gt;
* Prix : écran ViewSonic VSD231 = 558 € pour 58 cm (chez ViewSonic).&lt;br /&gt;
&lt;br /&gt;
Récupération d’informations :&lt;br /&gt;
* Si données sur les lunettes : Bluetooth ou Wifi.&lt;br /&gt;
* Si données sur serveur : Ethernet ou Wifi.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Vu les propositions possibles nous pensons que la première proposition permettra une meilleure souplesse dans le développement mais serait un peu plus compliquée. Mais nous la trouvons aussi plus intéressante à faire de plus elle est moins coûteuse et permet d'utiliser un écran plus grand. Le développement sur tablette serait sûrement plus rapide à faire en contrepartie.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 01/12 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Conférence GlassCamp à l'Imaginarium &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
GlassCamp est une association qui essaye de répandre l'utilisation de toute les Smart Glass en général. Elle propose de multiples conférences dans lesquelles ils essayent de montrer au public l’intérêt de développer sur ces appareils. Dans le cadre de notre projet, notre tuteur nous a proposé de participer à cette présentation afin de mieux s’approprier le sujet. La conférence a eu lieu le 4 décembre à l'Imaginarium: une grande partie était plutôt tournée vers la présentation mais nous avons apprîs plusieurs choses intéressantes qui sont décrites dans le compte rendu.&lt;br /&gt;
&lt;br /&gt;
'''Compte Rendu Conférence 04/12/2014 :''' [[Fichier:Compte_Rendu_Conf_GlassCamp.pdf]]&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaines du 08/12 et 15/12 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Reconnaissance vocale en Français &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Nous avons avancé sur la version française de l'application. A la manière du menu vocal des google glass, nous avons utilisé un délimiteur&lt;br /&gt;
&amp;quot;ok lunettes&amp;quot; pour démarrer l'interaction avec l'application, afin que les discussions et bruits ambiants n'interfèrent pas sur l'utilisation de celle-ci.&lt;br /&gt;
Voici le scénario d'utilisation de la nouvelle version de l'application en Français.&lt;br /&gt;
[[Fichier:Schema_fr.png|700px|center]]&lt;br /&gt;
&lt;br /&gt;
Sous pocketsphinx, le délimiteur n'apparait pas dans une grammaire. La grammaire permet de prédestiner l'application à choisir entre deux mots. &lt;br /&gt;
Dans notre application, le moteur de reconnaissance vocale choisi la distance la plus courte, séparant le mot prononcé par l'utilisateur et ceux&lt;br /&gt;
qu'il est possible d'entendre. Ainsi entre &amp;quot;oui&amp;quot; et &amp;quot;non&amp;quot;, l'application choisira forcément l'un des deux, même si l'utilisateur dit &amp;quot;bonjour&amp;quot;&lt;br /&gt;
&lt;br /&gt;
L'avantage du délimiteur est que sa détection repose sur un seuillage entre ce qui est prononcé et ce qui doit être reconnu, nous pouvons régler ce seuil.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 05/01 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Entretien avec notre tuteur &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Durant cet entretien nous avons défini les évolutions du projet.&lt;br /&gt;
&lt;br /&gt;
'''Compte Rendu de l'entretien du 06/01/2015 :''' [[Fichier:Compte_Rendu_4.pdf]]&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 12/01 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; TV connectée &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Nous avons pris en main la détection des beacons (de la marque Estimote fournis par l'entreprise) dans les systèmes android.&lt;br /&gt;
L'adresse MAC et le RSSI sont accessibles, ce sont les seules informations nécessaires que nous avons besoin en ce qui concerne les beacons.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 19/01 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Interfaces_exemple.png|100px|thumb|right]]&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt;Interface TV &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Nous avons développé plusieurs exemples d'interfaces avec les instructions de notre tuteur afin de choisir les meilleurs résultats ensembles. Nous avons défini quelques contraintes pour le design. Elle doit être&lt;br /&gt;
* Simple et intuitive&lt;br /&gt;
* En accord avec les couleurs de l'entreprise&lt;br /&gt;
* Moderne (système de tuile ou autre)&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 26/01 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Entretien avec notre tuteur &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Durant cette entretien nous avons défini plus précisément les objectifs du projet.&lt;br /&gt;
Ci dessous le compte rendu.&lt;br /&gt;
&lt;br /&gt;
'''Compte Rendu de l'entretien du 26/01/2015 :''' [[Fichier:Compte_Rendu_5.pdf]]&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 02/02 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Portage d'une application de SmartPicking sur les Google Glass &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Une application android main libre pour les ORA glasses a été développé pour permettre à l'entreprise, &lt;br /&gt;
d'accélerer les opérations de picking(prélévement à l'article) en entrepôt. Celle-ci était à destination des lunettes ORA de Optinvent.&lt;br /&gt;
Notre tuteur souhaitait donc que nous réalisions le portage de cette application vers les google glass. Le but étant de comparer l'usage de cette application sur deux supports différents entre les lunettes. &lt;br /&gt;
&lt;br /&gt;
*Nous avons procédé à des ajustements au niveau de la gestion des layouts de l'interface, à équilibrer la places qu'occupe certaines informations données par l'application.&lt;br /&gt;
*Cette application communique par bluetooth avec une autre application lancée sur une tablette android, cette dernière permet de réaliser l'appairage avec la smartglass. La tablette étant la seule à être connectée au serveur de l'entreprise (l'AS400) via un réseau sécurisé. Nous avons du appairer manuellement les glass avec la tablette, et retirer dans le code le lancement d'un intent permettant aux lunettes de se rendre visible sur le réseau. Lorsque cet intent est lancé il génère une exception non attendue qui ne concerne que les google glass. Aprés recherches sur le net, il semble que c'est un problème récurrent qui a été signalé mais pas encore résolu.&lt;br /&gt;
&lt;br /&gt;
Ci dessous des screenshot de l'application en question adaptée par nos soins :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Schema_picking.png|800px|center]]&lt;br /&gt;
&lt;br /&gt;
L'écran de gauche, correspond à la phase de prélévement d'un article ici &amp;quot;VE RAINCUT TRUE BLACK SS14&amp;quot; une veste à l'adresse C4FU-10-1-3, il faut en prélever 12, et le tableau à gauche correspond à la façade de l'étagère concernée, il indique grossièrement (case verte) le carton à déballer, en partant du principe que l'utilisateur respecte le sens de circulation de l'entrepôt.&lt;br /&gt;
L'écran de droite, correspond à la phase de dépôt des articles dans le chariot de l'utilisateur, il lui indique dans quel compartiment le placer.&lt;br /&gt;
&lt;br /&gt;
Nous avons participé à une demi-journée de test en production avec le responsable du picking, le responsable innovation, notre tuteur et d'autres parties prenantes du projet. La version sur les google glass a bien rempli son rôle à la manière de la version originale sur les ORA one, les préférences des parties prenantes se sont portés essentiellement sur les avantages qu'offrent les supports.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 09/02 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Connectivité android et TV connectée &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Pour tester la connectivité de l'application sur la tablette géante, dans le cadre de la fonctionnalité de TV connectée, nous voulions une base de donnée accessible depuis n'importe où. L'école met à disposition un site avec nom de domaine, nous avons donc profité de cet outil pour créer une BDD SQL. &lt;br /&gt;
Nous interrogeons cette BDD via un HttpRequest lancé dans l'application android sur une page php qui contient la requête SQL. En POST nous envoyons l'adresse mac du beacons le plus proche, qui permet de ne sélectionner que les informations nécessaires. L'idée est de pousser l'utilisation du matériel, et de prendre en main cet aspect de l'application, même si le système final pourrait reposer plutôt sur un webservice réalisé par l'équipe de développement de l'entreprise.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 16/02 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Interface &amp;lt;/font&amp;gt;===&lt;/div&gt;</summary>
		<author><name>Jgondry</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=P22_Google_Glass_en_logistique&amp;diff=17108</id>
		<title>P22 Google Glass en logistique</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=P22_Google_Glass_en_logistique&amp;diff=17108"/>
				<updated>2015-02-18T08:31:59Z</updated>
		
		<summary type="html">&lt;p&gt;Jgondry : /*  Connectivité android et TV connectée  */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Introduction =&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Description du sujet &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
Notre projet vise à l’optimisation du stockage et de l’adressage des palettes dans un entrepôt. En effet, lors du déchargement d’un camion, chercher un emplacement libre pour les palettes dans un entrepôt occupant une grande superficie fait perdre du temps et donc de la productivité dans le stockage. Sachant qu’un cariste perd un temps non négligeable à la recherche d’emplacement disponible, optimiser ce temps de recherche permettrait de gagner du temps sur cette opération.&lt;br /&gt;
Développer un prototype permettrait de rendre compte des moyens existants qui pourrait être mis en place dans une solution métier.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Analyse du sujet &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Google_glass.png|200px|thumb|right|Paire de Google Glass]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Optinvent_ora.png|200px|thumb|right|Paire de ORA d'Optivent]]&lt;br /&gt;
&lt;br /&gt;
Notre projet consiste à fluidifier le déchargement en indiquant au cariste l’emplacement libre le plus proche. Pour ne pas gêner le travail des employés, un dispositif main-libre comme une Google Glass semble adapté. Ce projet soulève plusieurs problématiques : développer une interface homme-machine apportant une information pertinente pour l’utilisateur sans pour autant être perturbante. &lt;br /&gt;
&lt;br /&gt;
L’idée serait de réaliser dans les grandes lignes un système similaire à ce scénario d’utilisation :&lt;br /&gt;
http://n.mynews.ly/!lB.Bs4fw&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Moyen d’affichage de l’Informations pertinentes'''&lt;br /&gt;
&lt;br /&gt;
Les Google Glass ne sont pas les seules smart glasses sur le marché. Il nous faudra choisir les appareils les plus adaptés. L’information pertinente pourrait être une direction à suivre dans l’entrepôt ou simplement un numéro d’emplacement (adressage intuitif de l’entrepôt). &lt;br /&gt;
&lt;br /&gt;
'''Géolocalisation'''&lt;br /&gt;
&lt;br /&gt;
Dans le cas d’une direction à suivre se pose le problème de la géolocalisation indoor dont l’utilité et la faisabilité seront discutés au fil des réunions avec l’entreprise. &lt;br /&gt;
&lt;br /&gt;
'''Adressage / flashage'''&lt;br /&gt;
&lt;br /&gt;
En ce qui concerne l’adressage des palettes en entrepôt, la solution existante repose sur un flashage des codes barres associés à l’emplacement venant d’être occupé. Une étude de faisabilité/utilité sera aussi faite sur une solution de remplacement grâce aux possibilités qu’offrent les smart glasses.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Cahier des charges &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
En partant de l'analyse du sujet et des discussion avec notre tuteur, nous avons définie un cahier des charges plus précis des tâches à accomplir:&lt;br /&gt;
&lt;br /&gt;
* '''Développer un système embarqué sur une paire de lunette Smart Glass'''&lt;br /&gt;
** Comparer les différentes offres en matière de Smart Glass notamment Google Glass &amp;amp; ORA de Optinvent&lt;br /&gt;
** Concevoir une interface homme-machine non perturbante pour l'utilisateur.&lt;br /&gt;
* '''Etudier la nécessité d'utiliser une géolocalisation en entrepôt et l'implémenter si besoin'''&lt;br /&gt;
** Via RSSI (Wifi, Bluetooh Low Energy ...)&lt;br /&gt;
** Via traitement d'images (reconnaissance de la signalétique en entrepôt)&lt;br /&gt;
* '''Etudier les possibilités d'optimisation du système d'adressage des palettes'''&lt;br /&gt;
** Implémenter la reconnaissance de code barre&lt;br /&gt;
** La tester en réalité métier (utilité ajoutée, habitude des magasiniers, vitesse de traitement...)&lt;br /&gt;
&lt;br /&gt;
Le cahier des charges est encore en cours de construction&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Matériel utilisé &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; SmartGlass &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Lors de la réunion nous avons discuté des technologies à utiliser dans le projet, et plus particulièrement des différentes SmartGlass. En effet, il existe une multitude de sociétés qui développe ce genre de lunettes. Nous commencerons à utiliser les Google Glass étant donné que notre tuteur en a déjà commandé puis nous développerons sur les lunettes ORA de Optivent qui seront livrées fin octobre. Nous devrons donc faire un comparatif entre ces deux SmartGlass puis étudier les autres appareils disponibles sur le marché.&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Localisation &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
L'utilisation de la géolocalisation dans le projet est à débattre. Mais des tests seront probablement mis en place. L'entreprise possède quelque iBeacons BLE Estimote dans ses bureaux d'innovations que nous pourrons emprunter.&lt;br /&gt;
Dans le cas où leur gain d'informations serait utile il nous faudra comparer les modèles disponibles. Choisir un nombre de module et des emplacements stratégiques dans l'entrepôt afin d'avoir une localisation assez précise pour l'application.&lt;br /&gt;
&lt;br /&gt;
L'utilisation d'autres technologies de géolocalisation a été discuté comme le Wifi ou le XBee mais le BLE semblait le plus adapté dans le cadre de notre projet.&lt;br /&gt;
&lt;br /&gt;
= Déroulement du projet =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 22/09 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Réunion avec le tuteur entreprise dans l’entrepôt &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Nous avons observé en situation le problème et discuté des besoins, des moyens déjà utilisables. Il nous faudra prendre en compte plusieurs paramètres dans notre réflexion tels que le système de stockage et d'adressages des palettes, sens de circulation des caristes, superficie des zones à desservir, durée de livraison.&lt;br /&gt;
Nous avons suggéré des étapes de validation intermédiaire du système par les futurs utilisateurs et pour cela nous rencontrerons le chef d'équipe des magasiniers lorsque qu'une version sera assez développée.&lt;br /&gt;
&lt;br /&gt;
Nous avons défini avec le tuteur les premières deadlines du projet, voici la timeline récapitulative:&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Timeline_1.jpg||center|1000px]]&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Compte Rendu &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Nous avons rédigé un compte rendu de la première réunion détaillant les spécifications des versions des livrables, des schémas et les sujets abordés lors de la rencontre :&lt;br /&gt;
&lt;br /&gt;
'''Compte Rendu réunion du 25/09/2014 :''' [[Fichier:Compte_Rendu_25_09.pdf]]&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 29/09 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Découverte des Google Glass &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
*Prise en main des Google Glass. &lt;br /&gt;
*Installation d'applications (.apk) grand public. Nous avons utilisé l'outil Android Debug Bridge(adb). Se mettre à la place d'un utilisateur.&lt;br /&gt;
*L'une des deux lunettes qui serait retenue imposera forcément le développement d'une application android (ou d'une technologie trés proche d'android, pour les Google Glass, se basant sur le Glass Development Kit qui est un add-on au SDK classique d'android). Nous avons donc téléchargé les packages nécessaires pour commencer à développer. &lt;br /&gt;
** Nous commençons à nous former sur les technologies android :développement d'applications minimaliste.&lt;br /&gt;
** Installation de nos premières apk minimalistes pour Android.&lt;br /&gt;
** Installation d'une application minimaliste sur la Google Glass.&lt;br /&gt;
&lt;br /&gt;
Voici un comparatif réalisé entre les lunettes ORA et les Google Glass.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Différences Google Glass/ORA &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!   !! Google Glass !! ORA &lt;br /&gt;
|-&lt;br /&gt;
|Connectique&lt;br /&gt;
|Compatible BLE (à partir de la XE 16 KitKat Update), Wifi &lt;br /&gt;
|Compatible BLE, Wifi&lt;br /&gt;
|-&lt;br /&gt;
|Autonomie en utilisation normale&lt;br /&gt;
|de 1h à 2h &lt;br /&gt;
|de 4h à 8h&lt;br /&gt;
|-&lt;br /&gt;
|Son&lt;br /&gt;
|Conductivité Cranienne&lt;br /&gt;
|Prise jack&lt;br /&gt;
|-&lt;br /&gt;
|Interface&lt;br /&gt;
|Ecran occupant une faible superficie dans le champ de vision &lt;br /&gt;
|Ecran 2 positions (moyennes et basses), plus étendu permettant une réalité augmentée &lt;br /&gt;
|-&lt;br /&gt;
|Système d'exploitation&lt;br /&gt;
|Android 4.4&lt;br /&gt;
|Android 4.2.2&lt;br /&gt;
|-&lt;br /&gt;
|Calculs&lt;br /&gt;
|CPU &amp;amp; GPU&lt;br /&gt;
|CPU &amp;amp; GPU&lt;br /&gt;
|-&lt;br /&gt;
|Prix&lt;br /&gt;
|1500$ &lt;br /&gt;
|949$&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 06/10 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Deuxième rendez-vous avec le tuteur entreprise &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Nous avons fait part de notre avancée en matière de prise en main et des problèmes rencontrés en matière de développement.&lt;br /&gt;
Les lunettes ORA sont commandées elles arrivent d'ici la fin octobre.&lt;br /&gt;
&lt;br /&gt;
La première version V1 de l'application pour Google Glass à livrer pour la mi-novembre est fixée.&lt;br /&gt;
&lt;br /&gt;
En partant d'une position connue (en dur dans l'application) dans l'entrepôt, elle indiquera à un utilisateur les emplacements libres les plus proches.&lt;br /&gt;
&lt;br /&gt;
L'état d'occupation des emplacements sera consulté et stocké dans l'application. Il n'y aura donc pas de gestion des conflits. Le sens de circulation dans l'entrepôt sera pris en compte.&lt;br /&gt;
Une communication avec la base de donnée de l'entrepôt n'est pour le moment pas d'actualité, cela nécessiterait des développements en amont.&lt;br /&gt;
La géolocalisation n'est pas au goût du jour non plus. L'adressage des emplacements dans l'entrepôt est intuitif, il est donc facile pour un magasinier de &lt;br /&gt;
se rendre à un emplacement en connaissant l'adresse.&lt;br /&gt;
&lt;br /&gt;
Pour l'IHM, nous nous inspirerons des applications pour Google Glass (les Glasswares) de type GPS.&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Premiers programmes sur Google Glass &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Pour nous familiariser avec la programmation sur ce genre d'appareil nous avons tous deux décidé de suivre en premier le tutoriel Android d'un site spécialisé. Cela afin de mieux comprendre le système Android, avec les concepts d'activités, de view etc.&lt;br /&gt;
Dans un deuxième temps nous avons choisi de suivre plusieurs tutoriels nous expliquant la prise en main basique des lunettes afin de saisir les particularités de leur programmation.&lt;br /&gt;
&lt;br /&gt;
Le plus dur étant finalement de comprendre les liens entre tous les fichiers du projets, les problèmes de drivers et d'upload simple que nous avons rencontrés et l’exécution du programme sur les lunettes. Des choses que nous arrivons maintenant à maitriser mais qui était floues à l'origine.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 13/10 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Programmation et gestion des interactions &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Durant cette semaine nous avons commencé a vraiment toucher aux fonctionnalités des Glass. Pour rester en main libre, nous avons fait des recherches et commencé à programmer de la reconnaissance vocale. Nous avons ainsi crée un système de navigation basique par commande vocale dans différents menus. Pour un accès rapide à l'application et toujours dans la même optique nous avons réussi à inclure le lancement de notre logiciel à partir du &amp;quot;Ok Glass&amp;quot; menu qui est le menu de lancement d'application par commande vocale des Google Glass. Voici un aperçu du résultat:&lt;br /&gt;
[[Fichier:V0_menu.png|1000px|center]]&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Analyse et évaluation du rendu &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Le début de la prise en main des fonctionnalités des Google Glass n'a pas été facile étant donné que la plupart des fonctionnalités sont propres à ce genre d'appareil. De plus elles nécessitent des techniques spéciales de programmation qui ne sont pas toujours très utilisées donc il est parfois difficile de trouver des exemples sur internet.&lt;br /&gt;
Néanmoins après l'implémentation de ces fonctionnalités nous avons pu rencontrer quelques difficultés de reconnaissance. En effet, les Google Glass possèdent un dictionnaire de mots/phrases pour la reconnaissance vocale mais elles nous permettent aussi d'écrire n'importe quelle phrase dans le mode développeur. Les phrases du dictionnaires ne posent aucun problème mais les phrases que nous écrivons sont parfois dures à reconnaitre. La reconnaissance de lettre seule ou de certains numéros est par exemple quasi impossible ou très aléatoire.&lt;br /&gt;
Le système de vu est quant à lui plutôt facile à prendre en main et intuitif dans l'utilisation.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 20/10 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Premiere structure de donnée &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Nous avons opté pour une structure de donnée récursive. Une Cellule, contenant des Allées, qui contiennent des Baies, contenant des Rangées, contenant des Emplacements.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Structure_export_resized.png|750px|center]]&lt;br /&gt;
Nous avons conçu cette structure de donnée pour qu'elle génère, dans un premier temps &amp;quot;en dur&amp;quot;, une cellule contenant des emplacements automatiquement adressés à la manière de ceux présent dans l'entrepôt. Ces adresses sont de la forme &amp;quot;D61A514&amp;quot; traduisez &amp;quot; Cellule 6 Allée 1A Baie 5 Rang 1 Niveau 4&amp;quot;.&lt;br /&gt;
Cette structure prend on compte le sens de circulation dans l'entrepôt.&lt;br /&gt;
Lors de futures interactions avec une base de donnée, cette structure serait sujette à évolution par une modification des méthodes de génération/modification du statut des adresses en fonction de cette base de donnée. Mais celle-ci constitue essentiellement une base pour appréhender plus pratiquement les problématiques de recherches de l'emplacement le plus proche.&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Prise en main de l'interface &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Nous avons déjà abordé les layouts java en TP donc il a été assez facile de commencer à faire des interfaces graphiques simples. Nous avons construit une interface graphique simple pour de faire une démonstration du programme aux tuteurs entreprise afin qu'ils comprennent bien le fonctionnement de notre algorithme.&lt;br /&gt;
L'interface graphique finale du programme sera très sobre afin de ne pas donner trop gêner le magasinier dans sa tâche.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 27/10 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Chemin optimal : Parcours intelligent Vs Sélection intelligente &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Un premier algorithme de recherche de l'emplacement le plus proche a été développé, celui-ci ne prend en compte qu'un seul scénario. &lt;br /&gt;
Celui de la position de départ (quai de déchargement où reviendra constamment le magasinier aprés chaque livraison) correspondante à la première allée de l'entrepôt, et en prenant en compte le sens de circulation. &lt;br /&gt;
A partir de ce moment, nous avons dégager deux grandes manières d'appréhender le problème.&lt;br /&gt;
&lt;br /&gt;
* Un parcours intelligent de la structure de donnée. C'est à dire parcourir les emplacements les plus proches, et choisir le premier emplacement libre. Une solution complexe à réaliser sur le plan algorithmique. En tenant compte du sens de circulation, il apparait que l'emplacement libre &amp;quot;leplusproche&amp;quot; (à vol d'oiseau) trouvé le plus tôt, ne correspondrait pas forcément à l'emplacement le plus proche compte tenu du chemin emprunté par un magasinier. Et c'est plutôt l'intérêt de cette algorithme.(Sauf dans l'unique cas où l'emplacement libre se trouve directement dans l'allée faisant face à la position de départ du magasinier, et le sens de circulation lui permet directement de se rendre à l'emplacement sans détour).&lt;br /&gt;
&lt;br /&gt;
* Une sélection intelligente parmi les emplacements libres. Leurs adresses renseignent à quelles allées, les emplacements libres appartiennent, donc renseignent sur le sens de circulation. A partir de la position de départ du magasinier et de l'ensemble des emplacements libres, on peut calculer la distance nécessaire à celui-ci pour les atteindre. Pour ainsi choisir l'adresse pour laquelle la distance est minimale.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 3/11 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Chemin optimal : sélection intelligente des adresses &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Nous avons écrit une premiere méthode de détermination. &lt;br /&gt;
On choisit l'emplacement, parmi tous ceux qui sont libres, pour lequel la distance de parcours est minimale entre le départ et celui-ci. &lt;br /&gt;
Ici l'unité de distance est la baie. La simplicité de l'algorithme réside dans le fait que le magasinier ne transporte qu'une seule caisse à la fois et repars toujours au même point de départ.&lt;br /&gt;
&lt;br /&gt;
Ci dessous un plan de l'entrepôt.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:schema_entrepot.png|750px|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Si on se place à l'entrée de l'Allée A :&lt;br /&gt;
&lt;br /&gt;
**le déplacement jusqu'à A4 (sens de circulation direct) est de : &lt;br /&gt;
&lt;br /&gt;
                        Y baies - (indice de la baie/2 +indice de la baie % 2) &lt;br /&gt;
&lt;br /&gt;
**le déplacement jusqu'à B1 (sens de circulation indirect) est de : &lt;br /&gt;
&lt;br /&gt;
                        Y baies + différence entre l'allée A et B donc X baies + indice de la baie/2 +indice de la baie % 2&lt;br /&gt;
**le déplacement jusqu'à C1 (sens de circulation direct) est de : &lt;br /&gt;
                      &lt;br /&gt;
                        Y baies - (indice de la baie/2 +indice de la baie % 2)+différence entre l'allée A et C donc 2*X baies.&lt;br /&gt;
&lt;br /&gt;
*Si on se place à l'entrée de l'Allée B :&lt;br /&gt;
**le déplacement jusqu'à B1 (sens de circulation indirect avec contournement) est de : &lt;br /&gt;
                        &lt;br /&gt;
                        2*X baies + Y baies + 2*X baies + (indice de la baie/2 +indice de la baie % 2)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On peut généraliser l'ensemble de ces situations de déplacement avec l'algorithme suivant :&lt;br /&gt;
&lt;br /&gt;
Pseudo code&lt;br /&gt;
&lt;br /&gt;
  Leplusproche( Allee depart )&lt;br /&gt;
    distance_la_plus_petite = valeurMAX&lt;br /&gt;
      le_plus_proche=&amp;quot;&amp;quot;&lt;br /&gt;
         Pour chaque Allee de Cellule&lt;br /&gt;
           sens=Allee.sens&lt;br /&gt;
           Pour chaque Baie de Allee&lt;br /&gt;
             Pour chaque Rang de Allee&lt;br /&gt;
 	       Pour chaque Emplacement de Rang&lt;br /&gt;
                Si Emplacement estlibre &lt;br /&gt;
                &lt;br /&gt;
                indice_baie = selection_indice_baie(Emplacement.adresse)&lt;br /&gt;
   		 allee_cible = selection_indice_allee(Emplacement.adresse)  &lt;br /&gt;
   		 difference_allee = valeur_absolue(depart -cible) &lt;br /&gt;
                    Si difference_allee==0 et sens.estindirect&lt;br /&gt;
                      //sens indirect +contournement&lt;br /&gt;
                      distance_actuelle=(indice_baie/2)+indice_baie%2+(2*(difference_allee))+4*X+Y			&lt;br /&gt;
                    Sinon	&lt;br /&gt;
                        Si sens estdirect&lt;br /&gt;
                          //sens direct &lt;br /&gt;
                          distance_actuelle=(Y-((indice_baie/2)+indice_baie%2))+2*difference_allee&lt;br /&gt;
                        Sinon&lt;br /&gt;
                          //sens indirect mais pas de contournement&lt;br /&gt;
                          distance_actuelle=((indice_baie/2)+indice_baie%2)+2*difference_allee+Y&lt;br /&gt;
                        Finsi	&lt;br /&gt;
                    Finsi	&lt;br /&gt;
                    Si distance_actuelle &amp;lt; distance_la_plus_petite&lt;br /&gt;
                      le_plus_proche=Emplacement.adresse&lt;br /&gt;
                      distance_la_plus_petite=distance_actuelle&lt;br /&gt;
                    Finsi&lt;br /&gt;
                Finsi  &lt;br /&gt;
            Finpour&lt;br /&gt;
          Finpour&lt;br /&gt;
        Finpour&lt;br /&gt;
      Finpour&lt;br /&gt;
    retourne le_plus_proche&lt;br /&gt;
  Finleplusproche&lt;br /&gt;
&lt;br /&gt;
Cet algorithme nous donne satisfaction (dans le cadre de la V1)&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 10/11 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Programmation et gestion des interactions &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Aprés quelques difficultés vis à vis de la gestion des menus vocaux sur les lunettes qui ne fonctionnent pas de la même manière que les menus classiques sous android, nous avons étoffé les interactions possible avec l'application des google glass. (Nous souhaitions inflater un deuxième menu pour interagir de manière plus contextuelle, il fallait le faire dans la méthode onCreatePanelMenu dont l'appel serait forcé avec getWindow().invalidatePanelMenu(WindowUtils.FEATURE_VOICE_COMMANDS) plutôt que dans onPrepareOptionsMenu forcée par invalidateOptionMenu()...) &lt;br /&gt;
&lt;br /&gt;
schéma d'utilisation...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Proposition projet affichage télévision &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Tele_concept.png|200px|thumb|right]]&lt;br /&gt;
&lt;br /&gt;
Notre tuteur nous a contacté pour nous proposer d'étudier un second projet en parallèle au projet initial. Celui consistant à gérer l'affichage d'information personnalisé d'un magasinier passant à proximité d'un écran de télévision. Nous devons effectuer un Proof Of Concept (POC) et réfléchir à ce sujet.&lt;br /&gt;
L'utilisation du BLE est donc de nouveau d'actualité, car je rappel que sont utilité était discutable dans une réalité métier du projet initial. La question étant plus de savoir comment gérer le système du coté du téléviseur.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Le concept de base étant de :&lt;br /&gt;
* Fournir une beacon aux magasiniers de l'entrepôt.&lt;br /&gt;
* Installer une télévision sur un centre de vie dans l'entrepôt avec une beacon&lt;br /&gt;
* Pousser du contenu personnalisé au magasinier qui se présente devant la tv dans son centre de vie&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 17/11 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Brainstorming à Polytech &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Dans la cadre du POC sur l'affichage personnalisé sur une télévision, nous avons profité d'un exercice de management pour faire participer la classe à notre projet. Grâce à cette intervention nous avons pu confirmer nos idées sur les technologies à utiliser. Mais nous avons surtout eu une multitude de propositions sur les données à afficher sur l'écran.&lt;br /&gt;
&lt;br /&gt;
Pour plus détails, le compte rendu est disponible à ce lien:&lt;br /&gt;
&lt;br /&gt;
'''Compte Rendu Brainstorming 17/11/2014 :''' [[Fichier:Compte_Rendu_POC_17_11.pdf]]&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Entretien avec notre tuteur entreprise &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Durant cet entretien, nous avons livré la première version de l'application et nous avons discuté de la suite du projet.&lt;br /&gt;
Ci joint le Compte Rendu.&lt;br /&gt;
&lt;br /&gt;
'''Compte Rendu  19/11/2014 :''' [[Fichier:Compte_Rendu_19_11.pdf]]&lt;br /&gt;
&lt;br /&gt;
De cette réunion, les points suivants en sont sortis:&lt;br /&gt;
&lt;br /&gt;
*Une reconnaissance vocale en langue française sur les lunettes serait plus intéressante pour les employés (une piste serait d’utiliser l’outil pocketsphinx-  android).&lt;br /&gt;
*Par rapport à l'IHM, il faudrait mettre l’affichage au premier plan sur les Google Glass pour une démo auprés des parties prenantes du projet.&lt;br /&gt;
*Choisir une architecture pour l’affichage d’information personnalisées.&lt;br /&gt;
**La télévision connectée à une raspberry qui communiquerait via un dongle BLE avec le beacon d’un magasinier, ce qui permettrait l’identification de celui-ci prés de la Télévision, et déclencherait un processus d’échange d’information. (Communication via le protocole Bluetooh, wifi entre les lunettes et la Raspberry  ou communication avec la Raspberry avec la Base de Donnée sur le réseau de l’entreprise)&lt;br /&gt;
**Une télévision connectée en continu à un site internet via un dongle HDMI.&lt;br /&gt;
**Une tablette android géante supportant le BLE, ou utilisant un dongle BLE.&lt;br /&gt;
* Réaliser le portage de l’application sur le prototype des lunettes ORA.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 24/11 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Reconnaissance vocale en Français &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Pocket Sphinx Android est une librairie permettant de faire de la reconnaissance vocale d'un langage donné sur un système android en offline.&lt;br /&gt;
Pour supporter une langue, elle nécessite: &lt;br /&gt;
*un modèle acoustique (ensemble d'informations pour le traitement sonore)&lt;br /&gt;
*un dictionnaire associant les mots et leur phonèmes&lt;br /&gt;
*une grammaire, c'est un fichier définissant comment seraient articulé les mots à reconnaître et limitant les possibilités de langage).&lt;br /&gt;
&lt;br /&gt;
La grammaire étant un automate. Voici un exemple de la grammaire menu.gram pour la reconnaissance de la porte de déchargement.&lt;br /&gt;
[[Fichier:Arborescence_pocket_sphinx.png|200px|thumb|right|PocketSphinx dans un projet Android]]&lt;br /&gt;
&lt;br /&gt;
  #JSGF V1.0;&lt;br /&gt;
  grammar menu;&lt;br /&gt;
  &amp;lt;porte&amp;gt; = porte a |&lt;br /&gt;
            porte b |&lt;br /&gt;
            porte c |&lt;br /&gt;
            porte d |&lt;br /&gt;
            porte e |&lt;br /&gt;
            porte f |&lt;br /&gt;
            porte g |&lt;br /&gt;
            porte h |&lt;br /&gt;
            porte i |&lt;br /&gt;
            porte j ;&lt;br /&gt;
  public &amp;lt;porte&amp;gt; = &amp;lt;porte&amp;gt;+;&lt;br /&gt;
&lt;br /&gt;
Un extrait du dictionnaire french_letter.dic associé avec les phonemes&lt;br /&gt;
&lt;br /&gt;
  a aa &amp;lt;-- juste la lettre a et son phoneme &lt;br /&gt;
  autre au tt rr&lt;br /&gt;
  autre(2) au tt rr ee &lt;br /&gt;
  b bb &lt;br /&gt;
  c ss &lt;br /&gt;
  d dd ei d(2) dd ait &lt;br /&gt;
  e eu e(2) eu zz &lt;br /&gt;
  f ai ff &lt;br /&gt;
  g jj ei g(2) gg ai &lt;br /&gt;
  h aa ch  &lt;br /&gt;
  i ii &lt;br /&gt;
  j jj yy j(2) jj ii&lt;br /&gt;
  porte pp oo rr tt&lt;br /&gt;
  porte(2) pp oo rr tt ee&lt;br /&gt;
  portes(2) pp oo rr tt ee&lt;br /&gt;
  portes(3) pp oo rr tt ee zz&lt;br /&gt;
  portes(4) pp oo rr tt zz&lt;br /&gt;
&lt;br /&gt;
Le modèle acoustique que nous avons téléchargé étant inclu dans lium_french_f0&lt;br /&gt;
&lt;br /&gt;
Nous avons testé la reconnaissance vocale sur un téléphone android, les mots sont, dans la majorité des cas, bien reconnus.&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Comparaison architectures projet TV &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Au niveau de l’architecture nous avons établi plusieurs propositions après la réunion avec notre tuteur:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour une Raspberry Pi avec un dongle BLE :&lt;br /&gt;
* Installation OS Linux sur la Raspberry&lt;br /&gt;
* Librairie BlueZ pour l’utilisation du BLE (tests rapides effectués sur Linux avec le Dongle)&lt;br /&gt;
* Interface graphique avec une bibliothèque comme Qt (ou encore SDL…)&lt;br /&gt;
* Prix : Rpi = 26€ (chez RadioSpare), Dongle = 10€, TV = à partir de 358€ pour 117cm, + Connectique vidéo. Total = 394€&lt;br /&gt;
&lt;br /&gt;
Pour un écran ViewSonic VSD231 :&lt;br /&gt;
* Possède une API Bluetooth classic + API BLE&lt;br /&gt;
* Interface graphique Android (View, Layout...)&lt;br /&gt;
* Prix : écran ViewSonic VSD231 = 558 € pour 58 cm (chez ViewSonic).&lt;br /&gt;
&lt;br /&gt;
Récupération d’informations :&lt;br /&gt;
* Si données sur les lunettes : Bluetooth ou Wifi.&lt;br /&gt;
* Si données sur serveur : Ethernet ou Wifi.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Vu les propositions possibles nous pensons que la première proposition permettra une meilleure souplesse dans le développement mais serait un peu plus compliquée. Mais nous la trouvons aussi plus intéressante à faire de plus elle est moins coûteuse et permet d'utiliser un écran plus grand. Le développement sur tablette serait sûrement plus rapide à faire en contrepartie.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 01/12 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Conférence GlassCamp à l'Imaginarium &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
GlassCamp est une association qui essaye de répandre l'utilisation de toute les Smart Glass en général. Elle propose de multiples conférences dans lesquelles ils essayent de montrer au public l’intérêt de développer sur ces appareils. Dans le cadre de notre projet, notre tuteur nous a proposé de participer à cette présentation afin de mieux s’approprier le sujet. La conférence a eu lieu le 4 décembre à l'Imaginarium: une grande partie était plutôt tournée vers la présentation mais nous avons apprîs plusieurs choses intéressantes qui sont décrites dans le compte rendu.&lt;br /&gt;
&lt;br /&gt;
'''Compte Rendu Conférence 04/12/2014 :''' [[Fichier:Compte_Rendu_Conf_GlassCamp.pdf]]&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaines du 08/12 et 15/12 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Reconnaissance vocale en Français &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Nous avons avancé sur la version française de l'application. A la manière du menu vocal des google glass, nous avons utilisé un délimiteur&lt;br /&gt;
&amp;quot;ok lunettes&amp;quot; pour démarrer l'interaction avec l'application, afin que les discussions et bruits ambiants n'interfèrent pas sur l'utilisation de celle-ci.&lt;br /&gt;
Voici le scénario d'utilisation de la nouvelle version de l'application en Français.&lt;br /&gt;
[[Fichier:Schema_fr.png|700px|center]]&lt;br /&gt;
&lt;br /&gt;
Sous pocketsphinx, le délimiteur n'apparait pas dans une grammaire. La grammaire permet de prédestiner l'application à choisir entre deux mots. &lt;br /&gt;
Dans notre application, le moteur de reconnaissance vocale choisi la distance la plus courte, séparant le mot prononcé par l'utilisateur et ceux&lt;br /&gt;
qu'il est possible d'entendre. Ainsi entre &amp;quot;oui&amp;quot; et &amp;quot;non&amp;quot;, l'application choisira forcément l'un des deux, même si l'utilisateur dit &amp;quot;bonjour&amp;quot;&lt;br /&gt;
&lt;br /&gt;
L'avantage du délimiteur est que sa détection repose sur un seuillage entre ce qui est prononcé et ce qui doit être reconnu, nous pouvons régler ce seuil.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 05/01 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Entretien avec notre tuteur &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Durant cet entretien nous avons défini les évolutions du projet.&lt;br /&gt;
&lt;br /&gt;
'''Compte Rendu de l'entretien du 06/01/2015 :''' [[Fichier:Compte_Rendu_4.pdf]]&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 12/01 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; TV connectée &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Nous avons pris en main la détection des beacons (de la marque Estimote fournis par l'entreprise) dans les systèmes android.&lt;br /&gt;
L'adresse MAC et le RSSI sont accessibles, ce sont les seules informations nécessaires que nous avons besoin en ce qui concerne les beacons.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 19/01 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Interfaces_exemple.png|100px|thumb|right]]&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt;Interface TV &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Nous avons développé plusieurs exemples d'interfaces avec les instructions de notre tuteur afin de choisir les meilleurs résultats ensembles. Nous avons défini quelques contraintes pour le design. Elle doit être&lt;br /&gt;
* Simple et intuitive&lt;br /&gt;
* En accord avec les couleurs de l'entreprise&lt;br /&gt;
* Moderne (système de tuile ou autre)&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 26/01 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Entretien avec notre tuteur &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Durant cette entretien nous avons défini plus précisément les objectifs du projet.&lt;br /&gt;
Ci dessous le compte rendu.&lt;br /&gt;
&lt;br /&gt;
'''Compte Rendu de l'entretien du 26/01/2015 :''' [[Fichier:Compte_Rendu_5.pdf]]&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 02/02 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Portage d'une application de SmartPicking sur les Google Glass &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Une application android main libre pour les ORA glasses a été développé pour permettre à l'entreprise, &lt;br /&gt;
d'accélerer les opérations de picking(prélévement à l'article) en entrepôt. Celle-ci était à destination des lunettes ORA de Optinvent.&lt;br /&gt;
Notre tuteur souhaitait donc que nous réalisions le portage de cette application vers les google glass. Le but étant de comparer l'usage de cette application sur deux supports différents entre les lunettes. &lt;br /&gt;
&lt;br /&gt;
*Nous avons procédé à des ajustements au niveau de la gestion des layouts de l'interface, à équilibrer la places qu'occupe certaines informations données par l'application.&lt;br /&gt;
*Cette application communique par bluetooth avec une autre application lancée sur une tablette android, cette dernière permet de réaliser l'appairage avec la smartglass. La tablette étant la seule à être connectée au serveur de l'entreprise (l'AS400) via un réseau sécurisé. Nous avons du appairer manuellement les glass avec la tablette, et retirer dans le code le lancement d'un intent permettant aux lunettes de se rendre visible sur le réseau. Lorsque cet intent est lancé il génère une exception non attendue qui ne concerne que les google glass. Aprés recherches sur le net, il semble que c'est un problème récurrent qui a été signalé mais pas encore résolu.&lt;br /&gt;
&lt;br /&gt;
Ci dessous des screenshot de l'application en question adaptée par nos soins :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Schema_picking.png|800px|center]]&lt;br /&gt;
&lt;br /&gt;
L'écran de gauche, correspond à la phase de prélévement d'un article ici &amp;quot;VE RAINCUT TRUE BLACK SS14&amp;quot; une veste à l'adresse C4FU-10-1-3, il faut en prélever 12, et le tableau à gauche correspond à la façade de l'étagère concernée, il indique grossièrement (case verte) le carton à déballer, en partant du principe que l'utilisateur respecte le sens de circulation de l'entrepôt.&lt;br /&gt;
L'écran de droite, correspond à la phase de dépôt des articles dans le chariot de l'utilisateur, il lui indique dans quel compartiment le placer.&lt;br /&gt;
&lt;br /&gt;
Nous avons participé à une demi-journée de test en production avec le responsable du picking, le responsable innovation, notre tuteur et d'autres parties prenantes du projet. La version sur les google glass a bien rempli son rôle à la manière de la version originale sur les ORA one, les préférences des parties prenantes se sont portés essentiellement sur les avantages qu'offrent les supports.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 09/02 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Connectivité android et TV connectée &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Pour tester la connectivité de l'application sur la tablette géante, dans le cadre de la fonctionnalité de TV connectée, nous voulions une base de donnée accessible depuis n'importe où. L'école met à disposition un site avec nom de domaine, nous avons donc profité de cet outil pour créer une BDD SQL. &lt;br /&gt;
Nous interrogeons cette BDD via un HttpRequest lancé dans l'application android sur une page php qui contient la requête SQL, l'idée est de pousser l'utilisation du matériel, et de prendre en main cet aspect de l'application, même si le système final pourrait reposer plutôt sur un webservice réalisé par l'équipe de développement de l'entreprise.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 16/02 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Interface &amp;lt;/font&amp;gt;===&lt;/div&gt;</summary>
		<author><name>Jgondry</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=P22_Google_Glass_en_logistique&amp;diff=17107</id>
		<title>P22 Google Glass en logistique</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=P22_Google_Glass_en_logistique&amp;diff=17107"/>
				<updated>2015-02-18T08:31:08Z</updated>
		
		<summary type="html">&lt;p&gt;Jgondry : /*  Connectivité android et TV connectée  */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Introduction =&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Description du sujet &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
Notre projet vise à l’optimisation du stockage et de l’adressage des palettes dans un entrepôt. En effet, lors du déchargement d’un camion, chercher un emplacement libre pour les palettes dans un entrepôt occupant une grande superficie fait perdre du temps et donc de la productivité dans le stockage. Sachant qu’un cariste perd un temps non négligeable à la recherche d’emplacement disponible, optimiser ce temps de recherche permettrait de gagner du temps sur cette opération.&lt;br /&gt;
Développer un prototype permettrait de rendre compte des moyens existants qui pourrait être mis en place dans une solution métier.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Analyse du sujet &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Google_glass.png|200px|thumb|right|Paire de Google Glass]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Optinvent_ora.png|200px|thumb|right|Paire de ORA d'Optivent]]&lt;br /&gt;
&lt;br /&gt;
Notre projet consiste à fluidifier le déchargement en indiquant au cariste l’emplacement libre le plus proche. Pour ne pas gêner le travail des employés, un dispositif main-libre comme une Google Glass semble adapté. Ce projet soulève plusieurs problématiques : développer une interface homme-machine apportant une information pertinente pour l’utilisateur sans pour autant être perturbante. &lt;br /&gt;
&lt;br /&gt;
L’idée serait de réaliser dans les grandes lignes un système similaire à ce scénario d’utilisation :&lt;br /&gt;
http://n.mynews.ly/!lB.Bs4fw&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Moyen d’affichage de l’Informations pertinentes'''&lt;br /&gt;
&lt;br /&gt;
Les Google Glass ne sont pas les seules smart glasses sur le marché. Il nous faudra choisir les appareils les plus adaptés. L’information pertinente pourrait être une direction à suivre dans l’entrepôt ou simplement un numéro d’emplacement (adressage intuitif de l’entrepôt). &lt;br /&gt;
&lt;br /&gt;
'''Géolocalisation'''&lt;br /&gt;
&lt;br /&gt;
Dans le cas d’une direction à suivre se pose le problème de la géolocalisation indoor dont l’utilité et la faisabilité seront discutés au fil des réunions avec l’entreprise. &lt;br /&gt;
&lt;br /&gt;
'''Adressage / flashage'''&lt;br /&gt;
&lt;br /&gt;
En ce qui concerne l’adressage des palettes en entrepôt, la solution existante repose sur un flashage des codes barres associés à l’emplacement venant d’être occupé. Une étude de faisabilité/utilité sera aussi faite sur une solution de remplacement grâce aux possibilités qu’offrent les smart glasses.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Cahier des charges &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
En partant de l'analyse du sujet et des discussion avec notre tuteur, nous avons définie un cahier des charges plus précis des tâches à accomplir:&lt;br /&gt;
&lt;br /&gt;
* '''Développer un système embarqué sur une paire de lunette Smart Glass'''&lt;br /&gt;
** Comparer les différentes offres en matière de Smart Glass notamment Google Glass &amp;amp; ORA de Optinvent&lt;br /&gt;
** Concevoir une interface homme-machine non perturbante pour l'utilisateur.&lt;br /&gt;
* '''Etudier la nécessité d'utiliser une géolocalisation en entrepôt et l'implémenter si besoin'''&lt;br /&gt;
** Via RSSI (Wifi, Bluetooh Low Energy ...)&lt;br /&gt;
** Via traitement d'images (reconnaissance de la signalétique en entrepôt)&lt;br /&gt;
* '''Etudier les possibilités d'optimisation du système d'adressage des palettes'''&lt;br /&gt;
** Implémenter la reconnaissance de code barre&lt;br /&gt;
** La tester en réalité métier (utilité ajoutée, habitude des magasiniers, vitesse de traitement...)&lt;br /&gt;
&lt;br /&gt;
Le cahier des charges est encore en cours de construction&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Matériel utilisé &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; SmartGlass &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Lors de la réunion nous avons discuté des technologies à utiliser dans le projet, et plus particulièrement des différentes SmartGlass. En effet, il existe une multitude de sociétés qui développe ce genre de lunettes. Nous commencerons à utiliser les Google Glass étant donné que notre tuteur en a déjà commandé puis nous développerons sur les lunettes ORA de Optivent qui seront livrées fin octobre. Nous devrons donc faire un comparatif entre ces deux SmartGlass puis étudier les autres appareils disponibles sur le marché.&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Localisation &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
L'utilisation de la géolocalisation dans le projet est à débattre. Mais des tests seront probablement mis en place. L'entreprise possède quelque iBeacons BLE Estimote dans ses bureaux d'innovations que nous pourrons emprunter.&lt;br /&gt;
Dans le cas où leur gain d'informations serait utile il nous faudra comparer les modèles disponibles. Choisir un nombre de module et des emplacements stratégiques dans l'entrepôt afin d'avoir une localisation assez précise pour l'application.&lt;br /&gt;
&lt;br /&gt;
L'utilisation d'autres technologies de géolocalisation a été discuté comme le Wifi ou le XBee mais le BLE semblait le plus adapté dans le cadre de notre projet.&lt;br /&gt;
&lt;br /&gt;
= Déroulement du projet =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 22/09 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Réunion avec le tuteur entreprise dans l’entrepôt &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Nous avons observé en situation le problème et discuté des besoins, des moyens déjà utilisables. Il nous faudra prendre en compte plusieurs paramètres dans notre réflexion tels que le système de stockage et d'adressages des palettes, sens de circulation des caristes, superficie des zones à desservir, durée de livraison.&lt;br /&gt;
Nous avons suggéré des étapes de validation intermédiaire du système par les futurs utilisateurs et pour cela nous rencontrerons le chef d'équipe des magasiniers lorsque qu'une version sera assez développée.&lt;br /&gt;
&lt;br /&gt;
Nous avons défini avec le tuteur les premières deadlines du projet, voici la timeline récapitulative:&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Timeline_1.jpg||center|1000px]]&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Compte Rendu &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Nous avons rédigé un compte rendu de la première réunion détaillant les spécifications des versions des livrables, des schémas et les sujets abordés lors de la rencontre :&lt;br /&gt;
&lt;br /&gt;
'''Compte Rendu réunion du 25/09/2014 :''' [[Fichier:Compte_Rendu_25_09.pdf]]&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 29/09 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Découverte des Google Glass &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
*Prise en main des Google Glass. &lt;br /&gt;
*Installation d'applications (.apk) grand public. Nous avons utilisé l'outil Android Debug Bridge(adb). Se mettre à la place d'un utilisateur.&lt;br /&gt;
*L'une des deux lunettes qui serait retenue imposera forcément le développement d'une application android (ou d'une technologie trés proche d'android, pour les Google Glass, se basant sur le Glass Development Kit qui est un add-on au SDK classique d'android). Nous avons donc téléchargé les packages nécessaires pour commencer à développer. &lt;br /&gt;
** Nous commençons à nous former sur les technologies android :développement d'applications minimaliste.&lt;br /&gt;
** Installation de nos premières apk minimalistes pour Android.&lt;br /&gt;
** Installation d'une application minimaliste sur la Google Glass.&lt;br /&gt;
&lt;br /&gt;
Voici un comparatif réalisé entre les lunettes ORA et les Google Glass.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Différences Google Glass/ORA &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!   !! Google Glass !! ORA &lt;br /&gt;
|-&lt;br /&gt;
|Connectique&lt;br /&gt;
|Compatible BLE (à partir de la XE 16 KitKat Update), Wifi &lt;br /&gt;
|Compatible BLE, Wifi&lt;br /&gt;
|-&lt;br /&gt;
|Autonomie en utilisation normale&lt;br /&gt;
|de 1h à 2h &lt;br /&gt;
|de 4h à 8h&lt;br /&gt;
|-&lt;br /&gt;
|Son&lt;br /&gt;
|Conductivité Cranienne&lt;br /&gt;
|Prise jack&lt;br /&gt;
|-&lt;br /&gt;
|Interface&lt;br /&gt;
|Ecran occupant une faible superficie dans le champ de vision &lt;br /&gt;
|Ecran 2 positions (moyennes et basses), plus étendu permettant une réalité augmentée &lt;br /&gt;
|-&lt;br /&gt;
|Système d'exploitation&lt;br /&gt;
|Android 4.4&lt;br /&gt;
|Android 4.2.2&lt;br /&gt;
|-&lt;br /&gt;
|Calculs&lt;br /&gt;
|CPU &amp;amp; GPU&lt;br /&gt;
|CPU &amp;amp; GPU&lt;br /&gt;
|-&lt;br /&gt;
|Prix&lt;br /&gt;
|1500$ &lt;br /&gt;
|949$&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 06/10 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Deuxième rendez-vous avec le tuteur entreprise &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Nous avons fait part de notre avancée en matière de prise en main et des problèmes rencontrés en matière de développement.&lt;br /&gt;
Les lunettes ORA sont commandées elles arrivent d'ici la fin octobre.&lt;br /&gt;
&lt;br /&gt;
La première version V1 de l'application pour Google Glass à livrer pour la mi-novembre est fixée.&lt;br /&gt;
&lt;br /&gt;
En partant d'une position connue (en dur dans l'application) dans l'entrepôt, elle indiquera à un utilisateur les emplacements libres les plus proches.&lt;br /&gt;
&lt;br /&gt;
L'état d'occupation des emplacements sera consulté et stocké dans l'application. Il n'y aura donc pas de gestion des conflits. Le sens de circulation dans l'entrepôt sera pris en compte.&lt;br /&gt;
Une communication avec la base de donnée de l'entrepôt n'est pour le moment pas d'actualité, cela nécessiterait des développements en amont.&lt;br /&gt;
La géolocalisation n'est pas au goût du jour non plus. L'adressage des emplacements dans l'entrepôt est intuitif, il est donc facile pour un magasinier de &lt;br /&gt;
se rendre à un emplacement en connaissant l'adresse.&lt;br /&gt;
&lt;br /&gt;
Pour l'IHM, nous nous inspirerons des applications pour Google Glass (les Glasswares) de type GPS.&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Premiers programmes sur Google Glass &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Pour nous familiariser avec la programmation sur ce genre d'appareil nous avons tous deux décidé de suivre en premier le tutoriel Android d'un site spécialisé. Cela afin de mieux comprendre le système Android, avec les concepts d'activités, de view etc.&lt;br /&gt;
Dans un deuxième temps nous avons choisi de suivre plusieurs tutoriels nous expliquant la prise en main basique des lunettes afin de saisir les particularités de leur programmation.&lt;br /&gt;
&lt;br /&gt;
Le plus dur étant finalement de comprendre les liens entre tous les fichiers du projets, les problèmes de drivers et d'upload simple que nous avons rencontrés et l’exécution du programme sur les lunettes. Des choses que nous arrivons maintenant à maitriser mais qui était floues à l'origine.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 13/10 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Programmation et gestion des interactions &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Durant cette semaine nous avons commencé a vraiment toucher aux fonctionnalités des Glass. Pour rester en main libre, nous avons fait des recherches et commencé à programmer de la reconnaissance vocale. Nous avons ainsi crée un système de navigation basique par commande vocale dans différents menus. Pour un accès rapide à l'application et toujours dans la même optique nous avons réussi à inclure le lancement de notre logiciel à partir du &amp;quot;Ok Glass&amp;quot; menu qui est le menu de lancement d'application par commande vocale des Google Glass. Voici un aperçu du résultat:&lt;br /&gt;
[[Fichier:V0_menu.png|1000px|center]]&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Analyse et évaluation du rendu &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Le début de la prise en main des fonctionnalités des Google Glass n'a pas été facile étant donné que la plupart des fonctionnalités sont propres à ce genre d'appareil. De plus elles nécessitent des techniques spéciales de programmation qui ne sont pas toujours très utilisées donc il est parfois difficile de trouver des exemples sur internet.&lt;br /&gt;
Néanmoins après l'implémentation de ces fonctionnalités nous avons pu rencontrer quelques difficultés de reconnaissance. En effet, les Google Glass possèdent un dictionnaire de mots/phrases pour la reconnaissance vocale mais elles nous permettent aussi d'écrire n'importe quelle phrase dans le mode développeur. Les phrases du dictionnaires ne posent aucun problème mais les phrases que nous écrivons sont parfois dures à reconnaitre. La reconnaissance de lettre seule ou de certains numéros est par exemple quasi impossible ou très aléatoire.&lt;br /&gt;
Le système de vu est quant à lui plutôt facile à prendre en main et intuitif dans l'utilisation.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 20/10 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Premiere structure de donnée &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Nous avons opté pour une structure de donnée récursive. Une Cellule, contenant des Allées, qui contiennent des Baies, contenant des Rangées, contenant des Emplacements.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Structure_export_resized.png|750px|center]]&lt;br /&gt;
Nous avons conçu cette structure de donnée pour qu'elle génère, dans un premier temps &amp;quot;en dur&amp;quot;, une cellule contenant des emplacements automatiquement adressés à la manière de ceux présent dans l'entrepôt. Ces adresses sont de la forme &amp;quot;D61A514&amp;quot; traduisez &amp;quot; Cellule 6 Allée 1A Baie 5 Rang 1 Niveau 4&amp;quot;.&lt;br /&gt;
Cette structure prend on compte le sens de circulation dans l'entrepôt.&lt;br /&gt;
Lors de futures interactions avec une base de donnée, cette structure serait sujette à évolution par une modification des méthodes de génération/modification du statut des adresses en fonction de cette base de donnée. Mais celle-ci constitue essentiellement une base pour appréhender plus pratiquement les problématiques de recherches de l'emplacement le plus proche.&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Prise en main de l'interface &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Nous avons déjà abordé les layouts java en TP donc il a été assez facile de commencer à faire des interfaces graphiques simples. Nous avons construit une interface graphique simple pour de faire une démonstration du programme aux tuteurs entreprise afin qu'ils comprennent bien le fonctionnement de notre algorithme.&lt;br /&gt;
L'interface graphique finale du programme sera très sobre afin de ne pas donner trop gêner le magasinier dans sa tâche.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 27/10 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Chemin optimal : Parcours intelligent Vs Sélection intelligente &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Un premier algorithme de recherche de l'emplacement le plus proche a été développé, celui-ci ne prend en compte qu'un seul scénario. &lt;br /&gt;
Celui de la position de départ (quai de déchargement où reviendra constamment le magasinier aprés chaque livraison) correspondante à la première allée de l'entrepôt, et en prenant en compte le sens de circulation. &lt;br /&gt;
A partir de ce moment, nous avons dégager deux grandes manières d'appréhender le problème.&lt;br /&gt;
&lt;br /&gt;
* Un parcours intelligent de la structure de donnée. C'est à dire parcourir les emplacements les plus proches, et choisir le premier emplacement libre. Une solution complexe à réaliser sur le plan algorithmique. En tenant compte du sens de circulation, il apparait que l'emplacement libre &amp;quot;leplusproche&amp;quot; (à vol d'oiseau) trouvé le plus tôt, ne correspondrait pas forcément à l'emplacement le plus proche compte tenu du chemin emprunté par un magasinier. Et c'est plutôt l'intérêt de cette algorithme.(Sauf dans l'unique cas où l'emplacement libre se trouve directement dans l'allée faisant face à la position de départ du magasinier, et le sens de circulation lui permet directement de se rendre à l'emplacement sans détour).&lt;br /&gt;
&lt;br /&gt;
* Une sélection intelligente parmi les emplacements libres. Leurs adresses renseignent à quelles allées, les emplacements libres appartiennent, donc renseignent sur le sens de circulation. A partir de la position de départ du magasinier et de l'ensemble des emplacements libres, on peut calculer la distance nécessaire à celui-ci pour les atteindre. Pour ainsi choisir l'adresse pour laquelle la distance est minimale.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 3/11 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Chemin optimal : sélection intelligente des adresses &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Nous avons écrit une premiere méthode de détermination. &lt;br /&gt;
On choisit l'emplacement, parmi tous ceux qui sont libres, pour lequel la distance de parcours est minimale entre le départ et celui-ci. &lt;br /&gt;
Ici l'unité de distance est la baie. La simplicité de l'algorithme réside dans le fait que le magasinier ne transporte qu'une seule caisse à la fois et repars toujours au même point de départ.&lt;br /&gt;
&lt;br /&gt;
Ci dessous un plan de l'entrepôt.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:schema_entrepot.png|750px|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Si on se place à l'entrée de l'Allée A :&lt;br /&gt;
&lt;br /&gt;
**le déplacement jusqu'à A4 (sens de circulation direct) est de : &lt;br /&gt;
&lt;br /&gt;
                        Y baies - (indice de la baie/2 +indice de la baie % 2) &lt;br /&gt;
&lt;br /&gt;
**le déplacement jusqu'à B1 (sens de circulation indirect) est de : &lt;br /&gt;
&lt;br /&gt;
                        Y baies + différence entre l'allée A et B donc X baies + indice de la baie/2 +indice de la baie % 2&lt;br /&gt;
**le déplacement jusqu'à C1 (sens de circulation direct) est de : &lt;br /&gt;
                      &lt;br /&gt;
                        Y baies - (indice de la baie/2 +indice de la baie % 2)+différence entre l'allée A et C donc 2*X baies.&lt;br /&gt;
&lt;br /&gt;
*Si on se place à l'entrée de l'Allée B :&lt;br /&gt;
**le déplacement jusqu'à B1 (sens de circulation indirect avec contournement) est de : &lt;br /&gt;
                        &lt;br /&gt;
                        2*X baies + Y baies + 2*X baies + (indice de la baie/2 +indice de la baie % 2)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On peut généraliser l'ensemble de ces situations de déplacement avec l'algorithme suivant :&lt;br /&gt;
&lt;br /&gt;
Pseudo code&lt;br /&gt;
&lt;br /&gt;
  Leplusproche( Allee depart )&lt;br /&gt;
    distance_la_plus_petite = valeurMAX&lt;br /&gt;
      le_plus_proche=&amp;quot;&amp;quot;&lt;br /&gt;
         Pour chaque Allee de Cellule&lt;br /&gt;
           sens=Allee.sens&lt;br /&gt;
           Pour chaque Baie de Allee&lt;br /&gt;
             Pour chaque Rang de Allee&lt;br /&gt;
 	       Pour chaque Emplacement de Rang&lt;br /&gt;
                Si Emplacement estlibre &lt;br /&gt;
                &lt;br /&gt;
                indice_baie = selection_indice_baie(Emplacement.adresse)&lt;br /&gt;
   		 allee_cible = selection_indice_allee(Emplacement.adresse)  &lt;br /&gt;
   		 difference_allee = valeur_absolue(depart -cible) &lt;br /&gt;
                    Si difference_allee==0 et sens.estindirect&lt;br /&gt;
                      //sens indirect +contournement&lt;br /&gt;
                      distance_actuelle=(indice_baie/2)+indice_baie%2+(2*(difference_allee))+4*X+Y			&lt;br /&gt;
                    Sinon	&lt;br /&gt;
                        Si sens estdirect&lt;br /&gt;
                          //sens direct &lt;br /&gt;
                          distance_actuelle=(Y-((indice_baie/2)+indice_baie%2))+2*difference_allee&lt;br /&gt;
                        Sinon&lt;br /&gt;
                          //sens indirect mais pas de contournement&lt;br /&gt;
                          distance_actuelle=((indice_baie/2)+indice_baie%2)+2*difference_allee+Y&lt;br /&gt;
                        Finsi	&lt;br /&gt;
                    Finsi	&lt;br /&gt;
                    Si distance_actuelle &amp;lt; distance_la_plus_petite&lt;br /&gt;
                      le_plus_proche=Emplacement.adresse&lt;br /&gt;
                      distance_la_plus_petite=distance_actuelle&lt;br /&gt;
                    Finsi&lt;br /&gt;
                Finsi  &lt;br /&gt;
            Finpour&lt;br /&gt;
          Finpour&lt;br /&gt;
        Finpour&lt;br /&gt;
      Finpour&lt;br /&gt;
    retourne le_plus_proche&lt;br /&gt;
  Finleplusproche&lt;br /&gt;
&lt;br /&gt;
Cet algorithme nous donne satisfaction (dans le cadre de la V1)&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 10/11 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Programmation et gestion des interactions &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Aprés quelques difficultés vis à vis de la gestion des menus vocaux sur les lunettes qui ne fonctionnent pas de la même manière que les menus classiques sous android, nous avons étoffé les interactions possible avec l'application des google glass. (Nous souhaitions inflater un deuxième menu pour interagir de manière plus contextuelle, il fallait le faire dans la méthode onCreatePanelMenu dont l'appel serait forcé avec getWindow().invalidatePanelMenu(WindowUtils.FEATURE_VOICE_COMMANDS) plutôt que dans onPrepareOptionsMenu forcée par invalidateOptionMenu()...) &lt;br /&gt;
&lt;br /&gt;
schéma d'utilisation...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Proposition projet affichage télévision &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Tele_concept.png|200px|thumb|right]]&lt;br /&gt;
&lt;br /&gt;
Notre tuteur nous a contacté pour nous proposer d'étudier un second projet en parallèle au projet initial. Celui consistant à gérer l'affichage d'information personnalisé d'un magasinier passant à proximité d'un écran de télévision. Nous devons effectuer un Proof Of Concept (POC) et réfléchir à ce sujet.&lt;br /&gt;
L'utilisation du BLE est donc de nouveau d'actualité, car je rappel que sont utilité était discutable dans une réalité métier du projet initial. La question étant plus de savoir comment gérer le système du coté du téléviseur.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Le concept de base étant de :&lt;br /&gt;
* Fournir une beacon aux magasiniers de l'entrepôt.&lt;br /&gt;
* Installer une télévision sur un centre de vie dans l'entrepôt avec une beacon&lt;br /&gt;
* Pousser du contenu personnalisé au magasinier qui se présente devant la tv dans son centre de vie&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 17/11 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Brainstorming à Polytech &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Dans la cadre du POC sur l'affichage personnalisé sur une télévision, nous avons profité d'un exercice de management pour faire participer la classe à notre projet. Grâce à cette intervention nous avons pu confirmer nos idées sur les technologies à utiliser. Mais nous avons surtout eu une multitude de propositions sur les données à afficher sur l'écran.&lt;br /&gt;
&lt;br /&gt;
Pour plus détails, le compte rendu est disponible à ce lien:&lt;br /&gt;
&lt;br /&gt;
'''Compte Rendu Brainstorming 17/11/2014 :''' [[Fichier:Compte_Rendu_POC_17_11.pdf]]&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Entretien avec notre tuteur entreprise &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Durant cet entretien, nous avons livré la première version de l'application et nous avons discuté de la suite du projet.&lt;br /&gt;
Ci joint le Compte Rendu.&lt;br /&gt;
&lt;br /&gt;
'''Compte Rendu  19/11/2014 :''' [[Fichier:Compte_Rendu_19_11.pdf]]&lt;br /&gt;
&lt;br /&gt;
De cette réunion, les points suivants en sont sortis:&lt;br /&gt;
&lt;br /&gt;
*Une reconnaissance vocale en langue française sur les lunettes serait plus intéressante pour les employés (une piste serait d’utiliser l’outil pocketsphinx-  android).&lt;br /&gt;
*Par rapport à l'IHM, il faudrait mettre l’affichage au premier plan sur les Google Glass pour une démo auprés des parties prenantes du projet.&lt;br /&gt;
*Choisir une architecture pour l’affichage d’information personnalisées.&lt;br /&gt;
**La télévision connectée à une raspberry qui communiquerait via un dongle BLE avec le beacon d’un magasinier, ce qui permettrait l’identification de celui-ci prés de la Télévision, et déclencherait un processus d’échange d’information. (Communication via le protocole Bluetooh, wifi entre les lunettes et la Raspberry  ou communication avec la Raspberry avec la Base de Donnée sur le réseau de l’entreprise)&lt;br /&gt;
**Une télévision connectée en continu à un site internet via un dongle HDMI.&lt;br /&gt;
**Une tablette android géante supportant le BLE, ou utilisant un dongle BLE.&lt;br /&gt;
* Réaliser le portage de l’application sur le prototype des lunettes ORA.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 24/11 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Reconnaissance vocale en Français &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Pocket Sphinx Android est une librairie permettant de faire de la reconnaissance vocale d'un langage donné sur un système android en offline.&lt;br /&gt;
Pour supporter une langue, elle nécessite: &lt;br /&gt;
*un modèle acoustique (ensemble d'informations pour le traitement sonore)&lt;br /&gt;
*un dictionnaire associant les mots et leur phonèmes&lt;br /&gt;
*une grammaire, c'est un fichier définissant comment seraient articulé les mots à reconnaître et limitant les possibilités de langage).&lt;br /&gt;
&lt;br /&gt;
La grammaire étant un automate. Voici un exemple de la grammaire menu.gram pour la reconnaissance de la porte de déchargement.&lt;br /&gt;
[[Fichier:Arborescence_pocket_sphinx.png|200px|thumb|right|PocketSphinx dans un projet Android]]&lt;br /&gt;
&lt;br /&gt;
  #JSGF V1.0;&lt;br /&gt;
  grammar menu;&lt;br /&gt;
  &amp;lt;porte&amp;gt; = porte a |&lt;br /&gt;
            porte b |&lt;br /&gt;
            porte c |&lt;br /&gt;
            porte d |&lt;br /&gt;
            porte e |&lt;br /&gt;
            porte f |&lt;br /&gt;
            porte g |&lt;br /&gt;
            porte h |&lt;br /&gt;
            porte i |&lt;br /&gt;
            porte j ;&lt;br /&gt;
  public &amp;lt;porte&amp;gt; = &amp;lt;porte&amp;gt;+;&lt;br /&gt;
&lt;br /&gt;
Un extrait du dictionnaire french_letter.dic associé avec les phonemes&lt;br /&gt;
&lt;br /&gt;
  a aa &amp;lt;-- juste la lettre a et son phoneme &lt;br /&gt;
  autre au tt rr&lt;br /&gt;
  autre(2) au tt rr ee &lt;br /&gt;
  b bb &lt;br /&gt;
  c ss &lt;br /&gt;
  d dd ei d(2) dd ait &lt;br /&gt;
  e eu e(2) eu zz &lt;br /&gt;
  f ai ff &lt;br /&gt;
  g jj ei g(2) gg ai &lt;br /&gt;
  h aa ch  &lt;br /&gt;
  i ii &lt;br /&gt;
  j jj yy j(2) jj ii&lt;br /&gt;
  porte pp oo rr tt&lt;br /&gt;
  porte(2) pp oo rr tt ee&lt;br /&gt;
  portes(2) pp oo rr tt ee&lt;br /&gt;
  portes(3) pp oo rr tt ee zz&lt;br /&gt;
  portes(4) pp oo rr tt zz&lt;br /&gt;
&lt;br /&gt;
Le modèle acoustique que nous avons téléchargé étant inclu dans lium_french_f0&lt;br /&gt;
&lt;br /&gt;
Nous avons testé la reconnaissance vocale sur un téléphone android, les mots sont, dans la majorité des cas, bien reconnus.&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Comparaison architectures projet TV &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Au niveau de l’architecture nous avons établi plusieurs propositions après la réunion avec notre tuteur:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour une Raspberry Pi avec un dongle BLE :&lt;br /&gt;
* Installation OS Linux sur la Raspberry&lt;br /&gt;
* Librairie BlueZ pour l’utilisation du BLE (tests rapides effectués sur Linux avec le Dongle)&lt;br /&gt;
* Interface graphique avec une bibliothèque comme Qt (ou encore SDL…)&lt;br /&gt;
* Prix : Rpi = 26€ (chez RadioSpare), Dongle = 10€, TV = à partir de 358€ pour 117cm, + Connectique vidéo. Total = 394€&lt;br /&gt;
&lt;br /&gt;
Pour un écran ViewSonic VSD231 :&lt;br /&gt;
* Possède une API Bluetooth classic + API BLE&lt;br /&gt;
* Interface graphique Android (View, Layout...)&lt;br /&gt;
* Prix : écran ViewSonic VSD231 = 558 € pour 58 cm (chez ViewSonic).&lt;br /&gt;
&lt;br /&gt;
Récupération d’informations :&lt;br /&gt;
* Si données sur les lunettes : Bluetooth ou Wifi.&lt;br /&gt;
* Si données sur serveur : Ethernet ou Wifi.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Vu les propositions possibles nous pensons que la première proposition permettra une meilleure souplesse dans le développement mais serait un peu plus compliquée. Mais nous la trouvons aussi plus intéressante à faire de plus elle est moins coûteuse et permet d'utiliser un écran plus grand. Le développement sur tablette serait sûrement plus rapide à faire en contrepartie.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 01/12 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Conférence GlassCamp à l'Imaginarium &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
GlassCamp est une association qui essaye de répandre l'utilisation de toute les Smart Glass en général. Elle propose de multiples conférences dans lesquelles ils essayent de montrer au public l’intérêt de développer sur ces appareils. Dans le cadre de notre projet, notre tuteur nous a proposé de participer à cette présentation afin de mieux s’approprier le sujet. La conférence a eu lieu le 4 décembre à l'Imaginarium: une grande partie était plutôt tournée vers la présentation mais nous avons apprîs plusieurs choses intéressantes qui sont décrites dans le compte rendu.&lt;br /&gt;
&lt;br /&gt;
'''Compte Rendu Conférence 04/12/2014 :''' [[Fichier:Compte_Rendu_Conf_GlassCamp.pdf]]&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaines du 08/12 et 15/12 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Reconnaissance vocale en Français &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Nous avons avancé sur la version française de l'application. A la manière du menu vocal des google glass, nous avons utilisé un délimiteur&lt;br /&gt;
&amp;quot;ok lunettes&amp;quot; pour démarrer l'interaction avec l'application, afin que les discussions et bruits ambiants n'interfèrent pas sur l'utilisation de celle-ci.&lt;br /&gt;
Voici le scénario d'utilisation de la nouvelle version de l'application en Français.&lt;br /&gt;
[[Fichier:Schema_fr.png|700px|center]]&lt;br /&gt;
&lt;br /&gt;
Sous pocketsphinx, le délimiteur n'apparait pas dans une grammaire. La grammaire permet de prédestiner l'application à choisir entre deux mots. &lt;br /&gt;
Dans notre application, le moteur de reconnaissance vocale choisi la distance la plus courte, séparant le mot prononcé par l'utilisateur et ceux&lt;br /&gt;
qu'il est possible d'entendre. Ainsi entre &amp;quot;oui&amp;quot; et &amp;quot;non&amp;quot;, l'application choisira forcément l'un des deux, même si l'utilisateur dit &amp;quot;bonjour&amp;quot;&lt;br /&gt;
&lt;br /&gt;
L'avantage du délimiteur est que sa détection repose sur un seuillage entre ce qui est prononcé et ce qui doit être reconnu, nous pouvons régler ce seuil.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 05/01 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Entretien avec notre tuteur &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Durant cet entretien nous avons défini les évolutions du projet.&lt;br /&gt;
&lt;br /&gt;
'''Compte Rendu de l'entretien du 06/01/2015 :''' [[Fichier:Compte_Rendu_4.pdf]]&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 12/01 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; TV connectée &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Nous avons pris en main la détection des beacons (de la marque Estimote fournis par l'entreprise) dans les systèmes android.&lt;br /&gt;
L'adresse MAC et le RSSI sont accessibles, ce sont les seules informations nécessaires que nous avons besoin en ce qui concerne les beacons.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 19/01 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Interfaces_exemple.png|100px|thumb|right]]&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt;Interface TV &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Nous avons développé plusieurs exemples d'interfaces avec les instructions de notre tuteur afin de choisir les meilleurs résultats ensembles. Nous avons défini quelques contraintes pour le design. Elle doit être&lt;br /&gt;
* Simple et intuitive&lt;br /&gt;
* En accord avec les couleurs de l'entreprise&lt;br /&gt;
* Moderne (système de tuile ou autre)&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 26/01 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Entretien avec notre tuteur &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Durant cette entretien nous avons défini plus précisément les objectifs du projet.&lt;br /&gt;
Ci dessous le compte rendu.&lt;br /&gt;
&lt;br /&gt;
'''Compte Rendu de l'entretien du 26/01/2015 :''' [[Fichier:Compte_Rendu_5.pdf]]&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 02/02 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Portage d'une application de SmartPicking sur les Google Glass &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Une application android main libre pour les ORA glasses a été développé pour permettre à l'entreprise, &lt;br /&gt;
d'accélerer les opérations de picking(prélévement à l'article) en entrepôt. Celle-ci était à destination des lunettes ORA de Optinvent.&lt;br /&gt;
Notre tuteur souhaitait donc que nous réalisions le portage de cette application vers les google glass. Le but étant de comparer l'usage de cette application sur deux supports différents entre les lunettes. &lt;br /&gt;
&lt;br /&gt;
*Nous avons procédé à des ajustements au niveau de la gestion des layouts de l'interface, à équilibrer la places qu'occupe certaines informations données par l'application.&lt;br /&gt;
*Cette application communique par bluetooth avec une autre application lancée sur une tablette android, cette dernière permet de réaliser l'appairage avec la smartglass. La tablette étant la seule à être connectée au serveur de l'entreprise (l'AS400) via un réseau sécurisé. Nous avons du appairer manuellement les glass avec la tablette, et retirer dans le code le lancement d'un intent permettant aux lunettes de se rendre visible sur le réseau. Lorsque cet intent est lancé il génère une exception non attendue qui ne concerne que les google glass. Aprés recherches sur le net, il semble que c'est un problème récurrent qui a été signalé mais pas encore résolu.&lt;br /&gt;
&lt;br /&gt;
Ci dessous des screenshot de l'application en question adaptée par nos soins :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Schema_picking.png|800px|center]]&lt;br /&gt;
&lt;br /&gt;
L'écran de gauche, correspond à la phase de prélévement d'un article ici &amp;quot;VE RAINCUT TRUE BLACK SS14&amp;quot; une veste à l'adresse C4FU-10-1-3, il faut en prélever 12, et le tableau à gauche correspond à la façade de l'étagère concernée, il indique grossièrement (case verte) le carton à déballer, en partant du principe que l'utilisateur respecte le sens de circulation de l'entrepôt.&lt;br /&gt;
L'écran de droite, correspond à la phase de dépôt des articles dans le chariot de l'utilisateur, il lui indique dans quel compartiment le placer.&lt;br /&gt;
&lt;br /&gt;
Nous avons participé à une demi-journée de test en production avec le responsable du picking, le responsable innovation, notre tuteur et d'autres parties prenantes du projet. La version sur les google glass a bien rempli son rôle à la manière de la version originale sur les ORA one, les préférences des parties prenantes se sont portés essentiellement sur les avantages qu'offrent les supports.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 09/02 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Connectivité android et TV connectée &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Pour tester la connectivité de l'application sur la tablette géante, dans le cadre de la fonctionnalité de TV connectée, nous voulions une base de donnée accessible depuis n'importe où. L'Ecole met à disposition un site avec nom de domaine, nous avons donc profité de cet outil pour créer une BDD SQL. &lt;br /&gt;
Nous interrogeons cette BDD via un HttpRequest lancé dans l'application android sur une page php qui contient la requête SQL, l'idée est de pousser l'utilisation du matériel, et de prendre en main cet aspect de l'application, même si le système final pourrait reposer plutôt sur un webservice réaliser par l'équipe de développement de l'entreprise.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 16/02 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Interface &amp;lt;/font&amp;gt;===&lt;/div&gt;</summary>
		<author><name>Jgondry</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=P22_Google_Glass_en_logistique&amp;diff=17106</id>
		<title>P22 Google Glass en logistique</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=P22_Google_Glass_en_logistique&amp;diff=17106"/>
				<updated>2015-02-18T08:26:52Z</updated>
		
		<summary type="html">&lt;p&gt;Jgondry : /*  Portage d'une application de SmartPicking sur les Google Glass  */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Introduction =&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Description du sujet &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
Notre projet vise à l’optimisation du stockage et de l’adressage des palettes dans un entrepôt. En effet, lors du déchargement d’un camion, chercher un emplacement libre pour les palettes dans un entrepôt occupant une grande superficie fait perdre du temps et donc de la productivité dans le stockage. Sachant qu’un cariste perd un temps non négligeable à la recherche d’emplacement disponible, optimiser ce temps de recherche permettrait de gagner du temps sur cette opération.&lt;br /&gt;
Développer un prototype permettrait de rendre compte des moyens existants qui pourrait être mis en place dans une solution métier.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Analyse du sujet &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Google_glass.png|200px|thumb|right|Paire de Google Glass]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Optinvent_ora.png|200px|thumb|right|Paire de ORA d'Optivent]]&lt;br /&gt;
&lt;br /&gt;
Notre projet consiste à fluidifier le déchargement en indiquant au cariste l’emplacement libre le plus proche. Pour ne pas gêner le travail des employés, un dispositif main-libre comme une Google Glass semble adapté. Ce projet soulève plusieurs problématiques : développer une interface homme-machine apportant une information pertinente pour l’utilisateur sans pour autant être perturbante. &lt;br /&gt;
&lt;br /&gt;
L’idée serait de réaliser dans les grandes lignes un système similaire à ce scénario d’utilisation :&lt;br /&gt;
http://n.mynews.ly/!lB.Bs4fw&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Moyen d’affichage de l’Informations pertinentes'''&lt;br /&gt;
&lt;br /&gt;
Les Google Glass ne sont pas les seules smart glasses sur le marché. Il nous faudra choisir les appareils les plus adaptés. L’information pertinente pourrait être une direction à suivre dans l’entrepôt ou simplement un numéro d’emplacement (adressage intuitif de l’entrepôt). &lt;br /&gt;
&lt;br /&gt;
'''Géolocalisation'''&lt;br /&gt;
&lt;br /&gt;
Dans le cas d’une direction à suivre se pose le problème de la géolocalisation indoor dont l’utilité et la faisabilité seront discutés au fil des réunions avec l’entreprise. &lt;br /&gt;
&lt;br /&gt;
'''Adressage / flashage'''&lt;br /&gt;
&lt;br /&gt;
En ce qui concerne l’adressage des palettes en entrepôt, la solution existante repose sur un flashage des codes barres associés à l’emplacement venant d’être occupé. Une étude de faisabilité/utilité sera aussi faite sur une solution de remplacement grâce aux possibilités qu’offrent les smart glasses.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Cahier des charges &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
En partant de l'analyse du sujet et des discussion avec notre tuteur, nous avons définie un cahier des charges plus précis des tâches à accomplir:&lt;br /&gt;
&lt;br /&gt;
* '''Développer un système embarqué sur une paire de lunette Smart Glass'''&lt;br /&gt;
** Comparer les différentes offres en matière de Smart Glass notamment Google Glass &amp;amp; ORA de Optinvent&lt;br /&gt;
** Concevoir une interface homme-machine non perturbante pour l'utilisateur.&lt;br /&gt;
* '''Etudier la nécessité d'utiliser une géolocalisation en entrepôt et l'implémenter si besoin'''&lt;br /&gt;
** Via RSSI (Wifi, Bluetooh Low Energy ...)&lt;br /&gt;
** Via traitement d'images (reconnaissance de la signalétique en entrepôt)&lt;br /&gt;
* '''Etudier les possibilités d'optimisation du système d'adressage des palettes'''&lt;br /&gt;
** Implémenter la reconnaissance de code barre&lt;br /&gt;
** La tester en réalité métier (utilité ajoutée, habitude des magasiniers, vitesse de traitement...)&lt;br /&gt;
&lt;br /&gt;
Le cahier des charges est encore en cours de construction&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Matériel utilisé &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; SmartGlass &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Lors de la réunion nous avons discuté des technologies à utiliser dans le projet, et plus particulièrement des différentes SmartGlass. En effet, il existe une multitude de sociétés qui développe ce genre de lunettes. Nous commencerons à utiliser les Google Glass étant donné que notre tuteur en a déjà commandé puis nous développerons sur les lunettes ORA de Optivent qui seront livrées fin octobre. Nous devrons donc faire un comparatif entre ces deux SmartGlass puis étudier les autres appareils disponibles sur le marché.&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Localisation &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
L'utilisation de la géolocalisation dans le projet est à débattre. Mais des tests seront probablement mis en place. L'entreprise possède quelque iBeacons BLE Estimote dans ses bureaux d'innovations que nous pourrons emprunter.&lt;br /&gt;
Dans le cas où leur gain d'informations serait utile il nous faudra comparer les modèles disponibles. Choisir un nombre de module et des emplacements stratégiques dans l'entrepôt afin d'avoir une localisation assez précise pour l'application.&lt;br /&gt;
&lt;br /&gt;
L'utilisation d'autres technologies de géolocalisation a été discuté comme le Wifi ou le XBee mais le BLE semblait le plus adapté dans le cadre de notre projet.&lt;br /&gt;
&lt;br /&gt;
= Déroulement du projet =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 22/09 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Réunion avec le tuteur entreprise dans l’entrepôt &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Nous avons observé en situation le problème et discuté des besoins, des moyens déjà utilisables. Il nous faudra prendre en compte plusieurs paramètres dans notre réflexion tels que le système de stockage et d'adressages des palettes, sens de circulation des caristes, superficie des zones à desservir, durée de livraison.&lt;br /&gt;
Nous avons suggéré des étapes de validation intermédiaire du système par les futurs utilisateurs et pour cela nous rencontrerons le chef d'équipe des magasiniers lorsque qu'une version sera assez développée.&lt;br /&gt;
&lt;br /&gt;
Nous avons défini avec le tuteur les premières deadlines du projet, voici la timeline récapitulative:&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Timeline_1.jpg||center|1000px]]&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Compte Rendu &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Nous avons rédigé un compte rendu de la première réunion détaillant les spécifications des versions des livrables, des schémas et les sujets abordés lors de la rencontre :&lt;br /&gt;
&lt;br /&gt;
'''Compte Rendu réunion du 25/09/2014 :''' [[Fichier:Compte_Rendu_25_09.pdf]]&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 29/09 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Découverte des Google Glass &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
*Prise en main des Google Glass. &lt;br /&gt;
*Installation d'applications (.apk) grand public. Nous avons utilisé l'outil Android Debug Bridge(adb). Se mettre à la place d'un utilisateur.&lt;br /&gt;
*L'une des deux lunettes qui serait retenue imposera forcément le développement d'une application android (ou d'une technologie trés proche d'android, pour les Google Glass, se basant sur le Glass Development Kit qui est un add-on au SDK classique d'android). Nous avons donc téléchargé les packages nécessaires pour commencer à développer. &lt;br /&gt;
** Nous commençons à nous former sur les technologies android :développement d'applications minimaliste.&lt;br /&gt;
** Installation de nos premières apk minimalistes pour Android.&lt;br /&gt;
** Installation d'une application minimaliste sur la Google Glass.&lt;br /&gt;
&lt;br /&gt;
Voici un comparatif réalisé entre les lunettes ORA et les Google Glass.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Différences Google Glass/ORA &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!   !! Google Glass !! ORA &lt;br /&gt;
|-&lt;br /&gt;
|Connectique&lt;br /&gt;
|Compatible BLE (à partir de la XE 16 KitKat Update), Wifi &lt;br /&gt;
|Compatible BLE, Wifi&lt;br /&gt;
|-&lt;br /&gt;
|Autonomie en utilisation normale&lt;br /&gt;
|de 1h à 2h &lt;br /&gt;
|de 4h à 8h&lt;br /&gt;
|-&lt;br /&gt;
|Son&lt;br /&gt;
|Conductivité Cranienne&lt;br /&gt;
|Prise jack&lt;br /&gt;
|-&lt;br /&gt;
|Interface&lt;br /&gt;
|Ecran occupant une faible superficie dans le champ de vision &lt;br /&gt;
|Ecran 2 positions (moyennes et basses), plus étendu permettant une réalité augmentée &lt;br /&gt;
|-&lt;br /&gt;
|Système d'exploitation&lt;br /&gt;
|Android 4.4&lt;br /&gt;
|Android 4.2.2&lt;br /&gt;
|-&lt;br /&gt;
|Calculs&lt;br /&gt;
|CPU &amp;amp; GPU&lt;br /&gt;
|CPU &amp;amp; GPU&lt;br /&gt;
|-&lt;br /&gt;
|Prix&lt;br /&gt;
|1500$ &lt;br /&gt;
|949$&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 06/10 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Deuxième rendez-vous avec le tuteur entreprise &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Nous avons fait part de notre avancée en matière de prise en main et des problèmes rencontrés en matière de développement.&lt;br /&gt;
Les lunettes ORA sont commandées elles arrivent d'ici la fin octobre.&lt;br /&gt;
&lt;br /&gt;
La première version V1 de l'application pour Google Glass à livrer pour la mi-novembre est fixée.&lt;br /&gt;
&lt;br /&gt;
En partant d'une position connue (en dur dans l'application) dans l'entrepôt, elle indiquera à un utilisateur les emplacements libres les plus proches.&lt;br /&gt;
&lt;br /&gt;
L'état d'occupation des emplacements sera consulté et stocké dans l'application. Il n'y aura donc pas de gestion des conflits. Le sens de circulation dans l'entrepôt sera pris en compte.&lt;br /&gt;
Une communication avec la base de donnée de l'entrepôt n'est pour le moment pas d'actualité, cela nécessiterait des développements en amont.&lt;br /&gt;
La géolocalisation n'est pas au goût du jour non plus. L'adressage des emplacements dans l'entrepôt est intuitif, il est donc facile pour un magasinier de &lt;br /&gt;
se rendre à un emplacement en connaissant l'adresse.&lt;br /&gt;
&lt;br /&gt;
Pour l'IHM, nous nous inspirerons des applications pour Google Glass (les Glasswares) de type GPS.&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Premiers programmes sur Google Glass &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Pour nous familiariser avec la programmation sur ce genre d'appareil nous avons tous deux décidé de suivre en premier le tutoriel Android d'un site spécialisé. Cela afin de mieux comprendre le système Android, avec les concepts d'activités, de view etc.&lt;br /&gt;
Dans un deuxième temps nous avons choisi de suivre plusieurs tutoriels nous expliquant la prise en main basique des lunettes afin de saisir les particularités de leur programmation.&lt;br /&gt;
&lt;br /&gt;
Le plus dur étant finalement de comprendre les liens entre tous les fichiers du projets, les problèmes de drivers et d'upload simple que nous avons rencontrés et l’exécution du programme sur les lunettes. Des choses que nous arrivons maintenant à maitriser mais qui était floues à l'origine.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 13/10 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Programmation et gestion des interactions &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Durant cette semaine nous avons commencé a vraiment toucher aux fonctionnalités des Glass. Pour rester en main libre, nous avons fait des recherches et commencé à programmer de la reconnaissance vocale. Nous avons ainsi crée un système de navigation basique par commande vocale dans différents menus. Pour un accès rapide à l'application et toujours dans la même optique nous avons réussi à inclure le lancement de notre logiciel à partir du &amp;quot;Ok Glass&amp;quot; menu qui est le menu de lancement d'application par commande vocale des Google Glass. Voici un aperçu du résultat:&lt;br /&gt;
[[Fichier:V0_menu.png|1000px|center]]&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Analyse et évaluation du rendu &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Le début de la prise en main des fonctionnalités des Google Glass n'a pas été facile étant donné que la plupart des fonctionnalités sont propres à ce genre d'appareil. De plus elles nécessitent des techniques spéciales de programmation qui ne sont pas toujours très utilisées donc il est parfois difficile de trouver des exemples sur internet.&lt;br /&gt;
Néanmoins après l'implémentation de ces fonctionnalités nous avons pu rencontrer quelques difficultés de reconnaissance. En effet, les Google Glass possèdent un dictionnaire de mots/phrases pour la reconnaissance vocale mais elles nous permettent aussi d'écrire n'importe quelle phrase dans le mode développeur. Les phrases du dictionnaires ne posent aucun problème mais les phrases que nous écrivons sont parfois dures à reconnaitre. La reconnaissance de lettre seule ou de certains numéros est par exemple quasi impossible ou très aléatoire.&lt;br /&gt;
Le système de vu est quant à lui plutôt facile à prendre en main et intuitif dans l'utilisation.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 20/10 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Premiere structure de donnée &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Nous avons opté pour une structure de donnée récursive. Une Cellule, contenant des Allées, qui contiennent des Baies, contenant des Rangées, contenant des Emplacements.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Structure_export_resized.png|750px|center]]&lt;br /&gt;
Nous avons conçu cette structure de donnée pour qu'elle génère, dans un premier temps &amp;quot;en dur&amp;quot;, une cellule contenant des emplacements automatiquement adressés à la manière de ceux présent dans l'entrepôt. Ces adresses sont de la forme &amp;quot;D61A514&amp;quot; traduisez &amp;quot; Cellule 6 Allée 1A Baie 5 Rang 1 Niveau 4&amp;quot;.&lt;br /&gt;
Cette structure prend on compte le sens de circulation dans l'entrepôt.&lt;br /&gt;
Lors de futures interactions avec une base de donnée, cette structure serait sujette à évolution par une modification des méthodes de génération/modification du statut des adresses en fonction de cette base de donnée. Mais celle-ci constitue essentiellement une base pour appréhender plus pratiquement les problématiques de recherches de l'emplacement le plus proche.&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Prise en main de l'interface &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Nous avons déjà abordé les layouts java en TP donc il a été assez facile de commencer à faire des interfaces graphiques simples. Nous avons construit une interface graphique simple pour de faire une démonstration du programme aux tuteurs entreprise afin qu'ils comprennent bien le fonctionnement de notre algorithme.&lt;br /&gt;
L'interface graphique finale du programme sera très sobre afin de ne pas donner trop gêner le magasinier dans sa tâche.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 27/10 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Chemin optimal : Parcours intelligent Vs Sélection intelligente &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Un premier algorithme de recherche de l'emplacement le plus proche a été développé, celui-ci ne prend en compte qu'un seul scénario. &lt;br /&gt;
Celui de la position de départ (quai de déchargement où reviendra constamment le magasinier aprés chaque livraison) correspondante à la première allée de l'entrepôt, et en prenant en compte le sens de circulation. &lt;br /&gt;
A partir de ce moment, nous avons dégager deux grandes manières d'appréhender le problème.&lt;br /&gt;
&lt;br /&gt;
* Un parcours intelligent de la structure de donnée. C'est à dire parcourir les emplacements les plus proches, et choisir le premier emplacement libre. Une solution complexe à réaliser sur le plan algorithmique. En tenant compte du sens de circulation, il apparait que l'emplacement libre &amp;quot;leplusproche&amp;quot; (à vol d'oiseau) trouvé le plus tôt, ne correspondrait pas forcément à l'emplacement le plus proche compte tenu du chemin emprunté par un magasinier. Et c'est plutôt l'intérêt de cette algorithme.(Sauf dans l'unique cas où l'emplacement libre se trouve directement dans l'allée faisant face à la position de départ du magasinier, et le sens de circulation lui permet directement de se rendre à l'emplacement sans détour).&lt;br /&gt;
&lt;br /&gt;
* Une sélection intelligente parmi les emplacements libres. Leurs adresses renseignent à quelles allées, les emplacements libres appartiennent, donc renseignent sur le sens de circulation. A partir de la position de départ du magasinier et de l'ensemble des emplacements libres, on peut calculer la distance nécessaire à celui-ci pour les atteindre. Pour ainsi choisir l'adresse pour laquelle la distance est minimale.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 3/11 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Chemin optimal : sélection intelligente des adresses &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Nous avons écrit une premiere méthode de détermination. &lt;br /&gt;
On choisit l'emplacement, parmi tous ceux qui sont libres, pour lequel la distance de parcours est minimale entre le départ et celui-ci. &lt;br /&gt;
Ici l'unité de distance est la baie. La simplicité de l'algorithme réside dans le fait que le magasinier ne transporte qu'une seule caisse à la fois et repars toujours au même point de départ.&lt;br /&gt;
&lt;br /&gt;
Ci dessous un plan de l'entrepôt.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:schema_entrepot.png|750px|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Si on se place à l'entrée de l'Allée A :&lt;br /&gt;
&lt;br /&gt;
**le déplacement jusqu'à A4 (sens de circulation direct) est de : &lt;br /&gt;
&lt;br /&gt;
                        Y baies - (indice de la baie/2 +indice de la baie % 2) &lt;br /&gt;
&lt;br /&gt;
**le déplacement jusqu'à B1 (sens de circulation indirect) est de : &lt;br /&gt;
&lt;br /&gt;
                        Y baies + différence entre l'allée A et B donc X baies + indice de la baie/2 +indice de la baie % 2&lt;br /&gt;
**le déplacement jusqu'à C1 (sens de circulation direct) est de : &lt;br /&gt;
                      &lt;br /&gt;
                        Y baies - (indice de la baie/2 +indice de la baie % 2)+différence entre l'allée A et C donc 2*X baies.&lt;br /&gt;
&lt;br /&gt;
*Si on se place à l'entrée de l'Allée B :&lt;br /&gt;
**le déplacement jusqu'à B1 (sens de circulation indirect avec contournement) est de : &lt;br /&gt;
                        &lt;br /&gt;
                        2*X baies + Y baies + 2*X baies + (indice de la baie/2 +indice de la baie % 2)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On peut généraliser l'ensemble de ces situations de déplacement avec l'algorithme suivant :&lt;br /&gt;
&lt;br /&gt;
Pseudo code&lt;br /&gt;
&lt;br /&gt;
  Leplusproche( Allee depart )&lt;br /&gt;
    distance_la_plus_petite = valeurMAX&lt;br /&gt;
      le_plus_proche=&amp;quot;&amp;quot;&lt;br /&gt;
         Pour chaque Allee de Cellule&lt;br /&gt;
           sens=Allee.sens&lt;br /&gt;
           Pour chaque Baie de Allee&lt;br /&gt;
             Pour chaque Rang de Allee&lt;br /&gt;
 	       Pour chaque Emplacement de Rang&lt;br /&gt;
                Si Emplacement estlibre &lt;br /&gt;
                &lt;br /&gt;
                indice_baie = selection_indice_baie(Emplacement.adresse)&lt;br /&gt;
   		 allee_cible = selection_indice_allee(Emplacement.adresse)  &lt;br /&gt;
   		 difference_allee = valeur_absolue(depart -cible) &lt;br /&gt;
                    Si difference_allee==0 et sens.estindirect&lt;br /&gt;
                      //sens indirect +contournement&lt;br /&gt;
                      distance_actuelle=(indice_baie/2)+indice_baie%2+(2*(difference_allee))+4*X+Y			&lt;br /&gt;
                    Sinon	&lt;br /&gt;
                        Si sens estdirect&lt;br /&gt;
                          //sens direct &lt;br /&gt;
                          distance_actuelle=(Y-((indice_baie/2)+indice_baie%2))+2*difference_allee&lt;br /&gt;
                        Sinon&lt;br /&gt;
                          //sens indirect mais pas de contournement&lt;br /&gt;
                          distance_actuelle=((indice_baie/2)+indice_baie%2)+2*difference_allee+Y&lt;br /&gt;
                        Finsi	&lt;br /&gt;
                    Finsi	&lt;br /&gt;
                    Si distance_actuelle &amp;lt; distance_la_plus_petite&lt;br /&gt;
                      le_plus_proche=Emplacement.adresse&lt;br /&gt;
                      distance_la_plus_petite=distance_actuelle&lt;br /&gt;
                    Finsi&lt;br /&gt;
                Finsi  &lt;br /&gt;
            Finpour&lt;br /&gt;
          Finpour&lt;br /&gt;
        Finpour&lt;br /&gt;
      Finpour&lt;br /&gt;
    retourne le_plus_proche&lt;br /&gt;
  Finleplusproche&lt;br /&gt;
&lt;br /&gt;
Cet algorithme nous donne satisfaction (dans le cadre de la V1)&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 10/11 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Programmation et gestion des interactions &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Aprés quelques difficultés vis à vis de la gestion des menus vocaux sur les lunettes qui ne fonctionnent pas de la même manière que les menus classiques sous android, nous avons étoffé les interactions possible avec l'application des google glass. (Nous souhaitions inflater un deuxième menu pour interagir de manière plus contextuelle, il fallait le faire dans la méthode onCreatePanelMenu dont l'appel serait forcé avec getWindow().invalidatePanelMenu(WindowUtils.FEATURE_VOICE_COMMANDS) plutôt que dans onPrepareOptionsMenu forcée par invalidateOptionMenu()...) &lt;br /&gt;
&lt;br /&gt;
schéma d'utilisation...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Proposition projet affichage télévision &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Tele_concept.png|200px|thumb|right]]&lt;br /&gt;
&lt;br /&gt;
Notre tuteur nous a contacté pour nous proposer d'étudier un second projet en parallèle au projet initial. Celui consistant à gérer l'affichage d'information personnalisé d'un magasinier passant à proximité d'un écran de télévision. Nous devons effectuer un Proof Of Concept (POC) et réfléchir à ce sujet.&lt;br /&gt;
L'utilisation du BLE est donc de nouveau d'actualité, car je rappel que sont utilité était discutable dans une réalité métier du projet initial. La question étant plus de savoir comment gérer le système du coté du téléviseur.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Le concept de base étant de :&lt;br /&gt;
* Fournir une beacon aux magasiniers de l'entrepôt.&lt;br /&gt;
* Installer une télévision sur un centre de vie dans l'entrepôt avec une beacon&lt;br /&gt;
* Pousser du contenu personnalisé au magasinier qui se présente devant la tv dans son centre de vie&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 17/11 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Brainstorming à Polytech &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Dans la cadre du POC sur l'affichage personnalisé sur une télévision, nous avons profité d'un exercice de management pour faire participer la classe à notre projet. Grâce à cette intervention nous avons pu confirmer nos idées sur les technologies à utiliser. Mais nous avons surtout eu une multitude de propositions sur les données à afficher sur l'écran.&lt;br /&gt;
&lt;br /&gt;
Pour plus détails, le compte rendu est disponible à ce lien:&lt;br /&gt;
&lt;br /&gt;
'''Compte Rendu Brainstorming 17/11/2014 :''' [[Fichier:Compte_Rendu_POC_17_11.pdf]]&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Entretien avec notre tuteur entreprise &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Durant cet entretien, nous avons livré la première version de l'application et nous avons discuté de la suite du projet.&lt;br /&gt;
Ci joint le Compte Rendu.&lt;br /&gt;
&lt;br /&gt;
'''Compte Rendu  19/11/2014 :''' [[Fichier:Compte_Rendu_19_11.pdf]]&lt;br /&gt;
&lt;br /&gt;
De cette réunion, les points suivants en sont sortis:&lt;br /&gt;
&lt;br /&gt;
*Une reconnaissance vocale en langue française sur les lunettes serait plus intéressante pour les employés (une piste serait d’utiliser l’outil pocketsphinx-  android).&lt;br /&gt;
*Par rapport à l'IHM, il faudrait mettre l’affichage au premier plan sur les Google Glass pour une démo auprés des parties prenantes du projet.&lt;br /&gt;
*Choisir une architecture pour l’affichage d’information personnalisées.&lt;br /&gt;
**La télévision connectée à une raspberry qui communiquerait via un dongle BLE avec le beacon d’un magasinier, ce qui permettrait l’identification de celui-ci prés de la Télévision, et déclencherait un processus d’échange d’information. (Communication via le protocole Bluetooh, wifi entre les lunettes et la Raspberry  ou communication avec la Raspberry avec la Base de Donnée sur le réseau de l’entreprise)&lt;br /&gt;
**Une télévision connectée en continu à un site internet via un dongle HDMI.&lt;br /&gt;
**Une tablette android géante supportant le BLE, ou utilisant un dongle BLE.&lt;br /&gt;
* Réaliser le portage de l’application sur le prototype des lunettes ORA.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 24/11 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Reconnaissance vocale en Français &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Pocket Sphinx Android est une librairie permettant de faire de la reconnaissance vocale d'un langage donné sur un système android en offline.&lt;br /&gt;
Pour supporter une langue, elle nécessite: &lt;br /&gt;
*un modèle acoustique (ensemble d'informations pour le traitement sonore)&lt;br /&gt;
*un dictionnaire associant les mots et leur phonèmes&lt;br /&gt;
*une grammaire, c'est un fichier définissant comment seraient articulé les mots à reconnaître et limitant les possibilités de langage).&lt;br /&gt;
&lt;br /&gt;
La grammaire étant un automate. Voici un exemple de la grammaire menu.gram pour la reconnaissance de la porte de déchargement.&lt;br /&gt;
[[Fichier:Arborescence_pocket_sphinx.png|200px|thumb|right|PocketSphinx dans un projet Android]]&lt;br /&gt;
&lt;br /&gt;
  #JSGF V1.0;&lt;br /&gt;
  grammar menu;&lt;br /&gt;
  &amp;lt;porte&amp;gt; = porte a |&lt;br /&gt;
            porte b |&lt;br /&gt;
            porte c |&lt;br /&gt;
            porte d |&lt;br /&gt;
            porte e |&lt;br /&gt;
            porte f |&lt;br /&gt;
            porte g |&lt;br /&gt;
            porte h |&lt;br /&gt;
            porte i |&lt;br /&gt;
            porte j ;&lt;br /&gt;
  public &amp;lt;porte&amp;gt; = &amp;lt;porte&amp;gt;+;&lt;br /&gt;
&lt;br /&gt;
Un extrait du dictionnaire french_letter.dic associé avec les phonemes&lt;br /&gt;
&lt;br /&gt;
  a aa &amp;lt;-- juste la lettre a et son phoneme &lt;br /&gt;
  autre au tt rr&lt;br /&gt;
  autre(2) au tt rr ee &lt;br /&gt;
  b bb &lt;br /&gt;
  c ss &lt;br /&gt;
  d dd ei d(2) dd ait &lt;br /&gt;
  e eu e(2) eu zz &lt;br /&gt;
  f ai ff &lt;br /&gt;
  g jj ei g(2) gg ai &lt;br /&gt;
  h aa ch  &lt;br /&gt;
  i ii &lt;br /&gt;
  j jj yy j(2) jj ii&lt;br /&gt;
  porte pp oo rr tt&lt;br /&gt;
  porte(2) pp oo rr tt ee&lt;br /&gt;
  portes(2) pp oo rr tt ee&lt;br /&gt;
  portes(3) pp oo rr tt ee zz&lt;br /&gt;
  portes(4) pp oo rr tt zz&lt;br /&gt;
&lt;br /&gt;
Le modèle acoustique que nous avons téléchargé étant inclu dans lium_french_f0&lt;br /&gt;
&lt;br /&gt;
Nous avons testé la reconnaissance vocale sur un téléphone android, les mots sont, dans la majorité des cas, bien reconnus.&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Comparaison architectures projet TV &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Au niveau de l’architecture nous avons établi plusieurs propositions après la réunion avec notre tuteur:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour une Raspberry Pi avec un dongle BLE :&lt;br /&gt;
* Installation OS Linux sur la Raspberry&lt;br /&gt;
* Librairie BlueZ pour l’utilisation du BLE (tests rapides effectués sur Linux avec le Dongle)&lt;br /&gt;
* Interface graphique avec une bibliothèque comme Qt (ou encore SDL…)&lt;br /&gt;
* Prix : Rpi = 26€ (chez RadioSpare), Dongle = 10€, TV = à partir de 358€ pour 117cm, + Connectique vidéo. Total = 394€&lt;br /&gt;
&lt;br /&gt;
Pour un écran ViewSonic VSD231 :&lt;br /&gt;
* Possède une API Bluetooth classic + API BLE&lt;br /&gt;
* Interface graphique Android (View, Layout...)&lt;br /&gt;
* Prix : écran ViewSonic VSD231 = 558 € pour 58 cm (chez ViewSonic).&lt;br /&gt;
&lt;br /&gt;
Récupération d’informations :&lt;br /&gt;
* Si données sur les lunettes : Bluetooth ou Wifi.&lt;br /&gt;
* Si données sur serveur : Ethernet ou Wifi.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Vu les propositions possibles nous pensons que la première proposition permettra une meilleure souplesse dans le développement mais serait un peu plus compliquée. Mais nous la trouvons aussi plus intéressante à faire de plus elle est moins coûteuse et permet d'utiliser un écran plus grand. Le développement sur tablette serait sûrement plus rapide à faire en contrepartie.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 01/12 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Conférence GlassCamp à l'Imaginarium &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
GlassCamp est une association qui essaye de répandre l'utilisation de toute les Smart Glass en général. Elle propose de multiples conférences dans lesquelles ils essayent de montrer au public l’intérêt de développer sur ces appareils. Dans le cadre de notre projet, notre tuteur nous a proposé de participer à cette présentation afin de mieux s’approprier le sujet. La conférence a eu lieu le 4 décembre à l'Imaginarium: une grande partie était plutôt tournée vers la présentation mais nous avons apprîs plusieurs choses intéressantes qui sont décrites dans le compte rendu.&lt;br /&gt;
&lt;br /&gt;
'''Compte Rendu Conférence 04/12/2014 :''' [[Fichier:Compte_Rendu_Conf_GlassCamp.pdf]]&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaines du 08/12 et 15/12 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Reconnaissance vocale en Français &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Nous avons avancé sur la version française de l'application. A la manière du menu vocal des google glass, nous avons utilisé un délimiteur&lt;br /&gt;
&amp;quot;ok lunettes&amp;quot; pour démarrer l'interaction avec l'application, afin que les discussions et bruits ambiants n'interfèrent pas sur l'utilisation de celle-ci.&lt;br /&gt;
Voici le scénario d'utilisation de la nouvelle version de l'application en Français.&lt;br /&gt;
[[Fichier:Schema_fr.png|700px|center]]&lt;br /&gt;
&lt;br /&gt;
Sous pocketsphinx, le délimiteur n'apparait pas dans une grammaire. La grammaire permet de prédestiner l'application à choisir entre deux mots. &lt;br /&gt;
Dans notre application, le moteur de reconnaissance vocale choisi la distance la plus courte, séparant le mot prononcé par l'utilisateur et ceux&lt;br /&gt;
qu'il est possible d'entendre. Ainsi entre &amp;quot;oui&amp;quot; et &amp;quot;non&amp;quot;, l'application choisira forcément l'un des deux, même si l'utilisateur dit &amp;quot;bonjour&amp;quot;&lt;br /&gt;
&lt;br /&gt;
L'avantage du délimiteur est que sa détection repose sur un seuillage entre ce qui est prononcé et ce qui doit être reconnu, nous pouvons régler ce seuil.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 05/01 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Entretien avec notre tuteur &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Durant cet entretien nous avons défini les évolutions du projet.&lt;br /&gt;
&lt;br /&gt;
'''Compte Rendu de l'entretien du 06/01/2015 :''' [[Fichier:Compte_Rendu_4.pdf]]&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 12/01 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; TV connectée &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Nous avons pris en main la détection des beacons (de la marque Estimote fournis par l'entreprise) dans les systèmes android.&lt;br /&gt;
L'adresse MAC et le RSSI sont accessibles, ce sont les seules informations nécessaires que nous avons besoin en ce qui concerne les beacons.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 19/01 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Interfaces_exemple.png|100px|thumb|right]]&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt;Interface TV &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Nous avons développé plusieurs exemples d'interfaces avec les instructions de notre tuteur afin de choisir les meilleurs résultats ensembles. Nous avons défini quelques contraintes pour le design. Elle doit être&lt;br /&gt;
* Simple et intuitive&lt;br /&gt;
* En accord avec les couleurs de l'entreprise&lt;br /&gt;
* Moderne (système de tuile ou autre)&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 26/01 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Entretien avec notre tuteur &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Durant cette entretien nous avons défini plus précisément les objectifs du projet.&lt;br /&gt;
Ci dessous le compte rendu.&lt;br /&gt;
&lt;br /&gt;
'''Compte Rendu de l'entretien du 26/01/2015 :''' [[Fichier:Compte_Rendu_5.pdf]]&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 02/02 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Portage d'une application de SmartPicking sur les Google Glass &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Une application android main libre pour les ORA glasses a été développé pour permettre à l'entreprise, &lt;br /&gt;
d'accélerer les opérations de picking(prélévement à l'article) en entrepôt. Celle-ci était à destination des lunettes ORA de Optinvent.&lt;br /&gt;
Notre tuteur souhaitait donc que nous réalisions le portage de cette application vers les google glass. Le but étant de comparer l'usage de cette application sur deux supports différents entre les lunettes. &lt;br /&gt;
&lt;br /&gt;
*Nous avons procédé à des ajustements au niveau de la gestion des layouts de l'interface, à équilibrer la places qu'occupe certaines informations données par l'application.&lt;br /&gt;
*Cette application communique par bluetooth avec une autre application lancée sur une tablette android, cette dernière permet de réaliser l'appairage avec la smartglass. La tablette étant la seule à être connectée au serveur de l'entreprise (l'AS400) via un réseau sécurisé. Nous avons du appairer manuellement les glass avec la tablette, et retirer dans le code le lancement d'un intent permettant aux lunettes de se rendre visible sur le réseau. Lorsque cet intent est lancé il génère une exception non attendue qui ne concerne que les google glass. Aprés recherches sur le net, il semble que c'est un problème récurrent qui a été signalé mais pas encore résolu.&lt;br /&gt;
&lt;br /&gt;
Ci dessous des screenshot de l'application en question adaptée par nos soins :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Schema_picking.png|800px|center]]&lt;br /&gt;
&lt;br /&gt;
L'écran de gauche, correspond à la phase de prélévement d'un article ici &amp;quot;VE RAINCUT TRUE BLACK SS14&amp;quot; une veste à l'adresse C4FU-10-1-3, il faut en prélever 12, et le tableau à gauche correspond à la façade de l'étagère concernée, il indique grossièrement (case verte) le carton à déballer, en partant du principe que l'utilisateur respecte le sens de circulation de l'entrepôt.&lt;br /&gt;
L'écran de droite, correspond à la phase de dépôt des articles dans le chariot de l'utilisateur, il lui indique dans quel compartiment le placer.&lt;br /&gt;
&lt;br /&gt;
Nous avons participé à une demi-journée de test en production avec le responsable du picking, le responsable innovation, notre tuteur et d'autres parties prenantes du projet. La version sur les google glass a bien rempli son rôle à la manière de la version originale sur les ORA one, les préférences des parties prenantes se sont portés essentiellement sur les avantages qu'offrent les supports.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 09/02 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Connectivité android et TV connectée &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Pour tester la connectivité de l'application sur la tablette géante, dans le cadre de la fonctionnalité de TV connectée, nous voulions une base de donnée accessible depuis n'importe où, nous avons donc profité d'un outil de l'école  &lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 16/02 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Interface &amp;lt;/font&amp;gt;===&lt;/div&gt;</summary>
		<author><name>Jgondry</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=P22_Google_Glass_en_logistique&amp;diff=17105</id>
		<title>P22 Google Glass en logistique</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=P22_Google_Glass_en_logistique&amp;diff=17105"/>
				<updated>2015-02-18T08:26:04Z</updated>
		
		<summary type="html">&lt;p&gt;Jgondry : /* Déroulement du projet */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Introduction =&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Description du sujet &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
Notre projet vise à l’optimisation du stockage et de l’adressage des palettes dans un entrepôt. En effet, lors du déchargement d’un camion, chercher un emplacement libre pour les palettes dans un entrepôt occupant une grande superficie fait perdre du temps et donc de la productivité dans le stockage. Sachant qu’un cariste perd un temps non négligeable à la recherche d’emplacement disponible, optimiser ce temps de recherche permettrait de gagner du temps sur cette opération.&lt;br /&gt;
Développer un prototype permettrait de rendre compte des moyens existants qui pourrait être mis en place dans une solution métier.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Analyse du sujet &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Google_glass.png|200px|thumb|right|Paire de Google Glass]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Optinvent_ora.png|200px|thumb|right|Paire de ORA d'Optivent]]&lt;br /&gt;
&lt;br /&gt;
Notre projet consiste à fluidifier le déchargement en indiquant au cariste l’emplacement libre le plus proche. Pour ne pas gêner le travail des employés, un dispositif main-libre comme une Google Glass semble adapté. Ce projet soulève plusieurs problématiques : développer une interface homme-machine apportant une information pertinente pour l’utilisateur sans pour autant être perturbante. &lt;br /&gt;
&lt;br /&gt;
L’idée serait de réaliser dans les grandes lignes un système similaire à ce scénario d’utilisation :&lt;br /&gt;
http://n.mynews.ly/!lB.Bs4fw&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Moyen d’affichage de l’Informations pertinentes'''&lt;br /&gt;
&lt;br /&gt;
Les Google Glass ne sont pas les seules smart glasses sur le marché. Il nous faudra choisir les appareils les plus adaptés. L’information pertinente pourrait être une direction à suivre dans l’entrepôt ou simplement un numéro d’emplacement (adressage intuitif de l’entrepôt). &lt;br /&gt;
&lt;br /&gt;
'''Géolocalisation'''&lt;br /&gt;
&lt;br /&gt;
Dans le cas d’une direction à suivre se pose le problème de la géolocalisation indoor dont l’utilité et la faisabilité seront discutés au fil des réunions avec l’entreprise. &lt;br /&gt;
&lt;br /&gt;
'''Adressage / flashage'''&lt;br /&gt;
&lt;br /&gt;
En ce qui concerne l’adressage des palettes en entrepôt, la solution existante repose sur un flashage des codes barres associés à l’emplacement venant d’être occupé. Une étude de faisabilité/utilité sera aussi faite sur une solution de remplacement grâce aux possibilités qu’offrent les smart glasses.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Cahier des charges &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
En partant de l'analyse du sujet et des discussion avec notre tuteur, nous avons définie un cahier des charges plus précis des tâches à accomplir:&lt;br /&gt;
&lt;br /&gt;
* '''Développer un système embarqué sur une paire de lunette Smart Glass'''&lt;br /&gt;
** Comparer les différentes offres en matière de Smart Glass notamment Google Glass &amp;amp; ORA de Optinvent&lt;br /&gt;
** Concevoir une interface homme-machine non perturbante pour l'utilisateur.&lt;br /&gt;
* '''Etudier la nécessité d'utiliser une géolocalisation en entrepôt et l'implémenter si besoin'''&lt;br /&gt;
** Via RSSI (Wifi, Bluetooh Low Energy ...)&lt;br /&gt;
** Via traitement d'images (reconnaissance de la signalétique en entrepôt)&lt;br /&gt;
* '''Etudier les possibilités d'optimisation du système d'adressage des palettes'''&lt;br /&gt;
** Implémenter la reconnaissance de code barre&lt;br /&gt;
** La tester en réalité métier (utilité ajoutée, habitude des magasiniers, vitesse de traitement...)&lt;br /&gt;
&lt;br /&gt;
Le cahier des charges est encore en cours de construction&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Matériel utilisé &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; SmartGlass &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Lors de la réunion nous avons discuté des technologies à utiliser dans le projet, et plus particulièrement des différentes SmartGlass. En effet, il existe une multitude de sociétés qui développe ce genre de lunettes. Nous commencerons à utiliser les Google Glass étant donné que notre tuteur en a déjà commandé puis nous développerons sur les lunettes ORA de Optivent qui seront livrées fin octobre. Nous devrons donc faire un comparatif entre ces deux SmartGlass puis étudier les autres appareils disponibles sur le marché.&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Localisation &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
L'utilisation de la géolocalisation dans le projet est à débattre. Mais des tests seront probablement mis en place. L'entreprise possède quelque iBeacons BLE Estimote dans ses bureaux d'innovations que nous pourrons emprunter.&lt;br /&gt;
Dans le cas où leur gain d'informations serait utile il nous faudra comparer les modèles disponibles. Choisir un nombre de module et des emplacements stratégiques dans l'entrepôt afin d'avoir une localisation assez précise pour l'application.&lt;br /&gt;
&lt;br /&gt;
L'utilisation d'autres technologies de géolocalisation a été discuté comme le Wifi ou le XBee mais le BLE semblait le plus adapté dans le cadre de notre projet.&lt;br /&gt;
&lt;br /&gt;
= Déroulement du projet =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 22/09 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Réunion avec le tuteur entreprise dans l’entrepôt &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Nous avons observé en situation le problème et discuté des besoins, des moyens déjà utilisables. Il nous faudra prendre en compte plusieurs paramètres dans notre réflexion tels que le système de stockage et d'adressages des palettes, sens de circulation des caristes, superficie des zones à desservir, durée de livraison.&lt;br /&gt;
Nous avons suggéré des étapes de validation intermédiaire du système par les futurs utilisateurs et pour cela nous rencontrerons le chef d'équipe des magasiniers lorsque qu'une version sera assez développée.&lt;br /&gt;
&lt;br /&gt;
Nous avons défini avec le tuteur les premières deadlines du projet, voici la timeline récapitulative:&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Timeline_1.jpg||center|1000px]]&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Compte Rendu &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Nous avons rédigé un compte rendu de la première réunion détaillant les spécifications des versions des livrables, des schémas et les sujets abordés lors de la rencontre :&lt;br /&gt;
&lt;br /&gt;
'''Compte Rendu réunion du 25/09/2014 :''' [[Fichier:Compte_Rendu_25_09.pdf]]&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 29/09 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Découverte des Google Glass &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
*Prise en main des Google Glass. &lt;br /&gt;
*Installation d'applications (.apk) grand public. Nous avons utilisé l'outil Android Debug Bridge(adb). Se mettre à la place d'un utilisateur.&lt;br /&gt;
*L'une des deux lunettes qui serait retenue imposera forcément le développement d'une application android (ou d'une technologie trés proche d'android, pour les Google Glass, se basant sur le Glass Development Kit qui est un add-on au SDK classique d'android). Nous avons donc téléchargé les packages nécessaires pour commencer à développer. &lt;br /&gt;
** Nous commençons à nous former sur les technologies android :développement d'applications minimaliste.&lt;br /&gt;
** Installation de nos premières apk minimalistes pour Android.&lt;br /&gt;
** Installation d'une application minimaliste sur la Google Glass.&lt;br /&gt;
&lt;br /&gt;
Voici un comparatif réalisé entre les lunettes ORA et les Google Glass.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Différences Google Glass/ORA &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!   !! Google Glass !! ORA &lt;br /&gt;
|-&lt;br /&gt;
|Connectique&lt;br /&gt;
|Compatible BLE (à partir de la XE 16 KitKat Update), Wifi &lt;br /&gt;
|Compatible BLE, Wifi&lt;br /&gt;
|-&lt;br /&gt;
|Autonomie en utilisation normale&lt;br /&gt;
|de 1h à 2h &lt;br /&gt;
|de 4h à 8h&lt;br /&gt;
|-&lt;br /&gt;
|Son&lt;br /&gt;
|Conductivité Cranienne&lt;br /&gt;
|Prise jack&lt;br /&gt;
|-&lt;br /&gt;
|Interface&lt;br /&gt;
|Ecran occupant une faible superficie dans le champ de vision &lt;br /&gt;
|Ecran 2 positions (moyennes et basses), plus étendu permettant une réalité augmentée &lt;br /&gt;
|-&lt;br /&gt;
|Système d'exploitation&lt;br /&gt;
|Android 4.4&lt;br /&gt;
|Android 4.2.2&lt;br /&gt;
|-&lt;br /&gt;
|Calculs&lt;br /&gt;
|CPU &amp;amp; GPU&lt;br /&gt;
|CPU &amp;amp; GPU&lt;br /&gt;
|-&lt;br /&gt;
|Prix&lt;br /&gt;
|1500$ &lt;br /&gt;
|949$&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 06/10 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Deuxième rendez-vous avec le tuteur entreprise &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Nous avons fait part de notre avancée en matière de prise en main et des problèmes rencontrés en matière de développement.&lt;br /&gt;
Les lunettes ORA sont commandées elles arrivent d'ici la fin octobre.&lt;br /&gt;
&lt;br /&gt;
La première version V1 de l'application pour Google Glass à livrer pour la mi-novembre est fixée.&lt;br /&gt;
&lt;br /&gt;
En partant d'une position connue (en dur dans l'application) dans l'entrepôt, elle indiquera à un utilisateur les emplacements libres les plus proches.&lt;br /&gt;
&lt;br /&gt;
L'état d'occupation des emplacements sera consulté et stocké dans l'application. Il n'y aura donc pas de gestion des conflits. Le sens de circulation dans l'entrepôt sera pris en compte.&lt;br /&gt;
Une communication avec la base de donnée de l'entrepôt n'est pour le moment pas d'actualité, cela nécessiterait des développements en amont.&lt;br /&gt;
La géolocalisation n'est pas au goût du jour non plus. L'adressage des emplacements dans l'entrepôt est intuitif, il est donc facile pour un magasinier de &lt;br /&gt;
se rendre à un emplacement en connaissant l'adresse.&lt;br /&gt;
&lt;br /&gt;
Pour l'IHM, nous nous inspirerons des applications pour Google Glass (les Glasswares) de type GPS.&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Premiers programmes sur Google Glass &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Pour nous familiariser avec la programmation sur ce genre d'appareil nous avons tous deux décidé de suivre en premier le tutoriel Android d'un site spécialisé. Cela afin de mieux comprendre le système Android, avec les concepts d'activités, de view etc.&lt;br /&gt;
Dans un deuxième temps nous avons choisi de suivre plusieurs tutoriels nous expliquant la prise en main basique des lunettes afin de saisir les particularités de leur programmation.&lt;br /&gt;
&lt;br /&gt;
Le plus dur étant finalement de comprendre les liens entre tous les fichiers du projets, les problèmes de drivers et d'upload simple que nous avons rencontrés et l’exécution du programme sur les lunettes. Des choses que nous arrivons maintenant à maitriser mais qui était floues à l'origine.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 13/10 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Programmation et gestion des interactions &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Durant cette semaine nous avons commencé a vraiment toucher aux fonctionnalités des Glass. Pour rester en main libre, nous avons fait des recherches et commencé à programmer de la reconnaissance vocale. Nous avons ainsi crée un système de navigation basique par commande vocale dans différents menus. Pour un accès rapide à l'application et toujours dans la même optique nous avons réussi à inclure le lancement de notre logiciel à partir du &amp;quot;Ok Glass&amp;quot; menu qui est le menu de lancement d'application par commande vocale des Google Glass. Voici un aperçu du résultat:&lt;br /&gt;
[[Fichier:V0_menu.png|1000px|center]]&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Analyse et évaluation du rendu &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Le début de la prise en main des fonctionnalités des Google Glass n'a pas été facile étant donné que la plupart des fonctionnalités sont propres à ce genre d'appareil. De plus elles nécessitent des techniques spéciales de programmation qui ne sont pas toujours très utilisées donc il est parfois difficile de trouver des exemples sur internet.&lt;br /&gt;
Néanmoins après l'implémentation de ces fonctionnalités nous avons pu rencontrer quelques difficultés de reconnaissance. En effet, les Google Glass possèdent un dictionnaire de mots/phrases pour la reconnaissance vocale mais elles nous permettent aussi d'écrire n'importe quelle phrase dans le mode développeur. Les phrases du dictionnaires ne posent aucun problème mais les phrases que nous écrivons sont parfois dures à reconnaitre. La reconnaissance de lettre seule ou de certains numéros est par exemple quasi impossible ou très aléatoire.&lt;br /&gt;
Le système de vu est quant à lui plutôt facile à prendre en main et intuitif dans l'utilisation.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 20/10 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Premiere structure de donnée &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Nous avons opté pour une structure de donnée récursive. Une Cellule, contenant des Allées, qui contiennent des Baies, contenant des Rangées, contenant des Emplacements.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Structure_export_resized.png|750px|center]]&lt;br /&gt;
Nous avons conçu cette structure de donnée pour qu'elle génère, dans un premier temps &amp;quot;en dur&amp;quot;, une cellule contenant des emplacements automatiquement adressés à la manière de ceux présent dans l'entrepôt. Ces adresses sont de la forme &amp;quot;D61A514&amp;quot; traduisez &amp;quot; Cellule 6 Allée 1A Baie 5 Rang 1 Niveau 4&amp;quot;.&lt;br /&gt;
Cette structure prend on compte le sens de circulation dans l'entrepôt.&lt;br /&gt;
Lors de futures interactions avec une base de donnée, cette structure serait sujette à évolution par une modification des méthodes de génération/modification du statut des adresses en fonction de cette base de donnée. Mais celle-ci constitue essentiellement une base pour appréhender plus pratiquement les problématiques de recherches de l'emplacement le plus proche.&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Prise en main de l'interface &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Nous avons déjà abordé les layouts java en TP donc il a été assez facile de commencer à faire des interfaces graphiques simples. Nous avons construit une interface graphique simple pour de faire une démonstration du programme aux tuteurs entreprise afin qu'ils comprennent bien le fonctionnement de notre algorithme.&lt;br /&gt;
L'interface graphique finale du programme sera très sobre afin de ne pas donner trop gêner le magasinier dans sa tâche.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 27/10 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Chemin optimal : Parcours intelligent Vs Sélection intelligente &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Un premier algorithme de recherche de l'emplacement le plus proche a été développé, celui-ci ne prend en compte qu'un seul scénario. &lt;br /&gt;
Celui de la position de départ (quai de déchargement où reviendra constamment le magasinier aprés chaque livraison) correspondante à la première allée de l'entrepôt, et en prenant en compte le sens de circulation. &lt;br /&gt;
A partir de ce moment, nous avons dégager deux grandes manières d'appréhender le problème.&lt;br /&gt;
&lt;br /&gt;
* Un parcours intelligent de la structure de donnée. C'est à dire parcourir les emplacements les plus proches, et choisir le premier emplacement libre. Une solution complexe à réaliser sur le plan algorithmique. En tenant compte du sens de circulation, il apparait que l'emplacement libre &amp;quot;leplusproche&amp;quot; (à vol d'oiseau) trouvé le plus tôt, ne correspondrait pas forcément à l'emplacement le plus proche compte tenu du chemin emprunté par un magasinier. Et c'est plutôt l'intérêt de cette algorithme.(Sauf dans l'unique cas où l'emplacement libre se trouve directement dans l'allée faisant face à la position de départ du magasinier, et le sens de circulation lui permet directement de se rendre à l'emplacement sans détour).&lt;br /&gt;
&lt;br /&gt;
* Une sélection intelligente parmi les emplacements libres. Leurs adresses renseignent à quelles allées, les emplacements libres appartiennent, donc renseignent sur le sens de circulation. A partir de la position de départ du magasinier et de l'ensemble des emplacements libres, on peut calculer la distance nécessaire à celui-ci pour les atteindre. Pour ainsi choisir l'adresse pour laquelle la distance est minimale.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 3/11 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Chemin optimal : sélection intelligente des adresses &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Nous avons écrit une premiere méthode de détermination. &lt;br /&gt;
On choisit l'emplacement, parmi tous ceux qui sont libres, pour lequel la distance de parcours est minimale entre le départ et celui-ci. &lt;br /&gt;
Ici l'unité de distance est la baie. La simplicité de l'algorithme réside dans le fait que le magasinier ne transporte qu'une seule caisse à la fois et repars toujours au même point de départ.&lt;br /&gt;
&lt;br /&gt;
Ci dessous un plan de l'entrepôt.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:schema_entrepot.png|750px|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Si on se place à l'entrée de l'Allée A :&lt;br /&gt;
&lt;br /&gt;
**le déplacement jusqu'à A4 (sens de circulation direct) est de : &lt;br /&gt;
&lt;br /&gt;
                        Y baies - (indice de la baie/2 +indice de la baie % 2) &lt;br /&gt;
&lt;br /&gt;
**le déplacement jusqu'à B1 (sens de circulation indirect) est de : &lt;br /&gt;
&lt;br /&gt;
                        Y baies + différence entre l'allée A et B donc X baies + indice de la baie/2 +indice de la baie % 2&lt;br /&gt;
**le déplacement jusqu'à C1 (sens de circulation direct) est de : &lt;br /&gt;
                      &lt;br /&gt;
                        Y baies - (indice de la baie/2 +indice de la baie % 2)+différence entre l'allée A et C donc 2*X baies.&lt;br /&gt;
&lt;br /&gt;
*Si on se place à l'entrée de l'Allée B :&lt;br /&gt;
**le déplacement jusqu'à B1 (sens de circulation indirect avec contournement) est de : &lt;br /&gt;
                        &lt;br /&gt;
                        2*X baies + Y baies + 2*X baies + (indice de la baie/2 +indice de la baie % 2)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On peut généraliser l'ensemble de ces situations de déplacement avec l'algorithme suivant :&lt;br /&gt;
&lt;br /&gt;
Pseudo code&lt;br /&gt;
&lt;br /&gt;
  Leplusproche( Allee depart )&lt;br /&gt;
    distance_la_plus_petite = valeurMAX&lt;br /&gt;
      le_plus_proche=&amp;quot;&amp;quot;&lt;br /&gt;
         Pour chaque Allee de Cellule&lt;br /&gt;
           sens=Allee.sens&lt;br /&gt;
           Pour chaque Baie de Allee&lt;br /&gt;
             Pour chaque Rang de Allee&lt;br /&gt;
 	       Pour chaque Emplacement de Rang&lt;br /&gt;
                Si Emplacement estlibre &lt;br /&gt;
                &lt;br /&gt;
                indice_baie = selection_indice_baie(Emplacement.adresse)&lt;br /&gt;
   		 allee_cible = selection_indice_allee(Emplacement.adresse)  &lt;br /&gt;
   		 difference_allee = valeur_absolue(depart -cible) &lt;br /&gt;
                    Si difference_allee==0 et sens.estindirect&lt;br /&gt;
                      //sens indirect +contournement&lt;br /&gt;
                      distance_actuelle=(indice_baie/2)+indice_baie%2+(2*(difference_allee))+4*X+Y			&lt;br /&gt;
                    Sinon	&lt;br /&gt;
                        Si sens estdirect&lt;br /&gt;
                          //sens direct &lt;br /&gt;
                          distance_actuelle=(Y-((indice_baie/2)+indice_baie%2))+2*difference_allee&lt;br /&gt;
                        Sinon&lt;br /&gt;
                          //sens indirect mais pas de contournement&lt;br /&gt;
                          distance_actuelle=((indice_baie/2)+indice_baie%2)+2*difference_allee+Y&lt;br /&gt;
                        Finsi	&lt;br /&gt;
                    Finsi	&lt;br /&gt;
                    Si distance_actuelle &amp;lt; distance_la_plus_petite&lt;br /&gt;
                      le_plus_proche=Emplacement.adresse&lt;br /&gt;
                      distance_la_plus_petite=distance_actuelle&lt;br /&gt;
                    Finsi&lt;br /&gt;
                Finsi  &lt;br /&gt;
            Finpour&lt;br /&gt;
          Finpour&lt;br /&gt;
        Finpour&lt;br /&gt;
      Finpour&lt;br /&gt;
    retourne le_plus_proche&lt;br /&gt;
  Finleplusproche&lt;br /&gt;
&lt;br /&gt;
Cet algorithme nous donne satisfaction (dans le cadre de la V1)&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 10/11 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Programmation et gestion des interactions &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Aprés quelques difficultés vis à vis de la gestion des menus vocaux sur les lunettes qui ne fonctionnent pas de la même manière que les menus classiques sous android, nous avons étoffé les interactions possible avec l'application des google glass. (Nous souhaitions inflater un deuxième menu pour interagir de manière plus contextuelle, il fallait le faire dans la méthode onCreatePanelMenu dont l'appel serait forcé avec getWindow().invalidatePanelMenu(WindowUtils.FEATURE_VOICE_COMMANDS) plutôt que dans onPrepareOptionsMenu forcée par invalidateOptionMenu()...) &lt;br /&gt;
&lt;br /&gt;
schéma d'utilisation...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Proposition projet affichage télévision &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Tele_concept.png|200px|thumb|right]]&lt;br /&gt;
&lt;br /&gt;
Notre tuteur nous a contacté pour nous proposer d'étudier un second projet en parallèle au projet initial. Celui consistant à gérer l'affichage d'information personnalisé d'un magasinier passant à proximité d'un écran de télévision. Nous devons effectuer un Proof Of Concept (POC) et réfléchir à ce sujet.&lt;br /&gt;
L'utilisation du BLE est donc de nouveau d'actualité, car je rappel que sont utilité était discutable dans une réalité métier du projet initial. La question étant plus de savoir comment gérer le système du coté du téléviseur.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Le concept de base étant de :&lt;br /&gt;
* Fournir une beacon aux magasiniers de l'entrepôt.&lt;br /&gt;
* Installer une télévision sur un centre de vie dans l'entrepôt avec une beacon&lt;br /&gt;
* Pousser du contenu personnalisé au magasinier qui se présente devant la tv dans son centre de vie&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 17/11 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Brainstorming à Polytech &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Dans la cadre du POC sur l'affichage personnalisé sur une télévision, nous avons profité d'un exercice de management pour faire participer la classe à notre projet. Grâce à cette intervention nous avons pu confirmer nos idées sur les technologies à utiliser. Mais nous avons surtout eu une multitude de propositions sur les données à afficher sur l'écran.&lt;br /&gt;
&lt;br /&gt;
Pour plus détails, le compte rendu est disponible à ce lien:&lt;br /&gt;
&lt;br /&gt;
'''Compte Rendu Brainstorming 17/11/2014 :''' [[Fichier:Compte_Rendu_POC_17_11.pdf]]&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Entretien avec notre tuteur entreprise &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Durant cet entretien, nous avons livré la première version de l'application et nous avons discuté de la suite du projet.&lt;br /&gt;
Ci joint le Compte Rendu.&lt;br /&gt;
&lt;br /&gt;
'''Compte Rendu  19/11/2014 :''' [[Fichier:Compte_Rendu_19_11.pdf]]&lt;br /&gt;
&lt;br /&gt;
De cette réunion, les points suivants en sont sortis:&lt;br /&gt;
&lt;br /&gt;
*Une reconnaissance vocale en langue française sur les lunettes serait plus intéressante pour les employés (une piste serait d’utiliser l’outil pocketsphinx-  android).&lt;br /&gt;
*Par rapport à l'IHM, il faudrait mettre l’affichage au premier plan sur les Google Glass pour une démo auprés des parties prenantes du projet.&lt;br /&gt;
*Choisir une architecture pour l’affichage d’information personnalisées.&lt;br /&gt;
**La télévision connectée à une raspberry qui communiquerait via un dongle BLE avec le beacon d’un magasinier, ce qui permettrait l’identification de celui-ci prés de la Télévision, et déclencherait un processus d’échange d’information. (Communication via le protocole Bluetooh, wifi entre les lunettes et la Raspberry  ou communication avec la Raspberry avec la Base de Donnée sur le réseau de l’entreprise)&lt;br /&gt;
**Une télévision connectée en continu à un site internet via un dongle HDMI.&lt;br /&gt;
**Une tablette android géante supportant le BLE, ou utilisant un dongle BLE.&lt;br /&gt;
* Réaliser le portage de l’application sur le prototype des lunettes ORA.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 24/11 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Reconnaissance vocale en Français &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Pocket Sphinx Android est une librairie permettant de faire de la reconnaissance vocale d'un langage donné sur un système android en offline.&lt;br /&gt;
Pour supporter une langue, elle nécessite: &lt;br /&gt;
*un modèle acoustique (ensemble d'informations pour le traitement sonore)&lt;br /&gt;
*un dictionnaire associant les mots et leur phonèmes&lt;br /&gt;
*une grammaire, c'est un fichier définissant comment seraient articulé les mots à reconnaître et limitant les possibilités de langage).&lt;br /&gt;
&lt;br /&gt;
La grammaire étant un automate. Voici un exemple de la grammaire menu.gram pour la reconnaissance de la porte de déchargement.&lt;br /&gt;
[[Fichier:Arborescence_pocket_sphinx.png|200px|thumb|right|PocketSphinx dans un projet Android]]&lt;br /&gt;
&lt;br /&gt;
  #JSGF V1.0;&lt;br /&gt;
  grammar menu;&lt;br /&gt;
  &amp;lt;porte&amp;gt; = porte a |&lt;br /&gt;
            porte b |&lt;br /&gt;
            porte c |&lt;br /&gt;
            porte d |&lt;br /&gt;
            porte e |&lt;br /&gt;
            porte f |&lt;br /&gt;
            porte g |&lt;br /&gt;
            porte h |&lt;br /&gt;
            porte i |&lt;br /&gt;
            porte j ;&lt;br /&gt;
  public &amp;lt;porte&amp;gt; = &amp;lt;porte&amp;gt;+;&lt;br /&gt;
&lt;br /&gt;
Un extrait du dictionnaire french_letter.dic associé avec les phonemes&lt;br /&gt;
&lt;br /&gt;
  a aa &amp;lt;-- juste la lettre a et son phoneme &lt;br /&gt;
  autre au tt rr&lt;br /&gt;
  autre(2) au tt rr ee &lt;br /&gt;
  b bb &lt;br /&gt;
  c ss &lt;br /&gt;
  d dd ei d(2) dd ait &lt;br /&gt;
  e eu e(2) eu zz &lt;br /&gt;
  f ai ff &lt;br /&gt;
  g jj ei g(2) gg ai &lt;br /&gt;
  h aa ch  &lt;br /&gt;
  i ii &lt;br /&gt;
  j jj yy j(2) jj ii&lt;br /&gt;
  porte pp oo rr tt&lt;br /&gt;
  porte(2) pp oo rr tt ee&lt;br /&gt;
  portes(2) pp oo rr tt ee&lt;br /&gt;
  portes(3) pp oo rr tt ee zz&lt;br /&gt;
  portes(4) pp oo rr tt zz&lt;br /&gt;
&lt;br /&gt;
Le modèle acoustique que nous avons téléchargé étant inclu dans lium_french_f0&lt;br /&gt;
&lt;br /&gt;
Nous avons testé la reconnaissance vocale sur un téléphone android, les mots sont, dans la majorité des cas, bien reconnus.&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Comparaison architectures projet TV &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Au niveau de l’architecture nous avons établi plusieurs propositions après la réunion avec notre tuteur:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour une Raspberry Pi avec un dongle BLE :&lt;br /&gt;
* Installation OS Linux sur la Raspberry&lt;br /&gt;
* Librairie BlueZ pour l’utilisation du BLE (tests rapides effectués sur Linux avec le Dongle)&lt;br /&gt;
* Interface graphique avec une bibliothèque comme Qt (ou encore SDL…)&lt;br /&gt;
* Prix : Rpi = 26€ (chez RadioSpare), Dongle = 10€, TV = à partir de 358€ pour 117cm, + Connectique vidéo. Total = 394€&lt;br /&gt;
&lt;br /&gt;
Pour un écran ViewSonic VSD231 :&lt;br /&gt;
* Possède une API Bluetooth classic + API BLE&lt;br /&gt;
* Interface graphique Android (View, Layout...)&lt;br /&gt;
* Prix : écran ViewSonic VSD231 = 558 € pour 58 cm (chez ViewSonic).&lt;br /&gt;
&lt;br /&gt;
Récupération d’informations :&lt;br /&gt;
* Si données sur les lunettes : Bluetooth ou Wifi.&lt;br /&gt;
* Si données sur serveur : Ethernet ou Wifi.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Vu les propositions possibles nous pensons que la première proposition permettra une meilleure souplesse dans le développement mais serait un peu plus compliquée. Mais nous la trouvons aussi plus intéressante à faire de plus elle est moins coûteuse et permet d'utiliser un écran plus grand. Le développement sur tablette serait sûrement plus rapide à faire en contrepartie.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 01/12 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Conférence GlassCamp à l'Imaginarium &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
GlassCamp est une association qui essaye de répandre l'utilisation de toute les Smart Glass en général. Elle propose de multiples conférences dans lesquelles ils essayent de montrer au public l’intérêt de développer sur ces appareils. Dans le cadre de notre projet, notre tuteur nous a proposé de participer à cette présentation afin de mieux s’approprier le sujet. La conférence a eu lieu le 4 décembre à l'Imaginarium: une grande partie était plutôt tournée vers la présentation mais nous avons apprîs plusieurs choses intéressantes qui sont décrites dans le compte rendu.&lt;br /&gt;
&lt;br /&gt;
'''Compte Rendu Conférence 04/12/2014 :''' [[Fichier:Compte_Rendu_Conf_GlassCamp.pdf]]&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaines du 08/12 et 15/12 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Reconnaissance vocale en Français &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Nous avons avancé sur la version française de l'application. A la manière du menu vocal des google glass, nous avons utilisé un délimiteur&lt;br /&gt;
&amp;quot;ok lunettes&amp;quot; pour démarrer l'interaction avec l'application, afin que les discussions et bruits ambiants n'interfèrent pas sur l'utilisation de celle-ci.&lt;br /&gt;
Voici le scénario d'utilisation de la nouvelle version de l'application en Français.&lt;br /&gt;
[[Fichier:Schema_fr.png|700px|center]]&lt;br /&gt;
&lt;br /&gt;
Sous pocketsphinx, le délimiteur n'apparait pas dans une grammaire. La grammaire permet de prédestiner l'application à choisir entre deux mots. &lt;br /&gt;
Dans notre application, le moteur de reconnaissance vocale choisi la distance la plus courte, séparant le mot prononcé par l'utilisateur et ceux&lt;br /&gt;
qu'il est possible d'entendre. Ainsi entre &amp;quot;oui&amp;quot; et &amp;quot;non&amp;quot;, l'application choisira forcément l'un des deux, même si l'utilisateur dit &amp;quot;bonjour&amp;quot;&lt;br /&gt;
&lt;br /&gt;
L'avantage du délimiteur est que sa détection repose sur un seuillage entre ce qui est prononcé et ce qui doit être reconnu, nous pouvons régler ce seuil.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 05/01 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Entretien avec notre tuteur &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Durant cet entretien nous avons défini les évolutions du projet.&lt;br /&gt;
&lt;br /&gt;
'''Compte Rendu de l'entretien du 06/01/2015 :''' [[Fichier:Compte_Rendu_4.pdf]]&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 12/01 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; TV connectée &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Nous avons pris en main la détection des beacons (de la marque Estimote fournis par l'entreprise) dans les systèmes android.&lt;br /&gt;
L'adresse MAC et le RSSI sont accessibles, ce sont les seules informations nécessaires que nous avons besoin en ce qui concerne les beacons.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 19/01 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Interfaces_exemple.png|100px|thumb|right]]&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt;Interface TV &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Nous avons développé plusieurs exemples d'interfaces avec les instructions de notre tuteur afin de choisir les meilleurs résultats ensembles. Nous avons défini quelques contraintes pour le design. Elle doit être&lt;br /&gt;
* Simple et intuitive&lt;br /&gt;
* En accord avec les couleurs de l'entreprise&lt;br /&gt;
* Moderne (système de tuile ou autre)&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 26/01 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Entretien avec notre tuteur &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Durant cette entretien nous avons défini plus précisément les objectifs du projet.&lt;br /&gt;
Ci dessous le compte rendu.&lt;br /&gt;
&lt;br /&gt;
'''Compte Rendu de l'entretien du 26/01/2015 :''' [[Fichier:Compte_Rendu_5.pdf]]&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 02/02 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Portage d'une application de SmartPicking sur les Google Glass &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Une application android main libre pour les ORA glasses a été développé pour permettre à l'entreprise, &lt;br /&gt;
d'accélerer les opérations de picking(prélévement à l'article) en entrepôt. Celle-ci était à destination des lunettes ORA de Optinvent.&lt;br /&gt;
Notre tuteur souhaitait donc que nous réalisions le portage de cette application vers les google glass. Le but étant de comparer l'usage de cette application sur deux supports différents entre les lunettes. &lt;br /&gt;
&lt;br /&gt;
*Nous avons procédé à des ajustements au niveau de la gestion des layouts de l'interface, à équilibrer la places qu'occupe certaines informations données par l'application.&lt;br /&gt;
*Cette application communique par bluetooth avec une autre application lancée sur une tablette android, cette dernière permet de réaliser l'appairage avec la smartglass. La tablette étant la seule à être connectée au serveur de l'entreprise (l'AS400) via un réseau sécurisé. Nous avons du appairer manuellement les glass avec la tablette, et retirer dans le code le lancement d'un intent permettant aux lunettes de se rendre visible sur le réseau. Lorsque cet intent est lancé il génère une exception non attendue qui ne concerne que les google glass. Aprés recherches sur le net, il semble que c'est un problème récurrent qui a été signalé mais pas encore résolu.&lt;br /&gt;
&lt;br /&gt;
Ci dessous des screenshot de l'application en question adaptée par nos soins :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Schema_picking.png|800px|center]]&lt;br /&gt;
&lt;br /&gt;
L'écran de gauche, correspond à la phase de prélévement d'un article ici &amp;quot;VE RAINCUT TRUE BLACK SS14&amp;quot; une veste à l'adresse C4FU-10-1-3, il faut en prélever 12, et le tableau à gauche correspond à la façade de l'étagère concernée, il indique grossièrement (case verte) le carton à déballer, en partant du principe que l'utilisateur respecte le sens de circulation de l'entrepôt.&lt;br /&gt;
L'écran de droite, correspond à la phase de dépôt des articles dans le chariot de l'utilisateur, il lui indique dans quel compartiment le placer.&lt;br /&gt;
&lt;br /&gt;
Nous avons participé à une demi-journée de test en production avec le responsable du picking, le responsable innovation, notre tuteur et d'autres parties prenantes du projet. La version sur les google glass a bien rempli son rôle à la manière de la version originale sur les ORA one, les préférences des parties prenantes se sont portés essentiellement sur les avantages qu'offrent les supports.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 09/02 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Connectivité android et TV connectée &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Pour tester la connectivité de l'application sur la tablette géante, dans le cadre de la fonctionnalité de TV connectée, nous voulions une base de donnée accessible depuis n'importe où, nous avons donc profité d'un outil de l'école  &lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 16/02 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Portage d'une application de SmartPicking sur les Google Glass &amp;lt;/font&amp;gt;===&lt;/div&gt;</summary>
		<author><name>Jgondry</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=P22_Google_Glass_en_logistique&amp;diff=17104</id>
		<title>P22 Google Glass en logistique</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=P22_Google_Glass_en_logistique&amp;diff=17104"/>
				<updated>2015-02-18T08:15:53Z</updated>
		
		<summary type="html">&lt;p&gt;Jgondry : /*  Portage d'une application de SmartPicking sur les Google Glass  */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Introduction =&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Description du sujet &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
Notre projet vise à l’optimisation du stockage et de l’adressage des palettes dans un entrepôt. En effet, lors du déchargement d’un camion, chercher un emplacement libre pour les palettes dans un entrepôt occupant une grande superficie fait perdre du temps et donc de la productivité dans le stockage. Sachant qu’un cariste perd un temps non négligeable à la recherche d’emplacement disponible, optimiser ce temps de recherche permettrait de gagner du temps sur cette opération.&lt;br /&gt;
Développer un prototype permettrait de rendre compte des moyens existants qui pourrait être mis en place dans une solution métier.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Analyse du sujet &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Google_glass.png|200px|thumb|right|Paire de Google Glass]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Optinvent_ora.png|200px|thumb|right|Paire de ORA d'Optivent]]&lt;br /&gt;
&lt;br /&gt;
Notre projet consiste à fluidifier le déchargement en indiquant au cariste l’emplacement libre le plus proche. Pour ne pas gêner le travail des employés, un dispositif main-libre comme une Google Glass semble adapté. Ce projet soulève plusieurs problématiques : développer une interface homme-machine apportant une information pertinente pour l’utilisateur sans pour autant être perturbante. &lt;br /&gt;
&lt;br /&gt;
L’idée serait de réaliser dans les grandes lignes un système similaire à ce scénario d’utilisation :&lt;br /&gt;
http://n.mynews.ly/!lB.Bs4fw&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Moyen d’affichage de l’Informations pertinentes'''&lt;br /&gt;
&lt;br /&gt;
Les Google Glass ne sont pas les seules smart glasses sur le marché. Il nous faudra choisir les appareils les plus adaptés. L’information pertinente pourrait être une direction à suivre dans l’entrepôt ou simplement un numéro d’emplacement (adressage intuitif de l’entrepôt). &lt;br /&gt;
&lt;br /&gt;
'''Géolocalisation'''&lt;br /&gt;
&lt;br /&gt;
Dans le cas d’une direction à suivre se pose le problème de la géolocalisation indoor dont l’utilité et la faisabilité seront discutés au fil des réunions avec l’entreprise. &lt;br /&gt;
&lt;br /&gt;
'''Adressage / flashage'''&lt;br /&gt;
&lt;br /&gt;
En ce qui concerne l’adressage des palettes en entrepôt, la solution existante repose sur un flashage des codes barres associés à l’emplacement venant d’être occupé. Une étude de faisabilité/utilité sera aussi faite sur une solution de remplacement grâce aux possibilités qu’offrent les smart glasses.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Cahier des charges &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
En partant de l'analyse du sujet et des discussion avec notre tuteur, nous avons définie un cahier des charges plus précis des tâches à accomplir:&lt;br /&gt;
&lt;br /&gt;
* '''Développer un système embarqué sur une paire de lunette Smart Glass'''&lt;br /&gt;
** Comparer les différentes offres en matière de Smart Glass notamment Google Glass &amp;amp; ORA de Optinvent&lt;br /&gt;
** Concevoir une interface homme-machine non perturbante pour l'utilisateur.&lt;br /&gt;
* '''Etudier la nécessité d'utiliser une géolocalisation en entrepôt et l'implémenter si besoin'''&lt;br /&gt;
** Via RSSI (Wifi, Bluetooh Low Energy ...)&lt;br /&gt;
** Via traitement d'images (reconnaissance de la signalétique en entrepôt)&lt;br /&gt;
* '''Etudier les possibilités d'optimisation du système d'adressage des palettes'''&lt;br /&gt;
** Implémenter la reconnaissance de code barre&lt;br /&gt;
** La tester en réalité métier (utilité ajoutée, habitude des magasiniers, vitesse de traitement...)&lt;br /&gt;
&lt;br /&gt;
Le cahier des charges est encore en cours de construction&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Matériel utilisé &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; SmartGlass &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Lors de la réunion nous avons discuté des technologies à utiliser dans le projet, et plus particulièrement des différentes SmartGlass. En effet, il existe une multitude de sociétés qui développe ce genre de lunettes. Nous commencerons à utiliser les Google Glass étant donné que notre tuteur en a déjà commandé puis nous développerons sur les lunettes ORA de Optivent qui seront livrées fin octobre. Nous devrons donc faire un comparatif entre ces deux SmartGlass puis étudier les autres appareils disponibles sur le marché.&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Localisation &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
L'utilisation de la géolocalisation dans le projet est à débattre. Mais des tests seront probablement mis en place. L'entreprise possède quelque iBeacons BLE Estimote dans ses bureaux d'innovations que nous pourrons emprunter.&lt;br /&gt;
Dans le cas où leur gain d'informations serait utile il nous faudra comparer les modèles disponibles. Choisir un nombre de module et des emplacements stratégiques dans l'entrepôt afin d'avoir une localisation assez précise pour l'application.&lt;br /&gt;
&lt;br /&gt;
L'utilisation d'autres technologies de géolocalisation a été discuté comme le Wifi ou le XBee mais le BLE semblait le plus adapté dans le cadre de notre projet.&lt;br /&gt;
&lt;br /&gt;
= Déroulement du projet =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 22/09 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Réunion avec le tuteur entreprise dans l’entrepôt &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Nous avons observé en situation le problème et discuté des besoins, des moyens déjà utilisables. Il nous faudra prendre en compte plusieurs paramètres dans notre réflexion tels que le système de stockage et d'adressages des palettes, sens de circulation des caristes, superficie des zones à desservir, durée de livraison.&lt;br /&gt;
Nous avons suggéré des étapes de validation intermédiaire du système par les futurs utilisateurs et pour cela nous rencontrerons le chef d'équipe des magasiniers lorsque qu'une version sera assez développée.&lt;br /&gt;
&lt;br /&gt;
Nous avons défini avec le tuteur les premières deadlines du projet, voici la timeline récapitulative:&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Timeline_1.jpg||center|1000px]]&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Compte Rendu &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Nous avons rédigé un compte rendu de la première réunion détaillant les spécifications des versions des livrables, des schémas et les sujets abordés lors de la rencontre :&lt;br /&gt;
&lt;br /&gt;
'''Compte Rendu réunion du 25/09/2014 :''' [[Fichier:Compte_Rendu_25_09.pdf]]&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 29/09 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Découverte des Google Glass &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
*Prise en main des Google Glass. &lt;br /&gt;
*Installation d'applications (.apk) grand public. Nous avons utilisé l'outil Android Debug Bridge(adb). Se mettre à la place d'un utilisateur.&lt;br /&gt;
*L'une des deux lunettes qui serait retenue imposera forcément le développement d'une application android (ou d'une technologie trés proche d'android, pour les Google Glass, se basant sur le Glass Development Kit qui est un add-on au SDK classique d'android). Nous avons donc téléchargé les packages nécessaires pour commencer à développer. &lt;br /&gt;
** Nous commençons à nous former sur les technologies android :développement d'applications minimaliste.&lt;br /&gt;
** Installation de nos premières apk minimalistes pour Android.&lt;br /&gt;
** Installation d'une application minimaliste sur la Google Glass.&lt;br /&gt;
&lt;br /&gt;
Voici un comparatif réalisé entre les lunettes ORA et les Google Glass.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Différences Google Glass/ORA &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!   !! Google Glass !! ORA &lt;br /&gt;
|-&lt;br /&gt;
|Connectique&lt;br /&gt;
|Compatible BLE (à partir de la XE 16 KitKat Update), Wifi &lt;br /&gt;
|Compatible BLE, Wifi&lt;br /&gt;
|-&lt;br /&gt;
|Autonomie en utilisation normale&lt;br /&gt;
|de 1h à 2h &lt;br /&gt;
|de 4h à 8h&lt;br /&gt;
|-&lt;br /&gt;
|Son&lt;br /&gt;
|Conductivité Cranienne&lt;br /&gt;
|Prise jack&lt;br /&gt;
|-&lt;br /&gt;
|Interface&lt;br /&gt;
|Ecran occupant une faible superficie dans le champ de vision &lt;br /&gt;
|Ecran 2 positions (moyennes et basses), plus étendu permettant une réalité augmentée &lt;br /&gt;
|-&lt;br /&gt;
|Système d'exploitation&lt;br /&gt;
|Android 4.4&lt;br /&gt;
|Android 4.2.2&lt;br /&gt;
|-&lt;br /&gt;
|Calculs&lt;br /&gt;
|CPU &amp;amp; GPU&lt;br /&gt;
|CPU &amp;amp; GPU&lt;br /&gt;
|-&lt;br /&gt;
|Prix&lt;br /&gt;
|1500$ &lt;br /&gt;
|949$&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 06/10 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Deuxième rendez-vous avec le tuteur entreprise &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Nous avons fait part de notre avancée en matière de prise en main et des problèmes rencontrés en matière de développement.&lt;br /&gt;
Les lunettes ORA sont commandées elles arrivent d'ici la fin octobre.&lt;br /&gt;
&lt;br /&gt;
La première version V1 de l'application pour Google Glass à livrer pour la mi-novembre est fixée.&lt;br /&gt;
&lt;br /&gt;
En partant d'une position connue (en dur dans l'application) dans l'entrepôt, elle indiquera à un utilisateur les emplacements libres les plus proches.&lt;br /&gt;
&lt;br /&gt;
L'état d'occupation des emplacements sera consulté et stocké dans l'application. Il n'y aura donc pas de gestion des conflits. Le sens de circulation dans l'entrepôt sera pris en compte.&lt;br /&gt;
Une communication avec la base de donnée de l'entrepôt n'est pour le moment pas d'actualité, cela nécessiterait des développements en amont.&lt;br /&gt;
La géolocalisation n'est pas au goût du jour non plus. L'adressage des emplacements dans l'entrepôt est intuitif, il est donc facile pour un magasinier de &lt;br /&gt;
se rendre à un emplacement en connaissant l'adresse.&lt;br /&gt;
&lt;br /&gt;
Pour l'IHM, nous nous inspirerons des applications pour Google Glass (les Glasswares) de type GPS.&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Premiers programmes sur Google Glass &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Pour nous familiariser avec la programmation sur ce genre d'appareil nous avons tous deux décidé de suivre en premier le tutoriel Android d'un site spécialisé. Cela afin de mieux comprendre le système Android, avec les concepts d'activités, de view etc.&lt;br /&gt;
Dans un deuxième temps nous avons choisi de suivre plusieurs tutoriels nous expliquant la prise en main basique des lunettes afin de saisir les particularités de leur programmation.&lt;br /&gt;
&lt;br /&gt;
Le plus dur étant finalement de comprendre les liens entre tous les fichiers du projets, les problèmes de drivers et d'upload simple que nous avons rencontrés et l’exécution du programme sur les lunettes. Des choses que nous arrivons maintenant à maitriser mais qui était floues à l'origine.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 13/10 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Programmation et gestion des interactions &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Durant cette semaine nous avons commencé a vraiment toucher aux fonctionnalités des Glass. Pour rester en main libre, nous avons fait des recherches et commencé à programmer de la reconnaissance vocale. Nous avons ainsi crée un système de navigation basique par commande vocale dans différents menus. Pour un accès rapide à l'application et toujours dans la même optique nous avons réussi à inclure le lancement de notre logiciel à partir du &amp;quot;Ok Glass&amp;quot; menu qui est le menu de lancement d'application par commande vocale des Google Glass. Voici un aperçu du résultat:&lt;br /&gt;
[[Fichier:V0_menu.png|1000px|center]]&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Analyse et évaluation du rendu &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Le début de la prise en main des fonctionnalités des Google Glass n'a pas été facile étant donné que la plupart des fonctionnalités sont propres à ce genre d'appareil. De plus elles nécessitent des techniques spéciales de programmation qui ne sont pas toujours très utilisées donc il est parfois difficile de trouver des exemples sur internet.&lt;br /&gt;
Néanmoins après l'implémentation de ces fonctionnalités nous avons pu rencontrer quelques difficultés de reconnaissance. En effet, les Google Glass possèdent un dictionnaire de mots/phrases pour la reconnaissance vocale mais elles nous permettent aussi d'écrire n'importe quelle phrase dans le mode développeur. Les phrases du dictionnaires ne posent aucun problème mais les phrases que nous écrivons sont parfois dures à reconnaitre. La reconnaissance de lettre seule ou de certains numéros est par exemple quasi impossible ou très aléatoire.&lt;br /&gt;
Le système de vu est quant à lui plutôt facile à prendre en main et intuitif dans l'utilisation.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 20/10 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Premiere structure de donnée &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Nous avons opté pour une structure de donnée récursive. Une Cellule, contenant des Allées, qui contiennent des Baies, contenant des Rangées, contenant des Emplacements.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Structure_export_resized.png|750px|center]]&lt;br /&gt;
Nous avons conçu cette structure de donnée pour qu'elle génère, dans un premier temps &amp;quot;en dur&amp;quot;, une cellule contenant des emplacements automatiquement adressés à la manière de ceux présent dans l'entrepôt. Ces adresses sont de la forme &amp;quot;D61A514&amp;quot; traduisez &amp;quot; Cellule 6 Allée 1A Baie 5 Rang 1 Niveau 4&amp;quot;.&lt;br /&gt;
Cette structure prend on compte le sens de circulation dans l'entrepôt.&lt;br /&gt;
Lors de futures interactions avec une base de donnée, cette structure serait sujette à évolution par une modification des méthodes de génération/modification du statut des adresses en fonction de cette base de donnée. Mais celle-ci constitue essentiellement une base pour appréhender plus pratiquement les problématiques de recherches de l'emplacement le plus proche.&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Prise en main de l'interface &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Nous avons déjà abordé les layouts java en TP donc il a été assez facile de commencer à faire des interfaces graphiques simples. Nous avons construit une interface graphique simple pour de faire une démonstration du programme aux tuteurs entreprise afin qu'ils comprennent bien le fonctionnement de notre algorithme.&lt;br /&gt;
L'interface graphique finale du programme sera très sobre afin de ne pas donner trop gêner le magasinier dans sa tâche.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 27/10 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Chemin optimal : Parcours intelligent Vs Sélection intelligente &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Un premier algorithme de recherche de l'emplacement le plus proche a été développé, celui-ci ne prend en compte qu'un seul scénario. &lt;br /&gt;
Celui de la position de départ (quai de déchargement où reviendra constamment le magasinier aprés chaque livraison) correspondante à la première allée de l'entrepôt, et en prenant en compte le sens de circulation. &lt;br /&gt;
A partir de ce moment, nous avons dégager deux grandes manières d'appréhender le problème.&lt;br /&gt;
&lt;br /&gt;
* Un parcours intelligent de la structure de donnée. C'est à dire parcourir les emplacements les plus proches, et choisir le premier emplacement libre. Une solution complexe à réaliser sur le plan algorithmique. En tenant compte du sens de circulation, il apparait que l'emplacement libre &amp;quot;leplusproche&amp;quot; (à vol d'oiseau) trouvé le plus tôt, ne correspondrait pas forcément à l'emplacement le plus proche compte tenu du chemin emprunté par un magasinier. Et c'est plutôt l'intérêt de cette algorithme.(Sauf dans l'unique cas où l'emplacement libre se trouve directement dans l'allée faisant face à la position de départ du magasinier, et le sens de circulation lui permet directement de se rendre à l'emplacement sans détour).&lt;br /&gt;
&lt;br /&gt;
* Une sélection intelligente parmi les emplacements libres. Leurs adresses renseignent à quelles allées, les emplacements libres appartiennent, donc renseignent sur le sens de circulation. A partir de la position de départ du magasinier et de l'ensemble des emplacements libres, on peut calculer la distance nécessaire à celui-ci pour les atteindre. Pour ainsi choisir l'adresse pour laquelle la distance est minimale.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 3/11 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Chemin optimal : sélection intelligente des adresses &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Nous avons écrit une premiere méthode de détermination. &lt;br /&gt;
On choisit l'emplacement, parmi tous ceux qui sont libres, pour lequel la distance de parcours est minimale entre le départ et celui-ci. &lt;br /&gt;
Ici l'unité de distance est la baie. La simplicité de l'algorithme réside dans le fait que le magasinier ne transporte qu'une seule caisse à la fois et repars toujours au même point de départ.&lt;br /&gt;
&lt;br /&gt;
Ci dessous un plan de l'entrepôt.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:schema_entrepot.png|750px|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Si on se place à l'entrée de l'Allée A :&lt;br /&gt;
&lt;br /&gt;
**le déplacement jusqu'à A4 (sens de circulation direct) est de : &lt;br /&gt;
&lt;br /&gt;
                        Y baies - (indice de la baie/2 +indice de la baie % 2) &lt;br /&gt;
&lt;br /&gt;
**le déplacement jusqu'à B1 (sens de circulation indirect) est de : &lt;br /&gt;
&lt;br /&gt;
                        Y baies + différence entre l'allée A et B donc X baies + indice de la baie/2 +indice de la baie % 2&lt;br /&gt;
**le déplacement jusqu'à C1 (sens de circulation direct) est de : &lt;br /&gt;
                      &lt;br /&gt;
                        Y baies - (indice de la baie/2 +indice de la baie % 2)+différence entre l'allée A et C donc 2*X baies.&lt;br /&gt;
&lt;br /&gt;
*Si on se place à l'entrée de l'Allée B :&lt;br /&gt;
**le déplacement jusqu'à B1 (sens de circulation indirect avec contournement) est de : &lt;br /&gt;
                        &lt;br /&gt;
                        2*X baies + Y baies + 2*X baies + (indice de la baie/2 +indice de la baie % 2)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On peut généraliser l'ensemble de ces situations de déplacement avec l'algorithme suivant :&lt;br /&gt;
&lt;br /&gt;
Pseudo code&lt;br /&gt;
&lt;br /&gt;
  Leplusproche( Allee depart )&lt;br /&gt;
    distance_la_plus_petite = valeurMAX&lt;br /&gt;
      le_plus_proche=&amp;quot;&amp;quot;&lt;br /&gt;
         Pour chaque Allee de Cellule&lt;br /&gt;
           sens=Allee.sens&lt;br /&gt;
           Pour chaque Baie de Allee&lt;br /&gt;
             Pour chaque Rang de Allee&lt;br /&gt;
 	       Pour chaque Emplacement de Rang&lt;br /&gt;
                Si Emplacement estlibre &lt;br /&gt;
                &lt;br /&gt;
                indice_baie = selection_indice_baie(Emplacement.adresse)&lt;br /&gt;
   		 allee_cible = selection_indice_allee(Emplacement.adresse)  &lt;br /&gt;
   		 difference_allee = valeur_absolue(depart -cible) &lt;br /&gt;
                    Si difference_allee==0 et sens.estindirect&lt;br /&gt;
                      //sens indirect +contournement&lt;br /&gt;
                      distance_actuelle=(indice_baie/2)+indice_baie%2+(2*(difference_allee))+4*X+Y			&lt;br /&gt;
                    Sinon	&lt;br /&gt;
                        Si sens estdirect&lt;br /&gt;
                          //sens direct &lt;br /&gt;
                          distance_actuelle=(Y-((indice_baie/2)+indice_baie%2))+2*difference_allee&lt;br /&gt;
                        Sinon&lt;br /&gt;
                          //sens indirect mais pas de contournement&lt;br /&gt;
                          distance_actuelle=((indice_baie/2)+indice_baie%2)+2*difference_allee+Y&lt;br /&gt;
                        Finsi	&lt;br /&gt;
                    Finsi	&lt;br /&gt;
                    Si distance_actuelle &amp;lt; distance_la_plus_petite&lt;br /&gt;
                      le_plus_proche=Emplacement.adresse&lt;br /&gt;
                      distance_la_plus_petite=distance_actuelle&lt;br /&gt;
                    Finsi&lt;br /&gt;
                Finsi  &lt;br /&gt;
            Finpour&lt;br /&gt;
          Finpour&lt;br /&gt;
        Finpour&lt;br /&gt;
      Finpour&lt;br /&gt;
    retourne le_plus_proche&lt;br /&gt;
  Finleplusproche&lt;br /&gt;
&lt;br /&gt;
Cet algorithme nous donne satisfaction (dans le cadre de la V1)&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 10/11 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Programmation et gestion des interactions &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Aprés quelques difficultés vis à vis de la gestion des menus vocaux sur les lunettes qui ne fonctionnent pas de la même manière que les menus classiques sous android, nous avons étoffé les interactions possible avec l'application des google glass. (Nous souhaitions inflater un deuxième menu pour interagir de manière plus contextuelle, il fallait le faire dans la méthode onCreatePanelMenu dont l'appel serait forcé avec getWindow().invalidatePanelMenu(WindowUtils.FEATURE_VOICE_COMMANDS) plutôt que dans onPrepareOptionsMenu forcée par invalidateOptionMenu()...) &lt;br /&gt;
&lt;br /&gt;
schéma d'utilisation...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Proposition projet affichage télévision &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Tele_concept.png|200px|thumb|right]]&lt;br /&gt;
&lt;br /&gt;
Notre tuteur nous a contacté pour nous proposer d'étudier un second projet en parallèle au projet initial. Celui consistant à gérer l'affichage d'information personnalisé d'un magasinier passant à proximité d'un écran de télévision. Nous devons effectuer un Proof Of Concept (POC) et réfléchir à ce sujet.&lt;br /&gt;
L'utilisation du BLE est donc de nouveau d'actualité, car je rappel que sont utilité était discutable dans une réalité métier du projet initial. La question étant plus de savoir comment gérer le système du coté du téléviseur.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Le concept de base étant de :&lt;br /&gt;
* Fournir une beacon aux magasiniers de l'entrepôt.&lt;br /&gt;
* Installer une télévision sur un centre de vie dans l'entrepôt avec une beacon&lt;br /&gt;
* Pousser du contenu personnalisé au magasinier qui se présente devant la tv dans son centre de vie&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 17/11 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Brainstorming à Polytech &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Dans la cadre du POC sur l'affichage personnalisé sur une télévision, nous avons profité d'un exercice de management pour faire participer la classe à notre projet. Grâce à cette intervention nous avons pu confirmer nos idées sur les technologies à utiliser. Mais nous avons surtout eu une multitude de propositions sur les données à afficher sur l'écran.&lt;br /&gt;
&lt;br /&gt;
Pour plus détails, le compte rendu est disponible à ce lien:&lt;br /&gt;
&lt;br /&gt;
'''Compte Rendu Brainstorming 17/11/2014 :''' [[Fichier:Compte_Rendu_POC_17_11.pdf]]&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Entretien avec notre tuteur entreprise &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Durant cet entretien, nous avons livré la première version de l'application et nous avons discuté de la suite du projet.&lt;br /&gt;
Ci joint le Compte Rendu.&lt;br /&gt;
&lt;br /&gt;
'''Compte Rendu  19/11/2014 :''' [[Fichier:Compte_Rendu_19_11.pdf]]&lt;br /&gt;
&lt;br /&gt;
De cette réunion, les points suivants en sont sortis:&lt;br /&gt;
&lt;br /&gt;
*Une reconnaissance vocale en langue française sur les lunettes serait plus intéressante pour les employés (une piste serait d’utiliser l’outil pocketsphinx-  android).&lt;br /&gt;
*Par rapport à l'IHM, il faudrait mettre l’affichage au premier plan sur les Google Glass pour une démo auprés des parties prenantes du projet.&lt;br /&gt;
*Choisir une architecture pour l’affichage d’information personnalisées.&lt;br /&gt;
**La télévision connectée à une raspberry qui communiquerait via un dongle BLE avec le beacon d’un magasinier, ce qui permettrait l’identification de celui-ci prés de la Télévision, et déclencherait un processus d’échange d’information. (Communication via le protocole Bluetooh, wifi entre les lunettes et la Raspberry  ou communication avec la Raspberry avec la Base de Donnée sur le réseau de l’entreprise)&lt;br /&gt;
**Une télévision connectée en continu à un site internet via un dongle HDMI.&lt;br /&gt;
**Une tablette android géante supportant le BLE, ou utilisant un dongle BLE.&lt;br /&gt;
* Réaliser le portage de l’application sur le prototype des lunettes ORA.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 24/11 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Reconnaissance vocale en Français &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Pocket Sphinx Android est une librairie permettant de faire de la reconnaissance vocale d'un langage donné sur un système android en offline.&lt;br /&gt;
Pour supporter une langue, elle nécessite: &lt;br /&gt;
*un modèle acoustique (ensemble d'informations pour le traitement sonore)&lt;br /&gt;
*un dictionnaire associant les mots et leur phonèmes&lt;br /&gt;
*une grammaire, c'est un fichier définissant comment seraient articulé les mots à reconnaître et limitant les possibilités de langage).&lt;br /&gt;
&lt;br /&gt;
La grammaire étant un automate. Voici un exemple de la grammaire menu.gram pour la reconnaissance de la porte de déchargement.&lt;br /&gt;
[[Fichier:Arborescence_pocket_sphinx.png|200px|thumb|right|PocketSphinx dans un projet Android]]&lt;br /&gt;
&lt;br /&gt;
  #JSGF V1.0;&lt;br /&gt;
  grammar menu;&lt;br /&gt;
  &amp;lt;porte&amp;gt; = porte a |&lt;br /&gt;
            porte b |&lt;br /&gt;
            porte c |&lt;br /&gt;
            porte d |&lt;br /&gt;
            porte e |&lt;br /&gt;
            porte f |&lt;br /&gt;
            porte g |&lt;br /&gt;
            porte h |&lt;br /&gt;
            porte i |&lt;br /&gt;
            porte j ;&lt;br /&gt;
  public &amp;lt;porte&amp;gt; = &amp;lt;porte&amp;gt;+;&lt;br /&gt;
&lt;br /&gt;
Un extrait du dictionnaire french_letter.dic associé avec les phonemes&lt;br /&gt;
&lt;br /&gt;
  a aa &amp;lt;-- juste la lettre a et son phoneme &lt;br /&gt;
  autre au tt rr&lt;br /&gt;
  autre(2) au tt rr ee &lt;br /&gt;
  b bb &lt;br /&gt;
  c ss &lt;br /&gt;
  d dd ei d(2) dd ait &lt;br /&gt;
  e eu e(2) eu zz &lt;br /&gt;
  f ai ff &lt;br /&gt;
  g jj ei g(2) gg ai &lt;br /&gt;
  h aa ch  &lt;br /&gt;
  i ii &lt;br /&gt;
  j jj yy j(2) jj ii&lt;br /&gt;
  porte pp oo rr tt&lt;br /&gt;
  porte(2) pp oo rr tt ee&lt;br /&gt;
  portes(2) pp oo rr tt ee&lt;br /&gt;
  portes(3) pp oo rr tt ee zz&lt;br /&gt;
  portes(4) pp oo rr tt zz&lt;br /&gt;
&lt;br /&gt;
Le modèle acoustique que nous avons téléchargé étant inclu dans lium_french_f0&lt;br /&gt;
&lt;br /&gt;
Nous avons testé la reconnaissance vocale sur un téléphone android, les mots sont, dans la majorité des cas, bien reconnus.&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Comparaison architectures projet TV &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Au niveau de l’architecture nous avons établi plusieurs propositions après la réunion avec notre tuteur:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour une Raspberry Pi avec un dongle BLE :&lt;br /&gt;
* Installation OS Linux sur la Raspberry&lt;br /&gt;
* Librairie BlueZ pour l’utilisation du BLE (tests rapides effectués sur Linux avec le Dongle)&lt;br /&gt;
* Interface graphique avec une bibliothèque comme Qt (ou encore SDL…)&lt;br /&gt;
* Prix : Rpi = 26€ (chez RadioSpare), Dongle = 10€, TV = à partir de 358€ pour 117cm, + Connectique vidéo. Total = 394€&lt;br /&gt;
&lt;br /&gt;
Pour un écran ViewSonic VSD231 :&lt;br /&gt;
* Possède une API Bluetooth classic + API BLE&lt;br /&gt;
* Interface graphique Android (View, Layout...)&lt;br /&gt;
* Prix : écran ViewSonic VSD231 = 558 € pour 58 cm (chez ViewSonic).&lt;br /&gt;
&lt;br /&gt;
Récupération d’informations :&lt;br /&gt;
* Si données sur les lunettes : Bluetooth ou Wifi.&lt;br /&gt;
* Si données sur serveur : Ethernet ou Wifi.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Vu les propositions possibles nous pensons que la première proposition permettra une meilleure souplesse dans le développement mais serait un peu plus compliquée. Mais nous la trouvons aussi plus intéressante à faire de plus elle est moins coûteuse et permet d'utiliser un écran plus grand. Le développement sur tablette serait sûrement plus rapide à faire en contrepartie.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 01/12 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Conférence GlassCamp à l'Imaginarium &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
GlassCamp est une association qui essaye de répandre l'utilisation de toute les Smart Glass en général. Elle propose de multiples conférences dans lesquelles ils essayent de montrer au public l’intérêt de développer sur ces appareils. Dans le cadre de notre projet, notre tuteur nous a proposé de participer à cette présentation afin de mieux s’approprier le sujet. La conférence a eu lieu le 4 décembre à l'Imaginarium: une grande partie était plutôt tournée vers la présentation mais nous avons apprîs plusieurs choses intéressantes qui sont décrites dans le compte rendu.&lt;br /&gt;
&lt;br /&gt;
'''Compte Rendu Conférence 04/12/2014 :''' [[Fichier:Compte_Rendu_Conf_GlassCamp.pdf]]&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaines du 08/12 et 15/12 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Reconnaissance vocale en Français &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Nous avons avancé sur la version française de l'application. A la manière du menu vocal des google glass, nous avons utilisé un délimiteur&lt;br /&gt;
&amp;quot;ok lunettes&amp;quot; pour démarrer l'interaction avec l'application, afin que les discussions et bruits ambiants n'interfèrent pas sur l'utilisation de celle-ci.&lt;br /&gt;
Voici le scénario d'utilisation de la nouvelle version de l'application en Français.&lt;br /&gt;
[[Fichier:Schema_fr.png|700px|center]]&lt;br /&gt;
&lt;br /&gt;
Sous pocketsphinx, le délimiteur n'apparait pas dans une grammaire. La grammaire permet de prédestiner l'application à choisir entre deux mots. &lt;br /&gt;
Dans notre application, le moteur de reconnaissance vocale choisi la distance la plus courte, séparant le mot prononcé par l'utilisateur et ceux&lt;br /&gt;
qu'il est possible d'entendre. Ainsi entre &amp;quot;oui&amp;quot; et &amp;quot;non&amp;quot;, l'application choisira forcément l'un des deux, même si l'utilisateur dit &amp;quot;bonjour&amp;quot;&lt;br /&gt;
&lt;br /&gt;
L'avantage du délimiteur est que sa détection repose sur un seuillage entre ce qui est prononcé et ce qui doit être reconnu, nous pouvons régler ce seuil.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 05/01 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Entretien avec notre tuteur &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Durant cet entretien nous avons défini les évolutions du projet.&lt;br /&gt;
&lt;br /&gt;
'''Compte Rendu de l'entretien du 06/01/2015 :''' [[Fichier:Compte_Rendu_4.pdf]]&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 12/01 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; TV connectée &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Nous avons pris en main la détection des beacons (de la marque Estimote fournis par l'entreprise) dans les systèmes android.&lt;br /&gt;
L'adresse MAC et le RSSI sont accessibles, ce sont les seules informations nécessaires que nous avons besoin en ce qui concerne les beacons.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 19/01 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Interfaces_exemple.png|100px|thumb|right]]&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt;Interface TV &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Nous avons développé plusieurs exemples d'interfaces avec les instructions de notre tuteur afin de choisir les meilleurs résultats ensembles. Nous avons défini quelques contraintes pour le design. Elle doit être&lt;br /&gt;
* Simple et intuitive&lt;br /&gt;
* En accord avec les couleurs de l'entreprise&lt;br /&gt;
* Moderne (système de tuile ou autre)&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 26/01 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Entretien avec notre tuteur &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Durant cette entretien nous avons défini plus précisément les objectifs du projet.&lt;br /&gt;
Ci dessous le compte rendu.&lt;br /&gt;
&lt;br /&gt;
'''Compte Rendu de l'entretien du 26/01/2015 :''' [[Fichier:Compte_Rendu_5.pdf]]&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 02/02 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Portage d'une application de SmartPicking sur les Google Glass &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Une application android main libre pour les ORA glasses a été développé pour permettre à l'entreprise, &lt;br /&gt;
d'accélerer les opérations de picking(prélévement à l'article) en entrepôt. Celle-ci était à destination des lunettes ORA de Optinvent.&lt;br /&gt;
Notre tuteur souhaitait donc que nous réalisions le portage de cette application vers les google glass. Le but étant de comparer l'usage de cette application sur deux supports différents entre les lunettes. &lt;br /&gt;
&lt;br /&gt;
*Nous avons procédé à des ajustements au niveau de la gestion des layouts de l'interface, à équilibrer la places qu'occupe certaines informations données par l'application.&lt;br /&gt;
*Cette application communique par bluetooth avec une autre application lancée sur une tablette android, cette dernière permet de réaliser l'appairage avec la smartglass. La tablette étant la seule à être connectée au serveur de l'entreprise (l'AS400) via un réseau sécurisé. Nous avons du appairer manuellement les glass avec la tablette, et retirer dans le code le lancement d'un intent permettant aux lunettes de se rendre visible sur le réseau. Lorsque cet intent est lancé il génère une exception non attendue qui ne concerne que les google glass. Aprés recherches sur le net, il semble que c'est un problème récurrent qui a été signalé mais pas encore résolu.&lt;br /&gt;
&lt;br /&gt;
Ci dessous des screenshot de l'application en question adaptée par nos soins :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Schema_picking.png|800px|center]]&lt;br /&gt;
&lt;br /&gt;
L'écran de gauche, correspond à la phase de prélévement d'un article ici &amp;quot;VE RAINCUT TRUE BLACK SS14&amp;quot; une veste à l'adresse C4FU-10-1-3, il faut en prélever 12, et le tableau à gauche correspond à la façade de l'étagère concernée, il indique grossièrement (case verte) le carton à déballer, en partant du principe que l'utilisateur respecte le sens de circulation de l'entrepôt.&lt;br /&gt;
L'écran de droite, correspond à la phase de dépôt des articles dans le chariot de l'utilisateur, il lui indique dans quel compartiment le placer.&lt;br /&gt;
&lt;br /&gt;
Nous avons participé à une demi-journée de test en production avec le responsable du picking, le responsable innovation, notre tuteur et d'autres parties prenantes du projet. La version sur les google glass a bien rempli son rôle à la manière de la version originale sur les ORA one, les préférences des parties prenantes se sont portés essentiellement sur les avantages qu'offrent les supports.&lt;/div&gt;</summary>
		<author><name>Jgondry</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=P22_Google_Glass_en_logistique&amp;diff=16781</id>
		<title>P22 Google Glass en logistique</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=P22_Google_Glass_en_logistique&amp;diff=16781"/>
				<updated>2015-02-11T16:14:43Z</updated>
		
		<summary type="html">&lt;p&gt;Jgondry : /*  Portage d'une application de SmartPicking sur les Google Glass  */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Introduction =&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Description du sujet &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
Notre projet vise à l’optimisation du stockage et de l’adressage des palettes dans un entrepôt. En effet, lors du déchargement d’un camion, chercher un emplacement libre pour les palettes dans un entrepôt occupant une grande superficie fait perdre du temps et donc de la productivité dans le stockage. Sachant qu’un cariste perd un temps non négligeable à la recherche d’emplacement disponible, optimiser ce temps de recherche permettrait de gagner du temps sur cette opération.&lt;br /&gt;
Développer un prototype permettrait de rendre compte des moyens existants qui pourrait être mis en place dans une solution métier.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Analyse du sujet &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Google_glass.png|200px|thumb|right|Paire de Google Glass]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Optinvent_ora.png|200px|thumb|right|Paire de ORA d'Optivent]]&lt;br /&gt;
&lt;br /&gt;
Notre projet consiste à fluidifier le déchargement en indiquant au cariste l’emplacement libre le plus proche. Pour ne pas gêner le travail des employés, un dispositif main-libre comme une Google Glass semble adapté. Ce projet soulève plusieurs problématiques : développer une interface homme-machine apportant une information pertinente pour l’utilisateur sans pour autant être perturbante. &lt;br /&gt;
&lt;br /&gt;
L’idée serait de réaliser dans les grandes lignes un système similaire à ce scénario d’utilisation :&lt;br /&gt;
http://n.mynews.ly/!lB.Bs4fw&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Moyen d’affichage de l’Informations pertinentes'''&lt;br /&gt;
&lt;br /&gt;
Les Google Glass ne sont pas les seules smart glasses sur le marché. Il nous faudra choisir les appareils les plus adaptés. L’information pertinente pourrait être une direction à suivre dans l’entrepôt ou simplement un numéro d’emplacement (adressage intuitif de l’entrepôt). &lt;br /&gt;
&lt;br /&gt;
'''Géolocalisation'''&lt;br /&gt;
&lt;br /&gt;
Dans le cas d’une direction à suivre se pose le problème de la géolocalisation indoor dont l’utilité et la faisabilité seront discutés au fil des réunions avec l’entreprise. &lt;br /&gt;
&lt;br /&gt;
'''Adressage / flashage'''&lt;br /&gt;
&lt;br /&gt;
En ce qui concerne l’adressage des palettes en entrepôt, la solution existante repose sur un flashage des codes barres associés à l’emplacement venant d’être occupé. Une étude de faisabilité/utilité sera aussi faite sur une solution de remplacement grâce aux possibilités qu’offrent les smart glasses.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Cahier des charges &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
En partant de l'analyse du sujet et des discussion avec notre tuteur, nous avons définie un cahier des charges plus précis des tâches à accomplir:&lt;br /&gt;
&lt;br /&gt;
* '''Développer un système embarqué sur une paire de lunette Smart Glass'''&lt;br /&gt;
** Comparer les différentes offres en matière de Smart Glass notamment Google Glass &amp;amp; ORA de Optinvent&lt;br /&gt;
** Concevoir une interface homme-machine non perturbante pour l'utilisateur.&lt;br /&gt;
* '''Etudier la nécessité d'utiliser une géolocalisation en entrepôt et l'implémenter si besoin'''&lt;br /&gt;
** Via RSSI (Wifi, Bluetooh Low Energy ...)&lt;br /&gt;
** Via traitement d'images (reconnaissance de la signalétique en entrepôt)&lt;br /&gt;
* '''Etudier les possibilités d'optimisation du système d'adressage des palettes'''&lt;br /&gt;
** Implémenter la reconnaissance de code barre&lt;br /&gt;
** La tester en réalité métier (utilité ajoutée, habitude des magasiniers, vitesse de traitement...)&lt;br /&gt;
&lt;br /&gt;
Le cahier des charges est encore en cours de construction&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Matériel utilisé &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; SmartGlass &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Lors de la réunion nous avons discuté des technologies à utiliser dans le projet, et plus particulièrement des différentes SmartGlass. En effet, il existe une multitude de sociétés qui développe ce genre de lunettes. Nous commencerons à utiliser les Google Glass étant donné que notre tuteur en a déjà commandé puis nous développerons sur les lunettes ORA de Optivent qui seront livrées fin octobre. Nous devrons donc faire un comparatif entre ces deux SmartGlass puis étudier les autres appareils disponibles sur le marché.&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Localisation &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
L'utilisation de la géolocalisation dans le projet est à débattre. Mais des tests seront probablement mis en place. L'entreprise possède quelque iBeacons BLE Estimote dans ses bureaux d'innovations que nous pourrons emprunter.&lt;br /&gt;
Dans le cas où leur gain d'informations serait utile il nous faudra comparer les modèles disponibles. Choisir un nombre de module et des emplacements stratégiques dans l'entrepôt afin d'avoir une localisation assez précise pour l'application.&lt;br /&gt;
&lt;br /&gt;
L'utilisation d'autres technologies de géolocalisation a été discuté comme le Wifi ou le XBee mais le BLE semblait le plus adapté dans le cadre de notre projet.&lt;br /&gt;
&lt;br /&gt;
= Déroulement du projet =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 22/09 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Réunion avec le tuteur entreprise dans l’entrepôt &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Nous avons observé en situation le problème et discuté des besoins, des moyens déjà utilisables. Il nous faudra prendre en compte plusieurs paramètres dans notre réflexion tels que le système de stockage et d'adressages des palettes, sens de circulation des caristes, superficie des zones à desservir, durée de livraison.&lt;br /&gt;
Nous avons suggéré des étapes de validation intermédiaire du système par les futurs utilisateurs et pour cela nous rencontrerons le chef d'équipe des magasiniers lorsque qu'une version sera assez développée.&lt;br /&gt;
&lt;br /&gt;
Nous avons défini avec le tuteur les premières deadlines du projet, voici la timeline récapitulative:&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Timeline_1.jpg||center|1000px]]&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Compte Rendu &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Nous avons rédigé un compte rendu de la première réunion détaillant les spécifications des versions des livrables, des schémas et les sujets abordés lors de la rencontre :&lt;br /&gt;
&lt;br /&gt;
'''Compte Rendu réunion du 25/09/2014 :''' [[Fichier:Compte_Rendu_25_09.pdf]]&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 29/09 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Découverte des Google Glass &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
*Prise en main des Google Glass. &lt;br /&gt;
*Installation d'applications (.apk) grand public. Nous avons utilisé l'outil Android Debug Bridge(adb). Se mettre à la place d'un utilisateur.&lt;br /&gt;
*L'une des deux lunettes qui serait retenue imposera forcément le développement d'une application android (ou d'une technologie trés proche d'android, pour les Google Glass, se basant sur le Glass Development Kit qui est un add-on au SDK classique d'android). Nous avons donc téléchargé les packages nécessaires pour commencer à développer. &lt;br /&gt;
** Nous commençons à nous former sur les technologies android :développement d'applications minimaliste.&lt;br /&gt;
** Installation de nos premières apk minimalistes pour Android.&lt;br /&gt;
** Installation d'une application minimaliste sur la Google Glass.&lt;br /&gt;
&lt;br /&gt;
Voici un comparatif réalisé entre les lunettes ORA et les Google Glass.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Différences Google Glass/ORA &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!   !! Google Glass !! ORA &lt;br /&gt;
|-&lt;br /&gt;
|Connectique&lt;br /&gt;
|Compatible BLE (à partir de la XE 16 KitKat Update), Wifi &lt;br /&gt;
|Compatible BLE, Wifi&lt;br /&gt;
|-&lt;br /&gt;
|Autonomie en utilisation normale&lt;br /&gt;
|de 1h à 2h &lt;br /&gt;
|de 4h à 8h&lt;br /&gt;
|-&lt;br /&gt;
|Son&lt;br /&gt;
|Conductivité Cranienne&lt;br /&gt;
|Prise jack&lt;br /&gt;
|-&lt;br /&gt;
|Interface&lt;br /&gt;
|Ecran occupant une faible superficie dans le champ de vision &lt;br /&gt;
|Ecran 2 positions (moyennes et basses), plus étendu permettant une réalité augmentée &lt;br /&gt;
|-&lt;br /&gt;
|Système d'exploitation&lt;br /&gt;
|Android 4.4&lt;br /&gt;
|Android 4.2.2&lt;br /&gt;
|-&lt;br /&gt;
|Calculs&lt;br /&gt;
|CPU &amp;amp; GPU&lt;br /&gt;
|CPU &amp;amp; GPU&lt;br /&gt;
|-&lt;br /&gt;
|Prix&lt;br /&gt;
|1500$ &lt;br /&gt;
|949$&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 06/10 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Deuxième rendez-vous avec le tuteur entreprise &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Nous avons fait part de notre avancée en matière de prise en main et des problèmes rencontrés en matière de développement.&lt;br /&gt;
Les lunettes ORA sont commandées elles arrivent d'ici la fin octobre.&lt;br /&gt;
&lt;br /&gt;
La première version V1 de l'application pour Google Glass à livrer pour la mi-novembre est fixée.&lt;br /&gt;
&lt;br /&gt;
En partant d'une position connue (en dur dans l'application) dans l'entrepôt, elle indiquera à un utilisateur les emplacements libres les plus proches.&lt;br /&gt;
&lt;br /&gt;
L'état d'occupation des emplacements sera consulté et stocké dans l'application. Il n'y aura donc pas de gestion des conflits. Le sens de circulation dans l'entrepôt sera pris en compte.&lt;br /&gt;
Une communication avec la base de donnée de l'entrepôt n'est pour le moment pas d'actualité, cela nécessiterait des développements en amont.&lt;br /&gt;
La géolocalisation n'est pas au goût du jour non plus. L'adressage des emplacements dans l'entrepôt est intuitif, il est donc facile pour un magasinier de &lt;br /&gt;
se rendre à un emplacement en connaissant l'adresse.&lt;br /&gt;
&lt;br /&gt;
Pour l'IHM, nous nous inspirerons des applications pour Google Glass (les Glasswares) de type GPS.&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Premiers programmes sur Google Glass &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Pour nous familiariser avec la programmation sur ce genre d'appareil nous avons tous deux décidé de suivre en premier le tutoriel Android d'un site spécialisé. Cela afin de mieux comprendre le système Android, avec les concepts d'activités, de view etc.&lt;br /&gt;
Dans un deuxième temps nous avons choisi de suivre plusieurs tutoriels nous expliquant la prise en main basique des lunettes afin de saisir les particularités de leur programmation.&lt;br /&gt;
&lt;br /&gt;
Le plus dur étant finalement de comprendre les liens entre tous les fichiers du projets, les problèmes de drivers et d'upload simple que nous avons rencontrés et l’exécution du programme sur les lunettes. Des choses que nous arrivons maintenant à maitriser mais qui était floues à l'origine.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 13/10 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Programmation et gestion des interactions &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Durant cette semaine nous avons commencé a vraiment toucher aux fonctionnalités des Glass. Pour rester en main libre, nous avons fait des recherches et commencé à programmer de la reconnaissance vocale. Nous avons ainsi crée un système de navigation basique par commande vocale dans différents menus. Pour un accès rapide à l'application et toujours dans la même optique nous avons réussi à inclure le lancement de notre logiciel à partir du &amp;quot;Ok Glass&amp;quot; menu qui est le menu de lancement d'application par commande vocale des Google Glass. Voici un aperçu du résultat:&lt;br /&gt;
[[Fichier:V0_menu.png|1000px|center]]&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Analyse et évaluation du rendu &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Le début de la prise en main des fonctionnalités des Google Glass n'a pas été facile étant donné que la plupart des fonctionnalités sont propres à ce genre d'appareil. De plus elles nécessitent des techniques spéciales de programmation qui ne sont pas toujours très utilisées donc il est parfois difficile de trouver des exemples sur internet.&lt;br /&gt;
Néanmoins après l'implémentation de ces fonctionnalités nous avons pu rencontrer quelques difficultés de reconnaissance. En effet, les Google Glass possèdent un dictionnaire de mots/phrases pour la reconnaissance vocale mais elles nous permettent aussi d'écrire n'importe quelle phrase dans le mode développeur. Les phrases du dictionnaires ne posent aucun problème mais les phrases que nous écrivons sont parfois dures à reconnaitre. La reconnaissance de lettre seule ou de certains numéros est par exemple quasi impossible ou très aléatoire.&lt;br /&gt;
Le système de vu est quant à lui plutôt facile à prendre en main et intuitif dans l'utilisation.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 20/10 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Premiere structure de donnée &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Nous avons opté pour une structure de donnée récursive. Une Cellule, contenant des Allées, qui contiennent des Baies, contenant des Rangées, contenant des Emplacements.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Structure_export_resized.png|750px|center]]&lt;br /&gt;
Nous avons conçu cette structure de donnée pour qu'elle génère, dans un premier temps &amp;quot;en dur&amp;quot;, une cellule contenant des emplacements automatiquement adressés à la manière de ceux présent dans l'entrepôt. Ces adresses sont de la forme &amp;quot;D61A514&amp;quot; traduisez &amp;quot; Cellule 6 Allée 1A Baie 5 Rang 1 Niveau 4&amp;quot;.&lt;br /&gt;
Cette structure prend on compte le sens de circulation dans l'entrepôt.&lt;br /&gt;
Lors de futures interactions avec une base de donnée, cette structure serait sujette à évolution par une modification des méthodes de génération/modification du statut des adresses en fonction de cette base de donnée. Mais celle-ci constitue essentiellement une base pour appréhender plus pratiquement les problématiques de recherches de l'emplacement le plus proche.&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Prise en main de l'interface &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Nous avons déjà abordé les layouts java en TP donc il a été assez facile de commencer à faire des interfaces graphiques simples. Nous avons construit une interface graphique simple pour de faire une démonstration du programme aux tuteurs entreprise afin qu'ils comprennent bien le fonctionnement de notre algorithme.&lt;br /&gt;
L'interface graphique finale du programme sera très sobre afin de ne pas donner trop gêner le magasinier dans sa tâche.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 27/10 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Chemin optimal : Parcours intelligent Vs Sélection intelligente &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Un premier algorithme de recherche de l'emplacement le plus proche a été développé, celui-ci ne prend en compte qu'un seul scénario. &lt;br /&gt;
Celui de la position de départ (quai de déchargement où reviendra constamment le magasinier aprés chaque livraison) correspondante à la première allée de l'entrepôt, et en prenant en compte le sens de circulation. &lt;br /&gt;
A partir de ce moment, nous avons dégager deux grandes manières d'appréhender le problème.&lt;br /&gt;
&lt;br /&gt;
* Un parcours intelligent de la structure de donnée. C'est à dire parcourir les emplacements les plus proches, et choisir le premier emplacement libre. Une solution complexe à réaliser sur le plan algorithmique. En tenant compte du sens de circulation, il apparait que l'emplacement libre &amp;quot;leplusproche&amp;quot; (à vol d'oiseau) trouvé le plus tôt, ne correspondrait pas forcément à l'emplacement le plus proche compte tenu du chemin emprunté par un magasinier. Et c'est plutôt l'intérêt de cette algorithme.(Sauf dans l'unique cas où l'emplacement libre se trouve directement dans l'allée faisant face à la position de départ du magasinier, et le sens de circulation lui permet directement de se rendre à l'emplacement sans détour).&lt;br /&gt;
&lt;br /&gt;
* Une sélection intelligente parmi les emplacements libres. Leurs adresses renseignent à quelles allées, les emplacements libres appartiennent, donc renseignent sur le sens de circulation. A partir de la position de départ du magasinier et de l'ensemble des emplacements libres, on peut calculer la distance nécessaire à celui-ci pour les atteindre. Pour ainsi choisir l'adresse pour laquelle la distance est minimale.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 3/11 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Chemin optimal : sélection intelligente des adresses &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Nous avons écrit une premiere méthode de détermination. &lt;br /&gt;
On choisit l'emplacement, parmi tous ceux qui sont libres, pour lequel la distance de parcours est minimale entre le départ et celui-ci. &lt;br /&gt;
Ici l'unité de distance est la baie. La simplicité de l'algorithme réside dans le fait que le magasinier ne transporte qu'une seule caisse à la fois et repars toujours au même point de départ.&lt;br /&gt;
&lt;br /&gt;
Ci dessous un plan de l'entrepôt.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:schema_entrepot.png|750px|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Si on se place à l'entrée de l'Allée A :&lt;br /&gt;
&lt;br /&gt;
**le déplacement jusqu'à A4 (sens de circulation direct) est de : &lt;br /&gt;
&lt;br /&gt;
                        Y baies - (indice de la baie/2 +indice de la baie % 2) &lt;br /&gt;
&lt;br /&gt;
**le déplacement jusqu'à B1 (sens de circulation indirect) est de : &lt;br /&gt;
&lt;br /&gt;
                        Y baies + différence entre l'allée A et B donc X baies + indice de la baie/2 +indice de la baie % 2&lt;br /&gt;
**le déplacement jusqu'à C1 (sens de circulation direct) est de : &lt;br /&gt;
                      &lt;br /&gt;
                        Y baies - (indice de la baie/2 +indice de la baie % 2)+différence entre l'allée A et C donc 2*X baies.&lt;br /&gt;
&lt;br /&gt;
*Si on se place à l'entrée de l'Allée B :&lt;br /&gt;
**le déplacement jusqu'à B1 (sens de circulation indirect avec contournement) est de : &lt;br /&gt;
                        &lt;br /&gt;
                        2*X baies + Y baies + 2*X baies + (indice de la baie/2 +indice de la baie % 2)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On peut généraliser l'ensemble de ces situations de déplacement avec l'algorithme suivant :&lt;br /&gt;
&lt;br /&gt;
Pseudo code&lt;br /&gt;
&lt;br /&gt;
  Leplusproche( Allee depart )&lt;br /&gt;
    distance_la_plus_petite = valeurMAX&lt;br /&gt;
      le_plus_proche=&amp;quot;&amp;quot;&lt;br /&gt;
         Pour chaque Allee de Cellule&lt;br /&gt;
           sens=Allee.sens&lt;br /&gt;
           Pour chaque Baie de Allee&lt;br /&gt;
             Pour chaque Rang de Allee&lt;br /&gt;
 	       Pour chaque Emplacement de Rang&lt;br /&gt;
                Si Emplacement estlibre &lt;br /&gt;
                &lt;br /&gt;
                indice_baie = selection_indice_baie(Emplacement.adresse)&lt;br /&gt;
   		 allee_cible = selection_indice_allee(Emplacement.adresse)  &lt;br /&gt;
   		 difference_allee = valeur_absolue(depart -cible) &lt;br /&gt;
                    Si difference_allee==0 et sens.estindirect&lt;br /&gt;
                      //sens indirect +contournement&lt;br /&gt;
                      distance_actuelle=(indice_baie/2)+indice_baie%2+(2*(difference_allee))+4*X+Y			&lt;br /&gt;
                    Sinon	&lt;br /&gt;
                        Si sens estdirect&lt;br /&gt;
                          //sens direct &lt;br /&gt;
                          distance_actuelle=(Y-((indice_baie/2)+indice_baie%2))+2*difference_allee&lt;br /&gt;
                        Sinon&lt;br /&gt;
                          //sens indirect mais pas de contournement&lt;br /&gt;
                          distance_actuelle=((indice_baie/2)+indice_baie%2)+2*difference_allee+Y&lt;br /&gt;
                        Finsi	&lt;br /&gt;
                    Finsi	&lt;br /&gt;
                    Si distance_actuelle &amp;lt; distance_la_plus_petite&lt;br /&gt;
                      le_plus_proche=Emplacement.adresse&lt;br /&gt;
                      distance_la_plus_petite=distance_actuelle&lt;br /&gt;
                    Finsi&lt;br /&gt;
                Finsi  &lt;br /&gt;
            Finpour&lt;br /&gt;
          Finpour&lt;br /&gt;
        Finpour&lt;br /&gt;
      Finpour&lt;br /&gt;
    retourne le_plus_proche&lt;br /&gt;
  Finleplusproche&lt;br /&gt;
&lt;br /&gt;
Cet algorithme nous donne satisfaction (dans le cadre de la V1)&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 10/11 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Programmation et gestion des interactions &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Aprés quelques difficultés vis à vis de la gestion des menus vocaux sur les lunettes qui ne fonctionnent pas de la même manière que les menus classiques sous android, nous avons étoffé les interactions possible avec l'application des google glass. (Nous souhaitions inflater un deuxième menu pour interagir de manière plus contextuelle, il fallait le faire dans la méthode onCreatePanelMenu dont l'appel serait forcé avec getWindow().invalidatePanelMenu(WindowUtils.FEATURE_VOICE_COMMANDS) plutôt que dans onPrepareOptionsMenu forcée par invalidateOptionMenu()...) &lt;br /&gt;
&lt;br /&gt;
schéma d'utilisation...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Proposition projet affichage télévision &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Tele_concept.png|200px|thumb|right]]&lt;br /&gt;
&lt;br /&gt;
Notre tuteur nous a contacté pour nous proposer d'étudier un second projet en parallèle au projet initial. Celui consistant à gérer l'affichage d'information personnalisé d'un magasinier passant à proximité d'un écran de télévision. Nous devons effectuer un Proof Of Concept (POC) et réfléchir à ce sujet.&lt;br /&gt;
L'utilisation du BLE est donc de nouveau d'actualité, car je rappel que sont utilité était discutable dans une réalité métier du projet initial. La question étant plus de savoir comment gérer le système du coté du téléviseur.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Le concept de base étant de :&lt;br /&gt;
* Fournir une beacon aux magasiniers de l'entrepôt.&lt;br /&gt;
* Installer une télévision sur un centre de vie dans l'entrepôt avec une beacon&lt;br /&gt;
* Pousser du contenu personnalisé au magasinier qui se présente devant la tv dans son centre de vie&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 17/11 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Brainstorming à Polytech &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Dans la cadre du POC sur l'affichage personnalisé sur une télévision, nous avons profité d'un exercice de management pour faire participer la classe à notre projet. Grâce à cette intervention nous avons pu confirmer nos idées sur les technologies à utiliser. Mais nous avons surtout eu une multitude de propositions sur les données à afficher sur l'écran.&lt;br /&gt;
&lt;br /&gt;
Pour plus détails, le compte rendu est disponible à ce lien:&lt;br /&gt;
&lt;br /&gt;
'''Compte Rendu Brainstorming 17/11/2014 :''' [[Fichier:Compte_Rendu_POC_17_11.pdf]]&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Entretien avec notre tuteur entreprise &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Durant cet entretien, nous avons livré la première version de l'application et nous avons discuté de la suite du projet.&lt;br /&gt;
Ci joint le Compte Rendu.&lt;br /&gt;
&lt;br /&gt;
'''Compte Rendu  19/11/2014 :''' [[Fichier:Compte_Rendu_19_11.pdf]]&lt;br /&gt;
&lt;br /&gt;
De cette réunion, les points suivants en sont sortis:&lt;br /&gt;
&lt;br /&gt;
*Une reconnaissance vocale en langue française sur les lunettes serait plus intéressante pour les employés (une piste serait d’utiliser l’outil pocketsphinx-  android).&lt;br /&gt;
*Par rapport à l'IHM, il faudrait mettre l’affichage au premier plan sur les Google Glass pour une démo auprés des parties prenantes du projet.&lt;br /&gt;
*Choisir une architecture pour l’affichage d’information personnalisées.&lt;br /&gt;
**La télévision connectée à une raspberry qui communiquerait via un dongle BLE avec le beacon d’un magasinier, ce qui permettrait l’identification de celui-ci prés de la Télévision, et déclencherait un processus d’échange d’information. (Communication via le protocole Bluetooh, wifi entre les lunettes et la Raspberry  ou communication avec la Raspberry avec la Base de Donnée sur le réseau de l’entreprise)&lt;br /&gt;
**Une télévision connectée en continu à un site internet via un dongle HDMI.&lt;br /&gt;
**Une tablette android géante supportant le BLE, ou utilisant un dongle BLE.&lt;br /&gt;
* Réaliser le portage de l’application sur le prototype des lunettes ORA.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 24/11 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Reconnaissance vocale en Français &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Pocket Sphinx Android est une librairie permettant de faire de la reconnaissance vocale d'un langage donné sur un système android en offline.&lt;br /&gt;
Pour supporter une langue, elle nécessite: &lt;br /&gt;
*un modèle acoustique (ensemble d'informations pour le traitement sonore)&lt;br /&gt;
*un dictionnaire associant les mots et leur phonèmes&lt;br /&gt;
*une grammaire, c'est un fichier définissant comment seraient articulé les mots à reconnaître et limitant les possibilités de langage).&lt;br /&gt;
&lt;br /&gt;
La grammaire étant un automate. Voici un exemple de la grammaire menu.gram pour la reconnaissance de la porte de déchargement.&lt;br /&gt;
[[Fichier:Arborescence_pocket_sphinx.png|200px|thumb|right|PocketSphinx dans un projet Android]]&lt;br /&gt;
&lt;br /&gt;
  #JSGF V1.0;&lt;br /&gt;
  grammar menu;&lt;br /&gt;
  &amp;lt;porte&amp;gt; = porte a |&lt;br /&gt;
            porte b |&lt;br /&gt;
            porte c |&lt;br /&gt;
            porte d |&lt;br /&gt;
            porte e |&lt;br /&gt;
            porte f |&lt;br /&gt;
            porte g |&lt;br /&gt;
            porte h |&lt;br /&gt;
            porte i |&lt;br /&gt;
            porte j ;&lt;br /&gt;
  public &amp;lt;porte&amp;gt; = &amp;lt;porte&amp;gt;+;&lt;br /&gt;
&lt;br /&gt;
Un extrait du dictionnaire french_letter.dic associé avec les phonemes&lt;br /&gt;
&lt;br /&gt;
  a aa &amp;lt;-- juste la lettre a et son phoneme &lt;br /&gt;
  autre au tt rr&lt;br /&gt;
  autre(2) au tt rr ee &lt;br /&gt;
  b bb &lt;br /&gt;
  c ss &lt;br /&gt;
  d dd ei d(2) dd ait &lt;br /&gt;
  e eu e(2) eu zz &lt;br /&gt;
  f ai ff &lt;br /&gt;
  g jj ei g(2) gg ai &lt;br /&gt;
  h aa ch  &lt;br /&gt;
  i ii &lt;br /&gt;
  j jj yy j(2) jj ii&lt;br /&gt;
  porte pp oo rr tt&lt;br /&gt;
  porte(2) pp oo rr tt ee&lt;br /&gt;
  portes(2) pp oo rr tt ee&lt;br /&gt;
  portes(3) pp oo rr tt ee zz&lt;br /&gt;
  portes(4) pp oo rr tt zz&lt;br /&gt;
&lt;br /&gt;
Le modèle acoustique que nous avons téléchargé étant inclu dans lium_french_f0&lt;br /&gt;
&lt;br /&gt;
Nous avons testé la reconnaissance vocale sur un téléphone android, les mots sont, dans la majorité des cas, bien reconnus.&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Comparaison architectures projet TV &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Au niveau de l’architecture nous avons établi plusieurs propositions après la réunion avec notre tuteur:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour une Raspberry Pi avec un dongle BLE :&lt;br /&gt;
* Installation OS Linux sur la Raspberry&lt;br /&gt;
* Librairie BlueZ pour l’utilisation du BLE (tests rapides effectués sur Linux avec le Dongle)&lt;br /&gt;
* Interface graphique avec une bibliothèque comme Qt (ou encore SDL…)&lt;br /&gt;
* Prix : Rpi = 26€ (chez RadioSpare), Dongle = 10€, TV = à partir de 358€ pour 117cm, + Connectique vidéo. Total = 394€&lt;br /&gt;
&lt;br /&gt;
Pour un écran ViewSonic VSD231 :&lt;br /&gt;
* Possède une API Bluetooth classic + API BLE&lt;br /&gt;
* Interface graphique Android (View, Layout...)&lt;br /&gt;
* Prix : écran ViewSonic VSD231 = 558 € pour 58 cm (chez ViewSonic).&lt;br /&gt;
&lt;br /&gt;
Récupération d’informations :&lt;br /&gt;
* Si données sur les lunettes : Bluetooth ou Wifi.&lt;br /&gt;
* Si données sur serveur : Ethernet ou Wifi.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Vu les propositions possibles nous pensons que la première proposition permettra une meilleure souplesse dans le développement mais serait un peu plus compliquée. Mais nous la trouvons aussi plus intéressante à faire de plus elle est moins coûteuse et permet d'utiliser un écran plus grand. Le développement sur tablette serait sûrement plus rapide à faire en contrepartie.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 01/12 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Conférence GlassCamp à l'Imaginarium &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
GlassCamp est une association qui essaye de répandre l'utilisation de toute les Smart Glass en général. Elle propose de multiples conférences dans lesquelles ils essayent de montrer au public l’intérêt de développer sur ces appareils. Dans le cadre de notre projet, notre tuteur nous a proposé de participer à cette présentation afin de mieux s’approprier le sujet. La conférence a eu lieu le 4 décembre à l'Imaginarium: une grande partie était plutôt tournée vers la présentation mais nous avons apprîs plusieurs choses intéressantes qui sont décrites dans le compte rendu.&lt;br /&gt;
&lt;br /&gt;
'''Compte Rendu Conférence 04/12/2014 :''' [[Fichier:Compte_Rendu_Conf_GlassCamp.pdf]]&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaines du 08/12 et 15/12 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Reconnaissance vocale en Français &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Nous avons avancé sur la version française de l'application. A la manière du menu vocal des google glass, nous avons utilisé un délimiteur&lt;br /&gt;
&amp;quot;ok lunettes&amp;quot; pour démarrer l'interaction avec l'application, afin que les discussions et bruits ambiants n'interfèrent pas sur l'utilisation de celle-ci.&lt;br /&gt;
Voici le scénario d'utilisation de la nouvelle version de l'application en Français.&lt;br /&gt;
[[Fichier:Schema_fr.png|700px|center]]&lt;br /&gt;
&lt;br /&gt;
Sous pocketsphinx, le délimiteur n'apparait pas dans une grammaire. La grammaire permet de prédestiner l'application à choisir entre deux mots. &lt;br /&gt;
Dans notre application, le moteur de reconnaissance vocale choisi la distance la plus courte, séparant le mot prononcé par l'utilisateur et ceux&lt;br /&gt;
qu'il est possible d'entendre. Ainsi entre &amp;quot;oui&amp;quot; et &amp;quot;non&amp;quot;, l'application choisira forcément l'un des deux, même si l'utilisateur dit &amp;quot;bonjour&amp;quot;&lt;br /&gt;
&lt;br /&gt;
L'avantage du délimiteur est que sa détection repose sur un seuillage entre ce qui est prononcé et ce qui doit être reconnu, nous pouvons régler ce seuil.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 05/01 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Entretien avec notre tuteur &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Durant cet entretien nous avons défini les évolutions du projet.&lt;br /&gt;
&lt;br /&gt;
'''Compte Rendu de l'entretien du 06/01/2015 :''' [[Fichier:Compte_Rendu_4.pdf]]&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 12/01 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; TV connectée &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Nous avons pris en main la détection des beacons (de la marque Estimote fournis par l'entreprise) dans les systèmes android.&lt;br /&gt;
L'adresse MAC et le RSSI sont accessibles, ce sont les seules informations nécessaires que nous avons besoin en ce qui concerne les beacons.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 19/01 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Interfaces_exemple.png|100px|thumb|right]]&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt;Interface TV &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Nous avons développé plusieurs exemples d'interfaces avec les instructions de notre tuteur afin de choisir les meilleurs résultats ensembles. Nous avons défini quelques contraintes pour le design. Elle doit être&lt;br /&gt;
* Simple et intuitive&lt;br /&gt;
* En accord avec les couleurs de l'entreprise&lt;br /&gt;
* Moderne (système de tuile ou autre)&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 26/01 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Entretien avec notre tuteur &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Durant cette entretien nous avons défini plus précisément les objectifs du projet.&lt;br /&gt;
Ci dessous le compte rendu.&lt;br /&gt;
&lt;br /&gt;
'''Compte Rendu de l'entretien du 26/01/2015 :''' [[Fichier:Compte_Rendu_5.pdf]]&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 02/02 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Portage d'une application de SmartPicking sur les Google Glass &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Une application android main libre pour les ORA glasses a été développé pour permettre à l'entreprise, &lt;br /&gt;
d'accélerer les opérations de picking(prélévement à l'article) en entrepôt. Celle-ci était à destination des lunettes ORA de Optinvent.&lt;br /&gt;
Notre tuteur souhaitait donc que nous réalisions le portage de cette application vers les google glass. Le but étant de comparer l'usage de cette application sur deux supports différents entre les lunettes. &lt;br /&gt;
&lt;br /&gt;
*Nous avons procédé à des ajustements au niveau de la gestion des layouts de l'interface, à équilibrer la places qu'occupe certaines informations données par l'application.&lt;br /&gt;
*Cette application communique par bluetooth avec une autre application lancée sur une tablette android, cette dernière permet de réaliser l'appairage avec la smartglass. La tablette étant la seule à être connectée au serveur de l'entreprise (l'AS400) via un réseau sécurisé. Nous avons du appairer manuellement les glass avec la tablette, et retirer dans le code le lancement d'un intent permettant aux lunettes de se rendre visible sur le réseau. Lorsque cet intent est lancé il génère une exception non attendue qui ne concerne que les google glass. Aprés recherches sur le net, il semble que c'est un problème récurrent qui a été signalé mais pas encore résolu.&lt;br /&gt;
&lt;br /&gt;
Ci dessous des screenshot de l'application adaptée par nos soins en question :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Schema_picking.png|1000px|center]]&lt;br /&gt;
&lt;br /&gt;
L'écran de gauche, correspond à la phase de prélévement d'un article ici &amp;quot;VE RAINCUT TRUE BLACK SS14&amp;quot; une veste à l'adresse C4FU-10-1-3, il faut en prélever 12, et le tableau à gauche correspond à la façade de l'étagère concernée, il indique grossièrement (case verte) le carton à déballer, en partant du principe que l'utilisateur respecte le sens de circulation de l'entrepôt.&lt;br /&gt;
L'écran de droite, correspond à la phase de dépôt des articles dans le chariot de l'utilisateur, il lui indique dans quel compartiment le placer.&lt;br /&gt;
&lt;br /&gt;
Nous avons participé à une demi-journée de test en production avec le responsable du picking, le responsable innovation, notre tuteur et d'autres&lt;/div&gt;</summary>
		<author><name>Jgondry</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=P22_Google_Glass_en_logistique&amp;diff=16738</id>
		<title>P22 Google Glass en logistique</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=P22_Google_Glass_en_logistique&amp;diff=16738"/>
				<updated>2015-02-11T15:17:16Z</updated>
		
		<summary type="html">&lt;p&gt;Jgondry : /*  Portage d'une application de SmartPicking sur les Google Glass  */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Introduction =&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Description du sujet &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
Notre projet vise à l’optimisation du stockage et de l’adressage des palettes dans un entrepôt. En effet, lors du déchargement d’un camion, chercher un emplacement libre pour les palettes dans un entrepôt occupant une grande superficie fait perdre du temps et donc de la productivité dans le stockage. Sachant qu’un cariste perd un temps non négligeable à la recherche d’emplacement disponible, optimiser ce temps de recherche permettrait de gagner du temps sur cette opération.&lt;br /&gt;
Développer un prototype permettrait de rendre compte des moyens existants qui pourrait être mis en place dans une solution métier.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Analyse du sujet &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Google_glass.png|200px|thumb|right|Paire de Google Glass]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Optinvent_ora.png|200px|thumb|right|Paire de ORA d'Optivent]]&lt;br /&gt;
&lt;br /&gt;
Notre projet consiste à fluidifier le déchargement en indiquant au cariste l’emplacement libre le plus proche. Pour ne pas gêner le travail des employés, un dispositif main-libre comme une Google Glass semble adapté. Ce projet soulève plusieurs problématiques : développer une interface homme-machine apportant une information pertinente pour l’utilisateur sans pour autant être perturbante. &lt;br /&gt;
&lt;br /&gt;
L’idée serait de réaliser dans les grandes lignes un système similaire à ce scénario d’utilisation :&lt;br /&gt;
http://n.mynews.ly/!lB.Bs4fw&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Moyen d’affichage de l’Informations pertinentes'''&lt;br /&gt;
&lt;br /&gt;
Les Google Glass ne sont pas les seules smart glasses sur le marché. Il nous faudra choisir les appareils les plus adaptés. L’information pertinente pourrait être une direction à suivre dans l’entrepôt ou simplement un numéro d’emplacement (adressage intuitif de l’entrepôt). &lt;br /&gt;
&lt;br /&gt;
'''Géolocalisation'''&lt;br /&gt;
&lt;br /&gt;
Dans le cas d’une direction à suivre se pose le problème de la géolocalisation indoor dont l’utilité et la faisabilité seront discutés au fil des réunions avec l’entreprise. &lt;br /&gt;
&lt;br /&gt;
'''Adressage / flashage'''&lt;br /&gt;
&lt;br /&gt;
En ce qui concerne l’adressage des palettes en entrepôt, la solution existante repose sur un flashage des codes barres associés à l’emplacement venant d’être occupé. Une étude de faisabilité/utilité sera aussi faite sur une solution de remplacement grâce aux possibilités qu’offrent les smart glasses.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Cahier des charges &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
En partant de l'analyse du sujet et des discussion avec notre tuteur, nous avons définie un cahier des charges plus précis des tâches à accomplir:&lt;br /&gt;
&lt;br /&gt;
* '''Développer un système embarqué sur une paire de lunette Smart Glass'''&lt;br /&gt;
** Comparer les différentes offres en matière de Smart Glass notamment Google Glass &amp;amp; ORA de Optinvent&lt;br /&gt;
** Concevoir une interface homme-machine non perturbante pour l'utilisateur.&lt;br /&gt;
* '''Etudier la nécessité d'utiliser une géolocalisation en entrepôt et l'implémenter si besoin'''&lt;br /&gt;
** Via RSSI (Wifi, Bluetooh Low Energy ...)&lt;br /&gt;
** Via traitement d'images (reconnaissance de la signalétique en entrepôt)&lt;br /&gt;
* '''Etudier les possibilités d'optimisation du système d'adressage des palettes'''&lt;br /&gt;
** Implémenter la reconnaissance de code barre&lt;br /&gt;
** La tester en réalité métier (utilité ajoutée, habitude des magasiniers, vitesse de traitement...)&lt;br /&gt;
&lt;br /&gt;
Le cahier des charges est encore en cours de construction&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Matériel utilisé &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; SmartGlass &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Lors de la réunion nous avons discuté des technologies à utiliser dans le projet, et plus particulièrement des différentes SmartGlass. En effet, il existe une multitude de sociétés qui développe ce genre de lunettes. Nous commencerons à utiliser les Google Glass étant donné que notre tuteur en a déjà commandé puis nous développerons sur les lunettes ORA de Optivent qui seront livrées fin octobre. Nous devrons donc faire un comparatif entre ces deux SmartGlass puis étudier les autres appareils disponibles sur le marché.&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Localisation &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
L'utilisation de la géolocalisation dans le projet est à débattre. Mais des tests seront probablement mis en place. L'entreprise possède quelque iBeacons BLE Estimote dans ses bureaux d'innovations que nous pourrons emprunter.&lt;br /&gt;
Dans le cas où leur gain d'informations serait utile il nous faudra comparer les modèles disponibles. Choisir un nombre de module et des emplacements stratégiques dans l'entrepôt afin d'avoir une localisation assez précise pour l'application.&lt;br /&gt;
&lt;br /&gt;
L'utilisation d'autres technologies de géolocalisation a été discuté comme le Wifi ou le XBee mais le BLE semblait le plus adapté dans le cadre de notre projet.&lt;br /&gt;
&lt;br /&gt;
= Déroulement du projet =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 22/09 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Réunion avec le tuteur entreprise dans l’entrepôt &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Nous avons observé en situation le problème et discuté des besoins, des moyens déjà utilisables. Il nous faudra prendre en compte plusieurs paramètres dans notre réflexion tels que le système de stockage et d'adressages des palettes, sens de circulation des caristes, superficie des zones à desservir, durée de livraison.&lt;br /&gt;
Nous avons suggéré des étapes de validation intermédiaire du système par les futurs utilisateurs et pour cela nous rencontrerons le chef d'équipe des magasiniers lorsque qu'une version sera assez développée.&lt;br /&gt;
&lt;br /&gt;
Nous avons défini avec le tuteur les premières deadlines du projet, voici la timeline récapitulative:&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Timeline_1.jpg||center|1000px]]&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Compte Rendu &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Nous avons rédigé un compte rendu de la première réunion détaillant les spécifications des versions des livrables, des schémas et les sujets abordés lors de la rencontre :&lt;br /&gt;
&lt;br /&gt;
'''Compte Rendu réunion du 25/09/2014 :''' [[Fichier:Compte_Rendu_25_09.pdf]]&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 29/09 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Découverte des Google Glass &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
*Prise en main des Google Glass. &lt;br /&gt;
*Installation d'applications (.apk) grand public. Nous avons utilisé l'outil Android Debug Bridge(adb). Se mettre à la place d'un utilisateur.&lt;br /&gt;
*L'une des deux lunettes qui serait retenue imposera forcément le développement d'une application android (ou d'une technologie trés proche d'android, pour les Google Glass, se basant sur le Glass Development Kit qui est un add-on au SDK classique d'android). Nous avons donc téléchargé les packages nécessaires pour commencer à développer. &lt;br /&gt;
** Nous commençons à nous former sur les technologies android :développement d'applications minimaliste.&lt;br /&gt;
** Installation de nos premières apk minimalistes pour Android.&lt;br /&gt;
** Installation d'une application minimaliste sur la Google Glass.&lt;br /&gt;
&lt;br /&gt;
Voici un comparatif réalisé entre les lunettes ORA et les Google Glass.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Différences Google Glass/ORA &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!   !! Google Glass !! ORA &lt;br /&gt;
|-&lt;br /&gt;
|Connectique&lt;br /&gt;
|Compatible BLE (à partir de la XE 16 KitKat Update), Wifi &lt;br /&gt;
|Compatible BLE, Wifi&lt;br /&gt;
|-&lt;br /&gt;
|Autonomie en utilisation normale&lt;br /&gt;
|de 1h à 2h &lt;br /&gt;
|de 4h à 8h&lt;br /&gt;
|-&lt;br /&gt;
|Son&lt;br /&gt;
|Conductivité Cranienne&lt;br /&gt;
|Prise jack&lt;br /&gt;
|-&lt;br /&gt;
|Interface&lt;br /&gt;
|Ecran occupant une faible superficie dans le champ de vision &lt;br /&gt;
|Ecran 2 positions (moyennes et basses), plus étendu permettant une réalité augmentée &lt;br /&gt;
|-&lt;br /&gt;
|Système d'exploitation&lt;br /&gt;
|Android 4.4&lt;br /&gt;
|Android 4.2.2&lt;br /&gt;
|-&lt;br /&gt;
|Calculs&lt;br /&gt;
|CPU &amp;amp; GPU&lt;br /&gt;
|CPU &amp;amp; GPU&lt;br /&gt;
|-&lt;br /&gt;
|Prix&lt;br /&gt;
|1500$ &lt;br /&gt;
|949$&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 06/10 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Deuxième rendez-vous avec le tuteur entreprise &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Nous avons fait part de notre avancée en matière de prise en main et des problèmes rencontrés en matière de développement.&lt;br /&gt;
Les lunettes ORA sont commandées elles arrivent d'ici la fin octobre.&lt;br /&gt;
&lt;br /&gt;
La première version V1 de l'application pour Google Glass à livrer pour la mi-novembre est fixée.&lt;br /&gt;
&lt;br /&gt;
En partant d'une position connue (en dur dans l'application) dans l'entrepôt, elle indiquera à un utilisateur les emplacements libres les plus proches.&lt;br /&gt;
&lt;br /&gt;
L'état d'occupation des emplacements sera consulté et stocké dans l'application. Il n'y aura donc pas de gestion des conflits. Le sens de circulation dans l'entrepôt sera pris en compte.&lt;br /&gt;
Une communication avec la base de donnée de l'entrepôt n'est pour le moment pas d'actualité, cela nécessiterait des développements en amont.&lt;br /&gt;
La géolocalisation n'est pas au goût du jour non plus. L'adressage des emplacements dans l'entrepôt est intuitif, il est donc facile pour un magasinier de &lt;br /&gt;
se rendre à un emplacement en connaissant l'adresse.&lt;br /&gt;
&lt;br /&gt;
Pour l'IHM, nous nous inspirerons des applications pour Google Glass (les Glasswares) de type GPS.&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Premiers programmes sur Google Glass &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Pour nous familiariser avec la programmation sur ce genre d'appareil nous avons tous deux décidé de suivre en premier le tutoriel Android d'un site spécialisé. Cela afin de mieux comprendre le système Android, avec les concepts d'activités, de view etc.&lt;br /&gt;
Dans un deuxième temps nous avons choisi de suivre plusieurs tutoriels nous expliquant la prise en main basique des lunettes afin de saisir les particularités de leur programmation.&lt;br /&gt;
&lt;br /&gt;
Le plus dur étant finalement de comprendre les liens entre tous les fichiers du projets, les problèmes de drivers et d'upload simple que nous avons rencontrés et l’exécution du programme sur les lunettes. Des choses que nous arrivons maintenant à maitriser mais qui était floues à l'origine.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 13/10 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Programmation et gestion des interactions &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Durant cette semaine nous avons commencé a vraiment toucher aux fonctionnalités des Glass. Pour rester en main libre, nous avons fait des recherches et commencé à programmer de la reconnaissance vocale. Nous avons ainsi crée un système de navigation basique par commande vocale dans différents menus. Pour un accès rapide à l'application et toujours dans la même optique nous avons réussi à inclure le lancement de notre logiciel à partir du &amp;quot;Ok Glass&amp;quot; menu qui est le menu de lancement d'application par commande vocale des Google Glass. Voici un aperçu du résultat:&lt;br /&gt;
[[Fichier:V0_menu.png|1000px|center]]&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Analyse et évaluation du rendu &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Le début de la prise en main des fonctionnalités des Google Glass n'a pas été facile étant donné que la plupart des fonctionnalités sont propres à ce genre d'appareil. De plus elles nécessitent des techniques spéciales de programmation qui ne sont pas toujours très utilisées donc il est parfois difficile de trouver des exemples sur internet.&lt;br /&gt;
Néanmoins après l'implémentation de ces fonctionnalités nous avons pu rencontrer quelques difficultés de reconnaissance. En effet, les Google Glass possèdent un dictionnaire de mots/phrases pour la reconnaissance vocale mais elles nous permettent aussi d'écrire n'importe quelle phrase dans le mode développeur. Les phrases du dictionnaires ne posent aucun problème mais les phrases que nous écrivons sont parfois dures à reconnaitre. La reconnaissance de lettre seule ou de certains numéros est par exemple quasi impossible ou très aléatoire.&lt;br /&gt;
Le système de vu est quant à lui plutôt facile à prendre en main et intuitif dans l'utilisation.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 20/10 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Premiere structure de donnée &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Nous avons opté pour une structure de donnée récursive. Une Cellule, contenant des Allées, qui contiennent des Baies, contenant des Rangées, contenant des Emplacements.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Structure_export_resized.png|750px|center]]&lt;br /&gt;
Nous avons conçu cette structure de donnée pour qu'elle génère, dans un premier temps &amp;quot;en dur&amp;quot;, une cellule contenant des emplacements automatiquement adressés à la manière de ceux présent dans l'entrepôt. Ces adresses sont de la forme &amp;quot;D61A514&amp;quot; traduisez &amp;quot; Cellule 6 Allée 1A Baie 5 Rang 1 Niveau 4&amp;quot;.&lt;br /&gt;
Cette structure prend on compte le sens de circulation dans l'entrepôt.&lt;br /&gt;
Lors de futures interactions avec une base de donnée, cette structure serait sujette à évolution par une modification des méthodes de génération/modification du statut des adresses en fonction de cette base de donnée. Mais celle-ci constitue essentiellement une base pour appréhender plus pratiquement les problématiques de recherches de l'emplacement le plus proche.&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Prise en main de l'interface &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Nous avons déjà abordé les layouts java en TP donc il a été assez facile de commencer à faire des interfaces graphiques simples. Nous avons construit une interface graphique simple pour de faire une démonstration du programme aux tuteurs entreprise afin qu'ils comprennent bien le fonctionnement de notre algorithme.&lt;br /&gt;
L'interface graphique finale du programme sera très sobre afin de ne pas donner trop gêner le magasinier dans sa tâche.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 27/10 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Chemin optimal : Parcours intelligent Vs Sélection intelligente &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Un premier algorithme de recherche de l'emplacement le plus proche a été développé, celui-ci ne prend en compte qu'un seul scénario. &lt;br /&gt;
Celui de la position de départ (quai de déchargement où reviendra constamment le magasinier aprés chaque livraison) correspondante à la première allée de l'entrepôt, et en prenant en compte le sens de circulation. &lt;br /&gt;
A partir de ce moment, nous avons dégager deux grandes manières d'appréhender le problème.&lt;br /&gt;
&lt;br /&gt;
* Un parcours intelligent de la structure de donnée. C'est à dire parcourir les emplacements les plus proches, et choisir le premier emplacement libre. Une solution complexe à réaliser sur le plan algorithmique. En tenant compte du sens de circulation, il apparait que l'emplacement libre &amp;quot;leplusproche&amp;quot; (à vol d'oiseau) trouvé le plus tôt, ne correspondrait pas forcément à l'emplacement le plus proche compte tenu du chemin emprunté par un magasinier. Et c'est plutôt l'intérêt de cette algorithme.(Sauf dans l'unique cas où l'emplacement libre se trouve directement dans l'allée faisant face à la position de départ du magasinier, et le sens de circulation lui permet directement de se rendre à l'emplacement sans détour).&lt;br /&gt;
&lt;br /&gt;
* Une sélection intelligente parmi les emplacements libres. Leurs adresses renseignent à quelles allées, les emplacements libres appartiennent, donc renseignent sur le sens de circulation. A partir de la position de départ du magasinier et de l'ensemble des emplacements libres, on peut calculer la distance nécessaire à celui-ci pour les atteindre. Pour ainsi choisir l'adresse pour laquelle la distance est minimale.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 3/11 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Chemin optimal : sélection intelligente des adresses &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Nous avons écrit une premiere méthode de détermination. &lt;br /&gt;
On choisit l'emplacement, parmi tous ceux qui sont libres, pour lequel la distance de parcours est minimale entre le départ et celui-ci. &lt;br /&gt;
Ici l'unité de distance est la baie. La simplicité de l'algorithme réside dans le fait que le magasinier ne transporte qu'une seule caisse à la fois et repars toujours au même point de départ.&lt;br /&gt;
&lt;br /&gt;
Ci dessous un plan de l'entrepôt.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:schema_entrepot.png|750px|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Si on se place à l'entrée de l'Allée A :&lt;br /&gt;
&lt;br /&gt;
**le déplacement jusqu'à A4 (sens de circulation direct) est de : &lt;br /&gt;
&lt;br /&gt;
                        Y baies - (indice de la baie/2 +indice de la baie % 2) &lt;br /&gt;
&lt;br /&gt;
**le déplacement jusqu'à B1 (sens de circulation indirect) est de : &lt;br /&gt;
&lt;br /&gt;
                        Y baies + différence entre l'allée A et B donc X baies + indice de la baie/2 +indice de la baie % 2&lt;br /&gt;
**le déplacement jusqu'à C1 (sens de circulation direct) est de : &lt;br /&gt;
                      &lt;br /&gt;
                        Y baies - (indice de la baie/2 +indice de la baie % 2)+différence entre l'allée A et C donc 2*X baies.&lt;br /&gt;
&lt;br /&gt;
*Si on se place à l'entrée de l'Allée B :&lt;br /&gt;
**le déplacement jusqu'à B1 (sens de circulation indirect avec contournement) est de : &lt;br /&gt;
                        &lt;br /&gt;
                        2*X baies + Y baies + 2*X baies + (indice de la baie/2 +indice de la baie % 2)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On peut généraliser l'ensemble de ces situations de déplacement avec l'algorithme suivant :&lt;br /&gt;
&lt;br /&gt;
Pseudo code&lt;br /&gt;
&lt;br /&gt;
  Leplusproche( Allee depart )&lt;br /&gt;
    distance_la_plus_petite = valeurMAX&lt;br /&gt;
      le_plus_proche=&amp;quot;&amp;quot;&lt;br /&gt;
         Pour chaque Allee de Cellule&lt;br /&gt;
           sens=Allee.sens&lt;br /&gt;
           Pour chaque Baie de Allee&lt;br /&gt;
             Pour chaque Rang de Allee&lt;br /&gt;
 	       Pour chaque Emplacement de Rang&lt;br /&gt;
                Si Emplacement estlibre &lt;br /&gt;
                &lt;br /&gt;
                indice_baie = selection_indice_baie(Emplacement.adresse)&lt;br /&gt;
   		 allee_cible = selection_indice_allee(Emplacement.adresse)  &lt;br /&gt;
   		 difference_allee = valeur_absolue(depart -cible) &lt;br /&gt;
                    Si difference_allee==0 et sens.estindirect&lt;br /&gt;
                      //sens indirect +contournement&lt;br /&gt;
                      distance_actuelle=(indice_baie/2)+indice_baie%2+(2*(difference_allee))+4*X+Y			&lt;br /&gt;
                    Sinon	&lt;br /&gt;
                        Si sens estdirect&lt;br /&gt;
                          //sens direct &lt;br /&gt;
                          distance_actuelle=(Y-((indice_baie/2)+indice_baie%2))+2*difference_allee&lt;br /&gt;
                        Sinon&lt;br /&gt;
                          //sens indirect mais pas de contournement&lt;br /&gt;
                          distance_actuelle=((indice_baie/2)+indice_baie%2)+2*difference_allee+Y&lt;br /&gt;
                        Finsi	&lt;br /&gt;
                    Finsi	&lt;br /&gt;
                    Si distance_actuelle &amp;lt; distance_la_plus_petite&lt;br /&gt;
                      le_plus_proche=Emplacement.adresse&lt;br /&gt;
                      distance_la_plus_petite=distance_actuelle&lt;br /&gt;
                    Finsi&lt;br /&gt;
                Finsi  &lt;br /&gt;
            Finpour&lt;br /&gt;
          Finpour&lt;br /&gt;
        Finpour&lt;br /&gt;
      Finpour&lt;br /&gt;
    retourne le_plus_proche&lt;br /&gt;
  Finleplusproche&lt;br /&gt;
&lt;br /&gt;
Cet algorithme nous donne satisfaction (dans le cadre de la V1)&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 10/11 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Programmation et gestion des interactions &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Aprés quelques difficultés vis à vis de la gestion des menus vocaux sur les lunettes qui ne fonctionnent pas de la même manière que les menus classiques sous android, nous avons étoffé les interactions possible avec l'application des google glass. (Nous souhaitions inflater un deuxième menu pour interagir de manière plus contextuelle, il fallait le faire dans la méthode onCreatePanelMenu dont l'appel serait forcé avec getWindow().invalidatePanelMenu(WindowUtils.FEATURE_VOICE_COMMANDS) plutôt que dans onPrepareOptionsMenu forcée par invalidateOptionMenu()...) &lt;br /&gt;
&lt;br /&gt;
schéma d'utilisation...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Proposition projet affichage télévision &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Tele_concept.png|200px|thumb|right]]&lt;br /&gt;
&lt;br /&gt;
Notre tuteur nous a contacté pour nous proposer d'étudier un second projet en parallèle au projet initial. Celui consistant à gérer l'affichage d'information personnalisé d'un magasinier passant à proximité d'un écran de télévision. Nous devons effectuer un Proof Of Concept (POC) et réfléchir à ce sujet.&lt;br /&gt;
L'utilisation du BLE est donc de nouveau d'actualité, car je rappel que sont utilité était discutable dans une réalité métier du projet initial. La question étant plus de savoir comment gérer le système du coté du téléviseur.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Le concept de base étant de :&lt;br /&gt;
* Fournir une beacon aux magasiniers de l'entrepôt.&lt;br /&gt;
* Installer une télévision sur un centre de vie dans l'entrepôt avec une beacon&lt;br /&gt;
* Pousser du contenu personnalisé au magasinier qui se présente devant la tv dans son centre de vie&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 17/11 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Brainstorming à Polytech &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Dans la cadre du POC sur l'affichage personnalisé sur une télévision, nous avons profité d'un exercice de management pour faire participer la classe à notre projet. Grâce à cette intervention nous avons pu confirmer nos idées sur les technologies à utiliser. Mais nous avons surtout eu une multitude de propositions sur les données à afficher sur l'écran.&lt;br /&gt;
&lt;br /&gt;
Pour plus détails, le compte rendu est disponible à ce lien:&lt;br /&gt;
&lt;br /&gt;
'''Compte Rendu Brainstorming 17/11/2014 :''' [[Fichier:Compte_Rendu_POC_17_11.pdf]]&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Entretien avec notre tuteur entreprise &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Durant cet entretien, nous avons livré la première version de l'application et nous avons discuté de la suite du projet.&lt;br /&gt;
Ci joint le Compte Rendu.&lt;br /&gt;
&lt;br /&gt;
'''Compte Rendu  19/11/2014 :''' [[Fichier:Compte_Rendu_19_11.pdf]]&lt;br /&gt;
&lt;br /&gt;
De cette réunion, les points suivants en sont sortis:&lt;br /&gt;
&lt;br /&gt;
*Une reconnaissance vocale en langue française sur les lunettes serait plus intéressante pour les employés (une piste serait d’utiliser l’outil pocketsphinx-  android).&lt;br /&gt;
*Par rapport à l'IHM, il faudrait mettre l’affichage au premier plan sur les Google Glass pour une démo auprés des parties prenantes du projet.&lt;br /&gt;
*Choisir une architecture pour l’affichage d’information personnalisées.&lt;br /&gt;
**La télévision connectée à une raspberry qui communiquerait via un dongle BLE avec le beacon d’un magasinier, ce qui permettrait l’identification de celui-ci prés de la Télévision, et déclencherait un processus d’échange d’information. (Communication via le protocole Bluetooh, wifi entre les lunettes et la Raspberry  ou communication avec la Raspberry avec la Base de Donnée sur le réseau de l’entreprise)&lt;br /&gt;
**Une télévision connectée en continu à un site internet via un dongle HDMI.&lt;br /&gt;
**Une tablette android géante supportant le BLE, ou utilisant un dongle BLE.&lt;br /&gt;
* Réaliser le portage de l’application sur le prototype des lunettes ORA.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 24/11 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Reconnaissance vocale en Français &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Pocket Sphinx Android est une librairie permettant de faire de la reconnaissance vocale d'un langage donné sur un système android en offline.&lt;br /&gt;
Pour supporter une langue, elle nécessite: &lt;br /&gt;
*un modèle acoustique (ensemble d'informations pour le traitement sonore)&lt;br /&gt;
*un dictionnaire associant les mots et leur phonèmes&lt;br /&gt;
*une grammaire, c'est un fichier définissant comment seraient articulé les mots à reconnaître et limitant les possibilités de langage).&lt;br /&gt;
&lt;br /&gt;
La grammaire étant un automate. Voici un exemple de la grammaire menu.gram pour la reconnaissance de la porte de déchargement.&lt;br /&gt;
[[Fichier:Arborescence_pocket_sphinx.png|200px|thumb|right|PocketSphinx dans un projet Android]]&lt;br /&gt;
&lt;br /&gt;
  #JSGF V1.0;&lt;br /&gt;
  grammar menu;&lt;br /&gt;
  &amp;lt;porte&amp;gt; = porte a |&lt;br /&gt;
            porte b |&lt;br /&gt;
            porte c |&lt;br /&gt;
            porte d |&lt;br /&gt;
            porte e |&lt;br /&gt;
            porte f |&lt;br /&gt;
            porte g |&lt;br /&gt;
            porte h |&lt;br /&gt;
            porte i |&lt;br /&gt;
            porte j ;&lt;br /&gt;
  public &amp;lt;porte&amp;gt; = &amp;lt;porte&amp;gt;+;&lt;br /&gt;
&lt;br /&gt;
Un extrait du dictionnaire french_letter.dic associé avec les phonemes&lt;br /&gt;
&lt;br /&gt;
  a aa &amp;lt;-- juste la lettre a et son phoneme &lt;br /&gt;
  autre au tt rr&lt;br /&gt;
  autre(2) au tt rr ee &lt;br /&gt;
  b bb &lt;br /&gt;
  c ss &lt;br /&gt;
  d dd ei d(2) dd ait &lt;br /&gt;
  e eu e(2) eu zz &lt;br /&gt;
  f ai ff &lt;br /&gt;
  g jj ei g(2) gg ai &lt;br /&gt;
  h aa ch  &lt;br /&gt;
  i ii &lt;br /&gt;
  j jj yy j(2) jj ii&lt;br /&gt;
  porte pp oo rr tt&lt;br /&gt;
  porte(2) pp oo rr tt ee&lt;br /&gt;
  portes(2) pp oo rr tt ee&lt;br /&gt;
  portes(3) pp oo rr tt ee zz&lt;br /&gt;
  portes(4) pp oo rr tt zz&lt;br /&gt;
&lt;br /&gt;
Le modèle acoustique que nous avons téléchargé étant inclu dans lium_french_f0&lt;br /&gt;
&lt;br /&gt;
Nous avons testé la reconnaissance vocale sur un téléphone android, les mots sont, dans la majorité des cas, bien reconnus.&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Comparaison architectures projet TV &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Au niveau de l’architecture nous avons établi plusieurs propositions après la réunion avec notre tuteur:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour une Raspberry Pi avec un dongle BLE :&lt;br /&gt;
* Installation OS Linux sur la Raspberry&lt;br /&gt;
* Librairie BlueZ pour l’utilisation du BLE (tests rapides effectués sur Linux avec le Dongle)&lt;br /&gt;
* Interface graphique avec une bibliothèque comme Qt (ou encore SDL…)&lt;br /&gt;
* Prix : Rpi = 26€ (chez RadioSpare), Dongle = 10€, TV = à partir de 358€ pour 117cm, + Connectique vidéo. Total = 394€&lt;br /&gt;
&lt;br /&gt;
Pour un écran ViewSonic VSD231 :&lt;br /&gt;
* Possède une API Bluetooth classic + API BLE&lt;br /&gt;
* Interface graphique Android (View, Layout...)&lt;br /&gt;
* Prix : écran ViewSonic VSD231 = 558 € pour 58 cm (chez ViewSonic).&lt;br /&gt;
&lt;br /&gt;
Récupération d’informations :&lt;br /&gt;
* Si données sur les lunettes : Bluetooth ou Wifi.&lt;br /&gt;
* Si données sur serveur : Ethernet ou Wifi.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Vu les propositions possibles nous pensons que la première proposition permettra une meilleure souplesse dans le développement mais serait un peu plus compliquée. Mais nous la trouvons aussi plus intéressante à faire de plus elle est moins coûteuse et permet d'utiliser un écran plus grand. Le développement sur tablette serait sûrement plus rapide à faire en contrepartie.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 01/12 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Conférence GlassCamp à l'Imaginarium &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
GlassCamp est une association qui essaye de répandre l'utilisation de toute les Smart Glass en général. Elle propose de multiples conférences dans lesquelles ils essayent de montrer au public l’intérêt de développer sur ces appareils. Dans le cadre de notre projet, notre tuteur nous a proposé de participer à cette présentation afin de mieux s’approprier le sujet. La conférence a eu lieu le 4 décembre à l'Imaginarium: une grande partie était plutôt tournée vers la présentation mais nous avons apprîs plusieurs choses intéressantes qui sont décrites dans le compte rendu.&lt;br /&gt;
&lt;br /&gt;
'''Compte Rendu Conférence 04/12/2014 :''' [[Fichier:Compte_Rendu_Conf_GlassCamp.pdf]]&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaines du 08/12 et 15/12 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Reconnaissance vocale en Français &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Nous avons avancé sur la version française de l'application. A la manière du menu vocal des google glass, nous avons utilisé un délimiteur&lt;br /&gt;
&amp;quot;ok lunettes&amp;quot; pour démarrer l'interaction avec l'application, afin que les discussions et bruits ambiants n'interfèrent pas sur l'utilisation de celle-ci.&lt;br /&gt;
Voici le scénario d'utilisation de la nouvelle version de l'application en Français.&lt;br /&gt;
[[Fichier:Schema_fr.png|700px|center]]&lt;br /&gt;
&lt;br /&gt;
Sous pocketsphinx, le délimiteur n'apparait pas dans une grammaire. La grammaire permet de prédestiner l'application à choisir entre deux mots. &lt;br /&gt;
Dans notre application, le moteur de reconnaissance vocale choisi la distance la plus courte, séparant le mot prononcé par l'utilisateur et ceux&lt;br /&gt;
qu'il est possible d'entendre. Ainsi entre &amp;quot;oui&amp;quot; et &amp;quot;non&amp;quot;, l'application choisira forcément l'un des deux, même si l'utilisateur dit &amp;quot;bonjour&amp;quot;&lt;br /&gt;
&lt;br /&gt;
L'avantage du délimiteur est que sa détection repose sur un seuillage entre ce qui est prononcé et ce qui doit être reconnu, nous pouvons régler ce seuil.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 05/01 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Entretien avec notre tuteur &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Durant cet entretien nous avons défini les évolutions du projet.&lt;br /&gt;
&lt;br /&gt;
'''Compte Rendu de l'entretien du 06/01/2015 :''' [[Fichier:Compte_Rendu_4.pdf]]&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 12/01 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; TV connectée &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Nous avons pris en main la détection des beacons (de la marque Estimote fournis par l'entreprise) dans les systèmes android.&lt;br /&gt;
L'adresse MAC et le RSSI sont accessibles, ce sont les seules informations nécessaires que nous avons besoin en ce qui concerne les beacons.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 19/01 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Interfaces_exemple.png|100px|thumb|right]]&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt;Interface TV &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Nous avons développé plusieurs exemples d'interfaces avec les instructions de notre tuteur afin de choisir les meilleurs résultats ensembles. Nous avons défini quelques contraintes pour le design. Elle doit être&lt;br /&gt;
* Simple et intuitive&lt;br /&gt;
* En accord avec les couleurs de l'entreprise&lt;br /&gt;
* Moderne (système de tuile ou autre)&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 26/01 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Entretien avec notre tuteur &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Durant cette entretien nous avons défini plus précisément les objectifs du projet.&lt;br /&gt;
Ci dessous le compte rendu.&lt;br /&gt;
&lt;br /&gt;
'''Compte Rendu de l'entretien du 26/01/2015 :''' [[Fichier:Compte_Rendu_5.pdf]]&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 02/02 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Portage d'une application de SmartPicking sur les Google Glass &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Une application android main libre pour les ORA glasses a été développé pour permettre à l'entreprise, &lt;br /&gt;
d'accélerer les opérations de picking(prélévement à l'article) en entrepôt. Celle-ci était à destination des lunettes ORA de Optinvent.&lt;br /&gt;
Notre tuteur souhaitait donc que nous réalisions le portage de cette application vers les google glass. Le but étant de comparer l'usage de cette application sur deux supports différents entre les lunettes. &lt;br /&gt;
&lt;br /&gt;
*Nous avons procédé à des ajustements au niveau de la gestion des layouts de l'interface, à équilibrer la places qu'occupe certaines informations données par l'application.&lt;br /&gt;
*Cette application communique par bluetooth avec une autre application lancée sur une tablette android, cette dernière permet de réaliser l'appairage avec la smartglass. La tablette étant la seule à être connectée au serveur de l'entreprise (l'AS400) via un réseau sécurisé. Nous avons du appairer manuellement les glass avec la tablette, et retirer dans le code le lancement d'un intent permettant aux lunettes de se rendre visible sur le réseau. Lorsque cet intent est lancé il génère une exception non attendue qui ne concerne que les google glass. Aprés recherches sur le net, il semble que c'est un problème récurrent qui a été signalé mais pas encore résolu.&lt;br /&gt;
&lt;br /&gt;
Ci dessous des screenshot de l'application adaptée par nos soins en question :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Schema_picking.png|1000px|center]]&lt;/div&gt;</summary>
		<author><name>Jgondry</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=P22_Google_Glass_en_logistique&amp;diff=16736</id>
		<title>P22 Google Glass en logistique</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=P22_Google_Glass_en_logistique&amp;diff=16736"/>
				<updated>2015-02-11T15:10:26Z</updated>
		
		<summary type="html">&lt;p&gt;Jgondry : /*  Portage d'une application de SmartPicking sur les Google Glass  */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Introduction =&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Description du sujet &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
Notre projet vise à l’optimisation du stockage et de l’adressage des palettes dans un entrepôt. En effet, lors du déchargement d’un camion, chercher un emplacement libre pour les palettes dans un entrepôt occupant une grande superficie fait perdre du temps et donc de la productivité dans le stockage. Sachant qu’un cariste perd un temps non négligeable à la recherche d’emplacement disponible, optimiser ce temps de recherche permettrait de gagner du temps sur cette opération.&lt;br /&gt;
Développer un prototype permettrait de rendre compte des moyens existants qui pourrait être mis en place dans une solution métier.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Analyse du sujet &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Google_glass.png|200px|thumb|right|Paire de Google Glass]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Optinvent_ora.png|200px|thumb|right|Paire de ORA d'Optivent]]&lt;br /&gt;
&lt;br /&gt;
Notre projet consiste à fluidifier le déchargement en indiquant au cariste l’emplacement libre le plus proche. Pour ne pas gêner le travail des employés, un dispositif main-libre comme une Google Glass semble adapté. Ce projet soulève plusieurs problématiques : développer une interface homme-machine apportant une information pertinente pour l’utilisateur sans pour autant être perturbante. &lt;br /&gt;
&lt;br /&gt;
L’idée serait de réaliser dans les grandes lignes un système similaire à ce scénario d’utilisation :&lt;br /&gt;
http://n.mynews.ly/!lB.Bs4fw&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Moyen d’affichage de l’Informations pertinentes'''&lt;br /&gt;
&lt;br /&gt;
Les Google Glass ne sont pas les seules smart glasses sur le marché. Il nous faudra choisir les appareils les plus adaptés. L’information pertinente pourrait être une direction à suivre dans l’entrepôt ou simplement un numéro d’emplacement (adressage intuitif de l’entrepôt). &lt;br /&gt;
&lt;br /&gt;
'''Géolocalisation'''&lt;br /&gt;
&lt;br /&gt;
Dans le cas d’une direction à suivre se pose le problème de la géolocalisation indoor dont l’utilité et la faisabilité seront discutés au fil des réunions avec l’entreprise. &lt;br /&gt;
&lt;br /&gt;
'''Adressage / flashage'''&lt;br /&gt;
&lt;br /&gt;
En ce qui concerne l’adressage des palettes en entrepôt, la solution existante repose sur un flashage des codes barres associés à l’emplacement venant d’être occupé. Une étude de faisabilité/utilité sera aussi faite sur une solution de remplacement grâce aux possibilités qu’offrent les smart glasses.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Cahier des charges &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
En partant de l'analyse du sujet et des discussion avec notre tuteur, nous avons définie un cahier des charges plus précis des tâches à accomplir:&lt;br /&gt;
&lt;br /&gt;
* '''Développer un système embarqué sur une paire de lunette Smart Glass'''&lt;br /&gt;
** Comparer les différentes offres en matière de Smart Glass notamment Google Glass &amp;amp; ORA de Optinvent&lt;br /&gt;
** Concevoir une interface homme-machine non perturbante pour l'utilisateur.&lt;br /&gt;
* '''Etudier la nécessité d'utiliser une géolocalisation en entrepôt et l'implémenter si besoin'''&lt;br /&gt;
** Via RSSI (Wifi, Bluetooh Low Energy ...)&lt;br /&gt;
** Via traitement d'images (reconnaissance de la signalétique en entrepôt)&lt;br /&gt;
* '''Etudier les possibilités d'optimisation du système d'adressage des palettes'''&lt;br /&gt;
** Implémenter la reconnaissance de code barre&lt;br /&gt;
** La tester en réalité métier (utilité ajoutée, habitude des magasiniers, vitesse de traitement...)&lt;br /&gt;
&lt;br /&gt;
Le cahier des charges est encore en cours de construction&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Matériel utilisé &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; SmartGlass &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Lors de la réunion nous avons discuté des technologies à utiliser dans le projet, et plus particulièrement des différentes SmartGlass. En effet, il existe une multitude de sociétés qui développe ce genre de lunettes. Nous commencerons à utiliser les Google Glass étant donné que notre tuteur en a déjà commandé puis nous développerons sur les lunettes ORA de Optivent qui seront livrées fin octobre. Nous devrons donc faire un comparatif entre ces deux SmartGlass puis étudier les autres appareils disponibles sur le marché.&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Localisation &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
L'utilisation de la géolocalisation dans le projet est à débattre. Mais des tests seront probablement mis en place. L'entreprise possède quelque iBeacons BLE Estimote dans ses bureaux d'innovations que nous pourrons emprunter.&lt;br /&gt;
Dans le cas où leur gain d'informations serait utile il nous faudra comparer les modèles disponibles. Choisir un nombre de module et des emplacements stratégiques dans l'entrepôt afin d'avoir une localisation assez précise pour l'application.&lt;br /&gt;
&lt;br /&gt;
L'utilisation d'autres technologies de géolocalisation a été discuté comme le Wifi ou le XBee mais le BLE semblait le plus adapté dans le cadre de notre projet.&lt;br /&gt;
&lt;br /&gt;
= Déroulement du projet =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 22/09 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Réunion avec le tuteur entreprise dans l’entrepôt &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Nous avons observé en situation le problème et discuté des besoins, des moyens déjà utilisables. Il nous faudra prendre en compte plusieurs paramètres dans notre réflexion tels que le système de stockage et d'adressages des palettes, sens de circulation des caristes, superficie des zones à desservir, durée de livraison.&lt;br /&gt;
Nous avons suggéré des étapes de validation intermédiaire du système par les futurs utilisateurs et pour cela nous rencontrerons le chef d'équipe des magasiniers lorsque qu'une version sera assez développée.&lt;br /&gt;
&lt;br /&gt;
Nous avons défini avec le tuteur les premières deadlines du projet, voici la timeline récapitulative:&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Timeline_1.jpg||center|1000px]]&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Compte Rendu &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Nous avons rédigé un compte rendu de la première réunion détaillant les spécifications des versions des livrables, des schémas et les sujets abordés lors de la rencontre :&lt;br /&gt;
&lt;br /&gt;
'''Compte Rendu réunion du 25/09/2014 :''' [[Fichier:Compte_Rendu_25_09.pdf]]&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 29/09 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Découverte des Google Glass &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
*Prise en main des Google Glass. &lt;br /&gt;
*Installation d'applications (.apk) grand public. Nous avons utilisé l'outil Android Debug Bridge(adb). Se mettre à la place d'un utilisateur.&lt;br /&gt;
*L'une des deux lunettes qui serait retenue imposera forcément le développement d'une application android (ou d'une technologie trés proche d'android, pour les Google Glass, se basant sur le Glass Development Kit qui est un add-on au SDK classique d'android). Nous avons donc téléchargé les packages nécessaires pour commencer à développer. &lt;br /&gt;
** Nous commençons à nous former sur les technologies android :développement d'applications minimaliste.&lt;br /&gt;
** Installation de nos premières apk minimalistes pour Android.&lt;br /&gt;
** Installation d'une application minimaliste sur la Google Glass.&lt;br /&gt;
&lt;br /&gt;
Voici un comparatif réalisé entre les lunettes ORA et les Google Glass.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Différences Google Glass/ORA &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!   !! Google Glass !! ORA &lt;br /&gt;
|-&lt;br /&gt;
|Connectique&lt;br /&gt;
|Compatible BLE (à partir de la XE 16 KitKat Update), Wifi &lt;br /&gt;
|Compatible BLE, Wifi&lt;br /&gt;
|-&lt;br /&gt;
|Autonomie en utilisation normale&lt;br /&gt;
|de 1h à 2h &lt;br /&gt;
|de 4h à 8h&lt;br /&gt;
|-&lt;br /&gt;
|Son&lt;br /&gt;
|Conductivité Cranienne&lt;br /&gt;
|Prise jack&lt;br /&gt;
|-&lt;br /&gt;
|Interface&lt;br /&gt;
|Ecran occupant une faible superficie dans le champ de vision &lt;br /&gt;
|Ecran 2 positions (moyennes et basses), plus étendu permettant une réalité augmentée &lt;br /&gt;
|-&lt;br /&gt;
|Système d'exploitation&lt;br /&gt;
|Android 4.4&lt;br /&gt;
|Android 4.2.2&lt;br /&gt;
|-&lt;br /&gt;
|Calculs&lt;br /&gt;
|CPU &amp;amp; GPU&lt;br /&gt;
|CPU &amp;amp; GPU&lt;br /&gt;
|-&lt;br /&gt;
|Prix&lt;br /&gt;
|1500$ &lt;br /&gt;
|949$&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 06/10 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Deuxième rendez-vous avec le tuteur entreprise &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Nous avons fait part de notre avancée en matière de prise en main et des problèmes rencontrés en matière de développement.&lt;br /&gt;
Les lunettes ORA sont commandées elles arrivent d'ici la fin octobre.&lt;br /&gt;
&lt;br /&gt;
La première version V1 de l'application pour Google Glass à livrer pour la mi-novembre est fixée.&lt;br /&gt;
&lt;br /&gt;
En partant d'une position connue (en dur dans l'application) dans l'entrepôt, elle indiquera à un utilisateur les emplacements libres les plus proches.&lt;br /&gt;
&lt;br /&gt;
L'état d'occupation des emplacements sera consulté et stocké dans l'application. Il n'y aura donc pas de gestion des conflits. Le sens de circulation dans l'entrepôt sera pris en compte.&lt;br /&gt;
Une communication avec la base de donnée de l'entrepôt n'est pour le moment pas d'actualité, cela nécessiterait des développements en amont.&lt;br /&gt;
La géolocalisation n'est pas au goût du jour non plus. L'adressage des emplacements dans l'entrepôt est intuitif, il est donc facile pour un magasinier de &lt;br /&gt;
se rendre à un emplacement en connaissant l'adresse.&lt;br /&gt;
&lt;br /&gt;
Pour l'IHM, nous nous inspirerons des applications pour Google Glass (les Glasswares) de type GPS.&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Premiers programmes sur Google Glass &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Pour nous familiariser avec la programmation sur ce genre d'appareil nous avons tous deux décidé de suivre en premier le tutoriel Android d'un site spécialisé. Cela afin de mieux comprendre le système Android, avec les concepts d'activités, de view etc.&lt;br /&gt;
Dans un deuxième temps nous avons choisi de suivre plusieurs tutoriels nous expliquant la prise en main basique des lunettes afin de saisir les particularités de leur programmation.&lt;br /&gt;
&lt;br /&gt;
Le plus dur étant finalement de comprendre les liens entre tous les fichiers du projets, les problèmes de drivers et d'upload simple que nous avons rencontrés et l’exécution du programme sur les lunettes. Des choses que nous arrivons maintenant à maitriser mais qui était floues à l'origine.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 13/10 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Programmation et gestion des interactions &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Durant cette semaine nous avons commencé a vraiment toucher aux fonctionnalités des Glass. Pour rester en main libre, nous avons fait des recherches et commencé à programmer de la reconnaissance vocale. Nous avons ainsi crée un système de navigation basique par commande vocale dans différents menus. Pour un accès rapide à l'application et toujours dans la même optique nous avons réussi à inclure le lancement de notre logiciel à partir du &amp;quot;Ok Glass&amp;quot; menu qui est le menu de lancement d'application par commande vocale des Google Glass. Voici un aperçu du résultat:&lt;br /&gt;
[[Fichier:V0_menu.png|1000px|center]]&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Analyse et évaluation du rendu &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Le début de la prise en main des fonctionnalités des Google Glass n'a pas été facile étant donné que la plupart des fonctionnalités sont propres à ce genre d'appareil. De plus elles nécessitent des techniques spéciales de programmation qui ne sont pas toujours très utilisées donc il est parfois difficile de trouver des exemples sur internet.&lt;br /&gt;
Néanmoins après l'implémentation de ces fonctionnalités nous avons pu rencontrer quelques difficultés de reconnaissance. En effet, les Google Glass possèdent un dictionnaire de mots/phrases pour la reconnaissance vocale mais elles nous permettent aussi d'écrire n'importe quelle phrase dans le mode développeur. Les phrases du dictionnaires ne posent aucun problème mais les phrases que nous écrivons sont parfois dures à reconnaitre. La reconnaissance de lettre seule ou de certains numéros est par exemple quasi impossible ou très aléatoire.&lt;br /&gt;
Le système de vu est quant à lui plutôt facile à prendre en main et intuitif dans l'utilisation.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 20/10 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Premiere structure de donnée &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Nous avons opté pour une structure de donnée récursive. Une Cellule, contenant des Allées, qui contiennent des Baies, contenant des Rangées, contenant des Emplacements.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Structure_export_resized.png|750px|center]]&lt;br /&gt;
Nous avons conçu cette structure de donnée pour qu'elle génère, dans un premier temps &amp;quot;en dur&amp;quot;, une cellule contenant des emplacements automatiquement adressés à la manière de ceux présent dans l'entrepôt. Ces adresses sont de la forme &amp;quot;D61A514&amp;quot; traduisez &amp;quot; Cellule 6 Allée 1A Baie 5 Rang 1 Niveau 4&amp;quot;.&lt;br /&gt;
Cette structure prend on compte le sens de circulation dans l'entrepôt.&lt;br /&gt;
Lors de futures interactions avec une base de donnée, cette structure serait sujette à évolution par une modification des méthodes de génération/modification du statut des adresses en fonction de cette base de donnée. Mais celle-ci constitue essentiellement une base pour appréhender plus pratiquement les problématiques de recherches de l'emplacement le plus proche.&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Prise en main de l'interface &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Nous avons déjà abordé les layouts java en TP donc il a été assez facile de commencer à faire des interfaces graphiques simples. Nous avons construit une interface graphique simple pour de faire une démonstration du programme aux tuteurs entreprise afin qu'ils comprennent bien le fonctionnement de notre algorithme.&lt;br /&gt;
L'interface graphique finale du programme sera très sobre afin de ne pas donner trop gêner le magasinier dans sa tâche.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 27/10 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Chemin optimal : Parcours intelligent Vs Sélection intelligente &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Un premier algorithme de recherche de l'emplacement le plus proche a été développé, celui-ci ne prend en compte qu'un seul scénario. &lt;br /&gt;
Celui de la position de départ (quai de déchargement où reviendra constamment le magasinier aprés chaque livraison) correspondante à la première allée de l'entrepôt, et en prenant en compte le sens de circulation. &lt;br /&gt;
A partir de ce moment, nous avons dégager deux grandes manières d'appréhender le problème.&lt;br /&gt;
&lt;br /&gt;
* Un parcours intelligent de la structure de donnée. C'est à dire parcourir les emplacements les plus proches, et choisir le premier emplacement libre. Une solution complexe à réaliser sur le plan algorithmique. En tenant compte du sens de circulation, il apparait que l'emplacement libre &amp;quot;leplusproche&amp;quot; (à vol d'oiseau) trouvé le plus tôt, ne correspondrait pas forcément à l'emplacement le plus proche compte tenu du chemin emprunté par un magasinier. Et c'est plutôt l'intérêt de cette algorithme.(Sauf dans l'unique cas où l'emplacement libre se trouve directement dans l'allée faisant face à la position de départ du magasinier, et le sens de circulation lui permet directement de se rendre à l'emplacement sans détour).&lt;br /&gt;
&lt;br /&gt;
* Une sélection intelligente parmi les emplacements libres. Leurs adresses renseignent à quelles allées, les emplacements libres appartiennent, donc renseignent sur le sens de circulation. A partir de la position de départ du magasinier et de l'ensemble des emplacements libres, on peut calculer la distance nécessaire à celui-ci pour les atteindre. Pour ainsi choisir l'adresse pour laquelle la distance est minimale.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 3/11 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Chemin optimal : sélection intelligente des adresses &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Nous avons écrit une premiere méthode de détermination. &lt;br /&gt;
On choisit l'emplacement, parmi tous ceux qui sont libres, pour lequel la distance de parcours est minimale entre le départ et celui-ci. &lt;br /&gt;
Ici l'unité de distance est la baie. La simplicité de l'algorithme réside dans le fait que le magasinier ne transporte qu'une seule caisse à la fois et repars toujours au même point de départ.&lt;br /&gt;
&lt;br /&gt;
Ci dessous un plan de l'entrepôt.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:schema_entrepot.png|750px|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Si on se place à l'entrée de l'Allée A :&lt;br /&gt;
&lt;br /&gt;
**le déplacement jusqu'à A4 (sens de circulation direct) est de : &lt;br /&gt;
&lt;br /&gt;
                        Y baies - (indice de la baie/2 +indice de la baie % 2) &lt;br /&gt;
&lt;br /&gt;
**le déplacement jusqu'à B1 (sens de circulation indirect) est de : &lt;br /&gt;
&lt;br /&gt;
                        Y baies + différence entre l'allée A et B donc X baies + indice de la baie/2 +indice de la baie % 2&lt;br /&gt;
**le déplacement jusqu'à C1 (sens de circulation direct) est de : &lt;br /&gt;
                      &lt;br /&gt;
                        Y baies - (indice de la baie/2 +indice de la baie % 2)+différence entre l'allée A et C donc 2*X baies.&lt;br /&gt;
&lt;br /&gt;
*Si on se place à l'entrée de l'Allée B :&lt;br /&gt;
**le déplacement jusqu'à B1 (sens de circulation indirect avec contournement) est de : &lt;br /&gt;
                        &lt;br /&gt;
                        2*X baies + Y baies + 2*X baies + (indice de la baie/2 +indice de la baie % 2)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On peut généraliser l'ensemble de ces situations de déplacement avec l'algorithme suivant :&lt;br /&gt;
&lt;br /&gt;
Pseudo code&lt;br /&gt;
&lt;br /&gt;
  Leplusproche( Allee depart )&lt;br /&gt;
    distance_la_plus_petite = valeurMAX&lt;br /&gt;
      le_plus_proche=&amp;quot;&amp;quot;&lt;br /&gt;
         Pour chaque Allee de Cellule&lt;br /&gt;
           sens=Allee.sens&lt;br /&gt;
           Pour chaque Baie de Allee&lt;br /&gt;
             Pour chaque Rang de Allee&lt;br /&gt;
 	       Pour chaque Emplacement de Rang&lt;br /&gt;
                Si Emplacement estlibre &lt;br /&gt;
                &lt;br /&gt;
                indice_baie = selection_indice_baie(Emplacement.adresse)&lt;br /&gt;
   		 allee_cible = selection_indice_allee(Emplacement.adresse)  &lt;br /&gt;
   		 difference_allee = valeur_absolue(depart -cible) &lt;br /&gt;
                    Si difference_allee==0 et sens.estindirect&lt;br /&gt;
                      //sens indirect +contournement&lt;br /&gt;
                      distance_actuelle=(indice_baie/2)+indice_baie%2+(2*(difference_allee))+4*X+Y			&lt;br /&gt;
                    Sinon	&lt;br /&gt;
                        Si sens estdirect&lt;br /&gt;
                          //sens direct &lt;br /&gt;
                          distance_actuelle=(Y-((indice_baie/2)+indice_baie%2))+2*difference_allee&lt;br /&gt;
                        Sinon&lt;br /&gt;
                          //sens indirect mais pas de contournement&lt;br /&gt;
                          distance_actuelle=((indice_baie/2)+indice_baie%2)+2*difference_allee+Y&lt;br /&gt;
                        Finsi	&lt;br /&gt;
                    Finsi	&lt;br /&gt;
                    Si distance_actuelle &amp;lt; distance_la_plus_petite&lt;br /&gt;
                      le_plus_proche=Emplacement.adresse&lt;br /&gt;
                      distance_la_plus_petite=distance_actuelle&lt;br /&gt;
                    Finsi&lt;br /&gt;
                Finsi  &lt;br /&gt;
            Finpour&lt;br /&gt;
          Finpour&lt;br /&gt;
        Finpour&lt;br /&gt;
      Finpour&lt;br /&gt;
    retourne le_plus_proche&lt;br /&gt;
  Finleplusproche&lt;br /&gt;
&lt;br /&gt;
Cet algorithme nous donne satisfaction (dans le cadre de la V1)&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 10/11 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Programmation et gestion des interactions &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Aprés quelques difficultés vis à vis de la gestion des menus vocaux sur les lunettes qui ne fonctionnent pas de la même manière que les menus classiques sous android, nous avons étoffé les interactions possible avec l'application des google glass. (Nous souhaitions inflater un deuxième menu pour interagir de manière plus contextuelle, il fallait le faire dans la méthode onCreatePanelMenu dont l'appel serait forcé avec getWindow().invalidatePanelMenu(WindowUtils.FEATURE_VOICE_COMMANDS) plutôt que dans onPrepareOptionsMenu forcée par invalidateOptionMenu()...) &lt;br /&gt;
&lt;br /&gt;
schéma d'utilisation...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Proposition projet affichage télévision &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Tele_concept.png|200px|thumb|right]]&lt;br /&gt;
&lt;br /&gt;
Notre tuteur nous a contacté pour nous proposer d'étudier un second projet en parallèle au projet initial. Celui consistant à gérer l'affichage d'information personnalisé d'un magasinier passant à proximité d'un écran de télévision. Nous devons effectuer un Proof Of Concept (POC) et réfléchir à ce sujet.&lt;br /&gt;
L'utilisation du BLE est donc de nouveau d'actualité, car je rappel que sont utilité était discutable dans une réalité métier du projet initial. La question étant plus de savoir comment gérer le système du coté du téléviseur.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Le concept de base étant de :&lt;br /&gt;
* Fournir une beacon aux magasiniers de l'entrepôt.&lt;br /&gt;
* Installer une télévision sur un centre de vie dans l'entrepôt avec une beacon&lt;br /&gt;
* Pousser du contenu personnalisé au magasinier qui se présente devant la tv dans son centre de vie&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 17/11 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Brainstorming à Polytech &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Dans la cadre du POC sur l'affichage personnalisé sur une télévision, nous avons profité d'un exercice de management pour faire participer la classe à notre projet. Grâce à cette intervention nous avons pu confirmer nos idées sur les technologies à utiliser. Mais nous avons surtout eu une multitude de propositions sur les données à afficher sur l'écran.&lt;br /&gt;
&lt;br /&gt;
Pour plus détails, le compte rendu est disponible à ce lien:&lt;br /&gt;
&lt;br /&gt;
'''Compte Rendu Brainstorming 17/11/2014 :''' [[Fichier:Compte_Rendu_POC_17_11.pdf]]&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Entretien avec notre tuteur entreprise &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Durant cet entretien, nous avons livré la première version de l'application et nous avons discuté de la suite du projet.&lt;br /&gt;
Ci joint le Compte Rendu.&lt;br /&gt;
&lt;br /&gt;
'''Compte Rendu  19/11/2014 :''' [[Fichier:Compte_Rendu_19_11.pdf]]&lt;br /&gt;
&lt;br /&gt;
De cette réunion, les points suivants en sont sortis:&lt;br /&gt;
&lt;br /&gt;
*Une reconnaissance vocale en langue française sur les lunettes serait plus intéressante pour les employés (une piste serait d’utiliser l’outil pocketsphinx-  android).&lt;br /&gt;
*Par rapport à l'IHM, il faudrait mettre l’affichage au premier plan sur les Google Glass pour une démo auprés des parties prenantes du projet.&lt;br /&gt;
*Choisir une architecture pour l’affichage d’information personnalisées.&lt;br /&gt;
**La télévision connectée à une raspberry qui communiquerait via un dongle BLE avec le beacon d’un magasinier, ce qui permettrait l’identification de celui-ci prés de la Télévision, et déclencherait un processus d’échange d’information. (Communication via le protocole Bluetooh, wifi entre les lunettes et la Raspberry  ou communication avec la Raspberry avec la Base de Donnée sur le réseau de l’entreprise)&lt;br /&gt;
**Une télévision connectée en continu à un site internet via un dongle HDMI.&lt;br /&gt;
**Une tablette android géante supportant le BLE, ou utilisant un dongle BLE.&lt;br /&gt;
* Réaliser le portage de l’application sur le prototype des lunettes ORA.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 24/11 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Reconnaissance vocale en Français &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Pocket Sphinx Android est une librairie permettant de faire de la reconnaissance vocale d'un langage donné sur un système android en offline.&lt;br /&gt;
Pour supporter une langue, elle nécessite: &lt;br /&gt;
*un modèle acoustique (ensemble d'informations pour le traitement sonore)&lt;br /&gt;
*un dictionnaire associant les mots et leur phonèmes&lt;br /&gt;
*une grammaire, c'est un fichier définissant comment seraient articulé les mots à reconnaître et limitant les possibilités de langage).&lt;br /&gt;
&lt;br /&gt;
La grammaire étant un automate. Voici un exemple de la grammaire menu.gram pour la reconnaissance de la porte de déchargement.&lt;br /&gt;
[[Fichier:Arborescence_pocket_sphinx.png|200px|thumb|right|PocketSphinx dans un projet Android]]&lt;br /&gt;
&lt;br /&gt;
  #JSGF V1.0;&lt;br /&gt;
  grammar menu;&lt;br /&gt;
  &amp;lt;porte&amp;gt; = porte a |&lt;br /&gt;
            porte b |&lt;br /&gt;
            porte c |&lt;br /&gt;
            porte d |&lt;br /&gt;
            porte e |&lt;br /&gt;
            porte f |&lt;br /&gt;
            porte g |&lt;br /&gt;
            porte h |&lt;br /&gt;
            porte i |&lt;br /&gt;
            porte j ;&lt;br /&gt;
  public &amp;lt;porte&amp;gt; = &amp;lt;porte&amp;gt;+;&lt;br /&gt;
&lt;br /&gt;
Un extrait du dictionnaire french_letter.dic associé avec les phonemes&lt;br /&gt;
&lt;br /&gt;
  a aa &amp;lt;-- juste la lettre a et son phoneme &lt;br /&gt;
  autre au tt rr&lt;br /&gt;
  autre(2) au tt rr ee &lt;br /&gt;
  b bb &lt;br /&gt;
  c ss &lt;br /&gt;
  d dd ei d(2) dd ait &lt;br /&gt;
  e eu e(2) eu zz &lt;br /&gt;
  f ai ff &lt;br /&gt;
  g jj ei g(2) gg ai &lt;br /&gt;
  h aa ch  &lt;br /&gt;
  i ii &lt;br /&gt;
  j jj yy j(2) jj ii&lt;br /&gt;
  porte pp oo rr tt&lt;br /&gt;
  porte(2) pp oo rr tt ee&lt;br /&gt;
  portes(2) pp oo rr tt ee&lt;br /&gt;
  portes(3) pp oo rr tt ee zz&lt;br /&gt;
  portes(4) pp oo rr tt zz&lt;br /&gt;
&lt;br /&gt;
Le modèle acoustique que nous avons téléchargé étant inclu dans lium_french_f0&lt;br /&gt;
&lt;br /&gt;
Nous avons testé la reconnaissance vocale sur un téléphone android, les mots sont, dans la majorité des cas, bien reconnus.&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Comparaison architectures projet TV &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Au niveau de l’architecture nous avons établi plusieurs propositions après la réunion avec notre tuteur:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour une Raspberry Pi avec un dongle BLE :&lt;br /&gt;
* Installation OS Linux sur la Raspberry&lt;br /&gt;
* Librairie BlueZ pour l’utilisation du BLE (tests rapides effectués sur Linux avec le Dongle)&lt;br /&gt;
* Interface graphique avec une bibliothèque comme Qt (ou encore SDL…)&lt;br /&gt;
* Prix : Rpi = 26€ (chez RadioSpare), Dongle = 10€, TV = à partir de 358€ pour 117cm, + Connectique vidéo. Total = 394€&lt;br /&gt;
&lt;br /&gt;
Pour un écran ViewSonic VSD231 :&lt;br /&gt;
* Possède une API Bluetooth classic + API BLE&lt;br /&gt;
* Interface graphique Android (View, Layout...)&lt;br /&gt;
* Prix : écran ViewSonic VSD231 = 558 € pour 58 cm (chez ViewSonic).&lt;br /&gt;
&lt;br /&gt;
Récupération d’informations :&lt;br /&gt;
* Si données sur les lunettes : Bluetooth ou Wifi.&lt;br /&gt;
* Si données sur serveur : Ethernet ou Wifi.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Vu les propositions possibles nous pensons que la première proposition permettra une meilleure souplesse dans le développement mais serait un peu plus compliquée. Mais nous la trouvons aussi plus intéressante à faire de plus elle est moins coûteuse et permet d'utiliser un écran plus grand. Le développement sur tablette serait sûrement plus rapide à faire en contrepartie.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 01/12 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Conférence GlassCamp à l'Imaginarium &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
GlassCamp est une association qui essaye de répandre l'utilisation de toute les Smart Glass en général. Elle propose de multiples conférences dans lesquelles ils essayent de montrer au public l’intérêt de développer sur ces appareils. Dans le cadre de notre projet, notre tuteur nous a proposé de participer à cette présentation afin de mieux s’approprier le sujet. La conférence a eu lieu le 4 décembre à l'Imaginarium: une grande partie était plutôt tournée vers la présentation mais nous avons apprîs plusieurs choses intéressantes qui sont décrites dans le compte rendu.&lt;br /&gt;
&lt;br /&gt;
'''Compte Rendu Conférence 04/12/2014 :''' [[Fichier:Compte_Rendu_Conf_GlassCamp.pdf]]&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaines du 08/12 et 15/12 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Reconnaissance vocale en Français &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Nous avons avancé sur la version française de l'application. A la manière du menu vocal des google glass, nous avons utilisé un délimiteur&lt;br /&gt;
&amp;quot;ok lunettes&amp;quot; pour démarrer l'interaction avec l'application, afin que les discussions et bruits ambiants n'interfèrent pas sur l'utilisation de celle-ci.&lt;br /&gt;
Voici le scénario d'utilisation de la nouvelle version de l'application en Français.&lt;br /&gt;
[[Fichier:Schema_fr.png|700px|center]]&lt;br /&gt;
&lt;br /&gt;
Sous pocketsphinx, le délimiteur n'apparait pas dans une grammaire. La grammaire permet de prédestiner l'application à choisir entre deux mots. &lt;br /&gt;
Dans notre application, le moteur de reconnaissance vocale choisi la distance la plus courte, séparant le mot prononcé par l'utilisateur et ceux&lt;br /&gt;
qu'il est possible d'entendre. Ainsi entre &amp;quot;oui&amp;quot; et &amp;quot;non&amp;quot;, l'application choisira forcément l'un des deux, même si l'utilisateur dit &amp;quot;bonjour&amp;quot;&lt;br /&gt;
&lt;br /&gt;
L'avantage du délimiteur est que sa détection repose sur un seuillage entre ce qui est prononcé et ce qui doit être reconnu, nous pouvons régler ce seuil.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 05/01 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Entretien avec notre tuteur &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Durant cet entretien nous avons défini les évolutions du projet.&lt;br /&gt;
&lt;br /&gt;
'''Compte Rendu de l'entretien du 06/01/2015 :''' [[Fichier:Compte_Rendu_4.pdf]]&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 12/01 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; TV connectée &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Nous avons pris en main la détection des beacons (de la marque Estimote fournis par l'entreprise) dans les systèmes android.&lt;br /&gt;
L'adresse MAC et le RSSI sont accessibles, ce sont les seules informations nécessaires que nous avons besoin en ce qui concerne les beacons.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 19/01 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Interfaces_exemple.png|100px|thumb|right]]&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt;Interface TV &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Nous avons développé plusieurs exemples d'interfaces avec les instructions de notre tuteur afin de choisir les meilleurs résultats ensembles. Nous avons défini quelques contraintes pour le design. Elle doit être&lt;br /&gt;
* Simple et intuitive&lt;br /&gt;
* En accord avec les couleurs de l'entreprise&lt;br /&gt;
* Moderne (système de tuile ou autre)&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 26/01 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Entretien avec notre tuteur &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Durant cette entretien nous avons défini plus précisément les objectifs du projet.&lt;br /&gt;
Ci dessous le compte rendu.&lt;br /&gt;
&lt;br /&gt;
'''Compte Rendu de l'entretien du 26/01/2015 :''' [[Fichier:Compte_Rendu_5.pdf]]&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 02/02 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Portage d'une application de SmartPicking sur les Google Glass &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Une application android pour les ORA glasses a été développé pour permettre à l'entreprise, &lt;br /&gt;
d'accélerer les opérations de picking(prélévement à l'article) en entrepôt. Celle-ci était à destination des lunettes ORA de Optinvent.&lt;br /&gt;
Notre tuteur souhaitait donc que nous réalisions le portage de cette application vers les google glass. Le but étant de comparer l'usage de cette application sur deux supports différents entre les lunettes. &lt;br /&gt;
&lt;br /&gt;
*Nous avons procédé à des ajustements au niveau de la gestion des layouts de l'interface, à équilibrer la places qu'occupe certaines informations données par l'application.&lt;br /&gt;
*Cette application communique par bluetooth avec une autre application lancée sur une tablette android, cette dernière permet de réaliser l'appairage avec la smartglass. La tablette étant la seule à être connectée au serveur de l'entreprise (l'AS400) via un réseau sécurisé. Nous avons du appairer manuellement les glass avec la tablette, et retirer dans le code le lancement d'un intent permettant aux lunettes de se rendre visible sur le réseau. Lorsque cet intent est lancé il génère une exception non attendue qui ne concerne que les google glass. Aprés recherches sur le net, il semble que c'est un problème récurrent qui a été signalé mais pas encore résolu.&lt;br /&gt;
&lt;br /&gt;
Ci dessous des screenshot de l'application adaptée par nos soins en question :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Schema_picking.png|1000px|center]]&lt;/div&gt;</summary>
		<author><name>Jgondry</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=Fichier:Schema_picking.png&amp;diff=16734</id>
		<title>Fichier:Schema picking.png</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=Fichier:Schema_picking.png&amp;diff=16734"/>
				<updated>2015-02-11T15:09:09Z</updated>
		
		<summary type="html">&lt;p&gt;Jgondry : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Jgondry</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=P22_Google_Glass_en_logistique&amp;diff=16718</id>
		<title>P22 Google Glass en logistique</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=P22_Google_Glass_en_logistique&amp;diff=16718"/>
				<updated>2015-02-11T14:51:10Z</updated>
		
		<summary type="html">&lt;p&gt;Jgondry : /*  Portage d'une application de SmartPicking sur les Google Glass  */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Introduction =&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Description du sujet &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
Notre projet vise à l’optimisation du stockage et de l’adressage des palettes dans un entrepôt. En effet, lors du déchargement d’un camion, chercher un emplacement libre pour les palettes dans un entrepôt occupant une grande superficie fait perdre du temps et donc de la productivité dans le stockage. Sachant qu’un cariste perd un temps non négligeable à la recherche d’emplacement disponible, optimiser ce temps de recherche permettrait de gagner du temps sur cette opération.&lt;br /&gt;
Développer un prototype permettrait de rendre compte des moyens existants qui pourrait être mis en place dans une solution métier.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Analyse du sujet &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Google_glass.png|200px|thumb|right|Paire de Google Glass]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Optinvent_ora.png|200px|thumb|right|Paire de ORA d'Optivent]]&lt;br /&gt;
&lt;br /&gt;
Notre projet consiste à fluidifier le déchargement en indiquant au cariste l’emplacement libre le plus proche. Pour ne pas gêner le travail des employés, un dispositif main-libre comme une Google Glass semble adapté. Ce projet soulève plusieurs problématiques : développer une interface homme-machine apportant une information pertinente pour l’utilisateur sans pour autant être perturbante. &lt;br /&gt;
&lt;br /&gt;
L’idée serait de réaliser dans les grandes lignes un système similaire à ce scénario d’utilisation :&lt;br /&gt;
http://n.mynews.ly/!lB.Bs4fw&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Moyen d’affichage de l’Informations pertinentes'''&lt;br /&gt;
&lt;br /&gt;
Les Google Glass ne sont pas les seules smart glasses sur le marché. Il nous faudra choisir les appareils les plus adaptés. L’information pertinente pourrait être une direction à suivre dans l’entrepôt ou simplement un numéro d’emplacement (adressage intuitif de l’entrepôt). &lt;br /&gt;
&lt;br /&gt;
'''Géolocalisation'''&lt;br /&gt;
&lt;br /&gt;
Dans le cas d’une direction à suivre se pose le problème de la géolocalisation indoor dont l’utilité et la faisabilité seront discutés au fil des réunions avec l’entreprise. &lt;br /&gt;
&lt;br /&gt;
'''Adressage / flashage'''&lt;br /&gt;
&lt;br /&gt;
En ce qui concerne l’adressage des palettes en entrepôt, la solution existante repose sur un flashage des codes barres associés à l’emplacement venant d’être occupé. Une étude de faisabilité/utilité sera aussi faite sur une solution de remplacement grâce aux possibilités qu’offrent les smart glasses.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Cahier des charges &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
En partant de l'analyse du sujet et des discussion avec notre tuteur, nous avons définie un cahier des charges plus précis des tâches à accomplir:&lt;br /&gt;
&lt;br /&gt;
* '''Développer un système embarqué sur une paire de lunette Smart Glass'''&lt;br /&gt;
** Comparer les différentes offres en matière de Smart Glass notamment Google Glass &amp;amp; ORA de Optinvent&lt;br /&gt;
** Concevoir une interface homme-machine non perturbante pour l'utilisateur.&lt;br /&gt;
* '''Etudier la nécessité d'utiliser une géolocalisation en entrepôt et l'implémenter si besoin'''&lt;br /&gt;
** Via RSSI (Wifi, Bluetooh Low Energy ...)&lt;br /&gt;
** Via traitement d'images (reconnaissance de la signalétique en entrepôt)&lt;br /&gt;
* '''Etudier les possibilités d'optimisation du système d'adressage des palettes'''&lt;br /&gt;
** Implémenter la reconnaissance de code barre&lt;br /&gt;
** La tester en réalité métier (utilité ajoutée, habitude des magasiniers, vitesse de traitement...)&lt;br /&gt;
&lt;br /&gt;
Le cahier des charges est encore en cours de construction&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Matériel utilisé &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; SmartGlass &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Lors de la réunion nous avons discuté des technologies à utiliser dans le projet, et plus particulièrement des différentes SmartGlass. En effet, il existe une multitude de sociétés qui développe ce genre de lunettes. Nous commencerons à utiliser les Google Glass étant donné que notre tuteur en a déjà commandé puis nous développerons sur les lunettes ORA de Optivent qui seront livrées fin octobre. Nous devrons donc faire un comparatif entre ces deux SmartGlass puis étudier les autres appareils disponibles sur le marché.&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Localisation &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
L'utilisation de la géolocalisation dans le projet est à débattre. Mais des tests seront probablement mis en place. L'entreprise possède quelque iBeacons BLE Estimote dans ses bureaux d'innovations que nous pourrons emprunter.&lt;br /&gt;
Dans le cas où leur gain d'informations serait utile il nous faudra comparer les modèles disponibles. Choisir un nombre de module et des emplacements stratégiques dans l'entrepôt afin d'avoir une localisation assez précise pour l'application.&lt;br /&gt;
&lt;br /&gt;
L'utilisation d'autres technologies de géolocalisation a été discuté comme le Wifi ou le XBee mais le BLE semblait le plus adapté dans le cadre de notre projet.&lt;br /&gt;
&lt;br /&gt;
= Déroulement du projet =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 22/09 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Réunion avec le tuteur entreprise dans l’entrepôt &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Nous avons observé en situation le problème et discuté des besoins, des moyens déjà utilisables. Il nous faudra prendre en compte plusieurs paramètres dans notre réflexion tels que le système de stockage et d'adressages des palettes, sens de circulation des caristes, superficie des zones à desservir, durée de livraison.&lt;br /&gt;
Nous avons suggéré des étapes de validation intermédiaire du système par les futurs utilisateurs et pour cela nous rencontrerons le chef d'équipe des magasiniers lorsque qu'une version sera assez développée.&lt;br /&gt;
&lt;br /&gt;
Nous avons défini avec le tuteur les premières deadlines du projet, voici la timeline récapitulative:&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Timeline_1.jpg||center|1000px]]&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Compte Rendu &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Nous avons rédigé un compte rendu de la première réunion détaillant les spécifications des versions des livrables, des schémas et les sujets abordés lors de la rencontre :&lt;br /&gt;
&lt;br /&gt;
'''Compte Rendu réunion du 25/09/2014 :''' [[Fichier:Compte_Rendu_25_09.pdf]]&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 29/09 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Découverte des Google Glass &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
*Prise en main des Google Glass. &lt;br /&gt;
*Installation d'applications (.apk) grand public. Nous avons utilisé l'outil Android Debug Bridge(adb). Se mettre à la place d'un utilisateur.&lt;br /&gt;
*L'une des deux lunettes qui serait retenue imposera forcément le développement d'une application android (ou d'une technologie trés proche d'android, pour les Google Glass, se basant sur le Glass Development Kit qui est un add-on au SDK classique d'android). Nous avons donc téléchargé les packages nécessaires pour commencer à développer. &lt;br /&gt;
** Nous commençons à nous former sur les technologies android :développement d'applications minimaliste.&lt;br /&gt;
** Installation de nos premières apk minimalistes pour Android.&lt;br /&gt;
** Installation d'une application minimaliste sur la Google Glass.&lt;br /&gt;
&lt;br /&gt;
Voici un comparatif réalisé entre les lunettes ORA et les Google Glass.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Différences Google Glass/ORA &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!   !! Google Glass !! ORA &lt;br /&gt;
|-&lt;br /&gt;
|Connectique&lt;br /&gt;
|Compatible BLE (à partir de la XE 16 KitKat Update), Wifi &lt;br /&gt;
|Compatible BLE, Wifi&lt;br /&gt;
|-&lt;br /&gt;
|Autonomie en utilisation normale&lt;br /&gt;
|de 1h à 2h &lt;br /&gt;
|de 4h à 8h&lt;br /&gt;
|-&lt;br /&gt;
|Son&lt;br /&gt;
|Conductivité Cranienne&lt;br /&gt;
|Prise jack&lt;br /&gt;
|-&lt;br /&gt;
|Interface&lt;br /&gt;
|Ecran occupant une faible superficie dans le champ de vision &lt;br /&gt;
|Ecran 2 positions (moyennes et basses), plus étendu permettant une réalité augmentée &lt;br /&gt;
|-&lt;br /&gt;
|Système d'exploitation&lt;br /&gt;
|Android 4.4&lt;br /&gt;
|Android 4.2.2&lt;br /&gt;
|-&lt;br /&gt;
|Calculs&lt;br /&gt;
|CPU &amp;amp; GPU&lt;br /&gt;
|CPU &amp;amp; GPU&lt;br /&gt;
|-&lt;br /&gt;
|Prix&lt;br /&gt;
|1500$ &lt;br /&gt;
|949$&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 06/10 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Deuxième rendez-vous avec le tuteur entreprise &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Nous avons fait part de notre avancée en matière de prise en main et des problèmes rencontrés en matière de développement.&lt;br /&gt;
Les lunettes ORA sont commandées elles arrivent d'ici la fin octobre.&lt;br /&gt;
&lt;br /&gt;
La première version V1 de l'application pour Google Glass à livrer pour la mi-novembre est fixée.&lt;br /&gt;
&lt;br /&gt;
En partant d'une position connue (en dur dans l'application) dans l'entrepôt, elle indiquera à un utilisateur les emplacements libres les plus proches.&lt;br /&gt;
&lt;br /&gt;
L'état d'occupation des emplacements sera consulté et stocké dans l'application. Il n'y aura donc pas de gestion des conflits. Le sens de circulation dans l'entrepôt sera pris en compte.&lt;br /&gt;
Une communication avec la base de donnée de l'entrepôt n'est pour le moment pas d'actualité, cela nécessiterait des développements en amont.&lt;br /&gt;
La géolocalisation n'est pas au goût du jour non plus. L'adressage des emplacements dans l'entrepôt est intuitif, il est donc facile pour un magasinier de &lt;br /&gt;
se rendre à un emplacement en connaissant l'adresse.&lt;br /&gt;
&lt;br /&gt;
Pour l'IHM, nous nous inspirerons des applications pour Google Glass (les Glasswares) de type GPS.&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Premiers programmes sur Google Glass &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Pour nous familiariser avec la programmation sur ce genre d'appareil nous avons tous deux décidé de suivre en premier le tutoriel Android d'un site spécialisé. Cela afin de mieux comprendre le système Android, avec les concepts d'activités, de view etc.&lt;br /&gt;
Dans un deuxième temps nous avons choisi de suivre plusieurs tutoriels nous expliquant la prise en main basique des lunettes afin de saisir les particularités de leur programmation.&lt;br /&gt;
&lt;br /&gt;
Le plus dur étant finalement de comprendre les liens entre tous les fichiers du projets, les problèmes de drivers et d'upload simple que nous avons rencontrés et l’exécution du programme sur les lunettes. Des choses que nous arrivons maintenant à maitriser mais qui était floues à l'origine.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 13/10 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Programmation et gestion des interactions &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Durant cette semaine nous avons commencé a vraiment toucher aux fonctionnalités des Glass. Pour rester en main libre, nous avons fait des recherches et commencé à programmer de la reconnaissance vocale. Nous avons ainsi crée un système de navigation basique par commande vocale dans différents menus. Pour un accès rapide à l'application et toujours dans la même optique nous avons réussi à inclure le lancement de notre logiciel à partir du &amp;quot;Ok Glass&amp;quot; menu qui est le menu de lancement d'application par commande vocale des Google Glass. Voici un aperçu du résultat:&lt;br /&gt;
[[Fichier:V0_menu.png|1000px|center]]&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Analyse et évaluation du rendu &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Le début de la prise en main des fonctionnalités des Google Glass n'a pas été facile étant donné que la plupart des fonctionnalités sont propres à ce genre d'appareil. De plus elles nécessitent des techniques spéciales de programmation qui ne sont pas toujours très utilisées donc il est parfois difficile de trouver des exemples sur internet.&lt;br /&gt;
Néanmoins après l'implémentation de ces fonctionnalités nous avons pu rencontrer quelques difficultés de reconnaissance. En effet, les Google Glass possèdent un dictionnaire de mots/phrases pour la reconnaissance vocale mais elles nous permettent aussi d'écrire n'importe quelle phrase dans le mode développeur. Les phrases du dictionnaires ne posent aucun problème mais les phrases que nous écrivons sont parfois dures à reconnaitre. La reconnaissance de lettre seule ou de certains numéros est par exemple quasi impossible ou très aléatoire.&lt;br /&gt;
Le système de vu est quant à lui plutôt facile à prendre en main et intuitif dans l'utilisation.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 20/10 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Premiere structure de donnée &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Nous avons opté pour une structure de donnée récursive. Une Cellule, contenant des Allées, qui contiennent des Baies, contenant des Rangées, contenant des Emplacements.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Structure_export_resized.png|750px|center]]&lt;br /&gt;
Nous avons conçu cette structure de donnée pour qu'elle génère, dans un premier temps &amp;quot;en dur&amp;quot;, une cellule contenant des emplacements automatiquement adressés à la manière de ceux présent dans l'entrepôt. Ces adresses sont de la forme &amp;quot;D61A514&amp;quot; traduisez &amp;quot; Cellule 6 Allée 1A Baie 5 Rang 1 Niveau 4&amp;quot;.&lt;br /&gt;
Cette structure prend on compte le sens de circulation dans l'entrepôt.&lt;br /&gt;
Lors de futures interactions avec une base de donnée, cette structure serait sujette à évolution par une modification des méthodes de génération/modification du statut des adresses en fonction de cette base de donnée. Mais celle-ci constitue essentiellement une base pour appréhender plus pratiquement les problématiques de recherches de l'emplacement le plus proche.&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Prise en main de l'interface &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Nous avons déjà abordé les layouts java en TP donc il a été assez facile de commencer à faire des interfaces graphiques simples. Nous avons construit une interface graphique simple pour de faire une démonstration du programme aux tuteurs entreprise afin qu'ils comprennent bien le fonctionnement de notre algorithme.&lt;br /&gt;
L'interface graphique finale du programme sera très sobre afin de ne pas donner trop gêner le magasinier dans sa tâche.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 27/10 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Chemin optimal : Parcours intelligent Vs Sélection intelligente &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Un premier algorithme de recherche de l'emplacement le plus proche a été développé, celui-ci ne prend en compte qu'un seul scénario. &lt;br /&gt;
Celui de la position de départ (quai de déchargement où reviendra constamment le magasinier aprés chaque livraison) correspondante à la première allée de l'entrepôt, et en prenant en compte le sens de circulation. &lt;br /&gt;
A partir de ce moment, nous avons dégager deux grandes manières d'appréhender le problème.&lt;br /&gt;
&lt;br /&gt;
* Un parcours intelligent de la structure de donnée. C'est à dire parcourir les emplacements les plus proches, et choisir le premier emplacement libre. Une solution complexe à réaliser sur le plan algorithmique. En tenant compte du sens de circulation, il apparait que l'emplacement libre &amp;quot;leplusproche&amp;quot; (à vol d'oiseau) trouvé le plus tôt, ne correspondrait pas forcément à l'emplacement le plus proche compte tenu du chemin emprunté par un magasinier. Et c'est plutôt l'intérêt de cette algorithme.(Sauf dans l'unique cas où l'emplacement libre se trouve directement dans l'allée faisant face à la position de départ du magasinier, et le sens de circulation lui permet directement de se rendre à l'emplacement sans détour).&lt;br /&gt;
&lt;br /&gt;
* Une sélection intelligente parmi les emplacements libres. Leurs adresses renseignent à quelles allées, les emplacements libres appartiennent, donc renseignent sur le sens de circulation. A partir de la position de départ du magasinier et de l'ensemble des emplacements libres, on peut calculer la distance nécessaire à celui-ci pour les atteindre. Pour ainsi choisir l'adresse pour laquelle la distance est minimale.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 3/11 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Chemin optimal : sélection intelligente des adresses &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Nous avons écrit une premiere méthode de détermination. &lt;br /&gt;
On choisit l'emplacement, parmi tous ceux qui sont libres, pour lequel la distance de parcours est minimale entre le départ et celui-ci. &lt;br /&gt;
Ici l'unité de distance est la baie. La simplicité de l'algorithme réside dans le fait que le magasinier ne transporte qu'une seule caisse à la fois et repars toujours au même point de départ.&lt;br /&gt;
&lt;br /&gt;
Ci dessous un plan de l'entrepôt.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:schema_entrepot.png|750px|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Si on se place à l'entrée de l'Allée A :&lt;br /&gt;
&lt;br /&gt;
**le déplacement jusqu'à A4 (sens de circulation direct) est de : &lt;br /&gt;
&lt;br /&gt;
                        Y baies - (indice de la baie/2 +indice de la baie % 2) &lt;br /&gt;
&lt;br /&gt;
**le déplacement jusqu'à B1 (sens de circulation indirect) est de : &lt;br /&gt;
&lt;br /&gt;
                        Y baies + différence entre l'allée A et B donc X baies + indice de la baie/2 +indice de la baie % 2&lt;br /&gt;
**le déplacement jusqu'à C1 (sens de circulation direct) est de : &lt;br /&gt;
                      &lt;br /&gt;
                        Y baies - (indice de la baie/2 +indice de la baie % 2)+différence entre l'allée A et C donc 2*X baies.&lt;br /&gt;
&lt;br /&gt;
*Si on se place à l'entrée de l'Allée B :&lt;br /&gt;
**le déplacement jusqu'à B1 (sens de circulation indirect avec contournement) est de : &lt;br /&gt;
                        &lt;br /&gt;
                        2*X baies + Y baies + 2*X baies + (indice de la baie/2 +indice de la baie % 2)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On peut généraliser l'ensemble de ces situations de déplacement avec l'algorithme suivant :&lt;br /&gt;
&lt;br /&gt;
Pseudo code&lt;br /&gt;
&lt;br /&gt;
  Leplusproche( Allee depart )&lt;br /&gt;
    distance_la_plus_petite = valeurMAX&lt;br /&gt;
      le_plus_proche=&amp;quot;&amp;quot;&lt;br /&gt;
         Pour chaque Allee de Cellule&lt;br /&gt;
           sens=Allee.sens&lt;br /&gt;
           Pour chaque Baie de Allee&lt;br /&gt;
             Pour chaque Rang de Allee&lt;br /&gt;
 	       Pour chaque Emplacement de Rang&lt;br /&gt;
                Si Emplacement estlibre &lt;br /&gt;
                &lt;br /&gt;
                indice_baie = selection_indice_baie(Emplacement.adresse)&lt;br /&gt;
   		 allee_cible = selection_indice_allee(Emplacement.adresse)  &lt;br /&gt;
   		 difference_allee = valeur_absolue(depart -cible) &lt;br /&gt;
                    Si difference_allee==0 et sens.estindirect&lt;br /&gt;
                      //sens indirect +contournement&lt;br /&gt;
                      distance_actuelle=(indice_baie/2)+indice_baie%2+(2*(difference_allee))+4*X+Y			&lt;br /&gt;
                    Sinon	&lt;br /&gt;
                        Si sens estdirect&lt;br /&gt;
                          //sens direct &lt;br /&gt;
                          distance_actuelle=(Y-((indice_baie/2)+indice_baie%2))+2*difference_allee&lt;br /&gt;
                        Sinon&lt;br /&gt;
                          //sens indirect mais pas de contournement&lt;br /&gt;
                          distance_actuelle=((indice_baie/2)+indice_baie%2)+2*difference_allee+Y&lt;br /&gt;
                        Finsi	&lt;br /&gt;
                    Finsi	&lt;br /&gt;
                    Si distance_actuelle &amp;lt; distance_la_plus_petite&lt;br /&gt;
                      le_plus_proche=Emplacement.adresse&lt;br /&gt;
                      distance_la_plus_petite=distance_actuelle&lt;br /&gt;
                    Finsi&lt;br /&gt;
                Finsi  &lt;br /&gt;
            Finpour&lt;br /&gt;
          Finpour&lt;br /&gt;
        Finpour&lt;br /&gt;
      Finpour&lt;br /&gt;
    retourne le_plus_proche&lt;br /&gt;
  Finleplusproche&lt;br /&gt;
&lt;br /&gt;
Cet algorithme nous donne satisfaction (dans le cadre de la V1)&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 10/11 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Programmation et gestion des interactions &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Aprés quelques difficultés vis à vis de la gestion des menus vocaux sur les lunettes qui ne fonctionnent pas de la même manière que les menus classiques sous android, nous avons étoffé les interactions possible avec l'application des google glass. (Nous souhaitions inflater un deuxième menu pour interagir de manière plus contextuelle, il fallait le faire dans la méthode onCreatePanelMenu dont l'appel serait forcé avec getWindow().invalidatePanelMenu(WindowUtils.FEATURE_VOICE_COMMANDS) plutôt que dans onPrepareOptionsMenu forcée par invalidateOptionMenu()...) &lt;br /&gt;
&lt;br /&gt;
schéma d'utilisation...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Proposition projet affichage télévision &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Tele_concept.png|200px|thumb|right]]&lt;br /&gt;
&lt;br /&gt;
Notre tuteur nous a contacté pour nous proposer d'étudier un second projet en parallèle au projet initial. Celui consistant à gérer l'affichage d'information personnalisé d'un magasinier passant à proximité d'un écran de télévision. Nous devons effectuer un Proof Of Concept (POC) et réfléchir à ce sujet.&lt;br /&gt;
L'utilisation du BLE est donc de nouveau d'actualité, car je rappel que sont utilité était discutable dans une réalité métier du projet initial. La question étant plus de savoir comment gérer le système du coté du téléviseur.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Le concept de base étant de :&lt;br /&gt;
* Fournir une beacon aux magasiniers de l'entrepôt.&lt;br /&gt;
* Installer une télévision sur un centre de vie dans l'entrepôt avec une beacon&lt;br /&gt;
* Pousser du contenu personnalisé au magasinier qui se présente devant la tv dans son centre de vie&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 17/11 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Brainstorming à Polytech &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Dans la cadre du POC sur l'affichage personnalisé sur une télévision, nous avons profité d'un exercice de management pour faire participer la classe à notre projet. Grâce à cette intervention nous avons pu confirmer nos idées sur les technologies à utiliser. Mais nous avons surtout eu une multitude de propositions sur les données à afficher sur l'écran.&lt;br /&gt;
&lt;br /&gt;
Pour plus détails, le compte rendu est disponible à ce lien:&lt;br /&gt;
&lt;br /&gt;
'''Compte Rendu Brainstorming 17/11/2014 :''' [[Fichier:Compte_Rendu_POC_17_11.pdf]]&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Entretien avec notre tuteur entreprise &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Durant cet entretien, nous avons livré la première version de l'application et nous avons discuté de la suite du projet.&lt;br /&gt;
Ci joint le Compte Rendu.&lt;br /&gt;
&lt;br /&gt;
'''Compte Rendu  19/11/2014 :''' [[Fichier:Compte_Rendu_19_11.pdf]]&lt;br /&gt;
&lt;br /&gt;
De cette réunion, les points suivants en sont sortis:&lt;br /&gt;
&lt;br /&gt;
*Une reconnaissance vocale en langue française sur les lunettes serait plus intéressante pour les employés (une piste serait d’utiliser l’outil pocketsphinx-  android).&lt;br /&gt;
*Par rapport à l'IHM, il faudrait mettre l’affichage au premier plan sur les Google Glass pour une démo auprés des parties prenantes du projet.&lt;br /&gt;
*Choisir une architecture pour l’affichage d’information personnalisées.&lt;br /&gt;
**La télévision connectée à une raspberry qui communiquerait via un dongle BLE avec le beacon d’un magasinier, ce qui permettrait l’identification de celui-ci prés de la Télévision, et déclencherait un processus d’échange d’information. (Communication via le protocole Bluetooh, wifi entre les lunettes et la Raspberry  ou communication avec la Raspberry avec la Base de Donnée sur le réseau de l’entreprise)&lt;br /&gt;
**Une télévision connectée en continu à un site internet via un dongle HDMI.&lt;br /&gt;
**Une tablette android géante supportant le BLE, ou utilisant un dongle BLE.&lt;br /&gt;
* Réaliser le portage de l’application sur le prototype des lunettes ORA.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 24/11 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Reconnaissance vocale en Français &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Pocket Sphinx Android est une librairie permettant de faire de la reconnaissance vocale d'un langage donné sur un système android en offline.&lt;br /&gt;
Pour supporter une langue, elle nécessite: &lt;br /&gt;
*un modèle acoustique (ensemble d'informations pour le traitement sonore)&lt;br /&gt;
*un dictionnaire associant les mots et leur phonèmes&lt;br /&gt;
*une grammaire, c'est un fichier définissant comment seraient articulé les mots à reconnaître et limitant les possibilités de langage).&lt;br /&gt;
&lt;br /&gt;
La grammaire étant un automate. Voici un exemple de la grammaire menu.gram pour la reconnaissance de la porte de déchargement.&lt;br /&gt;
[[Fichier:Arborescence_pocket_sphinx.png|200px|thumb|right|PocketSphinx dans un projet Android]]&lt;br /&gt;
&lt;br /&gt;
  #JSGF V1.0;&lt;br /&gt;
  grammar menu;&lt;br /&gt;
  &amp;lt;porte&amp;gt; = porte a |&lt;br /&gt;
            porte b |&lt;br /&gt;
            porte c |&lt;br /&gt;
            porte d |&lt;br /&gt;
            porte e |&lt;br /&gt;
            porte f |&lt;br /&gt;
            porte g |&lt;br /&gt;
            porte h |&lt;br /&gt;
            porte i |&lt;br /&gt;
            porte j ;&lt;br /&gt;
  public &amp;lt;porte&amp;gt; = &amp;lt;porte&amp;gt;+;&lt;br /&gt;
&lt;br /&gt;
Un extrait du dictionnaire french_letter.dic associé avec les phonemes&lt;br /&gt;
&lt;br /&gt;
  a aa &amp;lt;-- juste la lettre a et son phoneme &lt;br /&gt;
  autre au tt rr&lt;br /&gt;
  autre(2) au tt rr ee &lt;br /&gt;
  b bb &lt;br /&gt;
  c ss &lt;br /&gt;
  d dd ei d(2) dd ait &lt;br /&gt;
  e eu e(2) eu zz &lt;br /&gt;
  f ai ff &lt;br /&gt;
  g jj ei g(2) gg ai &lt;br /&gt;
  h aa ch  &lt;br /&gt;
  i ii &lt;br /&gt;
  j jj yy j(2) jj ii&lt;br /&gt;
  porte pp oo rr tt&lt;br /&gt;
  porte(2) pp oo rr tt ee&lt;br /&gt;
  portes(2) pp oo rr tt ee&lt;br /&gt;
  portes(3) pp oo rr tt ee zz&lt;br /&gt;
  portes(4) pp oo rr tt zz&lt;br /&gt;
&lt;br /&gt;
Le modèle acoustique que nous avons téléchargé étant inclu dans lium_french_f0&lt;br /&gt;
&lt;br /&gt;
Nous avons testé la reconnaissance vocale sur un téléphone android, les mots sont, dans la majorité des cas, bien reconnus.&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Comparaison architectures projet TV &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Au niveau de l’architecture nous avons établi plusieurs propositions après la réunion avec notre tuteur:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour une Raspberry Pi avec un dongle BLE :&lt;br /&gt;
* Installation OS Linux sur la Raspberry&lt;br /&gt;
* Librairie BlueZ pour l’utilisation du BLE (tests rapides effectués sur Linux avec le Dongle)&lt;br /&gt;
* Interface graphique avec une bibliothèque comme Qt (ou encore SDL…)&lt;br /&gt;
* Prix : Rpi = 26€ (chez RadioSpare), Dongle = 10€, TV = à partir de 358€ pour 117cm, + Connectique vidéo. Total = 394€&lt;br /&gt;
&lt;br /&gt;
Pour un écran ViewSonic VSD231 :&lt;br /&gt;
* Possède une API Bluetooth classic + API BLE&lt;br /&gt;
* Interface graphique Android (View, Layout...)&lt;br /&gt;
* Prix : écran ViewSonic VSD231 = 558 € pour 58 cm (chez ViewSonic).&lt;br /&gt;
&lt;br /&gt;
Récupération d’informations :&lt;br /&gt;
* Si données sur les lunettes : Bluetooth ou Wifi.&lt;br /&gt;
* Si données sur serveur : Ethernet ou Wifi.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Vu les propositions possibles nous pensons que la première proposition permettra une meilleure souplesse dans le développement mais serait un peu plus compliquée. Mais nous la trouvons aussi plus intéressante à faire de plus elle est moins coûteuse et permet d'utiliser un écran plus grand. Le développement sur tablette serait sûrement plus rapide à faire en contrepartie.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 01/12 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Conférence GlassCamp à l'Imaginarium &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
GlassCamp est une association qui essaye de répandre l'utilisation de toute les Smart Glass en général. Elle propose de multiples conférences dans lesquelles ils essayent de montrer au public l’intérêt de développer sur ces appareils. Dans le cadre de notre projet, notre tuteur nous a proposé de participer à cette présentation afin de mieux s’approprier le sujet. La conférence a eu lieu le 4 décembre à l'Imaginarium: une grande partie était plutôt tournée vers la présentation mais nous avons apprîs plusieurs choses intéressantes qui sont décrites dans le compte rendu.&lt;br /&gt;
&lt;br /&gt;
'''Compte Rendu Conférence 04/12/2014 :''' [[Fichier:Compte_Rendu_Conf_GlassCamp.pdf]]&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaines du 08/12 et 15/12 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Reconnaissance vocale en Français &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Nous avons avancé sur la version française de l'application. A la manière du menu vocal des google glass, nous avons utilisé un délimiteur&lt;br /&gt;
&amp;quot;ok lunettes&amp;quot; pour démarrer l'interaction avec l'application, afin que les discussions et bruits ambiants n'interfèrent pas sur l'utilisation de celle-ci.&lt;br /&gt;
Voici le scénario d'utilisation de la nouvelle version de l'application en Français.&lt;br /&gt;
[[Fichier:Schema_fr.png|700px|center]]&lt;br /&gt;
&lt;br /&gt;
Sous pocketsphinx, le délimiteur n'apparait pas dans une grammaire. La grammaire permet de prédestiner l'application à choisir entre deux mots. &lt;br /&gt;
Dans notre application, le moteur de reconnaissance vocale choisi la distance la plus courte, séparant le mot prononcé par l'utilisateur et ceux&lt;br /&gt;
qu'il est possible d'entendre. Ainsi entre &amp;quot;oui&amp;quot; et &amp;quot;non&amp;quot;, l'application choisira forcément l'un des deux, même si l'utilisateur dit &amp;quot;bonjour&amp;quot;&lt;br /&gt;
&lt;br /&gt;
L'avantage du délimiteur est que sa détection repose sur un seuillage entre ce qui est prononcé et ce qui doit être reconnu, nous pouvons régler ce seuil.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 05/01 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Entretien avec notre tuteur &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Durant cet entretien nous avons défini les évolutions du projet.&lt;br /&gt;
&lt;br /&gt;
'''Compte Rendu de l'entretien du 06/01/2015 :''' [[Fichier:Compte_Rendu_4.pdf]]&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 12/01 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; TV connectée &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Nous avons pris en main la détection des beacons (de la marque Estimote fournis par l'entreprise) dans les systèmes android.&lt;br /&gt;
L'adresse MAC et le RSSI sont accessibles, ce sont les seules informations nécessaires que nous avons besoin en ce qui concerne les beacons.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 19/01 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Interfaces_exemple.png|100px|thumb|right]]&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt;Interface TV &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Nous avons développé plusieurs exemples d'interfaces avec les instructions de notre tuteur afin de choisir les meilleurs résultats ensembles. Nous avons défini quelques contraintes pour le design. Elle doit être&lt;br /&gt;
* Simple et intuitive&lt;br /&gt;
* En accord avec les couleurs de l'entreprise&lt;br /&gt;
* Moderne (système de tuile ou autre)&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 26/01 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Entretien avec notre tuteur &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Durant cette entretien nous avons défini plus précisément les objectifs du projet.&lt;br /&gt;
Ci dessous le compte rendu.&lt;br /&gt;
&lt;br /&gt;
'''Compte Rendu de l'entretien du 26/01/2015 :''' [[Fichier:Compte_Rendu_5.pdf]]&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 02/02 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Portage d'une application de SmartPicking sur les Google Glass &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Une application android pour les ORA glasses a été développé pour permettre à l'entreprise, &lt;br /&gt;
d'accélerer les opérations de picking(prélévement à l'article) en entrepôt. Celle-ci était à destination des lunettes ORA de Optinvent.&lt;br /&gt;
Notre tuteur souhaitait donc que nous réalisions le portage de cette application vers les google glass. Le but étant de comparer l'usage de cette application sur deux supports différents entre les lunettes. &lt;br /&gt;
&lt;br /&gt;
*Nous avons procédé à des ajustements au niveau de la gestion des layouts de l'interface, à équilibrer la places qu'occupe certaines informations données par l'application.&lt;br /&gt;
*Cette application communique par bluetooth avec une autre application lancée sur une tablette android, cette dernière permet de réaliser l'appairage avec la smartglass. La tablette étant la seule à être connectée au serveur de l'entreprise (l'AS400) via un réseau sécurisé. Nous avons du appairer manuellement les glass avec la tablette, et retirer dans le code le lancement d'un intent permettant aux lunettes de se rendre visible sur le réseau. Lorsque cet intent est lancé il génère une exception non attendue qui ne concerne que les google glass. Aprés recherches sur le net, il semble que c'est un problème récurrent qui a été signalé mais pas encore solvé.&lt;br /&gt;
&lt;br /&gt;
Ci dessous des screenshot de l'application adaptée par nos soins en question :&lt;/div&gt;</summary>
		<author><name>Jgondry</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=P22_Google_Glass_en_logistique&amp;diff=16712</id>
		<title>P22 Google Glass en logistique</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=P22_Google_Glass_en_logistique&amp;diff=16712"/>
				<updated>2015-02-11T14:40:34Z</updated>
		
		<summary type="html">&lt;p&gt;Jgondry : /*  Portage d'une application de SmartPicking sur les Google Glass  */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Introduction =&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Description du sujet &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
Notre projet vise à l’optimisation du stockage et de l’adressage des palettes dans un entrepôt. En effet, lors du déchargement d’un camion, chercher un emplacement libre pour les palettes dans un entrepôt occupant une grande superficie fait perdre du temps et donc de la productivité dans le stockage. Sachant qu’un cariste perd un temps non négligeable à la recherche d’emplacement disponible, optimiser ce temps de recherche permettrait de gagner du temps sur cette opération.&lt;br /&gt;
Développer un prototype permettrait de rendre compte des moyens existants qui pourrait être mis en place dans une solution métier.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Analyse du sujet &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Google_glass.png|200px|thumb|right|Paire de Google Glass]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Optinvent_ora.png|200px|thumb|right|Paire de ORA d'Optivent]]&lt;br /&gt;
&lt;br /&gt;
Notre projet consiste à fluidifier le déchargement en indiquant au cariste l’emplacement libre le plus proche. Pour ne pas gêner le travail des employés, un dispositif main-libre comme une Google Glass semble adapté. Ce projet soulève plusieurs problématiques : développer une interface homme-machine apportant une information pertinente pour l’utilisateur sans pour autant être perturbante. &lt;br /&gt;
&lt;br /&gt;
L’idée serait de réaliser dans les grandes lignes un système similaire à ce scénario d’utilisation :&lt;br /&gt;
http://n.mynews.ly/!lB.Bs4fw&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Moyen d’affichage de l’Informations pertinentes'''&lt;br /&gt;
&lt;br /&gt;
Les Google Glass ne sont pas les seules smart glasses sur le marché. Il nous faudra choisir les appareils les plus adaptés. L’information pertinente pourrait être une direction à suivre dans l’entrepôt ou simplement un numéro d’emplacement (adressage intuitif de l’entrepôt). &lt;br /&gt;
&lt;br /&gt;
'''Géolocalisation'''&lt;br /&gt;
&lt;br /&gt;
Dans le cas d’une direction à suivre se pose le problème de la géolocalisation indoor dont l’utilité et la faisabilité seront discutés au fil des réunions avec l’entreprise. &lt;br /&gt;
&lt;br /&gt;
'''Adressage / flashage'''&lt;br /&gt;
&lt;br /&gt;
En ce qui concerne l’adressage des palettes en entrepôt, la solution existante repose sur un flashage des codes barres associés à l’emplacement venant d’être occupé. Une étude de faisabilité/utilité sera aussi faite sur une solution de remplacement grâce aux possibilités qu’offrent les smart glasses.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Cahier des charges &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
En partant de l'analyse du sujet et des discussion avec notre tuteur, nous avons définie un cahier des charges plus précis des tâches à accomplir:&lt;br /&gt;
&lt;br /&gt;
* '''Développer un système embarqué sur une paire de lunette Smart Glass'''&lt;br /&gt;
** Comparer les différentes offres en matière de Smart Glass notamment Google Glass &amp;amp; ORA de Optinvent&lt;br /&gt;
** Concevoir une interface homme-machine non perturbante pour l'utilisateur.&lt;br /&gt;
* '''Etudier la nécessité d'utiliser une géolocalisation en entrepôt et l'implémenter si besoin'''&lt;br /&gt;
** Via RSSI (Wifi, Bluetooh Low Energy ...)&lt;br /&gt;
** Via traitement d'images (reconnaissance de la signalétique en entrepôt)&lt;br /&gt;
* '''Etudier les possibilités d'optimisation du système d'adressage des palettes'''&lt;br /&gt;
** Implémenter la reconnaissance de code barre&lt;br /&gt;
** La tester en réalité métier (utilité ajoutée, habitude des magasiniers, vitesse de traitement...)&lt;br /&gt;
&lt;br /&gt;
Le cahier des charges est encore en cours de construction&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Matériel utilisé &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; SmartGlass &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Lors de la réunion nous avons discuté des technologies à utiliser dans le projet, et plus particulièrement des différentes SmartGlass. En effet, il existe une multitude de sociétés qui développe ce genre de lunettes. Nous commencerons à utiliser les Google Glass étant donné que notre tuteur en a déjà commandé puis nous développerons sur les lunettes ORA de Optivent qui seront livrées fin octobre. Nous devrons donc faire un comparatif entre ces deux SmartGlass puis étudier les autres appareils disponibles sur le marché.&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Localisation &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
L'utilisation de la géolocalisation dans le projet est à débattre. Mais des tests seront probablement mis en place. L'entreprise possède quelque iBeacons BLE Estimote dans ses bureaux d'innovations que nous pourrons emprunter.&lt;br /&gt;
Dans le cas où leur gain d'informations serait utile il nous faudra comparer les modèles disponibles. Choisir un nombre de module et des emplacements stratégiques dans l'entrepôt afin d'avoir une localisation assez précise pour l'application.&lt;br /&gt;
&lt;br /&gt;
L'utilisation d'autres technologies de géolocalisation a été discuté comme le Wifi ou le XBee mais le BLE semblait le plus adapté dans le cadre de notre projet.&lt;br /&gt;
&lt;br /&gt;
= Déroulement du projet =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 22/09 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Réunion avec le tuteur entreprise dans l’entrepôt &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Nous avons observé en situation le problème et discuté des besoins, des moyens déjà utilisables. Il nous faudra prendre en compte plusieurs paramètres dans notre réflexion tels que le système de stockage et d'adressages des palettes, sens de circulation des caristes, superficie des zones à desservir, durée de livraison.&lt;br /&gt;
Nous avons suggéré des étapes de validation intermédiaire du système par les futurs utilisateurs et pour cela nous rencontrerons le chef d'équipe des magasiniers lorsque qu'une version sera assez développée.&lt;br /&gt;
&lt;br /&gt;
Nous avons défini avec le tuteur les premières deadlines du projet, voici la timeline récapitulative:&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Timeline_1.jpg||center|1000px]]&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Compte Rendu &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Nous avons rédigé un compte rendu de la première réunion détaillant les spécifications des versions des livrables, des schémas et les sujets abordés lors de la rencontre :&lt;br /&gt;
&lt;br /&gt;
'''Compte Rendu réunion du 25/09/2014 :''' [[Fichier:Compte_Rendu_25_09.pdf]]&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 29/09 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Découverte des Google Glass &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
*Prise en main des Google Glass. &lt;br /&gt;
*Installation d'applications (.apk) grand public. Nous avons utilisé l'outil Android Debug Bridge(adb). Se mettre à la place d'un utilisateur.&lt;br /&gt;
*L'une des deux lunettes qui serait retenue imposera forcément le développement d'une application android (ou d'une technologie trés proche d'android, pour les Google Glass, se basant sur le Glass Development Kit qui est un add-on au SDK classique d'android). Nous avons donc téléchargé les packages nécessaires pour commencer à développer. &lt;br /&gt;
** Nous commençons à nous former sur les technologies android :développement d'applications minimaliste.&lt;br /&gt;
** Installation de nos premières apk minimalistes pour Android.&lt;br /&gt;
** Installation d'une application minimaliste sur la Google Glass.&lt;br /&gt;
&lt;br /&gt;
Voici un comparatif réalisé entre les lunettes ORA et les Google Glass.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Différences Google Glass/ORA &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!   !! Google Glass !! ORA &lt;br /&gt;
|-&lt;br /&gt;
|Connectique&lt;br /&gt;
|Compatible BLE (à partir de la XE 16 KitKat Update), Wifi &lt;br /&gt;
|Compatible BLE, Wifi&lt;br /&gt;
|-&lt;br /&gt;
|Autonomie en utilisation normale&lt;br /&gt;
|de 1h à 2h &lt;br /&gt;
|de 4h à 8h&lt;br /&gt;
|-&lt;br /&gt;
|Son&lt;br /&gt;
|Conductivité Cranienne&lt;br /&gt;
|Prise jack&lt;br /&gt;
|-&lt;br /&gt;
|Interface&lt;br /&gt;
|Ecran occupant une faible superficie dans le champ de vision &lt;br /&gt;
|Ecran 2 positions (moyennes et basses), plus étendu permettant une réalité augmentée &lt;br /&gt;
|-&lt;br /&gt;
|Système d'exploitation&lt;br /&gt;
|Android 4.4&lt;br /&gt;
|Android 4.2.2&lt;br /&gt;
|-&lt;br /&gt;
|Calculs&lt;br /&gt;
|CPU &amp;amp; GPU&lt;br /&gt;
|CPU &amp;amp; GPU&lt;br /&gt;
|-&lt;br /&gt;
|Prix&lt;br /&gt;
|1500$ &lt;br /&gt;
|949$&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 06/10 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Deuxième rendez-vous avec le tuteur entreprise &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Nous avons fait part de notre avancée en matière de prise en main et des problèmes rencontrés en matière de développement.&lt;br /&gt;
Les lunettes ORA sont commandées elles arrivent d'ici la fin octobre.&lt;br /&gt;
&lt;br /&gt;
La première version V1 de l'application pour Google Glass à livrer pour la mi-novembre est fixée.&lt;br /&gt;
&lt;br /&gt;
En partant d'une position connue (en dur dans l'application) dans l'entrepôt, elle indiquera à un utilisateur les emplacements libres les plus proches.&lt;br /&gt;
&lt;br /&gt;
L'état d'occupation des emplacements sera consulté et stocké dans l'application. Il n'y aura donc pas de gestion des conflits. Le sens de circulation dans l'entrepôt sera pris en compte.&lt;br /&gt;
Une communication avec la base de donnée de l'entrepôt n'est pour le moment pas d'actualité, cela nécessiterait des développements en amont.&lt;br /&gt;
La géolocalisation n'est pas au goût du jour non plus. L'adressage des emplacements dans l'entrepôt est intuitif, il est donc facile pour un magasinier de &lt;br /&gt;
se rendre à un emplacement en connaissant l'adresse.&lt;br /&gt;
&lt;br /&gt;
Pour l'IHM, nous nous inspirerons des applications pour Google Glass (les Glasswares) de type GPS.&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Premiers programmes sur Google Glass &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Pour nous familiariser avec la programmation sur ce genre d'appareil nous avons tous deux décidé de suivre en premier le tutoriel Android d'un site spécialisé. Cela afin de mieux comprendre le système Android, avec les concepts d'activités, de view etc.&lt;br /&gt;
Dans un deuxième temps nous avons choisi de suivre plusieurs tutoriels nous expliquant la prise en main basique des lunettes afin de saisir les particularités de leur programmation.&lt;br /&gt;
&lt;br /&gt;
Le plus dur étant finalement de comprendre les liens entre tous les fichiers du projets, les problèmes de drivers et d'upload simple que nous avons rencontrés et l’exécution du programme sur les lunettes. Des choses que nous arrivons maintenant à maitriser mais qui était floues à l'origine.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 13/10 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Programmation et gestion des interactions &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Durant cette semaine nous avons commencé a vraiment toucher aux fonctionnalités des Glass. Pour rester en main libre, nous avons fait des recherches et commencé à programmer de la reconnaissance vocale. Nous avons ainsi crée un système de navigation basique par commande vocale dans différents menus. Pour un accès rapide à l'application et toujours dans la même optique nous avons réussi à inclure le lancement de notre logiciel à partir du &amp;quot;Ok Glass&amp;quot; menu qui est le menu de lancement d'application par commande vocale des Google Glass. Voici un aperçu du résultat:&lt;br /&gt;
[[Fichier:V0_menu.png|1000px|center]]&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Analyse et évaluation du rendu &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Le début de la prise en main des fonctionnalités des Google Glass n'a pas été facile étant donné que la plupart des fonctionnalités sont propres à ce genre d'appareil. De plus elles nécessitent des techniques spéciales de programmation qui ne sont pas toujours très utilisées donc il est parfois difficile de trouver des exemples sur internet.&lt;br /&gt;
Néanmoins après l'implémentation de ces fonctionnalités nous avons pu rencontrer quelques difficultés de reconnaissance. En effet, les Google Glass possèdent un dictionnaire de mots/phrases pour la reconnaissance vocale mais elles nous permettent aussi d'écrire n'importe quelle phrase dans le mode développeur. Les phrases du dictionnaires ne posent aucun problème mais les phrases que nous écrivons sont parfois dures à reconnaitre. La reconnaissance de lettre seule ou de certains numéros est par exemple quasi impossible ou très aléatoire.&lt;br /&gt;
Le système de vu est quant à lui plutôt facile à prendre en main et intuitif dans l'utilisation.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 20/10 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Premiere structure de donnée &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Nous avons opté pour une structure de donnée récursive. Une Cellule, contenant des Allées, qui contiennent des Baies, contenant des Rangées, contenant des Emplacements.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Structure_export_resized.png|750px|center]]&lt;br /&gt;
Nous avons conçu cette structure de donnée pour qu'elle génère, dans un premier temps &amp;quot;en dur&amp;quot;, une cellule contenant des emplacements automatiquement adressés à la manière de ceux présent dans l'entrepôt. Ces adresses sont de la forme &amp;quot;D61A514&amp;quot; traduisez &amp;quot; Cellule 6 Allée 1A Baie 5 Rang 1 Niveau 4&amp;quot;.&lt;br /&gt;
Cette structure prend on compte le sens de circulation dans l'entrepôt.&lt;br /&gt;
Lors de futures interactions avec une base de donnée, cette structure serait sujette à évolution par une modification des méthodes de génération/modification du statut des adresses en fonction de cette base de donnée. Mais celle-ci constitue essentiellement une base pour appréhender plus pratiquement les problématiques de recherches de l'emplacement le plus proche.&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Prise en main de l'interface &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Nous avons déjà abordé les layouts java en TP donc il a été assez facile de commencer à faire des interfaces graphiques simples. Nous avons construit une interface graphique simple pour de faire une démonstration du programme aux tuteurs entreprise afin qu'ils comprennent bien le fonctionnement de notre algorithme.&lt;br /&gt;
L'interface graphique finale du programme sera très sobre afin de ne pas donner trop gêner le magasinier dans sa tâche.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 27/10 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Chemin optimal : Parcours intelligent Vs Sélection intelligente &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Un premier algorithme de recherche de l'emplacement le plus proche a été développé, celui-ci ne prend en compte qu'un seul scénario. &lt;br /&gt;
Celui de la position de départ (quai de déchargement où reviendra constamment le magasinier aprés chaque livraison) correspondante à la première allée de l'entrepôt, et en prenant en compte le sens de circulation. &lt;br /&gt;
A partir de ce moment, nous avons dégager deux grandes manières d'appréhender le problème.&lt;br /&gt;
&lt;br /&gt;
* Un parcours intelligent de la structure de donnée. C'est à dire parcourir les emplacements les plus proches, et choisir le premier emplacement libre. Une solution complexe à réaliser sur le plan algorithmique. En tenant compte du sens de circulation, il apparait que l'emplacement libre &amp;quot;leplusproche&amp;quot; (à vol d'oiseau) trouvé le plus tôt, ne correspondrait pas forcément à l'emplacement le plus proche compte tenu du chemin emprunté par un magasinier. Et c'est plutôt l'intérêt de cette algorithme.(Sauf dans l'unique cas où l'emplacement libre se trouve directement dans l'allée faisant face à la position de départ du magasinier, et le sens de circulation lui permet directement de se rendre à l'emplacement sans détour).&lt;br /&gt;
&lt;br /&gt;
* Une sélection intelligente parmi les emplacements libres. Leurs adresses renseignent à quelles allées, les emplacements libres appartiennent, donc renseignent sur le sens de circulation. A partir de la position de départ du magasinier et de l'ensemble des emplacements libres, on peut calculer la distance nécessaire à celui-ci pour les atteindre. Pour ainsi choisir l'adresse pour laquelle la distance est minimale.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 3/11 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Chemin optimal : sélection intelligente des adresses &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Nous avons écrit une premiere méthode de détermination. &lt;br /&gt;
On choisit l'emplacement, parmi tous ceux qui sont libres, pour lequel la distance de parcours est minimale entre le départ et celui-ci. &lt;br /&gt;
Ici l'unité de distance est la baie. La simplicité de l'algorithme réside dans le fait que le magasinier ne transporte qu'une seule caisse à la fois et repars toujours au même point de départ.&lt;br /&gt;
&lt;br /&gt;
Ci dessous un plan de l'entrepôt.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:schema_entrepot.png|750px|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Si on se place à l'entrée de l'Allée A :&lt;br /&gt;
&lt;br /&gt;
**le déplacement jusqu'à A4 (sens de circulation direct) est de : &lt;br /&gt;
&lt;br /&gt;
                        Y baies - (indice de la baie/2 +indice de la baie % 2) &lt;br /&gt;
&lt;br /&gt;
**le déplacement jusqu'à B1 (sens de circulation indirect) est de : &lt;br /&gt;
&lt;br /&gt;
                        Y baies + différence entre l'allée A et B donc X baies + indice de la baie/2 +indice de la baie % 2&lt;br /&gt;
**le déplacement jusqu'à C1 (sens de circulation direct) est de : &lt;br /&gt;
                      &lt;br /&gt;
                        Y baies - (indice de la baie/2 +indice de la baie % 2)+différence entre l'allée A et C donc 2*X baies.&lt;br /&gt;
&lt;br /&gt;
*Si on se place à l'entrée de l'Allée B :&lt;br /&gt;
**le déplacement jusqu'à B1 (sens de circulation indirect avec contournement) est de : &lt;br /&gt;
                        &lt;br /&gt;
                        2*X baies + Y baies + 2*X baies + (indice de la baie/2 +indice de la baie % 2)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On peut généraliser l'ensemble de ces situations de déplacement avec l'algorithme suivant :&lt;br /&gt;
&lt;br /&gt;
Pseudo code&lt;br /&gt;
&lt;br /&gt;
  Leplusproche( Allee depart )&lt;br /&gt;
    distance_la_plus_petite = valeurMAX&lt;br /&gt;
      le_plus_proche=&amp;quot;&amp;quot;&lt;br /&gt;
         Pour chaque Allee de Cellule&lt;br /&gt;
           sens=Allee.sens&lt;br /&gt;
           Pour chaque Baie de Allee&lt;br /&gt;
             Pour chaque Rang de Allee&lt;br /&gt;
 	       Pour chaque Emplacement de Rang&lt;br /&gt;
                Si Emplacement estlibre &lt;br /&gt;
                &lt;br /&gt;
                indice_baie = selection_indice_baie(Emplacement.adresse)&lt;br /&gt;
   		 allee_cible = selection_indice_allee(Emplacement.adresse)  &lt;br /&gt;
   		 difference_allee = valeur_absolue(depart -cible) &lt;br /&gt;
                    Si difference_allee==0 et sens.estindirect&lt;br /&gt;
                      //sens indirect +contournement&lt;br /&gt;
                      distance_actuelle=(indice_baie/2)+indice_baie%2+(2*(difference_allee))+4*X+Y			&lt;br /&gt;
                    Sinon	&lt;br /&gt;
                        Si sens estdirect&lt;br /&gt;
                          //sens direct &lt;br /&gt;
                          distance_actuelle=(Y-((indice_baie/2)+indice_baie%2))+2*difference_allee&lt;br /&gt;
                        Sinon&lt;br /&gt;
                          //sens indirect mais pas de contournement&lt;br /&gt;
                          distance_actuelle=((indice_baie/2)+indice_baie%2)+2*difference_allee+Y&lt;br /&gt;
                        Finsi	&lt;br /&gt;
                    Finsi	&lt;br /&gt;
                    Si distance_actuelle &amp;lt; distance_la_plus_petite&lt;br /&gt;
                      le_plus_proche=Emplacement.adresse&lt;br /&gt;
                      distance_la_plus_petite=distance_actuelle&lt;br /&gt;
                    Finsi&lt;br /&gt;
                Finsi  &lt;br /&gt;
            Finpour&lt;br /&gt;
          Finpour&lt;br /&gt;
        Finpour&lt;br /&gt;
      Finpour&lt;br /&gt;
    retourne le_plus_proche&lt;br /&gt;
  Finleplusproche&lt;br /&gt;
&lt;br /&gt;
Cet algorithme nous donne satisfaction (dans le cadre de la V1)&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 10/11 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Programmation et gestion des interactions &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Aprés quelques difficultés vis à vis de la gestion des menus vocaux sur les lunettes qui ne fonctionnent pas de la même manière que les menus classiques sous android, nous avons étoffé les interactions possible avec l'application des google glass. (Nous souhaitions inflater un deuxième menu pour interagir de manière plus contextuelle, il fallait le faire dans la méthode onCreatePanelMenu dont l'appel serait forcé avec getWindow().invalidatePanelMenu(WindowUtils.FEATURE_VOICE_COMMANDS) plutôt que dans onPrepareOptionsMenu forcée par invalidateOptionMenu()...) &lt;br /&gt;
&lt;br /&gt;
schéma d'utilisation...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Proposition projet affichage télévision &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Tele_concept.png|200px|thumb|right]]&lt;br /&gt;
&lt;br /&gt;
Notre tuteur nous a contacté pour nous proposer d'étudier un second projet en parallèle au projet initial. Celui consistant à gérer l'affichage d'information personnalisé d'un magasinier passant à proximité d'un écran de télévision. Nous devons effectuer un Proof Of Concept (POC) et réfléchir à ce sujet.&lt;br /&gt;
L'utilisation du BLE est donc de nouveau d'actualité, car je rappel que sont utilité était discutable dans une réalité métier du projet initial. La question étant plus de savoir comment gérer le système du coté du téléviseur.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Le concept de base étant de :&lt;br /&gt;
* Fournir une beacon aux magasiniers de l'entrepôt.&lt;br /&gt;
* Installer une télévision sur un centre de vie dans l'entrepôt avec une beacon&lt;br /&gt;
* Pousser du contenu personnalisé au magasinier qui se présente devant la tv dans son centre de vie&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 17/11 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Brainstorming à Polytech &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Dans la cadre du POC sur l'affichage personnalisé sur une télévision, nous avons profité d'un exercice de management pour faire participer la classe à notre projet. Grâce à cette intervention nous avons pu confirmer nos idées sur les technologies à utiliser. Mais nous avons surtout eu une multitude de propositions sur les données à afficher sur l'écran.&lt;br /&gt;
&lt;br /&gt;
Pour plus détails, le compte rendu est disponible à ce lien:&lt;br /&gt;
&lt;br /&gt;
'''Compte Rendu Brainstorming 17/11/2014 :''' [[Fichier:Compte_Rendu_POC_17_11.pdf]]&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Entretien avec notre tuteur entreprise &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Durant cet entretien, nous avons livré la première version de l'application et nous avons discuté de la suite du projet.&lt;br /&gt;
Ci joint le Compte Rendu.&lt;br /&gt;
&lt;br /&gt;
'''Compte Rendu  19/11/2014 :''' [[Fichier:Compte_Rendu_19_11.pdf]]&lt;br /&gt;
&lt;br /&gt;
De cette réunion, les points suivants en sont sortis:&lt;br /&gt;
&lt;br /&gt;
*Une reconnaissance vocale en langue française sur les lunettes serait plus intéressante pour les employés (une piste serait d’utiliser l’outil pocketsphinx-  android).&lt;br /&gt;
*Par rapport à l'IHM, il faudrait mettre l’affichage au premier plan sur les Google Glass pour une démo auprés des parties prenantes du projet.&lt;br /&gt;
*Choisir une architecture pour l’affichage d’information personnalisées.&lt;br /&gt;
**La télévision connectée à une raspberry qui communiquerait via un dongle BLE avec le beacon d’un magasinier, ce qui permettrait l’identification de celui-ci prés de la Télévision, et déclencherait un processus d’échange d’information. (Communication via le protocole Bluetooh, wifi entre les lunettes et la Raspberry  ou communication avec la Raspberry avec la Base de Donnée sur le réseau de l’entreprise)&lt;br /&gt;
**Une télévision connectée en continu à un site internet via un dongle HDMI.&lt;br /&gt;
**Une tablette android géante supportant le BLE, ou utilisant un dongle BLE.&lt;br /&gt;
* Réaliser le portage de l’application sur le prototype des lunettes ORA.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 24/11 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Reconnaissance vocale en Français &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Pocket Sphinx Android est une librairie permettant de faire de la reconnaissance vocale d'un langage donné sur un système android en offline.&lt;br /&gt;
Pour supporter une langue, elle nécessite: &lt;br /&gt;
*un modèle acoustique (ensemble d'informations pour le traitement sonore)&lt;br /&gt;
*un dictionnaire associant les mots et leur phonèmes&lt;br /&gt;
*une grammaire, c'est un fichier définissant comment seraient articulé les mots à reconnaître et limitant les possibilités de langage).&lt;br /&gt;
&lt;br /&gt;
La grammaire étant un automate. Voici un exemple de la grammaire menu.gram pour la reconnaissance de la porte de déchargement.&lt;br /&gt;
[[Fichier:Arborescence_pocket_sphinx.png|200px|thumb|right|PocketSphinx dans un projet Android]]&lt;br /&gt;
&lt;br /&gt;
  #JSGF V1.0;&lt;br /&gt;
  grammar menu;&lt;br /&gt;
  &amp;lt;porte&amp;gt; = porte a |&lt;br /&gt;
            porte b |&lt;br /&gt;
            porte c |&lt;br /&gt;
            porte d |&lt;br /&gt;
            porte e |&lt;br /&gt;
            porte f |&lt;br /&gt;
            porte g |&lt;br /&gt;
            porte h |&lt;br /&gt;
            porte i |&lt;br /&gt;
            porte j ;&lt;br /&gt;
  public &amp;lt;porte&amp;gt; = &amp;lt;porte&amp;gt;+;&lt;br /&gt;
&lt;br /&gt;
Un extrait du dictionnaire french_letter.dic associé avec les phonemes&lt;br /&gt;
&lt;br /&gt;
  a aa &amp;lt;-- juste la lettre a et son phoneme &lt;br /&gt;
  autre au tt rr&lt;br /&gt;
  autre(2) au tt rr ee &lt;br /&gt;
  b bb &lt;br /&gt;
  c ss &lt;br /&gt;
  d dd ei d(2) dd ait &lt;br /&gt;
  e eu e(2) eu zz &lt;br /&gt;
  f ai ff &lt;br /&gt;
  g jj ei g(2) gg ai &lt;br /&gt;
  h aa ch  &lt;br /&gt;
  i ii &lt;br /&gt;
  j jj yy j(2) jj ii&lt;br /&gt;
  porte pp oo rr tt&lt;br /&gt;
  porte(2) pp oo rr tt ee&lt;br /&gt;
  portes(2) pp oo rr tt ee&lt;br /&gt;
  portes(3) pp oo rr tt ee zz&lt;br /&gt;
  portes(4) pp oo rr tt zz&lt;br /&gt;
&lt;br /&gt;
Le modèle acoustique que nous avons téléchargé étant inclu dans lium_french_f0&lt;br /&gt;
&lt;br /&gt;
Nous avons testé la reconnaissance vocale sur un téléphone android, les mots sont, dans la majorité des cas, bien reconnus.&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Comparaison architectures projet TV &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Au niveau de l’architecture nous avons établi plusieurs propositions après la réunion avec notre tuteur:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour une Raspberry Pi avec un dongle BLE :&lt;br /&gt;
* Installation OS Linux sur la Raspberry&lt;br /&gt;
* Librairie BlueZ pour l’utilisation du BLE (tests rapides effectués sur Linux avec le Dongle)&lt;br /&gt;
* Interface graphique avec une bibliothèque comme Qt (ou encore SDL…)&lt;br /&gt;
* Prix : Rpi = 26€ (chez RadioSpare), Dongle = 10€, TV = à partir de 358€ pour 117cm, + Connectique vidéo. Total = 394€&lt;br /&gt;
&lt;br /&gt;
Pour un écran ViewSonic VSD231 :&lt;br /&gt;
* Possède une API Bluetooth classic + API BLE&lt;br /&gt;
* Interface graphique Android (View, Layout...)&lt;br /&gt;
* Prix : écran ViewSonic VSD231 = 558 € pour 58 cm (chez ViewSonic).&lt;br /&gt;
&lt;br /&gt;
Récupération d’informations :&lt;br /&gt;
* Si données sur les lunettes : Bluetooth ou Wifi.&lt;br /&gt;
* Si données sur serveur : Ethernet ou Wifi.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Vu les propositions possibles nous pensons que la première proposition permettra une meilleure souplesse dans le développement mais serait un peu plus compliquée. Mais nous la trouvons aussi plus intéressante à faire de plus elle est moins coûteuse et permet d'utiliser un écran plus grand. Le développement sur tablette serait sûrement plus rapide à faire en contrepartie.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 01/12 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Conférence GlassCamp à l'Imaginarium &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
GlassCamp est une association qui essaye de répandre l'utilisation de toute les Smart Glass en général. Elle propose de multiples conférences dans lesquelles ils essayent de montrer au public l’intérêt de développer sur ces appareils. Dans le cadre de notre projet, notre tuteur nous a proposé de participer à cette présentation afin de mieux s’approprier le sujet. La conférence a eu lieu le 4 décembre à l'Imaginarium: une grande partie était plutôt tournée vers la présentation mais nous avons apprîs plusieurs choses intéressantes qui sont décrites dans le compte rendu.&lt;br /&gt;
&lt;br /&gt;
'''Compte Rendu Conférence 04/12/2014 :''' [[Fichier:Compte_Rendu_Conf_GlassCamp.pdf]]&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaines du 08/12 et 15/12 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Reconnaissance vocale en Français &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Nous avons avancé sur la version française de l'application. A la manière du menu vocal des google glass, nous avons utilisé un délimiteur&lt;br /&gt;
&amp;quot;ok lunettes&amp;quot; pour démarrer l'interaction avec l'application, afin que les discussions et bruits ambiants n'interfèrent pas sur l'utilisation de celle-ci.&lt;br /&gt;
Voici le scénario d'utilisation de la nouvelle version de l'application en Français.&lt;br /&gt;
[[Fichier:Schema_fr.png|700px|center]]&lt;br /&gt;
&lt;br /&gt;
Sous pocketsphinx, le délimiteur n'apparait pas dans une grammaire. La grammaire permet de prédestiner l'application à choisir entre deux mots. &lt;br /&gt;
Dans notre application, le moteur de reconnaissance vocale choisi la distance la plus courte, séparant le mot prononcé par l'utilisateur et ceux&lt;br /&gt;
qu'il est possible d'entendre. Ainsi entre &amp;quot;oui&amp;quot; et &amp;quot;non&amp;quot;, l'application choisira forcément l'un des deux, même si l'utilisateur dit &amp;quot;bonjour&amp;quot;&lt;br /&gt;
&lt;br /&gt;
L'avantage du délimiteur est que sa détection repose sur un seuillage entre ce qui est prononcé et ce qui doit être reconnu, nous pouvons régler ce seuil.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 05/01 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Entretien avec notre tuteur &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Durant cet entretien nous avons défini les évolutions du projet.&lt;br /&gt;
&lt;br /&gt;
'''Compte Rendu de l'entretien du 06/01/2015 :''' [[Fichier:Compte_Rendu_4.pdf]]&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 12/01 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; TV connectée &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Nous avons pris en main la détection des beacons (de la marque Estimote fournis par l'entreprise) dans les systèmes android.&lt;br /&gt;
L'adresse MAC et le RSSI sont accessibles, ce sont les seules informations nécessaires que nous avons besoin en ce qui concerne les beacons.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 19/01 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Interfaces_exemple.png|100px|thumb|right]]&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt;Interface TV &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Nous avons développé plusieurs exemples d'interfaces avec les instructions de notre tuteur afin de choisir les meilleurs résultats ensembles. Nous avons défini quelques contraintes pour le design. Elle doit être&lt;br /&gt;
* Simple et intuitive&lt;br /&gt;
* En accord avec les couleurs de l'entreprise&lt;br /&gt;
* Moderne (système de tuile ou autre)&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 26/01 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Entretien avec notre tuteur &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Durant cette entretien nous avons défini plus précisément les objectifs du projet.&lt;br /&gt;
Ci dessous le compte rendu.&lt;br /&gt;
&lt;br /&gt;
'''Compte Rendu de l'entretien du 26/01/2015 :''' [[Fichier:Compte_Rendu_5.pdf]]&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 02/02 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Portage d'une application de SmartPicking sur les Google Glass &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Une application android pour les ORA glasses a été développé pour permettre à l'entreprise, &lt;br /&gt;
d'accélerer les opérations de picking(prélévement à l'article) en entrepôt. Celle-ci était à destination des lunettes ORA de Optinvent.&lt;br /&gt;
Notre tuteur souhaitait donc que nous réalisions le portage de cette application vers les google glass. Le but étant de comparer l'usage de cette application sur deux supports différents entre les lunettes. &lt;br /&gt;
&lt;br /&gt;
*Nous avons procédé à des ajustements au niveau de la gestion des layouts de l'interface, à équilibrer la places qu'occupe certaines informations données par l'application.&lt;br /&gt;
*Cette application communique par bluetooth avec une autre application lancée sur une tablette android, cette dernière permet de réaliser l'appairage avec la smartglass. La tablette étant la seule à être connectée au serveur de l'entreprise (l'AS400) via un réseau sécurisé. Nous avons du appairer manuellement les glass avec la tablette, et retirer dans le code le lancement d'un intent permettant aux lunettes de se rendre visible sur le réseau. Lorsque cet intent est lancé il génère une exception non attendue qui ne concerne que les google glass. Aprés recherches sur le net, il semble que c'est un problème récurrent qui a été signalé mais pas encore solvé.&lt;/div&gt;</summary>
		<author><name>Jgondry</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=P22_Google_Glass_en_logistique&amp;diff=16710</id>
		<title>P22 Google Glass en logistique</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=P22_Google_Glass_en_logistique&amp;diff=16710"/>
				<updated>2015-02-11T14:40:12Z</updated>
		
		<summary type="html">&lt;p&gt;Jgondry : /*  Portage d'une application de SmartPicking sur les Google Glass  */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Introduction =&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Description du sujet &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
Notre projet vise à l’optimisation du stockage et de l’adressage des palettes dans un entrepôt. En effet, lors du déchargement d’un camion, chercher un emplacement libre pour les palettes dans un entrepôt occupant une grande superficie fait perdre du temps et donc de la productivité dans le stockage. Sachant qu’un cariste perd un temps non négligeable à la recherche d’emplacement disponible, optimiser ce temps de recherche permettrait de gagner du temps sur cette opération.&lt;br /&gt;
Développer un prototype permettrait de rendre compte des moyens existants qui pourrait être mis en place dans une solution métier.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Analyse du sujet &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Google_glass.png|200px|thumb|right|Paire de Google Glass]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Optinvent_ora.png|200px|thumb|right|Paire de ORA d'Optivent]]&lt;br /&gt;
&lt;br /&gt;
Notre projet consiste à fluidifier le déchargement en indiquant au cariste l’emplacement libre le plus proche. Pour ne pas gêner le travail des employés, un dispositif main-libre comme une Google Glass semble adapté. Ce projet soulève plusieurs problématiques : développer une interface homme-machine apportant une information pertinente pour l’utilisateur sans pour autant être perturbante. &lt;br /&gt;
&lt;br /&gt;
L’idée serait de réaliser dans les grandes lignes un système similaire à ce scénario d’utilisation :&lt;br /&gt;
http://n.mynews.ly/!lB.Bs4fw&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Moyen d’affichage de l’Informations pertinentes'''&lt;br /&gt;
&lt;br /&gt;
Les Google Glass ne sont pas les seules smart glasses sur le marché. Il nous faudra choisir les appareils les plus adaptés. L’information pertinente pourrait être une direction à suivre dans l’entrepôt ou simplement un numéro d’emplacement (adressage intuitif de l’entrepôt). &lt;br /&gt;
&lt;br /&gt;
'''Géolocalisation'''&lt;br /&gt;
&lt;br /&gt;
Dans le cas d’une direction à suivre se pose le problème de la géolocalisation indoor dont l’utilité et la faisabilité seront discutés au fil des réunions avec l’entreprise. &lt;br /&gt;
&lt;br /&gt;
'''Adressage / flashage'''&lt;br /&gt;
&lt;br /&gt;
En ce qui concerne l’adressage des palettes en entrepôt, la solution existante repose sur un flashage des codes barres associés à l’emplacement venant d’être occupé. Une étude de faisabilité/utilité sera aussi faite sur une solution de remplacement grâce aux possibilités qu’offrent les smart glasses.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Cahier des charges &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
En partant de l'analyse du sujet et des discussion avec notre tuteur, nous avons définie un cahier des charges plus précis des tâches à accomplir:&lt;br /&gt;
&lt;br /&gt;
* '''Développer un système embarqué sur une paire de lunette Smart Glass'''&lt;br /&gt;
** Comparer les différentes offres en matière de Smart Glass notamment Google Glass &amp;amp; ORA de Optinvent&lt;br /&gt;
** Concevoir une interface homme-machine non perturbante pour l'utilisateur.&lt;br /&gt;
* '''Etudier la nécessité d'utiliser une géolocalisation en entrepôt et l'implémenter si besoin'''&lt;br /&gt;
** Via RSSI (Wifi, Bluetooh Low Energy ...)&lt;br /&gt;
** Via traitement d'images (reconnaissance de la signalétique en entrepôt)&lt;br /&gt;
* '''Etudier les possibilités d'optimisation du système d'adressage des palettes'''&lt;br /&gt;
** Implémenter la reconnaissance de code barre&lt;br /&gt;
** La tester en réalité métier (utilité ajoutée, habitude des magasiniers, vitesse de traitement...)&lt;br /&gt;
&lt;br /&gt;
Le cahier des charges est encore en cours de construction&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Matériel utilisé &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; SmartGlass &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Lors de la réunion nous avons discuté des technologies à utiliser dans le projet, et plus particulièrement des différentes SmartGlass. En effet, il existe une multitude de sociétés qui développe ce genre de lunettes. Nous commencerons à utiliser les Google Glass étant donné que notre tuteur en a déjà commandé puis nous développerons sur les lunettes ORA de Optivent qui seront livrées fin octobre. Nous devrons donc faire un comparatif entre ces deux SmartGlass puis étudier les autres appareils disponibles sur le marché.&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Localisation &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
L'utilisation de la géolocalisation dans le projet est à débattre. Mais des tests seront probablement mis en place. L'entreprise possède quelque iBeacons BLE Estimote dans ses bureaux d'innovations que nous pourrons emprunter.&lt;br /&gt;
Dans le cas où leur gain d'informations serait utile il nous faudra comparer les modèles disponibles. Choisir un nombre de module et des emplacements stratégiques dans l'entrepôt afin d'avoir une localisation assez précise pour l'application.&lt;br /&gt;
&lt;br /&gt;
L'utilisation d'autres technologies de géolocalisation a été discuté comme le Wifi ou le XBee mais le BLE semblait le plus adapté dans le cadre de notre projet.&lt;br /&gt;
&lt;br /&gt;
= Déroulement du projet =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 22/09 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Réunion avec le tuteur entreprise dans l’entrepôt &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Nous avons observé en situation le problème et discuté des besoins, des moyens déjà utilisables. Il nous faudra prendre en compte plusieurs paramètres dans notre réflexion tels que le système de stockage et d'adressages des palettes, sens de circulation des caristes, superficie des zones à desservir, durée de livraison.&lt;br /&gt;
Nous avons suggéré des étapes de validation intermédiaire du système par les futurs utilisateurs et pour cela nous rencontrerons le chef d'équipe des magasiniers lorsque qu'une version sera assez développée.&lt;br /&gt;
&lt;br /&gt;
Nous avons défini avec le tuteur les premières deadlines du projet, voici la timeline récapitulative:&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Timeline_1.jpg||center|1000px]]&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Compte Rendu &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Nous avons rédigé un compte rendu de la première réunion détaillant les spécifications des versions des livrables, des schémas et les sujets abordés lors de la rencontre :&lt;br /&gt;
&lt;br /&gt;
'''Compte Rendu réunion du 25/09/2014 :''' [[Fichier:Compte_Rendu_25_09.pdf]]&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 29/09 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Découverte des Google Glass &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
*Prise en main des Google Glass. &lt;br /&gt;
*Installation d'applications (.apk) grand public. Nous avons utilisé l'outil Android Debug Bridge(adb). Se mettre à la place d'un utilisateur.&lt;br /&gt;
*L'une des deux lunettes qui serait retenue imposera forcément le développement d'une application android (ou d'une technologie trés proche d'android, pour les Google Glass, se basant sur le Glass Development Kit qui est un add-on au SDK classique d'android). Nous avons donc téléchargé les packages nécessaires pour commencer à développer. &lt;br /&gt;
** Nous commençons à nous former sur les technologies android :développement d'applications minimaliste.&lt;br /&gt;
** Installation de nos premières apk minimalistes pour Android.&lt;br /&gt;
** Installation d'une application minimaliste sur la Google Glass.&lt;br /&gt;
&lt;br /&gt;
Voici un comparatif réalisé entre les lunettes ORA et les Google Glass.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Différences Google Glass/ORA &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!   !! Google Glass !! ORA &lt;br /&gt;
|-&lt;br /&gt;
|Connectique&lt;br /&gt;
|Compatible BLE (à partir de la XE 16 KitKat Update), Wifi &lt;br /&gt;
|Compatible BLE, Wifi&lt;br /&gt;
|-&lt;br /&gt;
|Autonomie en utilisation normale&lt;br /&gt;
|de 1h à 2h &lt;br /&gt;
|de 4h à 8h&lt;br /&gt;
|-&lt;br /&gt;
|Son&lt;br /&gt;
|Conductivité Cranienne&lt;br /&gt;
|Prise jack&lt;br /&gt;
|-&lt;br /&gt;
|Interface&lt;br /&gt;
|Ecran occupant une faible superficie dans le champ de vision &lt;br /&gt;
|Ecran 2 positions (moyennes et basses), plus étendu permettant une réalité augmentée &lt;br /&gt;
|-&lt;br /&gt;
|Système d'exploitation&lt;br /&gt;
|Android 4.4&lt;br /&gt;
|Android 4.2.2&lt;br /&gt;
|-&lt;br /&gt;
|Calculs&lt;br /&gt;
|CPU &amp;amp; GPU&lt;br /&gt;
|CPU &amp;amp; GPU&lt;br /&gt;
|-&lt;br /&gt;
|Prix&lt;br /&gt;
|1500$ &lt;br /&gt;
|949$&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 06/10 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Deuxième rendez-vous avec le tuteur entreprise &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Nous avons fait part de notre avancée en matière de prise en main et des problèmes rencontrés en matière de développement.&lt;br /&gt;
Les lunettes ORA sont commandées elles arrivent d'ici la fin octobre.&lt;br /&gt;
&lt;br /&gt;
La première version V1 de l'application pour Google Glass à livrer pour la mi-novembre est fixée.&lt;br /&gt;
&lt;br /&gt;
En partant d'une position connue (en dur dans l'application) dans l'entrepôt, elle indiquera à un utilisateur les emplacements libres les plus proches.&lt;br /&gt;
&lt;br /&gt;
L'état d'occupation des emplacements sera consulté et stocké dans l'application. Il n'y aura donc pas de gestion des conflits. Le sens de circulation dans l'entrepôt sera pris en compte.&lt;br /&gt;
Une communication avec la base de donnée de l'entrepôt n'est pour le moment pas d'actualité, cela nécessiterait des développements en amont.&lt;br /&gt;
La géolocalisation n'est pas au goût du jour non plus. L'adressage des emplacements dans l'entrepôt est intuitif, il est donc facile pour un magasinier de &lt;br /&gt;
se rendre à un emplacement en connaissant l'adresse.&lt;br /&gt;
&lt;br /&gt;
Pour l'IHM, nous nous inspirerons des applications pour Google Glass (les Glasswares) de type GPS.&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Premiers programmes sur Google Glass &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Pour nous familiariser avec la programmation sur ce genre d'appareil nous avons tous deux décidé de suivre en premier le tutoriel Android d'un site spécialisé. Cela afin de mieux comprendre le système Android, avec les concepts d'activités, de view etc.&lt;br /&gt;
Dans un deuxième temps nous avons choisi de suivre plusieurs tutoriels nous expliquant la prise en main basique des lunettes afin de saisir les particularités de leur programmation.&lt;br /&gt;
&lt;br /&gt;
Le plus dur étant finalement de comprendre les liens entre tous les fichiers du projets, les problèmes de drivers et d'upload simple que nous avons rencontrés et l’exécution du programme sur les lunettes. Des choses que nous arrivons maintenant à maitriser mais qui était floues à l'origine.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 13/10 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Programmation et gestion des interactions &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Durant cette semaine nous avons commencé a vraiment toucher aux fonctionnalités des Glass. Pour rester en main libre, nous avons fait des recherches et commencé à programmer de la reconnaissance vocale. Nous avons ainsi crée un système de navigation basique par commande vocale dans différents menus. Pour un accès rapide à l'application et toujours dans la même optique nous avons réussi à inclure le lancement de notre logiciel à partir du &amp;quot;Ok Glass&amp;quot; menu qui est le menu de lancement d'application par commande vocale des Google Glass. Voici un aperçu du résultat:&lt;br /&gt;
[[Fichier:V0_menu.png|1000px|center]]&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Analyse et évaluation du rendu &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Le début de la prise en main des fonctionnalités des Google Glass n'a pas été facile étant donné que la plupart des fonctionnalités sont propres à ce genre d'appareil. De plus elles nécessitent des techniques spéciales de programmation qui ne sont pas toujours très utilisées donc il est parfois difficile de trouver des exemples sur internet.&lt;br /&gt;
Néanmoins après l'implémentation de ces fonctionnalités nous avons pu rencontrer quelques difficultés de reconnaissance. En effet, les Google Glass possèdent un dictionnaire de mots/phrases pour la reconnaissance vocale mais elles nous permettent aussi d'écrire n'importe quelle phrase dans le mode développeur. Les phrases du dictionnaires ne posent aucun problème mais les phrases que nous écrivons sont parfois dures à reconnaitre. La reconnaissance de lettre seule ou de certains numéros est par exemple quasi impossible ou très aléatoire.&lt;br /&gt;
Le système de vu est quant à lui plutôt facile à prendre en main et intuitif dans l'utilisation.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 20/10 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Premiere structure de donnée &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Nous avons opté pour une structure de donnée récursive. Une Cellule, contenant des Allées, qui contiennent des Baies, contenant des Rangées, contenant des Emplacements.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Structure_export_resized.png|750px|center]]&lt;br /&gt;
Nous avons conçu cette structure de donnée pour qu'elle génère, dans un premier temps &amp;quot;en dur&amp;quot;, une cellule contenant des emplacements automatiquement adressés à la manière de ceux présent dans l'entrepôt. Ces adresses sont de la forme &amp;quot;D61A514&amp;quot; traduisez &amp;quot; Cellule 6 Allée 1A Baie 5 Rang 1 Niveau 4&amp;quot;.&lt;br /&gt;
Cette structure prend on compte le sens de circulation dans l'entrepôt.&lt;br /&gt;
Lors de futures interactions avec une base de donnée, cette structure serait sujette à évolution par une modification des méthodes de génération/modification du statut des adresses en fonction de cette base de donnée. Mais celle-ci constitue essentiellement une base pour appréhender plus pratiquement les problématiques de recherches de l'emplacement le plus proche.&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Prise en main de l'interface &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Nous avons déjà abordé les layouts java en TP donc il a été assez facile de commencer à faire des interfaces graphiques simples. Nous avons construit une interface graphique simple pour de faire une démonstration du programme aux tuteurs entreprise afin qu'ils comprennent bien le fonctionnement de notre algorithme.&lt;br /&gt;
L'interface graphique finale du programme sera très sobre afin de ne pas donner trop gêner le magasinier dans sa tâche.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 27/10 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Chemin optimal : Parcours intelligent Vs Sélection intelligente &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Un premier algorithme de recherche de l'emplacement le plus proche a été développé, celui-ci ne prend en compte qu'un seul scénario. &lt;br /&gt;
Celui de la position de départ (quai de déchargement où reviendra constamment le magasinier aprés chaque livraison) correspondante à la première allée de l'entrepôt, et en prenant en compte le sens de circulation. &lt;br /&gt;
A partir de ce moment, nous avons dégager deux grandes manières d'appréhender le problème.&lt;br /&gt;
&lt;br /&gt;
* Un parcours intelligent de la structure de donnée. C'est à dire parcourir les emplacements les plus proches, et choisir le premier emplacement libre. Une solution complexe à réaliser sur le plan algorithmique. En tenant compte du sens de circulation, il apparait que l'emplacement libre &amp;quot;leplusproche&amp;quot; (à vol d'oiseau) trouvé le plus tôt, ne correspondrait pas forcément à l'emplacement le plus proche compte tenu du chemin emprunté par un magasinier. Et c'est plutôt l'intérêt de cette algorithme.(Sauf dans l'unique cas où l'emplacement libre se trouve directement dans l'allée faisant face à la position de départ du magasinier, et le sens de circulation lui permet directement de se rendre à l'emplacement sans détour).&lt;br /&gt;
&lt;br /&gt;
* Une sélection intelligente parmi les emplacements libres. Leurs adresses renseignent à quelles allées, les emplacements libres appartiennent, donc renseignent sur le sens de circulation. A partir de la position de départ du magasinier et de l'ensemble des emplacements libres, on peut calculer la distance nécessaire à celui-ci pour les atteindre. Pour ainsi choisir l'adresse pour laquelle la distance est minimale.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 3/11 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Chemin optimal : sélection intelligente des adresses &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Nous avons écrit une premiere méthode de détermination. &lt;br /&gt;
On choisit l'emplacement, parmi tous ceux qui sont libres, pour lequel la distance de parcours est minimale entre le départ et celui-ci. &lt;br /&gt;
Ici l'unité de distance est la baie. La simplicité de l'algorithme réside dans le fait que le magasinier ne transporte qu'une seule caisse à la fois et repars toujours au même point de départ.&lt;br /&gt;
&lt;br /&gt;
Ci dessous un plan de l'entrepôt.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:schema_entrepot.png|750px|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Si on se place à l'entrée de l'Allée A :&lt;br /&gt;
&lt;br /&gt;
**le déplacement jusqu'à A4 (sens de circulation direct) est de : &lt;br /&gt;
&lt;br /&gt;
                        Y baies - (indice de la baie/2 +indice de la baie % 2) &lt;br /&gt;
&lt;br /&gt;
**le déplacement jusqu'à B1 (sens de circulation indirect) est de : &lt;br /&gt;
&lt;br /&gt;
                        Y baies + différence entre l'allée A et B donc X baies + indice de la baie/2 +indice de la baie % 2&lt;br /&gt;
**le déplacement jusqu'à C1 (sens de circulation direct) est de : &lt;br /&gt;
                      &lt;br /&gt;
                        Y baies - (indice de la baie/2 +indice de la baie % 2)+différence entre l'allée A et C donc 2*X baies.&lt;br /&gt;
&lt;br /&gt;
*Si on se place à l'entrée de l'Allée B :&lt;br /&gt;
**le déplacement jusqu'à B1 (sens de circulation indirect avec contournement) est de : &lt;br /&gt;
                        &lt;br /&gt;
                        2*X baies + Y baies + 2*X baies + (indice de la baie/2 +indice de la baie % 2)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On peut généraliser l'ensemble de ces situations de déplacement avec l'algorithme suivant :&lt;br /&gt;
&lt;br /&gt;
Pseudo code&lt;br /&gt;
&lt;br /&gt;
  Leplusproche( Allee depart )&lt;br /&gt;
    distance_la_plus_petite = valeurMAX&lt;br /&gt;
      le_plus_proche=&amp;quot;&amp;quot;&lt;br /&gt;
         Pour chaque Allee de Cellule&lt;br /&gt;
           sens=Allee.sens&lt;br /&gt;
           Pour chaque Baie de Allee&lt;br /&gt;
             Pour chaque Rang de Allee&lt;br /&gt;
 	       Pour chaque Emplacement de Rang&lt;br /&gt;
                Si Emplacement estlibre &lt;br /&gt;
                &lt;br /&gt;
                indice_baie = selection_indice_baie(Emplacement.adresse)&lt;br /&gt;
   		 allee_cible = selection_indice_allee(Emplacement.adresse)  &lt;br /&gt;
   		 difference_allee = valeur_absolue(depart -cible) &lt;br /&gt;
                    Si difference_allee==0 et sens.estindirect&lt;br /&gt;
                      //sens indirect +contournement&lt;br /&gt;
                      distance_actuelle=(indice_baie/2)+indice_baie%2+(2*(difference_allee))+4*X+Y			&lt;br /&gt;
                    Sinon	&lt;br /&gt;
                        Si sens estdirect&lt;br /&gt;
                          //sens direct &lt;br /&gt;
                          distance_actuelle=(Y-((indice_baie/2)+indice_baie%2))+2*difference_allee&lt;br /&gt;
                        Sinon&lt;br /&gt;
                          //sens indirect mais pas de contournement&lt;br /&gt;
                          distance_actuelle=((indice_baie/2)+indice_baie%2)+2*difference_allee+Y&lt;br /&gt;
                        Finsi	&lt;br /&gt;
                    Finsi	&lt;br /&gt;
                    Si distance_actuelle &amp;lt; distance_la_plus_petite&lt;br /&gt;
                      le_plus_proche=Emplacement.adresse&lt;br /&gt;
                      distance_la_plus_petite=distance_actuelle&lt;br /&gt;
                    Finsi&lt;br /&gt;
                Finsi  &lt;br /&gt;
            Finpour&lt;br /&gt;
          Finpour&lt;br /&gt;
        Finpour&lt;br /&gt;
      Finpour&lt;br /&gt;
    retourne le_plus_proche&lt;br /&gt;
  Finleplusproche&lt;br /&gt;
&lt;br /&gt;
Cet algorithme nous donne satisfaction (dans le cadre de la V1)&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 10/11 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Programmation et gestion des interactions &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Aprés quelques difficultés vis à vis de la gestion des menus vocaux sur les lunettes qui ne fonctionnent pas de la même manière que les menus classiques sous android, nous avons étoffé les interactions possible avec l'application des google glass. (Nous souhaitions inflater un deuxième menu pour interagir de manière plus contextuelle, il fallait le faire dans la méthode onCreatePanelMenu dont l'appel serait forcé avec getWindow().invalidatePanelMenu(WindowUtils.FEATURE_VOICE_COMMANDS) plutôt que dans onPrepareOptionsMenu forcée par invalidateOptionMenu()...) &lt;br /&gt;
&lt;br /&gt;
schéma d'utilisation...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Proposition projet affichage télévision &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Tele_concept.png|200px|thumb|right]]&lt;br /&gt;
&lt;br /&gt;
Notre tuteur nous a contacté pour nous proposer d'étudier un second projet en parallèle au projet initial. Celui consistant à gérer l'affichage d'information personnalisé d'un magasinier passant à proximité d'un écran de télévision. Nous devons effectuer un Proof Of Concept (POC) et réfléchir à ce sujet.&lt;br /&gt;
L'utilisation du BLE est donc de nouveau d'actualité, car je rappel que sont utilité était discutable dans une réalité métier du projet initial. La question étant plus de savoir comment gérer le système du coté du téléviseur.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Le concept de base étant de :&lt;br /&gt;
* Fournir une beacon aux magasiniers de l'entrepôt.&lt;br /&gt;
* Installer une télévision sur un centre de vie dans l'entrepôt avec une beacon&lt;br /&gt;
* Pousser du contenu personnalisé au magasinier qui se présente devant la tv dans son centre de vie&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 17/11 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Brainstorming à Polytech &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Dans la cadre du POC sur l'affichage personnalisé sur une télévision, nous avons profité d'un exercice de management pour faire participer la classe à notre projet. Grâce à cette intervention nous avons pu confirmer nos idées sur les technologies à utiliser. Mais nous avons surtout eu une multitude de propositions sur les données à afficher sur l'écran.&lt;br /&gt;
&lt;br /&gt;
Pour plus détails, le compte rendu est disponible à ce lien:&lt;br /&gt;
&lt;br /&gt;
'''Compte Rendu Brainstorming 17/11/2014 :''' [[Fichier:Compte_Rendu_POC_17_11.pdf]]&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Entretien avec notre tuteur entreprise &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Durant cet entretien, nous avons livré la première version de l'application et nous avons discuté de la suite du projet.&lt;br /&gt;
Ci joint le Compte Rendu.&lt;br /&gt;
&lt;br /&gt;
'''Compte Rendu  19/11/2014 :''' [[Fichier:Compte_Rendu_19_11.pdf]]&lt;br /&gt;
&lt;br /&gt;
De cette réunion, les points suivants en sont sortis:&lt;br /&gt;
&lt;br /&gt;
*Une reconnaissance vocale en langue française sur les lunettes serait plus intéressante pour les employés (une piste serait d’utiliser l’outil pocketsphinx-  android).&lt;br /&gt;
*Par rapport à l'IHM, il faudrait mettre l’affichage au premier plan sur les Google Glass pour une démo auprés des parties prenantes du projet.&lt;br /&gt;
*Choisir une architecture pour l’affichage d’information personnalisées.&lt;br /&gt;
**La télévision connectée à une raspberry qui communiquerait via un dongle BLE avec le beacon d’un magasinier, ce qui permettrait l’identification de celui-ci prés de la Télévision, et déclencherait un processus d’échange d’information. (Communication via le protocole Bluetooh, wifi entre les lunettes et la Raspberry  ou communication avec la Raspberry avec la Base de Donnée sur le réseau de l’entreprise)&lt;br /&gt;
**Une télévision connectée en continu à un site internet via un dongle HDMI.&lt;br /&gt;
**Une tablette android géante supportant le BLE, ou utilisant un dongle BLE.&lt;br /&gt;
* Réaliser le portage de l’application sur le prototype des lunettes ORA.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 24/11 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Reconnaissance vocale en Français &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Pocket Sphinx Android est une librairie permettant de faire de la reconnaissance vocale d'un langage donné sur un système android en offline.&lt;br /&gt;
Pour supporter une langue, elle nécessite: &lt;br /&gt;
*un modèle acoustique (ensemble d'informations pour le traitement sonore)&lt;br /&gt;
*un dictionnaire associant les mots et leur phonèmes&lt;br /&gt;
*une grammaire, c'est un fichier définissant comment seraient articulé les mots à reconnaître et limitant les possibilités de langage).&lt;br /&gt;
&lt;br /&gt;
La grammaire étant un automate. Voici un exemple de la grammaire menu.gram pour la reconnaissance de la porte de déchargement.&lt;br /&gt;
[[Fichier:Arborescence_pocket_sphinx.png|200px|thumb|right|PocketSphinx dans un projet Android]]&lt;br /&gt;
&lt;br /&gt;
  #JSGF V1.0;&lt;br /&gt;
  grammar menu;&lt;br /&gt;
  &amp;lt;porte&amp;gt; = porte a |&lt;br /&gt;
            porte b |&lt;br /&gt;
            porte c |&lt;br /&gt;
            porte d |&lt;br /&gt;
            porte e |&lt;br /&gt;
            porte f |&lt;br /&gt;
            porte g |&lt;br /&gt;
            porte h |&lt;br /&gt;
            porte i |&lt;br /&gt;
            porte j ;&lt;br /&gt;
  public &amp;lt;porte&amp;gt; = &amp;lt;porte&amp;gt;+;&lt;br /&gt;
&lt;br /&gt;
Un extrait du dictionnaire french_letter.dic associé avec les phonemes&lt;br /&gt;
&lt;br /&gt;
  a aa &amp;lt;-- juste la lettre a et son phoneme &lt;br /&gt;
  autre au tt rr&lt;br /&gt;
  autre(2) au tt rr ee &lt;br /&gt;
  b bb &lt;br /&gt;
  c ss &lt;br /&gt;
  d dd ei d(2) dd ait &lt;br /&gt;
  e eu e(2) eu zz &lt;br /&gt;
  f ai ff &lt;br /&gt;
  g jj ei g(2) gg ai &lt;br /&gt;
  h aa ch  &lt;br /&gt;
  i ii &lt;br /&gt;
  j jj yy j(2) jj ii&lt;br /&gt;
  porte pp oo rr tt&lt;br /&gt;
  porte(2) pp oo rr tt ee&lt;br /&gt;
  portes(2) pp oo rr tt ee&lt;br /&gt;
  portes(3) pp oo rr tt ee zz&lt;br /&gt;
  portes(4) pp oo rr tt zz&lt;br /&gt;
&lt;br /&gt;
Le modèle acoustique que nous avons téléchargé étant inclu dans lium_french_f0&lt;br /&gt;
&lt;br /&gt;
Nous avons testé la reconnaissance vocale sur un téléphone android, les mots sont, dans la majorité des cas, bien reconnus.&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Comparaison architectures projet TV &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Au niveau de l’architecture nous avons établi plusieurs propositions après la réunion avec notre tuteur:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour une Raspberry Pi avec un dongle BLE :&lt;br /&gt;
* Installation OS Linux sur la Raspberry&lt;br /&gt;
* Librairie BlueZ pour l’utilisation du BLE (tests rapides effectués sur Linux avec le Dongle)&lt;br /&gt;
* Interface graphique avec une bibliothèque comme Qt (ou encore SDL…)&lt;br /&gt;
* Prix : Rpi = 26€ (chez RadioSpare), Dongle = 10€, TV = à partir de 358€ pour 117cm, + Connectique vidéo. Total = 394€&lt;br /&gt;
&lt;br /&gt;
Pour un écran ViewSonic VSD231 :&lt;br /&gt;
* Possède une API Bluetooth classic + API BLE&lt;br /&gt;
* Interface graphique Android (View, Layout...)&lt;br /&gt;
* Prix : écran ViewSonic VSD231 = 558 € pour 58 cm (chez ViewSonic).&lt;br /&gt;
&lt;br /&gt;
Récupération d’informations :&lt;br /&gt;
* Si données sur les lunettes : Bluetooth ou Wifi.&lt;br /&gt;
* Si données sur serveur : Ethernet ou Wifi.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Vu les propositions possibles nous pensons que la première proposition permettra une meilleure souplesse dans le développement mais serait un peu plus compliquée. Mais nous la trouvons aussi plus intéressante à faire de plus elle est moins coûteuse et permet d'utiliser un écran plus grand. Le développement sur tablette serait sûrement plus rapide à faire en contrepartie.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 01/12 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Conférence GlassCamp à l'Imaginarium &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
GlassCamp est une association qui essaye de répandre l'utilisation de toute les Smart Glass en général. Elle propose de multiples conférences dans lesquelles ils essayent de montrer au public l’intérêt de développer sur ces appareils. Dans le cadre de notre projet, notre tuteur nous a proposé de participer à cette présentation afin de mieux s’approprier le sujet. La conférence a eu lieu le 4 décembre à l'Imaginarium: une grande partie était plutôt tournée vers la présentation mais nous avons apprîs plusieurs choses intéressantes qui sont décrites dans le compte rendu.&lt;br /&gt;
&lt;br /&gt;
'''Compte Rendu Conférence 04/12/2014 :''' [[Fichier:Compte_Rendu_Conf_GlassCamp.pdf]]&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaines du 08/12 et 15/12 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Reconnaissance vocale en Français &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Nous avons avancé sur la version française de l'application. A la manière du menu vocal des google glass, nous avons utilisé un délimiteur&lt;br /&gt;
&amp;quot;ok lunettes&amp;quot; pour démarrer l'interaction avec l'application, afin que les discussions et bruits ambiants n'interfèrent pas sur l'utilisation de celle-ci.&lt;br /&gt;
Voici le scénario d'utilisation de la nouvelle version de l'application en Français.&lt;br /&gt;
[[Fichier:Schema_fr.png|700px|center]]&lt;br /&gt;
&lt;br /&gt;
Sous pocketsphinx, le délimiteur n'apparait pas dans une grammaire. La grammaire permet de prédestiner l'application à choisir entre deux mots. &lt;br /&gt;
Dans notre application, le moteur de reconnaissance vocale choisi la distance la plus courte, séparant le mot prononcé par l'utilisateur et ceux&lt;br /&gt;
qu'il est possible d'entendre. Ainsi entre &amp;quot;oui&amp;quot; et &amp;quot;non&amp;quot;, l'application choisira forcément l'un des deux, même si l'utilisateur dit &amp;quot;bonjour&amp;quot;&lt;br /&gt;
&lt;br /&gt;
L'avantage du délimiteur est que sa détection repose sur un seuillage entre ce qui est prononcé et ce qui doit être reconnu, nous pouvons régler ce seuil.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 05/01 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Entretien avec notre tuteur &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Durant cet entretien nous avons défini les évolutions du projet.&lt;br /&gt;
&lt;br /&gt;
'''Compte Rendu de l'entretien du 06/01/2015 :''' [[Fichier:Compte_Rendu_4.pdf]]&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 12/01 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; TV connectée &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Nous avons pris en main la détection des beacons (de la marque Estimote fournis par l'entreprise) dans les systèmes android.&lt;br /&gt;
L'adresse MAC et le RSSI sont accessibles, ce sont les seules informations nécessaires que nous avons besoin en ce qui concerne les beacons.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 19/01 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Interfaces_exemple.png|100px|thumb|right]]&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt;Interface TV &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Nous avons développé plusieurs exemples d'interfaces avec les instructions de notre tuteur afin de choisir les meilleurs résultats ensembles. Nous avons défini quelques contraintes pour le design. Elle doit être&lt;br /&gt;
* Simple et intuitive&lt;br /&gt;
* En accord avec les couleurs de l'entreprise&lt;br /&gt;
* Moderne (système de tuile ou autre)&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 26/01 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Entretien avec notre tuteur &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Durant cette entretien nous avons défini plus précisément les objectifs du projet.&lt;br /&gt;
Ci dessous le compte rendu.&lt;br /&gt;
&lt;br /&gt;
'''Compte Rendu de l'entretien du 26/01/2015 :''' [[Fichier:Compte_Rendu_5.pdf]]&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 02/02 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Portage d'une application de SmartPicking sur les Google Glass &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Une application android pour les ORA glasses a été développé pour permettre à l'entreprise, &lt;br /&gt;
d'accélerer les opérations de picking(prélévement à l'article) en entrepôt. Celle-ci était à destination des lunettes ORA de Optinvent.&lt;br /&gt;
Notre tuteur souhaitait donc que nous réalisions le portage de cette application vers les google glass. Le but étant de comparer l'usage de cette application sur deux supports différents entre les lunettes. &lt;br /&gt;
&lt;br /&gt;
*Nous avons procédé à des ajustements au niveau de la gestion des layouts de l'interface, à équilibrer la places qu'occupe certaines informations&lt;br /&gt;
données par l'application.&lt;br /&gt;
*Cette application communique par bluetooth avec une autre application lancée sur une tablette android, cette dernière permet de réaliser l'appairage avec la smartglass. La tablette étant la seule à être connectée au serveur de l'entreprise (l'AS400) via un réseau sécurisé. Nous avons du appairer manuellement les glass avec la tablette, et retirer dans le code le lancement d'un intent permettant aux lunettes de se rendre visible sur le réseau. Lorsque cet intent est lancé il génère une exception non attendue qui ne concerne que les google glass. Aprés recherches sur le net, il semble que c'est un problème récurrent qui a été signalé mais pas encore solvé.&lt;/div&gt;</summary>
		<author><name>Jgondry</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=P22_Google_Glass_en_logistique&amp;diff=16702</id>
		<title>P22 Google Glass en logistique</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=P22_Google_Glass_en_logistique&amp;diff=16702"/>
				<updated>2015-02-11T14:12:57Z</updated>
		
		<summary type="html">&lt;p&gt;Jgondry : /* Interface TV  */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Introduction =&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Description du sujet &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
Notre projet vise à l’optimisation du stockage et de l’adressage des palettes dans un entrepôt. En effet, lors du déchargement d’un camion, chercher un emplacement libre pour les palettes dans un entrepôt occupant une grande superficie fait perdre du temps et donc de la productivité dans le stockage. Sachant qu’un cariste perd un temps non négligeable à la recherche d’emplacement disponible, optimiser ce temps de recherche permettrait de gagner du temps sur cette opération.&lt;br /&gt;
Développer un prototype permettrait de rendre compte des moyens existants qui pourrait être mis en place dans une solution métier.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Analyse du sujet &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Google_glass.png|200px|thumb|right|Paire de Google Glass]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Optinvent_ora.png|200px|thumb|right|Paire de ORA d'Optivent]]&lt;br /&gt;
&lt;br /&gt;
Notre projet consiste à fluidifier le déchargement en indiquant au cariste l’emplacement libre le plus proche. Pour ne pas gêner le travail des employés, un dispositif main-libre comme une Google Glass semble adapté. Ce projet soulève plusieurs problématiques : développer une interface homme-machine apportant une information pertinente pour l’utilisateur sans pour autant être perturbante. &lt;br /&gt;
&lt;br /&gt;
L’idée serait de réaliser dans les grandes lignes un système similaire à ce scénario d’utilisation :&lt;br /&gt;
http://n.mynews.ly/!lB.Bs4fw&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Moyen d’affichage de l’Informations pertinentes'''&lt;br /&gt;
&lt;br /&gt;
Les Google Glass ne sont pas les seules smart glasses sur le marché. Il nous faudra choisir les appareils les plus adaptés. L’information pertinente pourrait être une direction à suivre dans l’entrepôt ou simplement un numéro d’emplacement (adressage intuitif de l’entrepôt). &lt;br /&gt;
&lt;br /&gt;
'''Géolocalisation'''&lt;br /&gt;
&lt;br /&gt;
Dans le cas d’une direction à suivre se pose le problème de la géolocalisation indoor dont l’utilité et la faisabilité seront discutés au fil des réunions avec l’entreprise. &lt;br /&gt;
&lt;br /&gt;
'''Adressage / flashage'''&lt;br /&gt;
&lt;br /&gt;
En ce qui concerne l’adressage des palettes en entrepôt, la solution existante repose sur un flashage des codes barres associés à l’emplacement venant d’être occupé. Une étude de faisabilité/utilité sera aussi faite sur une solution de remplacement grâce aux possibilités qu’offrent les smart glasses.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Cahier des charges &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
En partant de l'analyse du sujet et des discussion avec notre tuteur, nous avons définie un cahier des charges plus précis des tâches à accomplir:&lt;br /&gt;
&lt;br /&gt;
* '''Développer un système embarqué sur une paire de lunette Smart Glass'''&lt;br /&gt;
** Comparer les différentes offres en matière de Smart Glass notamment Google Glass &amp;amp; ORA de Optinvent&lt;br /&gt;
** Concevoir une interface homme-machine non perturbante pour l'utilisateur.&lt;br /&gt;
* '''Etudier la nécessité d'utiliser une géolocalisation en entrepôt et l'implémenter si besoin'''&lt;br /&gt;
** Via RSSI (Wifi, Bluetooh Low Energy ...)&lt;br /&gt;
** Via traitement d'images (reconnaissance de la signalétique en entrepôt)&lt;br /&gt;
* '''Etudier les possibilités d'optimisation du système d'adressage des palettes'''&lt;br /&gt;
** Implémenter la reconnaissance de code barre&lt;br /&gt;
** La tester en réalité métier (utilité ajoutée, habitude des magasiniers, vitesse de traitement...)&lt;br /&gt;
&lt;br /&gt;
Le cahier des charges est encore en cours de construction&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Matériel utilisé &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; SmartGlass &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Lors de la réunion nous avons discuté des technologies à utiliser dans le projet, et plus particulièrement des différentes SmartGlass. En effet, il existe une multitude de sociétés qui développe ce genre de lunettes. Nous commencerons à utiliser les Google Glass étant donné que notre tuteur en a déjà commandé puis nous développerons sur les lunettes ORA de Optivent qui seront livrées fin octobre. Nous devrons donc faire un comparatif entre ces deux SmartGlass puis étudier les autres appareils disponibles sur le marché.&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Localisation &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
L'utilisation de la géolocalisation dans le projet est à débattre. Mais des tests seront probablement mis en place. L'entreprise possède quelque iBeacons BLE Estimote dans ses bureaux d'innovations que nous pourrons emprunter.&lt;br /&gt;
Dans le cas où leur gain d'informations serait utile il nous faudra comparer les modèles disponibles. Choisir un nombre de module et des emplacements stratégiques dans l'entrepôt afin d'avoir une localisation assez précise pour l'application.&lt;br /&gt;
&lt;br /&gt;
L'utilisation d'autres technologies de géolocalisation a été discuté comme le Wifi ou le XBee mais le BLE semblait le plus adapté dans le cadre de notre projet.&lt;br /&gt;
&lt;br /&gt;
= Déroulement du projet =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 22/09 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Réunion avec le tuteur entreprise dans l’entrepôt &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Nous avons observé en situation le problème et discuté des besoins, des moyens déjà utilisables. Il nous faudra prendre en compte plusieurs paramètres dans notre réflexion tels que le système de stockage et d'adressages des palettes, sens de circulation des caristes, superficie des zones à desservir, durée de livraison.&lt;br /&gt;
Nous avons suggéré des étapes de validation intermédiaire du système par les futurs utilisateurs et pour cela nous rencontrerons le chef d'équipe des magasiniers lorsque qu'une version sera assez développée.&lt;br /&gt;
&lt;br /&gt;
Nous avons défini avec le tuteur les premières deadlines du projet, voici la timeline récapitulative:&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Timeline_1.jpg||center|1000px]]&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Compte Rendu &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Nous avons rédigé un compte rendu de la première réunion détaillant les spécifications des versions des livrables, des schémas et les sujets abordés lors de la rencontre :&lt;br /&gt;
&lt;br /&gt;
'''Compte Rendu réunion du 25/09/2014 :''' [[Fichier:Compte_Rendu_25_09.pdf]]&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 29/09 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Découverte des Google Glass &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
*Prise en main des Google Glass. &lt;br /&gt;
*Installation d'applications (.apk) grand public. Nous avons utilisé l'outil Android Debug Bridge(adb). Se mettre à la place d'un utilisateur.&lt;br /&gt;
*L'une des deux lunettes qui serait retenue imposera forcément le développement d'une application android (ou d'une technologie trés proche d'android, pour les Google Glass, se basant sur le Glass Development Kit qui est un add-on au SDK classique d'android). Nous avons donc téléchargé les packages nécessaires pour commencer à développer. &lt;br /&gt;
** Nous commençons à nous former sur les technologies android :développement d'applications minimaliste.&lt;br /&gt;
** Installation de nos premières apk minimalistes pour Android.&lt;br /&gt;
** Installation d'une application minimaliste sur la Google Glass.&lt;br /&gt;
&lt;br /&gt;
Voici un comparatif réalisé entre les lunettes ORA et les Google Glass.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Différences Google Glass/ORA &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!   !! Google Glass !! ORA &lt;br /&gt;
|-&lt;br /&gt;
|Connectique&lt;br /&gt;
|Compatible BLE (à partir de la XE 16 KitKat Update), Wifi &lt;br /&gt;
|Compatible BLE, Wifi&lt;br /&gt;
|-&lt;br /&gt;
|Autonomie en utilisation normale&lt;br /&gt;
|de 1h à 2h &lt;br /&gt;
|de 4h à 8h&lt;br /&gt;
|-&lt;br /&gt;
|Son&lt;br /&gt;
|Conductivité Cranienne&lt;br /&gt;
|Prise jack&lt;br /&gt;
|-&lt;br /&gt;
|Interface&lt;br /&gt;
|Ecran occupant une faible superficie dans le champ de vision &lt;br /&gt;
|Ecran 2 positions (moyennes et basses), plus étendu permettant une réalité augmentée &lt;br /&gt;
|-&lt;br /&gt;
|Système d'exploitation&lt;br /&gt;
|Android 4.4&lt;br /&gt;
|Android 4.2.2&lt;br /&gt;
|-&lt;br /&gt;
|Calculs&lt;br /&gt;
|CPU &amp;amp; GPU&lt;br /&gt;
|CPU &amp;amp; GPU&lt;br /&gt;
|-&lt;br /&gt;
|Prix&lt;br /&gt;
|1500$ &lt;br /&gt;
|949$&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 06/10 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Deuxième rendez-vous avec le tuteur entreprise &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Nous avons fait part de notre avancée en matière de prise en main et des problèmes rencontrés en matière de développement.&lt;br /&gt;
Les lunettes ORA sont commandées elles arrivent d'ici la fin octobre.&lt;br /&gt;
&lt;br /&gt;
La première version V1 de l'application pour Google Glass à livrer pour la mi-novembre est fixée.&lt;br /&gt;
&lt;br /&gt;
En partant d'une position connue (en dur dans l'application) dans l'entrepôt, elle indiquera à un utilisateur les emplacements libres les plus proches.&lt;br /&gt;
&lt;br /&gt;
L'état d'occupation des emplacements sera consulté et stocké dans l'application. Il n'y aura donc pas de gestion des conflits. Le sens de circulation dans l'entrepôt sera pris en compte.&lt;br /&gt;
Une communication avec la base de donnée de l'entrepôt n'est pour le moment pas d'actualité, cela nécessiterait des développements en amont.&lt;br /&gt;
La géolocalisation n'est pas au goût du jour non plus. L'adressage des emplacements dans l'entrepôt est intuitif, il est donc facile pour un magasinier de &lt;br /&gt;
se rendre à un emplacement en connaissant l'adresse.&lt;br /&gt;
&lt;br /&gt;
Pour l'IHM, nous nous inspirerons des applications pour Google Glass (les Glasswares) de type GPS.&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Premiers programmes sur Google Glass &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Pour nous familiariser avec la programmation sur ce genre d'appareil nous avons tous deux décidé de suivre en premier le tutoriel Android d'un site spécialisé. Cela afin de mieux comprendre le système Android, avec les concepts d'activités, de view etc.&lt;br /&gt;
Dans un deuxième temps nous avons choisi de suivre plusieurs tutoriels nous expliquant la prise en main basique des lunettes afin de saisir les particularités de leur programmation.&lt;br /&gt;
&lt;br /&gt;
Le plus dur étant finalement de comprendre les liens entre tous les fichiers du projets, les problèmes de drivers et d'upload simple que nous avons rencontrés et l’exécution du programme sur les lunettes. Des choses que nous arrivons maintenant à maitriser mais qui était floues à l'origine.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 13/10 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Programmation et gestion des interactions &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Durant cette semaine nous avons commencé a vraiment toucher aux fonctionnalités des Glass. Pour rester en main libre, nous avons fait des recherches et commencé à programmer de la reconnaissance vocale. Nous avons ainsi crée un système de navigation basique par commande vocale dans différents menus. Pour un accès rapide à l'application et toujours dans la même optique nous avons réussi à inclure le lancement de notre logiciel à partir du &amp;quot;Ok Glass&amp;quot; menu qui est le menu de lancement d'application par commande vocale des Google Glass. Voici un aperçu du résultat:&lt;br /&gt;
[[Fichier:V0_menu.png|1000px|center]]&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Analyse et évaluation du rendu &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Le début de la prise en main des fonctionnalités des Google Glass n'a pas été facile étant donné que la plupart des fonctionnalités sont propres à ce genre d'appareil. De plus elles nécessitent des techniques spéciales de programmation qui ne sont pas toujours très utilisées donc il est parfois difficile de trouver des exemples sur internet.&lt;br /&gt;
Néanmoins après l'implémentation de ces fonctionnalités nous avons pu rencontrer quelques difficultés de reconnaissance. En effet, les Google Glass possèdent un dictionnaire de mots/phrases pour la reconnaissance vocale mais elles nous permettent aussi d'écrire n'importe quelle phrase dans le mode développeur. Les phrases du dictionnaires ne posent aucun problème mais les phrases que nous écrivons sont parfois dures à reconnaitre. La reconnaissance de lettre seule ou de certains numéros est par exemple quasi impossible ou très aléatoire.&lt;br /&gt;
Le système de vu est quant à lui plutôt facile à prendre en main et intuitif dans l'utilisation.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 20/10 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Premiere structure de donnée &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Nous avons opté pour une structure de donnée récursive. Une Cellule, contenant des Allées, qui contiennent des Baies, contenant des Rangées, contenant des Emplacements.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Structure_export_resized.png|750px|center]]&lt;br /&gt;
Nous avons conçu cette structure de donnée pour qu'elle génère, dans un premier temps &amp;quot;en dur&amp;quot;, une cellule contenant des emplacements automatiquement adressés à la manière de ceux présent dans l'entrepôt. Ces adresses sont de la forme &amp;quot;D61A514&amp;quot; traduisez &amp;quot; Cellule 6 Allée 1A Baie 5 Rang 1 Niveau 4&amp;quot;.&lt;br /&gt;
Cette structure prend on compte le sens de circulation dans l'entrepôt.&lt;br /&gt;
Lors de futures interactions avec une base de donnée, cette structure serait sujette à évolution par une modification des méthodes de génération/modification du statut des adresses en fonction de cette base de donnée. Mais celle-ci constitue essentiellement une base pour appréhender plus pratiquement les problématiques de recherches de l'emplacement le plus proche.&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Prise en main de l'interface &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Nous avons déjà abordé les layouts java en TP donc il a été assez facile de commencer à faire des interfaces graphiques simples. Nous avons construit une interface graphique simple pour de faire une démonstration du programme aux tuteurs entreprise afin qu'ils comprennent bien le fonctionnement de notre algorithme.&lt;br /&gt;
L'interface graphique finale du programme sera très sobre afin de ne pas donner trop gêner le magasinier dans sa tâche.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 27/10 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Chemin optimal : Parcours intelligent Vs Sélection intelligente &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Un premier algorithme de recherche de l'emplacement le plus proche a été développé, celui-ci ne prend en compte qu'un seul scénario. &lt;br /&gt;
Celui de la position de départ (quai de déchargement où reviendra constamment le magasinier aprés chaque livraison) correspondante à la première allée de l'entrepôt, et en prenant en compte le sens de circulation. &lt;br /&gt;
A partir de ce moment, nous avons dégager deux grandes manières d'appréhender le problème.&lt;br /&gt;
&lt;br /&gt;
* Un parcours intelligent de la structure de donnée. C'est à dire parcourir les emplacements les plus proches, et choisir le premier emplacement libre. Une solution complexe à réaliser sur le plan algorithmique. En tenant compte du sens de circulation, il apparait que l'emplacement libre &amp;quot;leplusproche&amp;quot; (à vol d'oiseau) trouvé le plus tôt, ne correspondrait pas forcément à l'emplacement le plus proche compte tenu du chemin emprunté par un magasinier. Et c'est plutôt l'intérêt de cette algorithme.(Sauf dans l'unique cas où l'emplacement libre se trouve directement dans l'allée faisant face à la position de départ du magasinier, et le sens de circulation lui permet directement de se rendre à l'emplacement sans détour).&lt;br /&gt;
&lt;br /&gt;
* Une sélection intelligente parmi les emplacements libres. Leurs adresses renseignent à quelles allées, les emplacements libres appartiennent, donc renseignent sur le sens de circulation. A partir de la position de départ du magasinier et de l'ensemble des emplacements libres, on peut calculer la distance nécessaire à celui-ci pour les atteindre. Pour ainsi choisir l'adresse pour laquelle la distance est minimale.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 3/11 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Chemin optimal : sélection intelligente des adresses &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Nous avons écrit une premiere méthode de détermination. &lt;br /&gt;
On choisit l'emplacement, parmi tous ceux qui sont libres, pour lequel la distance de parcours est minimale entre le départ et celui-ci. &lt;br /&gt;
Ici l'unité de distance est la baie. La simplicité de l'algorithme réside dans le fait que le magasinier ne transporte qu'une seule caisse à la fois et repars toujours au même point de départ.&lt;br /&gt;
&lt;br /&gt;
Ci dessous un plan de l'entrepôt.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:schema_entrepot.png|750px|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Si on se place à l'entrée de l'Allée A :&lt;br /&gt;
&lt;br /&gt;
**le déplacement jusqu'à A4 (sens de circulation direct) est de : &lt;br /&gt;
&lt;br /&gt;
                        Y baies - (indice de la baie/2 +indice de la baie % 2) &lt;br /&gt;
&lt;br /&gt;
**le déplacement jusqu'à B1 (sens de circulation indirect) est de : &lt;br /&gt;
&lt;br /&gt;
                        Y baies + différence entre l'allée A et B donc X baies + indice de la baie/2 +indice de la baie % 2&lt;br /&gt;
**le déplacement jusqu'à C1 (sens de circulation direct) est de : &lt;br /&gt;
                      &lt;br /&gt;
                        Y baies - (indice de la baie/2 +indice de la baie % 2)+différence entre l'allée A et C donc 2*X baies.&lt;br /&gt;
&lt;br /&gt;
*Si on se place à l'entrée de l'Allée B :&lt;br /&gt;
**le déplacement jusqu'à B1 (sens de circulation indirect avec contournement) est de : &lt;br /&gt;
                        &lt;br /&gt;
                        2*X baies + Y baies + 2*X baies + (indice de la baie/2 +indice de la baie % 2)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On peut généraliser l'ensemble de ces situations de déplacement avec l'algorithme suivant :&lt;br /&gt;
&lt;br /&gt;
Pseudo code&lt;br /&gt;
&lt;br /&gt;
  Leplusproche( Allee depart )&lt;br /&gt;
    distance_la_plus_petite = valeurMAX&lt;br /&gt;
      le_plus_proche=&amp;quot;&amp;quot;&lt;br /&gt;
         Pour chaque Allee de Cellule&lt;br /&gt;
           sens=Allee.sens&lt;br /&gt;
           Pour chaque Baie de Allee&lt;br /&gt;
             Pour chaque Rang de Allee&lt;br /&gt;
 	       Pour chaque Emplacement de Rang&lt;br /&gt;
                Si Emplacement estlibre &lt;br /&gt;
                &lt;br /&gt;
                indice_baie = selection_indice_baie(Emplacement.adresse)&lt;br /&gt;
   		 allee_cible = selection_indice_allee(Emplacement.adresse)  &lt;br /&gt;
   		 difference_allee = valeur_absolue(depart -cible) &lt;br /&gt;
                    Si difference_allee==0 et sens.estindirect&lt;br /&gt;
                      //sens indirect +contournement&lt;br /&gt;
                      distance_actuelle=(indice_baie/2)+indice_baie%2+(2*(difference_allee))+4*X+Y			&lt;br /&gt;
                    Sinon	&lt;br /&gt;
                        Si sens estdirect&lt;br /&gt;
                          //sens direct &lt;br /&gt;
                          distance_actuelle=(Y-((indice_baie/2)+indice_baie%2))+2*difference_allee&lt;br /&gt;
                        Sinon&lt;br /&gt;
                          //sens indirect mais pas de contournement&lt;br /&gt;
                          distance_actuelle=((indice_baie/2)+indice_baie%2)+2*difference_allee+Y&lt;br /&gt;
                        Finsi	&lt;br /&gt;
                    Finsi	&lt;br /&gt;
                    Si distance_actuelle &amp;lt; distance_la_plus_petite&lt;br /&gt;
                      le_plus_proche=Emplacement.adresse&lt;br /&gt;
                      distance_la_plus_petite=distance_actuelle&lt;br /&gt;
                    Finsi&lt;br /&gt;
                Finsi  &lt;br /&gt;
            Finpour&lt;br /&gt;
          Finpour&lt;br /&gt;
        Finpour&lt;br /&gt;
      Finpour&lt;br /&gt;
    retourne le_plus_proche&lt;br /&gt;
  Finleplusproche&lt;br /&gt;
&lt;br /&gt;
Cet algorithme nous donne satisfaction (dans le cadre de la V1)&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 10/11 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Programmation et gestion des interactions &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Aprés quelques difficultés vis à vis de la gestion des menus vocaux sur les lunettes qui ne fonctionnent pas de la même manière que les menus classiques sous android, nous avons étoffé les interactions possible avec l'application des google glass. (Nous souhaitions inflater un deuxième menu pour interagir de manière plus contextuelle, il fallait le faire dans la méthode onCreatePanelMenu dont l'appel serait forcé avec getWindow().invalidatePanelMenu(WindowUtils.FEATURE_VOICE_COMMANDS) plutôt que dans onPrepareOptionsMenu forcée par invalidateOptionMenu()...) &lt;br /&gt;
&lt;br /&gt;
schéma d'utilisation...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Proposition projet affichage télévision &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Tele_concept.png|200px|thumb|right]]&lt;br /&gt;
&lt;br /&gt;
Notre tuteur nous a contacté pour nous proposer d'étudier un second projet en parallèle au projet initial. Celui consistant à gérer l'affichage d'information personnalisé d'un magasinier passant à proximité d'un écran de télévision. Nous devons effectuer un Proof Of Concept (POC) et réfléchir à ce sujet.&lt;br /&gt;
L'utilisation du BLE est donc de nouveau d'actualité, car je rappel que sont utilité était discutable dans une réalité métier du projet initial. La question étant plus de savoir comment gérer le système du coté du téléviseur.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Le concept de base étant de :&lt;br /&gt;
* Fournir une beacon aux magasiniers de l'entrepôt.&lt;br /&gt;
* Installer une télévision sur un centre de vie dans l'entrepôt avec une beacon&lt;br /&gt;
* Pousser du contenu personnalisé au magasinier qui se présente devant la tv dans son centre de vie&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 17/11 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Brainstorming à Polytech &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Dans la cadre du POC sur l'affichage personnalisé sur une télévision, nous avons profité d'un exercice de management pour faire participer la classe à notre projet. Grâce à cette intervention nous avons pu confirmer nos idées sur les technologies à utiliser. Mais nous avons surtout eu une multitude de propositions sur les données à afficher sur l'écran.&lt;br /&gt;
&lt;br /&gt;
Pour plus détails, le compte rendu est disponible à ce lien:&lt;br /&gt;
&lt;br /&gt;
'''Compte Rendu Brainstorming 17/11/2014 :''' [[Fichier:Compte_Rendu_POC_17_11.pdf]]&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Entretien avec notre tuteur entreprise &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Durant cet entretien, nous avons livré la première version de l'application et nous avons discuté de la suite du projet.&lt;br /&gt;
Ci joint le Compte Rendu.&lt;br /&gt;
&lt;br /&gt;
'''Compte Rendu  19/11/2014 :''' [[Fichier:Compte_Rendu_19_11.pdf]]&lt;br /&gt;
&lt;br /&gt;
De cette réunion, les points suivants en sont sortis:&lt;br /&gt;
&lt;br /&gt;
*Une reconnaissance vocale en langue française sur les lunettes serait plus intéressante pour les employés (une piste serait d’utiliser l’outil pocketsphinx-  android).&lt;br /&gt;
*Par rapport à l'IHM, il faudrait mettre l’affichage au premier plan sur les Google Glass pour une démo auprés des parties prenantes du projet.&lt;br /&gt;
*Choisir une architecture pour l’affichage d’information personnalisées.&lt;br /&gt;
**La télévision connectée à une raspberry qui communiquerait via un dongle BLE avec le beacon d’un magasinier, ce qui permettrait l’identification de celui-ci prés de la Télévision, et déclencherait un processus d’échange d’information. (Communication via le protocole Bluetooh, wifi entre les lunettes et la Raspberry  ou communication avec la Raspberry avec la Base de Donnée sur le réseau de l’entreprise)&lt;br /&gt;
**Une télévision connectée en continu à un site internet via un dongle HDMI.&lt;br /&gt;
**Une tablette android géante supportant le BLE, ou utilisant un dongle BLE.&lt;br /&gt;
* Réaliser le portage de l’application sur le prototype des lunettes ORA.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 24/11 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Reconnaissance vocale en Français &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Pocket Sphinx Android est une librairie permettant de faire de la reconnaissance vocale d'un langage donné sur un système android en offline.&lt;br /&gt;
Pour supporter une langue, elle nécessite: &lt;br /&gt;
*un modèle acoustique (ensemble d'informations pour le traitement sonore)&lt;br /&gt;
*un dictionnaire associant les mots et leur phonèmes&lt;br /&gt;
*une grammaire, c'est un fichier définissant comment seraient articulé les mots à reconnaître et limitant les possibilités de langage).&lt;br /&gt;
&lt;br /&gt;
La grammaire étant un automate. Voici un exemple de la grammaire menu.gram pour la reconnaissance de la porte de déchargement.&lt;br /&gt;
[[Fichier:Arborescence_pocket_sphinx.png|200px|thumb|right|PocketSphinx dans un projet Android]]&lt;br /&gt;
&lt;br /&gt;
  #JSGF V1.0;&lt;br /&gt;
  grammar menu;&lt;br /&gt;
  &amp;lt;porte&amp;gt; = porte a |&lt;br /&gt;
            porte b |&lt;br /&gt;
            porte c |&lt;br /&gt;
            porte d |&lt;br /&gt;
            porte e |&lt;br /&gt;
            porte f |&lt;br /&gt;
            porte g |&lt;br /&gt;
            porte h |&lt;br /&gt;
            porte i |&lt;br /&gt;
            porte j ;&lt;br /&gt;
  public &amp;lt;porte&amp;gt; = &amp;lt;porte&amp;gt;+;&lt;br /&gt;
&lt;br /&gt;
Un extrait du dictionnaire french_letter.dic associé avec les phonemes&lt;br /&gt;
&lt;br /&gt;
  a aa &amp;lt;-- juste la lettre a et son phoneme &lt;br /&gt;
  autre au tt rr&lt;br /&gt;
  autre(2) au tt rr ee &lt;br /&gt;
  b bb &lt;br /&gt;
  c ss &lt;br /&gt;
  d dd ei d(2) dd ait &lt;br /&gt;
  e eu e(2) eu zz &lt;br /&gt;
  f ai ff &lt;br /&gt;
  g jj ei g(2) gg ai &lt;br /&gt;
  h aa ch  &lt;br /&gt;
  i ii &lt;br /&gt;
  j jj yy j(2) jj ii&lt;br /&gt;
  porte pp oo rr tt&lt;br /&gt;
  porte(2) pp oo rr tt ee&lt;br /&gt;
  portes(2) pp oo rr tt ee&lt;br /&gt;
  portes(3) pp oo rr tt ee zz&lt;br /&gt;
  portes(4) pp oo rr tt zz&lt;br /&gt;
&lt;br /&gt;
Le modèle acoustique que nous avons téléchargé étant inclu dans lium_french_f0&lt;br /&gt;
&lt;br /&gt;
Nous avons testé la reconnaissance vocale sur un téléphone android, les mots sont, dans la majorité des cas, bien reconnus.&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Comparaison architectures projet TV &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Au niveau de l’architecture nous avons établi plusieurs propositions après la réunion avec notre tuteur:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour une Raspberry Pi avec un dongle BLE :&lt;br /&gt;
* Installation OS Linux sur la Raspberry&lt;br /&gt;
* Librairie BlueZ pour l’utilisation du BLE (tests rapides effectués sur Linux avec le Dongle)&lt;br /&gt;
* Interface graphique avec une bibliothèque comme Qt (ou encore SDL…)&lt;br /&gt;
* Prix : Rpi = 26€ (chez RadioSpare), Dongle = 10€, TV = à partir de 358€ pour 117cm, + Connectique vidéo. Total = 394€&lt;br /&gt;
&lt;br /&gt;
Pour un écran ViewSonic VSD231 :&lt;br /&gt;
* Possède une API Bluetooth classic + API BLE&lt;br /&gt;
* Interface graphique Android (View, Layout...)&lt;br /&gt;
* Prix : écran ViewSonic VSD231 = 558 € pour 58 cm (chez ViewSonic).&lt;br /&gt;
&lt;br /&gt;
Récupération d’informations :&lt;br /&gt;
* Si données sur les lunettes : Bluetooth ou Wifi.&lt;br /&gt;
* Si données sur serveur : Ethernet ou Wifi.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Vu les propositions possibles nous pensons que la première proposition permettra une meilleure souplesse dans le développement mais serait un peu plus compliquée. Mais nous la trouvons aussi plus intéressante à faire de plus elle est moins coûteuse et permet d'utiliser un écran plus grand. Le développement sur tablette serait sûrement plus rapide à faire en contrepartie.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 01/12 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Conférence GlassCamp à l'Imaginarium &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
GlassCamp est une association qui essaye de répandre l'utilisation de toute les Smart Glass en général. Elle propose de multiples conférences dans lesquelles ils essayent de montrer au public l’intérêt de développer sur ces appareils. Dans le cadre de notre projet, notre tuteur nous a proposé de participer à cette présentation afin de mieux s’approprier le sujet. La conférence a eu lieu le 4 décembre à l'Imaginarium: une grande partie était plutôt tournée vers la présentation mais nous avons apprîs plusieurs choses intéressantes qui sont décrites dans le compte rendu.&lt;br /&gt;
&lt;br /&gt;
'''Compte Rendu Conférence 04/12/2014 :''' [[Fichier:Compte_Rendu_Conf_GlassCamp.pdf]]&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaines du 08/12 et 15/12 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Reconnaissance vocale en Français &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Nous avons avancé sur la version française de l'application. A la manière du menu vocal des google glass, nous avons utilisé un délimiteur&lt;br /&gt;
&amp;quot;ok lunettes&amp;quot; pour démarrer l'interaction avec l'application, afin que les discussions et bruits ambiants n'interfèrent pas sur l'utilisation de celle-ci.&lt;br /&gt;
Voici le scénario d'utilisation de la nouvelle version de l'application en Français.&lt;br /&gt;
[[Fichier:Schema_fr.png|700px|center]]&lt;br /&gt;
&lt;br /&gt;
Sous pocketsphinx, le délimiteur n'apparait pas dans une grammaire. La grammaire permet de prédestiner l'application à choisir entre deux mots. &lt;br /&gt;
Dans notre application, le moteur de reconnaissance vocale choisi la distance la plus courte, séparant le mot prononcé par l'utilisateur et ceux&lt;br /&gt;
qu'il est possible d'entendre. Ainsi entre &amp;quot;oui&amp;quot; et &amp;quot;non&amp;quot;, l'application choisira forcément l'un des deux, même si l'utilisateur dit &amp;quot;bonjour&amp;quot;&lt;br /&gt;
&lt;br /&gt;
L'avantage du délimiteur est que sa détection repose sur un seuillage entre ce qui est prononcé et ce qui doit être reconnu, nous pouvons régler ce seuil.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 05/01 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Entretien avec notre tuteur &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Durant cet entretien nous avons défini les évolutions du projet.&lt;br /&gt;
&lt;br /&gt;
'''Compte Rendu de l'entretien du 06/01/2015 :''' [[Fichier:Compte_Rendu_4.pdf]]&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 12/01 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; TV connectée &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Nous avons pris en main la détection des beacons (de la marque Estimote fournis par l'entreprise) dans les systèmes android.&lt;br /&gt;
L'adresse MAC et le RSSI sont accessibles, ce sont les seules informations nécessaires que nous avons besoin en ce qui concerne les beacons.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 19/01 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Interfaces_exemple.png|100px|thumb|right]]&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt;Interface TV &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Nous avons développé plusieurs exemples d'interfaces avec les instructions de notre tuteur afin de choisir les meilleurs résultats ensembles. Nous avons défini quelques contraintes pour le design. Elle doit être&lt;br /&gt;
* Simple et intuitive&lt;br /&gt;
* En accord avec les couleurs de l'entreprise&lt;br /&gt;
* Moderne (système de tuile ou autre)&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 26/01 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Entretien avec notre tuteur &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Durant cette entretien nous avons défini plus précisément les objectifs du projet.&lt;br /&gt;
Ci dessous le compte rendu.&lt;br /&gt;
&lt;br /&gt;
'''Compte Rendu de l'entretien du 26/01/2015 :''' [[Fichier:Compte_Rendu_5.pdf]]&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 02/02 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Portage d'une application de SmartPicking sur les Google Glass &amp;lt;/font&amp;gt;===&lt;/div&gt;</summary>
		<author><name>Jgondry</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=P22_Google_Glass_en_logistique&amp;diff=16701</id>
		<title>P22 Google Glass en logistique</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=P22_Google_Glass_en_logistique&amp;diff=16701"/>
				<updated>2015-02-11T14:12:25Z</updated>
		
		<summary type="html">&lt;p&gt;Jgondry : /* Déroulement du projet */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Introduction =&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Description du sujet &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
Notre projet vise à l’optimisation du stockage et de l’adressage des palettes dans un entrepôt. En effet, lors du déchargement d’un camion, chercher un emplacement libre pour les palettes dans un entrepôt occupant une grande superficie fait perdre du temps et donc de la productivité dans le stockage. Sachant qu’un cariste perd un temps non négligeable à la recherche d’emplacement disponible, optimiser ce temps de recherche permettrait de gagner du temps sur cette opération.&lt;br /&gt;
Développer un prototype permettrait de rendre compte des moyens existants qui pourrait être mis en place dans une solution métier.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Analyse du sujet &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Google_glass.png|200px|thumb|right|Paire de Google Glass]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Optinvent_ora.png|200px|thumb|right|Paire de ORA d'Optivent]]&lt;br /&gt;
&lt;br /&gt;
Notre projet consiste à fluidifier le déchargement en indiquant au cariste l’emplacement libre le plus proche. Pour ne pas gêner le travail des employés, un dispositif main-libre comme une Google Glass semble adapté. Ce projet soulève plusieurs problématiques : développer une interface homme-machine apportant une information pertinente pour l’utilisateur sans pour autant être perturbante. &lt;br /&gt;
&lt;br /&gt;
L’idée serait de réaliser dans les grandes lignes un système similaire à ce scénario d’utilisation :&lt;br /&gt;
http://n.mynews.ly/!lB.Bs4fw&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Moyen d’affichage de l’Informations pertinentes'''&lt;br /&gt;
&lt;br /&gt;
Les Google Glass ne sont pas les seules smart glasses sur le marché. Il nous faudra choisir les appareils les plus adaptés. L’information pertinente pourrait être une direction à suivre dans l’entrepôt ou simplement un numéro d’emplacement (adressage intuitif de l’entrepôt). &lt;br /&gt;
&lt;br /&gt;
'''Géolocalisation'''&lt;br /&gt;
&lt;br /&gt;
Dans le cas d’une direction à suivre se pose le problème de la géolocalisation indoor dont l’utilité et la faisabilité seront discutés au fil des réunions avec l’entreprise. &lt;br /&gt;
&lt;br /&gt;
'''Adressage / flashage'''&lt;br /&gt;
&lt;br /&gt;
En ce qui concerne l’adressage des palettes en entrepôt, la solution existante repose sur un flashage des codes barres associés à l’emplacement venant d’être occupé. Une étude de faisabilité/utilité sera aussi faite sur une solution de remplacement grâce aux possibilités qu’offrent les smart glasses.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Cahier des charges &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
En partant de l'analyse du sujet et des discussion avec notre tuteur, nous avons définie un cahier des charges plus précis des tâches à accomplir:&lt;br /&gt;
&lt;br /&gt;
* '''Développer un système embarqué sur une paire de lunette Smart Glass'''&lt;br /&gt;
** Comparer les différentes offres en matière de Smart Glass notamment Google Glass &amp;amp; ORA de Optinvent&lt;br /&gt;
** Concevoir une interface homme-machine non perturbante pour l'utilisateur.&lt;br /&gt;
* '''Etudier la nécessité d'utiliser une géolocalisation en entrepôt et l'implémenter si besoin'''&lt;br /&gt;
** Via RSSI (Wifi, Bluetooh Low Energy ...)&lt;br /&gt;
** Via traitement d'images (reconnaissance de la signalétique en entrepôt)&lt;br /&gt;
* '''Etudier les possibilités d'optimisation du système d'adressage des palettes'''&lt;br /&gt;
** Implémenter la reconnaissance de code barre&lt;br /&gt;
** La tester en réalité métier (utilité ajoutée, habitude des magasiniers, vitesse de traitement...)&lt;br /&gt;
&lt;br /&gt;
Le cahier des charges est encore en cours de construction&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Matériel utilisé &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; SmartGlass &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Lors de la réunion nous avons discuté des technologies à utiliser dans le projet, et plus particulièrement des différentes SmartGlass. En effet, il existe une multitude de sociétés qui développe ce genre de lunettes. Nous commencerons à utiliser les Google Glass étant donné que notre tuteur en a déjà commandé puis nous développerons sur les lunettes ORA de Optivent qui seront livrées fin octobre. Nous devrons donc faire un comparatif entre ces deux SmartGlass puis étudier les autres appareils disponibles sur le marché.&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Localisation &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
L'utilisation de la géolocalisation dans le projet est à débattre. Mais des tests seront probablement mis en place. L'entreprise possède quelque iBeacons BLE Estimote dans ses bureaux d'innovations que nous pourrons emprunter.&lt;br /&gt;
Dans le cas où leur gain d'informations serait utile il nous faudra comparer les modèles disponibles. Choisir un nombre de module et des emplacements stratégiques dans l'entrepôt afin d'avoir une localisation assez précise pour l'application.&lt;br /&gt;
&lt;br /&gt;
L'utilisation d'autres technologies de géolocalisation a été discuté comme le Wifi ou le XBee mais le BLE semblait le plus adapté dans le cadre de notre projet.&lt;br /&gt;
&lt;br /&gt;
= Déroulement du projet =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 22/09 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Réunion avec le tuteur entreprise dans l’entrepôt &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Nous avons observé en situation le problème et discuté des besoins, des moyens déjà utilisables. Il nous faudra prendre en compte plusieurs paramètres dans notre réflexion tels que le système de stockage et d'adressages des palettes, sens de circulation des caristes, superficie des zones à desservir, durée de livraison.&lt;br /&gt;
Nous avons suggéré des étapes de validation intermédiaire du système par les futurs utilisateurs et pour cela nous rencontrerons le chef d'équipe des magasiniers lorsque qu'une version sera assez développée.&lt;br /&gt;
&lt;br /&gt;
Nous avons défini avec le tuteur les premières deadlines du projet, voici la timeline récapitulative:&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Timeline_1.jpg||center|1000px]]&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Compte Rendu &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Nous avons rédigé un compte rendu de la première réunion détaillant les spécifications des versions des livrables, des schémas et les sujets abordés lors de la rencontre :&lt;br /&gt;
&lt;br /&gt;
'''Compte Rendu réunion du 25/09/2014 :''' [[Fichier:Compte_Rendu_25_09.pdf]]&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 29/09 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Découverte des Google Glass &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
*Prise en main des Google Glass. &lt;br /&gt;
*Installation d'applications (.apk) grand public. Nous avons utilisé l'outil Android Debug Bridge(adb). Se mettre à la place d'un utilisateur.&lt;br /&gt;
*L'une des deux lunettes qui serait retenue imposera forcément le développement d'une application android (ou d'une technologie trés proche d'android, pour les Google Glass, se basant sur le Glass Development Kit qui est un add-on au SDK classique d'android). Nous avons donc téléchargé les packages nécessaires pour commencer à développer. &lt;br /&gt;
** Nous commençons à nous former sur les technologies android :développement d'applications minimaliste.&lt;br /&gt;
** Installation de nos premières apk minimalistes pour Android.&lt;br /&gt;
** Installation d'une application minimaliste sur la Google Glass.&lt;br /&gt;
&lt;br /&gt;
Voici un comparatif réalisé entre les lunettes ORA et les Google Glass.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Différences Google Glass/ORA &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!   !! Google Glass !! ORA &lt;br /&gt;
|-&lt;br /&gt;
|Connectique&lt;br /&gt;
|Compatible BLE (à partir de la XE 16 KitKat Update), Wifi &lt;br /&gt;
|Compatible BLE, Wifi&lt;br /&gt;
|-&lt;br /&gt;
|Autonomie en utilisation normale&lt;br /&gt;
|de 1h à 2h &lt;br /&gt;
|de 4h à 8h&lt;br /&gt;
|-&lt;br /&gt;
|Son&lt;br /&gt;
|Conductivité Cranienne&lt;br /&gt;
|Prise jack&lt;br /&gt;
|-&lt;br /&gt;
|Interface&lt;br /&gt;
|Ecran occupant une faible superficie dans le champ de vision &lt;br /&gt;
|Ecran 2 positions (moyennes et basses), plus étendu permettant une réalité augmentée &lt;br /&gt;
|-&lt;br /&gt;
|Système d'exploitation&lt;br /&gt;
|Android 4.4&lt;br /&gt;
|Android 4.2.2&lt;br /&gt;
|-&lt;br /&gt;
|Calculs&lt;br /&gt;
|CPU &amp;amp; GPU&lt;br /&gt;
|CPU &amp;amp; GPU&lt;br /&gt;
|-&lt;br /&gt;
|Prix&lt;br /&gt;
|1500$ &lt;br /&gt;
|949$&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 06/10 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Deuxième rendez-vous avec le tuteur entreprise &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Nous avons fait part de notre avancée en matière de prise en main et des problèmes rencontrés en matière de développement.&lt;br /&gt;
Les lunettes ORA sont commandées elles arrivent d'ici la fin octobre.&lt;br /&gt;
&lt;br /&gt;
La première version V1 de l'application pour Google Glass à livrer pour la mi-novembre est fixée.&lt;br /&gt;
&lt;br /&gt;
En partant d'une position connue (en dur dans l'application) dans l'entrepôt, elle indiquera à un utilisateur les emplacements libres les plus proches.&lt;br /&gt;
&lt;br /&gt;
L'état d'occupation des emplacements sera consulté et stocké dans l'application. Il n'y aura donc pas de gestion des conflits. Le sens de circulation dans l'entrepôt sera pris en compte.&lt;br /&gt;
Une communication avec la base de donnée de l'entrepôt n'est pour le moment pas d'actualité, cela nécessiterait des développements en amont.&lt;br /&gt;
La géolocalisation n'est pas au goût du jour non plus. L'adressage des emplacements dans l'entrepôt est intuitif, il est donc facile pour un magasinier de &lt;br /&gt;
se rendre à un emplacement en connaissant l'adresse.&lt;br /&gt;
&lt;br /&gt;
Pour l'IHM, nous nous inspirerons des applications pour Google Glass (les Glasswares) de type GPS.&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Premiers programmes sur Google Glass &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Pour nous familiariser avec la programmation sur ce genre d'appareil nous avons tous deux décidé de suivre en premier le tutoriel Android d'un site spécialisé. Cela afin de mieux comprendre le système Android, avec les concepts d'activités, de view etc.&lt;br /&gt;
Dans un deuxième temps nous avons choisi de suivre plusieurs tutoriels nous expliquant la prise en main basique des lunettes afin de saisir les particularités de leur programmation.&lt;br /&gt;
&lt;br /&gt;
Le plus dur étant finalement de comprendre les liens entre tous les fichiers du projets, les problèmes de drivers et d'upload simple que nous avons rencontrés et l’exécution du programme sur les lunettes. Des choses que nous arrivons maintenant à maitriser mais qui était floues à l'origine.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 13/10 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Programmation et gestion des interactions &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Durant cette semaine nous avons commencé a vraiment toucher aux fonctionnalités des Glass. Pour rester en main libre, nous avons fait des recherches et commencé à programmer de la reconnaissance vocale. Nous avons ainsi crée un système de navigation basique par commande vocale dans différents menus. Pour un accès rapide à l'application et toujours dans la même optique nous avons réussi à inclure le lancement de notre logiciel à partir du &amp;quot;Ok Glass&amp;quot; menu qui est le menu de lancement d'application par commande vocale des Google Glass. Voici un aperçu du résultat:&lt;br /&gt;
[[Fichier:V0_menu.png|1000px|center]]&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Analyse et évaluation du rendu &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Le début de la prise en main des fonctionnalités des Google Glass n'a pas été facile étant donné que la plupart des fonctionnalités sont propres à ce genre d'appareil. De plus elles nécessitent des techniques spéciales de programmation qui ne sont pas toujours très utilisées donc il est parfois difficile de trouver des exemples sur internet.&lt;br /&gt;
Néanmoins après l'implémentation de ces fonctionnalités nous avons pu rencontrer quelques difficultés de reconnaissance. En effet, les Google Glass possèdent un dictionnaire de mots/phrases pour la reconnaissance vocale mais elles nous permettent aussi d'écrire n'importe quelle phrase dans le mode développeur. Les phrases du dictionnaires ne posent aucun problème mais les phrases que nous écrivons sont parfois dures à reconnaitre. La reconnaissance de lettre seule ou de certains numéros est par exemple quasi impossible ou très aléatoire.&lt;br /&gt;
Le système de vu est quant à lui plutôt facile à prendre en main et intuitif dans l'utilisation.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 20/10 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Premiere structure de donnée &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Nous avons opté pour une structure de donnée récursive. Une Cellule, contenant des Allées, qui contiennent des Baies, contenant des Rangées, contenant des Emplacements.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Structure_export_resized.png|750px|center]]&lt;br /&gt;
Nous avons conçu cette structure de donnée pour qu'elle génère, dans un premier temps &amp;quot;en dur&amp;quot;, une cellule contenant des emplacements automatiquement adressés à la manière de ceux présent dans l'entrepôt. Ces adresses sont de la forme &amp;quot;D61A514&amp;quot; traduisez &amp;quot; Cellule 6 Allée 1A Baie 5 Rang 1 Niveau 4&amp;quot;.&lt;br /&gt;
Cette structure prend on compte le sens de circulation dans l'entrepôt.&lt;br /&gt;
Lors de futures interactions avec une base de donnée, cette structure serait sujette à évolution par une modification des méthodes de génération/modification du statut des adresses en fonction de cette base de donnée. Mais celle-ci constitue essentiellement une base pour appréhender plus pratiquement les problématiques de recherches de l'emplacement le plus proche.&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Prise en main de l'interface &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Nous avons déjà abordé les layouts java en TP donc il a été assez facile de commencer à faire des interfaces graphiques simples. Nous avons construit une interface graphique simple pour de faire une démonstration du programme aux tuteurs entreprise afin qu'ils comprennent bien le fonctionnement de notre algorithme.&lt;br /&gt;
L'interface graphique finale du programme sera très sobre afin de ne pas donner trop gêner le magasinier dans sa tâche.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 27/10 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Chemin optimal : Parcours intelligent Vs Sélection intelligente &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Un premier algorithme de recherche de l'emplacement le plus proche a été développé, celui-ci ne prend en compte qu'un seul scénario. &lt;br /&gt;
Celui de la position de départ (quai de déchargement où reviendra constamment le magasinier aprés chaque livraison) correspondante à la première allée de l'entrepôt, et en prenant en compte le sens de circulation. &lt;br /&gt;
A partir de ce moment, nous avons dégager deux grandes manières d'appréhender le problème.&lt;br /&gt;
&lt;br /&gt;
* Un parcours intelligent de la structure de donnée. C'est à dire parcourir les emplacements les plus proches, et choisir le premier emplacement libre. Une solution complexe à réaliser sur le plan algorithmique. En tenant compte du sens de circulation, il apparait que l'emplacement libre &amp;quot;leplusproche&amp;quot; (à vol d'oiseau) trouvé le plus tôt, ne correspondrait pas forcément à l'emplacement le plus proche compte tenu du chemin emprunté par un magasinier. Et c'est plutôt l'intérêt de cette algorithme.(Sauf dans l'unique cas où l'emplacement libre se trouve directement dans l'allée faisant face à la position de départ du magasinier, et le sens de circulation lui permet directement de se rendre à l'emplacement sans détour).&lt;br /&gt;
&lt;br /&gt;
* Une sélection intelligente parmi les emplacements libres. Leurs adresses renseignent à quelles allées, les emplacements libres appartiennent, donc renseignent sur le sens de circulation. A partir de la position de départ du magasinier et de l'ensemble des emplacements libres, on peut calculer la distance nécessaire à celui-ci pour les atteindre. Pour ainsi choisir l'adresse pour laquelle la distance est minimale.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 3/11 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Chemin optimal : sélection intelligente des adresses &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Nous avons écrit une premiere méthode de détermination. &lt;br /&gt;
On choisit l'emplacement, parmi tous ceux qui sont libres, pour lequel la distance de parcours est minimale entre le départ et celui-ci. &lt;br /&gt;
Ici l'unité de distance est la baie. La simplicité de l'algorithme réside dans le fait que le magasinier ne transporte qu'une seule caisse à la fois et repars toujours au même point de départ.&lt;br /&gt;
&lt;br /&gt;
Ci dessous un plan de l'entrepôt.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:schema_entrepot.png|750px|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Si on se place à l'entrée de l'Allée A :&lt;br /&gt;
&lt;br /&gt;
**le déplacement jusqu'à A4 (sens de circulation direct) est de : &lt;br /&gt;
&lt;br /&gt;
                        Y baies - (indice de la baie/2 +indice de la baie % 2) &lt;br /&gt;
&lt;br /&gt;
**le déplacement jusqu'à B1 (sens de circulation indirect) est de : &lt;br /&gt;
&lt;br /&gt;
                        Y baies + différence entre l'allée A et B donc X baies + indice de la baie/2 +indice de la baie % 2&lt;br /&gt;
**le déplacement jusqu'à C1 (sens de circulation direct) est de : &lt;br /&gt;
                      &lt;br /&gt;
                        Y baies - (indice de la baie/2 +indice de la baie % 2)+différence entre l'allée A et C donc 2*X baies.&lt;br /&gt;
&lt;br /&gt;
*Si on se place à l'entrée de l'Allée B :&lt;br /&gt;
**le déplacement jusqu'à B1 (sens de circulation indirect avec contournement) est de : &lt;br /&gt;
                        &lt;br /&gt;
                        2*X baies + Y baies + 2*X baies + (indice de la baie/2 +indice de la baie % 2)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On peut généraliser l'ensemble de ces situations de déplacement avec l'algorithme suivant :&lt;br /&gt;
&lt;br /&gt;
Pseudo code&lt;br /&gt;
&lt;br /&gt;
  Leplusproche( Allee depart )&lt;br /&gt;
    distance_la_plus_petite = valeurMAX&lt;br /&gt;
      le_plus_proche=&amp;quot;&amp;quot;&lt;br /&gt;
         Pour chaque Allee de Cellule&lt;br /&gt;
           sens=Allee.sens&lt;br /&gt;
           Pour chaque Baie de Allee&lt;br /&gt;
             Pour chaque Rang de Allee&lt;br /&gt;
 	       Pour chaque Emplacement de Rang&lt;br /&gt;
                Si Emplacement estlibre &lt;br /&gt;
                &lt;br /&gt;
                indice_baie = selection_indice_baie(Emplacement.adresse)&lt;br /&gt;
   		 allee_cible = selection_indice_allee(Emplacement.adresse)  &lt;br /&gt;
   		 difference_allee = valeur_absolue(depart -cible) &lt;br /&gt;
                    Si difference_allee==0 et sens.estindirect&lt;br /&gt;
                      //sens indirect +contournement&lt;br /&gt;
                      distance_actuelle=(indice_baie/2)+indice_baie%2+(2*(difference_allee))+4*X+Y			&lt;br /&gt;
                    Sinon	&lt;br /&gt;
                        Si sens estdirect&lt;br /&gt;
                          //sens direct &lt;br /&gt;
                          distance_actuelle=(Y-((indice_baie/2)+indice_baie%2))+2*difference_allee&lt;br /&gt;
                        Sinon&lt;br /&gt;
                          //sens indirect mais pas de contournement&lt;br /&gt;
                          distance_actuelle=((indice_baie/2)+indice_baie%2)+2*difference_allee+Y&lt;br /&gt;
                        Finsi	&lt;br /&gt;
                    Finsi	&lt;br /&gt;
                    Si distance_actuelle &amp;lt; distance_la_plus_petite&lt;br /&gt;
                      le_plus_proche=Emplacement.adresse&lt;br /&gt;
                      distance_la_plus_petite=distance_actuelle&lt;br /&gt;
                    Finsi&lt;br /&gt;
                Finsi  &lt;br /&gt;
            Finpour&lt;br /&gt;
          Finpour&lt;br /&gt;
        Finpour&lt;br /&gt;
      Finpour&lt;br /&gt;
    retourne le_plus_proche&lt;br /&gt;
  Finleplusproche&lt;br /&gt;
&lt;br /&gt;
Cet algorithme nous donne satisfaction (dans le cadre de la V1)&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 10/11 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Programmation et gestion des interactions &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Aprés quelques difficultés vis à vis de la gestion des menus vocaux sur les lunettes qui ne fonctionnent pas de la même manière que les menus classiques sous android, nous avons étoffé les interactions possible avec l'application des google glass. (Nous souhaitions inflater un deuxième menu pour interagir de manière plus contextuelle, il fallait le faire dans la méthode onCreatePanelMenu dont l'appel serait forcé avec getWindow().invalidatePanelMenu(WindowUtils.FEATURE_VOICE_COMMANDS) plutôt que dans onPrepareOptionsMenu forcée par invalidateOptionMenu()...) &lt;br /&gt;
&lt;br /&gt;
schéma d'utilisation...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Proposition projet affichage télévision &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Tele_concept.png|200px|thumb|right]]&lt;br /&gt;
&lt;br /&gt;
Notre tuteur nous a contacté pour nous proposer d'étudier un second projet en parallèle au projet initial. Celui consistant à gérer l'affichage d'information personnalisé d'un magasinier passant à proximité d'un écran de télévision. Nous devons effectuer un Proof Of Concept (POC) et réfléchir à ce sujet.&lt;br /&gt;
L'utilisation du BLE est donc de nouveau d'actualité, car je rappel que sont utilité était discutable dans une réalité métier du projet initial. La question étant plus de savoir comment gérer le système du coté du téléviseur.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Le concept de base étant de :&lt;br /&gt;
* Fournir une beacon aux magasiniers de l'entrepôt.&lt;br /&gt;
* Installer une télévision sur un centre de vie dans l'entrepôt avec une beacon&lt;br /&gt;
* Pousser du contenu personnalisé au magasinier qui se présente devant la tv dans son centre de vie&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 17/11 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Brainstorming à Polytech &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Dans la cadre du POC sur l'affichage personnalisé sur une télévision, nous avons profité d'un exercice de management pour faire participer la classe à notre projet. Grâce à cette intervention nous avons pu confirmer nos idées sur les technologies à utiliser. Mais nous avons surtout eu une multitude de propositions sur les données à afficher sur l'écran.&lt;br /&gt;
&lt;br /&gt;
Pour plus détails, le compte rendu est disponible à ce lien:&lt;br /&gt;
&lt;br /&gt;
'''Compte Rendu Brainstorming 17/11/2014 :''' [[Fichier:Compte_Rendu_POC_17_11.pdf]]&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Entretien avec notre tuteur entreprise &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Durant cet entretien, nous avons livré la première version de l'application et nous avons discuté de la suite du projet.&lt;br /&gt;
Ci joint le Compte Rendu.&lt;br /&gt;
&lt;br /&gt;
'''Compte Rendu  19/11/2014 :''' [[Fichier:Compte_Rendu_19_11.pdf]]&lt;br /&gt;
&lt;br /&gt;
De cette réunion, les points suivants en sont sortis:&lt;br /&gt;
&lt;br /&gt;
*Une reconnaissance vocale en langue française sur les lunettes serait plus intéressante pour les employés (une piste serait d’utiliser l’outil pocketsphinx-  android).&lt;br /&gt;
*Par rapport à l'IHM, il faudrait mettre l’affichage au premier plan sur les Google Glass pour une démo auprés des parties prenantes du projet.&lt;br /&gt;
*Choisir une architecture pour l’affichage d’information personnalisées.&lt;br /&gt;
**La télévision connectée à une raspberry qui communiquerait via un dongle BLE avec le beacon d’un magasinier, ce qui permettrait l’identification de celui-ci prés de la Télévision, et déclencherait un processus d’échange d’information. (Communication via le protocole Bluetooh, wifi entre les lunettes et la Raspberry  ou communication avec la Raspberry avec la Base de Donnée sur le réseau de l’entreprise)&lt;br /&gt;
**Une télévision connectée en continu à un site internet via un dongle HDMI.&lt;br /&gt;
**Une tablette android géante supportant le BLE, ou utilisant un dongle BLE.&lt;br /&gt;
* Réaliser le portage de l’application sur le prototype des lunettes ORA.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 24/11 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Reconnaissance vocale en Français &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Pocket Sphinx Android est une librairie permettant de faire de la reconnaissance vocale d'un langage donné sur un système android en offline.&lt;br /&gt;
Pour supporter une langue, elle nécessite: &lt;br /&gt;
*un modèle acoustique (ensemble d'informations pour le traitement sonore)&lt;br /&gt;
*un dictionnaire associant les mots et leur phonèmes&lt;br /&gt;
*une grammaire, c'est un fichier définissant comment seraient articulé les mots à reconnaître et limitant les possibilités de langage).&lt;br /&gt;
&lt;br /&gt;
La grammaire étant un automate. Voici un exemple de la grammaire menu.gram pour la reconnaissance de la porte de déchargement.&lt;br /&gt;
[[Fichier:Arborescence_pocket_sphinx.png|200px|thumb|right|PocketSphinx dans un projet Android]]&lt;br /&gt;
&lt;br /&gt;
  #JSGF V1.0;&lt;br /&gt;
  grammar menu;&lt;br /&gt;
  &amp;lt;porte&amp;gt; = porte a |&lt;br /&gt;
            porte b |&lt;br /&gt;
            porte c |&lt;br /&gt;
            porte d |&lt;br /&gt;
            porte e |&lt;br /&gt;
            porte f |&lt;br /&gt;
            porte g |&lt;br /&gt;
            porte h |&lt;br /&gt;
            porte i |&lt;br /&gt;
            porte j ;&lt;br /&gt;
  public &amp;lt;porte&amp;gt; = &amp;lt;porte&amp;gt;+;&lt;br /&gt;
&lt;br /&gt;
Un extrait du dictionnaire french_letter.dic associé avec les phonemes&lt;br /&gt;
&lt;br /&gt;
  a aa &amp;lt;-- juste la lettre a et son phoneme &lt;br /&gt;
  autre au tt rr&lt;br /&gt;
  autre(2) au tt rr ee &lt;br /&gt;
  b bb &lt;br /&gt;
  c ss &lt;br /&gt;
  d dd ei d(2) dd ait &lt;br /&gt;
  e eu e(2) eu zz &lt;br /&gt;
  f ai ff &lt;br /&gt;
  g jj ei g(2) gg ai &lt;br /&gt;
  h aa ch  &lt;br /&gt;
  i ii &lt;br /&gt;
  j jj yy j(2) jj ii&lt;br /&gt;
  porte pp oo rr tt&lt;br /&gt;
  porte(2) pp oo rr tt ee&lt;br /&gt;
  portes(2) pp oo rr tt ee&lt;br /&gt;
  portes(3) pp oo rr tt ee zz&lt;br /&gt;
  portes(4) pp oo rr tt zz&lt;br /&gt;
&lt;br /&gt;
Le modèle acoustique que nous avons téléchargé étant inclu dans lium_french_f0&lt;br /&gt;
&lt;br /&gt;
Nous avons testé la reconnaissance vocale sur un téléphone android, les mots sont, dans la majorité des cas, bien reconnus.&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Comparaison architectures projet TV &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Au niveau de l’architecture nous avons établi plusieurs propositions après la réunion avec notre tuteur:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour une Raspberry Pi avec un dongle BLE :&lt;br /&gt;
* Installation OS Linux sur la Raspberry&lt;br /&gt;
* Librairie BlueZ pour l’utilisation du BLE (tests rapides effectués sur Linux avec le Dongle)&lt;br /&gt;
* Interface graphique avec une bibliothèque comme Qt (ou encore SDL…)&lt;br /&gt;
* Prix : Rpi = 26€ (chez RadioSpare), Dongle = 10€, TV = à partir de 358€ pour 117cm, + Connectique vidéo. Total = 394€&lt;br /&gt;
&lt;br /&gt;
Pour un écran ViewSonic VSD231 :&lt;br /&gt;
* Possède une API Bluetooth classic + API BLE&lt;br /&gt;
* Interface graphique Android (View, Layout...)&lt;br /&gt;
* Prix : écran ViewSonic VSD231 = 558 € pour 58 cm (chez ViewSonic).&lt;br /&gt;
&lt;br /&gt;
Récupération d’informations :&lt;br /&gt;
* Si données sur les lunettes : Bluetooth ou Wifi.&lt;br /&gt;
* Si données sur serveur : Ethernet ou Wifi.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Vu les propositions possibles nous pensons que la première proposition permettra une meilleure souplesse dans le développement mais serait un peu plus compliquée. Mais nous la trouvons aussi plus intéressante à faire de plus elle est moins coûteuse et permet d'utiliser un écran plus grand. Le développement sur tablette serait sûrement plus rapide à faire en contrepartie.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 01/12 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Conférence GlassCamp à l'Imaginarium &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
GlassCamp est une association qui essaye de répandre l'utilisation de toute les Smart Glass en général. Elle propose de multiples conférences dans lesquelles ils essayent de montrer au public l’intérêt de développer sur ces appareils. Dans le cadre de notre projet, notre tuteur nous a proposé de participer à cette présentation afin de mieux s’approprier le sujet. La conférence a eu lieu le 4 décembre à l'Imaginarium: une grande partie était plutôt tournée vers la présentation mais nous avons apprîs plusieurs choses intéressantes qui sont décrites dans le compte rendu.&lt;br /&gt;
&lt;br /&gt;
'''Compte Rendu Conférence 04/12/2014 :''' [[Fichier:Compte_Rendu_Conf_GlassCamp.pdf]]&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaines du 08/12 et 15/12 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Reconnaissance vocale en Français &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Nous avons avancé sur la version française de l'application. A la manière du menu vocal des google glass, nous avons utilisé un délimiteur&lt;br /&gt;
&amp;quot;ok lunettes&amp;quot; pour démarrer l'interaction avec l'application, afin que les discussions et bruits ambiants n'interfèrent pas sur l'utilisation de celle-ci.&lt;br /&gt;
Voici le scénario d'utilisation de la nouvelle version de l'application en Français.&lt;br /&gt;
[[Fichier:Schema_fr.png|700px|center]]&lt;br /&gt;
&lt;br /&gt;
Sous pocketsphinx, le délimiteur n'apparait pas dans une grammaire. La grammaire permet de prédestiner l'application à choisir entre deux mots. &lt;br /&gt;
Dans notre application, le moteur de reconnaissance vocale choisi la distance la plus courte, séparant le mot prononcé par l'utilisateur et ceux&lt;br /&gt;
qu'il est possible d'entendre. Ainsi entre &amp;quot;oui&amp;quot; et &amp;quot;non&amp;quot;, l'application choisira forcément l'un des deux, même si l'utilisateur dit &amp;quot;bonjour&amp;quot;&lt;br /&gt;
&lt;br /&gt;
L'avantage du délimiteur est que sa détection repose sur un seuillage entre ce qui est prononcé et ce qui doit être reconnu, nous pouvons régler ce seuil.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 05/01 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Entretien avec notre tuteur &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Durant cet entretien nous avons défini les évolutions du projet.&lt;br /&gt;
&lt;br /&gt;
'''Compte Rendu de l'entretien du 06/01/2015 :''' [[Fichier:Compte_Rendu_4.pdf]]&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 12/01 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; TV connectée &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Nous avons pris en main la détection des beacons (de la marque Estimote fournis par l'entreprise) dans les systèmes android.&lt;br /&gt;
L'adresse MAC et le RSSI sont accessibles, ce sont les seules informations nécessaires que nous avons besoin en ce qui concerne les beacons.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 19/01 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Interfaces_exemple.png|100px|thumb|right]]&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt;Interface TV &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Nous avons développer plusieurs exemples d'interfaces avec les instructions de notre tuteur afin de choisir les meilleurs résultats ensembles. Nous avons définie quelques contraintes pour le design. Elle doit être&lt;br /&gt;
* Simple et intuitive&lt;br /&gt;
* En accord avec les couleurs de l'entreprise&lt;br /&gt;
* Moderne (système de tuile ou autre)&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 26/01 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Entretien avec notre tuteur &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Durant cette entretien nous avons défini plus précisément les objectifs du projet.&lt;br /&gt;
Ci dessous le compte rendu.&lt;br /&gt;
&lt;br /&gt;
'''Compte Rendu de l'entretien du 26/01/2015 :''' [[Fichier:Compte_Rendu_5.pdf]]&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 02/02 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Portage d'une application de SmartPicking sur les Google Glass &amp;lt;/font&amp;gt;===&lt;/div&gt;</summary>
		<author><name>Jgondry</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=P22_Google_Glass_en_logistique&amp;diff=16270</id>
		<title>P22 Google Glass en logistique</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=P22_Google_Glass_en_logistique&amp;diff=16270"/>
				<updated>2015-01-30T15:04:23Z</updated>
		
		<summary type="html">&lt;p&gt;Jgondry : /*  Semaine du 26/01  */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Introduction =&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Description du sujet &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
Notre projet vise à l’optimisation du stockage et de l’adressage des palettes dans un entrepôt. En effet, lors du déchargement d’un camion, chercher un emplacement libre pour les palettes dans un entrepôt occupant une grande superficie fait perdre du temps et donc de la productivité dans le stockage. Sachant qu’un cariste perd un temps non négligeable à la recherche d’emplacement disponible, optimiser ce temps de recherche permettrait de gagner du temps sur cette opération.&lt;br /&gt;
Développer un prototype permettrait de rendre compte des moyens existants qui pourrait être mis en place dans une solution métier.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Analyse du sujet &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Google_glass.png|200px|thumb|right|Paire de Google Glass]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Optinvent_ora.png|200px|thumb|right|Paire de ORA d'Optivent]]&lt;br /&gt;
&lt;br /&gt;
Notre projet consiste à fluidifier le déchargement en indiquant au cariste l’emplacement libre le plus proche. Pour ne pas gêner le travail des employés, un dispositif main-libre comme une Google Glass semble adapté. Ce projet soulève plusieurs problématiques : développer une interface homme-machine apportant une information pertinente pour l’utilisateur sans pour autant être perturbante. &lt;br /&gt;
&lt;br /&gt;
L’idée serait de réaliser dans les grandes lignes un système similaire à ce scénario d’utilisation :&lt;br /&gt;
http://n.mynews.ly/!lB.Bs4fw&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Moyen d’affichage de l’Informations pertinentes'''&lt;br /&gt;
&lt;br /&gt;
Les Google Glass ne sont pas les seules smart glasses sur le marché. Il nous faudra choisir les appareils les plus adaptés. L’information pertinente pourrait être une direction à suivre dans l’entrepôt ou simplement un numéro d’emplacement (adressage intuitif de l’entrepôt). &lt;br /&gt;
&lt;br /&gt;
'''Géolocalisation'''&lt;br /&gt;
&lt;br /&gt;
Dans le cas d’une direction à suivre se pose le problème de la géolocalisation indoor dont l’utilité et la faisabilité seront discutés au fil des réunions avec l’entreprise. &lt;br /&gt;
&lt;br /&gt;
'''Adressage / flashage'''&lt;br /&gt;
&lt;br /&gt;
En ce qui concerne l’adressage des palettes en entrepôt, la solution existante repose sur un flashage des codes barres associés à l’emplacement venant d’être occupé. Une étude de faisabilité/utilité sera aussi faite sur une solution de remplacement grâce aux possibilités qu’offrent les smart glasses.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Cahier des charges &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
En partant de l'analyse du sujet et des discussion avec notre tuteur, nous avons définie un cahier des charges plus précis des tâches à accomplir:&lt;br /&gt;
&lt;br /&gt;
* '''Développer un système embarqué sur une paire de lunette Smart Glass'''&lt;br /&gt;
** Comparer les différentes offres en matière de Smart Glass notamment Google Glass &amp;amp; ORA de Optinvent&lt;br /&gt;
** Concevoir une interface homme-machine non perturbante pour l'utilisateur.&lt;br /&gt;
* '''Etudier la nécessité d'utiliser une géolocalisation en entrepôt et l'implémenter si besoin'''&lt;br /&gt;
** Via RSSI (Wifi, Bluetooh Low Energy ...)&lt;br /&gt;
** Via traitement d'images (reconnaissance de la signalétique en entrepôt)&lt;br /&gt;
* '''Etudier les possibilités d'optimisation du système d'adressage des palettes'''&lt;br /&gt;
** Implémenter la reconnaissance de code barre&lt;br /&gt;
** La tester en réalité métier (utilité ajoutée, habitude des magasiniers, vitesse de traitement...)&lt;br /&gt;
&lt;br /&gt;
Le cahier des charges est encore en cours de construction&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Matériel utilisé &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; SmartGlass &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Lors de la réunion nous avons discuté des technologies à utiliser dans le projet, et plus particulièrement des différentes SmartGlass. En effet, il existe une multitude de sociétés qui développe ce genre de lunettes. Nous commencerons à utiliser les Google Glass étant donné que notre tuteur en a déjà commandé puis nous développerons sur les lunettes ORA de Optivent qui seront livrées fin octobre. Nous devrons donc faire un comparatif entre ces deux SmartGlass puis étudier les autres appareils disponibles sur le marché.&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Localisation &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
L'utilisation de la géolocalisation dans le projet est à débattre. Mais des tests seront probablement mis en place. L'entreprise possède quelque iBeacons BLE Estimote dans ses bureaux d'innovations que nous pourrons emprunter.&lt;br /&gt;
Dans le cas où leur gain d'informations serait utile il nous faudra comparer les modèles disponibles. Choisir un nombre de module et des emplacements stratégiques dans l'entrepôt afin d'avoir une localisation assez précise pour l'application.&lt;br /&gt;
&lt;br /&gt;
L'utilisation d'autres technologies de géolocalisation a été discuté comme le Wifi ou le XBee mais le BLE semblait le plus adapté dans le cadre de notre projet.&lt;br /&gt;
&lt;br /&gt;
= Déroulement du projet =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 22/09 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Réunion avec le tuteur entreprise dans l’entrepôt &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Nous avons observé en situation le problème et discuté des besoins, des moyens déjà utilisables. Il nous faudra prendre en compte plusieurs paramètres dans notre réflexion tels que le système de stockage et d'adressages des palettes, sens de circulation des caristes, superficie des zones à desservir, durée de livraison.&lt;br /&gt;
Nous avons suggéré des étapes de validation intermédiaire du système par les futurs utilisateurs et pour cela nous rencontrerons le chef d'équipe des magasiniers lorsque qu'une version sera assez développée.&lt;br /&gt;
&lt;br /&gt;
Nous avons défini avec le tuteur les premières deadlines du projet, voici la timeline récapitulative:&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Timeline_1.jpg||center|1000px]]&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Compte Rendu &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Nous avons rédigé un compte rendu de la première réunion détaillant les spécifications des versions des livrables, des schémas et les sujets abordés lors de la rencontre :&lt;br /&gt;
&lt;br /&gt;
'''Compte Rendu réunion du 25/09/2014 :''' [[Fichier:Compte_Rendu_25_09.pdf]]&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 29/09 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Découverte des Google Glass &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
*Prise en main des Google Glass. &lt;br /&gt;
*Installation d'applications (.apk) grand public. Nous avons utilisé l'outil Android Debug Bridge(adb). Se mettre à la place d'un utilisateur.&lt;br /&gt;
*L'une des deux lunettes qui serait retenue imposera forcément le développement d'une application android (ou d'une technologie trés proche d'android, pour les Google Glass, se basant sur le Glass Development Kit qui est un add-on au SDK classique d'android). Nous avons donc téléchargé les packages nécessaires pour commencer à développer. &lt;br /&gt;
** Nous commençons à nous former sur les technologies android :développement d'applications minimaliste.&lt;br /&gt;
** Installation de nos premières apk minimalistes pour Android.&lt;br /&gt;
** Installation d'une application minimaliste sur la Google Glass.&lt;br /&gt;
&lt;br /&gt;
Voici un comparatif réalisé entre les lunettes ORA et les Google Glass.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Différences Google Glass/ORA &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!   !! Google Glass !! ORA &lt;br /&gt;
|-&lt;br /&gt;
|Connectique&lt;br /&gt;
|Compatible BLE (à partir de la XE 16 KitKat Update), Wifi &lt;br /&gt;
|Compatible BLE, Wifi&lt;br /&gt;
|-&lt;br /&gt;
|Autonomie en utilisation normale&lt;br /&gt;
|de 1h à 2h &lt;br /&gt;
|de 4h à 8h&lt;br /&gt;
|-&lt;br /&gt;
|Son&lt;br /&gt;
|Conductivité Cranienne&lt;br /&gt;
|Prise jack&lt;br /&gt;
|-&lt;br /&gt;
|Interface&lt;br /&gt;
|Ecran occupant une faible superficie dans le champ de vision &lt;br /&gt;
|Ecran 2 positions (moyennes et basses), plus étendu permettant une réalité augmentée &lt;br /&gt;
|-&lt;br /&gt;
|Système d'exploitation&lt;br /&gt;
|Android 4.4&lt;br /&gt;
|Android 4.2.2&lt;br /&gt;
|-&lt;br /&gt;
|Calculs&lt;br /&gt;
|CPU &amp;amp; GPU&lt;br /&gt;
|CPU &amp;amp; GPU&lt;br /&gt;
|-&lt;br /&gt;
|Prix&lt;br /&gt;
|1500$ &lt;br /&gt;
|949$&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 06/10 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Deuxième rendez-vous avec le tuteur entreprise &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Nous avons fait part de notre avancée en matière de prise en main et des problèmes rencontrés en matière de développement.&lt;br /&gt;
Les lunettes ORA sont commandées elles arrivent d'ici la fin octobre.&lt;br /&gt;
&lt;br /&gt;
La première version V1 de l'application pour Google Glass à livrer pour la mi-novembre est fixée.&lt;br /&gt;
&lt;br /&gt;
En partant d'une position connue (en dur dans l'application) dans l'entrepôt, elle indiquera à un utilisateur les emplacements libres les plus proches.&lt;br /&gt;
&lt;br /&gt;
L'état d'occupation des emplacements sera consulté et stocké dans l'application. Il n'y aura donc pas de gestion des conflits. Le sens de circulation dans l'entrepôt sera pris en compte.&lt;br /&gt;
Une communication avec la base de donnée de l'entrepôt n'est pour le moment pas d'actualité, cela nécessiterait des développements en amont.&lt;br /&gt;
La géolocalisation n'est pas au goût du jour non plus. L'adressage des emplacements dans l'entrepôt est intuitif, il est donc facile pour un magasinier de &lt;br /&gt;
se rendre à un emplacement en connaissant l'adresse.&lt;br /&gt;
&lt;br /&gt;
Pour l'IHM, nous nous inspirerons des applications pour Google Glass (les Glasswares) de type GPS.&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Premiers programmes sur Google Glass &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Pour nous familiariser avec la programmation sur ce genre d'appareil nous avons tous deux décidé de suivre en premier le tutoriel Android d'un site spécialisé. Cela afin de mieux comprendre le système Android, avec les concepts d'activités, de view etc.&lt;br /&gt;
Dans un deuxième temps nous avons choisi de suivre plusieurs tutoriels nous expliquant la prise en main basique des lunettes afin de saisir les particularités de leur programmation.&lt;br /&gt;
&lt;br /&gt;
Le plus dur étant finalement de comprendre les liens entre tous les fichiers du projets, les problèmes de drivers et d'upload simple que nous avons rencontrés et l’exécution du programme sur les lunettes. Des choses que nous arrivons maintenant à maitriser mais qui était floues à l'origine.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 13/10 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Programmation et gestion des interactions &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Durant cette semaine nous avons commencé a vraiment toucher aux fonctionnalités des Glass. Pour rester en main libre, nous avons fait des recherches et commencé à programmer de la reconnaissance vocale. Nous avons ainsi crée un système de navigation basique par commande vocale dans différents menus. Pour un accès rapide à l'application et toujours dans la même optique nous avons réussi à inclure le lancement de notre logiciel à partir du &amp;quot;Ok Glass&amp;quot; menu qui est le menu de lancement d'application par commande vocale des Google Glass. Voici un aperçu du résultat:&lt;br /&gt;
[[Fichier:V0_menu.png|1000px|center]]&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Analyse et évaluation du rendu &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Le début de la prise en main des fonctionnalités des Google Glass n'a pas été facile étant donné que la plupart des fonctionnalités sont propres à ce genre d'appareil. De plus elles nécessitent des techniques spéciales de programmation qui ne sont pas toujours très utilisées donc il est parfois difficile de trouver des exemples sur internet.&lt;br /&gt;
Néanmoins après l'implémentation de ces fonctionnalités nous avons pu rencontrer quelques difficultés de reconnaissance. En effet, les Google Glass possèdent un dictionnaire de mots/phrases pour la reconnaissance vocale mais elles nous permettent aussi d'écrire n'importe quelle phrase dans le mode développeur. Les phrases du dictionnaires ne posent aucun problème mais les phrases que nous écrivons sont parfois dures à reconnaitre. La reconnaissance de lettre seule ou de certains numéros est par exemple quasi impossible ou très aléatoire.&lt;br /&gt;
Le système de vu est quant à lui plutôt facile à prendre en main et intuitif dans l'utilisation.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 20/10 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Premiere structure de donnée &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Nous avons opté pour une structure de donnée récursive. Une Cellule, contenant des Allées, qui contiennent des Baies, contenant des Rangées, contenant des Emplacements.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Structure_export_resized.png|750px|center]]&lt;br /&gt;
Nous avons conçu cette structure de donnée pour qu'elle génère, dans un premier temps &amp;quot;en dur&amp;quot;, une cellule contenant des emplacements automatiquement adressés à la manière de ceux présent dans l'entrepôt. Ces adresses sont de la forme &amp;quot;D61A514&amp;quot; traduisez &amp;quot; Cellule 6 Allée 1A Baie 5 Rang 1 Niveau 4&amp;quot;.&lt;br /&gt;
Cette structure prend on compte le sens de circulation dans l'entrepôt.&lt;br /&gt;
Lors de futures interactions avec une base de donnée, cette structure serait sujette à évolution par une modification des méthodes de génération/modification du statut des adresses en fonction de cette base de donnée. Mais celle-ci constitue essentiellement une base pour appréhender plus pratiquement les problématiques de recherches de l'emplacement le plus proche.&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Prise en main de l'interface &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Nous avons déjà abordé les layouts java en TP donc il a été assez facile de commencer à faire des interfaces graphiques simples. Nous avons construit une interface graphique simple pour de faire une démonstration du programme aux tuteurs entreprise afin qu'ils comprennent bien le fonctionnement de notre algorithme.&lt;br /&gt;
L'interface graphique finale du programme sera très sobre afin de ne pas donner trop gêner le magasinier dans sa tâche.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 27/10 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Chemin optimal : Parcours intelligent Vs Sélection intelligente &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Un premier algorithme de recherche de l'emplacement le plus proche a été développé, celui-ci ne prend en compte qu'un seul scénario. &lt;br /&gt;
Celui de la position de départ (quai de déchargement où reviendra constamment le magasinier aprés chaque livraison) correspondante à la première allée de l'entrepôt, et en prenant en compte le sens de circulation. &lt;br /&gt;
A partir de ce moment, nous avons dégager deux grandes manières d'appréhender le problème.&lt;br /&gt;
&lt;br /&gt;
* Un parcours intelligent de la structure de donnée. C'est à dire parcourir les emplacements les plus proches, et choisir le premier emplacement libre. Une solution complexe à réaliser sur le plan algorithmique. En tenant compte du sens de circulation, il apparait que l'emplacement libre &amp;quot;leplusproche&amp;quot; (à vol d'oiseau) trouvé le plus tôt, ne correspondrait pas forcément à l'emplacement le plus proche compte tenu du chemin emprunté par un magasinier. Et c'est plutôt l'intérêt de cette algorithme.(Sauf dans l'unique cas où l'emplacement libre se trouve directement dans l'allée faisant face à la position de départ du magasinier, et le sens de circulation lui permet directement de se rendre à l'emplacement sans détour).&lt;br /&gt;
&lt;br /&gt;
* Une sélection intelligente parmi les emplacements libres. Leurs adresses renseignent à quelles allées, les emplacements libres appartiennent, donc renseignent sur le sens de circulation. A partir de la position de départ du magasinier et de l'ensemble des emplacements libres, on peut calculer la distance nécessaire à celui-ci pour les atteindre. Pour ainsi choisir l'adresse pour laquelle la distance est minimale.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 3/11 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Chemin optimal : sélection intelligente des adresses &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Nous avons écrit une premiere méthode de détermination. &lt;br /&gt;
On choisit l'emplacement, parmi tous ceux qui sont libres, pour lequel la distance de parcours est minimale entre le départ et celui-ci. &lt;br /&gt;
Ici l'unité de distance est la baie. La simplicité de l'algorithme réside dans le fait que le magasinier ne transporte qu'une seule caisse à la fois et repars toujours au même point de départ.&lt;br /&gt;
&lt;br /&gt;
Ci dessous un plan de l'entrepôt.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:schema_entrepot.png|750px|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Si on se place à l'entrée de l'Allée A :&lt;br /&gt;
&lt;br /&gt;
**le déplacement jusqu'à A4 (sens de circulation direct) est de : &lt;br /&gt;
&lt;br /&gt;
                        Y baies - (indice de la baie/2 +indice de la baie % 2) &lt;br /&gt;
&lt;br /&gt;
**le déplacement jusqu'à B1 (sens de circulation indirect) est de : &lt;br /&gt;
&lt;br /&gt;
                        Y baies + différence entre l'allée A et B donc X baies + indice de la baie/2 +indice de la baie % 2&lt;br /&gt;
**le déplacement jusqu'à C1 (sens de circulation direct) est de : &lt;br /&gt;
                      &lt;br /&gt;
                        Y baies - (indice de la baie/2 +indice de la baie % 2)+différence entre l'allée A et C donc 2*X baies.&lt;br /&gt;
&lt;br /&gt;
*Si on se place à l'entrée de l'Allée B :&lt;br /&gt;
**le déplacement jusqu'à B1 (sens de circulation indirect avec contournement) est de : &lt;br /&gt;
                        &lt;br /&gt;
                        2*X baies + Y baies + 2*X baies + (indice de la baie/2 +indice de la baie % 2)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On peut généraliser l'ensemble de ces situations de déplacement avec l'algorithme suivant :&lt;br /&gt;
&lt;br /&gt;
Pseudo code&lt;br /&gt;
&lt;br /&gt;
  Leplusproche( Allee depart )&lt;br /&gt;
    distance_la_plus_petite = valeurMAX&lt;br /&gt;
      le_plus_proche=&amp;quot;&amp;quot;&lt;br /&gt;
         Pour chaque Allee de Cellule&lt;br /&gt;
           sens=Allee.sens&lt;br /&gt;
           Pour chaque Baie de Allee&lt;br /&gt;
             Pour chaque Rang de Allee&lt;br /&gt;
 	       Pour chaque Emplacement de Rang&lt;br /&gt;
                Si Emplacement estlibre &lt;br /&gt;
                &lt;br /&gt;
                indice_baie = selection_indice_baie(Emplacement.adresse)&lt;br /&gt;
   		 allee_cible = selection_indice_allee(Emplacement.adresse)  &lt;br /&gt;
   		 difference_allee = valeur_absolue(depart -cible) &lt;br /&gt;
                    Si difference_allee==0 et sens.estindirect&lt;br /&gt;
                      //sens indirect +contournement&lt;br /&gt;
                      distance_actuelle=(indice_baie/2)+indice_baie%2+(2*(difference_allee))+4*X+Y			&lt;br /&gt;
                    Sinon	&lt;br /&gt;
                        Si sens estdirect&lt;br /&gt;
                          //sens direct &lt;br /&gt;
                          distance_actuelle=(Y-((indice_baie/2)+indice_baie%2))+2*difference_allee&lt;br /&gt;
                        Sinon&lt;br /&gt;
                          //sens indirect mais pas de contournement&lt;br /&gt;
                          distance_actuelle=((indice_baie/2)+indice_baie%2)+2*difference_allee+Y&lt;br /&gt;
                        Finsi	&lt;br /&gt;
                    Finsi	&lt;br /&gt;
                    Si distance_actuelle &amp;lt; distance_la_plus_petite&lt;br /&gt;
                      le_plus_proche=Emplacement.adresse&lt;br /&gt;
                      distance_la_plus_petite=distance_actuelle&lt;br /&gt;
                    Finsi&lt;br /&gt;
                Finsi  &lt;br /&gt;
            Finpour&lt;br /&gt;
          Finpour&lt;br /&gt;
        Finpour&lt;br /&gt;
      Finpour&lt;br /&gt;
    retourne le_plus_proche&lt;br /&gt;
  Finleplusproche&lt;br /&gt;
&lt;br /&gt;
Cet algorithme nous donne satisfaction (dans le cadre de la V1)&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 10/11 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Programmation et gestion des interactions &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Aprés quelques difficultés vis à vis de la gestion des menus vocaux sur les lunettes qui ne fonctionnent pas de la même manière que les menus classiques sous android, nous avons étoffé les interactions possible avec l'application des google glass. (Nous souhaitions inflater un deuxième menu pour interagir de manière plus contextuelle, il fallait le faire dans la méthode onCreatePanelMenu dont l'appel serait forcé avec getWindow().invalidatePanelMenu(WindowUtils.FEATURE_VOICE_COMMANDS) plutôt que dans onPrepareOptionsMenu forcée par invalidateOptionMenu()...) &lt;br /&gt;
&lt;br /&gt;
schéma d'utilisation...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Proposition projet affichage télévision &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Tele_concept.png|200px|thumb|right]]&lt;br /&gt;
&lt;br /&gt;
Notre tuteur nous a contacté pour nous proposer d'étudier un second projet en parallèle au projet initial. Celui consistant à gérer l'affichage d'information personnalisé d'un magasinier passant à proximité d'un écran de télévision. Nous devons effectuer un Proof Of Concept (POC) et réfléchir à ce sujet.&lt;br /&gt;
L'utilisation du BLE est donc de nouveau d'actualité, car je rappel que sont utilité était discutable dans une réalité métier du projet initial. La question étant plus de savoir comment gérer le système du coté du téléviseur.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Le concept de base étant de :&lt;br /&gt;
* Fournir une beacon aux magasiniers de l'entrepôt.&lt;br /&gt;
* Installer une télévision sur un centre de vie dans l'entrepôt avec une beacon&lt;br /&gt;
* Pousser du contenu personnalisé au magasinier qui se présente devant la tv dans son centre de vie&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 17/11 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Brainstorming à Polytech &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Dans la cadre du POC sur l'affichage personnalisé sur une télévision, nous avons profité d'un exercice de management pour faire participer la classe à notre projet. Grâce à cette intervention nous avons pu confirmer nos idées sur les technologies à utiliser. Mais nous avons surtout eu une multitude de propositions sur les données à afficher sur l'écran.&lt;br /&gt;
&lt;br /&gt;
Pour plus détails, le compte rendu est disponible à ce lien:&lt;br /&gt;
&lt;br /&gt;
'''Compte Rendu Brainstorming 17/11/2014 :''' [[Fichier:Compte_Rendu_POC_17_11.pdf]]&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Entretien avec notre tuteur entreprise &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Durant cet entretien, nous avons livré la première version de l'application et nous avons discuté de la suite du projet.&lt;br /&gt;
Ci joint le Compte Rendu.&lt;br /&gt;
&lt;br /&gt;
'''Compte Rendu  19/11/2014 :''' [[Fichier:Compte_Rendu_19_11.pdf]]&lt;br /&gt;
&lt;br /&gt;
De cette réunion, les points suivants en sont sortis:&lt;br /&gt;
&lt;br /&gt;
*Une reconnaissance vocale en langue française sur les lunettes serait plus intéressante pour les employés (une piste serait d’utiliser l’outil pocketsphinx-  android).&lt;br /&gt;
*Par rapport à l'IHM, il faudrait mettre l’affichage au premier plan sur les Google Glass pour une démo auprés des parties prenantes du projet.&lt;br /&gt;
*Choisir une architecture pour l’affichage d’information personnalisées.&lt;br /&gt;
**La télévision connectée à une raspberry qui communiquerait via un dongle BLE avec le beacon d’un magasinier, ce qui permettrait l’identification de celui-ci prés de la Télévision, et déclencherait un processus d’échange d’information. (Communication via le protocole Bluetooh, wifi entre les lunettes et la Raspberry  ou communication avec la Raspberry avec la Base de Donnée sur le réseau de l’entreprise)&lt;br /&gt;
**Une télévision connectée en continu à un site internet via un dongle HDMI.&lt;br /&gt;
**Une tablette android géante supportant le BLE, ou utilisant un dongle BLE.&lt;br /&gt;
* Réaliser le portage de l’application sur le prototype des lunettes ORA.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 24/11 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Reconnaissance vocale en Français &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Pocket Sphinx Android est une librairie permettant de faire de la reconnaissance vocale d'un langage donné sur un système android en offline.&lt;br /&gt;
Pour supporter une langue, elle nécessite: &lt;br /&gt;
*un modèle acoustique (ensemble d'informations pour le traitement sonore)&lt;br /&gt;
*un dictionnaire associant les mots et leur phonèmes&lt;br /&gt;
*une grammaire, c'est un fichier définissant comment seraient articulé les mots à reconnaître et limitant les possibilités de langage).&lt;br /&gt;
&lt;br /&gt;
La grammaire étant un automate. Voici un exemple de la grammaire menu.gram pour la reconnaissance de la porte de déchargement.&lt;br /&gt;
[[Fichier:Arborescence_pocket_sphinx.png|200px|thumb|right|PocketSphinx dans un projet Android]]&lt;br /&gt;
&lt;br /&gt;
  #JSGF V1.0;&lt;br /&gt;
  grammar menu;&lt;br /&gt;
  &amp;lt;porte&amp;gt; = porte a |&lt;br /&gt;
            porte b |&lt;br /&gt;
            porte c |&lt;br /&gt;
            porte d |&lt;br /&gt;
            porte e |&lt;br /&gt;
            porte f |&lt;br /&gt;
            porte g |&lt;br /&gt;
            porte h |&lt;br /&gt;
            porte i |&lt;br /&gt;
            porte j ;&lt;br /&gt;
  public &amp;lt;porte&amp;gt; = &amp;lt;porte&amp;gt;+;&lt;br /&gt;
&lt;br /&gt;
Un extrait du dictionnaire french_letter.dic associé avec les phonemes&lt;br /&gt;
&lt;br /&gt;
  a aa &amp;lt;-- juste la lettre a et son phoneme &lt;br /&gt;
  autre au tt rr&lt;br /&gt;
  autre(2) au tt rr ee &lt;br /&gt;
  b bb &lt;br /&gt;
  c ss &lt;br /&gt;
  d dd ei d(2) dd ait &lt;br /&gt;
  e eu e(2) eu zz &lt;br /&gt;
  f ai ff &lt;br /&gt;
  g jj ei g(2) gg ai &lt;br /&gt;
  h aa ch  &lt;br /&gt;
  i ii &lt;br /&gt;
  j jj yy j(2) jj ii&lt;br /&gt;
  porte pp oo rr tt&lt;br /&gt;
  porte(2) pp oo rr tt ee&lt;br /&gt;
  portes(2) pp oo rr tt ee&lt;br /&gt;
  portes(3) pp oo rr tt ee zz&lt;br /&gt;
  portes(4) pp oo rr tt zz&lt;br /&gt;
&lt;br /&gt;
Le modèle acoustique que nous avons téléchargé étant inclu dans lium_french_f0&lt;br /&gt;
&lt;br /&gt;
Nous avons testé la reconnaissance vocale sur un téléphone android, les mots sont, dans la majorité des cas, bien reconnus.&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Comparaison architectures projet TV &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Au niveau de l’architecture nous avons établi plusieurs propositions après la réunion avec notre tuteur:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour une Raspberry Pi avec un dongle BLE :&lt;br /&gt;
* Installation OS Linux sur la Raspberry&lt;br /&gt;
* Librairie BlueZ pour l’utilisation du BLE (tests rapides effectués sur Linux avec le Dongle)&lt;br /&gt;
* Interface graphique avec une bibliothèque comme Qt (ou encore SDL…)&lt;br /&gt;
* Prix : Rpi = 26€ (chez RadioSpare), Dongle = 10€, TV = à partir de 358€ pour 117cm, + Connectique vidéo. Total = 394€&lt;br /&gt;
&lt;br /&gt;
Pour un écran ViewSonic VSD231 :&lt;br /&gt;
* Possède une API Bluetooth classic + API BLE&lt;br /&gt;
* Interface graphique Android (View, Layout...)&lt;br /&gt;
* Prix : écran ViewSonic VSD231 = 558 € pour 58 cm (chez ViewSonic).&lt;br /&gt;
&lt;br /&gt;
Récupération d’informations :&lt;br /&gt;
* Si données sur les lunettes : Bluetooth ou Wifi.&lt;br /&gt;
* Si données sur serveur : Ethernet ou Wifi.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Vu les propositions possibles nous pensons que la première proposition permettra une meilleure souplesse dans le développement mais serait un peu plus compliquée. Mais nous la trouvons aussi plus intéressante à faire de plus elle est moins coûteuse et permet d'utiliser un écran plus grand. Le développement sur tablette serait sûrement plus rapide à faire en contrepartie.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 01/12 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Conférence GlassCamp à l'Imaginarium &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
GlassCamp est une association qui essaye de répandre l'utilisation de toute les Smart Glass en général. Elle propose de multiples conférences dans lesquelles ils essayent de montrer au public l’intérêt de développer sur ces appareils. Dans le cadre de notre projet, notre tuteur nous a proposé de participer à cette présentation afin de mieux s’approprier le sujet. La conférence a eu lieu le 4 décembre à l'Imaginarium: une grande partie était plutôt tournée vers la présentation mais nous avons apprîs plusieurs choses intéressantes qui sont décrites dans le compte rendu.&lt;br /&gt;
&lt;br /&gt;
'''Compte Rendu Conférence 04/12/2014 :''' [[Fichier:Compte_Rendu_Conf_GlassCamp.pdf]]&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaines du 08/12 et 15/12 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Reconnaissance vocale en Français &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Nous avons avancé sur la version française de l'application. A la manière du menu vocal des google glass, nous avons utilisé un délimiteur&lt;br /&gt;
&amp;quot;ok lunettes&amp;quot; pour démarrer l'interaction avec l'application, afin que les discussions et bruits ambiants n'interfèrent pas sur l'utilisation de celle-ci.&lt;br /&gt;
Voici le scénario d'utilisation de la nouvelle version de l'application en Français.&lt;br /&gt;
[[Fichier:Schema_fr.png|700px|center]]&lt;br /&gt;
&lt;br /&gt;
Sous pocketsphinx, le délimiteur n'apparait pas dans une grammaire. La grammaire permet de prédestiner l'application à choisir entre deux mots. &lt;br /&gt;
Dans notre application, le moteur de reconnaissance vocale choisi la distance la plus courte, séparant le mot prononcé par l'utilisateur et ceux&lt;br /&gt;
qu'il est possible d'entendre. Ainsi entre &amp;quot;oui&amp;quot; et &amp;quot;non&amp;quot;, l'application choisira forcément l'un des deux, même si l'utilisateur dit &amp;quot;bonjour&amp;quot;&lt;br /&gt;
&lt;br /&gt;
L'avantage du délimiteur est que sa détection repose sur un seuillage entre ce qui est prononcé et ce qui doit être reconnu, nous pouvons régler ce seuil.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 05/01 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Entretien avec notre tuteur &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Durant cet entretien nous avons défini les évolutions du projet.&lt;br /&gt;
&lt;br /&gt;
'''Compte Rendu de l'entretien du 06/01/2015 :''' [[Fichier:Compte_Rendu_4.pdf]]&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 12/01 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; TV connectée &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Nous avons pris en main la détection des beacons (de la marque Estimote fournis par l'entreprise) dans les systèmes android.&lt;br /&gt;
L'adresse MAC et le RSSI sont accessibles, ce sont les seules informations nécessaires que nous avons besoin en ce qui concerne les beacons.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 19/01 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt;Interface TV &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Nous avons développer plusieurs exemples d'interfaces avec les instructions de notre tuteur afin de choisir les meilleurs résultats ensembles. Nous avons définie quelques contraintes pour le design. Elle doit être&lt;br /&gt;
* Simple et intuitive&lt;br /&gt;
* En accord avec les couleurs de l'entreprise&lt;br /&gt;
* Moderne (système de tuile ou autre)&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 26/01 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Entretien avec notre tuteur &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Durant cette entretien nous avons défini plus précisément les objectifs du projet.&lt;br /&gt;
Ci dessous le compte rendu.&lt;br /&gt;
&lt;br /&gt;
'''Compte Rendu de l'entretien du 26/01/2015 :''' [[Fichier:Compte_Rendu_5.pdf]]&lt;/div&gt;</summary>
		<author><name>Jgondry</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=Fichier:Compte_Rendu_5.pdf&amp;diff=16269</id>
		<title>Fichier:Compte Rendu 5.pdf</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=Fichier:Compte_Rendu_5.pdf&amp;diff=16269"/>
				<updated>2015-01-30T15:02:34Z</updated>
		
		<summary type="html">&lt;p&gt;Jgondry : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Jgondry</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=P22_Google_Glass_en_logistique&amp;diff=16268</id>
		<title>P22 Google Glass en logistique</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=P22_Google_Glass_en_logistique&amp;diff=16268"/>
				<updated>2015-01-30T15:01:36Z</updated>
		
		<summary type="html">&lt;p&gt;Jgondry : /*  Entretien avec notre tuteur  */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Introduction =&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Description du sujet &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
Notre projet vise à l’optimisation du stockage et de l’adressage des palettes dans un entrepôt. En effet, lors du déchargement d’un camion, chercher un emplacement libre pour les palettes dans un entrepôt occupant une grande superficie fait perdre du temps et donc de la productivité dans le stockage. Sachant qu’un cariste perd un temps non négligeable à la recherche d’emplacement disponible, optimiser ce temps de recherche permettrait de gagner du temps sur cette opération.&lt;br /&gt;
Développer un prototype permettrait de rendre compte des moyens existants qui pourrait être mis en place dans une solution métier.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Analyse du sujet &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Google_glass.png|200px|thumb|right|Paire de Google Glass]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Optinvent_ora.png|200px|thumb|right|Paire de ORA d'Optivent]]&lt;br /&gt;
&lt;br /&gt;
Notre projet consiste à fluidifier le déchargement en indiquant au cariste l’emplacement libre le plus proche. Pour ne pas gêner le travail des employés, un dispositif main-libre comme une Google Glass semble adapté. Ce projet soulève plusieurs problématiques : développer une interface homme-machine apportant une information pertinente pour l’utilisateur sans pour autant être perturbante. &lt;br /&gt;
&lt;br /&gt;
L’idée serait de réaliser dans les grandes lignes un système similaire à ce scénario d’utilisation :&lt;br /&gt;
http://n.mynews.ly/!lB.Bs4fw&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Moyen d’affichage de l’Informations pertinentes'''&lt;br /&gt;
&lt;br /&gt;
Les Google Glass ne sont pas les seules smart glasses sur le marché. Il nous faudra choisir les appareils les plus adaptés. L’information pertinente pourrait être une direction à suivre dans l’entrepôt ou simplement un numéro d’emplacement (adressage intuitif de l’entrepôt). &lt;br /&gt;
&lt;br /&gt;
'''Géolocalisation'''&lt;br /&gt;
&lt;br /&gt;
Dans le cas d’une direction à suivre se pose le problème de la géolocalisation indoor dont l’utilité et la faisabilité seront discutés au fil des réunions avec l’entreprise. &lt;br /&gt;
&lt;br /&gt;
'''Adressage / flashage'''&lt;br /&gt;
&lt;br /&gt;
En ce qui concerne l’adressage des palettes en entrepôt, la solution existante repose sur un flashage des codes barres associés à l’emplacement venant d’être occupé. Une étude de faisabilité/utilité sera aussi faite sur une solution de remplacement grâce aux possibilités qu’offrent les smart glasses.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Cahier des charges &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
En partant de l'analyse du sujet et des discussion avec notre tuteur, nous avons définie un cahier des charges plus précis des tâches à accomplir:&lt;br /&gt;
&lt;br /&gt;
* '''Développer un système embarqué sur une paire de lunette Smart Glass'''&lt;br /&gt;
** Comparer les différentes offres en matière de Smart Glass notamment Google Glass &amp;amp; ORA de Optinvent&lt;br /&gt;
** Concevoir une interface homme-machine non perturbante pour l'utilisateur.&lt;br /&gt;
* '''Etudier la nécessité d'utiliser une géolocalisation en entrepôt et l'implémenter si besoin'''&lt;br /&gt;
** Via RSSI (Wifi, Bluetooh Low Energy ...)&lt;br /&gt;
** Via traitement d'images (reconnaissance de la signalétique en entrepôt)&lt;br /&gt;
* '''Etudier les possibilités d'optimisation du système d'adressage des palettes'''&lt;br /&gt;
** Implémenter la reconnaissance de code barre&lt;br /&gt;
** La tester en réalité métier (utilité ajoutée, habitude des magasiniers, vitesse de traitement...)&lt;br /&gt;
&lt;br /&gt;
Le cahier des charges est encore en cours de construction&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Matériel utilisé &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; SmartGlass &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Lors de la réunion nous avons discuté des technologies à utiliser dans le projet, et plus particulièrement des différentes SmartGlass. En effet, il existe une multitude de sociétés qui développe ce genre de lunettes. Nous commencerons à utiliser les Google Glass étant donné que notre tuteur en a déjà commandé puis nous développerons sur les lunettes ORA de Optivent qui seront livrées fin octobre. Nous devrons donc faire un comparatif entre ces deux SmartGlass puis étudier les autres appareils disponibles sur le marché.&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Localisation &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
L'utilisation de la géolocalisation dans le projet est à débattre. Mais des tests seront probablement mis en place. L'entreprise possède quelque iBeacons BLE Estimote dans ses bureaux d'innovations que nous pourrons emprunter.&lt;br /&gt;
Dans le cas où leur gain d'informations serait utile il nous faudra comparer les modèles disponibles. Choisir un nombre de module et des emplacements stratégiques dans l'entrepôt afin d'avoir une localisation assez précise pour l'application.&lt;br /&gt;
&lt;br /&gt;
L'utilisation d'autres technologies de géolocalisation a été discuté comme le Wifi ou le XBee mais le BLE semblait le plus adapté dans le cadre de notre projet.&lt;br /&gt;
&lt;br /&gt;
= Déroulement du projet =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 22/09 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Réunion avec le tuteur entreprise dans l’entrepôt &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Nous avons observé en situation le problème et discuté des besoins, des moyens déjà utilisables. Il nous faudra prendre en compte plusieurs paramètres dans notre réflexion tels que le système de stockage et d'adressages des palettes, sens de circulation des caristes, superficie des zones à desservir, durée de livraison.&lt;br /&gt;
Nous avons suggéré des étapes de validation intermédiaire du système par les futurs utilisateurs et pour cela nous rencontrerons le chef d'équipe des magasiniers lorsque qu'une version sera assez développée.&lt;br /&gt;
&lt;br /&gt;
Nous avons défini avec le tuteur les premières deadlines du projet, voici la timeline récapitulative:&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Timeline_1.jpg||center|1000px]]&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Compte Rendu &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Nous avons rédigé un compte rendu de la première réunion détaillant les spécifications des versions des livrables, des schémas et les sujets abordés lors de la rencontre :&lt;br /&gt;
&lt;br /&gt;
'''Compte Rendu réunion du 25/09/2014 :''' [[Fichier:Compte_Rendu_25_09.pdf]]&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 29/09 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Découverte des Google Glass &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
*Prise en main des Google Glass. &lt;br /&gt;
*Installation d'applications (.apk) grand public. Nous avons utilisé l'outil Android Debug Bridge(adb). Se mettre à la place d'un utilisateur.&lt;br /&gt;
*L'une des deux lunettes qui serait retenue imposera forcément le développement d'une application android (ou d'une technologie trés proche d'android, pour les Google Glass, se basant sur le Glass Development Kit qui est un add-on au SDK classique d'android). Nous avons donc téléchargé les packages nécessaires pour commencer à développer. &lt;br /&gt;
** Nous commençons à nous former sur les technologies android :développement d'applications minimaliste.&lt;br /&gt;
** Installation de nos premières apk minimalistes pour Android.&lt;br /&gt;
** Installation d'une application minimaliste sur la Google Glass.&lt;br /&gt;
&lt;br /&gt;
Voici un comparatif réalisé entre les lunettes ORA et les Google Glass.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Différences Google Glass/ORA &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!   !! Google Glass !! ORA &lt;br /&gt;
|-&lt;br /&gt;
|Connectique&lt;br /&gt;
|Compatible BLE (à partir de la XE 16 KitKat Update), Wifi &lt;br /&gt;
|Compatible BLE, Wifi&lt;br /&gt;
|-&lt;br /&gt;
|Autonomie en utilisation normale&lt;br /&gt;
|de 1h à 2h &lt;br /&gt;
|de 4h à 8h&lt;br /&gt;
|-&lt;br /&gt;
|Son&lt;br /&gt;
|Conductivité Cranienne&lt;br /&gt;
|Prise jack&lt;br /&gt;
|-&lt;br /&gt;
|Interface&lt;br /&gt;
|Ecran occupant une faible superficie dans le champ de vision &lt;br /&gt;
|Ecran 2 positions (moyennes et basses), plus étendu permettant une réalité augmentée &lt;br /&gt;
|-&lt;br /&gt;
|Système d'exploitation&lt;br /&gt;
|Android 4.4&lt;br /&gt;
|Android 4.2.2&lt;br /&gt;
|-&lt;br /&gt;
|Calculs&lt;br /&gt;
|CPU &amp;amp; GPU&lt;br /&gt;
|CPU &amp;amp; GPU&lt;br /&gt;
|-&lt;br /&gt;
|Prix&lt;br /&gt;
|1500$ &lt;br /&gt;
|949$&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 06/10 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Deuxième rendez-vous avec le tuteur entreprise &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Nous avons fait part de notre avancée en matière de prise en main et des problèmes rencontrés en matière de développement.&lt;br /&gt;
Les lunettes ORA sont commandées elles arrivent d'ici la fin octobre.&lt;br /&gt;
&lt;br /&gt;
La première version V1 de l'application pour Google Glass à livrer pour la mi-novembre est fixée.&lt;br /&gt;
&lt;br /&gt;
En partant d'une position connue (en dur dans l'application) dans l'entrepôt, elle indiquera à un utilisateur les emplacements libres les plus proches.&lt;br /&gt;
&lt;br /&gt;
L'état d'occupation des emplacements sera consulté et stocké dans l'application. Il n'y aura donc pas de gestion des conflits. Le sens de circulation dans l'entrepôt sera pris en compte.&lt;br /&gt;
Une communication avec la base de donnée de l'entrepôt n'est pour le moment pas d'actualité, cela nécessiterait des développements en amont.&lt;br /&gt;
La géolocalisation n'est pas au goût du jour non plus. L'adressage des emplacements dans l'entrepôt est intuitif, il est donc facile pour un magasinier de &lt;br /&gt;
se rendre à un emplacement en connaissant l'adresse.&lt;br /&gt;
&lt;br /&gt;
Pour l'IHM, nous nous inspirerons des applications pour Google Glass (les Glasswares) de type GPS.&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Premiers programmes sur Google Glass &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Pour nous familiariser avec la programmation sur ce genre d'appareil nous avons tous deux décidé de suivre en premier le tutoriel Android d'un site spécialisé. Cela afin de mieux comprendre le système Android, avec les concepts d'activités, de view etc.&lt;br /&gt;
Dans un deuxième temps nous avons choisi de suivre plusieurs tutoriels nous expliquant la prise en main basique des lunettes afin de saisir les particularités de leur programmation.&lt;br /&gt;
&lt;br /&gt;
Le plus dur étant finalement de comprendre les liens entre tous les fichiers du projets, les problèmes de drivers et d'upload simple que nous avons rencontrés et l’exécution du programme sur les lunettes. Des choses que nous arrivons maintenant à maitriser mais qui était floues à l'origine.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 13/10 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Programmation et gestion des interactions &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Durant cette semaine nous avons commencé a vraiment toucher aux fonctionnalités des Glass. Pour rester en main libre, nous avons fait des recherches et commencé à programmer de la reconnaissance vocale. Nous avons ainsi crée un système de navigation basique par commande vocale dans différents menus. Pour un accès rapide à l'application et toujours dans la même optique nous avons réussi à inclure le lancement de notre logiciel à partir du &amp;quot;Ok Glass&amp;quot; menu qui est le menu de lancement d'application par commande vocale des Google Glass. Voici un aperçu du résultat:&lt;br /&gt;
[[Fichier:V0_menu.png|1000px|center]]&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Analyse et évaluation du rendu &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Le début de la prise en main des fonctionnalités des Google Glass n'a pas été facile étant donné que la plupart des fonctionnalités sont propres à ce genre d'appareil. De plus elles nécessitent des techniques spéciales de programmation qui ne sont pas toujours très utilisées donc il est parfois difficile de trouver des exemples sur internet.&lt;br /&gt;
Néanmoins après l'implémentation de ces fonctionnalités nous avons pu rencontrer quelques difficultés de reconnaissance. En effet, les Google Glass possèdent un dictionnaire de mots/phrases pour la reconnaissance vocale mais elles nous permettent aussi d'écrire n'importe quelle phrase dans le mode développeur. Les phrases du dictionnaires ne posent aucun problème mais les phrases que nous écrivons sont parfois dures à reconnaitre. La reconnaissance de lettre seule ou de certains numéros est par exemple quasi impossible ou très aléatoire.&lt;br /&gt;
Le système de vu est quant à lui plutôt facile à prendre en main et intuitif dans l'utilisation.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 20/10 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Premiere structure de donnée &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Nous avons opté pour une structure de donnée récursive. Une Cellule, contenant des Allées, qui contiennent des Baies, contenant des Rangées, contenant des Emplacements.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Structure_export_resized.png|750px|center]]&lt;br /&gt;
Nous avons conçu cette structure de donnée pour qu'elle génère, dans un premier temps &amp;quot;en dur&amp;quot;, une cellule contenant des emplacements automatiquement adressés à la manière de ceux présent dans l'entrepôt. Ces adresses sont de la forme &amp;quot;D61A514&amp;quot; traduisez &amp;quot; Cellule 6 Allée 1A Baie 5 Rang 1 Niveau 4&amp;quot;.&lt;br /&gt;
Cette structure prend on compte le sens de circulation dans l'entrepôt.&lt;br /&gt;
Lors de futures interactions avec une base de donnée, cette structure serait sujette à évolution par une modification des méthodes de génération/modification du statut des adresses en fonction de cette base de donnée. Mais celle-ci constitue essentiellement une base pour appréhender plus pratiquement les problématiques de recherches de l'emplacement le plus proche.&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Prise en main de l'interface &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Nous avons déjà abordé les layouts java en TP donc il a été assez facile de commencer à faire des interfaces graphiques simples. Nous avons construit une interface graphique simple pour de faire une démonstration du programme aux tuteurs entreprise afin qu'ils comprennent bien le fonctionnement de notre algorithme.&lt;br /&gt;
L'interface graphique finale du programme sera très sobre afin de ne pas donner trop gêner le magasinier dans sa tâche.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 27/10 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Chemin optimal : Parcours intelligent Vs Sélection intelligente &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Un premier algorithme de recherche de l'emplacement le plus proche a été développé, celui-ci ne prend en compte qu'un seul scénario. &lt;br /&gt;
Celui de la position de départ (quai de déchargement où reviendra constamment le magasinier aprés chaque livraison) correspondante à la première allée de l'entrepôt, et en prenant en compte le sens de circulation. &lt;br /&gt;
A partir de ce moment, nous avons dégager deux grandes manières d'appréhender le problème.&lt;br /&gt;
&lt;br /&gt;
* Un parcours intelligent de la structure de donnée. C'est à dire parcourir les emplacements les plus proches, et choisir le premier emplacement libre. Une solution complexe à réaliser sur le plan algorithmique. En tenant compte du sens de circulation, il apparait que l'emplacement libre &amp;quot;leplusproche&amp;quot; (à vol d'oiseau) trouvé le plus tôt, ne correspondrait pas forcément à l'emplacement le plus proche compte tenu du chemin emprunté par un magasinier. Et c'est plutôt l'intérêt de cette algorithme.(Sauf dans l'unique cas où l'emplacement libre se trouve directement dans l'allée faisant face à la position de départ du magasinier, et le sens de circulation lui permet directement de se rendre à l'emplacement sans détour).&lt;br /&gt;
&lt;br /&gt;
* Une sélection intelligente parmi les emplacements libres. Leurs adresses renseignent à quelles allées, les emplacements libres appartiennent, donc renseignent sur le sens de circulation. A partir de la position de départ du magasinier et de l'ensemble des emplacements libres, on peut calculer la distance nécessaire à celui-ci pour les atteindre. Pour ainsi choisir l'adresse pour laquelle la distance est minimale.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 3/11 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Chemin optimal : sélection intelligente des adresses &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Nous avons écrit une premiere méthode de détermination. &lt;br /&gt;
On choisit l'emplacement, parmi tous ceux qui sont libres, pour lequel la distance de parcours est minimale entre le départ et celui-ci. &lt;br /&gt;
Ici l'unité de distance est la baie. La simplicité de l'algorithme réside dans le fait que le magasinier ne transporte qu'une seule caisse à la fois et repars toujours au même point de départ.&lt;br /&gt;
&lt;br /&gt;
Ci dessous un plan de l'entrepôt.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:schema_entrepot.png|750px|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Si on se place à l'entrée de l'Allée A :&lt;br /&gt;
&lt;br /&gt;
**le déplacement jusqu'à A4 (sens de circulation direct) est de : &lt;br /&gt;
&lt;br /&gt;
                        Y baies - (indice de la baie/2 +indice de la baie % 2) &lt;br /&gt;
&lt;br /&gt;
**le déplacement jusqu'à B1 (sens de circulation indirect) est de : &lt;br /&gt;
&lt;br /&gt;
                        Y baies + différence entre l'allée A et B donc X baies + indice de la baie/2 +indice de la baie % 2&lt;br /&gt;
**le déplacement jusqu'à C1 (sens de circulation direct) est de : &lt;br /&gt;
                      &lt;br /&gt;
                        Y baies - (indice de la baie/2 +indice de la baie % 2)+différence entre l'allée A et C donc 2*X baies.&lt;br /&gt;
&lt;br /&gt;
*Si on se place à l'entrée de l'Allée B :&lt;br /&gt;
**le déplacement jusqu'à B1 (sens de circulation indirect avec contournement) est de : &lt;br /&gt;
                        &lt;br /&gt;
                        2*X baies + Y baies + 2*X baies + (indice de la baie/2 +indice de la baie % 2)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On peut généraliser l'ensemble de ces situations de déplacement avec l'algorithme suivant :&lt;br /&gt;
&lt;br /&gt;
Pseudo code&lt;br /&gt;
&lt;br /&gt;
  Leplusproche( Allee depart )&lt;br /&gt;
    distance_la_plus_petite = valeurMAX&lt;br /&gt;
      le_plus_proche=&amp;quot;&amp;quot;&lt;br /&gt;
         Pour chaque Allee de Cellule&lt;br /&gt;
           sens=Allee.sens&lt;br /&gt;
           Pour chaque Baie de Allee&lt;br /&gt;
             Pour chaque Rang de Allee&lt;br /&gt;
 	       Pour chaque Emplacement de Rang&lt;br /&gt;
                Si Emplacement estlibre &lt;br /&gt;
                &lt;br /&gt;
                indice_baie = selection_indice_baie(Emplacement.adresse)&lt;br /&gt;
   		 allee_cible = selection_indice_allee(Emplacement.adresse)  &lt;br /&gt;
   		 difference_allee = valeur_absolue(depart -cible) &lt;br /&gt;
                    Si difference_allee==0 et sens.estindirect&lt;br /&gt;
                      //sens indirect +contournement&lt;br /&gt;
                      distance_actuelle=(indice_baie/2)+indice_baie%2+(2*(difference_allee))+4*X+Y			&lt;br /&gt;
                    Sinon	&lt;br /&gt;
                        Si sens estdirect&lt;br /&gt;
                          //sens direct &lt;br /&gt;
                          distance_actuelle=(Y-((indice_baie/2)+indice_baie%2))+2*difference_allee&lt;br /&gt;
                        Sinon&lt;br /&gt;
                          //sens indirect mais pas de contournement&lt;br /&gt;
                          distance_actuelle=((indice_baie/2)+indice_baie%2)+2*difference_allee+Y&lt;br /&gt;
                        Finsi	&lt;br /&gt;
                    Finsi	&lt;br /&gt;
                    Si distance_actuelle &amp;lt; distance_la_plus_petite&lt;br /&gt;
                      le_plus_proche=Emplacement.adresse&lt;br /&gt;
                      distance_la_plus_petite=distance_actuelle&lt;br /&gt;
                    Finsi&lt;br /&gt;
                Finsi  &lt;br /&gt;
            Finpour&lt;br /&gt;
          Finpour&lt;br /&gt;
        Finpour&lt;br /&gt;
      Finpour&lt;br /&gt;
    retourne le_plus_proche&lt;br /&gt;
  Finleplusproche&lt;br /&gt;
&lt;br /&gt;
Cet algorithme nous donne satisfaction (dans le cadre de la V1)&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 10/11 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Programmation et gestion des interactions &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Aprés quelques difficultés vis à vis de la gestion des menus vocaux sur les lunettes qui ne fonctionnent pas de la même manière que les menus classiques sous android, nous avons étoffé les interactions possible avec l'application des google glass. (Nous souhaitions inflater un deuxième menu pour interagir de manière plus contextuelle, il fallait le faire dans la méthode onCreatePanelMenu dont l'appel serait forcé avec getWindow().invalidatePanelMenu(WindowUtils.FEATURE_VOICE_COMMANDS) plutôt que dans onPrepareOptionsMenu forcée par invalidateOptionMenu()...) &lt;br /&gt;
&lt;br /&gt;
schéma d'utilisation...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Proposition projet affichage télévision &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Tele_concept.png|200px|thumb|right]]&lt;br /&gt;
&lt;br /&gt;
Notre tuteur nous a contacté pour nous proposer d'étudier un second projet en parallèle au projet initial. Celui consistant à gérer l'affichage d'information personnalisé d'un magasinier passant à proximité d'un écran de télévision. Nous devons effectuer un Proof Of Concept (POC) et réfléchir à ce sujet.&lt;br /&gt;
L'utilisation du BLE est donc de nouveau d'actualité, car je rappel que sont utilité était discutable dans une réalité métier du projet initial. La question étant plus de savoir comment gérer le système du coté du téléviseur.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Le concept de base étant de :&lt;br /&gt;
* Fournir une beacon aux magasiniers de l'entrepôt.&lt;br /&gt;
* Installer une télévision sur un centre de vie dans l'entrepôt avec une beacon&lt;br /&gt;
* Pousser du contenu personnalisé au magasinier qui se présente devant la tv dans son centre de vie&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 17/11 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Brainstorming à Polytech &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Dans la cadre du POC sur l'affichage personnalisé sur une télévision, nous avons profité d'un exercice de management pour faire participer la classe à notre projet. Grâce à cette intervention nous avons pu confirmer nos idées sur les technologies à utiliser. Mais nous avons surtout eu une multitude de propositions sur les données à afficher sur l'écran.&lt;br /&gt;
&lt;br /&gt;
Pour plus détails, le compte rendu est disponible à ce lien:&lt;br /&gt;
&lt;br /&gt;
'''Compte Rendu Brainstorming 17/11/2014 :''' [[Fichier:Compte_Rendu_POC_17_11.pdf]]&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Entretien avec notre tuteur entreprise &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Durant cet entretien, nous avons livré la première version de l'application et nous avons discuté de la suite du projet.&lt;br /&gt;
Ci joint le Compte Rendu.&lt;br /&gt;
&lt;br /&gt;
'''Compte Rendu  19/11/2014 :''' [[Fichier:Compte_Rendu_19_11.pdf]]&lt;br /&gt;
&lt;br /&gt;
De cette réunion, les points suivants en sont sortis:&lt;br /&gt;
&lt;br /&gt;
*Une reconnaissance vocale en langue française sur les lunettes serait plus intéressante pour les employés (une piste serait d’utiliser l’outil pocketsphinx-  android).&lt;br /&gt;
*Par rapport à l'IHM, il faudrait mettre l’affichage au premier plan sur les Google Glass pour une démo auprés des parties prenantes du projet.&lt;br /&gt;
*Choisir une architecture pour l’affichage d’information personnalisées.&lt;br /&gt;
**La télévision connectée à une raspberry qui communiquerait via un dongle BLE avec le beacon d’un magasinier, ce qui permettrait l’identification de celui-ci prés de la Télévision, et déclencherait un processus d’échange d’information. (Communication via le protocole Bluetooh, wifi entre les lunettes et la Raspberry  ou communication avec la Raspberry avec la Base de Donnée sur le réseau de l’entreprise)&lt;br /&gt;
**Une télévision connectée en continu à un site internet via un dongle HDMI.&lt;br /&gt;
**Une tablette android géante supportant le BLE, ou utilisant un dongle BLE.&lt;br /&gt;
* Réaliser le portage de l’application sur le prototype des lunettes ORA.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 24/11 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Reconnaissance vocale en Français &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Pocket Sphinx Android est une librairie permettant de faire de la reconnaissance vocale d'un langage donné sur un système android en offline.&lt;br /&gt;
Pour supporter une langue, elle nécessite: &lt;br /&gt;
*un modèle acoustique (ensemble d'informations pour le traitement sonore)&lt;br /&gt;
*un dictionnaire associant les mots et leur phonèmes&lt;br /&gt;
*une grammaire, c'est un fichier définissant comment seraient articulé les mots à reconnaître et limitant les possibilités de langage).&lt;br /&gt;
&lt;br /&gt;
La grammaire étant un automate. Voici un exemple de la grammaire menu.gram pour la reconnaissance de la porte de déchargement.&lt;br /&gt;
[[Fichier:Arborescence_pocket_sphinx.png|200px|thumb|right|PocketSphinx dans un projet Android]]&lt;br /&gt;
&lt;br /&gt;
  #JSGF V1.0;&lt;br /&gt;
  grammar menu;&lt;br /&gt;
  &amp;lt;porte&amp;gt; = porte a |&lt;br /&gt;
            porte b |&lt;br /&gt;
            porte c |&lt;br /&gt;
            porte d |&lt;br /&gt;
            porte e |&lt;br /&gt;
            porte f |&lt;br /&gt;
            porte g |&lt;br /&gt;
            porte h |&lt;br /&gt;
            porte i |&lt;br /&gt;
            porte j ;&lt;br /&gt;
  public &amp;lt;porte&amp;gt; = &amp;lt;porte&amp;gt;+;&lt;br /&gt;
&lt;br /&gt;
Un extrait du dictionnaire french_letter.dic associé avec les phonemes&lt;br /&gt;
&lt;br /&gt;
  a aa &amp;lt;-- juste la lettre a et son phoneme &lt;br /&gt;
  autre au tt rr&lt;br /&gt;
  autre(2) au tt rr ee &lt;br /&gt;
  b bb &lt;br /&gt;
  c ss &lt;br /&gt;
  d dd ei d(2) dd ait &lt;br /&gt;
  e eu e(2) eu zz &lt;br /&gt;
  f ai ff &lt;br /&gt;
  g jj ei g(2) gg ai &lt;br /&gt;
  h aa ch  &lt;br /&gt;
  i ii &lt;br /&gt;
  j jj yy j(2) jj ii&lt;br /&gt;
  porte pp oo rr tt&lt;br /&gt;
  porte(2) pp oo rr tt ee&lt;br /&gt;
  portes(2) pp oo rr tt ee&lt;br /&gt;
  portes(3) pp oo rr tt ee zz&lt;br /&gt;
  portes(4) pp oo rr tt zz&lt;br /&gt;
&lt;br /&gt;
Le modèle acoustique que nous avons téléchargé étant inclu dans lium_french_f0&lt;br /&gt;
&lt;br /&gt;
Nous avons testé la reconnaissance vocale sur un téléphone android, les mots sont, dans la majorité des cas, bien reconnus.&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Comparaison architectures projet TV &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Au niveau de l’architecture nous avons établi plusieurs propositions après la réunion avec notre tuteur:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour une Raspberry Pi avec un dongle BLE :&lt;br /&gt;
* Installation OS Linux sur la Raspberry&lt;br /&gt;
* Librairie BlueZ pour l’utilisation du BLE (tests rapides effectués sur Linux avec le Dongle)&lt;br /&gt;
* Interface graphique avec une bibliothèque comme Qt (ou encore SDL…)&lt;br /&gt;
* Prix : Rpi = 26€ (chez RadioSpare), Dongle = 10€, TV = à partir de 358€ pour 117cm, + Connectique vidéo. Total = 394€&lt;br /&gt;
&lt;br /&gt;
Pour un écran ViewSonic VSD231 :&lt;br /&gt;
* Possède une API Bluetooth classic + API BLE&lt;br /&gt;
* Interface graphique Android (View, Layout...)&lt;br /&gt;
* Prix : écran ViewSonic VSD231 = 558 € pour 58 cm (chez ViewSonic).&lt;br /&gt;
&lt;br /&gt;
Récupération d’informations :&lt;br /&gt;
* Si données sur les lunettes : Bluetooth ou Wifi.&lt;br /&gt;
* Si données sur serveur : Ethernet ou Wifi.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Vu les propositions possibles nous pensons que la première proposition permettra une meilleure souplesse dans le développement mais serait un peu plus compliquée. Mais nous la trouvons aussi plus intéressante à faire de plus elle est moins coûteuse et permet d'utiliser un écran plus grand. Le développement sur tablette serait sûrement plus rapide à faire en contrepartie.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 01/12 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Conférence GlassCamp à l'Imaginarium &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
GlassCamp est une association qui essaye de répandre l'utilisation de toute les Smart Glass en général. Elle propose de multiples conférences dans lesquelles ils essayent de montrer au public l’intérêt de développer sur ces appareils. Dans le cadre de notre projet, notre tuteur nous a proposé de participer à cette présentation afin de mieux s’approprier le sujet. La conférence a eu lieu le 4 décembre à l'Imaginarium: une grande partie était plutôt tournée vers la présentation mais nous avons apprîs plusieurs choses intéressantes qui sont décrites dans le compte rendu.&lt;br /&gt;
&lt;br /&gt;
'''Compte Rendu Conférence 04/12/2014 :''' [[Fichier:Compte_Rendu_Conf_GlassCamp.pdf]]&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaines du 08/12 et 15/12 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Reconnaissance vocale en Français &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Nous avons avancé sur la version française de l'application. A la manière du menu vocal des google glass, nous avons utilisé un délimiteur&lt;br /&gt;
&amp;quot;ok lunettes&amp;quot; pour démarrer l'interaction avec l'application, afin que les discussions et bruits ambiants n'interfèrent pas sur l'utilisation de celle-ci.&lt;br /&gt;
Voici le scénario d'utilisation de la nouvelle version de l'application en Français.&lt;br /&gt;
[[Fichier:Schema_fr.png|700px|center]]&lt;br /&gt;
&lt;br /&gt;
Sous pocketsphinx, le délimiteur n'apparait pas dans une grammaire. La grammaire permet de prédestiner l'application à choisir entre deux mots. &lt;br /&gt;
Dans notre application, le moteur de reconnaissance vocale choisi la distance la plus courte, séparant le mot prononcé par l'utilisateur et ceux&lt;br /&gt;
qu'il est possible d'entendre. Ainsi entre &amp;quot;oui&amp;quot; et &amp;quot;non&amp;quot;, l'application choisira forcément l'un des deux, même si l'utilisateur dit &amp;quot;bonjour&amp;quot;&lt;br /&gt;
&lt;br /&gt;
L'avantage du délimiteur est que sa détection repose sur un seuillage entre ce qui est prononcé et ce qui doit être reconnu, nous pouvons régler ce seuil.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 05/01 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Entretien avec notre tuteur &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Durant cet entretien nous avons défini les évolutions du projet.&lt;br /&gt;
&lt;br /&gt;
'''Compte Rendu de l'entretien du 06/01/2015 :''' [[Fichier:Compte_Rendu_4.pdf]]&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 12/01 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; TV connectée &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Nous avons pris en main la détection des beacons (de la marque Estimote fournis par l'entreprise) dans les systèmes android.&lt;br /&gt;
L'adresse MAC et le RSSI sont accessibles, ce sont les seules informations nécessaires que nous avons besoin en ce qui concerne les beacons.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 19/01 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt;Interface TV &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Nous avons développer plusieurs exemples d'interfaces avec les instructions de notre tuteur afin de choisir les meilleurs résultats ensembles. Nous avons définie quelques contraintes pour le design. Elle doit être&lt;br /&gt;
* Simple et intuitive&lt;br /&gt;
* En accord avec les couleurs de l'entreprise&lt;br /&gt;
* Moderne (système de tuile ou autre)&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 26/01 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Entretien avec notre tuteur &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Durant cette entretien nous avons défini plus précisément les objectifs du projet.&lt;br /&gt;
Ci dessous le compte rendu.&lt;br /&gt;
'''Compte Rendu de l'entretien du 26/01/2015 :''' [[Fichier:Compte_Rendu_5.pdf]]&lt;/div&gt;</summary>
		<author><name>Jgondry</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=P22_Google_Glass_en_logistique&amp;diff=16267</id>
		<title>P22 Google Glass en logistique</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=P22_Google_Glass_en_logistique&amp;diff=16267"/>
				<updated>2015-01-30T15:00:49Z</updated>
		
		<summary type="html">&lt;p&gt;Jgondry : /*  Semaine du 26/01  */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Introduction =&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Description du sujet &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
Notre projet vise à l’optimisation du stockage et de l’adressage des palettes dans un entrepôt. En effet, lors du déchargement d’un camion, chercher un emplacement libre pour les palettes dans un entrepôt occupant une grande superficie fait perdre du temps et donc de la productivité dans le stockage. Sachant qu’un cariste perd un temps non négligeable à la recherche d’emplacement disponible, optimiser ce temps de recherche permettrait de gagner du temps sur cette opération.&lt;br /&gt;
Développer un prototype permettrait de rendre compte des moyens existants qui pourrait être mis en place dans une solution métier.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Analyse du sujet &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Google_glass.png|200px|thumb|right|Paire de Google Glass]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Optinvent_ora.png|200px|thumb|right|Paire de ORA d'Optivent]]&lt;br /&gt;
&lt;br /&gt;
Notre projet consiste à fluidifier le déchargement en indiquant au cariste l’emplacement libre le plus proche. Pour ne pas gêner le travail des employés, un dispositif main-libre comme une Google Glass semble adapté. Ce projet soulève plusieurs problématiques : développer une interface homme-machine apportant une information pertinente pour l’utilisateur sans pour autant être perturbante. &lt;br /&gt;
&lt;br /&gt;
L’idée serait de réaliser dans les grandes lignes un système similaire à ce scénario d’utilisation :&lt;br /&gt;
http://n.mynews.ly/!lB.Bs4fw&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Moyen d’affichage de l’Informations pertinentes'''&lt;br /&gt;
&lt;br /&gt;
Les Google Glass ne sont pas les seules smart glasses sur le marché. Il nous faudra choisir les appareils les plus adaptés. L’information pertinente pourrait être une direction à suivre dans l’entrepôt ou simplement un numéro d’emplacement (adressage intuitif de l’entrepôt). &lt;br /&gt;
&lt;br /&gt;
'''Géolocalisation'''&lt;br /&gt;
&lt;br /&gt;
Dans le cas d’une direction à suivre se pose le problème de la géolocalisation indoor dont l’utilité et la faisabilité seront discutés au fil des réunions avec l’entreprise. &lt;br /&gt;
&lt;br /&gt;
'''Adressage / flashage'''&lt;br /&gt;
&lt;br /&gt;
En ce qui concerne l’adressage des palettes en entrepôt, la solution existante repose sur un flashage des codes barres associés à l’emplacement venant d’être occupé. Une étude de faisabilité/utilité sera aussi faite sur une solution de remplacement grâce aux possibilités qu’offrent les smart glasses.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Cahier des charges &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
En partant de l'analyse du sujet et des discussion avec notre tuteur, nous avons définie un cahier des charges plus précis des tâches à accomplir:&lt;br /&gt;
&lt;br /&gt;
* '''Développer un système embarqué sur une paire de lunette Smart Glass'''&lt;br /&gt;
** Comparer les différentes offres en matière de Smart Glass notamment Google Glass &amp;amp; ORA de Optinvent&lt;br /&gt;
** Concevoir une interface homme-machine non perturbante pour l'utilisateur.&lt;br /&gt;
* '''Etudier la nécessité d'utiliser une géolocalisation en entrepôt et l'implémenter si besoin'''&lt;br /&gt;
** Via RSSI (Wifi, Bluetooh Low Energy ...)&lt;br /&gt;
** Via traitement d'images (reconnaissance de la signalétique en entrepôt)&lt;br /&gt;
* '''Etudier les possibilités d'optimisation du système d'adressage des palettes'''&lt;br /&gt;
** Implémenter la reconnaissance de code barre&lt;br /&gt;
** La tester en réalité métier (utilité ajoutée, habitude des magasiniers, vitesse de traitement...)&lt;br /&gt;
&lt;br /&gt;
Le cahier des charges est encore en cours de construction&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Matériel utilisé &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; SmartGlass &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Lors de la réunion nous avons discuté des technologies à utiliser dans le projet, et plus particulièrement des différentes SmartGlass. En effet, il existe une multitude de sociétés qui développe ce genre de lunettes. Nous commencerons à utiliser les Google Glass étant donné que notre tuteur en a déjà commandé puis nous développerons sur les lunettes ORA de Optivent qui seront livrées fin octobre. Nous devrons donc faire un comparatif entre ces deux SmartGlass puis étudier les autres appareils disponibles sur le marché.&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Localisation &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
L'utilisation de la géolocalisation dans le projet est à débattre. Mais des tests seront probablement mis en place. L'entreprise possède quelque iBeacons BLE Estimote dans ses bureaux d'innovations que nous pourrons emprunter.&lt;br /&gt;
Dans le cas où leur gain d'informations serait utile il nous faudra comparer les modèles disponibles. Choisir un nombre de module et des emplacements stratégiques dans l'entrepôt afin d'avoir une localisation assez précise pour l'application.&lt;br /&gt;
&lt;br /&gt;
L'utilisation d'autres technologies de géolocalisation a été discuté comme le Wifi ou le XBee mais le BLE semblait le plus adapté dans le cadre de notre projet.&lt;br /&gt;
&lt;br /&gt;
= Déroulement du projet =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 22/09 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Réunion avec le tuteur entreprise dans l’entrepôt &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Nous avons observé en situation le problème et discuté des besoins, des moyens déjà utilisables. Il nous faudra prendre en compte plusieurs paramètres dans notre réflexion tels que le système de stockage et d'adressages des palettes, sens de circulation des caristes, superficie des zones à desservir, durée de livraison.&lt;br /&gt;
Nous avons suggéré des étapes de validation intermédiaire du système par les futurs utilisateurs et pour cela nous rencontrerons le chef d'équipe des magasiniers lorsque qu'une version sera assez développée.&lt;br /&gt;
&lt;br /&gt;
Nous avons défini avec le tuteur les premières deadlines du projet, voici la timeline récapitulative:&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Timeline_1.jpg||center|1000px]]&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Compte Rendu &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Nous avons rédigé un compte rendu de la première réunion détaillant les spécifications des versions des livrables, des schémas et les sujets abordés lors de la rencontre :&lt;br /&gt;
&lt;br /&gt;
'''Compte Rendu réunion du 25/09/2014 :''' [[Fichier:Compte_Rendu_25_09.pdf]]&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 29/09 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Découverte des Google Glass &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
*Prise en main des Google Glass. &lt;br /&gt;
*Installation d'applications (.apk) grand public. Nous avons utilisé l'outil Android Debug Bridge(adb). Se mettre à la place d'un utilisateur.&lt;br /&gt;
*L'une des deux lunettes qui serait retenue imposera forcément le développement d'une application android (ou d'une technologie trés proche d'android, pour les Google Glass, se basant sur le Glass Development Kit qui est un add-on au SDK classique d'android). Nous avons donc téléchargé les packages nécessaires pour commencer à développer. &lt;br /&gt;
** Nous commençons à nous former sur les technologies android :développement d'applications minimaliste.&lt;br /&gt;
** Installation de nos premières apk minimalistes pour Android.&lt;br /&gt;
** Installation d'une application minimaliste sur la Google Glass.&lt;br /&gt;
&lt;br /&gt;
Voici un comparatif réalisé entre les lunettes ORA et les Google Glass.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Différences Google Glass/ORA &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!   !! Google Glass !! ORA &lt;br /&gt;
|-&lt;br /&gt;
|Connectique&lt;br /&gt;
|Compatible BLE (à partir de la XE 16 KitKat Update), Wifi &lt;br /&gt;
|Compatible BLE, Wifi&lt;br /&gt;
|-&lt;br /&gt;
|Autonomie en utilisation normale&lt;br /&gt;
|de 1h à 2h &lt;br /&gt;
|de 4h à 8h&lt;br /&gt;
|-&lt;br /&gt;
|Son&lt;br /&gt;
|Conductivité Cranienne&lt;br /&gt;
|Prise jack&lt;br /&gt;
|-&lt;br /&gt;
|Interface&lt;br /&gt;
|Ecran occupant une faible superficie dans le champ de vision &lt;br /&gt;
|Ecran 2 positions (moyennes et basses), plus étendu permettant une réalité augmentée &lt;br /&gt;
|-&lt;br /&gt;
|Système d'exploitation&lt;br /&gt;
|Android 4.4&lt;br /&gt;
|Android 4.2.2&lt;br /&gt;
|-&lt;br /&gt;
|Calculs&lt;br /&gt;
|CPU &amp;amp; GPU&lt;br /&gt;
|CPU &amp;amp; GPU&lt;br /&gt;
|-&lt;br /&gt;
|Prix&lt;br /&gt;
|1500$ &lt;br /&gt;
|949$&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 06/10 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Deuxième rendez-vous avec le tuteur entreprise &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Nous avons fait part de notre avancée en matière de prise en main et des problèmes rencontrés en matière de développement.&lt;br /&gt;
Les lunettes ORA sont commandées elles arrivent d'ici la fin octobre.&lt;br /&gt;
&lt;br /&gt;
La première version V1 de l'application pour Google Glass à livrer pour la mi-novembre est fixée.&lt;br /&gt;
&lt;br /&gt;
En partant d'une position connue (en dur dans l'application) dans l'entrepôt, elle indiquera à un utilisateur les emplacements libres les plus proches.&lt;br /&gt;
&lt;br /&gt;
L'état d'occupation des emplacements sera consulté et stocké dans l'application. Il n'y aura donc pas de gestion des conflits. Le sens de circulation dans l'entrepôt sera pris en compte.&lt;br /&gt;
Une communication avec la base de donnée de l'entrepôt n'est pour le moment pas d'actualité, cela nécessiterait des développements en amont.&lt;br /&gt;
La géolocalisation n'est pas au goût du jour non plus. L'adressage des emplacements dans l'entrepôt est intuitif, il est donc facile pour un magasinier de &lt;br /&gt;
se rendre à un emplacement en connaissant l'adresse.&lt;br /&gt;
&lt;br /&gt;
Pour l'IHM, nous nous inspirerons des applications pour Google Glass (les Glasswares) de type GPS.&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Premiers programmes sur Google Glass &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Pour nous familiariser avec la programmation sur ce genre d'appareil nous avons tous deux décidé de suivre en premier le tutoriel Android d'un site spécialisé. Cela afin de mieux comprendre le système Android, avec les concepts d'activités, de view etc.&lt;br /&gt;
Dans un deuxième temps nous avons choisi de suivre plusieurs tutoriels nous expliquant la prise en main basique des lunettes afin de saisir les particularités de leur programmation.&lt;br /&gt;
&lt;br /&gt;
Le plus dur étant finalement de comprendre les liens entre tous les fichiers du projets, les problèmes de drivers et d'upload simple que nous avons rencontrés et l’exécution du programme sur les lunettes. Des choses que nous arrivons maintenant à maitriser mais qui était floues à l'origine.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 13/10 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Programmation et gestion des interactions &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Durant cette semaine nous avons commencé a vraiment toucher aux fonctionnalités des Glass. Pour rester en main libre, nous avons fait des recherches et commencé à programmer de la reconnaissance vocale. Nous avons ainsi crée un système de navigation basique par commande vocale dans différents menus. Pour un accès rapide à l'application et toujours dans la même optique nous avons réussi à inclure le lancement de notre logiciel à partir du &amp;quot;Ok Glass&amp;quot; menu qui est le menu de lancement d'application par commande vocale des Google Glass. Voici un aperçu du résultat:&lt;br /&gt;
[[Fichier:V0_menu.png|1000px|center]]&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Analyse et évaluation du rendu &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Le début de la prise en main des fonctionnalités des Google Glass n'a pas été facile étant donné que la plupart des fonctionnalités sont propres à ce genre d'appareil. De plus elles nécessitent des techniques spéciales de programmation qui ne sont pas toujours très utilisées donc il est parfois difficile de trouver des exemples sur internet.&lt;br /&gt;
Néanmoins après l'implémentation de ces fonctionnalités nous avons pu rencontrer quelques difficultés de reconnaissance. En effet, les Google Glass possèdent un dictionnaire de mots/phrases pour la reconnaissance vocale mais elles nous permettent aussi d'écrire n'importe quelle phrase dans le mode développeur. Les phrases du dictionnaires ne posent aucun problème mais les phrases que nous écrivons sont parfois dures à reconnaitre. La reconnaissance de lettre seule ou de certains numéros est par exemple quasi impossible ou très aléatoire.&lt;br /&gt;
Le système de vu est quant à lui plutôt facile à prendre en main et intuitif dans l'utilisation.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 20/10 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Premiere structure de donnée &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Nous avons opté pour une structure de donnée récursive. Une Cellule, contenant des Allées, qui contiennent des Baies, contenant des Rangées, contenant des Emplacements.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Structure_export_resized.png|750px|center]]&lt;br /&gt;
Nous avons conçu cette structure de donnée pour qu'elle génère, dans un premier temps &amp;quot;en dur&amp;quot;, une cellule contenant des emplacements automatiquement adressés à la manière de ceux présent dans l'entrepôt. Ces adresses sont de la forme &amp;quot;D61A514&amp;quot; traduisez &amp;quot; Cellule 6 Allée 1A Baie 5 Rang 1 Niveau 4&amp;quot;.&lt;br /&gt;
Cette structure prend on compte le sens de circulation dans l'entrepôt.&lt;br /&gt;
Lors de futures interactions avec une base de donnée, cette structure serait sujette à évolution par une modification des méthodes de génération/modification du statut des adresses en fonction de cette base de donnée. Mais celle-ci constitue essentiellement une base pour appréhender plus pratiquement les problématiques de recherches de l'emplacement le plus proche.&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Prise en main de l'interface &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Nous avons déjà abordé les layouts java en TP donc il a été assez facile de commencer à faire des interfaces graphiques simples. Nous avons construit une interface graphique simple pour de faire une démonstration du programme aux tuteurs entreprise afin qu'ils comprennent bien le fonctionnement de notre algorithme.&lt;br /&gt;
L'interface graphique finale du programme sera très sobre afin de ne pas donner trop gêner le magasinier dans sa tâche.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 27/10 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Chemin optimal : Parcours intelligent Vs Sélection intelligente &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Un premier algorithme de recherche de l'emplacement le plus proche a été développé, celui-ci ne prend en compte qu'un seul scénario. &lt;br /&gt;
Celui de la position de départ (quai de déchargement où reviendra constamment le magasinier aprés chaque livraison) correspondante à la première allée de l'entrepôt, et en prenant en compte le sens de circulation. &lt;br /&gt;
A partir de ce moment, nous avons dégager deux grandes manières d'appréhender le problème.&lt;br /&gt;
&lt;br /&gt;
* Un parcours intelligent de la structure de donnée. C'est à dire parcourir les emplacements les plus proches, et choisir le premier emplacement libre. Une solution complexe à réaliser sur le plan algorithmique. En tenant compte du sens de circulation, il apparait que l'emplacement libre &amp;quot;leplusproche&amp;quot; (à vol d'oiseau) trouvé le plus tôt, ne correspondrait pas forcément à l'emplacement le plus proche compte tenu du chemin emprunté par un magasinier. Et c'est plutôt l'intérêt de cette algorithme.(Sauf dans l'unique cas où l'emplacement libre se trouve directement dans l'allée faisant face à la position de départ du magasinier, et le sens de circulation lui permet directement de se rendre à l'emplacement sans détour).&lt;br /&gt;
&lt;br /&gt;
* Une sélection intelligente parmi les emplacements libres. Leurs adresses renseignent à quelles allées, les emplacements libres appartiennent, donc renseignent sur le sens de circulation. A partir de la position de départ du magasinier et de l'ensemble des emplacements libres, on peut calculer la distance nécessaire à celui-ci pour les atteindre. Pour ainsi choisir l'adresse pour laquelle la distance est minimale.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 3/11 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Chemin optimal : sélection intelligente des adresses &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Nous avons écrit une premiere méthode de détermination. &lt;br /&gt;
On choisit l'emplacement, parmi tous ceux qui sont libres, pour lequel la distance de parcours est minimale entre le départ et celui-ci. &lt;br /&gt;
Ici l'unité de distance est la baie. La simplicité de l'algorithme réside dans le fait que le magasinier ne transporte qu'une seule caisse à la fois et repars toujours au même point de départ.&lt;br /&gt;
&lt;br /&gt;
Ci dessous un plan de l'entrepôt.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:schema_entrepot.png|750px|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Si on se place à l'entrée de l'Allée A :&lt;br /&gt;
&lt;br /&gt;
**le déplacement jusqu'à A4 (sens de circulation direct) est de : &lt;br /&gt;
&lt;br /&gt;
                        Y baies - (indice de la baie/2 +indice de la baie % 2) &lt;br /&gt;
&lt;br /&gt;
**le déplacement jusqu'à B1 (sens de circulation indirect) est de : &lt;br /&gt;
&lt;br /&gt;
                        Y baies + différence entre l'allée A et B donc X baies + indice de la baie/2 +indice de la baie % 2&lt;br /&gt;
**le déplacement jusqu'à C1 (sens de circulation direct) est de : &lt;br /&gt;
                      &lt;br /&gt;
                        Y baies - (indice de la baie/2 +indice de la baie % 2)+différence entre l'allée A et C donc 2*X baies.&lt;br /&gt;
&lt;br /&gt;
*Si on se place à l'entrée de l'Allée B :&lt;br /&gt;
**le déplacement jusqu'à B1 (sens de circulation indirect avec contournement) est de : &lt;br /&gt;
                        &lt;br /&gt;
                        2*X baies + Y baies + 2*X baies + (indice de la baie/2 +indice de la baie % 2)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On peut généraliser l'ensemble de ces situations de déplacement avec l'algorithme suivant :&lt;br /&gt;
&lt;br /&gt;
Pseudo code&lt;br /&gt;
&lt;br /&gt;
  Leplusproche( Allee depart )&lt;br /&gt;
    distance_la_plus_petite = valeurMAX&lt;br /&gt;
      le_plus_proche=&amp;quot;&amp;quot;&lt;br /&gt;
         Pour chaque Allee de Cellule&lt;br /&gt;
           sens=Allee.sens&lt;br /&gt;
           Pour chaque Baie de Allee&lt;br /&gt;
             Pour chaque Rang de Allee&lt;br /&gt;
 	       Pour chaque Emplacement de Rang&lt;br /&gt;
                Si Emplacement estlibre &lt;br /&gt;
                &lt;br /&gt;
                indice_baie = selection_indice_baie(Emplacement.adresse)&lt;br /&gt;
   		 allee_cible = selection_indice_allee(Emplacement.adresse)  &lt;br /&gt;
   		 difference_allee = valeur_absolue(depart -cible) &lt;br /&gt;
                    Si difference_allee==0 et sens.estindirect&lt;br /&gt;
                      //sens indirect +contournement&lt;br /&gt;
                      distance_actuelle=(indice_baie/2)+indice_baie%2+(2*(difference_allee))+4*X+Y			&lt;br /&gt;
                    Sinon	&lt;br /&gt;
                        Si sens estdirect&lt;br /&gt;
                          //sens direct &lt;br /&gt;
                          distance_actuelle=(Y-((indice_baie/2)+indice_baie%2))+2*difference_allee&lt;br /&gt;
                        Sinon&lt;br /&gt;
                          //sens indirect mais pas de contournement&lt;br /&gt;
                          distance_actuelle=((indice_baie/2)+indice_baie%2)+2*difference_allee+Y&lt;br /&gt;
                        Finsi	&lt;br /&gt;
                    Finsi	&lt;br /&gt;
                    Si distance_actuelle &amp;lt; distance_la_plus_petite&lt;br /&gt;
                      le_plus_proche=Emplacement.adresse&lt;br /&gt;
                      distance_la_plus_petite=distance_actuelle&lt;br /&gt;
                    Finsi&lt;br /&gt;
                Finsi  &lt;br /&gt;
            Finpour&lt;br /&gt;
          Finpour&lt;br /&gt;
        Finpour&lt;br /&gt;
      Finpour&lt;br /&gt;
    retourne le_plus_proche&lt;br /&gt;
  Finleplusproche&lt;br /&gt;
&lt;br /&gt;
Cet algorithme nous donne satisfaction (dans le cadre de la V1)&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 10/11 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Programmation et gestion des interactions &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Aprés quelques difficultés vis à vis de la gestion des menus vocaux sur les lunettes qui ne fonctionnent pas de la même manière que les menus classiques sous android, nous avons étoffé les interactions possible avec l'application des google glass. (Nous souhaitions inflater un deuxième menu pour interagir de manière plus contextuelle, il fallait le faire dans la méthode onCreatePanelMenu dont l'appel serait forcé avec getWindow().invalidatePanelMenu(WindowUtils.FEATURE_VOICE_COMMANDS) plutôt que dans onPrepareOptionsMenu forcée par invalidateOptionMenu()...) &lt;br /&gt;
&lt;br /&gt;
schéma d'utilisation...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Proposition projet affichage télévision &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Tele_concept.png|200px|thumb|right]]&lt;br /&gt;
&lt;br /&gt;
Notre tuteur nous a contacté pour nous proposer d'étudier un second projet en parallèle au projet initial. Celui consistant à gérer l'affichage d'information personnalisé d'un magasinier passant à proximité d'un écran de télévision. Nous devons effectuer un Proof Of Concept (POC) et réfléchir à ce sujet.&lt;br /&gt;
L'utilisation du BLE est donc de nouveau d'actualité, car je rappel que sont utilité était discutable dans une réalité métier du projet initial. La question étant plus de savoir comment gérer le système du coté du téléviseur.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Le concept de base étant de :&lt;br /&gt;
* Fournir une beacon aux magasiniers de l'entrepôt.&lt;br /&gt;
* Installer une télévision sur un centre de vie dans l'entrepôt avec une beacon&lt;br /&gt;
* Pousser du contenu personnalisé au magasinier qui se présente devant la tv dans son centre de vie&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 17/11 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Brainstorming à Polytech &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Dans la cadre du POC sur l'affichage personnalisé sur une télévision, nous avons profité d'un exercice de management pour faire participer la classe à notre projet. Grâce à cette intervention nous avons pu confirmer nos idées sur les technologies à utiliser. Mais nous avons surtout eu une multitude de propositions sur les données à afficher sur l'écran.&lt;br /&gt;
&lt;br /&gt;
Pour plus détails, le compte rendu est disponible à ce lien:&lt;br /&gt;
&lt;br /&gt;
'''Compte Rendu Brainstorming 17/11/2014 :''' [[Fichier:Compte_Rendu_POC_17_11.pdf]]&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Entretien avec notre tuteur entreprise &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Durant cet entretien, nous avons livré la première version de l'application et nous avons discuté de la suite du projet.&lt;br /&gt;
Ci joint le Compte Rendu.&lt;br /&gt;
&lt;br /&gt;
'''Compte Rendu  19/11/2014 :''' [[Fichier:Compte_Rendu_19_11.pdf]]&lt;br /&gt;
&lt;br /&gt;
De cette réunion, les points suivants en sont sortis:&lt;br /&gt;
&lt;br /&gt;
*Une reconnaissance vocale en langue française sur les lunettes serait plus intéressante pour les employés (une piste serait d’utiliser l’outil pocketsphinx-  android).&lt;br /&gt;
*Par rapport à l'IHM, il faudrait mettre l’affichage au premier plan sur les Google Glass pour une démo auprés des parties prenantes du projet.&lt;br /&gt;
*Choisir une architecture pour l’affichage d’information personnalisées.&lt;br /&gt;
**La télévision connectée à une raspberry qui communiquerait via un dongle BLE avec le beacon d’un magasinier, ce qui permettrait l’identification de celui-ci prés de la Télévision, et déclencherait un processus d’échange d’information. (Communication via le protocole Bluetooh, wifi entre les lunettes et la Raspberry  ou communication avec la Raspberry avec la Base de Donnée sur le réseau de l’entreprise)&lt;br /&gt;
**Une télévision connectée en continu à un site internet via un dongle HDMI.&lt;br /&gt;
**Une tablette android géante supportant le BLE, ou utilisant un dongle BLE.&lt;br /&gt;
* Réaliser le portage de l’application sur le prototype des lunettes ORA.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 24/11 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Reconnaissance vocale en Français &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Pocket Sphinx Android est une librairie permettant de faire de la reconnaissance vocale d'un langage donné sur un système android en offline.&lt;br /&gt;
Pour supporter une langue, elle nécessite: &lt;br /&gt;
*un modèle acoustique (ensemble d'informations pour le traitement sonore)&lt;br /&gt;
*un dictionnaire associant les mots et leur phonèmes&lt;br /&gt;
*une grammaire, c'est un fichier définissant comment seraient articulé les mots à reconnaître et limitant les possibilités de langage).&lt;br /&gt;
&lt;br /&gt;
La grammaire étant un automate. Voici un exemple de la grammaire menu.gram pour la reconnaissance de la porte de déchargement.&lt;br /&gt;
[[Fichier:Arborescence_pocket_sphinx.png|200px|thumb|right|PocketSphinx dans un projet Android]]&lt;br /&gt;
&lt;br /&gt;
  #JSGF V1.0;&lt;br /&gt;
  grammar menu;&lt;br /&gt;
  &amp;lt;porte&amp;gt; = porte a |&lt;br /&gt;
            porte b |&lt;br /&gt;
            porte c |&lt;br /&gt;
            porte d |&lt;br /&gt;
            porte e |&lt;br /&gt;
            porte f |&lt;br /&gt;
            porte g |&lt;br /&gt;
            porte h |&lt;br /&gt;
            porte i |&lt;br /&gt;
            porte j ;&lt;br /&gt;
  public &amp;lt;porte&amp;gt; = &amp;lt;porte&amp;gt;+;&lt;br /&gt;
&lt;br /&gt;
Un extrait du dictionnaire french_letter.dic associé avec les phonemes&lt;br /&gt;
&lt;br /&gt;
  a aa &amp;lt;-- juste la lettre a et son phoneme &lt;br /&gt;
  autre au tt rr&lt;br /&gt;
  autre(2) au tt rr ee &lt;br /&gt;
  b bb &lt;br /&gt;
  c ss &lt;br /&gt;
  d dd ei d(2) dd ait &lt;br /&gt;
  e eu e(2) eu zz &lt;br /&gt;
  f ai ff &lt;br /&gt;
  g jj ei g(2) gg ai &lt;br /&gt;
  h aa ch  &lt;br /&gt;
  i ii &lt;br /&gt;
  j jj yy j(2) jj ii&lt;br /&gt;
  porte pp oo rr tt&lt;br /&gt;
  porte(2) pp oo rr tt ee&lt;br /&gt;
  portes(2) pp oo rr tt ee&lt;br /&gt;
  portes(3) pp oo rr tt ee zz&lt;br /&gt;
  portes(4) pp oo rr tt zz&lt;br /&gt;
&lt;br /&gt;
Le modèle acoustique que nous avons téléchargé étant inclu dans lium_french_f0&lt;br /&gt;
&lt;br /&gt;
Nous avons testé la reconnaissance vocale sur un téléphone android, les mots sont, dans la majorité des cas, bien reconnus.&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Comparaison architectures projet TV &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Au niveau de l’architecture nous avons établi plusieurs propositions après la réunion avec notre tuteur:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour une Raspberry Pi avec un dongle BLE :&lt;br /&gt;
* Installation OS Linux sur la Raspberry&lt;br /&gt;
* Librairie BlueZ pour l’utilisation du BLE (tests rapides effectués sur Linux avec le Dongle)&lt;br /&gt;
* Interface graphique avec une bibliothèque comme Qt (ou encore SDL…)&lt;br /&gt;
* Prix : Rpi = 26€ (chez RadioSpare), Dongle = 10€, TV = à partir de 358€ pour 117cm, + Connectique vidéo. Total = 394€&lt;br /&gt;
&lt;br /&gt;
Pour un écran ViewSonic VSD231 :&lt;br /&gt;
* Possède une API Bluetooth classic + API BLE&lt;br /&gt;
* Interface graphique Android (View, Layout...)&lt;br /&gt;
* Prix : écran ViewSonic VSD231 = 558 € pour 58 cm (chez ViewSonic).&lt;br /&gt;
&lt;br /&gt;
Récupération d’informations :&lt;br /&gt;
* Si données sur les lunettes : Bluetooth ou Wifi.&lt;br /&gt;
* Si données sur serveur : Ethernet ou Wifi.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Vu les propositions possibles nous pensons que la première proposition permettra une meilleure souplesse dans le développement mais serait un peu plus compliquée. Mais nous la trouvons aussi plus intéressante à faire de plus elle est moins coûteuse et permet d'utiliser un écran plus grand. Le développement sur tablette serait sûrement plus rapide à faire en contrepartie.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 01/12 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Conférence GlassCamp à l'Imaginarium &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
GlassCamp est une association qui essaye de répandre l'utilisation de toute les Smart Glass en général. Elle propose de multiples conférences dans lesquelles ils essayent de montrer au public l’intérêt de développer sur ces appareils. Dans le cadre de notre projet, notre tuteur nous a proposé de participer à cette présentation afin de mieux s’approprier le sujet. La conférence a eu lieu le 4 décembre à l'Imaginarium: une grande partie était plutôt tournée vers la présentation mais nous avons apprîs plusieurs choses intéressantes qui sont décrites dans le compte rendu.&lt;br /&gt;
&lt;br /&gt;
'''Compte Rendu Conférence 04/12/2014 :''' [[Fichier:Compte_Rendu_Conf_GlassCamp.pdf]]&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaines du 08/12 et 15/12 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Reconnaissance vocale en Français &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Nous avons avancé sur la version française de l'application. A la manière du menu vocal des google glass, nous avons utilisé un délimiteur&lt;br /&gt;
&amp;quot;ok lunettes&amp;quot; pour démarrer l'interaction avec l'application, afin que les discussions et bruits ambiants n'interfèrent pas sur l'utilisation de celle-ci.&lt;br /&gt;
Voici le scénario d'utilisation de la nouvelle version de l'application en Français.&lt;br /&gt;
[[Fichier:Schema_fr.png|700px|center]]&lt;br /&gt;
&lt;br /&gt;
Sous pocketsphinx, le délimiteur n'apparait pas dans une grammaire. La grammaire permet de prédestiner l'application à choisir entre deux mots. &lt;br /&gt;
Dans notre application, le moteur de reconnaissance vocale choisi la distance la plus courte, séparant le mot prononcé par l'utilisateur et ceux&lt;br /&gt;
qu'il est possible d'entendre. Ainsi entre &amp;quot;oui&amp;quot; et &amp;quot;non&amp;quot;, l'application choisira forcément l'un des deux, même si l'utilisateur dit &amp;quot;bonjour&amp;quot;&lt;br /&gt;
&lt;br /&gt;
L'avantage du délimiteur est que sa détection repose sur un seuillage entre ce qui est prononcé et ce qui doit être reconnu, nous pouvons régler ce seuil.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 05/01 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Entretien avec notre tuteur &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Durant cet entretien nous avons défini les évolutions du projet.&lt;br /&gt;
&lt;br /&gt;
'''Compte Rendu de l'entretien du 06/01/2015 :''' [[Fichier:Compte_Rendu_4.pdf]]&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 12/01 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; TV connectée &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Nous avons pris en main la détection des beacons (de la marque Estimote fournis par l'entreprise) dans les systèmes android.&lt;br /&gt;
L'adresse MAC et le RSSI sont accessibles, ce sont les seules informations nécessaires que nous avons besoin en ce qui concerne les beacons.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 19/01 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt;Interface TV &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Nous avons développer plusieurs exemples d'interfaces avec les instructions de notre tuteur afin de choisir les meilleurs résultats ensembles. Nous avons définie quelques contraintes pour le design. Elle doit être&lt;br /&gt;
* Simple et intuitive&lt;br /&gt;
* En accord avec les couleurs de l'entreprise&lt;br /&gt;
* Moderne (système de tuile ou autre)&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 26/01 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Entretien avec notre tuteur &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Durant cette entretien nous avons défini plus précisément les objectifs du projet.&lt;br /&gt;
Ci dessous le compte rendu.&lt;/div&gt;</summary>
		<author><name>Jgondry</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=P22_Google_Glass_en_logistique&amp;diff=15813</id>
		<title>P22 Google Glass en logistique</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=P22_Google_Glass_en_logistique&amp;diff=15813"/>
				<updated>2015-01-28T14:31:06Z</updated>
		
		<summary type="html">&lt;p&gt;Jgondry : /*  Semaine du 12/01  */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Introduction =&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Description du sujet &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
Notre projet vise à l’optimisation du stockage et de l’adressage des palettes dans un entrepôt. En effet, lors du déchargement d’un camion, chercher un emplacement libre pour les palettes dans un entrepôt occupant une grande superficie fait perdre du temps et donc de la productivité dans le stockage. Sachant qu’un cariste perd un temps non négligeable à la recherche d’emplacement disponible, optimiser ce temps de recherche permettrait de gagner du temps sur cette opération.&lt;br /&gt;
Développer un prototype permettrait de rendre compte des moyens existants qui pourrait être mis en place dans une solution métier.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Analyse du sujet &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Google_glass.png|200px|thumb|right|Paire de Google Glass]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Optinvent_ora.png|200px|thumb|right|Paire de ORA d'Optivent]]&lt;br /&gt;
&lt;br /&gt;
Notre projet consiste à fluidifier le déchargement en indiquant au cariste l’emplacement libre le plus proche. Pour ne pas gêner le travail des employés, un dispositif main-libre comme une Google Glass semble adapté. Ce projet soulève plusieurs problématiques : développer une interface homme-machine apportant une information pertinente pour l’utilisateur sans pour autant être perturbante. &lt;br /&gt;
&lt;br /&gt;
L’idée serait de réaliser dans les grandes lignes un système similaire à ce scénario d’utilisation :&lt;br /&gt;
http://n.mynews.ly/!lB.Bs4fw&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Moyen d’affichage de l’Informations pertinentes'''&lt;br /&gt;
&lt;br /&gt;
Les Google Glass ne sont pas les seules smart glasses sur le marché. Il nous faudra choisir les appareils les plus adaptés. L’information pertinente pourrait être une direction à suivre dans l’entrepôt ou simplement un numéro d’emplacement (adressage intuitif de l’entrepôt). &lt;br /&gt;
&lt;br /&gt;
'''Géolocalisation'''&lt;br /&gt;
&lt;br /&gt;
Dans le cas d’une direction à suivre se pose le problème de la géolocalisation indoor dont l’utilité et la faisabilité seront discutés au fil des réunions avec l’entreprise. &lt;br /&gt;
&lt;br /&gt;
'''Adressage / flashage'''&lt;br /&gt;
&lt;br /&gt;
En ce qui concerne l’adressage des palettes en entrepôt, la solution existante repose sur un flashage des codes barres associés à l’emplacement venant d’être occupé. Une étude de faisabilité/utilité sera aussi faite sur une solution de remplacement grâce aux possibilités qu’offrent les smart glasses.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Cahier des charges &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
En partant de l'analyse du sujet et des discussion avec notre tuteur, nous avons définie un cahier des charges plus précis des tâches à accomplir:&lt;br /&gt;
&lt;br /&gt;
* '''Développer un système embarqué sur une paire de lunette Smart Glass'''&lt;br /&gt;
** Comparer les différentes offres en matière de Smart Glass notamment Google Glass &amp;amp; ORA de Optinvent&lt;br /&gt;
** Concevoir une interface homme-machine non perturbante pour l'utilisateur.&lt;br /&gt;
* '''Etudier la nécessité d'utiliser une géolocalisation en entrepôt et l'implémenter si besoin'''&lt;br /&gt;
** Via RSSI (Wifi, Bluetooh Low Energy ...)&lt;br /&gt;
** Via traitement d'images (reconnaissance de la signalétique en entrepôt)&lt;br /&gt;
* '''Etudier les possibilités d'optimisation du système d'adressage des palettes'''&lt;br /&gt;
** Implémenter la reconnaissance de code barre&lt;br /&gt;
** La tester en réalité métier (utilité ajoutée, habitude des magasiniers, vitesse de traitement...)&lt;br /&gt;
&lt;br /&gt;
Le cahier des charges est encore en cours de construction&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Matériel utilisé &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; SmartGlass &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Lors de la réunion nous avons discuté des technologies à utiliser dans le projet, et plus particulièrement des différentes SmartGlass. En effet, il existe une multitude de sociétés qui développe ce genre de lunettes. Nous commencerons à utiliser les Google Glass étant donné que notre tuteur en a déjà commandé puis nous développerons sur les lunettes ORA de Optivent qui seront livrées fin octobre. Nous devrons donc faire un comparatif entre ces deux SmartGlass puis étudier les autres appareils disponibles sur le marché.&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Localisation &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
L'utilisation de la géolocalisation dans le projet est à débattre. Mais des tests seront probablement mis en place. L'entreprise possède quelque iBeacons BLE Estimote dans ses bureaux d'innovations que nous pourrons emprunter.&lt;br /&gt;
Dans le cas où leur gain d'informations serait utile il nous faudra comparer les modèles disponibles. Choisir un nombre de module et des emplacements stratégiques dans l'entrepôt afin d'avoir une localisation assez précise pour l'application.&lt;br /&gt;
&lt;br /&gt;
L'utilisation d'autres technologies de géolocalisation a été discuté comme le Wifi ou le XBee mais le BLE semblait le plus adapté dans le cadre de notre projet.&lt;br /&gt;
&lt;br /&gt;
= Déroulement du projet =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 22/09 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Réunion avec le tuteur entreprise dans l’entrepôt &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Nous avons observé en situation le problème et discuté des besoins, des moyens déjà utilisables. Il nous faudra prendre en compte plusieurs paramètres dans notre réflexion tels que le système de stockage et d'adressages des palettes, sens de circulation des caristes, superficie des zones à desservir, durée de livraison.&lt;br /&gt;
Nous avons suggéré des étapes de validation intermédiaire du système par les futurs utilisateurs et pour cela nous rencontrerons le chef d'équipe des magasiniers lorsque qu'une version sera assez développée.&lt;br /&gt;
&lt;br /&gt;
Nous avons défini avec le tuteur les premières deadlines du projet, voici la timeline récapitulative:&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Timeline_1.jpg||center|1000px]]&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Compte Rendu &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Nous avons rédigé un compte rendu de la première réunion détaillant les spécifications des versions des livrables, des schémas et les sujets abordés lors de la rencontre :&lt;br /&gt;
&lt;br /&gt;
'''Compte Rendu réunion du 25/09/2014 :''' [[Fichier:Compte_Rendu_25_09.pdf]]&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 29/09 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Découverte des Google Glass &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
*Prise en main des Google Glass. &lt;br /&gt;
*Installation d'applications (.apk) grand public. Nous avons utilisé l'outil Android Debug Bridge(adb). Se mettre à la place d'un utilisateur.&lt;br /&gt;
*L'une des deux lunettes qui serait retenue imposera forcément le développement d'une application android (ou d'une technologie trés proche d'android, pour les Google Glass, se basant sur le Glass Development Kit qui est un add-on au SDK classique d'android). Nous avons donc téléchargé les packages nécessaires pour commencer à développer. &lt;br /&gt;
** Nous commençons à nous former sur les technologies android :développement d'applications minimaliste.&lt;br /&gt;
** Installation de nos premières apk minimalistes pour Android.&lt;br /&gt;
** Installation d'une application minimaliste sur la Google Glass.&lt;br /&gt;
&lt;br /&gt;
Voici un comparatif réalisé entre les lunettes ORA et les Google Glass.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Différences Google Glass/ORA &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!   !! Google Glass !! ORA &lt;br /&gt;
|-&lt;br /&gt;
|Connectique&lt;br /&gt;
|Compatible BLE (à partir de la XE 16 KitKat Update), Wifi &lt;br /&gt;
|Compatible BLE, Wifi&lt;br /&gt;
|-&lt;br /&gt;
|Autonomie en utilisation normale&lt;br /&gt;
|de 1h à 2h &lt;br /&gt;
|de 4h à 8h&lt;br /&gt;
|-&lt;br /&gt;
|Son&lt;br /&gt;
|Conductivité Cranienne&lt;br /&gt;
|Prise jack&lt;br /&gt;
|-&lt;br /&gt;
|Interface&lt;br /&gt;
|Ecran occupant une faible superficie dans le champ de vision &lt;br /&gt;
|Ecran 2 positions (moyennes et basses), plus étendu permettant une réalité augmentée &lt;br /&gt;
|-&lt;br /&gt;
|Système d'exploitation&lt;br /&gt;
|Android 4.4&lt;br /&gt;
|Android 4.2.2&lt;br /&gt;
|-&lt;br /&gt;
|Calculs&lt;br /&gt;
|CPU &amp;amp; GPU&lt;br /&gt;
|CPU &amp;amp; GPU&lt;br /&gt;
|-&lt;br /&gt;
|Prix&lt;br /&gt;
|1500$ &lt;br /&gt;
|949$&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 06/10 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Deuxième rendez-vous avec le tuteur entreprise &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Nous avons fait part de notre avancée en matière de prise en main et des problèmes rencontrés en matière de développement.&lt;br /&gt;
Les lunettes ORA sont commandées elles arrivent d'ici la fin octobre.&lt;br /&gt;
&lt;br /&gt;
La première version V1 de l'application pour Google Glass à livrer pour la mi-novembre est fixée.&lt;br /&gt;
&lt;br /&gt;
En partant d'une position connue (en dur dans l'application) dans l'entrepôt, elle indiquera à un utilisateur les emplacements libres les plus proches.&lt;br /&gt;
&lt;br /&gt;
L'état d'occupation des emplacements sera consulté et stocké dans l'application. Il n'y aura donc pas de gestion des conflits. Le sens de circulation dans l'entrepôt sera pris en compte.&lt;br /&gt;
Une communication avec la base de donnée de l'entrepôt n'est pour le moment pas d'actualité, cela nécessiterait des développements en amont.&lt;br /&gt;
La géolocalisation n'est pas au goût du jour non plus. L'adressage des emplacements dans l'entrepôt est intuitif, il est donc facile pour un magasinier de &lt;br /&gt;
se rendre à un emplacement en connaissant l'adresse.&lt;br /&gt;
&lt;br /&gt;
Pour l'IHM, nous nous inspirerons des applications pour Google Glass (les Glasswares) de type GPS.&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Premiers programmes sur Google Glass &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Pour nous familiariser avec la programmation sur ce genre d'appareil nous avons tous deux décidé de suivre en premier le tutoriel Android d'un site spécialisé. Cela afin de mieux comprendre le système Android, avec les concepts d'activités, de view etc.&lt;br /&gt;
Dans un deuxième temps nous avons choisi de suivre plusieurs tutoriels nous expliquant la prise en main basique des lunettes afin de saisir les particularités de leur programmation.&lt;br /&gt;
&lt;br /&gt;
Le plus dur étant finalement de comprendre les liens entre tous les fichiers du projets, les problèmes de drivers et d'upload simple que nous avons rencontrés et l’exécution du programme sur les lunettes. Des choses que nous arrivons maintenant à maitriser mais qui était floues à l'origine.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 13/10 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Programmation et gestion des interactions &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Durant cette semaine nous avons commencé a vraiment toucher aux fonctionnalités des Glass. Pour rester en main libre, nous avons fait des recherches et commencé à programmer de la reconnaissance vocale. Nous avons ainsi crée un système de navigation basique par commande vocale dans différents menus. Pour un accès rapide à l'application et toujours dans la même optique nous avons réussi à inclure le lancement de notre logiciel à partir du &amp;quot;Ok Glass&amp;quot; menu qui est le menu de lancement d'application par commande vocale des Google Glass. Voici un aperçu du résultat:&lt;br /&gt;
[[Fichier:V0_menu.png|1000px|center]]&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Analyse et évaluation du rendu &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Le début de la prise en main des fonctionnalités des Google Glass n'a pas été facile étant donné que la plupart des fonctionnalités sont propres à ce genre d'appareil. De plus elles nécessitent des techniques spéciales de programmation qui ne sont pas toujours très utilisées donc il est parfois difficile de trouver des exemples sur internet.&lt;br /&gt;
Néanmoins après l'implémentation de ces fonctionnalités nous avons pu rencontrer quelques difficultés de reconnaissance. En effet, les Google Glass possèdent un dictionnaire de mots/phrases pour la reconnaissance vocale mais elles nous permettent aussi d'écrire n'importe quelle phrase dans le mode développeur. Les phrases du dictionnaires ne posent aucun problème mais les phrases que nous écrivons sont parfois dures à reconnaitre. La reconnaissance de lettre seule ou de certains numéros est par exemple quasi impossible ou très aléatoire.&lt;br /&gt;
Le système de vu est quant à lui plutôt facile à prendre en main et intuitif dans l'utilisation.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 20/10 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Premiere structure de donnée &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Nous avons opté pour une structure de donnée récursive. Une Cellule, contenant des Allées, qui contiennent des Baies, contenant des Rangées, contenant des Emplacements.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Structure_export_resized.png|750px|center]]&lt;br /&gt;
Nous avons conçu cette structure de donnée pour qu'elle génère, dans un premier temps &amp;quot;en dur&amp;quot;, une cellule contenant des emplacements automatiquement adressés à la manière de ceux présent dans l'entrepôt. Ces adresses sont de la forme &amp;quot;D61A514&amp;quot; traduisez &amp;quot; Cellule 6 Allée 1A Baie 5 Rang 1 Niveau 4&amp;quot;.&lt;br /&gt;
Cette structure prend on compte le sens de circulation dans l'entrepôt.&lt;br /&gt;
Lors de futures interactions avec une base de donnée, cette structure serait sujette à évolution par une modification des méthodes de génération/modification du statut des adresses en fonction de cette base de donnée. Mais celle-ci constitue essentiellement une base pour appréhender plus pratiquement les problématiques de recherches de l'emplacement le plus proche.&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Prise en main de l'interface &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Nous avons déjà abordé les layouts java en TP donc il a été assez facile de commencer à faire des interfaces graphiques simples. Nous avons construit une interface graphique simple pour de faire une démonstration du programme aux tuteurs entreprise afin qu'ils comprennent bien le fonctionnement de notre algorithme.&lt;br /&gt;
L'interface graphique finale du programme sera très sobre afin de ne pas donner trop gêner le magasinier dans sa tâche.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 27/10 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Chemin optimal : Parcours intelligent Vs Sélection intelligente &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Un premier algorithme de recherche de l'emplacement le plus proche a été développé, celui-ci ne prend en compte qu'un seul scénario. &lt;br /&gt;
Celui de la position de départ (quai de déchargement où reviendra constamment le magasinier aprés chaque livraison) correspondante à la première allée de l'entrepôt, et en prenant en compte le sens de circulation. &lt;br /&gt;
A partir de ce moment, nous avons dégager deux grandes manières d'appréhender le problème.&lt;br /&gt;
&lt;br /&gt;
* Un parcours intelligent de la structure de donnée. C'est à dire parcourir les emplacements les plus proches, et choisir le premier emplacement libre. Une solution complexe à réaliser sur le plan algorithmique. En tenant compte du sens de circulation, il apparait que l'emplacement libre &amp;quot;leplusproche&amp;quot; (à vol d'oiseau) trouvé le plus tôt, ne correspondrait pas forcément à l'emplacement le plus proche compte tenu du chemin emprunté par un magasinier. Et c'est plutôt l'intérêt de cette algorithme.(Sauf dans l'unique cas où l'emplacement libre se trouve directement dans l'allée faisant face à la position de départ du magasinier, et le sens de circulation lui permet directement de se rendre à l'emplacement sans détour).&lt;br /&gt;
&lt;br /&gt;
* Une sélection intelligente parmi les emplacements libres. Leurs adresses renseignent à quelles allées, les emplacements libres appartiennent, donc renseignent sur le sens de circulation. A partir de la position de départ du magasinier et de l'ensemble des emplacements libres, on peut calculer la distance nécessaire à celui-ci pour les atteindre. Pour ainsi choisir l'adresse pour laquelle la distance est minimale.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 3/11 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Chemin optimal : sélection intelligente des adresses &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Nous avons écrit une premiere méthode de détermination. &lt;br /&gt;
On choisit l'emplacement, parmi tous ceux qui sont libres, pour lequel la distance de parcours est minimale entre le départ et celui-ci. &lt;br /&gt;
Ici l'unité de distance est la baie. La simplicité de l'algorithme réside dans le fait que le magasinier ne transporte qu'une seule caisse à la fois et repars toujours au même point de départ.&lt;br /&gt;
&lt;br /&gt;
Ci dessous un plan de l'entrepôt.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:schema_entrepot.png|750px|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Si on se place à l'entrée de l'Allée A :&lt;br /&gt;
&lt;br /&gt;
**le déplacement jusqu'à A4 (sens de circulation direct) est de : &lt;br /&gt;
&lt;br /&gt;
                        Y baies - (indice de la baie/2 +indice de la baie % 2) &lt;br /&gt;
&lt;br /&gt;
**le déplacement jusqu'à B1 (sens de circulation indirect) est de : &lt;br /&gt;
&lt;br /&gt;
                        Y baies + différence entre l'allée A et B donc X baies + indice de la baie/2 +indice de la baie % 2&lt;br /&gt;
**le déplacement jusqu'à C1 (sens de circulation direct) est de : &lt;br /&gt;
                      &lt;br /&gt;
                        Y baies - (indice de la baie/2 +indice de la baie % 2)+différence entre l'allée A et C donc 2*X baies.&lt;br /&gt;
&lt;br /&gt;
*Si on se place à l'entrée de l'Allée B :&lt;br /&gt;
**le déplacement jusqu'à B1 (sens de circulation indirect avec contournement) est de : &lt;br /&gt;
                        &lt;br /&gt;
                        2*X baies + Y baies + 2*X baies + (indice de la baie/2 +indice de la baie % 2)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On peut généraliser l'ensemble de ces situations de déplacement avec l'algorithme suivant :&lt;br /&gt;
&lt;br /&gt;
Pseudo code&lt;br /&gt;
&lt;br /&gt;
  Leplusproche( Allee depart )&lt;br /&gt;
    distance_la_plus_petite = valeurMAX&lt;br /&gt;
      le_plus_proche=&amp;quot;&amp;quot;&lt;br /&gt;
         Pour chaque Allee de Cellule&lt;br /&gt;
           sens=Allee.sens&lt;br /&gt;
           Pour chaque Baie de Allee&lt;br /&gt;
             Pour chaque Rang de Allee&lt;br /&gt;
 	       Pour chaque Emplacement de Rang&lt;br /&gt;
                Si Emplacement estlibre &lt;br /&gt;
                &lt;br /&gt;
                indice_baie = selection_indice_baie(Emplacement.adresse)&lt;br /&gt;
   		 allee_cible = selection_indice_allee(Emplacement.adresse)  &lt;br /&gt;
   		 difference_allee = valeur_absolue(depart -cible) &lt;br /&gt;
                    Si difference_allee==0 et sens.estindirect&lt;br /&gt;
                      //sens indirect +contournement&lt;br /&gt;
                      distance_actuelle=(indice_baie/2)+indice_baie%2+(2*(difference_allee))+4*X+Y			&lt;br /&gt;
                    Sinon	&lt;br /&gt;
                        Si sens estdirect&lt;br /&gt;
                          //sens direct &lt;br /&gt;
                          distance_actuelle=(Y-((indice_baie/2)+indice_baie%2))+2*difference_allee&lt;br /&gt;
                        Sinon&lt;br /&gt;
                          //sens indirect mais pas de contournement&lt;br /&gt;
                          distance_actuelle=((indice_baie/2)+indice_baie%2)+2*difference_allee+Y&lt;br /&gt;
                        Finsi	&lt;br /&gt;
                    Finsi	&lt;br /&gt;
                    Si distance_actuelle &amp;lt; distance_la_plus_petite&lt;br /&gt;
                      le_plus_proche=Emplacement.adresse&lt;br /&gt;
                      distance_la_plus_petite=distance_actuelle&lt;br /&gt;
                    Finsi&lt;br /&gt;
                Finsi  &lt;br /&gt;
            Finpour&lt;br /&gt;
          Finpour&lt;br /&gt;
        Finpour&lt;br /&gt;
      Finpour&lt;br /&gt;
    retourne le_plus_proche&lt;br /&gt;
  Finleplusproche&lt;br /&gt;
&lt;br /&gt;
Cet algorithme nous donne satisfaction (dans le cadre de la V1)&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 10/11 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Programmation et gestion des interactions &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Aprés quelques difficultés vis à vis de la gestion des menus vocaux sur les lunettes qui ne fonctionnent pas de la même manière que les menus classiques sous android, nous avons étoffé les interactions possible avec l'application des google glass. (Nous souhaitions inflater un deuxième menu pour interagir de manière plus contextuelle, il fallait le faire dans la méthode onCreatePanelMenu dont l'appel serait forcé avec getWindow().invalidatePanelMenu(WindowUtils.FEATURE_VOICE_COMMANDS) plutôt que dans onPrepareOptionsMenu forcée par invalidateOptionMenu()...) &lt;br /&gt;
&lt;br /&gt;
schéma d'utilisation...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Proposition projet affichage télévision &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Tele_concept.png|200px|thumb|right]]&lt;br /&gt;
&lt;br /&gt;
Notre tuteur nous a contacté pour nous proposer d'étudier un second projet en parallèle au projet initial. Celui consistant à gérer l'affichage d'information personnalisé d'un magasinier passant à proximité d'un écran de télévision. Nous devons effectuer un Proof Of Concept (POC) et réfléchir à ce sujet.&lt;br /&gt;
L'utilisation du BLE est donc de nouveau d'actualité, car je rappel que sont utilité était discutable dans une réalité métier du projet initial. La question étant plus de savoir comment gérer le système du coté du téléviseur.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Le concept de base étant de :&lt;br /&gt;
* Fournir une beacon aux magasiniers de l'entrepôt.&lt;br /&gt;
* Installer une télévision sur un centre de vie dans l'entrepôt avec une beacon&lt;br /&gt;
* Pousser du contenu personnalisé au magasinier qui se présente devant la tv dans son centre de vie&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 17/11 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Brainstorming à Polytech &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Dans la cadre du POC sur l'affichage personnalisé sur une télévision, nous avons profité d'un exercice de management pour faire participer la classe à notre projet. Grâce à cette intervention nous avons pu confirmer nos idées sur les technologies à utiliser. Mais nous avons surtout eu une multitude de propositions sur les données à afficher sur l'écran.&lt;br /&gt;
&lt;br /&gt;
Pour plus détails, le compte rendu est disponible à ce lien:&lt;br /&gt;
&lt;br /&gt;
'''Compte Rendu Brainstorming 17/11/2014 :''' [[Fichier:Compte_Rendu_POC_17_11.pdf]]&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Entretien avec notre tuteur entreprise &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Durant cet entretien, nous avons livré la première version de l'application et nous avons discuté de la suite du projet.&lt;br /&gt;
Ci joint le Compte Rendu.&lt;br /&gt;
&lt;br /&gt;
'''Compte Rendu  19/11/2014 :''' [[Fichier:Compte_Rendu_19_11.pdf]]&lt;br /&gt;
&lt;br /&gt;
De cette réunion, les points suivants en sont sortis:&lt;br /&gt;
&lt;br /&gt;
*Une reconnaissance vocale en langue française sur les lunettes serait plus intéressante pour les employés (une piste serait d’utiliser l’outil pocketsphinx-  android).&lt;br /&gt;
*Par rapport à l'IHM, il faudrait mettre l’affichage au premier plan sur les Google Glass pour une démo auprés des parties prenantes du projet.&lt;br /&gt;
*Choisir une architecture pour l’affichage d’information personnalisées.&lt;br /&gt;
**La télévision connectée à une raspberry qui communiquerait via un dongle BLE avec le beacon d’un magasinier, ce qui permettrait l’identification de celui-ci prés de la Télévision, et déclencherait un processus d’échange d’information. (Communication via le protocole Bluetooh, wifi entre les lunettes et la Raspberry  ou communication avec la Raspberry avec la Base de Donnée sur le réseau de l’entreprise)&lt;br /&gt;
**Une télévision connectée en continu à un site internet via un dongle HDMI.&lt;br /&gt;
**Une tablette android géante supportant le BLE, ou utilisant un dongle BLE.&lt;br /&gt;
* Réaliser le portage de l’application sur le prototype des lunettes ORA.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 24/11 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Reconnaissance vocale en Français &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Pocket Sphinx Android est une librairie permettant de faire de la reconnaissance vocale d'un langage donné sur un système android en offline.&lt;br /&gt;
Pour supporter une langue, elle nécessite: &lt;br /&gt;
*un modèle acoustique (ensemble d'informations pour le traitement sonore)&lt;br /&gt;
*un dictionnaire associant les mots et leur phonèmes&lt;br /&gt;
*une grammaire, c'est un fichier définissant comment seraient articulé les mots à reconnaître et limitant les possibilités de langage).&lt;br /&gt;
&lt;br /&gt;
La grammaire étant un automate. Voici un exemple de la grammaire menu.gram pour la reconnaissance de la porte de déchargement.&lt;br /&gt;
[[Fichier:Arborescence_pocket_sphinx.png|200px|thumb|right|PocketSphinx dans un projet Android]]&lt;br /&gt;
&lt;br /&gt;
  #JSGF V1.0;&lt;br /&gt;
  grammar menu;&lt;br /&gt;
  &amp;lt;porte&amp;gt; = porte a |&lt;br /&gt;
            porte b |&lt;br /&gt;
            porte c |&lt;br /&gt;
            porte d |&lt;br /&gt;
            porte e |&lt;br /&gt;
            porte f |&lt;br /&gt;
            porte g |&lt;br /&gt;
            porte h |&lt;br /&gt;
            porte i |&lt;br /&gt;
            porte j ;&lt;br /&gt;
  public &amp;lt;porte&amp;gt; = &amp;lt;porte&amp;gt;+;&lt;br /&gt;
&lt;br /&gt;
Un extrait du dictionnaire french_letter.dic associé avec les phonemes&lt;br /&gt;
&lt;br /&gt;
  a aa &amp;lt;-- juste la lettre a et son phoneme &lt;br /&gt;
  autre au tt rr&lt;br /&gt;
  autre(2) au tt rr ee &lt;br /&gt;
  b bb &lt;br /&gt;
  c ss &lt;br /&gt;
  d dd ei d(2) dd ait &lt;br /&gt;
  e eu e(2) eu zz &lt;br /&gt;
  f ai ff &lt;br /&gt;
  g jj ei g(2) gg ai &lt;br /&gt;
  h aa ch  &lt;br /&gt;
  i ii &lt;br /&gt;
  j jj yy j(2) jj ii&lt;br /&gt;
  porte pp oo rr tt&lt;br /&gt;
  porte(2) pp oo rr tt ee&lt;br /&gt;
  portes(2) pp oo rr tt ee&lt;br /&gt;
  portes(3) pp oo rr tt ee zz&lt;br /&gt;
  portes(4) pp oo rr tt zz&lt;br /&gt;
&lt;br /&gt;
Le modèle acoustique que nous avons téléchargé étant inclu dans lium_french_f0&lt;br /&gt;
&lt;br /&gt;
Nous avons testé la reconnaissance vocale sur un téléphone android, les mots sont, dans la majorité des cas, bien reconnus.&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Comparaison architectures projet TV &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Au niveau de l’architecture nous avons établi plusieurs propositions après la réunion avec notre tuteur:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour une Raspberry Pi avec un dongle BLE :&lt;br /&gt;
* Installation OS Linux sur la Raspberry&lt;br /&gt;
* Librairie BlueZ pour l’utilisation du BLE (tests rapides effectués sur Linux avec le Dongle)&lt;br /&gt;
* Interface graphique avec une bibliothèque comme Qt (ou encore SDL…)&lt;br /&gt;
* Prix : Rpi = 26€ (chez RadioSpare), Dongle = 10€, TV = à partir de 358€ pour 117cm, + Connectique vidéo. Total = 394€&lt;br /&gt;
&lt;br /&gt;
Pour un écran ViewSonic VSD231 :&lt;br /&gt;
* Possède une API Bluetooth classic + API BLE&lt;br /&gt;
* Interface graphique Android (View, Layout...)&lt;br /&gt;
* Prix : écran ViewSonic VSD231 = 558 € pour 58 cm (chez ViewSonic).&lt;br /&gt;
&lt;br /&gt;
Récupération d’informations :&lt;br /&gt;
* Si données sur les lunettes : Bluetooth ou Wifi.&lt;br /&gt;
* Si données sur serveur : Ethernet ou Wifi.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Vu les propositions possibles nous pensons que la première proposition permettra une meilleure souplesse dans le développement mais serait un peu plus compliquée. Mais nous la trouvons aussi plus intéressante à faire de plus elle est moins coûteuse et permet d'utiliser un écran plus grand. Le développement sur tablette serait sûrement plus rapide à faire en contrepartie.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 01/12 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Conférence GlassCamp à l'Imaginarium &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
GlassCamp est une association qui essaye de répandre l'utilisation de toute les Smart Glass en général. Elle propose de multiples conférences dans lesquelles ils essayent de montrer au public l’intérêt de développer sur ces appareils. Dans le cadre de notre projet, notre tuteur nous a proposé de participer à cette présentation afin de mieux s’approprier le sujet. La conférence a eu lieu le 4 décembre à l'Imaginarium: une grande partie était plutôt tournée vers la présentation mais nous avons apprîs plusieurs choses intéressantes qui sont décrites dans le compte rendu.&lt;br /&gt;
&lt;br /&gt;
'''Compte Rendu Conférence 04/12/2014 :''' [[Fichier:Compte_Rendu_Conf_GlassCamp.pdf]]&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaines du 08/12 et 15/12 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Reconnaissance vocale en Français &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Nous avons avancé sur la version française de l'application. A la manière du menu vocal des google glass, nous avons utilisé un délimiteur&lt;br /&gt;
&amp;quot;ok lunettes&amp;quot; pour démarrer l'interaction avec l'application, afin que les discussions et bruits ambiants n'interfèrent pas sur l'utilisation de celle-ci.&lt;br /&gt;
Voici le scénario d'utilisation de la nouvelle version de l'application en Français.&lt;br /&gt;
[[Fichier:Schema_fr.png|950px|center]]&lt;br /&gt;
&lt;br /&gt;
Sous pocketsphinx, le délimiteur n'apparait pas dans une grammaire. La grammaire permet de prédestiner l'application à choisir entre deux mots. &lt;br /&gt;
Dans notre application, le moteur de reconnaissance vocale choisi la distance la plus courte, séparant le mot prononcé par l'utilisateur et ceux&lt;br /&gt;
qu'il est possible d'entendre. Ainsi entre &amp;quot;oui&amp;quot; et &amp;quot;non&amp;quot;, l'application choisira forcément l'un des deux, même si l'utilisateur dit &amp;quot;bonjour&amp;quot;&lt;br /&gt;
&lt;br /&gt;
L'avantage du délimiteur est que sa détection repose sur un seuillage entre ce qui est prononcé et ce qui doit être reconnu, nous pouvons régler ce seuil.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 05/01 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Entretien avec notre tuteur &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Durant cet entretien nous avons défini les évolutions du projet.&lt;br /&gt;
&lt;br /&gt;
'''Compte Rendu de l'entretien du 06/01/2015 :''' [[Fichier:Compte_Rendu_4.pdf]]&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 12/01 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; TV connectée &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Nous avons pris en main la détection des beacons (de la marque Estimote fournis par l'entreprise) dans les systèmes android.&lt;br /&gt;
L'adresse MAC et le RSSI sont accessibles, ce sont les seules informations nécessaires que nous avons besoin en ce qui concerne les beacons.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 26/01 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Entretien avec notre tuteur &amp;lt;/font&amp;gt;===&lt;/div&gt;</summary>
		<author><name>Jgondry</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=P22_Google_Glass_en_logistique&amp;diff=15721</id>
		<title>P22 Google Glass en logistique</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=P22_Google_Glass_en_logistique&amp;diff=15721"/>
				<updated>2015-01-27T16:57:07Z</updated>
		
		<summary type="html">&lt;p&gt;Jgondry : /* Déroulement du projet */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Introduction =&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Description du sujet &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
Notre projet vise à l’optimisation du stockage et de l’adressage des palettes dans un entrepôt. En effet, lors du déchargement d’un camion, chercher un emplacement libre pour les palettes dans un entrepôt occupant une grande superficie fait perdre du temps et donc de la productivité dans le stockage. Sachant qu’un cariste perd un temps non négligeable à la recherche d’emplacement disponible, optimiser ce temps de recherche permettrait de gagner du temps sur cette opération.&lt;br /&gt;
Développer un prototype permettrait de rendre compte des moyens existants qui pourrait être mis en place dans une solution métier.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Analyse du sujet &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Google_glass.png|200px|thumb|right|Paire de Google Glass]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Optinvent_ora.png|200px|thumb|right|Paire de ORA d'Optivent]]&lt;br /&gt;
&lt;br /&gt;
Notre projet consiste à fluidifier le déchargement en indiquant au cariste l’emplacement libre le plus proche. Pour ne pas gêner le travail des employés, un dispositif main-libre comme une Google Glass semble adapté. Ce projet soulève plusieurs problématiques : développer une interface homme-machine apportant une information pertinente pour l’utilisateur sans pour autant être perturbante. &lt;br /&gt;
&lt;br /&gt;
L’idée serait de réaliser dans les grandes lignes un système similaire à ce scénario d’utilisation :&lt;br /&gt;
http://n.mynews.ly/!lB.Bs4fw&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Moyen d’affichage de l’Informations pertinentes'''&lt;br /&gt;
&lt;br /&gt;
Les Google Glass ne sont pas les seules smart glasses sur le marché. Il nous faudra choisir les appareils les plus adaptés. L’information pertinente pourrait être une direction à suivre dans l’entrepôt ou simplement un numéro d’emplacement (adressage intuitif de l’entrepôt). &lt;br /&gt;
&lt;br /&gt;
'''Géolocalisation'''&lt;br /&gt;
&lt;br /&gt;
Dans le cas d’une direction à suivre se pose le problème de la géolocalisation indoor dont l’utilité et la faisabilité seront discutés au fil des réunions avec l’entreprise. &lt;br /&gt;
&lt;br /&gt;
'''Adressage / flashage'''&lt;br /&gt;
&lt;br /&gt;
En ce qui concerne l’adressage des palettes en entrepôt, la solution existante repose sur un flashage des codes barres associés à l’emplacement venant d’être occupé. Une étude de faisabilité/utilité sera aussi faite sur une solution de remplacement grâce aux possibilités qu’offrent les smart glasses.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Cahier des charges &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
En partant de l'analyse du sujet et des discussion avec notre tuteur, nous avons définie un cahier des charges plus précis des tâches à accomplir:&lt;br /&gt;
&lt;br /&gt;
* '''Développer un système embarqué sur une paire de lunette Smart Glass'''&lt;br /&gt;
** Comparer les différentes offres en matière de Smart Glass notamment Google Glass &amp;amp; ORA de Optinvent&lt;br /&gt;
** Concevoir une interface homme-machine non perturbante pour l'utilisateur.&lt;br /&gt;
* '''Etudier la nécessité d'utiliser une géolocalisation en entrepôt et l'implémenter si besoin'''&lt;br /&gt;
** Via RSSI (Wifi, Bluetooh Low Energy ...)&lt;br /&gt;
** Via traitement d'images (reconnaissance de la signalétique en entrepôt)&lt;br /&gt;
* '''Etudier les possibilités d'optimisation du système d'adressage des palettes'''&lt;br /&gt;
** Implémenter la reconnaissance de code barre&lt;br /&gt;
** La tester en réalité métier (utilité ajoutée, habitude des magasiniers, vitesse de traitement...)&lt;br /&gt;
&lt;br /&gt;
Le cahier des charges est encore en cours de construction&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Matériel utilisé &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; SmartGlass &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Lors de la réunion nous avons discuté des technologies à utiliser dans le projet, et plus particulièrement des différentes SmartGlass. En effet, il existe une multitude de sociétés qui développe ce genre de lunettes. Nous commencerons à utiliser les Google Glass étant donné que notre tuteur en a déjà commandé puis nous développerons sur les lunettes ORA de Optivent qui seront livrées fin octobre. Nous devrons donc faire un comparatif entre ces deux SmartGlass puis étudier les autres appareils disponibles sur le marché.&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Localisation &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
L'utilisation de la géolocalisation dans le projet est à débattre. Mais des tests seront probablement mis en place. L'entreprise possède quelque iBeacons BLE Estimote dans ses bureaux d'innovations que nous pourrons emprunter.&lt;br /&gt;
Dans le cas où leur gain d'informations serait utile il nous faudra comparer les modèles disponibles. Choisir un nombre de module et des emplacements stratégiques dans l'entrepôt afin d'avoir une localisation assez précise pour l'application.&lt;br /&gt;
&lt;br /&gt;
L'utilisation d'autres technologies de géolocalisation a été discuté comme le Wifi ou le XBee mais le BLE semblait le plus adapté dans le cadre de notre projet.&lt;br /&gt;
&lt;br /&gt;
= Déroulement du projet =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 22/09 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Réunion avec le tuteur entreprise dans l’entrepôt &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Nous avons observé en situation le problème et discuté des besoins, des moyens déjà utilisables. Il nous faudra prendre en compte plusieurs paramètres dans notre réflexion tels que le système de stockage et d'adressages des palettes, sens de circulation des caristes, superficie des zones à desservir, durée de livraison.&lt;br /&gt;
Nous avons suggéré des étapes de validation intermédiaire du système par les futurs utilisateurs et pour cela nous rencontrerons le chef d'équipe des magasiniers lorsque qu'une version sera assez développée.&lt;br /&gt;
&lt;br /&gt;
Nous avons défini avec le tuteur les premières deadlines du projet, voici la timeline récapitulative:&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Timeline_1.jpg||center|1000px]]&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Compte Rendu &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Nous avons rédigé un compte rendu de la première réunion détaillant les spécifications des versions des livrables, des schémas et les sujets abordés lors de la rencontre :&lt;br /&gt;
&lt;br /&gt;
'''Compte Rendu réunion du 25/09/2014 :''' [[Fichier:Compte_Rendu_25_09.pdf]]&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 29/09 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Découverte des Google Glass &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
*Prise en main des Google Glass. &lt;br /&gt;
*Installation d'applications (.apk) grand public. Nous avons utilisé l'outil Android Debug Bridge(adb). Se mettre à la place d'un utilisateur.&lt;br /&gt;
*L'une des deux lunettes qui serait retenue imposera forcément le développement d'une application android (ou d'une technologie trés proche d'android, pour les Google Glass, se basant sur le Glass Development Kit qui est un add-on au SDK classique d'android). Nous avons donc téléchargé les packages nécessaires pour commencer à développer. &lt;br /&gt;
** Nous commençons à nous former sur les technologies android :développement d'applications minimaliste.&lt;br /&gt;
** Installation de nos premières apk minimalistes pour Android.&lt;br /&gt;
** Installation d'une application minimaliste sur la Google Glass.&lt;br /&gt;
&lt;br /&gt;
Voici un comparatif réalisé entre les lunettes ORA et les Google Glass.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Différences Google Glass/ORA &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!   !! Google Glass !! ORA &lt;br /&gt;
|-&lt;br /&gt;
|Connectique&lt;br /&gt;
|Compatible BLE (à partir de la XE 16 KitKat Update), Wifi &lt;br /&gt;
|Compatible BLE, Wifi&lt;br /&gt;
|-&lt;br /&gt;
|Autonomie en utilisation normale&lt;br /&gt;
|de 1h à 2h &lt;br /&gt;
|de 4h à 8h&lt;br /&gt;
|-&lt;br /&gt;
|Son&lt;br /&gt;
|Conductivité Cranienne&lt;br /&gt;
|Prise jack&lt;br /&gt;
|-&lt;br /&gt;
|Interface&lt;br /&gt;
|Ecran occupant une faible superficie dans le champ de vision &lt;br /&gt;
|Ecran 2 positions (moyennes et basses), plus étendu permettant une réalité augmentée &lt;br /&gt;
|-&lt;br /&gt;
|Système d'exploitation&lt;br /&gt;
|Android 4.4&lt;br /&gt;
|Android 4.2.2&lt;br /&gt;
|-&lt;br /&gt;
|Calculs&lt;br /&gt;
|CPU &amp;amp; GPU&lt;br /&gt;
|CPU &amp;amp; GPU&lt;br /&gt;
|-&lt;br /&gt;
|Prix&lt;br /&gt;
|1500$ &lt;br /&gt;
|949$&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 06/10 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Deuxième rendez-vous avec le tuteur entreprise &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Nous avons fait part de notre avancée en matière de prise en main et des problèmes rencontrés en matière de développement.&lt;br /&gt;
Les lunettes ORA sont commandées elles arrivent d'ici la fin octobre.&lt;br /&gt;
&lt;br /&gt;
La première version V1 de l'application pour Google Glass à livrer pour la mi-novembre est fixée.&lt;br /&gt;
&lt;br /&gt;
En partant d'une position connue (en dur dans l'application) dans l'entrepôt, elle indiquera à un utilisateur les emplacements libres les plus proches.&lt;br /&gt;
&lt;br /&gt;
L'état d'occupation des emplacements sera consulté et stocké dans l'application. Il n'y aura donc pas de gestion des conflits. Le sens de circulation dans l'entrepôt sera pris en compte.&lt;br /&gt;
Une communication avec la base de donnée de l'entrepôt n'est pour le moment pas d'actualité, cela nécessiterait des développements en amont.&lt;br /&gt;
La géolocalisation n'est pas au goût du jour non plus. L'adressage des emplacements dans l'entrepôt est intuitif, il est donc facile pour un magasinier de &lt;br /&gt;
se rendre à un emplacement en connaissant l'adresse.&lt;br /&gt;
&lt;br /&gt;
Pour l'IHM, nous nous inspirerons des applications pour Google Glass (les Glasswares) de type GPS.&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Premiers programmes sur Google Glass &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Pour nous familiariser avec la programmation sur ce genre d'appareil nous avons tous deux décidé de suivre en premier le tutoriel Android d'un site spécialisé. Cela afin de mieux comprendre le système Android, avec les concepts d'activités, de view etc.&lt;br /&gt;
Dans un deuxième temps nous avons choisi de suivre plusieurs tutoriels nous expliquant la prise en main basique des lunettes afin de saisir les particularités de leur programmation.&lt;br /&gt;
&lt;br /&gt;
Le plus dur étant finalement de comprendre les liens entre tous les fichiers du projets, les problèmes de drivers et d'upload simple que nous avons rencontrés et l’exécution du programme sur les lunettes. Des choses que nous arrivons maintenant à maitriser mais qui était floues à l'origine.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 13/10 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Programmation et gestion des interactions &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Durant cette semaine nous avons commencé a vraiment toucher aux fonctionnalités des Glass. Pour rester en main libre, nous avons fait des recherches et commencé à programmer de la reconnaissance vocale. Nous avons ainsi crée un système de navigation basique par commande vocale dans différents menus. Pour un accès rapide à l'application et toujours dans la même optique nous avons réussi à inclure le lancement de notre logiciel à partir du &amp;quot;Ok Glass&amp;quot; menu qui est le menu de lancement d'application par commande vocale des Google Glass. Voici un aperçu du résultat:&lt;br /&gt;
[[Fichier:V0_menu.png|1000px|center]]&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Analyse et évaluation du rendu &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Le début de la prise en main des fonctionnalités des Google Glass n'a pas été facile étant donné que la plupart des fonctionnalités sont propres à ce genre d'appareil. De plus elles nécessitent des techniques spéciales de programmation qui ne sont pas toujours très utilisées donc il est parfois difficile de trouver des exemples sur internet.&lt;br /&gt;
Néanmoins après l'implémentation de ces fonctionnalités nous avons pu rencontrer quelques difficultés de reconnaissance. En effet, les Google Glass possèdent un dictionnaire de mots/phrases pour la reconnaissance vocale mais elles nous permettent aussi d'écrire n'importe quelle phrase dans le mode développeur. Les phrases du dictionnaires ne posent aucun problème mais les phrases que nous écrivons sont parfois dures à reconnaitre. La reconnaissance de lettre seule ou de certains numéros est par exemple quasi impossible ou très aléatoire.&lt;br /&gt;
Le système de vu est quant à lui plutôt facile à prendre en main et intuitif dans l'utilisation.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 20/10 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Premiere structure de donnée &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Nous avons opté pour une structure de donnée récursive. Une Cellule, contenant des Allées, qui contiennent des Baies, contenant des Rangées, contenant des Emplacements.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Structure_export_resized.png|750px|center]]&lt;br /&gt;
Nous avons conçu cette structure de donnée pour qu'elle génère, dans un premier temps &amp;quot;en dur&amp;quot;, une cellule contenant des emplacements automatiquement adressés à la manière de ceux présent dans l'entrepôt. Ces adresses sont de la forme &amp;quot;D61A514&amp;quot; traduisez &amp;quot; Cellule 6 Allée 1A Baie 5 Rang 1 Niveau 4&amp;quot;.&lt;br /&gt;
Cette structure prend on compte le sens de circulation dans l'entrepôt.&lt;br /&gt;
Lors de futures interactions avec une base de donnée, cette structure serait sujette à évolution par une modification des méthodes de génération/modification du statut des adresses en fonction de cette base de donnée. Mais celle-ci constitue essentiellement une base pour appréhender plus pratiquement les problématiques de recherches de l'emplacement le plus proche.&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Prise en main de l'interface &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Nous avons déjà abordé les layouts java en TP donc il a été assez facile de commencer à faire des interfaces graphiques simples. Nous avons construit une interface graphique simple pour de faire une démonstration du programme aux tuteurs entreprise afin qu'ils comprennent bien le fonctionnement de notre algorithme.&lt;br /&gt;
L'interface graphique finale du programme sera très sobre afin de ne pas donner trop gêner le magasinier dans sa tâche.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 27/10 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Chemin optimal : Parcours intelligent Vs Sélection intelligente &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Un premier algorithme de recherche de l'emplacement le plus proche a été développé, celui-ci ne prend en compte qu'un seul scénario. &lt;br /&gt;
Celui de la position de départ (quai de déchargement où reviendra constamment le magasinier aprés chaque livraison) correspondante à la première allée de l'entrepôt, et en prenant en compte le sens de circulation. &lt;br /&gt;
A partir de ce moment, nous avons dégager deux grandes manières d'appréhender le problème.&lt;br /&gt;
&lt;br /&gt;
* Un parcours intelligent de la structure de donnée. C'est à dire parcourir les emplacements les plus proches, et choisir le premier emplacement libre. Une solution complexe à réaliser sur le plan algorithmique. En tenant compte du sens de circulation, il apparait que l'emplacement libre &amp;quot;leplusproche&amp;quot; (à vol d'oiseau) trouvé le plus tôt, ne correspondrait pas forcément à l'emplacement le plus proche compte tenu du chemin emprunté par un magasinier. Et c'est plutôt l'intérêt de cette algorithme.(Sauf dans l'unique cas où l'emplacement libre se trouve directement dans l'allée faisant face à la position de départ du magasinier, et le sens de circulation lui permet directement de se rendre à l'emplacement sans détour).&lt;br /&gt;
&lt;br /&gt;
* Une sélection intelligente parmi les emplacements libres. Leurs adresses renseignent à quelles allées, les emplacements libres appartiennent, donc renseignent sur le sens de circulation. A partir de la position de départ du magasinier et de l'ensemble des emplacements libres, on peut calculer la distance nécessaire à celui-ci pour les atteindre. Pour ainsi choisir l'adresse pour laquelle la distance est minimale.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 3/11 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Chemin optimal : sélection intelligente des adresses &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Nous avons écrit une premiere méthode de détermination. &lt;br /&gt;
On choisit l'emplacement, parmi tous ceux qui sont libres, pour lequel la distance de parcours est minimale entre le départ et celui-ci. &lt;br /&gt;
Ici l'unité de distance est la baie. La simplicité de l'algorithme réside dans le fait que le magasinier ne transporte qu'une seule caisse à la fois et repars toujours au même point de départ.&lt;br /&gt;
&lt;br /&gt;
Ci dessous un plan de l'entrepôt.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:schema_entrepot.png|750px|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Si on se place à l'entrée de l'Allée A :&lt;br /&gt;
&lt;br /&gt;
**le déplacement jusqu'à A4 (sens de circulation direct) est de : &lt;br /&gt;
&lt;br /&gt;
                        Y baies - (indice de la baie/2 +indice de la baie % 2) &lt;br /&gt;
&lt;br /&gt;
**le déplacement jusqu'à B1 (sens de circulation indirect) est de : &lt;br /&gt;
&lt;br /&gt;
                        Y baies + différence entre l'allée A et B donc X baies + indice de la baie/2 +indice de la baie % 2&lt;br /&gt;
**le déplacement jusqu'à C1 (sens de circulation direct) est de : &lt;br /&gt;
                      &lt;br /&gt;
                        Y baies - (indice de la baie/2 +indice de la baie % 2)+différence entre l'allée A et C donc 2*X baies.&lt;br /&gt;
&lt;br /&gt;
*Si on se place à l'entrée de l'Allée B :&lt;br /&gt;
**le déplacement jusqu'à B1 (sens de circulation indirect avec contournement) est de : &lt;br /&gt;
                        &lt;br /&gt;
                        2*X baies + Y baies + 2*X baies + (indice de la baie/2 +indice de la baie % 2)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On peut généraliser l'ensemble de ces situations de déplacement avec l'algorithme suivant :&lt;br /&gt;
&lt;br /&gt;
Pseudo code&lt;br /&gt;
&lt;br /&gt;
  Leplusproche( Allee depart )&lt;br /&gt;
    distance_la_plus_petite = valeurMAX&lt;br /&gt;
      le_plus_proche=&amp;quot;&amp;quot;&lt;br /&gt;
         Pour chaque Allee de Cellule&lt;br /&gt;
           sens=Allee.sens&lt;br /&gt;
           Pour chaque Baie de Allee&lt;br /&gt;
             Pour chaque Rang de Allee&lt;br /&gt;
 	       Pour chaque Emplacement de Rang&lt;br /&gt;
                Si Emplacement estlibre &lt;br /&gt;
                &lt;br /&gt;
                indice_baie = selection_indice_baie(Emplacement.adresse)&lt;br /&gt;
   		 allee_cible = selection_indice_allee(Emplacement.adresse)  &lt;br /&gt;
   		 difference_allee = valeur_absolue(depart -cible) &lt;br /&gt;
                    Si difference_allee==0 et sens.estindirect&lt;br /&gt;
                      //sens indirect +contournement&lt;br /&gt;
                      distance_actuelle=(indice_baie/2)+indice_baie%2+(2*(difference_allee))+4*X+Y			&lt;br /&gt;
                    Sinon	&lt;br /&gt;
                        Si sens estdirect&lt;br /&gt;
                          //sens direct &lt;br /&gt;
                          distance_actuelle=(Y-((indice_baie/2)+indice_baie%2))+2*difference_allee&lt;br /&gt;
                        Sinon&lt;br /&gt;
                          //sens indirect mais pas de contournement&lt;br /&gt;
                          distance_actuelle=((indice_baie/2)+indice_baie%2)+2*difference_allee+Y&lt;br /&gt;
                        Finsi	&lt;br /&gt;
                    Finsi	&lt;br /&gt;
                    Si distance_actuelle &amp;lt; distance_la_plus_petite&lt;br /&gt;
                      le_plus_proche=Emplacement.adresse&lt;br /&gt;
                      distance_la_plus_petite=distance_actuelle&lt;br /&gt;
                    Finsi&lt;br /&gt;
                Finsi  &lt;br /&gt;
            Finpour&lt;br /&gt;
          Finpour&lt;br /&gt;
        Finpour&lt;br /&gt;
      Finpour&lt;br /&gt;
    retourne le_plus_proche&lt;br /&gt;
  Finleplusproche&lt;br /&gt;
&lt;br /&gt;
Cet algorithme nous donne satisfaction (dans le cadre de la V1)&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 10/11 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Programmation et gestion des interactions &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Aprés quelques difficultés vis à vis de la gestion des menus vocaux sur les lunettes qui ne fonctionnent pas de la même manière que les menus classiques sous android, nous avons étoffé les interactions possible avec l'application des google glass. (Nous souhaitions inflater un deuxième menu pour interagir de manière plus contextuelle, il fallait le faire dans la méthode onCreatePanelMenu dont l'appel serait forcé avec getWindow().invalidatePanelMenu(WindowUtils.FEATURE_VOICE_COMMANDS) plutôt que dans onPrepareOptionsMenu forcée par invalidateOptionMenu()...) &lt;br /&gt;
&lt;br /&gt;
schéma d'utilisation...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Proposition projet affichage télévision &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Tele_concept.png|200px|thumb|right]]&lt;br /&gt;
&lt;br /&gt;
Notre tuteur nous a contacté pour nous proposer d'étudier un second projet en parallèle au projet initial. Celui consistant à gérer l'affichage d'information personnalisé d'un magasinier passant à proximité d'un écran de télévision. Nous devons effectuer un Proof Of Concept (POC) et réfléchir à ce sujet.&lt;br /&gt;
L'utilisation du BLE est donc de nouveau d'actualité, car je rappel que sont utilité était discutable dans une réalité métier du projet initial. La question étant plus de savoir comment gérer le système du coté du téléviseur.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Le concept de base étant de :&lt;br /&gt;
* Fournir une beacon aux magasiniers de l'entrepôt.&lt;br /&gt;
* Installer une télévision sur un centre de vie dans l'entrepôt avec une beacon&lt;br /&gt;
* Pousser du contenu personnalisé au magasinier qui se présente devant la tv dans son centre de vie&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 17/11 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Brainstorming à Polytech &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Dans la cadre du POC sur l'affichage personnalisé sur une télévision, nous avons profité d'un exercice de management pour faire participer la classe à notre projet. Grâce à cette intervention nous avons pu confirmer nos idées sur les technologies à utiliser. Mais nous avons surtout eu une multitude de propositions sur les données à afficher sur l'écran.&lt;br /&gt;
&lt;br /&gt;
Pour plus détails, le compte rendu est disponible à ce lien:&lt;br /&gt;
&lt;br /&gt;
'''Compte Rendu Brainstorming 17/11/2014 :''' [[Fichier:Compte_Rendu_POC_17_11.pdf]]&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Entretien avec notre tuteur entreprise &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Durant cet entretien, nous avons livré la première version de l'application et nous avons discuté de la suite du projet.&lt;br /&gt;
Ci joint le Compte Rendu.&lt;br /&gt;
&lt;br /&gt;
'''Compte Rendu  19/11/2014 :''' [[Fichier:Compte_Rendu_19_11.pdf]]&lt;br /&gt;
&lt;br /&gt;
De cette réunion, les points suivants en sont sortis:&lt;br /&gt;
&lt;br /&gt;
*Une reconnaissance vocale en langue française sur les lunettes serait plus intéressante pour les employés (une piste serait d’utiliser l’outil pocketsphinx-  android).&lt;br /&gt;
*Par rapport à l'IHM, il faudrait mettre l’affichage au premier plan sur les Google Glass pour une démo auprés des parties prenantes du projet.&lt;br /&gt;
*Choisir une architecture pour l’affichage d’information personnalisées.&lt;br /&gt;
**La télévision connectée à une raspberry qui communiquerait via un dongle BLE avec le beacon d’un magasinier, ce qui permettrait l’identification de celui-ci prés de la Télévision, et déclencherait un processus d’échange d’information. (Communication via le protocole Bluetooh, wifi entre les lunettes et la Raspberry  ou communication avec la Raspberry avec la Base de Donnée sur le réseau de l’entreprise)&lt;br /&gt;
**Une télévision connectée en continu à un site internet via un dongle HDMI.&lt;br /&gt;
**Une tablette android géante supportant le BLE, ou utilisant un dongle BLE.&lt;br /&gt;
* Réaliser le portage de l’application sur le prototype des lunettes ORA.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 24/11 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Reconnaissance vocale en Français &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Pocket Sphinx Android est une librairie permettant de faire de la reconnaissance vocale d'un langage donné sur un système android en offline.&lt;br /&gt;
Pour supporter une langue, elle nécessite: &lt;br /&gt;
*un modèle acoustique (ensemble d'informations pour le traitement sonore)&lt;br /&gt;
*un dictionnaire associant les mots et leur phonèmes&lt;br /&gt;
*une grammaire, c'est un fichier définissant comment seraient articulé les mots à reconnaître et limitant les possibilités de langage).&lt;br /&gt;
&lt;br /&gt;
La grammaire étant un automate. Voici un exemple de la grammaire menu.gram pour la reconnaissance de la porte de déchargement.&lt;br /&gt;
[[Fichier:Arborescence_pocket_sphinx.png|200px|thumb|right|PocketSphinx dans un projet Android]]&lt;br /&gt;
&lt;br /&gt;
  #JSGF V1.0;&lt;br /&gt;
  grammar menu;&lt;br /&gt;
  &amp;lt;porte&amp;gt; = porte a |&lt;br /&gt;
            porte b |&lt;br /&gt;
            porte c |&lt;br /&gt;
            porte d |&lt;br /&gt;
            porte e |&lt;br /&gt;
            porte f |&lt;br /&gt;
            porte g |&lt;br /&gt;
            porte h |&lt;br /&gt;
            porte i |&lt;br /&gt;
            porte j ;&lt;br /&gt;
  public &amp;lt;porte&amp;gt; = &amp;lt;porte&amp;gt;+;&lt;br /&gt;
&lt;br /&gt;
Un extrait du dictionnaire french_letter.dic associé avec les phonemes&lt;br /&gt;
&lt;br /&gt;
  a aa &amp;lt;-- juste la lettre a et son phoneme &lt;br /&gt;
  autre au tt rr&lt;br /&gt;
  autre(2) au tt rr ee &lt;br /&gt;
  b bb &lt;br /&gt;
  c ss &lt;br /&gt;
  d dd ei d(2) dd ait &lt;br /&gt;
  e eu e(2) eu zz &lt;br /&gt;
  f ai ff &lt;br /&gt;
  g jj ei g(2) gg ai &lt;br /&gt;
  h aa ch  &lt;br /&gt;
  i ii &lt;br /&gt;
  j jj yy j(2) jj ii&lt;br /&gt;
  porte pp oo rr tt&lt;br /&gt;
  porte(2) pp oo rr tt ee&lt;br /&gt;
  portes(2) pp oo rr tt ee&lt;br /&gt;
  portes(3) pp oo rr tt ee zz&lt;br /&gt;
  portes(4) pp oo rr tt zz&lt;br /&gt;
&lt;br /&gt;
Le modèle acoustique que nous avons téléchargé étant inclu dans lium_french_f0&lt;br /&gt;
&lt;br /&gt;
Nous avons testé la reconnaissance vocale sur un téléphone android, les mots sont, dans la majorité des cas, bien reconnus.&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Comparaison architectures projet TV &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Au niveau de l’architecture nous avons établi plusieurs propositions après la réunion avec notre tuteur:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour une Raspberry Pi avec un dongle BLE :&lt;br /&gt;
* Installation OS Linux sur la Raspberry&lt;br /&gt;
* Librairie BlueZ pour l’utilisation du BLE (tests rapides effectués sur Linux avec le Dongle)&lt;br /&gt;
* Interface graphique avec une bibliothèque comme Qt (ou encore SDL…)&lt;br /&gt;
* Prix : Rpi = 26€ (chez RadioSpare), Dongle = 10€, TV = à partir de 358€ pour 117cm, + Connectique vidéo. Total = 394€&lt;br /&gt;
&lt;br /&gt;
Pour un écran ViewSonic VSD231 :&lt;br /&gt;
* Possède une API Bluetooth classic + API BLE&lt;br /&gt;
* Interface graphique Android (View, Layout...)&lt;br /&gt;
* Prix : écran ViewSonic VSD231 = 558 € pour 58 cm (chez ViewSonic).&lt;br /&gt;
&lt;br /&gt;
Récupération d’informations :&lt;br /&gt;
* Si données sur les lunettes : Bluetooth ou Wifi.&lt;br /&gt;
* Si données sur serveur : Ethernet ou Wifi.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Vu les propositions possibles nous pensons que la première proposition permettra une meilleure souplesse dans le développement mais serait un peu plus compliquée. Mais nous la trouvons aussi plus intéressante à faire de plus elle est moins coûteuse et permet d'utiliser un écran plus grand. Le développement sur tablette serait sûrement plus rapide à faire en contrepartie.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 01/12 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Conférence GlassCamp à l'Imaginarium &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
GlassCamp est une association qui essaye de répandre l'utilisation de toute les Smart Glass en général. Elle propose de multiples conférences dans lesquelles ils essayent de montrer au public l’intérêt de développer sur ces appareils. Dans le cadre de notre projet, notre tuteur nous a proposé de participer à cette présentation afin de mieux s’approprier le sujet. La conférence a eu lieu le 4 décembre à l'Imaginarium: une grande partie était plutôt tournée vers la présentation mais nous avons apprîs plusieurs choses intéressantes qui sont décrites dans le compte rendu.&lt;br /&gt;
&lt;br /&gt;
'''Compte Rendu Conférence 04/12/2014 :''' [[Fichier:Compte_Rendu_Conf_GlassCamp.pdf]]&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaines du 08/12 et 15/12 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Reconnaissance vocale en Français &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Nous avons avancé sur la version française de l'application. A la manière du menu vocal des google glass, nous avons utilisé un délimiteur&lt;br /&gt;
&amp;quot;ok lunettes&amp;quot; pour démarrer l'interaction avec l'application, afin que les discussions et bruits ambiants n'interfèrent pas sur l'utilisation de celle-ci.&lt;br /&gt;
Voici le scénario d'utilisation de la nouvelle version de l'application en Français.&lt;br /&gt;
[[Fichier:Schema_fr.png|950px|center]]&lt;br /&gt;
&lt;br /&gt;
Sous pocketsphinx, le délimiteur n'apparait pas dans une grammaire. La grammaire permet de prédestiner l'application à choisir entre deux mots. &lt;br /&gt;
Dans notre application, le moteur de reconnaissance vocale choisi la distance la plus courte, séparant le mot prononcé par l'utilisateur et ceux&lt;br /&gt;
qu'il est possible d'entendre. Ainsi entre &amp;quot;oui&amp;quot; et &amp;quot;non&amp;quot;, l'application choisira forcément l'un des deux, même si l'utilisateur dit &amp;quot;bonjour&amp;quot;&lt;br /&gt;
&lt;br /&gt;
L'avantage du délimiteur est que sa détection repose sur un seuillage entre ce qui est prononcé et ce qui doit être reconnu, nous pouvons régler ce seuil.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 05/01 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Entretien avec notre tuteur &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Durant cet entretien nous avons défini les évolutions du projet.&lt;br /&gt;
&lt;br /&gt;
'''Compte Rendu de l'entretien du 06/01/2015 :''' [[Fichier:Compte_Rendu_4.pdf]]&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 12/01 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 26/01 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Entretien avec notre tuteur &amp;lt;/font&amp;gt;===&lt;/div&gt;</summary>
		<author><name>Jgondry</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=P22_Google_Glass_en_logistique&amp;diff=15720</id>
		<title>P22 Google Glass en logistique</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=P22_Google_Glass_en_logistique&amp;diff=15720"/>
				<updated>2015-01-27T16:53:34Z</updated>
		
		<summary type="html">&lt;p&gt;Jgondry : /*  Reconnaissance vocale en Français  */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Introduction =&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Description du sujet &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
Notre projet vise à l’optimisation du stockage et de l’adressage des palettes dans un entrepôt. En effet, lors du déchargement d’un camion, chercher un emplacement libre pour les palettes dans un entrepôt occupant une grande superficie fait perdre du temps et donc de la productivité dans le stockage. Sachant qu’un cariste perd un temps non négligeable à la recherche d’emplacement disponible, optimiser ce temps de recherche permettrait de gagner du temps sur cette opération.&lt;br /&gt;
Développer un prototype permettrait de rendre compte des moyens existants qui pourrait être mis en place dans une solution métier.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Analyse du sujet &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Google_glass.png|200px|thumb|right|Paire de Google Glass]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Optinvent_ora.png|200px|thumb|right|Paire de ORA d'Optivent]]&lt;br /&gt;
&lt;br /&gt;
Notre projet consiste à fluidifier le déchargement en indiquant au cariste l’emplacement libre le plus proche. Pour ne pas gêner le travail des employés, un dispositif main-libre comme une Google Glass semble adapté. Ce projet soulève plusieurs problématiques : développer une interface homme-machine apportant une information pertinente pour l’utilisateur sans pour autant être perturbante. &lt;br /&gt;
&lt;br /&gt;
L’idée serait de réaliser dans les grandes lignes un système similaire à ce scénario d’utilisation :&lt;br /&gt;
http://n.mynews.ly/!lB.Bs4fw&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Moyen d’affichage de l’Informations pertinentes'''&lt;br /&gt;
&lt;br /&gt;
Les Google Glass ne sont pas les seules smart glasses sur le marché. Il nous faudra choisir les appareils les plus adaptés. L’information pertinente pourrait être une direction à suivre dans l’entrepôt ou simplement un numéro d’emplacement (adressage intuitif de l’entrepôt). &lt;br /&gt;
&lt;br /&gt;
'''Géolocalisation'''&lt;br /&gt;
&lt;br /&gt;
Dans le cas d’une direction à suivre se pose le problème de la géolocalisation indoor dont l’utilité et la faisabilité seront discutés au fil des réunions avec l’entreprise. &lt;br /&gt;
&lt;br /&gt;
'''Adressage / flashage'''&lt;br /&gt;
&lt;br /&gt;
En ce qui concerne l’adressage des palettes en entrepôt, la solution existante repose sur un flashage des codes barres associés à l’emplacement venant d’être occupé. Une étude de faisabilité/utilité sera aussi faite sur une solution de remplacement grâce aux possibilités qu’offrent les smart glasses.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Cahier des charges &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
En partant de l'analyse du sujet et des discussion avec notre tuteur, nous avons définie un cahier des charges plus précis des tâches à accomplir:&lt;br /&gt;
&lt;br /&gt;
* '''Développer un système embarqué sur une paire de lunette Smart Glass'''&lt;br /&gt;
** Comparer les différentes offres en matière de Smart Glass notamment Google Glass &amp;amp; ORA de Optinvent&lt;br /&gt;
** Concevoir une interface homme-machine non perturbante pour l'utilisateur.&lt;br /&gt;
* '''Etudier la nécessité d'utiliser une géolocalisation en entrepôt et l'implémenter si besoin'''&lt;br /&gt;
** Via RSSI (Wifi, Bluetooh Low Energy ...)&lt;br /&gt;
** Via traitement d'images (reconnaissance de la signalétique en entrepôt)&lt;br /&gt;
* '''Etudier les possibilités d'optimisation du système d'adressage des palettes'''&lt;br /&gt;
** Implémenter la reconnaissance de code barre&lt;br /&gt;
** La tester en réalité métier (utilité ajoutée, habitude des magasiniers, vitesse de traitement...)&lt;br /&gt;
&lt;br /&gt;
Le cahier des charges est encore en cours de construction&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Matériel utilisé &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; SmartGlass &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Lors de la réunion nous avons discuté des technologies à utiliser dans le projet, et plus particulièrement des différentes SmartGlass. En effet, il existe une multitude de sociétés qui développe ce genre de lunettes. Nous commencerons à utiliser les Google Glass étant donné que notre tuteur en a déjà commandé puis nous développerons sur les lunettes ORA de Optivent qui seront livrées fin octobre. Nous devrons donc faire un comparatif entre ces deux SmartGlass puis étudier les autres appareils disponibles sur le marché.&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Localisation &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
L'utilisation de la géolocalisation dans le projet est à débattre. Mais des tests seront probablement mis en place. L'entreprise possède quelque iBeacons BLE Estimote dans ses bureaux d'innovations que nous pourrons emprunter.&lt;br /&gt;
Dans le cas où leur gain d'informations serait utile il nous faudra comparer les modèles disponibles. Choisir un nombre de module et des emplacements stratégiques dans l'entrepôt afin d'avoir une localisation assez précise pour l'application.&lt;br /&gt;
&lt;br /&gt;
L'utilisation d'autres technologies de géolocalisation a été discuté comme le Wifi ou le XBee mais le BLE semblait le plus adapté dans le cadre de notre projet.&lt;br /&gt;
&lt;br /&gt;
= Déroulement du projet =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 22/09 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Réunion avec le tuteur entreprise dans l’entrepôt &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Nous avons observé en situation le problème et discuté des besoins, des moyens déjà utilisables. Il nous faudra prendre en compte plusieurs paramètres dans notre réflexion tels que le système de stockage et d'adressages des palettes, sens de circulation des caristes, superficie des zones à desservir, durée de livraison.&lt;br /&gt;
Nous avons suggéré des étapes de validation intermédiaire du système par les futurs utilisateurs et pour cela nous rencontrerons le chef d'équipe des magasiniers lorsque qu'une version sera assez développée.&lt;br /&gt;
&lt;br /&gt;
Nous avons défini avec le tuteur les premières deadlines du projet, voici la timeline récapitulative:&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Timeline_1.jpg||center|1000px]]&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Compte Rendu &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Nous avons rédigé un compte rendu de la première réunion détaillant les spécifications des versions des livrables, des schémas et les sujets abordés lors de la rencontre :&lt;br /&gt;
&lt;br /&gt;
'''Compte Rendu réunion du 25/09/2014 :''' [[Fichier:Compte_Rendu_25_09.pdf]]&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 29/09 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Découverte des Google Glass &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
*Prise en main des Google Glass. &lt;br /&gt;
*Installation d'applications (.apk) grand public. Nous avons utilisé l'outil Android Debug Bridge(adb). Se mettre à la place d'un utilisateur.&lt;br /&gt;
*L'une des deux lunettes qui serait retenue imposera forcément le développement d'une application android (ou d'une technologie trés proche d'android, pour les Google Glass, se basant sur le Glass Development Kit qui est un add-on au SDK classique d'android). Nous avons donc téléchargé les packages nécessaires pour commencer à développer. &lt;br /&gt;
** Nous commençons à nous former sur les technologies android :développement d'applications minimaliste.&lt;br /&gt;
** Installation de nos premières apk minimalistes pour Android.&lt;br /&gt;
** Installation d'une application minimaliste sur la Google Glass.&lt;br /&gt;
&lt;br /&gt;
Voici un comparatif réalisé entre les lunettes ORA et les Google Glass.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Différences Google Glass/ORA &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!   !! Google Glass !! ORA &lt;br /&gt;
|-&lt;br /&gt;
|Connectique&lt;br /&gt;
|Compatible BLE (à partir de la XE 16 KitKat Update), Wifi &lt;br /&gt;
|Compatible BLE, Wifi&lt;br /&gt;
|-&lt;br /&gt;
|Autonomie en utilisation normale&lt;br /&gt;
|de 1h à 2h &lt;br /&gt;
|de 4h à 8h&lt;br /&gt;
|-&lt;br /&gt;
|Son&lt;br /&gt;
|Conductivité Cranienne&lt;br /&gt;
|Prise jack&lt;br /&gt;
|-&lt;br /&gt;
|Interface&lt;br /&gt;
|Ecran occupant une faible superficie dans le champ de vision &lt;br /&gt;
|Ecran 2 positions (moyennes et basses), plus étendu permettant une réalité augmentée &lt;br /&gt;
|-&lt;br /&gt;
|Système d'exploitation&lt;br /&gt;
|Android 4.4&lt;br /&gt;
|Android 4.2.2&lt;br /&gt;
|-&lt;br /&gt;
|Calculs&lt;br /&gt;
|CPU &amp;amp; GPU&lt;br /&gt;
|CPU &amp;amp; GPU&lt;br /&gt;
|-&lt;br /&gt;
|Prix&lt;br /&gt;
|1500$ &lt;br /&gt;
|949$&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 06/10 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Deuxième rendez-vous avec le tuteur entreprise &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Nous avons fait part de notre avancée en matière de prise en main et des problèmes rencontrés en matière de développement.&lt;br /&gt;
Les lunettes ORA sont commandées elles arrivent d'ici la fin octobre.&lt;br /&gt;
&lt;br /&gt;
La première version V1 de l'application pour Google Glass à livrer pour la mi-novembre est fixée.&lt;br /&gt;
&lt;br /&gt;
En partant d'une position connue (en dur dans l'application) dans l'entrepôt, elle indiquera à un utilisateur les emplacements libres les plus proches.&lt;br /&gt;
&lt;br /&gt;
L'état d'occupation des emplacements sera consulté et stocké dans l'application. Il n'y aura donc pas de gestion des conflits. Le sens de circulation dans l'entrepôt sera pris en compte.&lt;br /&gt;
Une communication avec la base de donnée de l'entrepôt n'est pour le moment pas d'actualité, cela nécessiterait des développements en amont.&lt;br /&gt;
La géolocalisation n'est pas au goût du jour non plus. L'adressage des emplacements dans l'entrepôt est intuitif, il est donc facile pour un magasinier de &lt;br /&gt;
se rendre à un emplacement en connaissant l'adresse.&lt;br /&gt;
&lt;br /&gt;
Pour l'IHM, nous nous inspirerons des applications pour Google Glass (les Glasswares) de type GPS.&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Premiers programmes sur Google Glass &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Pour nous familiariser avec la programmation sur ce genre d'appareil nous avons tous deux décidé de suivre en premier le tutoriel Android d'un site spécialisé. Cela afin de mieux comprendre le système Android, avec les concepts d'activités, de view etc.&lt;br /&gt;
Dans un deuxième temps nous avons choisi de suivre plusieurs tutoriels nous expliquant la prise en main basique des lunettes afin de saisir les particularités de leur programmation.&lt;br /&gt;
&lt;br /&gt;
Le plus dur étant finalement de comprendre les liens entre tous les fichiers du projets, les problèmes de drivers et d'upload simple que nous avons rencontrés et l’exécution du programme sur les lunettes. Des choses que nous arrivons maintenant à maitriser mais qui était floues à l'origine.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 13/10 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Programmation et gestion des interactions &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Durant cette semaine nous avons commencé a vraiment toucher aux fonctionnalités des Glass. Pour rester en main libre, nous avons fait des recherches et commencé à programmer de la reconnaissance vocale. Nous avons ainsi crée un système de navigation basique par commande vocale dans différents menus. Pour un accès rapide à l'application et toujours dans la même optique nous avons réussi à inclure le lancement de notre logiciel à partir du &amp;quot;Ok Glass&amp;quot; menu qui est le menu de lancement d'application par commande vocale des Google Glass. Voici un aperçu du résultat:&lt;br /&gt;
[[Fichier:V0_menu.png|1000px|center]]&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Analyse et évaluation du rendu &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Le début de la prise en main des fonctionnalités des Google Glass n'a pas été facile étant donné que la plupart des fonctionnalités sont propres à ce genre d'appareil. De plus elles nécessitent des techniques spéciales de programmation qui ne sont pas toujours très utilisées donc il est parfois difficile de trouver des exemples sur internet.&lt;br /&gt;
Néanmoins après l'implémentation de ces fonctionnalités nous avons pu rencontrer quelques difficultés de reconnaissance. En effet, les Google Glass possèdent un dictionnaire de mots/phrases pour la reconnaissance vocale mais elles nous permettent aussi d'écrire n'importe quelle phrase dans le mode développeur. Les phrases du dictionnaires ne posent aucun problème mais les phrases que nous écrivons sont parfois dures à reconnaitre. La reconnaissance de lettre seule ou de certains numéros est par exemple quasi impossible ou très aléatoire.&lt;br /&gt;
Le système de vu est quant à lui plutôt facile à prendre en main et intuitif dans l'utilisation.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 20/10 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Premiere structure de donnée &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Nous avons opté pour une structure de donnée récursive. Une Cellule, contenant des Allées, qui contiennent des Baies, contenant des Rangées, contenant des Emplacements.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Structure_export_resized.png|750px|center]]&lt;br /&gt;
Nous avons conçu cette structure de donnée pour qu'elle génère, dans un premier temps &amp;quot;en dur&amp;quot;, une cellule contenant des emplacements automatiquement adressés à la manière de ceux présent dans l'entrepôt. Ces adresses sont de la forme &amp;quot;D61A514&amp;quot; traduisez &amp;quot; Cellule 6 Allée 1A Baie 5 Rang 1 Niveau 4&amp;quot;.&lt;br /&gt;
Cette structure prend on compte le sens de circulation dans l'entrepôt.&lt;br /&gt;
Lors de futures interactions avec une base de donnée, cette structure serait sujette à évolution par une modification des méthodes de génération/modification du statut des adresses en fonction de cette base de donnée. Mais celle-ci constitue essentiellement une base pour appréhender plus pratiquement les problématiques de recherches de l'emplacement le plus proche.&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Prise en main de l'interface &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Nous avons déjà abordé les layouts java en TP donc il a été assez facile de commencer à faire des interfaces graphiques simples. Nous avons construit une interface graphique simple pour de faire une démonstration du programme aux tuteurs entreprise afin qu'ils comprennent bien le fonctionnement de notre algorithme.&lt;br /&gt;
L'interface graphique finale du programme sera très sobre afin de ne pas donner trop gêner le magasinier dans sa tâche.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 27/10 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Chemin optimal : Parcours intelligent Vs Sélection intelligente &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Un premier algorithme de recherche de l'emplacement le plus proche a été développé, celui-ci ne prend en compte qu'un seul scénario. &lt;br /&gt;
Celui de la position de départ (quai de déchargement où reviendra constamment le magasinier aprés chaque livraison) correspondante à la première allée de l'entrepôt, et en prenant en compte le sens de circulation. &lt;br /&gt;
A partir de ce moment, nous avons dégager deux grandes manières d'appréhender le problème.&lt;br /&gt;
&lt;br /&gt;
* Un parcours intelligent de la structure de donnée. C'est à dire parcourir les emplacements les plus proches, et choisir le premier emplacement libre. Une solution complexe à réaliser sur le plan algorithmique. En tenant compte du sens de circulation, il apparait que l'emplacement libre &amp;quot;leplusproche&amp;quot; (à vol d'oiseau) trouvé le plus tôt, ne correspondrait pas forcément à l'emplacement le plus proche compte tenu du chemin emprunté par un magasinier. Et c'est plutôt l'intérêt de cette algorithme.(Sauf dans l'unique cas où l'emplacement libre se trouve directement dans l'allée faisant face à la position de départ du magasinier, et le sens de circulation lui permet directement de se rendre à l'emplacement sans détour).&lt;br /&gt;
&lt;br /&gt;
* Une sélection intelligente parmi les emplacements libres. Leurs adresses renseignent à quelles allées, les emplacements libres appartiennent, donc renseignent sur le sens de circulation. A partir de la position de départ du magasinier et de l'ensemble des emplacements libres, on peut calculer la distance nécessaire à celui-ci pour les atteindre. Pour ainsi choisir l'adresse pour laquelle la distance est minimale.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 3/11 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Chemin optimal : sélection intelligente des adresses &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Nous avons écrit une premiere méthode de détermination. &lt;br /&gt;
On choisit l'emplacement, parmi tous ceux qui sont libres, pour lequel la distance de parcours est minimale entre le départ et celui-ci. &lt;br /&gt;
Ici l'unité de distance est la baie. La simplicité de l'algorithme réside dans le fait que le magasinier ne transporte qu'une seule caisse à la fois et repars toujours au même point de départ.&lt;br /&gt;
&lt;br /&gt;
Ci dessous un plan de l'entrepôt.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:schema_entrepot.png|750px|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Si on se place à l'entrée de l'Allée A :&lt;br /&gt;
&lt;br /&gt;
**le déplacement jusqu'à A4 (sens de circulation direct) est de : &lt;br /&gt;
&lt;br /&gt;
                        Y baies - (indice de la baie/2 +indice de la baie % 2) &lt;br /&gt;
&lt;br /&gt;
**le déplacement jusqu'à B1 (sens de circulation indirect) est de : &lt;br /&gt;
&lt;br /&gt;
                        Y baies + différence entre l'allée A et B donc X baies + indice de la baie/2 +indice de la baie % 2&lt;br /&gt;
**le déplacement jusqu'à C1 (sens de circulation direct) est de : &lt;br /&gt;
                      &lt;br /&gt;
                        Y baies - (indice de la baie/2 +indice de la baie % 2)+différence entre l'allée A et C donc 2*X baies.&lt;br /&gt;
&lt;br /&gt;
*Si on se place à l'entrée de l'Allée B :&lt;br /&gt;
**le déplacement jusqu'à B1 (sens de circulation indirect avec contournement) est de : &lt;br /&gt;
                        &lt;br /&gt;
                        2*X baies + Y baies + 2*X baies + (indice de la baie/2 +indice de la baie % 2)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On peut généraliser l'ensemble de ces situations de déplacement avec l'algorithme suivant :&lt;br /&gt;
&lt;br /&gt;
Pseudo code&lt;br /&gt;
&lt;br /&gt;
  Leplusproche( Allee depart )&lt;br /&gt;
    distance_la_plus_petite = valeurMAX&lt;br /&gt;
      le_plus_proche=&amp;quot;&amp;quot;&lt;br /&gt;
         Pour chaque Allee de Cellule&lt;br /&gt;
           sens=Allee.sens&lt;br /&gt;
           Pour chaque Baie de Allee&lt;br /&gt;
             Pour chaque Rang de Allee&lt;br /&gt;
 	       Pour chaque Emplacement de Rang&lt;br /&gt;
                Si Emplacement estlibre &lt;br /&gt;
                &lt;br /&gt;
                indice_baie = selection_indice_baie(Emplacement.adresse)&lt;br /&gt;
   		 allee_cible = selection_indice_allee(Emplacement.adresse)  &lt;br /&gt;
   		 difference_allee = valeur_absolue(depart -cible) &lt;br /&gt;
                    Si difference_allee==0 et sens.estindirect&lt;br /&gt;
                      //sens indirect +contournement&lt;br /&gt;
                      distance_actuelle=(indice_baie/2)+indice_baie%2+(2*(difference_allee))+4*X+Y			&lt;br /&gt;
                    Sinon	&lt;br /&gt;
                        Si sens estdirect&lt;br /&gt;
                          //sens direct &lt;br /&gt;
                          distance_actuelle=(Y-((indice_baie/2)+indice_baie%2))+2*difference_allee&lt;br /&gt;
                        Sinon&lt;br /&gt;
                          //sens indirect mais pas de contournement&lt;br /&gt;
                          distance_actuelle=((indice_baie/2)+indice_baie%2)+2*difference_allee+Y&lt;br /&gt;
                        Finsi	&lt;br /&gt;
                    Finsi	&lt;br /&gt;
                    Si distance_actuelle &amp;lt; distance_la_plus_petite&lt;br /&gt;
                      le_plus_proche=Emplacement.adresse&lt;br /&gt;
                      distance_la_plus_petite=distance_actuelle&lt;br /&gt;
                    Finsi&lt;br /&gt;
                Finsi  &lt;br /&gt;
            Finpour&lt;br /&gt;
          Finpour&lt;br /&gt;
        Finpour&lt;br /&gt;
      Finpour&lt;br /&gt;
    retourne le_plus_proche&lt;br /&gt;
  Finleplusproche&lt;br /&gt;
&lt;br /&gt;
Cet algorithme nous donne satisfaction (dans le cadre de la V1)&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 10/11 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Programmation et gestion des interactions &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Aprés quelques difficultés vis à vis de la gestion des menus vocaux sur les lunettes qui ne fonctionnent pas de la même manière que les menus classiques sous android, nous avons étoffé les interactions possible avec l'application des google glass. (Nous souhaitions inflater un deuxième menu pour interagir de manière plus contextuelle, il fallait le faire dans la méthode onCreatePanelMenu dont l'appel serait forcé avec getWindow().invalidatePanelMenu(WindowUtils.FEATURE_VOICE_COMMANDS) plutôt que dans onPrepareOptionsMenu forcée par invalidateOptionMenu()...) &lt;br /&gt;
&lt;br /&gt;
schéma d'utilisation...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Proposition projet affichage télévision &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Tele_concept.png|200px|thumb|right]]&lt;br /&gt;
&lt;br /&gt;
Notre tuteur nous a contacté pour nous proposer d'étudier un second projet en parallèle au projet initial. Celui consistant à gérer l'affichage d'information personnalisé d'un magasinier passant à proximité d'un écran de télévision. Nous devons effectuer un Proof Of Concept (POC) et réfléchir à ce sujet.&lt;br /&gt;
L'utilisation du BLE est donc de nouveau d'actualité, car je rappel que sont utilité était discutable dans une réalité métier du projet initial. La question étant plus de savoir comment gérer le système du coté du téléviseur.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Le concept de base étant de :&lt;br /&gt;
* Fournir une beacon aux magasiniers de l'entrepôt.&lt;br /&gt;
* Installer une télévision sur un centre de vie dans l'entrepôt avec une beacon&lt;br /&gt;
* Pousser du contenu personnalisé au magasinier qui se présente devant la tv dans son centre de vie&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 17/11 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Brainstorming à Polytech &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Dans la cadre du POC sur l'affichage personnalisé sur une télévision, nous avons profité d'un exercice de management pour faire participer la classe à notre projet. Grâce à cette intervention nous avons pu confirmer nos idées sur les technologies à utiliser. Mais nous avons surtout eu une multitude de propositions sur les données à afficher sur l'écran.&lt;br /&gt;
&lt;br /&gt;
Pour plus détails, le compte rendu est disponible à ce lien:&lt;br /&gt;
&lt;br /&gt;
'''Compte Rendu Brainstorming 17/11/2014 :''' [[Fichier:Compte_Rendu_POC_17_11.pdf]]&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Entretien avec notre tuteur entreprise &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Durant cet entretien, nous avons livré la première version de l'application et nous avons discuté de la suite du projet.&lt;br /&gt;
Ci joint le Compte Rendu.&lt;br /&gt;
&lt;br /&gt;
'''Compte Rendu  19/11/2014 :''' [[Fichier:Compte_Rendu_19_11.pdf]]&lt;br /&gt;
&lt;br /&gt;
De cette réunion, les points suivants en sont sortis:&lt;br /&gt;
&lt;br /&gt;
*Une reconnaissance vocale en langue française sur les lunettes serait plus intéressante pour les employés (une piste serait d’utiliser l’outil pocketsphinx-  android).&lt;br /&gt;
*Par rapport à l'IHM, il faudrait mettre l’affichage au premier plan sur les Google Glass pour une démo auprés des parties prenantes du projet.&lt;br /&gt;
*Choisir une architecture pour l’affichage d’information personnalisées.&lt;br /&gt;
**La télévision connectée à une raspberry qui communiquerait via un dongle BLE avec le beacon d’un magasinier, ce qui permettrait l’identification de celui-ci prés de la Télévision, et déclencherait un processus d’échange d’information. (Communication via le protocole Bluetooh, wifi entre les lunettes et la Raspberry  ou communication avec la Raspberry avec la Base de Donnée sur le réseau de l’entreprise)&lt;br /&gt;
**Une télévision connectée en continu à un site internet via un dongle HDMI.&lt;br /&gt;
**Une tablette android géante supportant le BLE, ou utilisant un dongle BLE.&lt;br /&gt;
* Réaliser le portage de l’application sur le prototype des lunettes ORA.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 24/11 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Reconnaissance vocale en Français &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Pocket Sphinx Android est une librairie permettant de faire de la reconnaissance vocale d'un langage donné sur un système android en offline.&lt;br /&gt;
Pour supporter une langue, elle nécessite: &lt;br /&gt;
*un modèle acoustique (ensemble d'informations pour le traitement sonore)&lt;br /&gt;
*un dictionnaire associant les mots et leur phonèmes&lt;br /&gt;
*une grammaire, c'est un fichier définissant comment seraient articulé les mots à reconnaître et limitant les possibilités de langage).&lt;br /&gt;
&lt;br /&gt;
La grammaire étant un automate. Voici un exemple de la grammaire menu.gram pour la reconnaissance de la porte de déchargement.&lt;br /&gt;
[[Fichier:Arborescence_pocket_sphinx.png|200px|thumb|right|PocketSphinx dans un projet Android]]&lt;br /&gt;
&lt;br /&gt;
  #JSGF V1.0;&lt;br /&gt;
  grammar menu;&lt;br /&gt;
  &amp;lt;porte&amp;gt; = porte a |&lt;br /&gt;
            porte b |&lt;br /&gt;
            porte c |&lt;br /&gt;
            porte d |&lt;br /&gt;
            porte e |&lt;br /&gt;
            porte f |&lt;br /&gt;
            porte g |&lt;br /&gt;
            porte h |&lt;br /&gt;
            porte i |&lt;br /&gt;
            porte j ;&lt;br /&gt;
  public &amp;lt;porte&amp;gt; = &amp;lt;porte&amp;gt;+;&lt;br /&gt;
&lt;br /&gt;
Un extrait du dictionnaire french_letter.dic associé avec les phonemes&lt;br /&gt;
&lt;br /&gt;
  a aa &amp;lt;-- juste la lettre a et son phoneme &lt;br /&gt;
  autre au tt rr&lt;br /&gt;
  autre(2) au tt rr ee &lt;br /&gt;
  b bb &lt;br /&gt;
  c ss &lt;br /&gt;
  d dd ei d(2) dd ait &lt;br /&gt;
  e eu e(2) eu zz &lt;br /&gt;
  f ai ff &lt;br /&gt;
  g jj ei g(2) gg ai &lt;br /&gt;
  h aa ch  &lt;br /&gt;
  i ii &lt;br /&gt;
  j jj yy j(2) jj ii&lt;br /&gt;
  porte pp oo rr tt&lt;br /&gt;
  porte(2) pp oo rr tt ee&lt;br /&gt;
  portes(2) pp oo rr tt ee&lt;br /&gt;
  portes(3) pp oo rr tt ee zz&lt;br /&gt;
  portes(4) pp oo rr tt zz&lt;br /&gt;
&lt;br /&gt;
Le modèle acoustique que nous avons téléchargé étant inclu dans lium_french_f0&lt;br /&gt;
&lt;br /&gt;
Nous avons testé la reconnaissance vocale sur un téléphone android, les mots sont, dans la majorité des cas, bien reconnus.&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Comparaison architectures projet TV &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Au niveau de l’architecture nous avons établi plusieurs propositions après la réunion avec notre tuteur:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour une Raspberry Pi avec un dongle BLE :&lt;br /&gt;
* Installation OS Linux sur la Raspberry&lt;br /&gt;
* Librairie BlueZ pour l’utilisation du BLE (tests rapides effectués sur Linux avec le Dongle)&lt;br /&gt;
* Interface graphique avec une bibliothèque comme Qt (ou encore SDL…)&lt;br /&gt;
* Prix : Rpi = 26€ (chez RadioSpare), Dongle = 10€, TV = à partir de 358€ pour 117cm, + Connectique vidéo. Total = 394€&lt;br /&gt;
&lt;br /&gt;
Pour un écran ViewSonic VSD231 :&lt;br /&gt;
* Possède une API Bluetooth classic + API BLE&lt;br /&gt;
* Interface graphique Android (View, Layout...)&lt;br /&gt;
* Prix : écran ViewSonic VSD231 = 558 € pour 58 cm (chez ViewSonic).&lt;br /&gt;
&lt;br /&gt;
Récupération d’informations :&lt;br /&gt;
* Si données sur les lunettes : Bluetooth ou Wifi.&lt;br /&gt;
* Si données sur serveur : Ethernet ou Wifi.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Vu les propositions possibles nous pensons que la première proposition permettra une meilleure souplesse dans le développement mais serait un peu plus compliquée. Mais nous la trouvons aussi plus intéressante à faire de plus elle est moins coûteuse et permet d'utiliser un écran plus grand. Le développement sur tablette serait sûrement plus rapide à faire en contrepartie.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 01/12 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Conférence GlassCamp à l'Imaginarium &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
GlassCamp est une association qui essaye de répandre l'utilisation de toute les Smart Glass en général. Elle propose de multiples conférences dans lesquelles ils essayent de montrer au public l’intérêt de développer sur ces appareils. Dans le cadre de notre projet, notre tuteur nous a proposé de participer à cette présentation afin de mieux s’approprier le sujet. La conférence a eu lieu le 4 décembre à l'Imaginarium: une grande partie était plutôt tournée vers la présentation mais nous avons apprîs plusieurs choses intéressantes qui sont décrites dans le compte rendu.&lt;br /&gt;
&lt;br /&gt;
'''Compte Rendu Conférence 04/12/2014 :''' [[Fichier:Compte_Rendu_Conf_GlassCamp.pdf]]&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaines du 08/12 et 15/12 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Reconnaissance vocale en Français &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Nous avons avancé sur la version française de l'application. A la manière du menu vocal des google glass, nous avons utilisé un délimiteur&lt;br /&gt;
&amp;quot;ok lunettes&amp;quot; pour démarrer l'interaction avec l'application, afin que les discussions et bruits ambiants n'interfèrent pas sur l'utilisation de celle-ci.&lt;br /&gt;
Voici le scénario d'utilisation de la nouvelle version de l'application en Français.&lt;br /&gt;
[[Fichier:Schema_fr.png|950px|center]]&lt;br /&gt;
&lt;br /&gt;
Sous pocketsphinx, le délimiteur n'apparait pas dans une grammaire. La grammaire permet de prédestiner l'application à choisir entre deux mots. &lt;br /&gt;
Dans notre application, le moteur de reconnaissance vocale choisi la distance la plus courte, séparant le mot prononcé par l'utilisateur et ceux&lt;br /&gt;
qu'il est possible d'entendre. Ainsi entre &amp;quot;oui&amp;quot; et &amp;quot;non&amp;quot;, l'application choisira forcément l'un des deux, même si l'utilisateur dit &amp;quot;bonjour&amp;quot;&lt;br /&gt;
&lt;br /&gt;
L'avantage du délimiteur est que sa détection repose sur un seuillage entre ce qui est prononcé et ce qui doit être reconnu, nous pouvons régler ce seuil.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 05/01 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Entretien avec notre tuteur &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Durant cet entretien nous avons défini les évolutions du projet.&lt;br /&gt;
&lt;br /&gt;
'''Compte Rendu de l'entretien du 06/01/2015 :''' [[Fichier:Compte_Rendu_4.pdf]]&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 12/01 &amp;lt;/font&amp;gt;==&lt;/div&gt;</summary>
		<author><name>Jgondry</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=Fichier:Schema_fr.png&amp;diff=15719</id>
		<title>Fichier:Schema fr.png</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=Fichier:Schema_fr.png&amp;diff=15719"/>
				<updated>2015-01-27T16:51:29Z</updated>
		
		<summary type="html">&lt;p&gt;Jgondry : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Jgondry</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=P22_Google_Glass_en_logistique&amp;diff=15718</id>
		<title>P22 Google Glass en logistique</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=P22_Google_Glass_en_logistique&amp;diff=15718"/>
				<updated>2015-01-27T16:51:04Z</updated>
		
		<summary type="html">&lt;p&gt;Jgondry : /*  Reconnaissance vocale en Français  */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Introduction =&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Description du sujet &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
Notre projet vise à l’optimisation du stockage et de l’adressage des palettes dans un entrepôt. En effet, lors du déchargement d’un camion, chercher un emplacement libre pour les palettes dans un entrepôt occupant une grande superficie fait perdre du temps et donc de la productivité dans le stockage. Sachant qu’un cariste perd un temps non négligeable à la recherche d’emplacement disponible, optimiser ce temps de recherche permettrait de gagner du temps sur cette opération.&lt;br /&gt;
Développer un prototype permettrait de rendre compte des moyens existants qui pourrait être mis en place dans une solution métier.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Analyse du sujet &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Google_glass.png|200px|thumb|right|Paire de Google Glass]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Optinvent_ora.png|200px|thumb|right|Paire de ORA d'Optivent]]&lt;br /&gt;
&lt;br /&gt;
Notre projet consiste à fluidifier le déchargement en indiquant au cariste l’emplacement libre le plus proche. Pour ne pas gêner le travail des employés, un dispositif main-libre comme une Google Glass semble adapté. Ce projet soulève plusieurs problématiques : développer une interface homme-machine apportant une information pertinente pour l’utilisateur sans pour autant être perturbante. &lt;br /&gt;
&lt;br /&gt;
L’idée serait de réaliser dans les grandes lignes un système similaire à ce scénario d’utilisation :&lt;br /&gt;
http://n.mynews.ly/!lB.Bs4fw&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Moyen d’affichage de l’Informations pertinentes'''&lt;br /&gt;
&lt;br /&gt;
Les Google Glass ne sont pas les seules smart glasses sur le marché. Il nous faudra choisir les appareils les plus adaptés. L’information pertinente pourrait être une direction à suivre dans l’entrepôt ou simplement un numéro d’emplacement (adressage intuitif de l’entrepôt). &lt;br /&gt;
&lt;br /&gt;
'''Géolocalisation'''&lt;br /&gt;
&lt;br /&gt;
Dans le cas d’une direction à suivre se pose le problème de la géolocalisation indoor dont l’utilité et la faisabilité seront discutés au fil des réunions avec l’entreprise. &lt;br /&gt;
&lt;br /&gt;
'''Adressage / flashage'''&lt;br /&gt;
&lt;br /&gt;
En ce qui concerne l’adressage des palettes en entrepôt, la solution existante repose sur un flashage des codes barres associés à l’emplacement venant d’être occupé. Une étude de faisabilité/utilité sera aussi faite sur une solution de remplacement grâce aux possibilités qu’offrent les smart glasses.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Cahier des charges &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
En partant de l'analyse du sujet et des discussion avec notre tuteur, nous avons définie un cahier des charges plus précis des tâches à accomplir:&lt;br /&gt;
&lt;br /&gt;
* '''Développer un système embarqué sur une paire de lunette Smart Glass'''&lt;br /&gt;
** Comparer les différentes offres en matière de Smart Glass notamment Google Glass &amp;amp; ORA de Optinvent&lt;br /&gt;
** Concevoir une interface homme-machine non perturbante pour l'utilisateur.&lt;br /&gt;
* '''Etudier la nécessité d'utiliser une géolocalisation en entrepôt et l'implémenter si besoin'''&lt;br /&gt;
** Via RSSI (Wifi, Bluetooh Low Energy ...)&lt;br /&gt;
** Via traitement d'images (reconnaissance de la signalétique en entrepôt)&lt;br /&gt;
* '''Etudier les possibilités d'optimisation du système d'adressage des palettes'''&lt;br /&gt;
** Implémenter la reconnaissance de code barre&lt;br /&gt;
** La tester en réalité métier (utilité ajoutée, habitude des magasiniers, vitesse de traitement...)&lt;br /&gt;
&lt;br /&gt;
Le cahier des charges est encore en cours de construction&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Matériel utilisé &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; SmartGlass &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Lors de la réunion nous avons discuté des technologies à utiliser dans le projet, et plus particulièrement des différentes SmartGlass. En effet, il existe une multitude de sociétés qui développe ce genre de lunettes. Nous commencerons à utiliser les Google Glass étant donné que notre tuteur en a déjà commandé puis nous développerons sur les lunettes ORA de Optivent qui seront livrées fin octobre. Nous devrons donc faire un comparatif entre ces deux SmartGlass puis étudier les autres appareils disponibles sur le marché.&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Localisation &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
L'utilisation de la géolocalisation dans le projet est à débattre. Mais des tests seront probablement mis en place. L'entreprise possède quelque iBeacons BLE Estimote dans ses bureaux d'innovations que nous pourrons emprunter.&lt;br /&gt;
Dans le cas où leur gain d'informations serait utile il nous faudra comparer les modèles disponibles. Choisir un nombre de module et des emplacements stratégiques dans l'entrepôt afin d'avoir une localisation assez précise pour l'application.&lt;br /&gt;
&lt;br /&gt;
L'utilisation d'autres technologies de géolocalisation a été discuté comme le Wifi ou le XBee mais le BLE semblait le plus adapté dans le cadre de notre projet.&lt;br /&gt;
&lt;br /&gt;
= Déroulement du projet =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 22/09 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Réunion avec le tuteur entreprise dans l’entrepôt &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Nous avons observé en situation le problème et discuté des besoins, des moyens déjà utilisables. Il nous faudra prendre en compte plusieurs paramètres dans notre réflexion tels que le système de stockage et d'adressages des palettes, sens de circulation des caristes, superficie des zones à desservir, durée de livraison.&lt;br /&gt;
Nous avons suggéré des étapes de validation intermédiaire du système par les futurs utilisateurs et pour cela nous rencontrerons le chef d'équipe des magasiniers lorsque qu'une version sera assez développée.&lt;br /&gt;
&lt;br /&gt;
Nous avons défini avec le tuteur les premières deadlines du projet, voici la timeline récapitulative:&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Timeline_1.jpg||center|1000px]]&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Compte Rendu &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Nous avons rédigé un compte rendu de la première réunion détaillant les spécifications des versions des livrables, des schémas et les sujets abordés lors de la rencontre :&lt;br /&gt;
&lt;br /&gt;
'''Compte Rendu réunion du 25/09/2014 :''' [[Fichier:Compte_Rendu_25_09.pdf]]&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 29/09 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Découverte des Google Glass &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
*Prise en main des Google Glass. &lt;br /&gt;
*Installation d'applications (.apk) grand public. Nous avons utilisé l'outil Android Debug Bridge(adb). Se mettre à la place d'un utilisateur.&lt;br /&gt;
*L'une des deux lunettes qui serait retenue imposera forcément le développement d'une application android (ou d'une technologie trés proche d'android, pour les Google Glass, se basant sur le Glass Development Kit qui est un add-on au SDK classique d'android). Nous avons donc téléchargé les packages nécessaires pour commencer à développer. &lt;br /&gt;
** Nous commençons à nous former sur les technologies android :développement d'applications minimaliste.&lt;br /&gt;
** Installation de nos premières apk minimalistes pour Android.&lt;br /&gt;
** Installation d'une application minimaliste sur la Google Glass.&lt;br /&gt;
&lt;br /&gt;
Voici un comparatif réalisé entre les lunettes ORA et les Google Glass.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Différences Google Glass/ORA &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!   !! Google Glass !! ORA &lt;br /&gt;
|-&lt;br /&gt;
|Connectique&lt;br /&gt;
|Compatible BLE (à partir de la XE 16 KitKat Update), Wifi &lt;br /&gt;
|Compatible BLE, Wifi&lt;br /&gt;
|-&lt;br /&gt;
|Autonomie en utilisation normale&lt;br /&gt;
|de 1h à 2h &lt;br /&gt;
|de 4h à 8h&lt;br /&gt;
|-&lt;br /&gt;
|Son&lt;br /&gt;
|Conductivité Cranienne&lt;br /&gt;
|Prise jack&lt;br /&gt;
|-&lt;br /&gt;
|Interface&lt;br /&gt;
|Ecran occupant une faible superficie dans le champ de vision &lt;br /&gt;
|Ecran 2 positions (moyennes et basses), plus étendu permettant une réalité augmentée &lt;br /&gt;
|-&lt;br /&gt;
|Système d'exploitation&lt;br /&gt;
|Android 4.4&lt;br /&gt;
|Android 4.2.2&lt;br /&gt;
|-&lt;br /&gt;
|Calculs&lt;br /&gt;
|CPU &amp;amp; GPU&lt;br /&gt;
|CPU &amp;amp; GPU&lt;br /&gt;
|-&lt;br /&gt;
|Prix&lt;br /&gt;
|1500$ &lt;br /&gt;
|949$&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 06/10 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Deuxième rendez-vous avec le tuteur entreprise &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Nous avons fait part de notre avancée en matière de prise en main et des problèmes rencontrés en matière de développement.&lt;br /&gt;
Les lunettes ORA sont commandées elles arrivent d'ici la fin octobre.&lt;br /&gt;
&lt;br /&gt;
La première version V1 de l'application pour Google Glass à livrer pour la mi-novembre est fixée.&lt;br /&gt;
&lt;br /&gt;
En partant d'une position connue (en dur dans l'application) dans l'entrepôt, elle indiquera à un utilisateur les emplacements libres les plus proches.&lt;br /&gt;
&lt;br /&gt;
L'état d'occupation des emplacements sera consulté et stocké dans l'application. Il n'y aura donc pas de gestion des conflits. Le sens de circulation dans l'entrepôt sera pris en compte.&lt;br /&gt;
Une communication avec la base de donnée de l'entrepôt n'est pour le moment pas d'actualité, cela nécessiterait des développements en amont.&lt;br /&gt;
La géolocalisation n'est pas au goût du jour non plus. L'adressage des emplacements dans l'entrepôt est intuitif, il est donc facile pour un magasinier de &lt;br /&gt;
se rendre à un emplacement en connaissant l'adresse.&lt;br /&gt;
&lt;br /&gt;
Pour l'IHM, nous nous inspirerons des applications pour Google Glass (les Glasswares) de type GPS.&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Premiers programmes sur Google Glass &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Pour nous familiariser avec la programmation sur ce genre d'appareil nous avons tous deux décidé de suivre en premier le tutoriel Android d'un site spécialisé. Cela afin de mieux comprendre le système Android, avec les concepts d'activités, de view etc.&lt;br /&gt;
Dans un deuxième temps nous avons choisi de suivre plusieurs tutoriels nous expliquant la prise en main basique des lunettes afin de saisir les particularités de leur programmation.&lt;br /&gt;
&lt;br /&gt;
Le plus dur étant finalement de comprendre les liens entre tous les fichiers du projets, les problèmes de drivers et d'upload simple que nous avons rencontrés et l’exécution du programme sur les lunettes. Des choses que nous arrivons maintenant à maitriser mais qui était floues à l'origine.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 13/10 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Programmation et gestion des interactions &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Durant cette semaine nous avons commencé a vraiment toucher aux fonctionnalités des Glass. Pour rester en main libre, nous avons fait des recherches et commencé à programmer de la reconnaissance vocale. Nous avons ainsi crée un système de navigation basique par commande vocale dans différents menus. Pour un accès rapide à l'application et toujours dans la même optique nous avons réussi à inclure le lancement de notre logiciel à partir du &amp;quot;Ok Glass&amp;quot; menu qui est le menu de lancement d'application par commande vocale des Google Glass. Voici un aperçu du résultat:&lt;br /&gt;
[[Fichier:V0_menu.png|1000px|center]]&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Analyse et évaluation du rendu &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Le début de la prise en main des fonctionnalités des Google Glass n'a pas été facile étant donné que la plupart des fonctionnalités sont propres à ce genre d'appareil. De plus elles nécessitent des techniques spéciales de programmation qui ne sont pas toujours très utilisées donc il est parfois difficile de trouver des exemples sur internet.&lt;br /&gt;
Néanmoins après l'implémentation de ces fonctionnalités nous avons pu rencontrer quelques difficultés de reconnaissance. En effet, les Google Glass possèdent un dictionnaire de mots/phrases pour la reconnaissance vocale mais elles nous permettent aussi d'écrire n'importe quelle phrase dans le mode développeur. Les phrases du dictionnaires ne posent aucun problème mais les phrases que nous écrivons sont parfois dures à reconnaitre. La reconnaissance de lettre seule ou de certains numéros est par exemple quasi impossible ou très aléatoire.&lt;br /&gt;
Le système de vu est quant à lui plutôt facile à prendre en main et intuitif dans l'utilisation.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 20/10 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Premiere structure de donnée &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Nous avons opté pour une structure de donnée récursive. Une Cellule, contenant des Allées, qui contiennent des Baies, contenant des Rangées, contenant des Emplacements.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Structure_export_resized.png|750px|center]]&lt;br /&gt;
Nous avons conçu cette structure de donnée pour qu'elle génère, dans un premier temps &amp;quot;en dur&amp;quot;, une cellule contenant des emplacements automatiquement adressés à la manière de ceux présent dans l'entrepôt. Ces adresses sont de la forme &amp;quot;D61A514&amp;quot; traduisez &amp;quot; Cellule 6 Allée 1A Baie 5 Rang 1 Niveau 4&amp;quot;.&lt;br /&gt;
Cette structure prend on compte le sens de circulation dans l'entrepôt.&lt;br /&gt;
Lors de futures interactions avec une base de donnée, cette structure serait sujette à évolution par une modification des méthodes de génération/modification du statut des adresses en fonction de cette base de donnée. Mais celle-ci constitue essentiellement une base pour appréhender plus pratiquement les problématiques de recherches de l'emplacement le plus proche.&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Prise en main de l'interface &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Nous avons déjà abordé les layouts java en TP donc il a été assez facile de commencer à faire des interfaces graphiques simples. Nous avons construit une interface graphique simple pour de faire une démonstration du programme aux tuteurs entreprise afin qu'ils comprennent bien le fonctionnement de notre algorithme.&lt;br /&gt;
L'interface graphique finale du programme sera très sobre afin de ne pas donner trop gêner le magasinier dans sa tâche.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 27/10 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Chemin optimal : Parcours intelligent Vs Sélection intelligente &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Un premier algorithme de recherche de l'emplacement le plus proche a été développé, celui-ci ne prend en compte qu'un seul scénario. &lt;br /&gt;
Celui de la position de départ (quai de déchargement où reviendra constamment le magasinier aprés chaque livraison) correspondante à la première allée de l'entrepôt, et en prenant en compte le sens de circulation. &lt;br /&gt;
A partir de ce moment, nous avons dégager deux grandes manières d'appréhender le problème.&lt;br /&gt;
&lt;br /&gt;
* Un parcours intelligent de la structure de donnée. C'est à dire parcourir les emplacements les plus proches, et choisir le premier emplacement libre. Une solution complexe à réaliser sur le plan algorithmique. En tenant compte du sens de circulation, il apparait que l'emplacement libre &amp;quot;leplusproche&amp;quot; (à vol d'oiseau) trouvé le plus tôt, ne correspondrait pas forcément à l'emplacement le plus proche compte tenu du chemin emprunté par un magasinier. Et c'est plutôt l'intérêt de cette algorithme.(Sauf dans l'unique cas où l'emplacement libre se trouve directement dans l'allée faisant face à la position de départ du magasinier, et le sens de circulation lui permet directement de se rendre à l'emplacement sans détour).&lt;br /&gt;
&lt;br /&gt;
* Une sélection intelligente parmi les emplacements libres. Leurs adresses renseignent à quelles allées, les emplacements libres appartiennent, donc renseignent sur le sens de circulation. A partir de la position de départ du magasinier et de l'ensemble des emplacements libres, on peut calculer la distance nécessaire à celui-ci pour les atteindre. Pour ainsi choisir l'adresse pour laquelle la distance est minimale.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 3/11 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Chemin optimal : sélection intelligente des adresses &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Nous avons écrit une premiere méthode de détermination. &lt;br /&gt;
On choisit l'emplacement, parmi tous ceux qui sont libres, pour lequel la distance de parcours est minimale entre le départ et celui-ci. &lt;br /&gt;
Ici l'unité de distance est la baie. La simplicité de l'algorithme réside dans le fait que le magasinier ne transporte qu'une seule caisse à la fois et repars toujours au même point de départ.&lt;br /&gt;
&lt;br /&gt;
Ci dessous un plan de l'entrepôt.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:schema_entrepot.png|750px|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Si on se place à l'entrée de l'Allée A :&lt;br /&gt;
&lt;br /&gt;
**le déplacement jusqu'à A4 (sens de circulation direct) est de : &lt;br /&gt;
&lt;br /&gt;
                        Y baies - (indice de la baie/2 +indice de la baie % 2) &lt;br /&gt;
&lt;br /&gt;
**le déplacement jusqu'à B1 (sens de circulation indirect) est de : &lt;br /&gt;
&lt;br /&gt;
                        Y baies + différence entre l'allée A et B donc X baies + indice de la baie/2 +indice de la baie % 2&lt;br /&gt;
**le déplacement jusqu'à C1 (sens de circulation direct) est de : &lt;br /&gt;
                      &lt;br /&gt;
                        Y baies - (indice de la baie/2 +indice de la baie % 2)+différence entre l'allée A et C donc 2*X baies.&lt;br /&gt;
&lt;br /&gt;
*Si on se place à l'entrée de l'Allée B :&lt;br /&gt;
**le déplacement jusqu'à B1 (sens de circulation indirect avec contournement) est de : &lt;br /&gt;
                        &lt;br /&gt;
                        2*X baies + Y baies + 2*X baies + (indice de la baie/2 +indice de la baie % 2)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On peut généraliser l'ensemble de ces situations de déplacement avec l'algorithme suivant :&lt;br /&gt;
&lt;br /&gt;
Pseudo code&lt;br /&gt;
&lt;br /&gt;
  Leplusproche( Allee depart )&lt;br /&gt;
    distance_la_plus_petite = valeurMAX&lt;br /&gt;
      le_plus_proche=&amp;quot;&amp;quot;&lt;br /&gt;
         Pour chaque Allee de Cellule&lt;br /&gt;
           sens=Allee.sens&lt;br /&gt;
           Pour chaque Baie de Allee&lt;br /&gt;
             Pour chaque Rang de Allee&lt;br /&gt;
 	       Pour chaque Emplacement de Rang&lt;br /&gt;
                Si Emplacement estlibre &lt;br /&gt;
                &lt;br /&gt;
                indice_baie = selection_indice_baie(Emplacement.adresse)&lt;br /&gt;
   		 allee_cible = selection_indice_allee(Emplacement.adresse)  &lt;br /&gt;
   		 difference_allee = valeur_absolue(depart -cible) &lt;br /&gt;
                    Si difference_allee==0 et sens.estindirect&lt;br /&gt;
                      //sens indirect +contournement&lt;br /&gt;
                      distance_actuelle=(indice_baie/2)+indice_baie%2+(2*(difference_allee))+4*X+Y			&lt;br /&gt;
                    Sinon	&lt;br /&gt;
                        Si sens estdirect&lt;br /&gt;
                          //sens direct &lt;br /&gt;
                          distance_actuelle=(Y-((indice_baie/2)+indice_baie%2))+2*difference_allee&lt;br /&gt;
                        Sinon&lt;br /&gt;
                          //sens indirect mais pas de contournement&lt;br /&gt;
                          distance_actuelle=((indice_baie/2)+indice_baie%2)+2*difference_allee+Y&lt;br /&gt;
                        Finsi	&lt;br /&gt;
                    Finsi	&lt;br /&gt;
                    Si distance_actuelle &amp;lt; distance_la_plus_petite&lt;br /&gt;
                      le_plus_proche=Emplacement.adresse&lt;br /&gt;
                      distance_la_plus_petite=distance_actuelle&lt;br /&gt;
                    Finsi&lt;br /&gt;
                Finsi  &lt;br /&gt;
            Finpour&lt;br /&gt;
          Finpour&lt;br /&gt;
        Finpour&lt;br /&gt;
      Finpour&lt;br /&gt;
    retourne le_plus_proche&lt;br /&gt;
  Finleplusproche&lt;br /&gt;
&lt;br /&gt;
Cet algorithme nous donne satisfaction (dans le cadre de la V1)&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 10/11 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Programmation et gestion des interactions &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Aprés quelques difficultés vis à vis de la gestion des menus vocaux sur les lunettes qui ne fonctionnent pas de la même manière que les menus classiques sous android, nous avons étoffé les interactions possible avec l'application des google glass. (Nous souhaitions inflater un deuxième menu pour interagir de manière plus contextuelle, il fallait le faire dans la méthode onCreatePanelMenu dont l'appel serait forcé avec getWindow().invalidatePanelMenu(WindowUtils.FEATURE_VOICE_COMMANDS) plutôt que dans onPrepareOptionsMenu forcée par invalidateOptionMenu()...) &lt;br /&gt;
&lt;br /&gt;
schéma d'utilisation...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Proposition projet affichage télévision &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Tele_concept.png|200px|thumb|right]]&lt;br /&gt;
&lt;br /&gt;
Notre tuteur nous a contacté pour nous proposer d'étudier un second projet en parallèle au projet initial. Celui consistant à gérer l'affichage d'information personnalisé d'un magasinier passant à proximité d'un écran de télévision. Nous devons effectuer un Proof Of Concept (POC) et réfléchir à ce sujet.&lt;br /&gt;
L'utilisation du BLE est donc de nouveau d'actualité, car je rappel que sont utilité était discutable dans une réalité métier du projet initial. La question étant plus de savoir comment gérer le système du coté du téléviseur.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Le concept de base étant de :&lt;br /&gt;
* Fournir une beacon aux magasiniers de l'entrepôt.&lt;br /&gt;
* Installer une télévision sur un centre de vie dans l'entrepôt avec une beacon&lt;br /&gt;
* Pousser du contenu personnalisé au magasinier qui se présente devant la tv dans son centre de vie&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 17/11 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Brainstorming à Polytech &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Dans la cadre du POC sur l'affichage personnalisé sur une télévision, nous avons profité d'un exercice de management pour faire participer la classe à notre projet. Grâce à cette intervention nous avons pu confirmer nos idées sur les technologies à utiliser. Mais nous avons surtout eu une multitude de propositions sur les données à afficher sur l'écran.&lt;br /&gt;
&lt;br /&gt;
Pour plus détails, le compte rendu est disponible à ce lien:&lt;br /&gt;
&lt;br /&gt;
'''Compte Rendu Brainstorming 17/11/2014 :''' [[Fichier:Compte_Rendu_POC_17_11.pdf]]&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Entretien avec notre tuteur entreprise &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Durant cet entretien, nous avons livré la première version de l'application et nous avons discuté de la suite du projet.&lt;br /&gt;
Ci joint le Compte Rendu.&lt;br /&gt;
&lt;br /&gt;
'''Compte Rendu  19/11/2014 :''' [[Fichier:Compte_Rendu_19_11.pdf]]&lt;br /&gt;
&lt;br /&gt;
De cette réunion, les points suivants en sont sortis:&lt;br /&gt;
&lt;br /&gt;
*Une reconnaissance vocale en langue française sur les lunettes serait plus intéressante pour les employés (une piste serait d’utiliser l’outil pocketsphinx-  android).&lt;br /&gt;
*Par rapport à l'IHM, il faudrait mettre l’affichage au premier plan sur les Google Glass pour une démo auprés des parties prenantes du projet.&lt;br /&gt;
*Choisir une architecture pour l’affichage d’information personnalisées.&lt;br /&gt;
**La télévision connectée à une raspberry qui communiquerait via un dongle BLE avec le beacon d’un magasinier, ce qui permettrait l’identification de celui-ci prés de la Télévision, et déclencherait un processus d’échange d’information. (Communication via le protocole Bluetooh, wifi entre les lunettes et la Raspberry  ou communication avec la Raspberry avec la Base de Donnée sur le réseau de l’entreprise)&lt;br /&gt;
**Une télévision connectée en continu à un site internet via un dongle HDMI.&lt;br /&gt;
**Une tablette android géante supportant le BLE, ou utilisant un dongle BLE.&lt;br /&gt;
* Réaliser le portage de l’application sur le prototype des lunettes ORA.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 24/11 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Reconnaissance vocale en Français &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Pocket Sphinx Android est une librairie permettant de faire de la reconnaissance vocale d'un langage donné sur un système android en offline.&lt;br /&gt;
Pour supporter une langue, elle nécessite: &lt;br /&gt;
*un modèle acoustique (ensemble d'informations pour le traitement sonore)&lt;br /&gt;
*un dictionnaire associant les mots et leur phonèmes&lt;br /&gt;
*une grammaire, c'est un fichier définissant comment seraient articulé les mots à reconnaître et limitant les possibilités de langage).&lt;br /&gt;
&lt;br /&gt;
La grammaire étant un automate. Voici un exemple de la grammaire menu.gram pour la reconnaissance de la porte de déchargement.&lt;br /&gt;
[[Fichier:Arborescence_pocket_sphinx.png|200px|thumb|right|PocketSphinx dans un projet Android]]&lt;br /&gt;
&lt;br /&gt;
  #JSGF V1.0;&lt;br /&gt;
  grammar menu;&lt;br /&gt;
  &amp;lt;porte&amp;gt; = porte a |&lt;br /&gt;
            porte b |&lt;br /&gt;
            porte c |&lt;br /&gt;
            porte d |&lt;br /&gt;
            porte e |&lt;br /&gt;
            porte f |&lt;br /&gt;
            porte g |&lt;br /&gt;
            porte h |&lt;br /&gt;
            porte i |&lt;br /&gt;
            porte j ;&lt;br /&gt;
  public &amp;lt;porte&amp;gt; = &amp;lt;porte&amp;gt;+;&lt;br /&gt;
&lt;br /&gt;
Un extrait du dictionnaire french_letter.dic associé avec les phonemes&lt;br /&gt;
&lt;br /&gt;
  a aa &amp;lt;-- juste la lettre a et son phoneme &lt;br /&gt;
  autre au tt rr&lt;br /&gt;
  autre(2) au tt rr ee &lt;br /&gt;
  b bb &lt;br /&gt;
  c ss &lt;br /&gt;
  d dd ei d(2) dd ait &lt;br /&gt;
  e eu e(2) eu zz &lt;br /&gt;
  f ai ff &lt;br /&gt;
  g jj ei g(2) gg ai &lt;br /&gt;
  h aa ch  &lt;br /&gt;
  i ii &lt;br /&gt;
  j jj yy j(2) jj ii&lt;br /&gt;
  porte pp oo rr tt&lt;br /&gt;
  porte(2) pp oo rr tt ee&lt;br /&gt;
  portes(2) pp oo rr tt ee&lt;br /&gt;
  portes(3) pp oo rr tt ee zz&lt;br /&gt;
  portes(4) pp oo rr tt zz&lt;br /&gt;
&lt;br /&gt;
Le modèle acoustique que nous avons téléchargé étant inclu dans lium_french_f0&lt;br /&gt;
&lt;br /&gt;
Nous avons testé la reconnaissance vocale sur un téléphone android, les mots sont, dans la majorité des cas, bien reconnus.&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Comparaison architectures projet TV &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Au niveau de l’architecture nous avons établi plusieurs propositions après la réunion avec notre tuteur:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour une Raspberry Pi avec un dongle BLE :&lt;br /&gt;
* Installation OS Linux sur la Raspberry&lt;br /&gt;
* Librairie BlueZ pour l’utilisation du BLE (tests rapides effectués sur Linux avec le Dongle)&lt;br /&gt;
* Interface graphique avec une bibliothèque comme Qt (ou encore SDL…)&lt;br /&gt;
* Prix : Rpi = 26€ (chez RadioSpare), Dongle = 10€, TV = à partir de 358€ pour 117cm, + Connectique vidéo. Total = 394€&lt;br /&gt;
&lt;br /&gt;
Pour un écran ViewSonic VSD231 :&lt;br /&gt;
* Possède une API Bluetooth classic + API BLE&lt;br /&gt;
* Interface graphique Android (View, Layout...)&lt;br /&gt;
* Prix : écran ViewSonic VSD231 = 558 € pour 58 cm (chez ViewSonic).&lt;br /&gt;
&lt;br /&gt;
Récupération d’informations :&lt;br /&gt;
* Si données sur les lunettes : Bluetooth ou Wifi.&lt;br /&gt;
* Si données sur serveur : Ethernet ou Wifi.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Vu les propositions possibles nous pensons que la première proposition permettra une meilleure souplesse dans le développement mais serait un peu plus compliquée. Mais nous la trouvons aussi plus intéressante à faire de plus elle est moins coûteuse et permet d'utiliser un écran plus grand. Le développement sur tablette serait sûrement plus rapide à faire en contrepartie.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 01/12 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Conférence GlassCamp à l'Imaginarium &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
GlassCamp est une association qui essaye de répandre l'utilisation de toute les Smart Glass en général. Elle propose de multiples conférences dans lesquelles ils essayent de montrer au public l’intérêt de développer sur ces appareils. Dans le cadre de notre projet, notre tuteur nous a proposé de participer à cette présentation afin de mieux s’approprier le sujet. La conférence a eu lieu le 4 décembre à l'Imaginarium: une grande partie était plutôt tournée vers la présentation mais nous avons apprîs plusieurs choses intéressantes qui sont décrites dans le compte rendu.&lt;br /&gt;
&lt;br /&gt;
'''Compte Rendu Conférence 04/12/2014 :''' [[Fichier:Compte_Rendu_Conf_GlassCamp.pdf]]&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaines du 08/12 et 15/12 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Reconnaissance vocale en Français &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Nous avons avancé sur la version française de l'application. A la manière du menu vocal des google glass, nous avons utilisé un délimiteur&lt;br /&gt;
&amp;quot;ok lunettes&amp;quot; pour démarrer l'interaction avec l'application, afin que les discussions et bruits ambiants n'interfèrent pas sur l'utilisation de celle-ci.&lt;br /&gt;
Voici le scénario d'utilisation de la nouvelle version de l'application en Français.&lt;br /&gt;
[[Fichier:.pdf]]&lt;br /&gt;
&lt;br /&gt;
Sous pocketsphinx, le délimiteur n'apparait pas dans une grammaire. La grammaire permet de prédestiner l'application à choisir entre deux mots. &lt;br /&gt;
Dans notre application, le moteur de reconnaissance vocale choisi la distance la plus courte, séparant le mot prononcé par l'utilisateur et ceux&lt;br /&gt;
qu'il est possible d'entendre. Ainsi entre &amp;quot;oui&amp;quot; et &amp;quot;non&amp;quot;, l'application choisira forcément l'un des deux, même si l'utilisateur dit &amp;quot;bonjour&amp;quot;&lt;br /&gt;
&lt;br /&gt;
L'avantage du délimiteur est que sa détection repose sur un seuillage entre ce qui est prononcé et ce qui doit être reconnu, nous pouvons régler ce seuil.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 05/01 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Entretien avec notre tuteur &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Durant cet entretien nous avons défini les évolutions du projet.&lt;br /&gt;
&lt;br /&gt;
'''Compte Rendu de l'entretien du 06/01/2015 :''' [[Fichier:Compte_Rendu_4.pdf]]&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 12/01 &amp;lt;/font&amp;gt;==&lt;/div&gt;</summary>
		<author><name>Jgondry</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=P22_Google_Glass_en_logistique&amp;diff=15717</id>
		<title>P22 Google Glass en logistique</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=P22_Google_Glass_en_logistique&amp;diff=15717"/>
				<updated>2015-01-27T16:49:38Z</updated>
		
		<summary type="html">&lt;p&gt;Jgondry : /*  Reconnaissance vocale en Français  */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Introduction =&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Description du sujet &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
Notre projet vise à l’optimisation du stockage et de l’adressage des palettes dans un entrepôt. En effet, lors du déchargement d’un camion, chercher un emplacement libre pour les palettes dans un entrepôt occupant une grande superficie fait perdre du temps et donc de la productivité dans le stockage. Sachant qu’un cariste perd un temps non négligeable à la recherche d’emplacement disponible, optimiser ce temps de recherche permettrait de gagner du temps sur cette opération.&lt;br /&gt;
Développer un prototype permettrait de rendre compte des moyens existants qui pourrait être mis en place dans une solution métier.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Analyse du sujet &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Google_glass.png|200px|thumb|right|Paire de Google Glass]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Optinvent_ora.png|200px|thumb|right|Paire de ORA d'Optivent]]&lt;br /&gt;
&lt;br /&gt;
Notre projet consiste à fluidifier le déchargement en indiquant au cariste l’emplacement libre le plus proche. Pour ne pas gêner le travail des employés, un dispositif main-libre comme une Google Glass semble adapté. Ce projet soulève plusieurs problématiques : développer une interface homme-machine apportant une information pertinente pour l’utilisateur sans pour autant être perturbante. &lt;br /&gt;
&lt;br /&gt;
L’idée serait de réaliser dans les grandes lignes un système similaire à ce scénario d’utilisation :&lt;br /&gt;
http://n.mynews.ly/!lB.Bs4fw&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Moyen d’affichage de l’Informations pertinentes'''&lt;br /&gt;
&lt;br /&gt;
Les Google Glass ne sont pas les seules smart glasses sur le marché. Il nous faudra choisir les appareils les plus adaptés. L’information pertinente pourrait être une direction à suivre dans l’entrepôt ou simplement un numéro d’emplacement (adressage intuitif de l’entrepôt). &lt;br /&gt;
&lt;br /&gt;
'''Géolocalisation'''&lt;br /&gt;
&lt;br /&gt;
Dans le cas d’une direction à suivre se pose le problème de la géolocalisation indoor dont l’utilité et la faisabilité seront discutés au fil des réunions avec l’entreprise. &lt;br /&gt;
&lt;br /&gt;
'''Adressage / flashage'''&lt;br /&gt;
&lt;br /&gt;
En ce qui concerne l’adressage des palettes en entrepôt, la solution existante repose sur un flashage des codes barres associés à l’emplacement venant d’être occupé. Une étude de faisabilité/utilité sera aussi faite sur une solution de remplacement grâce aux possibilités qu’offrent les smart glasses.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Cahier des charges &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
En partant de l'analyse du sujet et des discussion avec notre tuteur, nous avons définie un cahier des charges plus précis des tâches à accomplir:&lt;br /&gt;
&lt;br /&gt;
* '''Développer un système embarqué sur une paire de lunette Smart Glass'''&lt;br /&gt;
** Comparer les différentes offres en matière de Smart Glass notamment Google Glass &amp;amp; ORA de Optinvent&lt;br /&gt;
** Concevoir une interface homme-machine non perturbante pour l'utilisateur.&lt;br /&gt;
* '''Etudier la nécessité d'utiliser une géolocalisation en entrepôt et l'implémenter si besoin'''&lt;br /&gt;
** Via RSSI (Wifi, Bluetooh Low Energy ...)&lt;br /&gt;
** Via traitement d'images (reconnaissance de la signalétique en entrepôt)&lt;br /&gt;
* '''Etudier les possibilités d'optimisation du système d'adressage des palettes'''&lt;br /&gt;
** Implémenter la reconnaissance de code barre&lt;br /&gt;
** La tester en réalité métier (utilité ajoutée, habitude des magasiniers, vitesse de traitement...)&lt;br /&gt;
&lt;br /&gt;
Le cahier des charges est encore en cours de construction&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Matériel utilisé &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; SmartGlass &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Lors de la réunion nous avons discuté des technologies à utiliser dans le projet, et plus particulièrement des différentes SmartGlass. En effet, il existe une multitude de sociétés qui développe ce genre de lunettes. Nous commencerons à utiliser les Google Glass étant donné que notre tuteur en a déjà commandé puis nous développerons sur les lunettes ORA de Optivent qui seront livrées fin octobre. Nous devrons donc faire un comparatif entre ces deux SmartGlass puis étudier les autres appareils disponibles sur le marché.&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Localisation &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
L'utilisation de la géolocalisation dans le projet est à débattre. Mais des tests seront probablement mis en place. L'entreprise possède quelque iBeacons BLE Estimote dans ses bureaux d'innovations que nous pourrons emprunter.&lt;br /&gt;
Dans le cas où leur gain d'informations serait utile il nous faudra comparer les modèles disponibles. Choisir un nombre de module et des emplacements stratégiques dans l'entrepôt afin d'avoir une localisation assez précise pour l'application.&lt;br /&gt;
&lt;br /&gt;
L'utilisation d'autres technologies de géolocalisation a été discuté comme le Wifi ou le XBee mais le BLE semblait le plus adapté dans le cadre de notre projet.&lt;br /&gt;
&lt;br /&gt;
= Déroulement du projet =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 22/09 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Réunion avec le tuteur entreprise dans l’entrepôt &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Nous avons observé en situation le problème et discuté des besoins, des moyens déjà utilisables. Il nous faudra prendre en compte plusieurs paramètres dans notre réflexion tels que le système de stockage et d'adressages des palettes, sens de circulation des caristes, superficie des zones à desservir, durée de livraison.&lt;br /&gt;
Nous avons suggéré des étapes de validation intermédiaire du système par les futurs utilisateurs et pour cela nous rencontrerons le chef d'équipe des magasiniers lorsque qu'une version sera assez développée.&lt;br /&gt;
&lt;br /&gt;
Nous avons défini avec le tuteur les premières deadlines du projet, voici la timeline récapitulative:&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Timeline_1.jpg||center|1000px]]&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Compte Rendu &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Nous avons rédigé un compte rendu de la première réunion détaillant les spécifications des versions des livrables, des schémas et les sujets abordés lors de la rencontre :&lt;br /&gt;
&lt;br /&gt;
'''Compte Rendu réunion du 25/09/2014 :''' [[Fichier:Compte_Rendu_25_09.pdf]]&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 29/09 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Découverte des Google Glass &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
*Prise en main des Google Glass. &lt;br /&gt;
*Installation d'applications (.apk) grand public. Nous avons utilisé l'outil Android Debug Bridge(adb). Se mettre à la place d'un utilisateur.&lt;br /&gt;
*L'une des deux lunettes qui serait retenue imposera forcément le développement d'une application android (ou d'une technologie trés proche d'android, pour les Google Glass, se basant sur le Glass Development Kit qui est un add-on au SDK classique d'android). Nous avons donc téléchargé les packages nécessaires pour commencer à développer. &lt;br /&gt;
** Nous commençons à nous former sur les technologies android :développement d'applications minimaliste.&lt;br /&gt;
** Installation de nos premières apk minimalistes pour Android.&lt;br /&gt;
** Installation d'une application minimaliste sur la Google Glass.&lt;br /&gt;
&lt;br /&gt;
Voici un comparatif réalisé entre les lunettes ORA et les Google Glass.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Différences Google Glass/ORA &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!   !! Google Glass !! ORA &lt;br /&gt;
|-&lt;br /&gt;
|Connectique&lt;br /&gt;
|Compatible BLE (à partir de la XE 16 KitKat Update), Wifi &lt;br /&gt;
|Compatible BLE, Wifi&lt;br /&gt;
|-&lt;br /&gt;
|Autonomie en utilisation normale&lt;br /&gt;
|de 1h à 2h &lt;br /&gt;
|de 4h à 8h&lt;br /&gt;
|-&lt;br /&gt;
|Son&lt;br /&gt;
|Conductivité Cranienne&lt;br /&gt;
|Prise jack&lt;br /&gt;
|-&lt;br /&gt;
|Interface&lt;br /&gt;
|Ecran occupant une faible superficie dans le champ de vision &lt;br /&gt;
|Ecran 2 positions (moyennes et basses), plus étendu permettant une réalité augmentée &lt;br /&gt;
|-&lt;br /&gt;
|Système d'exploitation&lt;br /&gt;
|Android 4.4&lt;br /&gt;
|Android 4.2.2&lt;br /&gt;
|-&lt;br /&gt;
|Calculs&lt;br /&gt;
|CPU &amp;amp; GPU&lt;br /&gt;
|CPU &amp;amp; GPU&lt;br /&gt;
|-&lt;br /&gt;
|Prix&lt;br /&gt;
|1500$ &lt;br /&gt;
|949$&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 06/10 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Deuxième rendez-vous avec le tuteur entreprise &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Nous avons fait part de notre avancée en matière de prise en main et des problèmes rencontrés en matière de développement.&lt;br /&gt;
Les lunettes ORA sont commandées elles arrivent d'ici la fin octobre.&lt;br /&gt;
&lt;br /&gt;
La première version V1 de l'application pour Google Glass à livrer pour la mi-novembre est fixée.&lt;br /&gt;
&lt;br /&gt;
En partant d'une position connue (en dur dans l'application) dans l'entrepôt, elle indiquera à un utilisateur les emplacements libres les plus proches.&lt;br /&gt;
&lt;br /&gt;
L'état d'occupation des emplacements sera consulté et stocké dans l'application. Il n'y aura donc pas de gestion des conflits. Le sens de circulation dans l'entrepôt sera pris en compte.&lt;br /&gt;
Une communication avec la base de donnée de l'entrepôt n'est pour le moment pas d'actualité, cela nécessiterait des développements en amont.&lt;br /&gt;
La géolocalisation n'est pas au goût du jour non plus. L'adressage des emplacements dans l'entrepôt est intuitif, il est donc facile pour un magasinier de &lt;br /&gt;
se rendre à un emplacement en connaissant l'adresse.&lt;br /&gt;
&lt;br /&gt;
Pour l'IHM, nous nous inspirerons des applications pour Google Glass (les Glasswares) de type GPS.&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Premiers programmes sur Google Glass &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Pour nous familiariser avec la programmation sur ce genre d'appareil nous avons tous deux décidé de suivre en premier le tutoriel Android d'un site spécialisé. Cela afin de mieux comprendre le système Android, avec les concepts d'activités, de view etc.&lt;br /&gt;
Dans un deuxième temps nous avons choisi de suivre plusieurs tutoriels nous expliquant la prise en main basique des lunettes afin de saisir les particularités de leur programmation.&lt;br /&gt;
&lt;br /&gt;
Le plus dur étant finalement de comprendre les liens entre tous les fichiers du projets, les problèmes de drivers et d'upload simple que nous avons rencontrés et l’exécution du programme sur les lunettes. Des choses que nous arrivons maintenant à maitriser mais qui était floues à l'origine.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 13/10 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Programmation et gestion des interactions &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Durant cette semaine nous avons commencé a vraiment toucher aux fonctionnalités des Glass. Pour rester en main libre, nous avons fait des recherches et commencé à programmer de la reconnaissance vocale. Nous avons ainsi crée un système de navigation basique par commande vocale dans différents menus. Pour un accès rapide à l'application et toujours dans la même optique nous avons réussi à inclure le lancement de notre logiciel à partir du &amp;quot;Ok Glass&amp;quot; menu qui est le menu de lancement d'application par commande vocale des Google Glass. Voici un aperçu du résultat:&lt;br /&gt;
[[Fichier:V0_menu.png|1000px|center]]&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Analyse et évaluation du rendu &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Le début de la prise en main des fonctionnalités des Google Glass n'a pas été facile étant donné que la plupart des fonctionnalités sont propres à ce genre d'appareil. De plus elles nécessitent des techniques spéciales de programmation qui ne sont pas toujours très utilisées donc il est parfois difficile de trouver des exemples sur internet.&lt;br /&gt;
Néanmoins après l'implémentation de ces fonctionnalités nous avons pu rencontrer quelques difficultés de reconnaissance. En effet, les Google Glass possèdent un dictionnaire de mots/phrases pour la reconnaissance vocale mais elles nous permettent aussi d'écrire n'importe quelle phrase dans le mode développeur. Les phrases du dictionnaires ne posent aucun problème mais les phrases que nous écrivons sont parfois dures à reconnaitre. La reconnaissance de lettre seule ou de certains numéros est par exemple quasi impossible ou très aléatoire.&lt;br /&gt;
Le système de vu est quant à lui plutôt facile à prendre en main et intuitif dans l'utilisation.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 20/10 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Premiere structure de donnée &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Nous avons opté pour une structure de donnée récursive. Une Cellule, contenant des Allées, qui contiennent des Baies, contenant des Rangées, contenant des Emplacements.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Structure_export_resized.png|750px|center]]&lt;br /&gt;
Nous avons conçu cette structure de donnée pour qu'elle génère, dans un premier temps &amp;quot;en dur&amp;quot;, une cellule contenant des emplacements automatiquement adressés à la manière de ceux présent dans l'entrepôt. Ces adresses sont de la forme &amp;quot;D61A514&amp;quot; traduisez &amp;quot; Cellule 6 Allée 1A Baie 5 Rang 1 Niveau 4&amp;quot;.&lt;br /&gt;
Cette structure prend on compte le sens de circulation dans l'entrepôt.&lt;br /&gt;
Lors de futures interactions avec une base de donnée, cette structure serait sujette à évolution par une modification des méthodes de génération/modification du statut des adresses en fonction de cette base de donnée. Mais celle-ci constitue essentiellement une base pour appréhender plus pratiquement les problématiques de recherches de l'emplacement le plus proche.&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Prise en main de l'interface &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Nous avons déjà abordé les layouts java en TP donc il a été assez facile de commencer à faire des interfaces graphiques simples. Nous avons construit une interface graphique simple pour de faire une démonstration du programme aux tuteurs entreprise afin qu'ils comprennent bien le fonctionnement de notre algorithme.&lt;br /&gt;
L'interface graphique finale du programme sera très sobre afin de ne pas donner trop gêner le magasinier dans sa tâche.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 27/10 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Chemin optimal : Parcours intelligent Vs Sélection intelligente &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Un premier algorithme de recherche de l'emplacement le plus proche a été développé, celui-ci ne prend en compte qu'un seul scénario. &lt;br /&gt;
Celui de la position de départ (quai de déchargement où reviendra constamment le magasinier aprés chaque livraison) correspondante à la première allée de l'entrepôt, et en prenant en compte le sens de circulation. &lt;br /&gt;
A partir de ce moment, nous avons dégager deux grandes manières d'appréhender le problème.&lt;br /&gt;
&lt;br /&gt;
* Un parcours intelligent de la structure de donnée. C'est à dire parcourir les emplacements les plus proches, et choisir le premier emplacement libre. Une solution complexe à réaliser sur le plan algorithmique. En tenant compte du sens de circulation, il apparait que l'emplacement libre &amp;quot;leplusproche&amp;quot; (à vol d'oiseau) trouvé le plus tôt, ne correspondrait pas forcément à l'emplacement le plus proche compte tenu du chemin emprunté par un magasinier. Et c'est plutôt l'intérêt de cette algorithme.(Sauf dans l'unique cas où l'emplacement libre se trouve directement dans l'allée faisant face à la position de départ du magasinier, et le sens de circulation lui permet directement de se rendre à l'emplacement sans détour).&lt;br /&gt;
&lt;br /&gt;
* Une sélection intelligente parmi les emplacements libres. Leurs adresses renseignent à quelles allées, les emplacements libres appartiennent, donc renseignent sur le sens de circulation. A partir de la position de départ du magasinier et de l'ensemble des emplacements libres, on peut calculer la distance nécessaire à celui-ci pour les atteindre. Pour ainsi choisir l'adresse pour laquelle la distance est minimale.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 3/11 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Chemin optimal : sélection intelligente des adresses &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Nous avons écrit une premiere méthode de détermination. &lt;br /&gt;
On choisit l'emplacement, parmi tous ceux qui sont libres, pour lequel la distance de parcours est minimale entre le départ et celui-ci. &lt;br /&gt;
Ici l'unité de distance est la baie. La simplicité de l'algorithme réside dans le fait que le magasinier ne transporte qu'une seule caisse à la fois et repars toujours au même point de départ.&lt;br /&gt;
&lt;br /&gt;
Ci dessous un plan de l'entrepôt.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:schema_entrepot.png|750px|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Si on se place à l'entrée de l'Allée A :&lt;br /&gt;
&lt;br /&gt;
**le déplacement jusqu'à A4 (sens de circulation direct) est de : &lt;br /&gt;
&lt;br /&gt;
                        Y baies - (indice de la baie/2 +indice de la baie % 2) &lt;br /&gt;
&lt;br /&gt;
**le déplacement jusqu'à B1 (sens de circulation indirect) est de : &lt;br /&gt;
&lt;br /&gt;
                        Y baies + différence entre l'allée A et B donc X baies + indice de la baie/2 +indice de la baie % 2&lt;br /&gt;
**le déplacement jusqu'à C1 (sens de circulation direct) est de : &lt;br /&gt;
                      &lt;br /&gt;
                        Y baies - (indice de la baie/2 +indice de la baie % 2)+différence entre l'allée A et C donc 2*X baies.&lt;br /&gt;
&lt;br /&gt;
*Si on se place à l'entrée de l'Allée B :&lt;br /&gt;
**le déplacement jusqu'à B1 (sens de circulation indirect avec contournement) est de : &lt;br /&gt;
                        &lt;br /&gt;
                        2*X baies + Y baies + 2*X baies + (indice de la baie/2 +indice de la baie % 2)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On peut généraliser l'ensemble de ces situations de déplacement avec l'algorithme suivant :&lt;br /&gt;
&lt;br /&gt;
Pseudo code&lt;br /&gt;
&lt;br /&gt;
  Leplusproche( Allee depart )&lt;br /&gt;
    distance_la_plus_petite = valeurMAX&lt;br /&gt;
      le_plus_proche=&amp;quot;&amp;quot;&lt;br /&gt;
         Pour chaque Allee de Cellule&lt;br /&gt;
           sens=Allee.sens&lt;br /&gt;
           Pour chaque Baie de Allee&lt;br /&gt;
             Pour chaque Rang de Allee&lt;br /&gt;
 	       Pour chaque Emplacement de Rang&lt;br /&gt;
                Si Emplacement estlibre &lt;br /&gt;
                &lt;br /&gt;
                indice_baie = selection_indice_baie(Emplacement.adresse)&lt;br /&gt;
   		 allee_cible = selection_indice_allee(Emplacement.adresse)  &lt;br /&gt;
   		 difference_allee = valeur_absolue(depart -cible) &lt;br /&gt;
                    Si difference_allee==0 et sens.estindirect&lt;br /&gt;
                      //sens indirect +contournement&lt;br /&gt;
                      distance_actuelle=(indice_baie/2)+indice_baie%2+(2*(difference_allee))+4*X+Y			&lt;br /&gt;
                    Sinon	&lt;br /&gt;
                        Si sens estdirect&lt;br /&gt;
                          //sens direct &lt;br /&gt;
                          distance_actuelle=(Y-((indice_baie/2)+indice_baie%2))+2*difference_allee&lt;br /&gt;
                        Sinon&lt;br /&gt;
                          //sens indirect mais pas de contournement&lt;br /&gt;
                          distance_actuelle=((indice_baie/2)+indice_baie%2)+2*difference_allee+Y&lt;br /&gt;
                        Finsi	&lt;br /&gt;
                    Finsi	&lt;br /&gt;
                    Si distance_actuelle &amp;lt; distance_la_plus_petite&lt;br /&gt;
                      le_plus_proche=Emplacement.adresse&lt;br /&gt;
                      distance_la_plus_petite=distance_actuelle&lt;br /&gt;
                    Finsi&lt;br /&gt;
                Finsi  &lt;br /&gt;
            Finpour&lt;br /&gt;
          Finpour&lt;br /&gt;
        Finpour&lt;br /&gt;
      Finpour&lt;br /&gt;
    retourne le_plus_proche&lt;br /&gt;
  Finleplusproche&lt;br /&gt;
&lt;br /&gt;
Cet algorithme nous donne satisfaction (dans le cadre de la V1)&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 10/11 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Programmation et gestion des interactions &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Aprés quelques difficultés vis à vis de la gestion des menus vocaux sur les lunettes qui ne fonctionnent pas de la même manière que les menus classiques sous android, nous avons étoffé les interactions possible avec l'application des google glass. (Nous souhaitions inflater un deuxième menu pour interagir de manière plus contextuelle, il fallait le faire dans la méthode onCreatePanelMenu dont l'appel serait forcé avec getWindow().invalidatePanelMenu(WindowUtils.FEATURE_VOICE_COMMANDS) plutôt que dans onPrepareOptionsMenu forcée par invalidateOptionMenu()...) &lt;br /&gt;
&lt;br /&gt;
schéma d'utilisation...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Proposition projet affichage télévision &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Tele_concept.png|200px|thumb|right]]&lt;br /&gt;
&lt;br /&gt;
Notre tuteur nous a contacté pour nous proposer d'étudier un second projet en parallèle au projet initial. Celui consistant à gérer l'affichage d'information personnalisé d'un magasinier passant à proximité d'un écran de télévision. Nous devons effectuer un Proof Of Concept (POC) et réfléchir à ce sujet.&lt;br /&gt;
L'utilisation du BLE est donc de nouveau d'actualité, car je rappel que sont utilité était discutable dans une réalité métier du projet initial. La question étant plus de savoir comment gérer le système du coté du téléviseur.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Le concept de base étant de :&lt;br /&gt;
* Fournir une beacon aux magasiniers de l'entrepôt.&lt;br /&gt;
* Installer une télévision sur un centre de vie dans l'entrepôt avec une beacon&lt;br /&gt;
* Pousser du contenu personnalisé au magasinier qui se présente devant la tv dans son centre de vie&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 17/11 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Brainstorming à Polytech &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Dans la cadre du POC sur l'affichage personnalisé sur une télévision, nous avons profité d'un exercice de management pour faire participer la classe à notre projet. Grâce à cette intervention nous avons pu confirmer nos idées sur les technologies à utiliser. Mais nous avons surtout eu une multitude de propositions sur les données à afficher sur l'écran.&lt;br /&gt;
&lt;br /&gt;
Pour plus détails, le compte rendu est disponible à ce lien:&lt;br /&gt;
&lt;br /&gt;
'''Compte Rendu Brainstorming 17/11/2014 :''' [[Fichier:Compte_Rendu_POC_17_11.pdf]]&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Entretien avec notre tuteur entreprise &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Durant cet entretien, nous avons livré la première version de l'application et nous avons discuté de la suite du projet.&lt;br /&gt;
Ci joint le Compte Rendu.&lt;br /&gt;
&lt;br /&gt;
'''Compte Rendu  19/11/2014 :''' [[Fichier:Compte_Rendu_19_11.pdf]]&lt;br /&gt;
&lt;br /&gt;
De cette réunion, les points suivants en sont sortis:&lt;br /&gt;
&lt;br /&gt;
*Une reconnaissance vocale en langue française sur les lunettes serait plus intéressante pour les employés (une piste serait d’utiliser l’outil pocketsphinx-  android).&lt;br /&gt;
*Par rapport à l'IHM, il faudrait mettre l’affichage au premier plan sur les Google Glass pour une démo auprés des parties prenantes du projet.&lt;br /&gt;
*Choisir une architecture pour l’affichage d’information personnalisées.&lt;br /&gt;
**La télévision connectée à une raspberry qui communiquerait via un dongle BLE avec le beacon d’un magasinier, ce qui permettrait l’identification de celui-ci prés de la Télévision, et déclencherait un processus d’échange d’information. (Communication via le protocole Bluetooh, wifi entre les lunettes et la Raspberry  ou communication avec la Raspberry avec la Base de Donnée sur le réseau de l’entreprise)&lt;br /&gt;
**Une télévision connectée en continu à un site internet via un dongle HDMI.&lt;br /&gt;
**Une tablette android géante supportant le BLE, ou utilisant un dongle BLE.&lt;br /&gt;
* Réaliser le portage de l’application sur le prototype des lunettes ORA.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 24/11 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Reconnaissance vocale en Français &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Pocket Sphinx Android est une librairie permettant de faire de la reconnaissance vocale d'un langage donné sur un système android en offline.&lt;br /&gt;
Pour supporter une langue, elle nécessite: &lt;br /&gt;
*un modèle acoustique (ensemble d'informations pour le traitement sonore)&lt;br /&gt;
*un dictionnaire associant les mots et leur phonèmes&lt;br /&gt;
*une grammaire, c'est un fichier définissant comment seraient articulé les mots à reconnaître et limitant les possibilités de langage).&lt;br /&gt;
&lt;br /&gt;
La grammaire étant un automate. Voici un exemple de la grammaire menu.gram pour la reconnaissance de la porte de déchargement.&lt;br /&gt;
[[Fichier:Arborescence_pocket_sphinx.png|200px|thumb|right|PocketSphinx dans un projet Android]]&lt;br /&gt;
&lt;br /&gt;
  #JSGF V1.0;&lt;br /&gt;
  grammar menu;&lt;br /&gt;
  &amp;lt;porte&amp;gt; = porte a |&lt;br /&gt;
            porte b |&lt;br /&gt;
            porte c |&lt;br /&gt;
            porte d |&lt;br /&gt;
            porte e |&lt;br /&gt;
            porte f |&lt;br /&gt;
            porte g |&lt;br /&gt;
            porte h |&lt;br /&gt;
            porte i |&lt;br /&gt;
            porte j ;&lt;br /&gt;
  public &amp;lt;porte&amp;gt; = &amp;lt;porte&amp;gt;+;&lt;br /&gt;
&lt;br /&gt;
Un extrait du dictionnaire french_letter.dic associé avec les phonemes&lt;br /&gt;
&lt;br /&gt;
  a aa &amp;lt;-- juste la lettre a et son phoneme &lt;br /&gt;
  autre au tt rr&lt;br /&gt;
  autre(2) au tt rr ee &lt;br /&gt;
  b bb &lt;br /&gt;
  c ss &lt;br /&gt;
  d dd ei d(2) dd ait &lt;br /&gt;
  e eu e(2) eu zz &lt;br /&gt;
  f ai ff &lt;br /&gt;
  g jj ei g(2) gg ai &lt;br /&gt;
  h aa ch  &lt;br /&gt;
  i ii &lt;br /&gt;
  j jj yy j(2) jj ii&lt;br /&gt;
  porte pp oo rr tt&lt;br /&gt;
  porte(2) pp oo rr tt ee&lt;br /&gt;
  portes(2) pp oo rr tt ee&lt;br /&gt;
  portes(3) pp oo rr tt ee zz&lt;br /&gt;
  portes(4) pp oo rr tt zz&lt;br /&gt;
&lt;br /&gt;
Le modèle acoustique que nous avons téléchargé étant inclu dans lium_french_f0&lt;br /&gt;
&lt;br /&gt;
Nous avons testé la reconnaissance vocale sur un téléphone android, les mots sont, dans la majorité des cas, bien reconnus.&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Comparaison architectures projet TV &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Au niveau de l’architecture nous avons établi plusieurs propositions après la réunion avec notre tuteur:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour une Raspberry Pi avec un dongle BLE :&lt;br /&gt;
* Installation OS Linux sur la Raspberry&lt;br /&gt;
* Librairie BlueZ pour l’utilisation du BLE (tests rapides effectués sur Linux avec le Dongle)&lt;br /&gt;
* Interface graphique avec une bibliothèque comme Qt (ou encore SDL…)&lt;br /&gt;
* Prix : Rpi = 26€ (chez RadioSpare), Dongle = 10€, TV = à partir de 358€ pour 117cm, + Connectique vidéo. Total = 394€&lt;br /&gt;
&lt;br /&gt;
Pour un écran ViewSonic VSD231 :&lt;br /&gt;
* Possède une API Bluetooth classic + API BLE&lt;br /&gt;
* Interface graphique Android (View, Layout...)&lt;br /&gt;
* Prix : écran ViewSonic VSD231 = 558 € pour 58 cm (chez ViewSonic).&lt;br /&gt;
&lt;br /&gt;
Récupération d’informations :&lt;br /&gt;
* Si données sur les lunettes : Bluetooth ou Wifi.&lt;br /&gt;
* Si données sur serveur : Ethernet ou Wifi.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Vu les propositions possibles nous pensons que la première proposition permettra une meilleure souplesse dans le développement mais serait un peu plus compliquée. Mais nous la trouvons aussi plus intéressante à faire de plus elle est moins coûteuse et permet d'utiliser un écran plus grand. Le développement sur tablette serait sûrement plus rapide à faire en contrepartie.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 01/12 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Conférence GlassCamp à l'Imaginarium &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
GlassCamp est une association qui essaye de répandre l'utilisation de toute les Smart Glass en général. Elle propose de multiples conférences dans lesquelles ils essayent de montrer au public l’intérêt de développer sur ces appareils. Dans le cadre de notre projet, notre tuteur nous a proposé de participer à cette présentation afin de mieux s’approprier le sujet. La conférence a eu lieu le 4 décembre à l'Imaginarium: une grande partie était plutôt tournée vers la présentation mais nous avons apprîs plusieurs choses intéressantes qui sont décrites dans le compte rendu.&lt;br /&gt;
&lt;br /&gt;
'''Compte Rendu Conférence 04/12/2014 :''' [[Fichier:Compte_Rendu_Conf_GlassCamp.pdf]]&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaines du 08/12 et 15/12 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Reconnaissance vocale en Français &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Nous avons avancé sur la version française de l'application. A la manière du menu vocal des google glass, nous avons utilisé un délimiteur&lt;br /&gt;
&amp;quot;ok lunettes&amp;quot; pour démarrer l'interaction avec l'application, afin que les discussions et bruits ambiants n'interfèrent pas sur l'utilisation de celle-ci.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Sous pocketsphinx, le délimiteur n'apparait pas dans une grammaire. La grammaire permet de prédestiner l'application à choisir entre deux mots. &lt;br /&gt;
Dans notre application, le moteur de reconnaissance vocale choisi la distance la plus courte, séparant le mot prononcé par l'utilisateur et ceux&lt;br /&gt;
qu'il est possible d'entendre. Ainsi entre &amp;quot;oui&amp;quot; et &amp;quot;non&amp;quot;, l'application choisira forcément l'un des deux, même si l'utilisateur dit &amp;quot;bonjour&amp;quot;&lt;br /&gt;
&lt;br /&gt;
L'avantage du délimiteur est que sa détection repose sur un seuillage entre ce qui est prononcé et ce qui doit être reconnu, nous pouvons régler ce seuil.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 05/01 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Entretien avec notre tuteur &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Durant cet entretien nous avons défini les évolutions du projet.&lt;br /&gt;
&lt;br /&gt;
'''Compte Rendu de l'entretien du 06/01/2015 :''' [[Fichier:Compte_Rendu_4.pdf]]&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 12/01 &amp;lt;/font&amp;gt;==&lt;/div&gt;</summary>
		<author><name>Jgondry</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=P22_Google_Glass_en_logistique&amp;diff=15713</id>
		<title>P22 Google Glass en logistique</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=P22_Google_Glass_en_logistique&amp;diff=15713"/>
				<updated>2015-01-27T16:40:57Z</updated>
		
		<summary type="html">&lt;p&gt;Jgondry : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Introduction =&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Description du sujet &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
Notre projet vise à l’optimisation du stockage et de l’adressage des palettes dans un entrepôt. En effet, lors du déchargement d’un camion, chercher un emplacement libre pour les palettes dans un entrepôt occupant une grande superficie fait perdre du temps et donc de la productivité dans le stockage. Sachant qu’un cariste perd un temps non négligeable à la recherche d’emplacement disponible, optimiser ce temps de recherche permettrait de gagner du temps sur cette opération.&lt;br /&gt;
Développer un prototype permettrait de rendre compte des moyens existants qui pourrait être mis en place dans une solution métier.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Analyse du sujet &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Google_glass.png|200px|thumb|right|Paire de Google Glass]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Optinvent_ora.png|200px|thumb|right|Paire de ORA d'Optivent]]&lt;br /&gt;
&lt;br /&gt;
Notre projet consiste à fluidifier le déchargement en indiquant au cariste l’emplacement libre le plus proche. Pour ne pas gêner le travail des employés, un dispositif main-libre comme une Google Glass semble adapté. Ce projet soulève plusieurs problématiques : développer une interface homme-machine apportant une information pertinente pour l’utilisateur sans pour autant être perturbante. &lt;br /&gt;
&lt;br /&gt;
L’idée serait de réaliser dans les grandes lignes un système similaire à ce scénario d’utilisation :&lt;br /&gt;
http://n.mynews.ly/!lB.Bs4fw&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Moyen d’affichage de l’Informations pertinentes'''&lt;br /&gt;
&lt;br /&gt;
Les Google Glass ne sont pas les seules smart glasses sur le marché. Il nous faudra choisir les appareils les plus adaptés. L’information pertinente pourrait être une direction à suivre dans l’entrepôt ou simplement un numéro d’emplacement (adressage intuitif de l’entrepôt). &lt;br /&gt;
&lt;br /&gt;
'''Géolocalisation'''&lt;br /&gt;
&lt;br /&gt;
Dans le cas d’une direction à suivre se pose le problème de la géolocalisation indoor dont l’utilité et la faisabilité seront discutés au fil des réunions avec l’entreprise. &lt;br /&gt;
&lt;br /&gt;
'''Adressage / flashage'''&lt;br /&gt;
&lt;br /&gt;
En ce qui concerne l’adressage des palettes en entrepôt, la solution existante repose sur un flashage des codes barres associés à l’emplacement venant d’être occupé. Une étude de faisabilité/utilité sera aussi faite sur une solution de remplacement grâce aux possibilités qu’offrent les smart glasses.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Cahier des charges &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
En partant de l'analyse du sujet et des discussion avec notre tuteur, nous avons définie un cahier des charges plus précis des tâches à accomplir:&lt;br /&gt;
&lt;br /&gt;
* '''Développer un système embarqué sur une paire de lunette Smart Glass'''&lt;br /&gt;
** Comparer les différentes offres en matière de Smart Glass notamment Google Glass &amp;amp; ORA de Optinvent&lt;br /&gt;
** Concevoir une interface homme-machine non perturbante pour l'utilisateur.&lt;br /&gt;
* '''Etudier la nécessité d'utiliser une géolocalisation en entrepôt et l'implémenter si besoin'''&lt;br /&gt;
** Via RSSI (Wifi, Bluetooh Low Energy ...)&lt;br /&gt;
** Via traitement d'images (reconnaissance de la signalétique en entrepôt)&lt;br /&gt;
* '''Etudier les possibilités d'optimisation du système d'adressage des palettes'''&lt;br /&gt;
** Implémenter la reconnaissance de code barre&lt;br /&gt;
** La tester en réalité métier (utilité ajoutée, habitude des magasiniers, vitesse de traitement...)&lt;br /&gt;
&lt;br /&gt;
Le cahier des charges est encore en cours de construction&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Matériel utilisé &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; SmartGlass &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Lors de la réunion nous avons discuté des technologies à utiliser dans le projet, et plus particulièrement des différentes SmartGlass. En effet, il existe une multitude de sociétés qui développe ce genre de lunettes. Nous commencerons à utiliser les Google Glass étant donné que notre tuteur en a déjà commandé puis nous développerons sur les lunettes ORA de Optivent qui seront livrées fin octobre. Nous devrons donc faire un comparatif entre ces deux SmartGlass puis étudier les autres appareils disponibles sur le marché.&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Localisation &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
L'utilisation de la géolocalisation dans le projet est à débattre. Mais des tests seront probablement mis en place. L'entreprise possède quelque iBeacons BLE Estimote dans ses bureaux d'innovations que nous pourrons emprunter.&lt;br /&gt;
Dans le cas où leur gain d'informations serait utile il nous faudra comparer les modèles disponibles. Choisir un nombre de module et des emplacements stratégiques dans l'entrepôt afin d'avoir une localisation assez précise pour l'application.&lt;br /&gt;
&lt;br /&gt;
L'utilisation d'autres technologies de géolocalisation a été discuté comme le Wifi ou le XBee mais le BLE semblait le plus adapté dans le cadre de notre projet.&lt;br /&gt;
&lt;br /&gt;
= Déroulement du projet =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 22/09 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Réunion avec le tuteur entreprise dans l’entrepôt &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Nous avons observé en situation le problème et discuté des besoins, des moyens déjà utilisables. Il nous faudra prendre en compte plusieurs paramètres dans notre réflexion tels que le système de stockage et d'adressages des palettes, sens de circulation des caristes, superficie des zones à desservir, durée de livraison.&lt;br /&gt;
Nous avons suggéré des étapes de validation intermédiaire du système par les futurs utilisateurs et pour cela nous rencontrerons le chef d'équipe des magasiniers lorsque qu'une version sera assez développée.&lt;br /&gt;
&lt;br /&gt;
Nous avons défini avec le tuteur les premières deadlines du projet, voici la timeline récapitulative:&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Timeline_1.jpg||center|1000px]]&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Compte Rendu &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Nous avons rédigé un compte rendu de la première réunion détaillant les spécifications des versions des livrables, des schémas et les sujets abordés lors de la rencontre :&lt;br /&gt;
&lt;br /&gt;
'''Compte Rendu réunion du 25/09/2014 :''' [[Fichier:Compte_Rendu_25_09.pdf]]&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 29/09 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Découverte des Google Glass &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
*Prise en main des Google Glass. &lt;br /&gt;
*Installation d'applications (.apk) grand public. Nous avons utilisé l'outil Android Debug Bridge(adb). Se mettre à la place d'un utilisateur.&lt;br /&gt;
*L'une des deux lunettes qui serait retenue imposera forcément le développement d'une application android (ou d'une technologie trés proche d'android, pour les Google Glass, se basant sur le Glass Development Kit qui est un add-on au SDK classique d'android). Nous avons donc téléchargé les packages nécessaires pour commencer à développer. &lt;br /&gt;
** Nous commençons à nous former sur les technologies android :développement d'applications minimaliste.&lt;br /&gt;
** Installation de nos premières apk minimalistes pour Android.&lt;br /&gt;
** Installation d'une application minimaliste sur la Google Glass.&lt;br /&gt;
&lt;br /&gt;
Voici un comparatif réalisé entre les lunettes ORA et les Google Glass.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Différences Google Glass/ORA &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!   !! Google Glass !! ORA &lt;br /&gt;
|-&lt;br /&gt;
|Connectique&lt;br /&gt;
|Compatible BLE (à partir de la XE 16 KitKat Update), Wifi &lt;br /&gt;
|Compatible BLE, Wifi&lt;br /&gt;
|-&lt;br /&gt;
|Autonomie en utilisation normale&lt;br /&gt;
|de 1h à 2h &lt;br /&gt;
|de 4h à 8h&lt;br /&gt;
|-&lt;br /&gt;
|Son&lt;br /&gt;
|Conductivité Cranienne&lt;br /&gt;
|Prise jack&lt;br /&gt;
|-&lt;br /&gt;
|Interface&lt;br /&gt;
|Ecran occupant une faible superficie dans le champ de vision &lt;br /&gt;
|Ecran 2 positions (moyennes et basses), plus étendu permettant une réalité augmentée &lt;br /&gt;
|-&lt;br /&gt;
|Système d'exploitation&lt;br /&gt;
|Android 4.4&lt;br /&gt;
|Android 4.2.2&lt;br /&gt;
|-&lt;br /&gt;
|Calculs&lt;br /&gt;
|CPU &amp;amp; GPU&lt;br /&gt;
|CPU &amp;amp; GPU&lt;br /&gt;
|-&lt;br /&gt;
|Prix&lt;br /&gt;
|1500$ &lt;br /&gt;
|949$&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 06/10 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Deuxième rendez-vous avec le tuteur entreprise &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Nous avons fait part de notre avancée en matière de prise en main et des problèmes rencontrés en matière de développement.&lt;br /&gt;
Les lunettes ORA sont commandées elles arrivent d'ici la fin octobre.&lt;br /&gt;
&lt;br /&gt;
La première version V1 de l'application pour Google Glass à livrer pour la mi-novembre est fixée.&lt;br /&gt;
&lt;br /&gt;
En partant d'une position connue (en dur dans l'application) dans l'entrepôt, elle indiquera à un utilisateur les emplacements libres les plus proches.&lt;br /&gt;
&lt;br /&gt;
L'état d'occupation des emplacements sera consulté et stocké dans l'application. Il n'y aura donc pas de gestion des conflits. Le sens de circulation dans l'entrepôt sera pris en compte.&lt;br /&gt;
Une communication avec la base de donnée de l'entrepôt n'est pour le moment pas d'actualité, cela nécessiterait des développements en amont.&lt;br /&gt;
La géolocalisation n'est pas au goût du jour non plus. L'adressage des emplacements dans l'entrepôt est intuitif, il est donc facile pour un magasinier de &lt;br /&gt;
se rendre à un emplacement en connaissant l'adresse.&lt;br /&gt;
&lt;br /&gt;
Pour l'IHM, nous nous inspirerons des applications pour Google Glass (les Glasswares) de type GPS.&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Premiers programmes sur Google Glass &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Pour nous familiariser avec la programmation sur ce genre d'appareil nous avons tous deux décidé de suivre en premier le tutoriel Android d'un site spécialisé. Cela afin de mieux comprendre le système Android, avec les concepts d'activités, de view etc.&lt;br /&gt;
Dans un deuxième temps nous avons choisi de suivre plusieurs tutoriels nous expliquant la prise en main basique des lunettes afin de saisir les particularités de leur programmation.&lt;br /&gt;
&lt;br /&gt;
Le plus dur étant finalement de comprendre les liens entre tous les fichiers du projets, les problèmes de drivers et d'upload simple que nous avons rencontrés et l’exécution du programme sur les lunettes. Des choses que nous arrivons maintenant à maitriser mais qui était floues à l'origine.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 13/10 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Programmation et gestion des interactions &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Durant cette semaine nous avons commencé a vraiment toucher aux fonctionnalités des Glass. Pour rester en main libre, nous avons fait des recherches et commencé à programmer de la reconnaissance vocale. Nous avons ainsi crée un système de navigation basique par commande vocale dans différents menus. Pour un accès rapide à l'application et toujours dans la même optique nous avons réussi à inclure le lancement de notre logiciel à partir du &amp;quot;Ok Glass&amp;quot; menu qui est le menu de lancement d'application par commande vocale des Google Glass. Voici un aperçu du résultat:&lt;br /&gt;
[[Fichier:V0_menu.png|1000px|center]]&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Analyse et évaluation du rendu &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Le début de la prise en main des fonctionnalités des Google Glass n'a pas été facile étant donné que la plupart des fonctionnalités sont propres à ce genre d'appareil. De plus elles nécessitent des techniques spéciales de programmation qui ne sont pas toujours très utilisées donc il est parfois difficile de trouver des exemples sur internet.&lt;br /&gt;
Néanmoins après l'implémentation de ces fonctionnalités nous avons pu rencontrer quelques difficultés de reconnaissance. En effet, les Google Glass possèdent un dictionnaire de mots/phrases pour la reconnaissance vocale mais elles nous permettent aussi d'écrire n'importe quelle phrase dans le mode développeur. Les phrases du dictionnaires ne posent aucun problème mais les phrases que nous écrivons sont parfois dures à reconnaitre. La reconnaissance de lettre seule ou de certains numéros est par exemple quasi impossible ou très aléatoire.&lt;br /&gt;
Le système de vu est quant à lui plutôt facile à prendre en main et intuitif dans l'utilisation.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 20/10 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Premiere structure de donnée &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Nous avons opté pour une structure de donnée récursive. Une Cellule, contenant des Allées, qui contiennent des Baies, contenant des Rangées, contenant des Emplacements.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Structure_export_resized.png|750px|center]]&lt;br /&gt;
Nous avons conçu cette structure de donnée pour qu'elle génère, dans un premier temps &amp;quot;en dur&amp;quot;, une cellule contenant des emplacements automatiquement adressés à la manière de ceux présent dans l'entrepôt. Ces adresses sont de la forme &amp;quot;D61A514&amp;quot; traduisez &amp;quot; Cellule 6 Allée 1A Baie 5 Rang 1 Niveau 4&amp;quot;.&lt;br /&gt;
Cette structure prend on compte le sens de circulation dans l'entrepôt.&lt;br /&gt;
Lors de futures interactions avec une base de donnée, cette structure serait sujette à évolution par une modification des méthodes de génération/modification du statut des adresses en fonction de cette base de donnée. Mais celle-ci constitue essentiellement une base pour appréhender plus pratiquement les problématiques de recherches de l'emplacement le plus proche.&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Prise en main de l'interface &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Nous avons déjà abordé les layouts java en TP donc il a été assez facile de commencer à faire des interfaces graphiques simples. Nous avons construit une interface graphique simple pour de faire une démonstration du programme aux tuteurs entreprise afin qu'ils comprennent bien le fonctionnement de notre algorithme.&lt;br /&gt;
L'interface graphique finale du programme sera très sobre afin de ne pas donner trop gêner le magasinier dans sa tâche.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 27/10 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Chemin optimal : Parcours intelligent Vs Sélection intelligente &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Un premier algorithme de recherche de l'emplacement le plus proche a été développé, celui-ci ne prend en compte qu'un seul scénario. &lt;br /&gt;
Celui de la position de départ (quai de déchargement où reviendra constamment le magasinier aprés chaque livraison) correspondante à la première allée de l'entrepôt, et en prenant en compte le sens de circulation. &lt;br /&gt;
A partir de ce moment, nous avons dégager deux grandes manières d'appréhender le problème.&lt;br /&gt;
&lt;br /&gt;
* Un parcours intelligent de la structure de donnée. C'est à dire parcourir les emplacements les plus proches, et choisir le premier emplacement libre. Une solution complexe à réaliser sur le plan algorithmique. En tenant compte du sens de circulation, il apparait que l'emplacement libre &amp;quot;leplusproche&amp;quot; (à vol d'oiseau) trouvé le plus tôt, ne correspondrait pas forcément à l'emplacement le plus proche compte tenu du chemin emprunté par un magasinier. Et c'est plutôt l'intérêt de cette algorithme.(Sauf dans l'unique cas où l'emplacement libre se trouve directement dans l'allée faisant face à la position de départ du magasinier, et le sens de circulation lui permet directement de se rendre à l'emplacement sans détour).&lt;br /&gt;
&lt;br /&gt;
* Une sélection intelligente parmi les emplacements libres. Leurs adresses renseignent à quelles allées, les emplacements libres appartiennent, donc renseignent sur le sens de circulation. A partir de la position de départ du magasinier et de l'ensemble des emplacements libres, on peut calculer la distance nécessaire à celui-ci pour les atteindre. Pour ainsi choisir l'adresse pour laquelle la distance est minimale.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 3/11 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Chemin optimal : sélection intelligente des adresses &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Nous avons écrit une premiere méthode de détermination. &lt;br /&gt;
On choisit l'emplacement, parmi tous ceux qui sont libres, pour lequel la distance de parcours est minimale entre le départ et celui-ci. &lt;br /&gt;
Ici l'unité de distance est la baie. La simplicité de l'algorithme réside dans le fait que le magasinier ne transporte qu'une seule caisse à la fois et repars toujours au même point de départ.&lt;br /&gt;
&lt;br /&gt;
Ci dessous un plan de l'entrepôt.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:schema_entrepot.png|750px|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Si on se place à l'entrée de l'Allée A :&lt;br /&gt;
&lt;br /&gt;
**le déplacement jusqu'à A4 (sens de circulation direct) est de : &lt;br /&gt;
&lt;br /&gt;
                        Y baies - (indice de la baie/2 +indice de la baie % 2) &lt;br /&gt;
&lt;br /&gt;
**le déplacement jusqu'à B1 (sens de circulation indirect) est de : &lt;br /&gt;
&lt;br /&gt;
                        Y baies + différence entre l'allée A et B donc X baies + indice de la baie/2 +indice de la baie % 2&lt;br /&gt;
**le déplacement jusqu'à C1 (sens de circulation direct) est de : &lt;br /&gt;
                      &lt;br /&gt;
                        Y baies - (indice de la baie/2 +indice de la baie % 2)+différence entre l'allée A et C donc 2*X baies.&lt;br /&gt;
&lt;br /&gt;
*Si on se place à l'entrée de l'Allée B :&lt;br /&gt;
**le déplacement jusqu'à B1 (sens de circulation indirect avec contournement) est de : &lt;br /&gt;
                        &lt;br /&gt;
                        2*X baies + Y baies + 2*X baies + (indice de la baie/2 +indice de la baie % 2)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On peut généraliser l'ensemble de ces situations de déplacement avec l'algorithme suivant :&lt;br /&gt;
&lt;br /&gt;
Pseudo code&lt;br /&gt;
&lt;br /&gt;
  Leplusproche( Allee depart )&lt;br /&gt;
    distance_la_plus_petite = valeurMAX&lt;br /&gt;
      le_plus_proche=&amp;quot;&amp;quot;&lt;br /&gt;
         Pour chaque Allee de Cellule&lt;br /&gt;
           sens=Allee.sens&lt;br /&gt;
           Pour chaque Baie de Allee&lt;br /&gt;
             Pour chaque Rang de Allee&lt;br /&gt;
 	       Pour chaque Emplacement de Rang&lt;br /&gt;
                Si Emplacement estlibre &lt;br /&gt;
                &lt;br /&gt;
                indice_baie = selection_indice_baie(Emplacement.adresse)&lt;br /&gt;
   		 allee_cible = selection_indice_allee(Emplacement.adresse)  &lt;br /&gt;
   		 difference_allee = valeur_absolue(depart -cible) &lt;br /&gt;
                    Si difference_allee==0 et sens.estindirect&lt;br /&gt;
                      //sens indirect +contournement&lt;br /&gt;
                      distance_actuelle=(indice_baie/2)+indice_baie%2+(2*(difference_allee))+4*X+Y			&lt;br /&gt;
                    Sinon	&lt;br /&gt;
                        Si sens estdirect&lt;br /&gt;
                          //sens direct &lt;br /&gt;
                          distance_actuelle=(Y-((indice_baie/2)+indice_baie%2))+2*difference_allee&lt;br /&gt;
                        Sinon&lt;br /&gt;
                          //sens indirect mais pas de contournement&lt;br /&gt;
                          distance_actuelle=((indice_baie/2)+indice_baie%2)+2*difference_allee+Y&lt;br /&gt;
                        Finsi	&lt;br /&gt;
                    Finsi	&lt;br /&gt;
                    Si distance_actuelle &amp;lt; distance_la_plus_petite&lt;br /&gt;
                      le_plus_proche=Emplacement.adresse&lt;br /&gt;
                      distance_la_plus_petite=distance_actuelle&lt;br /&gt;
                    Finsi&lt;br /&gt;
                Finsi  &lt;br /&gt;
            Finpour&lt;br /&gt;
          Finpour&lt;br /&gt;
        Finpour&lt;br /&gt;
      Finpour&lt;br /&gt;
    retourne le_plus_proche&lt;br /&gt;
  Finleplusproche&lt;br /&gt;
&lt;br /&gt;
Cet algorithme nous donne satisfaction (dans le cadre de la V1)&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 10/11 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Programmation et gestion des interactions &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Aprés quelques difficultés vis à vis de la gestion des menus vocaux sur les lunettes qui ne fonctionnent pas de la même manière que les menus classiques sous android, nous avons étoffé les interactions possible avec l'application des google glass. (Nous souhaitions inflater un deuxième menu pour interagir de manière plus contextuelle, il fallait le faire dans la méthode onCreatePanelMenu dont l'appel serait forcé avec getWindow().invalidatePanelMenu(WindowUtils.FEATURE_VOICE_COMMANDS) plutôt que dans onPrepareOptionsMenu forcée par invalidateOptionMenu()...) &lt;br /&gt;
&lt;br /&gt;
schéma d'utilisation...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Proposition projet affichage télévision &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Tele_concept.png|200px|thumb|right]]&lt;br /&gt;
&lt;br /&gt;
Notre tuteur nous a contacté pour nous proposer d'étudier un second projet en parallèle au projet initial. Celui consistant à gérer l'affichage d'information personnalisé d'un magasinier passant à proximité d'un écran de télévision. Nous devons effectuer un Proof Of Concept (POC) et réfléchir à ce sujet.&lt;br /&gt;
L'utilisation du BLE est donc de nouveau d'actualité, car je rappel que sont utilité était discutable dans une réalité métier du projet initial. La question étant plus de savoir comment gérer le système du coté du téléviseur.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Le concept de base étant de :&lt;br /&gt;
* Fournir une beacon aux magasiniers de l'entrepôt.&lt;br /&gt;
* Installer une télévision sur un centre de vie dans l'entrepôt avec une beacon&lt;br /&gt;
* Pousser du contenu personnalisé au magasinier qui se présente devant la tv dans son centre de vie&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 17/11 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Brainstorming à Polytech &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Dans la cadre du POC sur l'affichage personnalisé sur une télévision, nous avons profité d'un exercice de management pour faire participer la classe à notre projet. Grâce à cette intervention nous avons pu confirmer nos idées sur les technologies à utiliser. Mais nous avons surtout eu une multitude de propositions sur les données à afficher sur l'écran.&lt;br /&gt;
&lt;br /&gt;
Pour plus détails, le compte rendu est disponible à ce lien:&lt;br /&gt;
&lt;br /&gt;
'''Compte Rendu Brainstorming 17/11/2014 :''' [[Fichier:Compte_Rendu_POC_17_11.pdf]]&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Entretien avec notre tuteur entreprise &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Durant cet entretien, nous avons livré la première version de l'application et nous avons discuté de la suite du projet.&lt;br /&gt;
Ci joint le Compte Rendu.&lt;br /&gt;
&lt;br /&gt;
'''Compte Rendu  19/11/2014 :''' [[Fichier:Compte_Rendu_19_11.pdf]]&lt;br /&gt;
&lt;br /&gt;
De cette réunion, les points suivants en sont sortis:&lt;br /&gt;
&lt;br /&gt;
*Une reconnaissance vocale en langue française sur les lunettes serait plus intéressante pour les employés (une piste serait d’utiliser l’outil pocketsphinx-  android).&lt;br /&gt;
*Par rapport à l'IHM, il faudrait mettre l’affichage au premier plan sur les Google Glass pour une démo auprés des parties prenantes du projet.&lt;br /&gt;
*Choisir une architecture pour l’affichage d’information personnalisées.&lt;br /&gt;
**La télévision connectée à une raspberry qui communiquerait via un dongle BLE avec le beacon d’un magasinier, ce qui permettrait l’identification de celui-ci prés de la Télévision, et déclencherait un processus d’échange d’information. (Communication via le protocole Bluetooh, wifi entre les lunettes et la Raspberry  ou communication avec la Raspberry avec la Base de Donnée sur le réseau de l’entreprise)&lt;br /&gt;
**Une télévision connectée en continu à un site internet via un dongle HDMI.&lt;br /&gt;
**Une tablette android géante supportant le BLE, ou utilisant un dongle BLE.&lt;br /&gt;
* Réaliser le portage de l’application sur le prototype des lunettes ORA.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 24/11 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Reconnaissance vocale en Français &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Pocket Sphinx Android est une librairie permettant de faire de la reconnaissance vocale d'un langage donné sur un système android en offline.&lt;br /&gt;
Pour supporter une langue, elle nécessite: &lt;br /&gt;
*un modèle acoustique (ensemble d'informations pour le traitement sonore)&lt;br /&gt;
*un dictionnaire associant les mots et leur phonèmes&lt;br /&gt;
*une grammaire, c'est un fichier définissant comment seraient articulé les mots à reconnaître et limitant les possibilités de langage).&lt;br /&gt;
&lt;br /&gt;
La grammaire étant un automate. Voici un exemple de la grammaire menu.gram pour la reconnaissance de la porte de déchargement.&lt;br /&gt;
[[Fichier:Arborescence_pocket_sphinx.png|200px|thumb|right|PocketSphinx dans un projet Android]]&lt;br /&gt;
&lt;br /&gt;
  #JSGF V1.0;&lt;br /&gt;
  grammar menu;&lt;br /&gt;
  &amp;lt;porte&amp;gt; = porte a |&lt;br /&gt;
            porte b |&lt;br /&gt;
            porte c |&lt;br /&gt;
            porte d |&lt;br /&gt;
            porte e |&lt;br /&gt;
            porte f |&lt;br /&gt;
            porte g |&lt;br /&gt;
            porte h |&lt;br /&gt;
            porte i |&lt;br /&gt;
            porte j ;&lt;br /&gt;
  public &amp;lt;porte&amp;gt; = &amp;lt;porte&amp;gt;+;&lt;br /&gt;
&lt;br /&gt;
Un extrait du dictionnaire french_letter.dic associé avec les phonemes&lt;br /&gt;
&lt;br /&gt;
  a aa &amp;lt;-- juste la lettre a et son phoneme &lt;br /&gt;
  autre au tt rr&lt;br /&gt;
  autre(2) au tt rr ee &lt;br /&gt;
  b bb &lt;br /&gt;
  c ss &lt;br /&gt;
  d dd ei d(2) dd ait &lt;br /&gt;
  e eu e(2) eu zz &lt;br /&gt;
  f ai ff &lt;br /&gt;
  g jj ei g(2) gg ai &lt;br /&gt;
  h aa ch  &lt;br /&gt;
  i ii &lt;br /&gt;
  j jj yy j(2) jj ii&lt;br /&gt;
  porte pp oo rr tt&lt;br /&gt;
  porte(2) pp oo rr tt ee&lt;br /&gt;
  portes(2) pp oo rr tt ee&lt;br /&gt;
  portes(3) pp oo rr tt ee zz&lt;br /&gt;
  portes(4) pp oo rr tt zz&lt;br /&gt;
&lt;br /&gt;
Le modèle acoustique que nous avons téléchargé étant inclu dans lium_french_f0&lt;br /&gt;
&lt;br /&gt;
Nous avons testé la reconnaissance vocale sur un téléphone android, les mots sont, dans la majorité des cas, bien reconnus.&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Comparaison architectures projet TV &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Au niveau de l’architecture nous avons établi plusieurs propositions après la réunion avec notre tuteur:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour une Raspberry Pi avec un dongle BLE :&lt;br /&gt;
* Installation OS Linux sur la Raspberry&lt;br /&gt;
* Librairie BlueZ pour l’utilisation du BLE (tests rapides effectués sur Linux avec le Dongle)&lt;br /&gt;
* Interface graphique avec une bibliothèque comme Qt (ou encore SDL…)&lt;br /&gt;
* Prix : Rpi = 26€ (chez RadioSpare), Dongle = 10€, TV = à partir de 358€ pour 117cm, + Connectique vidéo. Total = 394€&lt;br /&gt;
&lt;br /&gt;
Pour un écran ViewSonic VSD231 :&lt;br /&gt;
* Possède une API Bluetooth classic + API BLE&lt;br /&gt;
* Interface graphique Android (View, Layout...)&lt;br /&gt;
* Prix : écran ViewSonic VSD231 = 558 € pour 58 cm (chez ViewSonic).&lt;br /&gt;
&lt;br /&gt;
Récupération d’informations :&lt;br /&gt;
* Si données sur les lunettes : Bluetooth ou Wifi.&lt;br /&gt;
* Si données sur serveur : Ethernet ou Wifi.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Vu les propositions possibles nous pensons que la première proposition permettra une meilleure souplesse dans le développement mais serait un peu plus compliquée. Mais nous la trouvons aussi plus intéressante à faire de plus elle est moins coûteuse et permet d'utiliser un écran plus grand. Le développement sur tablette serait sûrement plus rapide à faire en contrepartie.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 01/12 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Conférence GlassCamp à l'Imaginarium &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
GlassCamp est une association qui essaye de répandre l'utilisation de toute les Smart Glass en général. Elle propose de multiples conférences dans lesquelles ils essayent de montrer au public l’intérêt de développer sur ces appareils. Dans le cadre de notre projet, notre tuteur nous a proposé de participer à cette présentation afin de mieux s’approprier le sujet. La conférence a eu lieu le 4 décembre à l'Imaginarium: une grande partie était plutôt tournée vers la présentation mais nous avons apprîs plusieurs choses intéressantes qui sont décrites dans le compte rendu.&lt;br /&gt;
&lt;br /&gt;
'''Compte Rendu Conférence 04/12/2014 :''' [[Fichier:Compte_Rendu_Conf_GlassCamp.pdf]]&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaines du 08/12 et 15/12 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Reconnaissance vocale en Français &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 05/01 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Entretien avec notre tuteur &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Durant cet entretien nous avons défini les évolutions du projet.&lt;br /&gt;
&lt;br /&gt;
'''Compte Rendu de l'entretien du 06/01/2015 :''' [[Fichier:Compte_Rendu_4.pdf]]&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 12/01 &amp;lt;/font&amp;gt;==&lt;/div&gt;</summary>
		<author><name>Jgondry</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=P22_Google_Glass_en_logistique&amp;diff=15712</id>
		<title>P22 Google Glass en logistique</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=P22_Google_Glass_en_logistique&amp;diff=15712"/>
				<updated>2015-01-27T16:39:34Z</updated>
		
		<summary type="html">&lt;p&gt;Jgondry : /*  Entretien avec notre tuteur  */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Introduction =&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Description du sujet &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
Notre projet vise à l’optimisation du stockage et de l’adressage des palettes dans un entrepôt. En effet, lors du déchargement d’un camion, chercher un emplacement libre pour les palettes dans un entrepôt occupant une grande superficie fait perdre du temps et donc de la productivité dans le stockage. Sachant qu’un cariste perd un temps non négligeable à la recherche d’emplacement disponible, optimiser ce temps de recherche permettrait de gagner du temps sur cette opération.&lt;br /&gt;
Développer un prototype permettrait de rendre compte des moyens existants qui pourrait être mis en place dans une solution métier.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Analyse du sujet &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Google_glass.png|200px|thumb|right|Paire de Google Glass]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Optinvent_ora.png|200px|thumb|right|Paire de ORA d'Optivent]]&lt;br /&gt;
&lt;br /&gt;
Notre projet consiste à fluidifier le déchargement en indiquant au cariste l’emplacement libre le plus proche. Pour ne pas gêner le travail des employés, un dispositif main-libre comme une Google Glass semble adapté. Ce projet soulève plusieurs problématiques : développer une interface homme-machine apportant une information pertinente pour l’utilisateur sans pour autant être perturbante. &lt;br /&gt;
&lt;br /&gt;
L’idée serait de réaliser dans les grandes lignes un système similaire à ce scénario d’utilisation :&lt;br /&gt;
http://n.mynews.ly/!lB.Bs4fw&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Moyen d’affichage de l’Informations pertinentes'''&lt;br /&gt;
&lt;br /&gt;
Les Google Glass ne sont pas les seules smart glasses sur le marché. Il nous faudra choisir les appareils les plus adaptés. L’information pertinente pourrait être une direction à suivre dans l’entrepôt ou simplement un numéro d’emplacement (adressage intuitif de l’entrepôt). &lt;br /&gt;
&lt;br /&gt;
'''Géolocalisation'''&lt;br /&gt;
&lt;br /&gt;
Dans le cas d’une direction à suivre se pose le problème de la géolocalisation indoor dont l’utilité et la faisabilité seront discutés au fil des réunions avec l’entreprise. &lt;br /&gt;
&lt;br /&gt;
'''Adressage / flashage'''&lt;br /&gt;
&lt;br /&gt;
En ce qui concerne l’adressage des palettes en entrepôt, la solution existante repose sur un flashage des codes barres associés à l’emplacement venant d’être occupé. Une étude de faisabilité/utilité sera aussi faite sur une solution de remplacement grâce aux possibilités qu’offrent les smart glasses.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Cahier des charges &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
En partant de l'analyse du sujet et des discussion avec notre tuteur, nous avons définie un cahier des charges plus précis des tâches à accomplir:&lt;br /&gt;
&lt;br /&gt;
* '''Développer un système embarqué sur une paire de lunette Smart Glass'''&lt;br /&gt;
** Comparer les différentes offres en matière de Smart Glass notamment Google Glass &amp;amp; ORA de Optinvent&lt;br /&gt;
** Concevoir une interface homme-machine non perturbante pour l'utilisateur.&lt;br /&gt;
* '''Etudier la nécessité d'utiliser une géolocalisation en entrepôt et l'implémenter si besoin'''&lt;br /&gt;
** Via RSSI (Wifi, Bluetooh Low Energy ...)&lt;br /&gt;
** Via traitement d'images (reconnaissance de la signalétique en entrepôt)&lt;br /&gt;
* '''Etudier les possibilités d'optimisation du système d'adressage des palettes'''&lt;br /&gt;
** Implémenter la reconnaissance de code barre&lt;br /&gt;
** La tester en réalité métier (utilité ajoutée, habitude des magasiniers, vitesse de traitement...)&lt;br /&gt;
&lt;br /&gt;
Le cahier des charges est encore en cours de construction&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Matériel utilisé &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; SmartGlass &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Lors de la réunion nous avons discuté des technologies à utiliser dans le projet, et plus particulièrement des différentes SmartGlass. En effet, il existe une multitude de sociétés qui développe ce genre de lunettes. Nous commencerons à utiliser les Google Glass étant donné que notre tuteur en a déjà commandé puis nous développerons sur les lunettes ORA de Optivent qui seront livrées fin octobre. Nous devrons donc faire un comparatif entre ces deux SmartGlass puis étudier les autres appareils disponibles sur le marché.&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Localisation &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
L'utilisation de la géolocalisation dans le projet est à débattre. Mais des tests seront probablement mis en place. L'entreprise possède quelque iBeacons BLE Estimote dans ses bureaux d'innovations que nous pourrons emprunter.&lt;br /&gt;
Dans le cas où leur gain d'informations serait utile il nous faudra comparer les modèles disponibles. Choisir un nombre de module et des emplacements stratégiques dans l'entrepôt afin d'avoir une localisation assez précise pour l'application.&lt;br /&gt;
&lt;br /&gt;
L'utilisation d'autres technologies de géolocalisation a été discuté comme le Wifi ou le XBee mais le BLE semblait le plus adapté dans le cadre de notre projet.&lt;br /&gt;
&lt;br /&gt;
= Déroulement du projet =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 22/09 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Réunion avec le tuteur entreprise dans l’entrepôt &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Nous avons observé en situation le problème et discuté des besoins, des moyens déjà utilisables. Il nous faudra prendre en compte plusieurs paramètres dans notre réflexion tels que le système de stockage et d'adressages des palettes, sens de circulation des caristes, superficie des zones à desservir, durée de livraison.&lt;br /&gt;
Nous avons suggéré des étapes de validation intermédiaire du système par les futurs utilisateurs et pour cela nous rencontrerons le chef d'équipe des magasiniers lorsque qu'une version sera assez développée.&lt;br /&gt;
&lt;br /&gt;
Nous avons défini avec le tuteur les premières deadlines du projet, voici la timeline récapitulative:&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Timeline_1.jpg||center|1000px]]&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Compte Rendu &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Nous avons rédigé un compte rendu de la première réunion détaillant les spécifications des versions des livrables, des schémas et les sujets abordés lors de la rencontre :&lt;br /&gt;
&lt;br /&gt;
'''Compte Rendu réunion du 25/09/2014 :''' [[Fichier:Compte_Rendu_25_09.pdf]]&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 29/09 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Découverte des Google Glass &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
*Prise en main des Google Glass. &lt;br /&gt;
*Installation d'applications (.apk) grand public. Nous avons utilisé l'outil Android Debug Bridge(adb). Se mettre à la place d'un utilisateur.&lt;br /&gt;
*L'une des deux lunettes qui serait retenue imposera forcément le développement d'une application android (ou d'une technologie trés proche d'android, pour les Google Glass, se basant sur le Glass Development Kit qui est un add-on au SDK classique d'android). Nous avons donc téléchargé les packages nécessaires pour commencer à développer. &lt;br /&gt;
** Nous commençons à nous former sur les technologies android :développement d'applications minimaliste.&lt;br /&gt;
** Installation de nos premières apk minimalistes pour Android.&lt;br /&gt;
** Installation d'une application minimaliste sur la Google Glass.&lt;br /&gt;
&lt;br /&gt;
Voici un comparatif réalisé entre les lunettes ORA et les Google Glass.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Différences Google Glass/ORA &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!   !! Google Glass !! ORA &lt;br /&gt;
|-&lt;br /&gt;
|Connectique&lt;br /&gt;
|Compatible BLE (à partir de la XE 16 KitKat Update), Wifi &lt;br /&gt;
|Compatible BLE, Wifi&lt;br /&gt;
|-&lt;br /&gt;
|Autonomie en utilisation normale&lt;br /&gt;
|de 1h à 2h &lt;br /&gt;
|de 4h à 8h&lt;br /&gt;
|-&lt;br /&gt;
|Son&lt;br /&gt;
|Conductivité Cranienne&lt;br /&gt;
|Prise jack&lt;br /&gt;
|-&lt;br /&gt;
|Interface&lt;br /&gt;
|Ecran occupant une faible superficie dans le champ de vision &lt;br /&gt;
|Ecran 2 positions (moyennes et basses), plus étendu permettant une réalité augmentée &lt;br /&gt;
|-&lt;br /&gt;
|Système d'exploitation&lt;br /&gt;
|Android 4.4&lt;br /&gt;
|Android 4.2.2&lt;br /&gt;
|-&lt;br /&gt;
|Calculs&lt;br /&gt;
|CPU &amp;amp; GPU&lt;br /&gt;
|CPU &amp;amp; GPU&lt;br /&gt;
|-&lt;br /&gt;
|Prix&lt;br /&gt;
|1500$ &lt;br /&gt;
|949$&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 06/10 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Deuxième rendez-vous avec le tuteur entreprise &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Nous avons fait part de notre avancée en matière de prise en main et des problèmes rencontrés en matière de développement.&lt;br /&gt;
Les lunettes ORA sont commandées elles arrivent d'ici la fin octobre.&lt;br /&gt;
&lt;br /&gt;
La première version V1 de l'application pour Google Glass à livrer pour la mi-novembre est fixée.&lt;br /&gt;
&lt;br /&gt;
En partant d'une position connue (en dur dans l'application) dans l'entrepôt, elle indiquera à un utilisateur les emplacements libres les plus proches.&lt;br /&gt;
&lt;br /&gt;
L'état d'occupation des emplacements sera consulté et stocké dans l'application. Il n'y aura donc pas de gestion des conflits. Le sens de circulation dans l'entrepôt sera pris en compte.&lt;br /&gt;
Une communication avec la base de donnée de l'entrepôt n'est pour le moment pas d'actualité, cela nécessiterait des développements en amont.&lt;br /&gt;
La géolocalisation n'est pas au goût du jour non plus. L'adressage des emplacements dans l'entrepôt est intuitif, il est donc facile pour un magasinier de &lt;br /&gt;
se rendre à un emplacement en connaissant l'adresse.&lt;br /&gt;
&lt;br /&gt;
Pour l'IHM, nous nous inspirerons des applications pour Google Glass (les Glasswares) de type GPS.&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Premiers programmes sur Google Glass &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Pour nous familiariser avec la programmation sur ce genre d'appareil nous avons tous deux décidé de suivre en premier le tutoriel Android d'un site spécialisé. Cela afin de mieux comprendre le système Android, avec les concepts d'activités, de view etc.&lt;br /&gt;
Dans un deuxième temps nous avons choisi de suivre plusieurs tutoriels nous expliquant la prise en main basique des lunettes afin de saisir les particularités de leur programmation.&lt;br /&gt;
&lt;br /&gt;
Le plus dur étant finalement de comprendre les liens entre tous les fichiers du projets, les problèmes de drivers et d'upload simple que nous avons rencontrés et l’exécution du programme sur les lunettes. Des choses que nous arrivons maintenant à maitriser mais qui était floues à l'origine.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 13/10 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Programmation et gestion des interactions &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Durant cette semaine nous avons commencé a vraiment toucher aux fonctionnalités des Glass. Pour rester en main libre, nous avons fait des recherches et commencé à programmer de la reconnaissance vocale. Nous avons ainsi crée un système de navigation basique par commande vocale dans différents menus. Pour un accès rapide à l'application et toujours dans la même optique nous avons réussi à inclure le lancement de notre logiciel à partir du &amp;quot;Ok Glass&amp;quot; menu qui est le menu de lancement d'application par commande vocale des Google Glass. Voici un aperçu du résultat:&lt;br /&gt;
[[Fichier:V0_menu.png|1000px|center]]&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Analyse et évaluation du rendu &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Le début de la prise en main des fonctionnalités des Google Glass n'a pas été facile étant donné que la plupart des fonctionnalités sont propres à ce genre d'appareil. De plus elles nécessitent des techniques spéciales de programmation qui ne sont pas toujours très utilisées donc il est parfois difficile de trouver des exemples sur internet.&lt;br /&gt;
Néanmoins après l'implémentation de ces fonctionnalités nous avons pu rencontrer quelques difficultés de reconnaissance. En effet, les Google Glass possèdent un dictionnaire de mots/phrases pour la reconnaissance vocale mais elles nous permettent aussi d'écrire n'importe quelle phrase dans le mode développeur. Les phrases du dictionnaires ne posent aucun problème mais les phrases que nous écrivons sont parfois dures à reconnaitre. La reconnaissance de lettre seule ou de certains numéros est par exemple quasi impossible ou très aléatoire.&lt;br /&gt;
Le système de vu est quant à lui plutôt facile à prendre en main et intuitif dans l'utilisation.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 20/10 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Premiere structure de donnée &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Nous avons opté pour une structure de donnée récursive. Une Cellule, contenant des Allées, qui contiennent des Baies, contenant des Rangées, contenant des Emplacements.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Structure_export_resized.png|750px|center]]&lt;br /&gt;
Nous avons conçu cette structure de donnée pour qu'elle génère, dans un premier temps &amp;quot;en dur&amp;quot;, une cellule contenant des emplacements automatiquement adressés à la manière de ceux présent dans l'entrepôt. Ces adresses sont de la forme &amp;quot;D61A514&amp;quot; traduisez &amp;quot; Cellule 6 Allée 1A Baie 5 Rang 1 Niveau 4&amp;quot;.&lt;br /&gt;
Cette structure prend on compte le sens de circulation dans l'entrepôt.&lt;br /&gt;
Lors de futures interactions avec une base de donnée, cette structure serait sujette à évolution par une modification des méthodes de génération/modification du statut des adresses en fonction de cette base de donnée. Mais celle-ci constitue essentiellement une base pour appréhender plus pratiquement les problématiques de recherches de l'emplacement le plus proche.&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Prise en main de l'interface &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Nous avons déjà abordé les layouts java en TP donc il a été assez facile de commencer à faire des interfaces graphiques simples. Nous avons construit une interface graphique simple pour de faire une démonstration du programme aux tuteurs entreprise afin qu'ils comprennent bien le fonctionnement de notre algorithme.&lt;br /&gt;
L'interface graphique finale du programme sera très sobre afin de ne pas donner trop gêner le magasinier dans sa tâche.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 27/10 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Chemin optimal : Parcours intelligent Vs Sélection intelligente &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Un premier algorithme de recherche de l'emplacement le plus proche a été développé, celui-ci ne prend en compte qu'un seul scénario. &lt;br /&gt;
Celui de la position de départ (quai de déchargement où reviendra constamment le magasinier aprés chaque livraison) correspondante à la première allée de l'entrepôt, et en prenant en compte le sens de circulation. &lt;br /&gt;
A partir de ce moment, nous avons dégager deux grandes manières d'appréhender le problème.&lt;br /&gt;
&lt;br /&gt;
* Un parcours intelligent de la structure de donnée. C'est à dire parcourir les emplacements les plus proches, et choisir le premier emplacement libre. Une solution complexe à réaliser sur le plan algorithmique. En tenant compte du sens de circulation, il apparait que l'emplacement libre &amp;quot;leplusproche&amp;quot; (à vol d'oiseau) trouvé le plus tôt, ne correspondrait pas forcément à l'emplacement le plus proche compte tenu du chemin emprunté par un magasinier. Et c'est plutôt l'intérêt de cette algorithme.(Sauf dans l'unique cas où l'emplacement libre se trouve directement dans l'allée faisant face à la position de départ du magasinier, et le sens de circulation lui permet directement de se rendre à l'emplacement sans détour).&lt;br /&gt;
&lt;br /&gt;
* Une sélection intelligente parmi les emplacements libres. Leurs adresses renseignent à quelles allées, les emplacements libres appartiennent, donc renseignent sur le sens de circulation. A partir de la position de départ du magasinier et de l'ensemble des emplacements libres, on peut calculer la distance nécessaire à celui-ci pour les atteindre. Pour ainsi choisir l'adresse pour laquelle la distance est minimale.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 3/11 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Chemin optimal : sélection intelligente des adresses &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Nous avons écrit une premiere méthode de détermination. &lt;br /&gt;
On choisit l'emplacement, parmi tous ceux qui sont libres, pour lequel la distance de parcours est minimale entre le départ et celui-ci. &lt;br /&gt;
Ici l'unité de distance est la baie. La simplicité de l'algorithme réside dans le fait que le magasinier ne transporte qu'une seule caisse à la fois et repars toujours au même point de départ.&lt;br /&gt;
&lt;br /&gt;
Ci dessous un plan de l'entrepôt.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:schema_entrepot.png|750px|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Si on se place à l'entrée de l'Allée A :&lt;br /&gt;
&lt;br /&gt;
**le déplacement jusqu'à A4 (sens de circulation direct) est de : &lt;br /&gt;
&lt;br /&gt;
                        Y baies - (indice de la baie/2 +indice de la baie % 2) &lt;br /&gt;
&lt;br /&gt;
**le déplacement jusqu'à B1 (sens de circulation indirect) est de : &lt;br /&gt;
&lt;br /&gt;
                        Y baies + différence entre l'allée A et B donc X baies + indice de la baie/2 +indice de la baie % 2&lt;br /&gt;
**le déplacement jusqu'à C1 (sens de circulation direct) est de : &lt;br /&gt;
                      &lt;br /&gt;
                        Y baies - (indice de la baie/2 +indice de la baie % 2)+différence entre l'allée A et C donc 2*X baies.&lt;br /&gt;
&lt;br /&gt;
*Si on se place à l'entrée de l'Allée B :&lt;br /&gt;
**le déplacement jusqu'à B1 (sens de circulation indirect avec contournement) est de : &lt;br /&gt;
                        &lt;br /&gt;
                        2*X baies + Y baies + 2*X baies + (indice de la baie/2 +indice de la baie % 2)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On peut généraliser l'ensemble de ces situations de déplacement avec l'algorithme suivant :&lt;br /&gt;
&lt;br /&gt;
Pseudo code&lt;br /&gt;
&lt;br /&gt;
  Leplusproche( Allee depart )&lt;br /&gt;
    distance_la_plus_petite = valeurMAX&lt;br /&gt;
      le_plus_proche=&amp;quot;&amp;quot;&lt;br /&gt;
         Pour chaque Allee de Cellule&lt;br /&gt;
           sens=Allee.sens&lt;br /&gt;
           Pour chaque Baie de Allee&lt;br /&gt;
             Pour chaque Rang de Allee&lt;br /&gt;
 	       Pour chaque Emplacement de Rang&lt;br /&gt;
                Si Emplacement estlibre &lt;br /&gt;
                &lt;br /&gt;
                indice_baie = selection_indice_baie(Emplacement.adresse)&lt;br /&gt;
   		 allee_cible = selection_indice_allee(Emplacement.adresse)  &lt;br /&gt;
   		 difference_allee = valeur_absolue(depart -cible) &lt;br /&gt;
                    Si difference_allee==0 et sens.estindirect&lt;br /&gt;
                      //sens indirect +contournement&lt;br /&gt;
                      distance_actuelle=(indice_baie/2)+indice_baie%2+(2*(difference_allee))+4*X+Y			&lt;br /&gt;
                    Sinon	&lt;br /&gt;
                        Si sens estdirect&lt;br /&gt;
                          //sens direct &lt;br /&gt;
                          distance_actuelle=(Y-((indice_baie/2)+indice_baie%2))+2*difference_allee&lt;br /&gt;
                        Sinon&lt;br /&gt;
                          //sens indirect mais pas de contournement&lt;br /&gt;
                          distance_actuelle=((indice_baie/2)+indice_baie%2)+2*difference_allee+Y&lt;br /&gt;
                        Finsi	&lt;br /&gt;
                    Finsi	&lt;br /&gt;
                    Si distance_actuelle &amp;lt; distance_la_plus_petite&lt;br /&gt;
                      le_plus_proche=Emplacement.adresse&lt;br /&gt;
                      distance_la_plus_petite=distance_actuelle&lt;br /&gt;
                    Finsi&lt;br /&gt;
                Finsi  &lt;br /&gt;
            Finpour&lt;br /&gt;
          Finpour&lt;br /&gt;
        Finpour&lt;br /&gt;
      Finpour&lt;br /&gt;
    retourne le_plus_proche&lt;br /&gt;
  Finleplusproche&lt;br /&gt;
&lt;br /&gt;
Cet algorithme nous donne satisfaction (dans le cadre de la V1)&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 10/11 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Programmation et gestion des interactions &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Aprés quelques difficultés vis à vis de la gestion des menus vocaux sur les lunettes qui ne fonctionnent pas de la même manière que les menus classiques sous android, nous avons étoffé les interactions possible avec l'application des google glass. (Nous souhaitions inflater un deuxième menu pour interagir de manière plus contextuelle, il fallait le faire dans la méthode onCreatePanelMenu dont l'appel serait forcé avec getWindow().invalidatePanelMenu(WindowUtils.FEATURE_VOICE_COMMANDS) plutôt que dans onPrepareOptionsMenu forcée par invalidateOptionMenu()...) &lt;br /&gt;
&lt;br /&gt;
schéma d'utilisation...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Proposition projet affichage télévision &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Tele_concept.png|200px|thumb|right]]&lt;br /&gt;
&lt;br /&gt;
Notre tuteur nous a contacté pour nous proposer d'étudier un second projet en parallèle au projet initial. Celui consistant à gérer l'affichage d'information personnalisé d'un magasinier passant à proximité d'un écran de télévision. Nous devons effectuer un Proof Of Concept (POC) et réfléchir à ce sujet.&lt;br /&gt;
L'utilisation du BLE est donc de nouveau d'actualité, car je rappel que sont utilité était discutable dans une réalité métier du projet initial. La question étant plus de savoir comment gérer le système du coté du téléviseur.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Le concept de base étant de :&lt;br /&gt;
* Fournir une beacon aux magasiniers de l'entrepôt.&lt;br /&gt;
* Installer une télévision sur un centre de vie dans l'entrepôt avec une beacon&lt;br /&gt;
* Pousser du contenu personnalisé au magasinier qui se présente devant la tv dans son centre de vie&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 17/11 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Brainstorming à Polytech &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Dans la cadre du POC sur l'affichage personnalisé sur une télévision, nous avons profité d'un exercice de management pour faire participer la classe à notre projet. Grâce à cette intervention nous avons pu confirmer nos idées sur les technologies à utiliser. Mais nous avons surtout eu une multitude de propositions sur les données à afficher sur l'écran.&lt;br /&gt;
&lt;br /&gt;
Pour plus détails, le compte rendu est disponible à ce lien:&lt;br /&gt;
&lt;br /&gt;
'''Compte Rendu Brainstorming 17/11/2014 :''' [[Fichier:Compte_Rendu_POC_17_11.pdf]]&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Entretien avec notre tuteur entreprise &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Durant cet entretien, nous avons livré la première version de l'application et nous avons discuté de la suite du projet.&lt;br /&gt;
Ci joint le Compte Rendu.&lt;br /&gt;
&lt;br /&gt;
'''Compte Rendu  19/11/2014 :''' [[Fichier:Compte_Rendu_19_11.pdf]]&lt;br /&gt;
&lt;br /&gt;
De cette réunion, les points suivants en sont sortis:&lt;br /&gt;
&lt;br /&gt;
*Une reconnaissance vocale en langue française sur les lunettes serait plus intéressante pour les employés (une piste serait d’utiliser l’outil pocketsphinx-  android).&lt;br /&gt;
*Par rapport à l'IHM, il faudrait mettre l’affichage au premier plan sur les Google Glass pour une démo auprés des parties prenantes du projet.&lt;br /&gt;
*Choisir une architecture pour l’affichage d’information personnalisées.&lt;br /&gt;
**La télévision connectée à une raspberry qui communiquerait via un dongle BLE avec le beacon d’un magasinier, ce qui permettrait l’identification de celui-ci prés de la Télévision, et déclencherait un processus d’échange d’information. (Communication via le protocole Bluetooh, wifi entre les lunettes et la Raspberry  ou communication avec la Raspberry avec la Base de Donnée sur le réseau de l’entreprise)&lt;br /&gt;
**Une télévision connectée en continu à un site internet via un dongle HDMI.&lt;br /&gt;
**Une tablette android géante supportant le BLE, ou utilisant un dongle BLE.&lt;br /&gt;
* Réaliser le portage de l’application sur le prototype des lunettes ORA.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 24/11 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Reconnaissance vocale en Français &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Pocket Sphinx Android est une librairie permettant de faire de la reconnaissance vocale d'un langage donné sur un système android en offline.&lt;br /&gt;
Pour supporter une langue, elle nécessite: &lt;br /&gt;
*un modèle acoustique (ensemble d'informations pour le traitement sonore)&lt;br /&gt;
*un dictionnaire associant les mots et leur phonèmes&lt;br /&gt;
*une grammaire, c'est un fichier définissant comment seraient articulé les mots à reconnaître et limitant les possibilités de langage).&lt;br /&gt;
&lt;br /&gt;
La grammaire étant un automate. Voici un exemple de la grammaire menu.gram pour la reconnaissance de la porte de déchargement.&lt;br /&gt;
[[Fichier:Arborescence_pocket_sphinx.png|200px|thumb|right|PocketSphinx dans un projet Android]]&lt;br /&gt;
&lt;br /&gt;
  #JSGF V1.0;&lt;br /&gt;
  grammar menu;&lt;br /&gt;
  &amp;lt;porte&amp;gt; = porte a |&lt;br /&gt;
            porte b |&lt;br /&gt;
            porte c |&lt;br /&gt;
            porte d |&lt;br /&gt;
            porte e |&lt;br /&gt;
            porte f |&lt;br /&gt;
            porte g |&lt;br /&gt;
            porte h |&lt;br /&gt;
            porte i |&lt;br /&gt;
            porte j ;&lt;br /&gt;
  public &amp;lt;porte&amp;gt; = &amp;lt;porte&amp;gt;+;&lt;br /&gt;
&lt;br /&gt;
Un extrait du dictionnaire french_letter.dic associé avec les phonemes&lt;br /&gt;
&lt;br /&gt;
  a aa &amp;lt;-- juste la lettre a et son phoneme &lt;br /&gt;
  autre au tt rr&lt;br /&gt;
  autre(2) au tt rr ee &lt;br /&gt;
  b bb &lt;br /&gt;
  c ss &lt;br /&gt;
  d dd ei d(2) dd ait &lt;br /&gt;
  e eu e(2) eu zz &lt;br /&gt;
  f ai ff &lt;br /&gt;
  g jj ei g(2) gg ai &lt;br /&gt;
  h aa ch  &lt;br /&gt;
  i ii &lt;br /&gt;
  j jj yy j(2) jj ii&lt;br /&gt;
  porte pp oo rr tt&lt;br /&gt;
  porte(2) pp oo rr tt ee&lt;br /&gt;
  portes(2) pp oo rr tt ee&lt;br /&gt;
  portes(3) pp oo rr tt ee zz&lt;br /&gt;
  portes(4) pp oo rr tt zz&lt;br /&gt;
&lt;br /&gt;
Le modèle acoustique que nous avons téléchargé étant inclu dans lium_french_f0&lt;br /&gt;
&lt;br /&gt;
Nous avons testé la reconnaissance vocale sur un téléphone android, les mots sont, dans la majorité des cas, bien reconnus.&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Comparaison architectures projet TV &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Au niveau de l’architecture nous avons établi plusieurs propositions après la réunion avec notre tuteur:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour une Raspberry Pi avec un dongle BLE :&lt;br /&gt;
* Installation OS Linux sur la Raspberry&lt;br /&gt;
* Librairie BlueZ pour l’utilisation du BLE (tests rapides effectués sur Linux avec le Dongle)&lt;br /&gt;
* Interface graphique avec une bibliothèque comme Qt (ou encore SDL…)&lt;br /&gt;
* Prix : Rpi = 26€ (chez RadioSpare), Dongle = 10€, TV = à partir de 358€ pour 117cm, + Connectique vidéo. Total = 394€&lt;br /&gt;
&lt;br /&gt;
Pour un écran ViewSonic VSD231 :&lt;br /&gt;
* Possède une API Bluetooth classic + API BLE&lt;br /&gt;
* Interface graphique Android (View, Layout...)&lt;br /&gt;
* Prix : écran ViewSonic VSD231 = 558 € pour 58 cm (chez ViewSonic).&lt;br /&gt;
&lt;br /&gt;
Récupération d’informations :&lt;br /&gt;
* Si données sur les lunettes : Bluetooth ou Wifi.&lt;br /&gt;
* Si données sur serveur : Ethernet ou Wifi.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Vu les propositions possibles nous pensons que la première proposition permettra une meilleure souplesse dans le développement mais serait un peu plus compliquée. Mais nous la trouvons aussi plus intéressante à faire de plus elle est moins coûteuse et permet d'utiliser un écran plus grand. Le développement sur tablette serait sûrement plus rapide à faire en contrepartie.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 01/12 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Conférence GlassCamp à l'Imaginarium &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
GlassCamp est une association qui essaye de répandre l'utilisation de toute les Smart Glass en général. Elle propose de multiples conférences dans lesquelles ils essayent de montrer au public l’intérêt de développer sur ces appareils. Dans le cadre de notre projet, notre tuteur nous a proposé de participer à cette présentation afin de mieux s’approprier le sujet. La conférence a eu lieu le 4 décembre à l'Imaginarium: une grande partie était plutôt tournée vers la présentation mais nous avons apprîs plusieurs choses intéressantes qui sont décrites dans le compte rendu.&lt;br /&gt;
&lt;br /&gt;
'''Compte Rendu Conférence 04/12/2014 :''' [[Fichier:Compte_Rendu_Conf_GlassCamp.pdf]]&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 08/12 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 05/01 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Entretien avec notre tuteur &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Durant cet entretien nous avons défini les évolutions du projet.&lt;br /&gt;
&lt;br /&gt;
'''Compte Rendu de l'entretien du 06/01/2015 :''' [[Fichier:Compte_Rendu_4.pdf]]&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 12/01 &amp;lt;/font&amp;gt;==&lt;/div&gt;</summary>
		<author><name>Jgondry</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=P22_Google_Glass_en_logistique&amp;diff=15711</id>
		<title>P22 Google Glass en logistique</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=P22_Google_Glass_en_logistique&amp;diff=15711"/>
				<updated>2015-01-27T16:39:02Z</updated>
		
		<summary type="html">&lt;p&gt;Jgondry : /*  Semaine du 05/01  */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Introduction =&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Description du sujet &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
Notre projet vise à l’optimisation du stockage et de l’adressage des palettes dans un entrepôt. En effet, lors du déchargement d’un camion, chercher un emplacement libre pour les palettes dans un entrepôt occupant une grande superficie fait perdre du temps et donc de la productivité dans le stockage. Sachant qu’un cariste perd un temps non négligeable à la recherche d’emplacement disponible, optimiser ce temps de recherche permettrait de gagner du temps sur cette opération.&lt;br /&gt;
Développer un prototype permettrait de rendre compte des moyens existants qui pourrait être mis en place dans une solution métier.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Analyse du sujet &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Google_glass.png|200px|thumb|right|Paire de Google Glass]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Optinvent_ora.png|200px|thumb|right|Paire de ORA d'Optivent]]&lt;br /&gt;
&lt;br /&gt;
Notre projet consiste à fluidifier le déchargement en indiquant au cariste l’emplacement libre le plus proche. Pour ne pas gêner le travail des employés, un dispositif main-libre comme une Google Glass semble adapté. Ce projet soulève plusieurs problématiques : développer une interface homme-machine apportant une information pertinente pour l’utilisateur sans pour autant être perturbante. &lt;br /&gt;
&lt;br /&gt;
L’idée serait de réaliser dans les grandes lignes un système similaire à ce scénario d’utilisation :&lt;br /&gt;
http://n.mynews.ly/!lB.Bs4fw&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Moyen d’affichage de l’Informations pertinentes'''&lt;br /&gt;
&lt;br /&gt;
Les Google Glass ne sont pas les seules smart glasses sur le marché. Il nous faudra choisir les appareils les plus adaptés. L’information pertinente pourrait être une direction à suivre dans l’entrepôt ou simplement un numéro d’emplacement (adressage intuitif de l’entrepôt). &lt;br /&gt;
&lt;br /&gt;
'''Géolocalisation'''&lt;br /&gt;
&lt;br /&gt;
Dans le cas d’une direction à suivre se pose le problème de la géolocalisation indoor dont l’utilité et la faisabilité seront discutés au fil des réunions avec l’entreprise. &lt;br /&gt;
&lt;br /&gt;
'''Adressage / flashage'''&lt;br /&gt;
&lt;br /&gt;
En ce qui concerne l’adressage des palettes en entrepôt, la solution existante repose sur un flashage des codes barres associés à l’emplacement venant d’être occupé. Une étude de faisabilité/utilité sera aussi faite sur une solution de remplacement grâce aux possibilités qu’offrent les smart glasses.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Cahier des charges &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
En partant de l'analyse du sujet et des discussion avec notre tuteur, nous avons définie un cahier des charges plus précis des tâches à accomplir:&lt;br /&gt;
&lt;br /&gt;
* '''Développer un système embarqué sur une paire de lunette Smart Glass'''&lt;br /&gt;
** Comparer les différentes offres en matière de Smart Glass notamment Google Glass &amp;amp; ORA de Optinvent&lt;br /&gt;
** Concevoir une interface homme-machine non perturbante pour l'utilisateur.&lt;br /&gt;
* '''Etudier la nécessité d'utiliser une géolocalisation en entrepôt et l'implémenter si besoin'''&lt;br /&gt;
** Via RSSI (Wifi, Bluetooh Low Energy ...)&lt;br /&gt;
** Via traitement d'images (reconnaissance de la signalétique en entrepôt)&lt;br /&gt;
* '''Etudier les possibilités d'optimisation du système d'adressage des palettes'''&lt;br /&gt;
** Implémenter la reconnaissance de code barre&lt;br /&gt;
** La tester en réalité métier (utilité ajoutée, habitude des magasiniers, vitesse de traitement...)&lt;br /&gt;
&lt;br /&gt;
Le cahier des charges est encore en cours de construction&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Matériel utilisé &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; SmartGlass &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Lors de la réunion nous avons discuté des technologies à utiliser dans le projet, et plus particulièrement des différentes SmartGlass. En effet, il existe une multitude de sociétés qui développe ce genre de lunettes. Nous commencerons à utiliser les Google Glass étant donné que notre tuteur en a déjà commandé puis nous développerons sur les lunettes ORA de Optivent qui seront livrées fin octobre. Nous devrons donc faire un comparatif entre ces deux SmartGlass puis étudier les autres appareils disponibles sur le marché.&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Localisation &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
L'utilisation de la géolocalisation dans le projet est à débattre. Mais des tests seront probablement mis en place. L'entreprise possède quelque iBeacons BLE Estimote dans ses bureaux d'innovations que nous pourrons emprunter.&lt;br /&gt;
Dans le cas où leur gain d'informations serait utile il nous faudra comparer les modèles disponibles. Choisir un nombre de module et des emplacements stratégiques dans l'entrepôt afin d'avoir une localisation assez précise pour l'application.&lt;br /&gt;
&lt;br /&gt;
L'utilisation d'autres technologies de géolocalisation a été discuté comme le Wifi ou le XBee mais le BLE semblait le plus adapté dans le cadre de notre projet.&lt;br /&gt;
&lt;br /&gt;
= Déroulement du projet =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 22/09 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Réunion avec le tuteur entreprise dans l’entrepôt &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Nous avons observé en situation le problème et discuté des besoins, des moyens déjà utilisables. Il nous faudra prendre en compte plusieurs paramètres dans notre réflexion tels que le système de stockage et d'adressages des palettes, sens de circulation des caristes, superficie des zones à desservir, durée de livraison.&lt;br /&gt;
Nous avons suggéré des étapes de validation intermédiaire du système par les futurs utilisateurs et pour cela nous rencontrerons le chef d'équipe des magasiniers lorsque qu'une version sera assez développée.&lt;br /&gt;
&lt;br /&gt;
Nous avons défini avec le tuteur les premières deadlines du projet, voici la timeline récapitulative:&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Timeline_1.jpg||center|1000px]]&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Compte Rendu &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Nous avons rédigé un compte rendu de la première réunion détaillant les spécifications des versions des livrables, des schémas et les sujets abordés lors de la rencontre :&lt;br /&gt;
&lt;br /&gt;
'''Compte Rendu réunion du 25/09/2014 :''' [[Fichier:Compte_Rendu_25_09.pdf]]&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 29/09 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Découverte des Google Glass &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
*Prise en main des Google Glass. &lt;br /&gt;
*Installation d'applications (.apk) grand public. Nous avons utilisé l'outil Android Debug Bridge(adb). Se mettre à la place d'un utilisateur.&lt;br /&gt;
*L'une des deux lunettes qui serait retenue imposera forcément le développement d'une application android (ou d'une technologie trés proche d'android, pour les Google Glass, se basant sur le Glass Development Kit qui est un add-on au SDK classique d'android). Nous avons donc téléchargé les packages nécessaires pour commencer à développer. &lt;br /&gt;
** Nous commençons à nous former sur les technologies android :développement d'applications minimaliste.&lt;br /&gt;
** Installation de nos premières apk minimalistes pour Android.&lt;br /&gt;
** Installation d'une application minimaliste sur la Google Glass.&lt;br /&gt;
&lt;br /&gt;
Voici un comparatif réalisé entre les lunettes ORA et les Google Glass.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Différences Google Glass/ORA &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!   !! Google Glass !! ORA &lt;br /&gt;
|-&lt;br /&gt;
|Connectique&lt;br /&gt;
|Compatible BLE (à partir de la XE 16 KitKat Update), Wifi &lt;br /&gt;
|Compatible BLE, Wifi&lt;br /&gt;
|-&lt;br /&gt;
|Autonomie en utilisation normale&lt;br /&gt;
|de 1h à 2h &lt;br /&gt;
|de 4h à 8h&lt;br /&gt;
|-&lt;br /&gt;
|Son&lt;br /&gt;
|Conductivité Cranienne&lt;br /&gt;
|Prise jack&lt;br /&gt;
|-&lt;br /&gt;
|Interface&lt;br /&gt;
|Ecran occupant une faible superficie dans le champ de vision &lt;br /&gt;
|Ecran 2 positions (moyennes et basses), plus étendu permettant une réalité augmentée &lt;br /&gt;
|-&lt;br /&gt;
|Système d'exploitation&lt;br /&gt;
|Android 4.4&lt;br /&gt;
|Android 4.2.2&lt;br /&gt;
|-&lt;br /&gt;
|Calculs&lt;br /&gt;
|CPU &amp;amp; GPU&lt;br /&gt;
|CPU &amp;amp; GPU&lt;br /&gt;
|-&lt;br /&gt;
|Prix&lt;br /&gt;
|1500$ &lt;br /&gt;
|949$&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 06/10 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Deuxième rendez-vous avec le tuteur entreprise &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Nous avons fait part de notre avancée en matière de prise en main et des problèmes rencontrés en matière de développement.&lt;br /&gt;
Les lunettes ORA sont commandées elles arrivent d'ici la fin octobre.&lt;br /&gt;
&lt;br /&gt;
La première version V1 de l'application pour Google Glass à livrer pour la mi-novembre est fixée.&lt;br /&gt;
&lt;br /&gt;
En partant d'une position connue (en dur dans l'application) dans l'entrepôt, elle indiquera à un utilisateur les emplacements libres les plus proches.&lt;br /&gt;
&lt;br /&gt;
L'état d'occupation des emplacements sera consulté et stocké dans l'application. Il n'y aura donc pas de gestion des conflits. Le sens de circulation dans l'entrepôt sera pris en compte.&lt;br /&gt;
Une communication avec la base de donnée de l'entrepôt n'est pour le moment pas d'actualité, cela nécessiterait des développements en amont.&lt;br /&gt;
La géolocalisation n'est pas au goût du jour non plus. L'adressage des emplacements dans l'entrepôt est intuitif, il est donc facile pour un magasinier de &lt;br /&gt;
se rendre à un emplacement en connaissant l'adresse.&lt;br /&gt;
&lt;br /&gt;
Pour l'IHM, nous nous inspirerons des applications pour Google Glass (les Glasswares) de type GPS.&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Premiers programmes sur Google Glass &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Pour nous familiariser avec la programmation sur ce genre d'appareil nous avons tous deux décidé de suivre en premier le tutoriel Android d'un site spécialisé. Cela afin de mieux comprendre le système Android, avec les concepts d'activités, de view etc.&lt;br /&gt;
Dans un deuxième temps nous avons choisi de suivre plusieurs tutoriels nous expliquant la prise en main basique des lunettes afin de saisir les particularités de leur programmation.&lt;br /&gt;
&lt;br /&gt;
Le plus dur étant finalement de comprendre les liens entre tous les fichiers du projets, les problèmes de drivers et d'upload simple que nous avons rencontrés et l’exécution du programme sur les lunettes. Des choses que nous arrivons maintenant à maitriser mais qui était floues à l'origine.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 13/10 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Programmation et gestion des interactions &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Durant cette semaine nous avons commencé a vraiment toucher aux fonctionnalités des Glass. Pour rester en main libre, nous avons fait des recherches et commencé à programmer de la reconnaissance vocale. Nous avons ainsi crée un système de navigation basique par commande vocale dans différents menus. Pour un accès rapide à l'application et toujours dans la même optique nous avons réussi à inclure le lancement de notre logiciel à partir du &amp;quot;Ok Glass&amp;quot; menu qui est le menu de lancement d'application par commande vocale des Google Glass. Voici un aperçu du résultat:&lt;br /&gt;
[[Fichier:V0_menu.png|1000px|center]]&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Analyse et évaluation du rendu &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Le début de la prise en main des fonctionnalités des Google Glass n'a pas été facile étant donné que la plupart des fonctionnalités sont propres à ce genre d'appareil. De plus elles nécessitent des techniques spéciales de programmation qui ne sont pas toujours très utilisées donc il est parfois difficile de trouver des exemples sur internet.&lt;br /&gt;
Néanmoins après l'implémentation de ces fonctionnalités nous avons pu rencontrer quelques difficultés de reconnaissance. En effet, les Google Glass possèdent un dictionnaire de mots/phrases pour la reconnaissance vocale mais elles nous permettent aussi d'écrire n'importe quelle phrase dans le mode développeur. Les phrases du dictionnaires ne posent aucun problème mais les phrases que nous écrivons sont parfois dures à reconnaitre. La reconnaissance de lettre seule ou de certains numéros est par exemple quasi impossible ou très aléatoire.&lt;br /&gt;
Le système de vu est quant à lui plutôt facile à prendre en main et intuitif dans l'utilisation.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 20/10 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Premiere structure de donnée &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Nous avons opté pour une structure de donnée récursive. Une Cellule, contenant des Allées, qui contiennent des Baies, contenant des Rangées, contenant des Emplacements.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Structure_export_resized.png|750px|center]]&lt;br /&gt;
Nous avons conçu cette structure de donnée pour qu'elle génère, dans un premier temps &amp;quot;en dur&amp;quot;, une cellule contenant des emplacements automatiquement adressés à la manière de ceux présent dans l'entrepôt. Ces adresses sont de la forme &amp;quot;D61A514&amp;quot; traduisez &amp;quot; Cellule 6 Allée 1A Baie 5 Rang 1 Niveau 4&amp;quot;.&lt;br /&gt;
Cette structure prend on compte le sens de circulation dans l'entrepôt.&lt;br /&gt;
Lors de futures interactions avec une base de donnée, cette structure serait sujette à évolution par une modification des méthodes de génération/modification du statut des adresses en fonction de cette base de donnée. Mais celle-ci constitue essentiellement une base pour appréhender plus pratiquement les problématiques de recherches de l'emplacement le plus proche.&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Prise en main de l'interface &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Nous avons déjà abordé les layouts java en TP donc il a été assez facile de commencer à faire des interfaces graphiques simples. Nous avons construit une interface graphique simple pour de faire une démonstration du programme aux tuteurs entreprise afin qu'ils comprennent bien le fonctionnement de notre algorithme.&lt;br /&gt;
L'interface graphique finale du programme sera très sobre afin de ne pas donner trop gêner le magasinier dans sa tâche.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 27/10 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Chemin optimal : Parcours intelligent Vs Sélection intelligente &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Un premier algorithme de recherche de l'emplacement le plus proche a été développé, celui-ci ne prend en compte qu'un seul scénario. &lt;br /&gt;
Celui de la position de départ (quai de déchargement où reviendra constamment le magasinier aprés chaque livraison) correspondante à la première allée de l'entrepôt, et en prenant en compte le sens de circulation. &lt;br /&gt;
A partir de ce moment, nous avons dégager deux grandes manières d'appréhender le problème.&lt;br /&gt;
&lt;br /&gt;
* Un parcours intelligent de la structure de donnée. C'est à dire parcourir les emplacements les plus proches, et choisir le premier emplacement libre. Une solution complexe à réaliser sur le plan algorithmique. En tenant compte du sens de circulation, il apparait que l'emplacement libre &amp;quot;leplusproche&amp;quot; (à vol d'oiseau) trouvé le plus tôt, ne correspondrait pas forcément à l'emplacement le plus proche compte tenu du chemin emprunté par un magasinier. Et c'est plutôt l'intérêt de cette algorithme.(Sauf dans l'unique cas où l'emplacement libre se trouve directement dans l'allée faisant face à la position de départ du magasinier, et le sens de circulation lui permet directement de se rendre à l'emplacement sans détour).&lt;br /&gt;
&lt;br /&gt;
* Une sélection intelligente parmi les emplacements libres. Leurs adresses renseignent à quelles allées, les emplacements libres appartiennent, donc renseignent sur le sens de circulation. A partir de la position de départ du magasinier et de l'ensemble des emplacements libres, on peut calculer la distance nécessaire à celui-ci pour les atteindre. Pour ainsi choisir l'adresse pour laquelle la distance est minimale.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 3/11 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Chemin optimal : sélection intelligente des adresses &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Nous avons écrit une premiere méthode de détermination. &lt;br /&gt;
On choisit l'emplacement, parmi tous ceux qui sont libres, pour lequel la distance de parcours est minimale entre le départ et celui-ci. &lt;br /&gt;
Ici l'unité de distance est la baie. La simplicité de l'algorithme réside dans le fait que le magasinier ne transporte qu'une seule caisse à la fois et repars toujours au même point de départ.&lt;br /&gt;
&lt;br /&gt;
Ci dessous un plan de l'entrepôt.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:schema_entrepot.png|750px|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Si on se place à l'entrée de l'Allée A :&lt;br /&gt;
&lt;br /&gt;
**le déplacement jusqu'à A4 (sens de circulation direct) est de : &lt;br /&gt;
&lt;br /&gt;
                        Y baies - (indice de la baie/2 +indice de la baie % 2) &lt;br /&gt;
&lt;br /&gt;
**le déplacement jusqu'à B1 (sens de circulation indirect) est de : &lt;br /&gt;
&lt;br /&gt;
                        Y baies + différence entre l'allée A et B donc X baies + indice de la baie/2 +indice de la baie % 2&lt;br /&gt;
**le déplacement jusqu'à C1 (sens de circulation direct) est de : &lt;br /&gt;
                      &lt;br /&gt;
                        Y baies - (indice de la baie/2 +indice de la baie % 2)+différence entre l'allée A et C donc 2*X baies.&lt;br /&gt;
&lt;br /&gt;
*Si on se place à l'entrée de l'Allée B :&lt;br /&gt;
**le déplacement jusqu'à B1 (sens de circulation indirect avec contournement) est de : &lt;br /&gt;
                        &lt;br /&gt;
                        2*X baies + Y baies + 2*X baies + (indice de la baie/2 +indice de la baie % 2)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On peut généraliser l'ensemble de ces situations de déplacement avec l'algorithme suivant :&lt;br /&gt;
&lt;br /&gt;
Pseudo code&lt;br /&gt;
&lt;br /&gt;
  Leplusproche( Allee depart )&lt;br /&gt;
    distance_la_plus_petite = valeurMAX&lt;br /&gt;
      le_plus_proche=&amp;quot;&amp;quot;&lt;br /&gt;
         Pour chaque Allee de Cellule&lt;br /&gt;
           sens=Allee.sens&lt;br /&gt;
           Pour chaque Baie de Allee&lt;br /&gt;
             Pour chaque Rang de Allee&lt;br /&gt;
 	       Pour chaque Emplacement de Rang&lt;br /&gt;
                Si Emplacement estlibre &lt;br /&gt;
                &lt;br /&gt;
                indice_baie = selection_indice_baie(Emplacement.adresse)&lt;br /&gt;
   		 allee_cible = selection_indice_allee(Emplacement.adresse)  &lt;br /&gt;
   		 difference_allee = valeur_absolue(depart -cible) &lt;br /&gt;
                    Si difference_allee==0 et sens.estindirect&lt;br /&gt;
                      //sens indirect +contournement&lt;br /&gt;
                      distance_actuelle=(indice_baie/2)+indice_baie%2+(2*(difference_allee))+4*X+Y			&lt;br /&gt;
                    Sinon	&lt;br /&gt;
                        Si sens estdirect&lt;br /&gt;
                          //sens direct &lt;br /&gt;
                          distance_actuelle=(Y-((indice_baie/2)+indice_baie%2))+2*difference_allee&lt;br /&gt;
                        Sinon&lt;br /&gt;
                          //sens indirect mais pas de contournement&lt;br /&gt;
                          distance_actuelle=((indice_baie/2)+indice_baie%2)+2*difference_allee+Y&lt;br /&gt;
                        Finsi	&lt;br /&gt;
                    Finsi	&lt;br /&gt;
                    Si distance_actuelle &amp;lt; distance_la_plus_petite&lt;br /&gt;
                      le_plus_proche=Emplacement.adresse&lt;br /&gt;
                      distance_la_plus_petite=distance_actuelle&lt;br /&gt;
                    Finsi&lt;br /&gt;
                Finsi  &lt;br /&gt;
            Finpour&lt;br /&gt;
          Finpour&lt;br /&gt;
        Finpour&lt;br /&gt;
      Finpour&lt;br /&gt;
    retourne le_plus_proche&lt;br /&gt;
  Finleplusproche&lt;br /&gt;
&lt;br /&gt;
Cet algorithme nous donne satisfaction (dans le cadre de la V1)&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 10/11 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Programmation et gestion des interactions &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Aprés quelques difficultés vis à vis de la gestion des menus vocaux sur les lunettes qui ne fonctionnent pas de la même manière que les menus classiques sous android, nous avons étoffé les interactions possible avec l'application des google glass. (Nous souhaitions inflater un deuxième menu pour interagir de manière plus contextuelle, il fallait le faire dans la méthode onCreatePanelMenu dont l'appel serait forcé avec getWindow().invalidatePanelMenu(WindowUtils.FEATURE_VOICE_COMMANDS) plutôt que dans onPrepareOptionsMenu forcée par invalidateOptionMenu()...) &lt;br /&gt;
&lt;br /&gt;
schéma d'utilisation...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Proposition projet affichage télévision &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Tele_concept.png|200px|thumb|right]]&lt;br /&gt;
&lt;br /&gt;
Notre tuteur nous a contacté pour nous proposer d'étudier un second projet en parallèle au projet initial. Celui consistant à gérer l'affichage d'information personnalisé d'un magasinier passant à proximité d'un écran de télévision. Nous devons effectuer un Proof Of Concept (POC) et réfléchir à ce sujet.&lt;br /&gt;
L'utilisation du BLE est donc de nouveau d'actualité, car je rappel que sont utilité était discutable dans une réalité métier du projet initial. La question étant plus de savoir comment gérer le système du coté du téléviseur.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Le concept de base étant de :&lt;br /&gt;
* Fournir une beacon aux magasiniers de l'entrepôt.&lt;br /&gt;
* Installer une télévision sur un centre de vie dans l'entrepôt avec une beacon&lt;br /&gt;
* Pousser du contenu personnalisé au magasinier qui se présente devant la tv dans son centre de vie&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 17/11 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Brainstorming à Polytech &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Dans la cadre du POC sur l'affichage personnalisé sur une télévision, nous avons profité d'un exercice de management pour faire participer la classe à notre projet. Grâce à cette intervention nous avons pu confirmer nos idées sur les technologies à utiliser. Mais nous avons surtout eu une multitude de propositions sur les données à afficher sur l'écran.&lt;br /&gt;
&lt;br /&gt;
Pour plus détails, le compte rendu est disponible à ce lien:&lt;br /&gt;
&lt;br /&gt;
'''Compte Rendu Brainstorming 17/11/2014 :''' [[Fichier:Compte_Rendu_POC_17_11.pdf]]&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Entretien avec notre tuteur entreprise &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Durant cet entretien, nous avons livré la première version de l'application et nous avons discuté de la suite du projet.&lt;br /&gt;
Ci joint le Compte Rendu.&lt;br /&gt;
&lt;br /&gt;
'''Compte Rendu  19/11/2014 :''' [[Fichier:Compte_Rendu_19_11.pdf]]&lt;br /&gt;
&lt;br /&gt;
De cette réunion, les points suivants en sont sortis:&lt;br /&gt;
&lt;br /&gt;
*Une reconnaissance vocale en langue française sur les lunettes serait plus intéressante pour les employés (une piste serait d’utiliser l’outil pocketsphinx-  android).&lt;br /&gt;
*Par rapport à l'IHM, il faudrait mettre l’affichage au premier plan sur les Google Glass pour une démo auprés des parties prenantes du projet.&lt;br /&gt;
*Choisir une architecture pour l’affichage d’information personnalisées.&lt;br /&gt;
**La télévision connectée à une raspberry qui communiquerait via un dongle BLE avec le beacon d’un magasinier, ce qui permettrait l’identification de celui-ci prés de la Télévision, et déclencherait un processus d’échange d’information. (Communication via le protocole Bluetooh, wifi entre les lunettes et la Raspberry  ou communication avec la Raspberry avec la Base de Donnée sur le réseau de l’entreprise)&lt;br /&gt;
**Une télévision connectée en continu à un site internet via un dongle HDMI.&lt;br /&gt;
**Une tablette android géante supportant le BLE, ou utilisant un dongle BLE.&lt;br /&gt;
* Réaliser le portage de l’application sur le prototype des lunettes ORA.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 24/11 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Reconnaissance vocale en Français &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Pocket Sphinx Android est une librairie permettant de faire de la reconnaissance vocale d'un langage donné sur un système android en offline.&lt;br /&gt;
Pour supporter une langue, elle nécessite: &lt;br /&gt;
*un modèle acoustique (ensemble d'informations pour le traitement sonore)&lt;br /&gt;
*un dictionnaire associant les mots et leur phonèmes&lt;br /&gt;
*une grammaire, c'est un fichier définissant comment seraient articulé les mots à reconnaître et limitant les possibilités de langage).&lt;br /&gt;
&lt;br /&gt;
La grammaire étant un automate. Voici un exemple de la grammaire menu.gram pour la reconnaissance de la porte de déchargement.&lt;br /&gt;
[[Fichier:Arborescence_pocket_sphinx.png|200px|thumb|right|PocketSphinx dans un projet Android]]&lt;br /&gt;
&lt;br /&gt;
  #JSGF V1.0;&lt;br /&gt;
  grammar menu;&lt;br /&gt;
  &amp;lt;porte&amp;gt; = porte a |&lt;br /&gt;
            porte b |&lt;br /&gt;
            porte c |&lt;br /&gt;
            porte d |&lt;br /&gt;
            porte e |&lt;br /&gt;
            porte f |&lt;br /&gt;
            porte g |&lt;br /&gt;
            porte h |&lt;br /&gt;
            porte i |&lt;br /&gt;
            porte j ;&lt;br /&gt;
  public &amp;lt;porte&amp;gt; = &amp;lt;porte&amp;gt;+;&lt;br /&gt;
&lt;br /&gt;
Un extrait du dictionnaire french_letter.dic associé avec les phonemes&lt;br /&gt;
&lt;br /&gt;
  a aa &amp;lt;-- juste la lettre a et son phoneme &lt;br /&gt;
  autre au tt rr&lt;br /&gt;
  autre(2) au tt rr ee &lt;br /&gt;
  b bb &lt;br /&gt;
  c ss &lt;br /&gt;
  d dd ei d(2) dd ait &lt;br /&gt;
  e eu e(2) eu zz &lt;br /&gt;
  f ai ff &lt;br /&gt;
  g jj ei g(2) gg ai &lt;br /&gt;
  h aa ch  &lt;br /&gt;
  i ii &lt;br /&gt;
  j jj yy j(2) jj ii&lt;br /&gt;
  porte pp oo rr tt&lt;br /&gt;
  porte(2) pp oo rr tt ee&lt;br /&gt;
  portes(2) pp oo rr tt ee&lt;br /&gt;
  portes(3) pp oo rr tt ee zz&lt;br /&gt;
  portes(4) pp oo rr tt zz&lt;br /&gt;
&lt;br /&gt;
Le modèle acoustique que nous avons téléchargé étant inclu dans lium_french_f0&lt;br /&gt;
&lt;br /&gt;
Nous avons testé la reconnaissance vocale sur un téléphone android, les mots sont, dans la majorité des cas, bien reconnus.&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Comparaison architectures projet TV &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Au niveau de l’architecture nous avons établi plusieurs propositions après la réunion avec notre tuteur:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour une Raspberry Pi avec un dongle BLE :&lt;br /&gt;
* Installation OS Linux sur la Raspberry&lt;br /&gt;
* Librairie BlueZ pour l’utilisation du BLE (tests rapides effectués sur Linux avec le Dongle)&lt;br /&gt;
* Interface graphique avec une bibliothèque comme Qt (ou encore SDL…)&lt;br /&gt;
* Prix : Rpi = 26€ (chez RadioSpare), Dongle = 10€, TV = à partir de 358€ pour 117cm, + Connectique vidéo. Total = 394€&lt;br /&gt;
&lt;br /&gt;
Pour un écran ViewSonic VSD231 :&lt;br /&gt;
* Possède une API Bluetooth classic + API BLE&lt;br /&gt;
* Interface graphique Android (View, Layout...)&lt;br /&gt;
* Prix : écran ViewSonic VSD231 = 558 € pour 58 cm (chez ViewSonic).&lt;br /&gt;
&lt;br /&gt;
Récupération d’informations :&lt;br /&gt;
* Si données sur les lunettes : Bluetooth ou Wifi.&lt;br /&gt;
* Si données sur serveur : Ethernet ou Wifi.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Vu les propositions possibles nous pensons que la première proposition permettra une meilleure souplesse dans le développement mais serait un peu plus compliquée. Mais nous la trouvons aussi plus intéressante à faire de plus elle est moins coûteuse et permet d'utiliser un écran plus grand. Le développement sur tablette serait sûrement plus rapide à faire en contrepartie.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 01/12 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Conférence GlassCamp à l'Imaginarium &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
GlassCamp est une association qui essaye de répandre l'utilisation de toute les Smart Glass en général. Elle propose de multiples conférences dans lesquelles ils essayent de montrer au public l’intérêt de développer sur ces appareils. Dans le cadre de notre projet, notre tuteur nous a proposé de participer à cette présentation afin de mieux s’approprier le sujet. La conférence a eu lieu le 4 décembre à l'Imaginarium: une grande partie était plutôt tournée vers la présentation mais nous avons apprîs plusieurs choses intéressantes qui sont décrites dans le compte rendu.&lt;br /&gt;
&lt;br /&gt;
'''Compte Rendu Conférence 04/12/2014 :''' [[Fichier:Compte_Rendu_Conf_GlassCamp.pdf]]&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 08/12 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 05/01 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Entretien avec notre tuteur &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Durant cet entretien nous devions définir les évolutions du projet.&lt;br /&gt;
&lt;br /&gt;
'''Compte Rendu de l'entretien du 06/01/2015 :''' [[Fichier:Compte_Rendu_4.pdf]]&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 12/01 &amp;lt;/font&amp;gt;==&lt;/div&gt;</summary>
		<author><name>Jgondry</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=Fichier:Compte_Rendu_4.pdf&amp;diff=15710</id>
		<title>Fichier:Compte Rendu 4.pdf</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=Fichier:Compte_Rendu_4.pdf&amp;diff=15710"/>
				<updated>2015-01-27T16:37:11Z</updated>
		
		<summary type="html">&lt;p&gt;Jgondry : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Jgondry</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=P22_Google_Glass_en_logistique&amp;diff=15709</id>
		<title>P22 Google Glass en logistique</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=P22_Google_Glass_en_logistique&amp;diff=15709"/>
				<updated>2015-01-27T16:36:00Z</updated>
		
		<summary type="html">&lt;p&gt;Jgondry : /*  Entretien avec notre tuteur  */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Introduction =&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Description du sujet &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
Notre projet vise à l’optimisation du stockage et de l’adressage des palettes dans un entrepôt. En effet, lors du déchargement d’un camion, chercher un emplacement libre pour les palettes dans un entrepôt occupant une grande superficie fait perdre du temps et donc de la productivité dans le stockage. Sachant qu’un cariste perd un temps non négligeable à la recherche d’emplacement disponible, optimiser ce temps de recherche permettrait de gagner du temps sur cette opération.&lt;br /&gt;
Développer un prototype permettrait de rendre compte des moyens existants qui pourrait être mis en place dans une solution métier.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Analyse du sujet &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Google_glass.png|200px|thumb|right|Paire de Google Glass]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Optinvent_ora.png|200px|thumb|right|Paire de ORA d'Optivent]]&lt;br /&gt;
&lt;br /&gt;
Notre projet consiste à fluidifier le déchargement en indiquant au cariste l’emplacement libre le plus proche. Pour ne pas gêner le travail des employés, un dispositif main-libre comme une Google Glass semble adapté. Ce projet soulève plusieurs problématiques : développer une interface homme-machine apportant une information pertinente pour l’utilisateur sans pour autant être perturbante. &lt;br /&gt;
&lt;br /&gt;
L’idée serait de réaliser dans les grandes lignes un système similaire à ce scénario d’utilisation :&lt;br /&gt;
http://n.mynews.ly/!lB.Bs4fw&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Moyen d’affichage de l’Informations pertinentes'''&lt;br /&gt;
&lt;br /&gt;
Les Google Glass ne sont pas les seules smart glasses sur le marché. Il nous faudra choisir les appareils les plus adaptés. L’information pertinente pourrait être une direction à suivre dans l’entrepôt ou simplement un numéro d’emplacement (adressage intuitif de l’entrepôt). &lt;br /&gt;
&lt;br /&gt;
'''Géolocalisation'''&lt;br /&gt;
&lt;br /&gt;
Dans le cas d’une direction à suivre se pose le problème de la géolocalisation indoor dont l’utilité et la faisabilité seront discutés au fil des réunions avec l’entreprise. &lt;br /&gt;
&lt;br /&gt;
'''Adressage / flashage'''&lt;br /&gt;
&lt;br /&gt;
En ce qui concerne l’adressage des palettes en entrepôt, la solution existante repose sur un flashage des codes barres associés à l’emplacement venant d’être occupé. Une étude de faisabilité/utilité sera aussi faite sur une solution de remplacement grâce aux possibilités qu’offrent les smart glasses.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Cahier des charges &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
En partant de l'analyse du sujet et des discussion avec notre tuteur, nous avons définie un cahier des charges plus précis des tâches à accomplir:&lt;br /&gt;
&lt;br /&gt;
* '''Développer un système embarqué sur une paire de lunette Smart Glass'''&lt;br /&gt;
** Comparer les différentes offres en matière de Smart Glass notamment Google Glass &amp;amp; ORA de Optinvent&lt;br /&gt;
** Concevoir une interface homme-machine non perturbante pour l'utilisateur.&lt;br /&gt;
* '''Etudier la nécessité d'utiliser une géolocalisation en entrepôt et l'implémenter si besoin'''&lt;br /&gt;
** Via RSSI (Wifi, Bluetooh Low Energy ...)&lt;br /&gt;
** Via traitement d'images (reconnaissance de la signalétique en entrepôt)&lt;br /&gt;
* '''Etudier les possibilités d'optimisation du système d'adressage des palettes'''&lt;br /&gt;
** Implémenter la reconnaissance de code barre&lt;br /&gt;
** La tester en réalité métier (utilité ajoutée, habitude des magasiniers, vitesse de traitement...)&lt;br /&gt;
&lt;br /&gt;
Le cahier des charges est encore en cours de construction&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Matériel utilisé &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; SmartGlass &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Lors de la réunion nous avons discuté des technologies à utiliser dans le projet, et plus particulièrement des différentes SmartGlass. En effet, il existe une multitude de sociétés qui développe ce genre de lunettes. Nous commencerons à utiliser les Google Glass étant donné que notre tuteur en a déjà commandé puis nous développerons sur les lunettes ORA de Optivent qui seront livrées fin octobre. Nous devrons donc faire un comparatif entre ces deux SmartGlass puis étudier les autres appareils disponibles sur le marché.&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Localisation &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
L'utilisation de la géolocalisation dans le projet est à débattre. Mais des tests seront probablement mis en place. L'entreprise possède quelque iBeacons BLE Estimote dans ses bureaux d'innovations que nous pourrons emprunter.&lt;br /&gt;
Dans le cas où leur gain d'informations serait utile il nous faudra comparer les modèles disponibles. Choisir un nombre de module et des emplacements stratégiques dans l'entrepôt afin d'avoir une localisation assez précise pour l'application.&lt;br /&gt;
&lt;br /&gt;
L'utilisation d'autres technologies de géolocalisation a été discuté comme le Wifi ou le XBee mais le BLE semblait le plus adapté dans le cadre de notre projet.&lt;br /&gt;
&lt;br /&gt;
= Déroulement du projet =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 22/09 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Réunion avec le tuteur entreprise dans l’entrepôt &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Nous avons observé en situation le problème et discuté des besoins, des moyens déjà utilisables. Il nous faudra prendre en compte plusieurs paramètres dans notre réflexion tels que le système de stockage et d'adressages des palettes, sens de circulation des caristes, superficie des zones à desservir, durée de livraison.&lt;br /&gt;
Nous avons suggéré des étapes de validation intermédiaire du système par les futurs utilisateurs et pour cela nous rencontrerons le chef d'équipe des magasiniers lorsque qu'une version sera assez développée.&lt;br /&gt;
&lt;br /&gt;
Nous avons défini avec le tuteur les premières deadlines du projet, voici la timeline récapitulative:&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Timeline_1.jpg||center|1000px]]&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Compte Rendu &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Nous avons rédigé un compte rendu de la première réunion détaillant les spécifications des versions des livrables, des schémas et les sujets abordés lors de la rencontre :&lt;br /&gt;
&lt;br /&gt;
'''Compte Rendu réunion du 25/09/2014 :''' [[Fichier:Compte_Rendu_25_09.pdf]]&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 29/09 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Découverte des Google Glass &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
*Prise en main des Google Glass. &lt;br /&gt;
*Installation d'applications (.apk) grand public. Nous avons utilisé l'outil Android Debug Bridge(adb). Se mettre à la place d'un utilisateur.&lt;br /&gt;
*L'une des deux lunettes qui serait retenue imposera forcément le développement d'une application android (ou d'une technologie trés proche d'android, pour les Google Glass, se basant sur le Glass Development Kit qui est un add-on au SDK classique d'android). Nous avons donc téléchargé les packages nécessaires pour commencer à développer. &lt;br /&gt;
** Nous commençons à nous former sur les technologies android :développement d'applications minimaliste.&lt;br /&gt;
** Installation de nos premières apk minimalistes pour Android.&lt;br /&gt;
** Installation d'une application minimaliste sur la Google Glass.&lt;br /&gt;
&lt;br /&gt;
Voici un comparatif réalisé entre les lunettes ORA et les Google Glass.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Différences Google Glass/ORA &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!   !! Google Glass !! ORA &lt;br /&gt;
|-&lt;br /&gt;
|Connectique&lt;br /&gt;
|Compatible BLE (à partir de la XE 16 KitKat Update), Wifi &lt;br /&gt;
|Compatible BLE, Wifi&lt;br /&gt;
|-&lt;br /&gt;
|Autonomie en utilisation normale&lt;br /&gt;
|de 1h à 2h &lt;br /&gt;
|de 4h à 8h&lt;br /&gt;
|-&lt;br /&gt;
|Son&lt;br /&gt;
|Conductivité Cranienne&lt;br /&gt;
|Prise jack&lt;br /&gt;
|-&lt;br /&gt;
|Interface&lt;br /&gt;
|Ecran occupant une faible superficie dans le champ de vision &lt;br /&gt;
|Ecran 2 positions (moyennes et basses), plus étendu permettant une réalité augmentée &lt;br /&gt;
|-&lt;br /&gt;
|Système d'exploitation&lt;br /&gt;
|Android 4.4&lt;br /&gt;
|Android 4.2.2&lt;br /&gt;
|-&lt;br /&gt;
|Calculs&lt;br /&gt;
|CPU &amp;amp; GPU&lt;br /&gt;
|CPU &amp;amp; GPU&lt;br /&gt;
|-&lt;br /&gt;
|Prix&lt;br /&gt;
|1500$ &lt;br /&gt;
|949$&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 06/10 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Deuxième rendez-vous avec le tuteur entreprise &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Nous avons fait part de notre avancée en matière de prise en main et des problèmes rencontrés en matière de développement.&lt;br /&gt;
Les lunettes ORA sont commandées elles arrivent d'ici la fin octobre.&lt;br /&gt;
&lt;br /&gt;
La première version V1 de l'application pour Google Glass à livrer pour la mi-novembre est fixée.&lt;br /&gt;
&lt;br /&gt;
En partant d'une position connue (en dur dans l'application) dans l'entrepôt, elle indiquera à un utilisateur les emplacements libres les plus proches.&lt;br /&gt;
&lt;br /&gt;
L'état d'occupation des emplacements sera consulté et stocké dans l'application. Il n'y aura donc pas de gestion des conflits. Le sens de circulation dans l'entrepôt sera pris en compte.&lt;br /&gt;
Une communication avec la base de donnée de l'entrepôt n'est pour le moment pas d'actualité, cela nécessiterait des développements en amont.&lt;br /&gt;
La géolocalisation n'est pas au goût du jour non plus. L'adressage des emplacements dans l'entrepôt est intuitif, il est donc facile pour un magasinier de &lt;br /&gt;
se rendre à un emplacement en connaissant l'adresse.&lt;br /&gt;
&lt;br /&gt;
Pour l'IHM, nous nous inspirerons des applications pour Google Glass (les Glasswares) de type GPS.&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Premiers programmes sur Google Glass &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Pour nous familiariser avec la programmation sur ce genre d'appareil nous avons tous deux décidé de suivre en premier le tutoriel Android d'un site spécialisé. Cela afin de mieux comprendre le système Android, avec les concepts d'activités, de view etc.&lt;br /&gt;
Dans un deuxième temps nous avons choisi de suivre plusieurs tutoriels nous expliquant la prise en main basique des lunettes afin de saisir les particularités de leur programmation.&lt;br /&gt;
&lt;br /&gt;
Le plus dur étant finalement de comprendre les liens entre tous les fichiers du projets, les problèmes de drivers et d'upload simple que nous avons rencontrés et l’exécution du programme sur les lunettes. Des choses que nous arrivons maintenant à maitriser mais qui était floues à l'origine.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 13/10 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Programmation et gestion des interactions &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Durant cette semaine nous avons commencé a vraiment toucher aux fonctionnalités des Glass. Pour rester en main libre, nous avons fait des recherches et commencé à programmer de la reconnaissance vocale. Nous avons ainsi crée un système de navigation basique par commande vocale dans différents menus. Pour un accès rapide à l'application et toujours dans la même optique nous avons réussi à inclure le lancement de notre logiciel à partir du &amp;quot;Ok Glass&amp;quot; menu qui est le menu de lancement d'application par commande vocale des Google Glass. Voici un aperçu du résultat:&lt;br /&gt;
[[Fichier:V0_menu.png|1000px|center]]&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Analyse et évaluation du rendu &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Le début de la prise en main des fonctionnalités des Google Glass n'a pas été facile étant donné que la plupart des fonctionnalités sont propres à ce genre d'appareil. De plus elles nécessitent des techniques spéciales de programmation qui ne sont pas toujours très utilisées donc il est parfois difficile de trouver des exemples sur internet.&lt;br /&gt;
Néanmoins après l'implémentation de ces fonctionnalités nous avons pu rencontrer quelques difficultés de reconnaissance. En effet, les Google Glass possèdent un dictionnaire de mots/phrases pour la reconnaissance vocale mais elles nous permettent aussi d'écrire n'importe quelle phrase dans le mode développeur. Les phrases du dictionnaires ne posent aucun problème mais les phrases que nous écrivons sont parfois dures à reconnaitre. La reconnaissance de lettre seule ou de certains numéros est par exemple quasi impossible ou très aléatoire.&lt;br /&gt;
Le système de vu est quant à lui plutôt facile à prendre en main et intuitif dans l'utilisation.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 20/10 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Premiere structure de donnée &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Nous avons opté pour une structure de donnée récursive. Une Cellule, contenant des Allées, qui contiennent des Baies, contenant des Rangées, contenant des Emplacements.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Structure_export_resized.png|750px|center]]&lt;br /&gt;
Nous avons conçu cette structure de donnée pour qu'elle génère, dans un premier temps &amp;quot;en dur&amp;quot;, une cellule contenant des emplacements automatiquement adressés à la manière de ceux présent dans l'entrepôt. Ces adresses sont de la forme &amp;quot;D61A514&amp;quot; traduisez &amp;quot; Cellule 6 Allée 1A Baie 5 Rang 1 Niveau 4&amp;quot;.&lt;br /&gt;
Cette structure prend on compte le sens de circulation dans l'entrepôt.&lt;br /&gt;
Lors de futures interactions avec une base de donnée, cette structure serait sujette à évolution par une modification des méthodes de génération/modification du statut des adresses en fonction de cette base de donnée. Mais celle-ci constitue essentiellement une base pour appréhender plus pratiquement les problématiques de recherches de l'emplacement le plus proche.&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Prise en main de l'interface &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Nous avons déjà abordé les layouts java en TP donc il a été assez facile de commencer à faire des interfaces graphiques simples. Nous avons construit une interface graphique simple pour de faire une démonstration du programme aux tuteurs entreprise afin qu'ils comprennent bien le fonctionnement de notre algorithme.&lt;br /&gt;
L'interface graphique finale du programme sera très sobre afin de ne pas donner trop gêner le magasinier dans sa tâche.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 27/10 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Chemin optimal : Parcours intelligent Vs Sélection intelligente &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Un premier algorithme de recherche de l'emplacement le plus proche a été développé, celui-ci ne prend en compte qu'un seul scénario. &lt;br /&gt;
Celui de la position de départ (quai de déchargement où reviendra constamment le magasinier aprés chaque livraison) correspondante à la première allée de l'entrepôt, et en prenant en compte le sens de circulation. &lt;br /&gt;
A partir de ce moment, nous avons dégager deux grandes manières d'appréhender le problème.&lt;br /&gt;
&lt;br /&gt;
* Un parcours intelligent de la structure de donnée. C'est à dire parcourir les emplacements les plus proches, et choisir le premier emplacement libre. Une solution complexe à réaliser sur le plan algorithmique. En tenant compte du sens de circulation, il apparait que l'emplacement libre &amp;quot;leplusproche&amp;quot; (à vol d'oiseau) trouvé le plus tôt, ne correspondrait pas forcément à l'emplacement le plus proche compte tenu du chemin emprunté par un magasinier. Et c'est plutôt l'intérêt de cette algorithme.(Sauf dans l'unique cas où l'emplacement libre se trouve directement dans l'allée faisant face à la position de départ du magasinier, et le sens de circulation lui permet directement de se rendre à l'emplacement sans détour).&lt;br /&gt;
&lt;br /&gt;
* Une sélection intelligente parmi les emplacements libres. Leurs adresses renseignent à quelles allées, les emplacements libres appartiennent, donc renseignent sur le sens de circulation. A partir de la position de départ du magasinier et de l'ensemble des emplacements libres, on peut calculer la distance nécessaire à celui-ci pour les atteindre. Pour ainsi choisir l'adresse pour laquelle la distance est minimale.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 3/11 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Chemin optimal : sélection intelligente des adresses &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Nous avons écrit une premiere méthode de détermination. &lt;br /&gt;
On choisit l'emplacement, parmi tous ceux qui sont libres, pour lequel la distance de parcours est minimale entre le départ et celui-ci. &lt;br /&gt;
Ici l'unité de distance est la baie. La simplicité de l'algorithme réside dans le fait que le magasinier ne transporte qu'une seule caisse à la fois et repars toujours au même point de départ.&lt;br /&gt;
&lt;br /&gt;
Ci dessous un plan de l'entrepôt.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:schema_entrepot.png|750px|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Si on se place à l'entrée de l'Allée A :&lt;br /&gt;
&lt;br /&gt;
**le déplacement jusqu'à A4 (sens de circulation direct) est de : &lt;br /&gt;
&lt;br /&gt;
                        Y baies - (indice de la baie/2 +indice de la baie % 2) &lt;br /&gt;
&lt;br /&gt;
**le déplacement jusqu'à B1 (sens de circulation indirect) est de : &lt;br /&gt;
&lt;br /&gt;
                        Y baies + différence entre l'allée A et B donc X baies + indice de la baie/2 +indice de la baie % 2&lt;br /&gt;
**le déplacement jusqu'à C1 (sens de circulation direct) est de : &lt;br /&gt;
                      &lt;br /&gt;
                        Y baies - (indice de la baie/2 +indice de la baie % 2)+différence entre l'allée A et C donc 2*X baies.&lt;br /&gt;
&lt;br /&gt;
*Si on se place à l'entrée de l'Allée B :&lt;br /&gt;
**le déplacement jusqu'à B1 (sens de circulation indirect avec contournement) est de : &lt;br /&gt;
                        &lt;br /&gt;
                        2*X baies + Y baies + 2*X baies + (indice de la baie/2 +indice de la baie % 2)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On peut généraliser l'ensemble de ces situations de déplacement avec l'algorithme suivant :&lt;br /&gt;
&lt;br /&gt;
Pseudo code&lt;br /&gt;
&lt;br /&gt;
  Leplusproche( Allee depart )&lt;br /&gt;
    distance_la_plus_petite = valeurMAX&lt;br /&gt;
      le_plus_proche=&amp;quot;&amp;quot;&lt;br /&gt;
         Pour chaque Allee de Cellule&lt;br /&gt;
           sens=Allee.sens&lt;br /&gt;
           Pour chaque Baie de Allee&lt;br /&gt;
             Pour chaque Rang de Allee&lt;br /&gt;
 	       Pour chaque Emplacement de Rang&lt;br /&gt;
                Si Emplacement estlibre &lt;br /&gt;
                &lt;br /&gt;
                indice_baie = selection_indice_baie(Emplacement.adresse)&lt;br /&gt;
   		 allee_cible = selection_indice_allee(Emplacement.adresse)  &lt;br /&gt;
   		 difference_allee = valeur_absolue(depart -cible) &lt;br /&gt;
                    Si difference_allee==0 et sens.estindirect&lt;br /&gt;
                      //sens indirect +contournement&lt;br /&gt;
                      distance_actuelle=(indice_baie/2)+indice_baie%2+(2*(difference_allee))+4*X+Y			&lt;br /&gt;
                    Sinon	&lt;br /&gt;
                        Si sens estdirect&lt;br /&gt;
                          //sens direct &lt;br /&gt;
                          distance_actuelle=(Y-((indice_baie/2)+indice_baie%2))+2*difference_allee&lt;br /&gt;
                        Sinon&lt;br /&gt;
                          //sens indirect mais pas de contournement&lt;br /&gt;
                          distance_actuelle=((indice_baie/2)+indice_baie%2)+2*difference_allee+Y&lt;br /&gt;
                        Finsi	&lt;br /&gt;
                    Finsi	&lt;br /&gt;
                    Si distance_actuelle &amp;lt; distance_la_plus_petite&lt;br /&gt;
                      le_plus_proche=Emplacement.adresse&lt;br /&gt;
                      distance_la_plus_petite=distance_actuelle&lt;br /&gt;
                    Finsi&lt;br /&gt;
                Finsi  &lt;br /&gt;
            Finpour&lt;br /&gt;
          Finpour&lt;br /&gt;
        Finpour&lt;br /&gt;
      Finpour&lt;br /&gt;
    retourne le_plus_proche&lt;br /&gt;
  Finleplusproche&lt;br /&gt;
&lt;br /&gt;
Cet algorithme nous donne satisfaction (dans le cadre de la V1)&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 10/11 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Programmation et gestion des interactions &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Aprés quelques difficultés vis à vis de la gestion des menus vocaux sur les lunettes qui ne fonctionnent pas de la même manière que les menus classiques sous android, nous avons étoffé les interactions possible avec l'application des google glass. (Nous souhaitions inflater un deuxième menu pour interagir de manière plus contextuelle, il fallait le faire dans la méthode onCreatePanelMenu dont l'appel serait forcé avec getWindow().invalidatePanelMenu(WindowUtils.FEATURE_VOICE_COMMANDS) plutôt que dans onPrepareOptionsMenu forcée par invalidateOptionMenu()...) &lt;br /&gt;
&lt;br /&gt;
schéma d'utilisation...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Proposition projet affichage télévision &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Tele_concept.png|200px|thumb|right]]&lt;br /&gt;
&lt;br /&gt;
Notre tuteur nous a contacté pour nous proposer d'étudier un second projet en parallèle au projet initial. Celui consistant à gérer l'affichage d'information personnalisé d'un magasinier passant à proximité d'un écran de télévision. Nous devons effectuer un Proof Of Concept (POC) et réfléchir à ce sujet.&lt;br /&gt;
L'utilisation du BLE est donc de nouveau d'actualité, car je rappel que sont utilité était discutable dans une réalité métier du projet initial. La question étant plus de savoir comment gérer le système du coté du téléviseur.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Le concept de base étant de :&lt;br /&gt;
* Fournir une beacon aux magasiniers de l'entrepôt.&lt;br /&gt;
* Installer une télévision sur un centre de vie dans l'entrepôt avec une beacon&lt;br /&gt;
* Pousser du contenu personnalisé au magasinier qui se présente devant la tv dans son centre de vie&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 17/11 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Brainstorming à Polytech &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Dans la cadre du POC sur l'affichage personnalisé sur une télévision, nous avons profité d'un exercice de management pour faire participer la classe à notre projet. Grâce à cette intervention nous avons pu confirmer nos idées sur les technologies à utiliser. Mais nous avons surtout eu une multitude de propositions sur les données à afficher sur l'écran.&lt;br /&gt;
&lt;br /&gt;
Pour plus détails, le compte rendu est disponible à ce lien:&lt;br /&gt;
&lt;br /&gt;
'''Compte Rendu Brainstorming 17/11/2014 :''' [[Fichier:Compte_Rendu_POC_17_11.pdf]]&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Entretien avec notre tuteur entreprise &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Durant cet entretien, nous avons livré la première version de l'application et nous avons discuté de la suite du projet.&lt;br /&gt;
Ci joint le Compte Rendu.&lt;br /&gt;
&lt;br /&gt;
'''Compte Rendu  19/11/2014 :''' [[Fichier:Compte_Rendu_19_11.pdf]]&lt;br /&gt;
&lt;br /&gt;
De cette réunion, les points suivants en sont sortis:&lt;br /&gt;
&lt;br /&gt;
*Une reconnaissance vocale en langue française sur les lunettes serait plus intéressante pour les employés (une piste serait d’utiliser l’outil pocketsphinx-  android).&lt;br /&gt;
*Par rapport à l'IHM, il faudrait mettre l’affichage au premier plan sur les Google Glass pour une démo auprés des parties prenantes du projet.&lt;br /&gt;
*Choisir une architecture pour l’affichage d’information personnalisées.&lt;br /&gt;
**La télévision connectée à une raspberry qui communiquerait via un dongle BLE avec le beacon d’un magasinier, ce qui permettrait l’identification de celui-ci prés de la Télévision, et déclencherait un processus d’échange d’information. (Communication via le protocole Bluetooh, wifi entre les lunettes et la Raspberry  ou communication avec la Raspberry avec la Base de Donnée sur le réseau de l’entreprise)&lt;br /&gt;
**Une télévision connectée en continu à un site internet via un dongle HDMI.&lt;br /&gt;
**Une tablette android géante supportant le BLE, ou utilisant un dongle BLE.&lt;br /&gt;
* Réaliser le portage de l’application sur le prototype des lunettes ORA.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 24/11 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Reconnaissance vocale en Français &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Pocket Sphinx Android est une librairie permettant de faire de la reconnaissance vocale d'un langage donné sur un système android en offline.&lt;br /&gt;
Pour supporter une langue, elle nécessite: &lt;br /&gt;
*un modèle acoustique (ensemble d'informations pour le traitement sonore)&lt;br /&gt;
*un dictionnaire associant les mots et leur phonèmes&lt;br /&gt;
*une grammaire, c'est un fichier définissant comment seraient articulé les mots à reconnaître et limitant les possibilités de langage).&lt;br /&gt;
&lt;br /&gt;
La grammaire étant un automate. Voici un exemple de la grammaire menu.gram pour la reconnaissance de la porte de déchargement.&lt;br /&gt;
[[Fichier:Arborescence_pocket_sphinx.png|200px|thumb|right|PocketSphinx dans un projet Android]]&lt;br /&gt;
&lt;br /&gt;
  #JSGF V1.0;&lt;br /&gt;
  grammar menu;&lt;br /&gt;
  &amp;lt;porte&amp;gt; = porte a |&lt;br /&gt;
            porte b |&lt;br /&gt;
            porte c |&lt;br /&gt;
            porte d |&lt;br /&gt;
            porte e |&lt;br /&gt;
            porte f |&lt;br /&gt;
            porte g |&lt;br /&gt;
            porte h |&lt;br /&gt;
            porte i |&lt;br /&gt;
            porte j ;&lt;br /&gt;
  public &amp;lt;porte&amp;gt; = &amp;lt;porte&amp;gt;+;&lt;br /&gt;
&lt;br /&gt;
Un extrait du dictionnaire french_letter.dic associé avec les phonemes&lt;br /&gt;
&lt;br /&gt;
  a aa &amp;lt;-- juste la lettre a et son phoneme &lt;br /&gt;
  autre au tt rr&lt;br /&gt;
  autre(2) au tt rr ee &lt;br /&gt;
  b bb &lt;br /&gt;
  c ss &lt;br /&gt;
  d dd ei d(2) dd ait &lt;br /&gt;
  e eu e(2) eu zz &lt;br /&gt;
  f ai ff &lt;br /&gt;
  g jj ei g(2) gg ai &lt;br /&gt;
  h aa ch  &lt;br /&gt;
  i ii &lt;br /&gt;
  j jj yy j(2) jj ii&lt;br /&gt;
  porte pp oo rr tt&lt;br /&gt;
  porte(2) pp oo rr tt ee&lt;br /&gt;
  portes(2) pp oo rr tt ee&lt;br /&gt;
  portes(3) pp oo rr tt ee zz&lt;br /&gt;
  portes(4) pp oo rr tt zz&lt;br /&gt;
&lt;br /&gt;
Le modèle acoustique que nous avons téléchargé étant inclu dans lium_french_f0&lt;br /&gt;
&lt;br /&gt;
Nous avons testé la reconnaissance vocale sur un téléphone android, les mots sont, dans la majorité des cas, bien reconnus.&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Comparaison architectures projet TV &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Au niveau de l’architecture nous avons établi plusieurs propositions après la réunion avec notre tuteur:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour une Raspberry Pi avec un dongle BLE :&lt;br /&gt;
* Installation OS Linux sur la Raspberry&lt;br /&gt;
* Librairie BlueZ pour l’utilisation du BLE (tests rapides effectués sur Linux avec le Dongle)&lt;br /&gt;
* Interface graphique avec une bibliothèque comme Qt (ou encore SDL…)&lt;br /&gt;
* Prix : Rpi = 26€ (chez RadioSpare), Dongle = 10€, TV = à partir de 358€ pour 117cm, + Connectique vidéo. Total = 394€&lt;br /&gt;
&lt;br /&gt;
Pour un écran ViewSonic VSD231 :&lt;br /&gt;
* Possède une API Bluetooth classic + API BLE&lt;br /&gt;
* Interface graphique Android (View, Layout...)&lt;br /&gt;
* Prix : écran ViewSonic VSD231 = 558 € pour 58 cm (chez ViewSonic).&lt;br /&gt;
&lt;br /&gt;
Récupération d’informations :&lt;br /&gt;
* Si données sur les lunettes : Bluetooth ou Wifi.&lt;br /&gt;
* Si données sur serveur : Ethernet ou Wifi.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Vu les propositions possibles nous pensons que la première proposition permettra une meilleure souplesse dans le développement mais serait un peu plus compliquée. Mais nous la trouvons aussi plus intéressante à faire de plus elle est moins coûteuse et permet d'utiliser un écran plus grand. Le développement sur tablette serait sûrement plus rapide à faire en contrepartie.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 01/12 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Conférence GlassCamp à l'Imaginarium &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
GlassCamp est une association qui essaye de répandre l'utilisation de toute les Smart Glass en général. Elle propose de multiples conférences dans lesquelles ils essayent de montrer au public l’intérêt de développer sur ces appareils. Dans le cadre de notre projet, notre tuteur nous a proposé de participer à cette présentation afin de mieux s’approprier le sujet. La conférence a eu lieu le 4 décembre à l'Imaginarium: une grande partie était plutôt tournée vers la présentation mais nous avons apprîs plusieurs choses intéressantes qui sont décrites dans le compte rendu.&lt;br /&gt;
&lt;br /&gt;
'''Compte Rendu Conférence 04/12/2014 :''' [[Fichier:Compte_Rendu_Conf_GlassCamp.pdf]]&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 08/12 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 05/01 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Entretien avec notre tuteur &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
'''Compte Rendu de l'entretien du 06/01/2015 :''' [[Fichier:Compte_Rendu_4.pdf]]&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 12/01 &amp;lt;/font&amp;gt;==&lt;/div&gt;</summary>
		<author><name>Jgondry</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=P22_Google_Glass_en_logistique&amp;diff=15708</id>
		<title>P22 Google Glass en logistique</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=P22_Google_Glass_en_logistique&amp;diff=15708"/>
				<updated>2015-01-27T16:34:21Z</updated>
		
		<summary type="html">&lt;p&gt;Jgondry : /*  Entretien avec notre tuteur  */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Introduction =&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Description du sujet &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
Notre projet vise à l’optimisation du stockage et de l’adressage des palettes dans un entrepôt. En effet, lors du déchargement d’un camion, chercher un emplacement libre pour les palettes dans un entrepôt occupant une grande superficie fait perdre du temps et donc de la productivité dans le stockage. Sachant qu’un cariste perd un temps non négligeable à la recherche d’emplacement disponible, optimiser ce temps de recherche permettrait de gagner du temps sur cette opération.&lt;br /&gt;
Développer un prototype permettrait de rendre compte des moyens existants qui pourrait être mis en place dans une solution métier.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Analyse du sujet &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Google_glass.png|200px|thumb|right|Paire de Google Glass]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Optinvent_ora.png|200px|thumb|right|Paire de ORA d'Optivent]]&lt;br /&gt;
&lt;br /&gt;
Notre projet consiste à fluidifier le déchargement en indiquant au cariste l’emplacement libre le plus proche. Pour ne pas gêner le travail des employés, un dispositif main-libre comme une Google Glass semble adapté. Ce projet soulève plusieurs problématiques : développer une interface homme-machine apportant une information pertinente pour l’utilisateur sans pour autant être perturbante. &lt;br /&gt;
&lt;br /&gt;
L’idée serait de réaliser dans les grandes lignes un système similaire à ce scénario d’utilisation :&lt;br /&gt;
http://n.mynews.ly/!lB.Bs4fw&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Moyen d’affichage de l’Informations pertinentes'''&lt;br /&gt;
&lt;br /&gt;
Les Google Glass ne sont pas les seules smart glasses sur le marché. Il nous faudra choisir les appareils les plus adaptés. L’information pertinente pourrait être une direction à suivre dans l’entrepôt ou simplement un numéro d’emplacement (adressage intuitif de l’entrepôt). &lt;br /&gt;
&lt;br /&gt;
'''Géolocalisation'''&lt;br /&gt;
&lt;br /&gt;
Dans le cas d’une direction à suivre se pose le problème de la géolocalisation indoor dont l’utilité et la faisabilité seront discutés au fil des réunions avec l’entreprise. &lt;br /&gt;
&lt;br /&gt;
'''Adressage / flashage'''&lt;br /&gt;
&lt;br /&gt;
En ce qui concerne l’adressage des palettes en entrepôt, la solution existante repose sur un flashage des codes barres associés à l’emplacement venant d’être occupé. Une étude de faisabilité/utilité sera aussi faite sur une solution de remplacement grâce aux possibilités qu’offrent les smart glasses.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Cahier des charges &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
En partant de l'analyse du sujet et des discussion avec notre tuteur, nous avons définie un cahier des charges plus précis des tâches à accomplir:&lt;br /&gt;
&lt;br /&gt;
* '''Développer un système embarqué sur une paire de lunette Smart Glass'''&lt;br /&gt;
** Comparer les différentes offres en matière de Smart Glass notamment Google Glass &amp;amp; ORA de Optinvent&lt;br /&gt;
** Concevoir une interface homme-machine non perturbante pour l'utilisateur.&lt;br /&gt;
* '''Etudier la nécessité d'utiliser une géolocalisation en entrepôt et l'implémenter si besoin'''&lt;br /&gt;
** Via RSSI (Wifi, Bluetooh Low Energy ...)&lt;br /&gt;
** Via traitement d'images (reconnaissance de la signalétique en entrepôt)&lt;br /&gt;
* '''Etudier les possibilités d'optimisation du système d'adressage des palettes'''&lt;br /&gt;
** Implémenter la reconnaissance de code barre&lt;br /&gt;
** La tester en réalité métier (utilité ajoutée, habitude des magasiniers, vitesse de traitement...)&lt;br /&gt;
&lt;br /&gt;
Le cahier des charges est encore en cours de construction&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Matériel utilisé &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; SmartGlass &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Lors de la réunion nous avons discuté des technologies à utiliser dans le projet, et plus particulièrement des différentes SmartGlass. En effet, il existe une multitude de sociétés qui développe ce genre de lunettes. Nous commencerons à utiliser les Google Glass étant donné que notre tuteur en a déjà commandé puis nous développerons sur les lunettes ORA de Optivent qui seront livrées fin octobre. Nous devrons donc faire un comparatif entre ces deux SmartGlass puis étudier les autres appareils disponibles sur le marché.&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Localisation &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
L'utilisation de la géolocalisation dans le projet est à débattre. Mais des tests seront probablement mis en place. L'entreprise possède quelque iBeacons BLE Estimote dans ses bureaux d'innovations que nous pourrons emprunter.&lt;br /&gt;
Dans le cas où leur gain d'informations serait utile il nous faudra comparer les modèles disponibles. Choisir un nombre de module et des emplacements stratégiques dans l'entrepôt afin d'avoir une localisation assez précise pour l'application.&lt;br /&gt;
&lt;br /&gt;
L'utilisation d'autres technologies de géolocalisation a été discuté comme le Wifi ou le XBee mais le BLE semblait le plus adapté dans le cadre de notre projet.&lt;br /&gt;
&lt;br /&gt;
= Déroulement du projet =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 22/09 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Réunion avec le tuteur entreprise dans l’entrepôt &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Nous avons observé en situation le problème et discuté des besoins, des moyens déjà utilisables. Il nous faudra prendre en compte plusieurs paramètres dans notre réflexion tels que le système de stockage et d'adressages des palettes, sens de circulation des caristes, superficie des zones à desservir, durée de livraison.&lt;br /&gt;
Nous avons suggéré des étapes de validation intermédiaire du système par les futurs utilisateurs et pour cela nous rencontrerons le chef d'équipe des magasiniers lorsque qu'une version sera assez développée.&lt;br /&gt;
&lt;br /&gt;
Nous avons défini avec le tuteur les premières deadlines du projet, voici la timeline récapitulative:&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Timeline_1.jpg||center|1000px]]&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Compte Rendu &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Nous avons rédigé un compte rendu de la première réunion détaillant les spécifications des versions des livrables, des schémas et les sujets abordés lors de la rencontre :&lt;br /&gt;
&lt;br /&gt;
'''Compte Rendu réunion du 25/09/2014 :''' [[Fichier:Compte_Rendu_25_09.pdf]]&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 29/09 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Découverte des Google Glass &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
*Prise en main des Google Glass. &lt;br /&gt;
*Installation d'applications (.apk) grand public. Nous avons utilisé l'outil Android Debug Bridge(adb). Se mettre à la place d'un utilisateur.&lt;br /&gt;
*L'une des deux lunettes qui serait retenue imposera forcément le développement d'une application android (ou d'une technologie trés proche d'android, pour les Google Glass, se basant sur le Glass Development Kit qui est un add-on au SDK classique d'android). Nous avons donc téléchargé les packages nécessaires pour commencer à développer. &lt;br /&gt;
** Nous commençons à nous former sur les technologies android :développement d'applications minimaliste.&lt;br /&gt;
** Installation de nos premières apk minimalistes pour Android.&lt;br /&gt;
** Installation d'une application minimaliste sur la Google Glass.&lt;br /&gt;
&lt;br /&gt;
Voici un comparatif réalisé entre les lunettes ORA et les Google Glass.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Différences Google Glass/ORA &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!   !! Google Glass !! ORA &lt;br /&gt;
|-&lt;br /&gt;
|Connectique&lt;br /&gt;
|Compatible BLE (à partir de la XE 16 KitKat Update), Wifi &lt;br /&gt;
|Compatible BLE, Wifi&lt;br /&gt;
|-&lt;br /&gt;
|Autonomie en utilisation normale&lt;br /&gt;
|de 1h à 2h &lt;br /&gt;
|de 4h à 8h&lt;br /&gt;
|-&lt;br /&gt;
|Son&lt;br /&gt;
|Conductivité Cranienne&lt;br /&gt;
|Prise jack&lt;br /&gt;
|-&lt;br /&gt;
|Interface&lt;br /&gt;
|Ecran occupant une faible superficie dans le champ de vision &lt;br /&gt;
|Ecran 2 positions (moyennes et basses), plus étendu permettant une réalité augmentée &lt;br /&gt;
|-&lt;br /&gt;
|Système d'exploitation&lt;br /&gt;
|Android 4.4&lt;br /&gt;
|Android 4.2.2&lt;br /&gt;
|-&lt;br /&gt;
|Calculs&lt;br /&gt;
|CPU &amp;amp; GPU&lt;br /&gt;
|CPU &amp;amp; GPU&lt;br /&gt;
|-&lt;br /&gt;
|Prix&lt;br /&gt;
|1500$ &lt;br /&gt;
|949$&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 06/10 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Deuxième rendez-vous avec le tuteur entreprise &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Nous avons fait part de notre avancée en matière de prise en main et des problèmes rencontrés en matière de développement.&lt;br /&gt;
Les lunettes ORA sont commandées elles arrivent d'ici la fin octobre.&lt;br /&gt;
&lt;br /&gt;
La première version V1 de l'application pour Google Glass à livrer pour la mi-novembre est fixée.&lt;br /&gt;
&lt;br /&gt;
En partant d'une position connue (en dur dans l'application) dans l'entrepôt, elle indiquera à un utilisateur les emplacements libres les plus proches.&lt;br /&gt;
&lt;br /&gt;
L'état d'occupation des emplacements sera consulté et stocké dans l'application. Il n'y aura donc pas de gestion des conflits. Le sens de circulation dans l'entrepôt sera pris en compte.&lt;br /&gt;
Une communication avec la base de donnée de l'entrepôt n'est pour le moment pas d'actualité, cela nécessiterait des développements en amont.&lt;br /&gt;
La géolocalisation n'est pas au goût du jour non plus. L'adressage des emplacements dans l'entrepôt est intuitif, il est donc facile pour un magasinier de &lt;br /&gt;
se rendre à un emplacement en connaissant l'adresse.&lt;br /&gt;
&lt;br /&gt;
Pour l'IHM, nous nous inspirerons des applications pour Google Glass (les Glasswares) de type GPS.&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Premiers programmes sur Google Glass &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Pour nous familiariser avec la programmation sur ce genre d'appareil nous avons tous deux décidé de suivre en premier le tutoriel Android d'un site spécialisé. Cela afin de mieux comprendre le système Android, avec les concepts d'activités, de view etc.&lt;br /&gt;
Dans un deuxième temps nous avons choisi de suivre plusieurs tutoriels nous expliquant la prise en main basique des lunettes afin de saisir les particularités de leur programmation.&lt;br /&gt;
&lt;br /&gt;
Le plus dur étant finalement de comprendre les liens entre tous les fichiers du projets, les problèmes de drivers et d'upload simple que nous avons rencontrés et l’exécution du programme sur les lunettes. Des choses que nous arrivons maintenant à maitriser mais qui était floues à l'origine.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 13/10 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Programmation et gestion des interactions &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Durant cette semaine nous avons commencé a vraiment toucher aux fonctionnalités des Glass. Pour rester en main libre, nous avons fait des recherches et commencé à programmer de la reconnaissance vocale. Nous avons ainsi crée un système de navigation basique par commande vocale dans différents menus. Pour un accès rapide à l'application et toujours dans la même optique nous avons réussi à inclure le lancement de notre logiciel à partir du &amp;quot;Ok Glass&amp;quot; menu qui est le menu de lancement d'application par commande vocale des Google Glass. Voici un aperçu du résultat:&lt;br /&gt;
[[Fichier:V0_menu.png|1000px|center]]&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Analyse et évaluation du rendu &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Le début de la prise en main des fonctionnalités des Google Glass n'a pas été facile étant donné que la plupart des fonctionnalités sont propres à ce genre d'appareil. De plus elles nécessitent des techniques spéciales de programmation qui ne sont pas toujours très utilisées donc il est parfois difficile de trouver des exemples sur internet.&lt;br /&gt;
Néanmoins après l'implémentation de ces fonctionnalités nous avons pu rencontrer quelques difficultés de reconnaissance. En effet, les Google Glass possèdent un dictionnaire de mots/phrases pour la reconnaissance vocale mais elles nous permettent aussi d'écrire n'importe quelle phrase dans le mode développeur. Les phrases du dictionnaires ne posent aucun problème mais les phrases que nous écrivons sont parfois dures à reconnaitre. La reconnaissance de lettre seule ou de certains numéros est par exemple quasi impossible ou très aléatoire.&lt;br /&gt;
Le système de vu est quant à lui plutôt facile à prendre en main et intuitif dans l'utilisation.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 20/10 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Premiere structure de donnée &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Nous avons opté pour une structure de donnée récursive. Une Cellule, contenant des Allées, qui contiennent des Baies, contenant des Rangées, contenant des Emplacements.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Structure_export_resized.png|750px|center]]&lt;br /&gt;
Nous avons conçu cette structure de donnée pour qu'elle génère, dans un premier temps &amp;quot;en dur&amp;quot;, une cellule contenant des emplacements automatiquement adressés à la manière de ceux présent dans l'entrepôt. Ces adresses sont de la forme &amp;quot;D61A514&amp;quot; traduisez &amp;quot; Cellule 6 Allée 1A Baie 5 Rang 1 Niveau 4&amp;quot;.&lt;br /&gt;
Cette structure prend on compte le sens de circulation dans l'entrepôt.&lt;br /&gt;
Lors de futures interactions avec une base de donnée, cette structure serait sujette à évolution par une modification des méthodes de génération/modification du statut des adresses en fonction de cette base de donnée. Mais celle-ci constitue essentiellement une base pour appréhender plus pratiquement les problématiques de recherches de l'emplacement le plus proche.&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Prise en main de l'interface &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Nous avons déjà abordé les layouts java en TP donc il a été assez facile de commencer à faire des interfaces graphiques simples. Nous avons construit une interface graphique simple pour de faire une démonstration du programme aux tuteurs entreprise afin qu'ils comprennent bien le fonctionnement de notre algorithme.&lt;br /&gt;
L'interface graphique finale du programme sera très sobre afin de ne pas donner trop gêner le magasinier dans sa tâche.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 27/10 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Chemin optimal : Parcours intelligent Vs Sélection intelligente &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Un premier algorithme de recherche de l'emplacement le plus proche a été développé, celui-ci ne prend en compte qu'un seul scénario. &lt;br /&gt;
Celui de la position de départ (quai de déchargement où reviendra constamment le magasinier aprés chaque livraison) correspondante à la première allée de l'entrepôt, et en prenant en compte le sens de circulation. &lt;br /&gt;
A partir de ce moment, nous avons dégager deux grandes manières d'appréhender le problème.&lt;br /&gt;
&lt;br /&gt;
* Un parcours intelligent de la structure de donnée. C'est à dire parcourir les emplacements les plus proches, et choisir le premier emplacement libre. Une solution complexe à réaliser sur le plan algorithmique. En tenant compte du sens de circulation, il apparait que l'emplacement libre &amp;quot;leplusproche&amp;quot; (à vol d'oiseau) trouvé le plus tôt, ne correspondrait pas forcément à l'emplacement le plus proche compte tenu du chemin emprunté par un magasinier. Et c'est plutôt l'intérêt de cette algorithme.(Sauf dans l'unique cas où l'emplacement libre se trouve directement dans l'allée faisant face à la position de départ du magasinier, et le sens de circulation lui permet directement de se rendre à l'emplacement sans détour).&lt;br /&gt;
&lt;br /&gt;
* Une sélection intelligente parmi les emplacements libres. Leurs adresses renseignent à quelles allées, les emplacements libres appartiennent, donc renseignent sur le sens de circulation. A partir de la position de départ du magasinier et de l'ensemble des emplacements libres, on peut calculer la distance nécessaire à celui-ci pour les atteindre. Pour ainsi choisir l'adresse pour laquelle la distance est minimale.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 3/11 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Chemin optimal : sélection intelligente des adresses &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Nous avons écrit une premiere méthode de détermination. &lt;br /&gt;
On choisit l'emplacement, parmi tous ceux qui sont libres, pour lequel la distance de parcours est minimale entre le départ et celui-ci. &lt;br /&gt;
Ici l'unité de distance est la baie. La simplicité de l'algorithme réside dans le fait que le magasinier ne transporte qu'une seule caisse à la fois et repars toujours au même point de départ.&lt;br /&gt;
&lt;br /&gt;
Ci dessous un plan de l'entrepôt.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:schema_entrepot.png|750px|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Si on se place à l'entrée de l'Allée A :&lt;br /&gt;
&lt;br /&gt;
**le déplacement jusqu'à A4 (sens de circulation direct) est de : &lt;br /&gt;
&lt;br /&gt;
                        Y baies - (indice de la baie/2 +indice de la baie % 2) &lt;br /&gt;
&lt;br /&gt;
**le déplacement jusqu'à B1 (sens de circulation indirect) est de : &lt;br /&gt;
&lt;br /&gt;
                        Y baies + différence entre l'allée A et B donc X baies + indice de la baie/2 +indice de la baie % 2&lt;br /&gt;
**le déplacement jusqu'à C1 (sens de circulation direct) est de : &lt;br /&gt;
                      &lt;br /&gt;
                        Y baies - (indice de la baie/2 +indice de la baie % 2)+différence entre l'allée A et C donc 2*X baies.&lt;br /&gt;
&lt;br /&gt;
*Si on se place à l'entrée de l'Allée B :&lt;br /&gt;
**le déplacement jusqu'à B1 (sens de circulation indirect avec contournement) est de : &lt;br /&gt;
                        &lt;br /&gt;
                        2*X baies + Y baies + 2*X baies + (indice de la baie/2 +indice de la baie % 2)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On peut généraliser l'ensemble de ces situations de déplacement avec l'algorithme suivant :&lt;br /&gt;
&lt;br /&gt;
Pseudo code&lt;br /&gt;
&lt;br /&gt;
  Leplusproche( Allee depart )&lt;br /&gt;
    distance_la_plus_petite = valeurMAX&lt;br /&gt;
      le_plus_proche=&amp;quot;&amp;quot;&lt;br /&gt;
         Pour chaque Allee de Cellule&lt;br /&gt;
           sens=Allee.sens&lt;br /&gt;
           Pour chaque Baie de Allee&lt;br /&gt;
             Pour chaque Rang de Allee&lt;br /&gt;
 	       Pour chaque Emplacement de Rang&lt;br /&gt;
                Si Emplacement estlibre &lt;br /&gt;
                &lt;br /&gt;
                indice_baie = selection_indice_baie(Emplacement.adresse)&lt;br /&gt;
   		 allee_cible = selection_indice_allee(Emplacement.adresse)  &lt;br /&gt;
   		 difference_allee = valeur_absolue(depart -cible) &lt;br /&gt;
                    Si difference_allee==0 et sens.estindirect&lt;br /&gt;
                      //sens indirect +contournement&lt;br /&gt;
                      distance_actuelle=(indice_baie/2)+indice_baie%2+(2*(difference_allee))+4*X+Y			&lt;br /&gt;
                    Sinon	&lt;br /&gt;
                        Si sens estdirect&lt;br /&gt;
                          //sens direct &lt;br /&gt;
                          distance_actuelle=(Y-((indice_baie/2)+indice_baie%2))+2*difference_allee&lt;br /&gt;
                        Sinon&lt;br /&gt;
                          //sens indirect mais pas de contournement&lt;br /&gt;
                          distance_actuelle=((indice_baie/2)+indice_baie%2)+2*difference_allee+Y&lt;br /&gt;
                        Finsi	&lt;br /&gt;
                    Finsi	&lt;br /&gt;
                    Si distance_actuelle &amp;lt; distance_la_plus_petite&lt;br /&gt;
                      le_plus_proche=Emplacement.adresse&lt;br /&gt;
                      distance_la_plus_petite=distance_actuelle&lt;br /&gt;
                    Finsi&lt;br /&gt;
                Finsi  &lt;br /&gt;
            Finpour&lt;br /&gt;
          Finpour&lt;br /&gt;
        Finpour&lt;br /&gt;
      Finpour&lt;br /&gt;
    retourne le_plus_proche&lt;br /&gt;
  Finleplusproche&lt;br /&gt;
&lt;br /&gt;
Cet algorithme nous donne satisfaction (dans le cadre de la V1)&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 10/11 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Programmation et gestion des interactions &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Aprés quelques difficultés vis à vis de la gestion des menus vocaux sur les lunettes qui ne fonctionnent pas de la même manière que les menus classiques sous android, nous avons étoffé les interactions possible avec l'application des google glass. (Nous souhaitions inflater un deuxième menu pour interagir de manière plus contextuelle, il fallait le faire dans la méthode onCreatePanelMenu dont l'appel serait forcé avec getWindow().invalidatePanelMenu(WindowUtils.FEATURE_VOICE_COMMANDS) plutôt que dans onPrepareOptionsMenu forcée par invalidateOptionMenu()...) &lt;br /&gt;
&lt;br /&gt;
schéma d'utilisation...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Proposition projet affichage télévision &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Tele_concept.png|200px|thumb|right]]&lt;br /&gt;
&lt;br /&gt;
Notre tuteur nous a contacté pour nous proposer d'étudier un second projet en parallèle au projet initial. Celui consistant à gérer l'affichage d'information personnalisé d'un magasinier passant à proximité d'un écran de télévision. Nous devons effectuer un Proof Of Concept (POC) et réfléchir à ce sujet.&lt;br /&gt;
L'utilisation du BLE est donc de nouveau d'actualité, car je rappel que sont utilité était discutable dans une réalité métier du projet initial. La question étant plus de savoir comment gérer le système du coté du téléviseur.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Le concept de base étant de :&lt;br /&gt;
* Fournir une beacon aux magasiniers de l'entrepôt.&lt;br /&gt;
* Installer une télévision sur un centre de vie dans l'entrepôt avec une beacon&lt;br /&gt;
* Pousser du contenu personnalisé au magasinier qui se présente devant la tv dans son centre de vie&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 17/11 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Brainstorming à Polytech &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Dans la cadre du POC sur l'affichage personnalisé sur une télévision, nous avons profité d'un exercice de management pour faire participer la classe à notre projet. Grâce à cette intervention nous avons pu confirmer nos idées sur les technologies à utiliser. Mais nous avons surtout eu une multitude de propositions sur les données à afficher sur l'écran.&lt;br /&gt;
&lt;br /&gt;
Pour plus détails, le compte rendu est disponible à ce lien:&lt;br /&gt;
&lt;br /&gt;
'''Compte Rendu Brainstorming 17/11/2014 :''' [[Fichier:Compte_Rendu_POC_17_11.pdf]]&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Entretien avec notre tuteur entreprise &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Durant cet entretien, nous avons livré la première version de l'application et nous avons discuté de la suite du projet.&lt;br /&gt;
Ci joint le Compte Rendu.&lt;br /&gt;
&lt;br /&gt;
'''Compte Rendu  19/11/2014 :''' [[Fichier:Compte_Rendu_19_11.pdf]]&lt;br /&gt;
&lt;br /&gt;
De cette réunion, les points suivants en sont sortis:&lt;br /&gt;
&lt;br /&gt;
*Une reconnaissance vocale en langue française sur les lunettes serait plus intéressante pour les employés (une piste serait d’utiliser l’outil pocketsphinx-  android).&lt;br /&gt;
*Par rapport à l'IHM, il faudrait mettre l’affichage au premier plan sur les Google Glass pour une démo auprés des parties prenantes du projet.&lt;br /&gt;
*Choisir une architecture pour l’affichage d’information personnalisées.&lt;br /&gt;
**La télévision connectée à une raspberry qui communiquerait via un dongle BLE avec le beacon d’un magasinier, ce qui permettrait l’identification de celui-ci prés de la Télévision, et déclencherait un processus d’échange d’information. (Communication via le protocole Bluetooh, wifi entre les lunettes et la Raspberry  ou communication avec la Raspberry avec la Base de Donnée sur le réseau de l’entreprise)&lt;br /&gt;
**Une télévision connectée en continu à un site internet via un dongle HDMI.&lt;br /&gt;
**Une tablette android géante supportant le BLE, ou utilisant un dongle BLE.&lt;br /&gt;
* Réaliser le portage de l’application sur le prototype des lunettes ORA.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 24/11 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Reconnaissance vocale en Français &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Pocket Sphinx Android est une librairie permettant de faire de la reconnaissance vocale d'un langage donné sur un système android en offline.&lt;br /&gt;
Pour supporter une langue, elle nécessite: &lt;br /&gt;
*un modèle acoustique (ensemble d'informations pour le traitement sonore)&lt;br /&gt;
*un dictionnaire associant les mots et leur phonèmes&lt;br /&gt;
*une grammaire, c'est un fichier définissant comment seraient articulé les mots à reconnaître et limitant les possibilités de langage).&lt;br /&gt;
&lt;br /&gt;
La grammaire étant un automate. Voici un exemple de la grammaire menu.gram pour la reconnaissance de la porte de déchargement.&lt;br /&gt;
[[Fichier:Arborescence_pocket_sphinx.png|200px|thumb|right|PocketSphinx dans un projet Android]]&lt;br /&gt;
&lt;br /&gt;
  #JSGF V1.0;&lt;br /&gt;
  grammar menu;&lt;br /&gt;
  &amp;lt;porte&amp;gt; = porte a |&lt;br /&gt;
            porte b |&lt;br /&gt;
            porte c |&lt;br /&gt;
            porte d |&lt;br /&gt;
            porte e |&lt;br /&gt;
            porte f |&lt;br /&gt;
            porte g |&lt;br /&gt;
            porte h |&lt;br /&gt;
            porte i |&lt;br /&gt;
            porte j ;&lt;br /&gt;
  public &amp;lt;porte&amp;gt; = &amp;lt;porte&amp;gt;+;&lt;br /&gt;
&lt;br /&gt;
Un extrait du dictionnaire french_letter.dic associé avec les phonemes&lt;br /&gt;
&lt;br /&gt;
  a aa &amp;lt;-- juste la lettre a et son phoneme &lt;br /&gt;
  autre au tt rr&lt;br /&gt;
  autre(2) au tt rr ee &lt;br /&gt;
  b bb &lt;br /&gt;
  c ss &lt;br /&gt;
  d dd ei d(2) dd ait &lt;br /&gt;
  e eu e(2) eu zz &lt;br /&gt;
  f ai ff &lt;br /&gt;
  g jj ei g(2) gg ai &lt;br /&gt;
  h aa ch  &lt;br /&gt;
  i ii &lt;br /&gt;
  j jj yy j(2) jj ii&lt;br /&gt;
  porte pp oo rr tt&lt;br /&gt;
  porte(2) pp oo rr tt ee&lt;br /&gt;
  portes(2) pp oo rr tt ee&lt;br /&gt;
  portes(3) pp oo rr tt ee zz&lt;br /&gt;
  portes(4) pp oo rr tt zz&lt;br /&gt;
&lt;br /&gt;
Le modèle acoustique que nous avons téléchargé étant inclu dans lium_french_f0&lt;br /&gt;
&lt;br /&gt;
Nous avons testé la reconnaissance vocale sur un téléphone android, les mots sont, dans la majorité des cas, bien reconnus.&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Comparaison architectures projet TV &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Au niveau de l’architecture nous avons établi plusieurs propositions après la réunion avec notre tuteur:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour une Raspberry Pi avec un dongle BLE :&lt;br /&gt;
* Installation OS Linux sur la Raspberry&lt;br /&gt;
* Librairie BlueZ pour l’utilisation du BLE (tests rapides effectués sur Linux avec le Dongle)&lt;br /&gt;
* Interface graphique avec une bibliothèque comme Qt (ou encore SDL…)&lt;br /&gt;
* Prix : Rpi = 26€ (chez RadioSpare), Dongle = 10€, TV = à partir de 358€ pour 117cm, + Connectique vidéo. Total = 394€&lt;br /&gt;
&lt;br /&gt;
Pour un écran ViewSonic VSD231 :&lt;br /&gt;
* Possède une API Bluetooth classic + API BLE&lt;br /&gt;
* Interface graphique Android (View, Layout...)&lt;br /&gt;
* Prix : écran ViewSonic VSD231 = 558 € pour 58 cm (chez ViewSonic).&lt;br /&gt;
&lt;br /&gt;
Récupération d’informations :&lt;br /&gt;
* Si données sur les lunettes : Bluetooth ou Wifi.&lt;br /&gt;
* Si données sur serveur : Ethernet ou Wifi.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Vu les propositions possibles nous pensons que la première proposition permettra une meilleure souplesse dans le développement mais serait un peu plus compliquée. Mais nous la trouvons aussi plus intéressante à faire de plus elle est moins coûteuse et permet d'utiliser un écran plus grand. Le développement sur tablette serait sûrement plus rapide à faire en contrepartie.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 01/12 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Conférence GlassCamp à l'Imaginarium &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
GlassCamp est une association qui essaye de répandre l'utilisation de toute les Smart Glass en général. Elle propose de multiples conférences dans lesquelles ils essayent de montrer au public l’intérêt de développer sur ces appareils. Dans le cadre de notre projet, notre tuteur nous a proposé de participer à cette présentation afin de mieux s’approprier le sujet. La conférence a eu lieu le 4 décembre à l'Imaginarium: une grande partie était plutôt tournée vers la présentation mais nous avons apprîs plusieurs choses intéressantes qui sont décrites dans le compte rendu.&lt;br /&gt;
&lt;br /&gt;
'''Compte Rendu Conférence 04/12/2014 :''' [[Fichier:Compte_Rendu_Conf_GlassCamp.pdf]]&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 08/12 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 05/01 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Entretien avec notre tuteur &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
'''Compte Rendu de l'entretien du 06/01/2015 :''' [[Fichier:.pdf]]&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 12/01 &amp;lt;/font&amp;gt;==&lt;/div&gt;</summary>
		<author><name>Jgondry</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=P22_Google_Glass_en_logistique&amp;diff=15707</id>
		<title>P22 Google Glass en logistique</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=P22_Google_Glass_en_logistique&amp;diff=15707"/>
				<updated>2015-01-27T16:32:21Z</updated>
		
		<summary type="html">&lt;p&gt;Jgondry : /*  Semaine du 05/01  */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Introduction =&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Description du sujet &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
Notre projet vise à l’optimisation du stockage et de l’adressage des palettes dans un entrepôt. En effet, lors du déchargement d’un camion, chercher un emplacement libre pour les palettes dans un entrepôt occupant une grande superficie fait perdre du temps et donc de la productivité dans le stockage. Sachant qu’un cariste perd un temps non négligeable à la recherche d’emplacement disponible, optimiser ce temps de recherche permettrait de gagner du temps sur cette opération.&lt;br /&gt;
Développer un prototype permettrait de rendre compte des moyens existants qui pourrait être mis en place dans une solution métier.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Analyse du sujet &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Google_glass.png|200px|thumb|right|Paire de Google Glass]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Optinvent_ora.png|200px|thumb|right|Paire de ORA d'Optivent]]&lt;br /&gt;
&lt;br /&gt;
Notre projet consiste à fluidifier le déchargement en indiquant au cariste l’emplacement libre le plus proche. Pour ne pas gêner le travail des employés, un dispositif main-libre comme une Google Glass semble adapté. Ce projet soulève plusieurs problématiques : développer une interface homme-machine apportant une information pertinente pour l’utilisateur sans pour autant être perturbante. &lt;br /&gt;
&lt;br /&gt;
L’idée serait de réaliser dans les grandes lignes un système similaire à ce scénario d’utilisation :&lt;br /&gt;
http://n.mynews.ly/!lB.Bs4fw&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Moyen d’affichage de l’Informations pertinentes'''&lt;br /&gt;
&lt;br /&gt;
Les Google Glass ne sont pas les seules smart glasses sur le marché. Il nous faudra choisir les appareils les plus adaptés. L’information pertinente pourrait être une direction à suivre dans l’entrepôt ou simplement un numéro d’emplacement (adressage intuitif de l’entrepôt). &lt;br /&gt;
&lt;br /&gt;
'''Géolocalisation'''&lt;br /&gt;
&lt;br /&gt;
Dans le cas d’une direction à suivre se pose le problème de la géolocalisation indoor dont l’utilité et la faisabilité seront discutés au fil des réunions avec l’entreprise. &lt;br /&gt;
&lt;br /&gt;
'''Adressage / flashage'''&lt;br /&gt;
&lt;br /&gt;
En ce qui concerne l’adressage des palettes en entrepôt, la solution existante repose sur un flashage des codes barres associés à l’emplacement venant d’être occupé. Une étude de faisabilité/utilité sera aussi faite sur une solution de remplacement grâce aux possibilités qu’offrent les smart glasses.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Cahier des charges &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
En partant de l'analyse du sujet et des discussion avec notre tuteur, nous avons définie un cahier des charges plus précis des tâches à accomplir:&lt;br /&gt;
&lt;br /&gt;
* '''Développer un système embarqué sur une paire de lunette Smart Glass'''&lt;br /&gt;
** Comparer les différentes offres en matière de Smart Glass notamment Google Glass &amp;amp; ORA de Optinvent&lt;br /&gt;
** Concevoir une interface homme-machine non perturbante pour l'utilisateur.&lt;br /&gt;
* '''Etudier la nécessité d'utiliser une géolocalisation en entrepôt et l'implémenter si besoin'''&lt;br /&gt;
** Via RSSI (Wifi, Bluetooh Low Energy ...)&lt;br /&gt;
** Via traitement d'images (reconnaissance de la signalétique en entrepôt)&lt;br /&gt;
* '''Etudier les possibilités d'optimisation du système d'adressage des palettes'''&lt;br /&gt;
** Implémenter la reconnaissance de code barre&lt;br /&gt;
** La tester en réalité métier (utilité ajoutée, habitude des magasiniers, vitesse de traitement...)&lt;br /&gt;
&lt;br /&gt;
Le cahier des charges est encore en cours de construction&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Matériel utilisé &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; SmartGlass &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Lors de la réunion nous avons discuté des technologies à utiliser dans le projet, et plus particulièrement des différentes SmartGlass. En effet, il existe une multitude de sociétés qui développe ce genre de lunettes. Nous commencerons à utiliser les Google Glass étant donné que notre tuteur en a déjà commandé puis nous développerons sur les lunettes ORA de Optivent qui seront livrées fin octobre. Nous devrons donc faire un comparatif entre ces deux SmartGlass puis étudier les autres appareils disponibles sur le marché.&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Localisation &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
L'utilisation de la géolocalisation dans le projet est à débattre. Mais des tests seront probablement mis en place. L'entreprise possède quelque iBeacons BLE Estimote dans ses bureaux d'innovations que nous pourrons emprunter.&lt;br /&gt;
Dans le cas où leur gain d'informations serait utile il nous faudra comparer les modèles disponibles. Choisir un nombre de module et des emplacements stratégiques dans l'entrepôt afin d'avoir une localisation assez précise pour l'application.&lt;br /&gt;
&lt;br /&gt;
L'utilisation d'autres technologies de géolocalisation a été discuté comme le Wifi ou le XBee mais le BLE semblait le plus adapté dans le cadre de notre projet.&lt;br /&gt;
&lt;br /&gt;
= Déroulement du projet =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 22/09 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Réunion avec le tuteur entreprise dans l’entrepôt &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Nous avons observé en situation le problème et discuté des besoins, des moyens déjà utilisables. Il nous faudra prendre en compte plusieurs paramètres dans notre réflexion tels que le système de stockage et d'adressages des palettes, sens de circulation des caristes, superficie des zones à desservir, durée de livraison.&lt;br /&gt;
Nous avons suggéré des étapes de validation intermédiaire du système par les futurs utilisateurs et pour cela nous rencontrerons le chef d'équipe des magasiniers lorsque qu'une version sera assez développée.&lt;br /&gt;
&lt;br /&gt;
Nous avons défini avec le tuteur les premières deadlines du projet, voici la timeline récapitulative:&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Timeline_1.jpg||center|1000px]]&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Compte Rendu &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Nous avons rédigé un compte rendu de la première réunion détaillant les spécifications des versions des livrables, des schémas et les sujets abordés lors de la rencontre :&lt;br /&gt;
&lt;br /&gt;
'''Compte Rendu réunion du 25/09/2014 :''' [[Fichier:Compte_Rendu_25_09.pdf]]&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 29/09 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Découverte des Google Glass &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
*Prise en main des Google Glass. &lt;br /&gt;
*Installation d'applications (.apk) grand public. Nous avons utilisé l'outil Android Debug Bridge(adb). Se mettre à la place d'un utilisateur.&lt;br /&gt;
*L'une des deux lunettes qui serait retenue imposera forcément le développement d'une application android (ou d'une technologie trés proche d'android, pour les Google Glass, se basant sur le Glass Development Kit qui est un add-on au SDK classique d'android). Nous avons donc téléchargé les packages nécessaires pour commencer à développer. &lt;br /&gt;
** Nous commençons à nous former sur les technologies android :développement d'applications minimaliste.&lt;br /&gt;
** Installation de nos premières apk minimalistes pour Android.&lt;br /&gt;
** Installation d'une application minimaliste sur la Google Glass.&lt;br /&gt;
&lt;br /&gt;
Voici un comparatif réalisé entre les lunettes ORA et les Google Glass.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Différences Google Glass/ORA &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!   !! Google Glass !! ORA &lt;br /&gt;
|-&lt;br /&gt;
|Connectique&lt;br /&gt;
|Compatible BLE (à partir de la XE 16 KitKat Update), Wifi &lt;br /&gt;
|Compatible BLE, Wifi&lt;br /&gt;
|-&lt;br /&gt;
|Autonomie en utilisation normale&lt;br /&gt;
|de 1h à 2h &lt;br /&gt;
|de 4h à 8h&lt;br /&gt;
|-&lt;br /&gt;
|Son&lt;br /&gt;
|Conductivité Cranienne&lt;br /&gt;
|Prise jack&lt;br /&gt;
|-&lt;br /&gt;
|Interface&lt;br /&gt;
|Ecran occupant une faible superficie dans le champ de vision &lt;br /&gt;
|Ecran 2 positions (moyennes et basses), plus étendu permettant une réalité augmentée &lt;br /&gt;
|-&lt;br /&gt;
|Système d'exploitation&lt;br /&gt;
|Android 4.4&lt;br /&gt;
|Android 4.2.2&lt;br /&gt;
|-&lt;br /&gt;
|Calculs&lt;br /&gt;
|CPU &amp;amp; GPU&lt;br /&gt;
|CPU &amp;amp; GPU&lt;br /&gt;
|-&lt;br /&gt;
|Prix&lt;br /&gt;
|1500$ &lt;br /&gt;
|949$&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 06/10 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Deuxième rendez-vous avec le tuteur entreprise &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Nous avons fait part de notre avancée en matière de prise en main et des problèmes rencontrés en matière de développement.&lt;br /&gt;
Les lunettes ORA sont commandées elles arrivent d'ici la fin octobre.&lt;br /&gt;
&lt;br /&gt;
La première version V1 de l'application pour Google Glass à livrer pour la mi-novembre est fixée.&lt;br /&gt;
&lt;br /&gt;
En partant d'une position connue (en dur dans l'application) dans l'entrepôt, elle indiquera à un utilisateur les emplacements libres les plus proches.&lt;br /&gt;
&lt;br /&gt;
L'état d'occupation des emplacements sera consulté et stocké dans l'application. Il n'y aura donc pas de gestion des conflits. Le sens de circulation dans l'entrepôt sera pris en compte.&lt;br /&gt;
Une communication avec la base de donnée de l'entrepôt n'est pour le moment pas d'actualité, cela nécessiterait des développements en amont.&lt;br /&gt;
La géolocalisation n'est pas au goût du jour non plus. L'adressage des emplacements dans l'entrepôt est intuitif, il est donc facile pour un magasinier de &lt;br /&gt;
se rendre à un emplacement en connaissant l'adresse.&lt;br /&gt;
&lt;br /&gt;
Pour l'IHM, nous nous inspirerons des applications pour Google Glass (les Glasswares) de type GPS.&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Premiers programmes sur Google Glass &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Pour nous familiariser avec la programmation sur ce genre d'appareil nous avons tous deux décidé de suivre en premier le tutoriel Android d'un site spécialisé. Cela afin de mieux comprendre le système Android, avec les concepts d'activités, de view etc.&lt;br /&gt;
Dans un deuxième temps nous avons choisi de suivre plusieurs tutoriels nous expliquant la prise en main basique des lunettes afin de saisir les particularités de leur programmation.&lt;br /&gt;
&lt;br /&gt;
Le plus dur étant finalement de comprendre les liens entre tous les fichiers du projets, les problèmes de drivers et d'upload simple que nous avons rencontrés et l’exécution du programme sur les lunettes. Des choses que nous arrivons maintenant à maitriser mais qui était floues à l'origine.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 13/10 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Programmation et gestion des interactions &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Durant cette semaine nous avons commencé a vraiment toucher aux fonctionnalités des Glass. Pour rester en main libre, nous avons fait des recherches et commencé à programmer de la reconnaissance vocale. Nous avons ainsi crée un système de navigation basique par commande vocale dans différents menus. Pour un accès rapide à l'application et toujours dans la même optique nous avons réussi à inclure le lancement de notre logiciel à partir du &amp;quot;Ok Glass&amp;quot; menu qui est le menu de lancement d'application par commande vocale des Google Glass. Voici un aperçu du résultat:&lt;br /&gt;
[[Fichier:V0_menu.png|1000px|center]]&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Analyse et évaluation du rendu &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Le début de la prise en main des fonctionnalités des Google Glass n'a pas été facile étant donné que la plupart des fonctionnalités sont propres à ce genre d'appareil. De plus elles nécessitent des techniques spéciales de programmation qui ne sont pas toujours très utilisées donc il est parfois difficile de trouver des exemples sur internet.&lt;br /&gt;
Néanmoins après l'implémentation de ces fonctionnalités nous avons pu rencontrer quelques difficultés de reconnaissance. En effet, les Google Glass possèdent un dictionnaire de mots/phrases pour la reconnaissance vocale mais elles nous permettent aussi d'écrire n'importe quelle phrase dans le mode développeur. Les phrases du dictionnaires ne posent aucun problème mais les phrases que nous écrivons sont parfois dures à reconnaitre. La reconnaissance de lettre seule ou de certains numéros est par exemple quasi impossible ou très aléatoire.&lt;br /&gt;
Le système de vu est quant à lui plutôt facile à prendre en main et intuitif dans l'utilisation.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 20/10 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Premiere structure de donnée &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Nous avons opté pour une structure de donnée récursive. Une Cellule, contenant des Allées, qui contiennent des Baies, contenant des Rangées, contenant des Emplacements.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Structure_export_resized.png|750px|center]]&lt;br /&gt;
Nous avons conçu cette structure de donnée pour qu'elle génère, dans un premier temps &amp;quot;en dur&amp;quot;, une cellule contenant des emplacements automatiquement adressés à la manière de ceux présent dans l'entrepôt. Ces adresses sont de la forme &amp;quot;D61A514&amp;quot; traduisez &amp;quot; Cellule 6 Allée 1A Baie 5 Rang 1 Niveau 4&amp;quot;.&lt;br /&gt;
Cette structure prend on compte le sens de circulation dans l'entrepôt.&lt;br /&gt;
Lors de futures interactions avec une base de donnée, cette structure serait sujette à évolution par une modification des méthodes de génération/modification du statut des adresses en fonction de cette base de donnée. Mais celle-ci constitue essentiellement une base pour appréhender plus pratiquement les problématiques de recherches de l'emplacement le plus proche.&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Prise en main de l'interface &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Nous avons déjà abordé les layouts java en TP donc il a été assez facile de commencer à faire des interfaces graphiques simples. Nous avons construit une interface graphique simple pour de faire une démonstration du programme aux tuteurs entreprise afin qu'ils comprennent bien le fonctionnement de notre algorithme.&lt;br /&gt;
L'interface graphique finale du programme sera très sobre afin de ne pas donner trop gêner le magasinier dans sa tâche.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 27/10 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Chemin optimal : Parcours intelligent Vs Sélection intelligente &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Un premier algorithme de recherche de l'emplacement le plus proche a été développé, celui-ci ne prend en compte qu'un seul scénario. &lt;br /&gt;
Celui de la position de départ (quai de déchargement où reviendra constamment le magasinier aprés chaque livraison) correspondante à la première allée de l'entrepôt, et en prenant en compte le sens de circulation. &lt;br /&gt;
A partir de ce moment, nous avons dégager deux grandes manières d'appréhender le problème.&lt;br /&gt;
&lt;br /&gt;
* Un parcours intelligent de la structure de donnée. C'est à dire parcourir les emplacements les plus proches, et choisir le premier emplacement libre. Une solution complexe à réaliser sur le plan algorithmique. En tenant compte du sens de circulation, il apparait que l'emplacement libre &amp;quot;leplusproche&amp;quot; (à vol d'oiseau) trouvé le plus tôt, ne correspondrait pas forcément à l'emplacement le plus proche compte tenu du chemin emprunté par un magasinier. Et c'est plutôt l'intérêt de cette algorithme.(Sauf dans l'unique cas où l'emplacement libre se trouve directement dans l'allée faisant face à la position de départ du magasinier, et le sens de circulation lui permet directement de se rendre à l'emplacement sans détour).&lt;br /&gt;
&lt;br /&gt;
* Une sélection intelligente parmi les emplacements libres. Leurs adresses renseignent à quelles allées, les emplacements libres appartiennent, donc renseignent sur le sens de circulation. A partir de la position de départ du magasinier et de l'ensemble des emplacements libres, on peut calculer la distance nécessaire à celui-ci pour les atteindre. Pour ainsi choisir l'adresse pour laquelle la distance est minimale.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 3/11 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Chemin optimal : sélection intelligente des adresses &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Nous avons écrit une premiere méthode de détermination. &lt;br /&gt;
On choisit l'emplacement, parmi tous ceux qui sont libres, pour lequel la distance de parcours est minimale entre le départ et celui-ci. &lt;br /&gt;
Ici l'unité de distance est la baie. La simplicité de l'algorithme réside dans le fait que le magasinier ne transporte qu'une seule caisse à la fois et repars toujours au même point de départ.&lt;br /&gt;
&lt;br /&gt;
Ci dessous un plan de l'entrepôt.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:schema_entrepot.png|750px|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Si on se place à l'entrée de l'Allée A :&lt;br /&gt;
&lt;br /&gt;
**le déplacement jusqu'à A4 (sens de circulation direct) est de : &lt;br /&gt;
&lt;br /&gt;
                        Y baies - (indice de la baie/2 +indice de la baie % 2) &lt;br /&gt;
&lt;br /&gt;
**le déplacement jusqu'à B1 (sens de circulation indirect) est de : &lt;br /&gt;
&lt;br /&gt;
                        Y baies + différence entre l'allée A et B donc X baies + indice de la baie/2 +indice de la baie % 2&lt;br /&gt;
**le déplacement jusqu'à C1 (sens de circulation direct) est de : &lt;br /&gt;
                      &lt;br /&gt;
                        Y baies - (indice de la baie/2 +indice de la baie % 2)+différence entre l'allée A et C donc 2*X baies.&lt;br /&gt;
&lt;br /&gt;
*Si on se place à l'entrée de l'Allée B :&lt;br /&gt;
**le déplacement jusqu'à B1 (sens de circulation indirect avec contournement) est de : &lt;br /&gt;
                        &lt;br /&gt;
                        2*X baies + Y baies + 2*X baies + (indice de la baie/2 +indice de la baie % 2)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On peut généraliser l'ensemble de ces situations de déplacement avec l'algorithme suivant :&lt;br /&gt;
&lt;br /&gt;
Pseudo code&lt;br /&gt;
&lt;br /&gt;
  Leplusproche( Allee depart )&lt;br /&gt;
    distance_la_plus_petite = valeurMAX&lt;br /&gt;
      le_plus_proche=&amp;quot;&amp;quot;&lt;br /&gt;
         Pour chaque Allee de Cellule&lt;br /&gt;
           sens=Allee.sens&lt;br /&gt;
           Pour chaque Baie de Allee&lt;br /&gt;
             Pour chaque Rang de Allee&lt;br /&gt;
 	       Pour chaque Emplacement de Rang&lt;br /&gt;
                Si Emplacement estlibre &lt;br /&gt;
                &lt;br /&gt;
                indice_baie = selection_indice_baie(Emplacement.adresse)&lt;br /&gt;
   		 allee_cible = selection_indice_allee(Emplacement.adresse)  &lt;br /&gt;
   		 difference_allee = valeur_absolue(depart -cible) &lt;br /&gt;
                    Si difference_allee==0 et sens.estindirect&lt;br /&gt;
                      //sens indirect +contournement&lt;br /&gt;
                      distance_actuelle=(indice_baie/2)+indice_baie%2+(2*(difference_allee))+4*X+Y			&lt;br /&gt;
                    Sinon	&lt;br /&gt;
                        Si sens estdirect&lt;br /&gt;
                          //sens direct &lt;br /&gt;
                          distance_actuelle=(Y-((indice_baie/2)+indice_baie%2))+2*difference_allee&lt;br /&gt;
                        Sinon&lt;br /&gt;
                          //sens indirect mais pas de contournement&lt;br /&gt;
                          distance_actuelle=((indice_baie/2)+indice_baie%2)+2*difference_allee+Y&lt;br /&gt;
                        Finsi	&lt;br /&gt;
                    Finsi	&lt;br /&gt;
                    Si distance_actuelle &amp;lt; distance_la_plus_petite&lt;br /&gt;
                      le_plus_proche=Emplacement.adresse&lt;br /&gt;
                      distance_la_plus_petite=distance_actuelle&lt;br /&gt;
                    Finsi&lt;br /&gt;
                Finsi  &lt;br /&gt;
            Finpour&lt;br /&gt;
          Finpour&lt;br /&gt;
        Finpour&lt;br /&gt;
      Finpour&lt;br /&gt;
    retourne le_plus_proche&lt;br /&gt;
  Finleplusproche&lt;br /&gt;
&lt;br /&gt;
Cet algorithme nous donne satisfaction (dans le cadre de la V1)&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 10/11 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Programmation et gestion des interactions &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Aprés quelques difficultés vis à vis de la gestion des menus vocaux sur les lunettes qui ne fonctionnent pas de la même manière que les menus classiques sous android, nous avons étoffé les interactions possible avec l'application des google glass. (Nous souhaitions inflater un deuxième menu pour interagir de manière plus contextuelle, il fallait le faire dans la méthode onCreatePanelMenu dont l'appel serait forcé avec getWindow().invalidatePanelMenu(WindowUtils.FEATURE_VOICE_COMMANDS) plutôt que dans onPrepareOptionsMenu forcée par invalidateOptionMenu()...) &lt;br /&gt;
&lt;br /&gt;
schéma d'utilisation...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Proposition projet affichage télévision &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Tele_concept.png|200px|thumb|right]]&lt;br /&gt;
&lt;br /&gt;
Notre tuteur nous a contacté pour nous proposer d'étudier un second projet en parallèle au projet initial. Celui consistant à gérer l'affichage d'information personnalisé d'un magasinier passant à proximité d'un écran de télévision. Nous devons effectuer un Proof Of Concept (POC) et réfléchir à ce sujet.&lt;br /&gt;
L'utilisation du BLE est donc de nouveau d'actualité, car je rappel que sont utilité était discutable dans une réalité métier du projet initial. La question étant plus de savoir comment gérer le système du coté du téléviseur.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Le concept de base étant de :&lt;br /&gt;
* Fournir une beacon aux magasiniers de l'entrepôt.&lt;br /&gt;
* Installer une télévision sur un centre de vie dans l'entrepôt avec une beacon&lt;br /&gt;
* Pousser du contenu personnalisé au magasinier qui se présente devant la tv dans son centre de vie&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 17/11 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Brainstorming à Polytech &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Dans la cadre du POC sur l'affichage personnalisé sur une télévision, nous avons profité d'un exercice de management pour faire participer la classe à notre projet. Grâce à cette intervention nous avons pu confirmer nos idées sur les technologies à utiliser. Mais nous avons surtout eu une multitude de propositions sur les données à afficher sur l'écran.&lt;br /&gt;
&lt;br /&gt;
Pour plus détails, le compte rendu est disponible à ce lien:&lt;br /&gt;
&lt;br /&gt;
'''Compte Rendu Brainstorming 17/11/2014 :''' [[Fichier:Compte_Rendu_POC_17_11.pdf]]&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Entretien avec notre tuteur entreprise &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Durant cet entretien, nous avons livré la première version de l'application et nous avons discuté de la suite du projet.&lt;br /&gt;
Ci joint le Compte Rendu.&lt;br /&gt;
&lt;br /&gt;
'''Compte Rendu  19/11/2014 :''' [[Fichier:Compte_Rendu_19_11.pdf]]&lt;br /&gt;
&lt;br /&gt;
De cette réunion, les points suivants en sont sortis:&lt;br /&gt;
&lt;br /&gt;
*Une reconnaissance vocale en langue française sur les lunettes serait plus intéressante pour les employés (une piste serait d’utiliser l’outil pocketsphinx-  android).&lt;br /&gt;
*Par rapport à l'IHM, il faudrait mettre l’affichage au premier plan sur les Google Glass pour une démo auprés des parties prenantes du projet.&lt;br /&gt;
*Choisir une architecture pour l’affichage d’information personnalisées.&lt;br /&gt;
**La télévision connectée à une raspberry qui communiquerait via un dongle BLE avec le beacon d’un magasinier, ce qui permettrait l’identification de celui-ci prés de la Télévision, et déclencherait un processus d’échange d’information. (Communication via le protocole Bluetooh, wifi entre les lunettes et la Raspberry  ou communication avec la Raspberry avec la Base de Donnée sur le réseau de l’entreprise)&lt;br /&gt;
**Une télévision connectée en continu à un site internet via un dongle HDMI.&lt;br /&gt;
**Une tablette android géante supportant le BLE, ou utilisant un dongle BLE.&lt;br /&gt;
* Réaliser le portage de l’application sur le prototype des lunettes ORA.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 24/11 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Reconnaissance vocale en Français &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Pocket Sphinx Android est une librairie permettant de faire de la reconnaissance vocale d'un langage donné sur un système android en offline.&lt;br /&gt;
Pour supporter une langue, elle nécessite: &lt;br /&gt;
*un modèle acoustique (ensemble d'informations pour le traitement sonore)&lt;br /&gt;
*un dictionnaire associant les mots et leur phonèmes&lt;br /&gt;
*une grammaire, c'est un fichier définissant comment seraient articulé les mots à reconnaître et limitant les possibilités de langage).&lt;br /&gt;
&lt;br /&gt;
La grammaire étant un automate. Voici un exemple de la grammaire menu.gram pour la reconnaissance de la porte de déchargement.&lt;br /&gt;
[[Fichier:Arborescence_pocket_sphinx.png|200px|thumb|right|PocketSphinx dans un projet Android]]&lt;br /&gt;
&lt;br /&gt;
  #JSGF V1.0;&lt;br /&gt;
  grammar menu;&lt;br /&gt;
  &amp;lt;porte&amp;gt; = porte a |&lt;br /&gt;
            porte b |&lt;br /&gt;
            porte c |&lt;br /&gt;
            porte d |&lt;br /&gt;
            porte e |&lt;br /&gt;
            porte f |&lt;br /&gt;
            porte g |&lt;br /&gt;
            porte h |&lt;br /&gt;
            porte i |&lt;br /&gt;
            porte j ;&lt;br /&gt;
  public &amp;lt;porte&amp;gt; = &amp;lt;porte&amp;gt;+;&lt;br /&gt;
&lt;br /&gt;
Un extrait du dictionnaire french_letter.dic associé avec les phonemes&lt;br /&gt;
&lt;br /&gt;
  a aa &amp;lt;-- juste la lettre a et son phoneme &lt;br /&gt;
  autre au tt rr&lt;br /&gt;
  autre(2) au tt rr ee &lt;br /&gt;
  b bb &lt;br /&gt;
  c ss &lt;br /&gt;
  d dd ei d(2) dd ait &lt;br /&gt;
  e eu e(2) eu zz &lt;br /&gt;
  f ai ff &lt;br /&gt;
  g jj ei g(2) gg ai &lt;br /&gt;
  h aa ch  &lt;br /&gt;
  i ii &lt;br /&gt;
  j jj yy j(2) jj ii&lt;br /&gt;
  porte pp oo rr tt&lt;br /&gt;
  porte(2) pp oo rr tt ee&lt;br /&gt;
  portes(2) pp oo rr tt ee&lt;br /&gt;
  portes(3) pp oo rr tt ee zz&lt;br /&gt;
  portes(4) pp oo rr tt zz&lt;br /&gt;
&lt;br /&gt;
Le modèle acoustique que nous avons téléchargé étant inclu dans lium_french_f0&lt;br /&gt;
&lt;br /&gt;
Nous avons testé la reconnaissance vocale sur un téléphone android, les mots sont, dans la majorité des cas, bien reconnus.&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Comparaison architectures projet TV &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Au niveau de l’architecture nous avons établi plusieurs propositions après la réunion avec notre tuteur:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour une Raspberry Pi avec un dongle BLE :&lt;br /&gt;
* Installation OS Linux sur la Raspberry&lt;br /&gt;
* Librairie BlueZ pour l’utilisation du BLE (tests rapides effectués sur Linux avec le Dongle)&lt;br /&gt;
* Interface graphique avec une bibliothèque comme Qt (ou encore SDL…)&lt;br /&gt;
* Prix : Rpi = 26€ (chez RadioSpare), Dongle = 10€, TV = à partir de 358€ pour 117cm, + Connectique vidéo. Total = 394€&lt;br /&gt;
&lt;br /&gt;
Pour un écran ViewSonic VSD231 :&lt;br /&gt;
* Possède une API Bluetooth classic + API BLE&lt;br /&gt;
* Interface graphique Android (View, Layout...)&lt;br /&gt;
* Prix : écran ViewSonic VSD231 = 558 € pour 58 cm (chez ViewSonic).&lt;br /&gt;
&lt;br /&gt;
Récupération d’informations :&lt;br /&gt;
* Si données sur les lunettes : Bluetooth ou Wifi.&lt;br /&gt;
* Si données sur serveur : Ethernet ou Wifi.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Vu les propositions possibles nous pensons que la première proposition permettra une meilleure souplesse dans le développement mais serait un peu plus compliquée. Mais nous la trouvons aussi plus intéressante à faire de plus elle est moins coûteuse et permet d'utiliser un écran plus grand. Le développement sur tablette serait sûrement plus rapide à faire en contrepartie.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 01/12 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Conférence GlassCamp à l'Imaginarium &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
GlassCamp est une association qui essaye de répandre l'utilisation de toute les Smart Glass en général. Elle propose de multiples conférences dans lesquelles ils essayent de montrer au public l’intérêt de développer sur ces appareils. Dans le cadre de notre projet, notre tuteur nous a proposé de participer à cette présentation afin de mieux s’approprier le sujet. La conférence a eu lieu le 4 décembre à l'Imaginarium: une grande partie était plutôt tournée vers la présentation mais nous avons apprîs plusieurs choses intéressantes qui sont décrites dans le compte rendu.&lt;br /&gt;
&lt;br /&gt;
'''Compte Rendu Conférence 04/12/2014 :''' [[Fichier:Compte_Rendu_Conf_GlassCamp.pdf]]&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 08/12 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 05/01 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Entretien avec notre tuteur &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 12/01 &amp;lt;/font&amp;gt;==&lt;/div&gt;</summary>
		<author><name>Jgondry</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=P22_Google_Glass_en_logistique&amp;diff=15317</id>
		<title>P22 Google Glass en logistique</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=P22_Google_Glass_en_logistique&amp;diff=15317"/>
				<updated>2015-01-17T13:51:55Z</updated>
		
		<summary type="html">&lt;p&gt;Jgondry : /*  Semaine du 08/01  */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Introduction =&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Description du sujet &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
Notre projet vise à l’optimisation du stockage et de l’adressage des palettes dans un entrepôt. En effet, lors du déchargement d’un camion, chercher un emplacement libre pour les palettes dans un entrepôt occupant une grande superficie fait perdre du temps et donc de la productivité dans le stockage. Sachant qu’un cariste perd un temps non négligeable à la recherche d’emplacement disponible, optimiser ce temps de recherche permettrait de gagner du temps sur cette opération.&lt;br /&gt;
Développer un prototype permettrait de rendre compte des moyens existants qui pourrait être mis en place dans une solution métier.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Analyse du sujet &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Google_glass.png|200px|thumb|right|Paire de Google Glass]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Optinvent_ora.png|200px|thumb|right|Paire de ORA d'Optivent]]&lt;br /&gt;
&lt;br /&gt;
Notre projet consiste à fluidifier le déchargement en indiquant au cariste l’emplacement libre le plus proche. Pour ne pas gêner le travail des employés, un dispositif main-libre comme une Google Glass semble adapté. Ce projet soulève plusieurs problématiques : développer une interface homme-machine apportant une information pertinente pour l’utilisateur sans pour autant être perturbante. &lt;br /&gt;
&lt;br /&gt;
L’idée serait de réaliser dans les grandes lignes un système similaire à ce scénario d’utilisation :&lt;br /&gt;
http://n.mynews.ly/!lB.Bs4fw&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Moyen d’affichage de l’Informations pertinentes'''&lt;br /&gt;
&lt;br /&gt;
Les Google Glass ne sont pas les seules smart glasses sur le marché. Il nous faudra choisir les appareils les plus adaptés. L’information pertinente pourrait être une direction à suivre dans l’entrepôt ou simplement un numéro d’emplacement (adressage intuitif de l’entrepôt). &lt;br /&gt;
&lt;br /&gt;
'''Géolocalisation'''&lt;br /&gt;
&lt;br /&gt;
Dans le cas d’une direction à suivre se pose le problème de la géolocalisation indoor dont l’utilité et la faisabilité seront discutés au fil des réunions avec l’entreprise. &lt;br /&gt;
&lt;br /&gt;
'''Adressage / flashage'''&lt;br /&gt;
&lt;br /&gt;
En ce qui concerne l’adressage des palettes en entrepôt, la solution existante repose sur un flashage des codes barres associés à l’emplacement venant d’être occupé. Une étude de faisabilité/utilité sera aussi faite sur une solution de remplacement grâce aux possibilités qu’offrent les smart glasses.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Cahier des charges &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
En partant de l'analyse du sujet et des discussion avec notre tuteur, nous avons définie un cahier des charges plus précis des tâches à accomplir:&lt;br /&gt;
&lt;br /&gt;
* '''Développer un système embarqué sur une paire de lunette Smart Glass'''&lt;br /&gt;
** Comparer les différentes offres en matière de Smart Glass notamment Google Glass &amp;amp; ORA de Optinvent&lt;br /&gt;
** Concevoir une interface homme-machine non perturbante pour l'utilisateur.&lt;br /&gt;
* '''Etudier la nécessité d'utiliser une géolocalisation en entrepôt et l'implémenter si besoin'''&lt;br /&gt;
** Via RSSI (Wifi, Bluetooh Low Energy ...)&lt;br /&gt;
** Via traitement d'images (reconnaissance de la signalétique en entrepôt)&lt;br /&gt;
* '''Etudier les possibilités d'optimisation du système d'adressage des palettes'''&lt;br /&gt;
** Implémenter la reconnaissance de code barre&lt;br /&gt;
** La tester en réalité métier (utilité ajoutée, habitude des magasiniers, vitesse de traitement...)&lt;br /&gt;
&lt;br /&gt;
Le cahier des charges est encore en cours de construction&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Matériel utilisé &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; SmartGlass &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Lors de la réunion nous avons discuté des technologies à utiliser dans le projet, et plus particulièrement des différentes SmartGlass. En effet, il existe une multitude de sociétés qui développe ce genre de lunettes. Nous commencerons à utiliser les Google Glass étant donné que notre tuteur en a déjà commandé puis nous développerons sur les lunettes ORA de Optivent qui seront livrées fin octobre. Nous devrons donc faire un comparatif entre ces deux SmartGlass puis étudier les autres appareils disponibles sur le marché.&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Localisation &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
L'utilisation de la géolocalisation dans le projet est à débattre. Mais des tests seront probablement mis en place. L'entreprise possède quelque iBeacons BLE Estimote dans ses bureaux d'innovations que nous pourrons emprunter.&lt;br /&gt;
Dans le cas où leur gain d'informations serait utile il nous faudra comparer les modèles disponibles. Choisir un nombre de module et des emplacements stratégiques dans l'entrepôt afin d'avoir une localisation assez précise pour l'application.&lt;br /&gt;
&lt;br /&gt;
L'utilisation d'autres technologies de géolocalisation a été discuté comme le Wifi ou le XBee mais le BLE semblait le plus adapté dans le cadre de notre projet.&lt;br /&gt;
&lt;br /&gt;
= Déroulement du projet =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 22/09 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Réunion avec le tuteur entreprise dans l’entrepôt &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Nous avons observé en situation le problème et discuté des besoins, des moyens déjà utilisables. Il nous faudra prendre en compte plusieurs paramètres dans notre réflexion tels que le système de stockage et d'adressages des palettes, sens de circulation des caristes, superficie des zones à desservir, durée de livraison.&lt;br /&gt;
Nous avons suggéré des étapes de validation intermédiaire du système par les futurs utilisateurs et pour cela nous rencontrerons le chef d'équipe des magasiniers lorsque qu'une version sera assez développée.&lt;br /&gt;
&lt;br /&gt;
Nous avons défini avec le tuteur les premières deadlines du projet, voici la timeline récapitulative:&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Timeline_1.jpg||center|1000px]]&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Compte Rendu &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Nous avons rédigé un compte rendu de la première réunion détaillant les spécifications des versions des livrables, des schémas et les sujets abordés lors de la rencontre :&lt;br /&gt;
&lt;br /&gt;
'''Compte Rendu réunion du 25/09/2014 :''' [[Fichier:Compte_Rendu_25_09.pdf]]&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 29/09 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Découverte des Google Glass &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
*Prise en main des Google Glass. &lt;br /&gt;
*Installation d'applications (.apk) grand public. Nous avons utilisé l'outil Android Debug Bridge(adb). Se mettre à la place d'un utilisateur.&lt;br /&gt;
*L'une des deux lunettes qui serait retenue imposera forcément le développement d'une application android (ou d'une technologie trés proche d'android, pour les Google Glass, se basant sur le Glass Development Kit qui est un add-on au SDK classique d'android). Nous avons donc téléchargé les packages nécessaires pour commencer à développer. &lt;br /&gt;
** Nous commençons à nous former sur les technologies android :développement d'applications minimaliste.&lt;br /&gt;
** Installation de nos premières apk minimalistes pour Android.&lt;br /&gt;
** Installation d'une application minimaliste sur la Google Glass.&lt;br /&gt;
&lt;br /&gt;
Voici un comparatif réalisé entre les lunettes ORA et les Google Glass.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Différences Google Glass/ORA &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!   !! Google Glass !! ORA &lt;br /&gt;
|-&lt;br /&gt;
|Connectique&lt;br /&gt;
|Compatible BLE (à partir de la XE 16 KitKat Update), Wifi &lt;br /&gt;
|Compatible BLE, Wifi&lt;br /&gt;
|-&lt;br /&gt;
|Autonomie en utilisation normale&lt;br /&gt;
|de 1h à 2h &lt;br /&gt;
|de 4h à 8h&lt;br /&gt;
|-&lt;br /&gt;
|Son&lt;br /&gt;
|Conductivité Cranienne&lt;br /&gt;
|Prise jack&lt;br /&gt;
|-&lt;br /&gt;
|Interface&lt;br /&gt;
|Ecran occupant une faible superficie dans le champ de vision &lt;br /&gt;
|Ecran 2 positions (moyennes et basses), plus étendu permettant une réalité augmentée &lt;br /&gt;
|-&lt;br /&gt;
|Système d'exploitation&lt;br /&gt;
|Android 4.4&lt;br /&gt;
|Android 4.2.2&lt;br /&gt;
|-&lt;br /&gt;
|Calculs&lt;br /&gt;
|CPU &amp;amp; GPU&lt;br /&gt;
|CPU &amp;amp; GPU&lt;br /&gt;
|-&lt;br /&gt;
|Prix&lt;br /&gt;
|1500$ &lt;br /&gt;
|949$&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 06/10 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Deuxième rendez-vous avec le tuteur entreprise &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Nous avons fait part de notre avancée en matière de prise en main et des problèmes rencontrés en matière de développement.&lt;br /&gt;
Les lunettes ORA sont commandées elles arrivent d'ici la fin octobre.&lt;br /&gt;
&lt;br /&gt;
La première version V1 de l'application pour Google Glass à livrer pour la mi-novembre est fixée.&lt;br /&gt;
&lt;br /&gt;
En partant d'une position connue (en dur dans l'application) dans l'entrepôt, elle indiquera à un utilisateur les emplacements libres les plus proches.&lt;br /&gt;
&lt;br /&gt;
L'état d'occupation des emplacements sera consulté et stocké dans l'application. Il n'y aura donc pas de gestion des conflits. Le sens de circulation dans l'entrepôt sera pris en compte.&lt;br /&gt;
Une communication avec la base de donnée de l'entrepôt n'est pour le moment pas d'actualité, cela nécessiterait des développements en amont.&lt;br /&gt;
La géolocalisation n'est pas au goût du jour non plus. L'adressage des emplacements dans l'entrepôt est intuitif, il est donc facile pour un magasinier de &lt;br /&gt;
se rendre à un emplacement en connaissant l'adresse.&lt;br /&gt;
&lt;br /&gt;
Pour l'IHM, nous nous inspirerons des applications pour Google Glass (les Glasswares) de type GPS.&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Premiers programmes sur Google Glass &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Pour nous familiariser avec la programmation sur ce genre d'appareil nous avons tous deux décidé de suivre en premier le tutoriel Android d'un site spécialisé. Cela afin de mieux comprendre le système Android, avec les concepts d'activités, de view etc.&lt;br /&gt;
Dans un deuxième temps nous avons choisi de suivre plusieurs tutoriels nous expliquant la prise en main basique des lunettes afin de saisir les particularités de leur programmation.&lt;br /&gt;
&lt;br /&gt;
Le plus dur étant finalement de comprendre les liens entre tous les fichiers du projets, les problèmes de drivers et d'upload simple que nous avons rencontrés et l’exécution du programme sur les lunettes. Des choses que nous arrivons maintenant à maitriser mais qui était floues à l'origine.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 13/10 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Programmation et gestion des interactions &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Durant cette semaine nous avons commencé a vraiment toucher aux fonctionnalités des Glass. Pour rester en main libre, nous avons fait des recherches et commencé à programmer de la reconnaissance vocale. Nous avons ainsi crée un système de navigation basique par commande vocale dans différents menus. Pour un accès rapide à l'application et toujours dans la même optique nous avons réussi à inclure le lancement de notre logiciel à partir du &amp;quot;Ok Glass&amp;quot; menu qui est le menu de lancement d'application par commande vocale des Google Glass. Voici un aperçu du résultat:&lt;br /&gt;
[[Fichier:V0_menu.png|1000px|center]]&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Analyse et évaluation du rendu &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Le début de la prise en main des fonctionnalités des Google Glass n'a pas été facile étant donné que la plupart des fonctionnalités sont propres à ce genre d'appareil. De plus elles nécessitent des techniques spéciales de programmation qui ne sont pas toujours très utilisées donc il est parfois difficile de trouver des exemples sur internet.&lt;br /&gt;
Néanmoins après l'implémentation de ces fonctionnalités nous avons pu rencontrer quelques difficultés de reconnaissance. En effet, les Google Glass possèdent un dictionnaire de mots/phrases pour la reconnaissance vocale mais elles nous permettent aussi d'écrire n'importe quelle phrase dans le mode développeur. Les phrases du dictionnaires ne posent aucun problème mais les phrases que nous écrivons sont parfois dures à reconnaitre. La reconnaissance de lettre seule ou de certains numéros est par exemple quasi impossible ou très aléatoire.&lt;br /&gt;
Le système de vu est quant à lui plutôt facile à prendre en main et intuitif dans l'utilisation.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 20/10 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Premiere structure de donnée &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Nous avons opté pour une structure de donnée récursive. Une Cellule, contenant des Allées, qui contiennent des Baies, contenant des Rangées, contenant des Emplacements.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Structure_export_resized.png|750px|center]]&lt;br /&gt;
Nous avons conçu cette structure de donnée pour qu'elle génère, dans un premier temps &amp;quot;en dur&amp;quot;, une cellule contenant des emplacements automatiquement adressés à la manière de ceux présent dans l'entrepôt. Ces adresses sont de la forme &amp;quot;D61A514&amp;quot; traduisez &amp;quot; Cellule 6 Allée 1A Baie 5 Rang 1 Niveau 4&amp;quot;.&lt;br /&gt;
Cette structure prend on compte le sens de circulation dans l'entrepôt.&lt;br /&gt;
Lors de futures interactions avec une base de donnée, cette structure serait sujette à évolution par une modification des méthodes de génération/modification du statut des adresses en fonction de cette base de donnée. Mais celle-ci constitue essentiellement une base pour appréhender plus pratiquement les problématiques de recherches de l'emplacement le plus proche.&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Prise en main de l'interface &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Nous avons déjà abordé les layouts java en TP donc il a été assez facile de commencer à faire des interfaces graphiques simples. Nous avons construit une interface graphique simple pour de faire une démonstration du programme aux tuteurs entreprise afin qu'ils comprennent bien le fonctionnement de notre algorithme.&lt;br /&gt;
L'interface graphique finale du programme sera très sobre afin de ne pas donner trop gêner le magasinier dans sa tâche.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 27/10 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Chemin optimal : Parcours intelligent Vs Sélection intelligente &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Un premier algorithme de recherche de l'emplacement le plus proche a été développé, celui-ci ne prend en compte qu'un seul scénario. &lt;br /&gt;
Celui de la position de départ (quai de déchargement où reviendra constamment le magasinier aprés chaque livraison) correspondante à la première allée de l'entrepôt, et en prenant en compte le sens de circulation. &lt;br /&gt;
A partir de ce moment, nous avons dégager deux grandes manières d'appréhender le problème.&lt;br /&gt;
&lt;br /&gt;
* Un parcours intelligent de la structure de donnée. C'est à dire parcourir les emplacements les plus proches, et choisir le premier emplacement libre. Une solution complexe à réaliser sur le plan algorithmique. En tenant compte du sens de circulation, il apparait que l'emplacement libre &amp;quot;leplusproche&amp;quot; (à vol d'oiseau) trouvé le plus tôt, ne correspondrait pas forcément à l'emplacement le plus proche compte tenu du chemin emprunté par un magasinier. Et c'est plutôt l'intérêt de cette algorithme.(Sauf dans l'unique cas où l'emplacement libre se trouve directement dans l'allée faisant face à la position de départ du magasinier, et le sens de circulation lui permet directement de se rendre à l'emplacement sans détour).&lt;br /&gt;
&lt;br /&gt;
* Une sélection intelligente parmi les emplacements libres. Leurs adresses renseignent à quelles allées, les emplacements libres appartiennent, donc renseignent sur le sens de circulation. A partir de la position de départ du magasinier et de l'ensemble des emplacements libres, on peut calculer la distance nécessaire à celui-ci pour les atteindre. Pour ainsi choisir l'adresse pour laquelle la distance est minimale.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 3/11 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Chemin optimal : sélection intelligente des adresses &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Nous avons écrit une premiere méthode de détermination. &lt;br /&gt;
On choisit l'emplacement, parmi tous ceux qui sont libres, pour lequel la distance de parcours est minimale entre le départ et celui-ci. &lt;br /&gt;
Ici l'unité de distance est la baie. La simplicité de l'algorithme réside dans le fait que le magasinier ne transporte qu'une seule caisse à la fois et repars toujours au même point de départ.&lt;br /&gt;
&lt;br /&gt;
Ci dessous un plan de l'entrepôt.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:schema_entrepot.png|750px|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Si on se place à l'entrée de l'Allée A :&lt;br /&gt;
&lt;br /&gt;
**le déplacement jusqu'à A4 (sens de circulation direct) est de : &lt;br /&gt;
&lt;br /&gt;
                        Y baies - (indice de la baie/2 +indice de la baie % 2) &lt;br /&gt;
&lt;br /&gt;
**le déplacement jusqu'à B1 (sens de circulation indirect) est de : &lt;br /&gt;
&lt;br /&gt;
                        Y baies + différence entre l'allée A et B donc X baies + indice de la baie/2 +indice de la baie % 2&lt;br /&gt;
**le déplacement jusqu'à C1 (sens de circulation direct) est de : &lt;br /&gt;
                      &lt;br /&gt;
                        Y baies - (indice de la baie/2 +indice de la baie % 2)+différence entre l'allée A et C donc 2*X baies.&lt;br /&gt;
&lt;br /&gt;
*Si on se place à l'entrée de l'Allée B :&lt;br /&gt;
**le déplacement jusqu'à B1 (sens de circulation indirect avec contournement) est de : &lt;br /&gt;
                        &lt;br /&gt;
                        2*X baies + Y baies + 2*X baies + (indice de la baie/2 +indice de la baie % 2)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On peut généraliser l'ensemble de ces situations de déplacement avec l'algorithme suivant :&lt;br /&gt;
&lt;br /&gt;
Pseudo code&lt;br /&gt;
&lt;br /&gt;
  Leplusproche( Allee depart )&lt;br /&gt;
    distance_la_plus_petite = valeurMAX&lt;br /&gt;
      le_plus_proche=&amp;quot;&amp;quot;&lt;br /&gt;
         Pour chaque Allee de Cellule&lt;br /&gt;
           sens=Allee.sens&lt;br /&gt;
           Pour chaque Baie de Allee&lt;br /&gt;
             Pour chaque Rang de Allee&lt;br /&gt;
 	       Pour chaque Emplacement de Rang&lt;br /&gt;
                Si Emplacement estlibre &lt;br /&gt;
                &lt;br /&gt;
                indice_baie = selection_indice_baie(Emplacement.adresse)&lt;br /&gt;
   		 allee_cible = selection_indice_allee(Emplacement.adresse)  &lt;br /&gt;
   		 difference_allee = valeur_absolue(depart -cible) &lt;br /&gt;
                    Si difference_allee==0 et sens.estindirect&lt;br /&gt;
                      //sens indirect +contournement&lt;br /&gt;
                      distance_actuelle=(indice_baie/2)+indice_baie%2+(2*(difference_allee))+4*X+Y			&lt;br /&gt;
                    Sinon	&lt;br /&gt;
                        Si sens estdirect&lt;br /&gt;
                          //sens direct &lt;br /&gt;
                          distance_actuelle=(Y-((indice_baie/2)+indice_baie%2))+2*difference_allee&lt;br /&gt;
                        Sinon&lt;br /&gt;
                          //sens indirect mais pas de contournement&lt;br /&gt;
                          distance_actuelle=((indice_baie/2)+indice_baie%2)+2*difference_allee+Y&lt;br /&gt;
                        Finsi	&lt;br /&gt;
                    Finsi	&lt;br /&gt;
                    Si distance_actuelle &amp;lt; distance_la_plus_petite&lt;br /&gt;
                      le_plus_proche=Emplacement.adresse&lt;br /&gt;
                      distance_la_plus_petite=distance_actuelle&lt;br /&gt;
                    Finsi&lt;br /&gt;
                Finsi  &lt;br /&gt;
            Finpour&lt;br /&gt;
          Finpour&lt;br /&gt;
        Finpour&lt;br /&gt;
      Finpour&lt;br /&gt;
    retourne le_plus_proche&lt;br /&gt;
  Finleplusproche&lt;br /&gt;
&lt;br /&gt;
Cet algorithme nous donne satisfaction (dans le cadre de la V1)&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 10/11 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Programmation et gestion des interactions &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Aprés quelques difficultés vis à vis de la gestion des menus vocaux sur les lunettes qui ne fonctionnent pas de la même manière que les menus classiques sous android, nous avons étoffé les interactions possible avec l'application des google glass. (Nous souhaitions inflater un deuxième menu pour interagir de manière plus contextuelle, il fallait le faire dans la méthode onCreatePanelMenu dont l'appel serait forcé avec getWindow().invalidatePanelMenu(WindowUtils.FEATURE_VOICE_COMMANDS) plutôt que dans onPrepareOptionsMenu forcée par invalidateOptionMenu()...) &lt;br /&gt;
&lt;br /&gt;
schéma d'utilisation...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Proposition projet affichage télévision &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Tele_concept.png|200px|thumb|right]]&lt;br /&gt;
&lt;br /&gt;
Notre tuteur nous a contacté pour nous proposer d'étudier un second projet en parallèle au projet initial. Celui consistant à gérer l'affichage d'information personnalisé d'un magasinier passant à proximité d'un écran de télévision. Nous devons effectuer un Proof Of Concept (POC) et réfléchir à ce sujet.&lt;br /&gt;
L'utilisation du BLE est donc de nouveau d'actualité, car je rappel que sont utilité était discutable dans une réalité métier du projet initial. La question étant plus de savoir comment gérer le système du coté du téléviseur.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Le concept de base étant de :&lt;br /&gt;
* Fournir une beacon aux magasiniers de l'entrepôt.&lt;br /&gt;
* Installer une télévision sur un centre de vie dans l'entrepôt avec une beacon&lt;br /&gt;
* Pousser du contenu personnalisé au magasinier qui se présente devant la tv dans son centre de vie&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 17/11 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Brainstorming à Polytech &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Dans la cadre du POC sur l'affichage personnalisé sur une télévision, nous avons profité d'un exercice de management pour faire participer la classe à notre projet. Grâce à cette intervention nous avons pu confirmer nos idées sur les technologies à utiliser. Mais nous avons surtout eu une multitude de propositions sur les données à afficher sur l'écran.&lt;br /&gt;
&lt;br /&gt;
Pour plus détails, le compte rendu est disponible à ce lien:&lt;br /&gt;
&lt;br /&gt;
'''Compte Rendu Brainstorming 17/11/2014 :''' [[Fichier:Compte_Rendu_POC_17_11.pdf]]&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Entretien avec notre tuteur entreprise &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Durant cet entretien, nous avons livré la première version de l'application et nous avons discuté de la suite du projet.&lt;br /&gt;
Ci joint le Compte Rendu.&lt;br /&gt;
&lt;br /&gt;
'''Compte Rendu  19/11/2014 :''' [[Fichier:Compte_Rendu_19_11.pdf]]&lt;br /&gt;
&lt;br /&gt;
De cette réunion, les points suivants en sont sortis:&lt;br /&gt;
&lt;br /&gt;
*Une reconnaissance vocale en langue française sur les lunettes serait plus intéressante pour les employés (une piste serait d’utiliser l’outil pocketsphinx-  android).&lt;br /&gt;
*Par rapport à l'IHM, il faudrait mettre l’affichage au premier plan sur les Google Glass pour une démo auprés des parties prenantes du projet.&lt;br /&gt;
*Choisir une architecture pour l’affichage d’information personnalisées.&lt;br /&gt;
**La télévision connectée à une raspberry qui communiquerait via un dongle BLE avec le beacon d’un magasinier, ce qui permettrait l’identification de celui-ci prés de la Télévision, et déclencherait un processus d’échange d’information. (Communication via le protocole Bluetooh, wifi entre les lunettes et la Raspberry  ou communication avec la Raspberry avec la Base de Donnée sur le réseau de l’entreprise)&lt;br /&gt;
**Une télévision connectée en continu à un site internet via un dongle HDMI.&lt;br /&gt;
**Une tablette android géante supportant le BLE, ou utilisant un dongle BLE.&lt;br /&gt;
* Réaliser le portage de l’application sur le prototype des lunettes ORA.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 24/11 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Reconnaissance vocale en Français &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Pocket Sphinx Android est une librairie permettant de faire de la reconnaissance vocale d'un langage donné sur un système android en offline.&lt;br /&gt;
Pour supporter une langue, elle nécessite: &lt;br /&gt;
*un modèle acoustique (ensemble d'informations pour le traitement sonore)&lt;br /&gt;
*un dictionnaire associant les mots et leur phonèmes&lt;br /&gt;
*une grammaire, c'est un fichier définissant comment seraient articulé les mots à reconnaître et limitant les possibilités de langage).&lt;br /&gt;
&lt;br /&gt;
La grammaire étant un automate. Voici un exemple de la grammaire menu.gram pour la reconnaissance de la porte de déchargement.&lt;br /&gt;
[[Fichier:Arborescence_pocket_sphinx.png|200px|thumb|right|PocketSphinx dans un projet Android]]&lt;br /&gt;
&lt;br /&gt;
  #JSGF V1.0;&lt;br /&gt;
  grammar menu;&lt;br /&gt;
  &amp;lt;porte&amp;gt; = porte a |&lt;br /&gt;
            porte b |&lt;br /&gt;
            porte c |&lt;br /&gt;
            porte d |&lt;br /&gt;
            porte e |&lt;br /&gt;
            porte f |&lt;br /&gt;
            porte g |&lt;br /&gt;
            porte h |&lt;br /&gt;
            porte i |&lt;br /&gt;
            porte j ;&lt;br /&gt;
  public &amp;lt;porte&amp;gt; = &amp;lt;porte&amp;gt;+;&lt;br /&gt;
&lt;br /&gt;
Un extrait du dictionnaire french_letter.dic associé avec les phonemes&lt;br /&gt;
&lt;br /&gt;
  a aa &amp;lt;-- juste la lettre a et son phoneme &lt;br /&gt;
  autre au tt rr&lt;br /&gt;
  autre(2) au tt rr ee &lt;br /&gt;
  b bb &lt;br /&gt;
  c ss &lt;br /&gt;
  d dd ei d(2) dd ait &lt;br /&gt;
  e eu e(2) eu zz &lt;br /&gt;
  f ai ff &lt;br /&gt;
  g jj ei g(2) gg ai &lt;br /&gt;
  h aa ch  &lt;br /&gt;
  i ii &lt;br /&gt;
  j jj yy j(2) jj ii&lt;br /&gt;
  porte pp oo rr tt&lt;br /&gt;
  porte(2) pp oo rr tt ee&lt;br /&gt;
  portes(2) pp oo rr tt ee&lt;br /&gt;
  portes(3) pp oo rr tt ee zz&lt;br /&gt;
  portes(4) pp oo rr tt zz&lt;br /&gt;
&lt;br /&gt;
Le modèle acoustique que nous avons téléchargé étant inclu dans lium_french_f0&lt;br /&gt;
&lt;br /&gt;
Nous avons testé la reconnaissance vocale sur un téléphone android, les mots sont, dans la majorité des cas, bien reconnus.&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Comparaison architectures projet TV &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Au niveau de l’architecture nous avons établi plusieurs propositions après la réunion avec notre tuteur:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour une Raspberry Pi avec un dongle BLE :&lt;br /&gt;
* Installation OS Linux sur la Raspberry&lt;br /&gt;
* Librairie BlueZ pour l’utilisation du BLE (tests rapides effectués sur Linux avec le Dongle)&lt;br /&gt;
* Interface graphique avec une bibliothèque comme Qt (ou encore SDL…)&lt;br /&gt;
* Prix : Rpi = 26€ (chez RadioSpare), Dongle = 10€, TV = à partir de 358€ pour 117cm, + Connectique vidéo. Total = 394€&lt;br /&gt;
&lt;br /&gt;
Pour un écran ViewSonic VSD231 :&lt;br /&gt;
* Possède une API Bluetooth classic + API BLE&lt;br /&gt;
* Interface graphique Android (View, Layout...)&lt;br /&gt;
* Prix : écran ViewSonic VSD231 = 558 € pour 58 cm (chez ViewSonic).&lt;br /&gt;
&lt;br /&gt;
Récupération d’informations :&lt;br /&gt;
* Si données sur les lunettes : Bluetooth ou Wifi.&lt;br /&gt;
* Si données sur serveur : Ethernet ou Wifi.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Vu les propositions possibles nous pensons que la première proposition permettra une meilleure souplesse dans le développement mais serait un peu plus compliquée. Mais nous la trouvons aussi plus intéressante à faire de plus elle est moins coûteuse et permet d'utiliser un écran plus grand. Le développement sur tablette serait sûrement plus rapide à faire en contrepartie.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 01/12 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Conférence GlassCamp à l'Imaginarium &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
GlassCamp est une association qui essaye de répandre l'utilisation de toute les Smart Glass en général. Elle propose de multiples conférences dans lesquelles ils essayent de montrer au public l’intérêt de développer sur ces appareils. Dans le cadre de notre projet, notre tuteur nous a proposé de participer à cette présentation afin de mieux s’approprier le sujet. La conférence a eu lieu le 4 décembre à l'Imaginarium: une grande partie était plutôt tournée vers la présentation mais nous avons apprîs plusieurs choses intéressantes qui sont décrites dans le compte rendu.&lt;br /&gt;
&lt;br /&gt;
'''Compte Rendu Conférence 04/12/2014 :''' [[Fichier:Compte_Rendu_Conf_GlassCamp.pdf]]&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 08/12 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 05/01 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 12/01 &amp;lt;/font&amp;gt;==&lt;/div&gt;</summary>
		<author><name>Jgondry</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=P22_Google_Glass_en_logistique&amp;diff=15316</id>
		<title>P22 Google Glass en logistique</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=P22_Google_Glass_en_logistique&amp;diff=15316"/>
				<updated>2015-01-17T13:51:41Z</updated>
		
		<summary type="html">&lt;p&gt;Jgondry : /*  Semaine du 01/01  */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Introduction =&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Description du sujet &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
Notre projet vise à l’optimisation du stockage et de l’adressage des palettes dans un entrepôt. En effet, lors du déchargement d’un camion, chercher un emplacement libre pour les palettes dans un entrepôt occupant une grande superficie fait perdre du temps et donc de la productivité dans le stockage. Sachant qu’un cariste perd un temps non négligeable à la recherche d’emplacement disponible, optimiser ce temps de recherche permettrait de gagner du temps sur cette opération.&lt;br /&gt;
Développer un prototype permettrait de rendre compte des moyens existants qui pourrait être mis en place dans une solution métier.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Analyse du sujet &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Google_glass.png|200px|thumb|right|Paire de Google Glass]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Optinvent_ora.png|200px|thumb|right|Paire de ORA d'Optivent]]&lt;br /&gt;
&lt;br /&gt;
Notre projet consiste à fluidifier le déchargement en indiquant au cariste l’emplacement libre le plus proche. Pour ne pas gêner le travail des employés, un dispositif main-libre comme une Google Glass semble adapté. Ce projet soulève plusieurs problématiques : développer une interface homme-machine apportant une information pertinente pour l’utilisateur sans pour autant être perturbante. &lt;br /&gt;
&lt;br /&gt;
L’idée serait de réaliser dans les grandes lignes un système similaire à ce scénario d’utilisation :&lt;br /&gt;
http://n.mynews.ly/!lB.Bs4fw&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Moyen d’affichage de l’Informations pertinentes'''&lt;br /&gt;
&lt;br /&gt;
Les Google Glass ne sont pas les seules smart glasses sur le marché. Il nous faudra choisir les appareils les plus adaptés. L’information pertinente pourrait être une direction à suivre dans l’entrepôt ou simplement un numéro d’emplacement (adressage intuitif de l’entrepôt). &lt;br /&gt;
&lt;br /&gt;
'''Géolocalisation'''&lt;br /&gt;
&lt;br /&gt;
Dans le cas d’une direction à suivre se pose le problème de la géolocalisation indoor dont l’utilité et la faisabilité seront discutés au fil des réunions avec l’entreprise. &lt;br /&gt;
&lt;br /&gt;
'''Adressage / flashage'''&lt;br /&gt;
&lt;br /&gt;
En ce qui concerne l’adressage des palettes en entrepôt, la solution existante repose sur un flashage des codes barres associés à l’emplacement venant d’être occupé. Une étude de faisabilité/utilité sera aussi faite sur une solution de remplacement grâce aux possibilités qu’offrent les smart glasses.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Cahier des charges &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
En partant de l'analyse du sujet et des discussion avec notre tuteur, nous avons définie un cahier des charges plus précis des tâches à accomplir:&lt;br /&gt;
&lt;br /&gt;
* '''Développer un système embarqué sur une paire de lunette Smart Glass'''&lt;br /&gt;
** Comparer les différentes offres en matière de Smart Glass notamment Google Glass &amp;amp; ORA de Optinvent&lt;br /&gt;
** Concevoir une interface homme-machine non perturbante pour l'utilisateur.&lt;br /&gt;
* '''Etudier la nécessité d'utiliser une géolocalisation en entrepôt et l'implémenter si besoin'''&lt;br /&gt;
** Via RSSI (Wifi, Bluetooh Low Energy ...)&lt;br /&gt;
** Via traitement d'images (reconnaissance de la signalétique en entrepôt)&lt;br /&gt;
* '''Etudier les possibilités d'optimisation du système d'adressage des palettes'''&lt;br /&gt;
** Implémenter la reconnaissance de code barre&lt;br /&gt;
** La tester en réalité métier (utilité ajoutée, habitude des magasiniers, vitesse de traitement...)&lt;br /&gt;
&lt;br /&gt;
Le cahier des charges est encore en cours de construction&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Matériel utilisé &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; SmartGlass &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Lors de la réunion nous avons discuté des technologies à utiliser dans le projet, et plus particulièrement des différentes SmartGlass. En effet, il existe une multitude de sociétés qui développe ce genre de lunettes. Nous commencerons à utiliser les Google Glass étant donné que notre tuteur en a déjà commandé puis nous développerons sur les lunettes ORA de Optivent qui seront livrées fin octobre. Nous devrons donc faire un comparatif entre ces deux SmartGlass puis étudier les autres appareils disponibles sur le marché.&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Localisation &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
L'utilisation de la géolocalisation dans le projet est à débattre. Mais des tests seront probablement mis en place. L'entreprise possède quelque iBeacons BLE Estimote dans ses bureaux d'innovations que nous pourrons emprunter.&lt;br /&gt;
Dans le cas où leur gain d'informations serait utile il nous faudra comparer les modèles disponibles. Choisir un nombre de module et des emplacements stratégiques dans l'entrepôt afin d'avoir une localisation assez précise pour l'application.&lt;br /&gt;
&lt;br /&gt;
L'utilisation d'autres technologies de géolocalisation a été discuté comme le Wifi ou le XBee mais le BLE semblait le plus adapté dans le cadre de notre projet.&lt;br /&gt;
&lt;br /&gt;
= Déroulement du projet =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 22/09 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Réunion avec le tuteur entreprise dans l’entrepôt &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Nous avons observé en situation le problème et discuté des besoins, des moyens déjà utilisables. Il nous faudra prendre en compte plusieurs paramètres dans notre réflexion tels que le système de stockage et d'adressages des palettes, sens de circulation des caristes, superficie des zones à desservir, durée de livraison.&lt;br /&gt;
Nous avons suggéré des étapes de validation intermédiaire du système par les futurs utilisateurs et pour cela nous rencontrerons le chef d'équipe des magasiniers lorsque qu'une version sera assez développée.&lt;br /&gt;
&lt;br /&gt;
Nous avons défini avec le tuteur les premières deadlines du projet, voici la timeline récapitulative:&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Timeline_1.jpg||center|1000px]]&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Compte Rendu &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Nous avons rédigé un compte rendu de la première réunion détaillant les spécifications des versions des livrables, des schémas et les sujets abordés lors de la rencontre :&lt;br /&gt;
&lt;br /&gt;
'''Compte Rendu réunion du 25/09/2014 :''' [[Fichier:Compte_Rendu_25_09.pdf]]&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 29/09 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Découverte des Google Glass &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
*Prise en main des Google Glass. &lt;br /&gt;
*Installation d'applications (.apk) grand public. Nous avons utilisé l'outil Android Debug Bridge(adb). Se mettre à la place d'un utilisateur.&lt;br /&gt;
*L'une des deux lunettes qui serait retenue imposera forcément le développement d'une application android (ou d'une technologie trés proche d'android, pour les Google Glass, se basant sur le Glass Development Kit qui est un add-on au SDK classique d'android). Nous avons donc téléchargé les packages nécessaires pour commencer à développer. &lt;br /&gt;
** Nous commençons à nous former sur les technologies android :développement d'applications minimaliste.&lt;br /&gt;
** Installation de nos premières apk minimalistes pour Android.&lt;br /&gt;
** Installation d'une application minimaliste sur la Google Glass.&lt;br /&gt;
&lt;br /&gt;
Voici un comparatif réalisé entre les lunettes ORA et les Google Glass.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Différences Google Glass/ORA &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!   !! Google Glass !! ORA &lt;br /&gt;
|-&lt;br /&gt;
|Connectique&lt;br /&gt;
|Compatible BLE (à partir de la XE 16 KitKat Update), Wifi &lt;br /&gt;
|Compatible BLE, Wifi&lt;br /&gt;
|-&lt;br /&gt;
|Autonomie en utilisation normale&lt;br /&gt;
|de 1h à 2h &lt;br /&gt;
|de 4h à 8h&lt;br /&gt;
|-&lt;br /&gt;
|Son&lt;br /&gt;
|Conductivité Cranienne&lt;br /&gt;
|Prise jack&lt;br /&gt;
|-&lt;br /&gt;
|Interface&lt;br /&gt;
|Ecran occupant une faible superficie dans le champ de vision &lt;br /&gt;
|Ecran 2 positions (moyennes et basses), plus étendu permettant une réalité augmentée &lt;br /&gt;
|-&lt;br /&gt;
|Système d'exploitation&lt;br /&gt;
|Android 4.4&lt;br /&gt;
|Android 4.2.2&lt;br /&gt;
|-&lt;br /&gt;
|Calculs&lt;br /&gt;
|CPU &amp;amp; GPU&lt;br /&gt;
|CPU &amp;amp; GPU&lt;br /&gt;
|-&lt;br /&gt;
|Prix&lt;br /&gt;
|1500$ &lt;br /&gt;
|949$&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 06/10 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Deuxième rendez-vous avec le tuteur entreprise &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Nous avons fait part de notre avancée en matière de prise en main et des problèmes rencontrés en matière de développement.&lt;br /&gt;
Les lunettes ORA sont commandées elles arrivent d'ici la fin octobre.&lt;br /&gt;
&lt;br /&gt;
La première version V1 de l'application pour Google Glass à livrer pour la mi-novembre est fixée.&lt;br /&gt;
&lt;br /&gt;
En partant d'une position connue (en dur dans l'application) dans l'entrepôt, elle indiquera à un utilisateur les emplacements libres les plus proches.&lt;br /&gt;
&lt;br /&gt;
L'état d'occupation des emplacements sera consulté et stocké dans l'application. Il n'y aura donc pas de gestion des conflits. Le sens de circulation dans l'entrepôt sera pris en compte.&lt;br /&gt;
Une communication avec la base de donnée de l'entrepôt n'est pour le moment pas d'actualité, cela nécessiterait des développements en amont.&lt;br /&gt;
La géolocalisation n'est pas au goût du jour non plus. L'adressage des emplacements dans l'entrepôt est intuitif, il est donc facile pour un magasinier de &lt;br /&gt;
se rendre à un emplacement en connaissant l'adresse.&lt;br /&gt;
&lt;br /&gt;
Pour l'IHM, nous nous inspirerons des applications pour Google Glass (les Glasswares) de type GPS.&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Premiers programmes sur Google Glass &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Pour nous familiariser avec la programmation sur ce genre d'appareil nous avons tous deux décidé de suivre en premier le tutoriel Android d'un site spécialisé. Cela afin de mieux comprendre le système Android, avec les concepts d'activités, de view etc.&lt;br /&gt;
Dans un deuxième temps nous avons choisi de suivre plusieurs tutoriels nous expliquant la prise en main basique des lunettes afin de saisir les particularités de leur programmation.&lt;br /&gt;
&lt;br /&gt;
Le plus dur étant finalement de comprendre les liens entre tous les fichiers du projets, les problèmes de drivers et d'upload simple que nous avons rencontrés et l’exécution du programme sur les lunettes. Des choses que nous arrivons maintenant à maitriser mais qui était floues à l'origine.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 13/10 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Programmation et gestion des interactions &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Durant cette semaine nous avons commencé a vraiment toucher aux fonctionnalités des Glass. Pour rester en main libre, nous avons fait des recherches et commencé à programmer de la reconnaissance vocale. Nous avons ainsi crée un système de navigation basique par commande vocale dans différents menus. Pour un accès rapide à l'application et toujours dans la même optique nous avons réussi à inclure le lancement de notre logiciel à partir du &amp;quot;Ok Glass&amp;quot; menu qui est le menu de lancement d'application par commande vocale des Google Glass. Voici un aperçu du résultat:&lt;br /&gt;
[[Fichier:V0_menu.png|1000px|center]]&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Analyse et évaluation du rendu &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Le début de la prise en main des fonctionnalités des Google Glass n'a pas été facile étant donné que la plupart des fonctionnalités sont propres à ce genre d'appareil. De plus elles nécessitent des techniques spéciales de programmation qui ne sont pas toujours très utilisées donc il est parfois difficile de trouver des exemples sur internet.&lt;br /&gt;
Néanmoins après l'implémentation de ces fonctionnalités nous avons pu rencontrer quelques difficultés de reconnaissance. En effet, les Google Glass possèdent un dictionnaire de mots/phrases pour la reconnaissance vocale mais elles nous permettent aussi d'écrire n'importe quelle phrase dans le mode développeur. Les phrases du dictionnaires ne posent aucun problème mais les phrases que nous écrivons sont parfois dures à reconnaitre. La reconnaissance de lettre seule ou de certains numéros est par exemple quasi impossible ou très aléatoire.&lt;br /&gt;
Le système de vu est quant à lui plutôt facile à prendre en main et intuitif dans l'utilisation.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 20/10 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Premiere structure de donnée &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Nous avons opté pour une structure de donnée récursive. Une Cellule, contenant des Allées, qui contiennent des Baies, contenant des Rangées, contenant des Emplacements.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Structure_export_resized.png|750px|center]]&lt;br /&gt;
Nous avons conçu cette structure de donnée pour qu'elle génère, dans un premier temps &amp;quot;en dur&amp;quot;, une cellule contenant des emplacements automatiquement adressés à la manière de ceux présent dans l'entrepôt. Ces adresses sont de la forme &amp;quot;D61A514&amp;quot; traduisez &amp;quot; Cellule 6 Allée 1A Baie 5 Rang 1 Niveau 4&amp;quot;.&lt;br /&gt;
Cette structure prend on compte le sens de circulation dans l'entrepôt.&lt;br /&gt;
Lors de futures interactions avec une base de donnée, cette structure serait sujette à évolution par une modification des méthodes de génération/modification du statut des adresses en fonction de cette base de donnée. Mais celle-ci constitue essentiellement une base pour appréhender plus pratiquement les problématiques de recherches de l'emplacement le plus proche.&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Prise en main de l'interface &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Nous avons déjà abordé les layouts java en TP donc il a été assez facile de commencer à faire des interfaces graphiques simples. Nous avons construit une interface graphique simple pour de faire une démonstration du programme aux tuteurs entreprise afin qu'ils comprennent bien le fonctionnement de notre algorithme.&lt;br /&gt;
L'interface graphique finale du programme sera très sobre afin de ne pas donner trop gêner le magasinier dans sa tâche.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 27/10 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Chemin optimal : Parcours intelligent Vs Sélection intelligente &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Un premier algorithme de recherche de l'emplacement le plus proche a été développé, celui-ci ne prend en compte qu'un seul scénario. &lt;br /&gt;
Celui de la position de départ (quai de déchargement où reviendra constamment le magasinier aprés chaque livraison) correspondante à la première allée de l'entrepôt, et en prenant en compte le sens de circulation. &lt;br /&gt;
A partir de ce moment, nous avons dégager deux grandes manières d'appréhender le problème.&lt;br /&gt;
&lt;br /&gt;
* Un parcours intelligent de la structure de donnée. C'est à dire parcourir les emplacements les plus proches, et choisir le premier emplacement libre. Une solution complexe à réaliser sur le plan algorithmique. En tenant compte du sens de circulation, il apparait que l'emplacement libre &amp;quot;leplusproche&amp;quot; (à vol d'oiseau) trouvé le plus tôt, ne correspondrait pas forcément à l'emplacement le plus proche compte tenu du chemin emprunté par un magasinier. Et c'est plutôt l'intérêt de cette algorithme.(Sauf dans l'unique cas où l'emplacement libre se trouve directement dans l'allée faisant face à la position de départ du magasinier, et le sens de circulation lui permet directement de se rendre à l'emplacement sans détour).&lt;br /&gt;
&lt;br /&gt;
* Une sélection intelligente parmi les emplacements libres. Leurs adresses renseignent à quelles allées, les emplacements libres appartiennent, donc renseignent sur le sens de circulation. A partir de la position de départ du magasinier et de l'ensemble des emplacements libres, on peut calculer la distance nécessaire à celui-ci pour les atteindre. Pour ainsi choisir l'adresse pour laquelle la distance est minimale.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 3/11 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Chemin optimal : sélection intelligente des adresses &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Nous avons écrit une premiere méthode de détermination. &lt;br /&gt;
On choisit l'emplacement, parmi tous ceux qui sont libres, pour lequel la distance de parcours est minimale entre le départ et celui-ci. &lt;br /&gt;
Ici l'unité de distance est la baie. La simplicité de l'algorithme réside dans le fait que le magasinier ne transporte qu'une seule caisse à la fois et repars toujours au même point de départ.&lt;br /&gt;
&lt;br /&gt;
Ci dessous un plan de l'entrepôt.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:schema_entrepot.png|750px|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Si on se place à l'entrée de l'Allée A :&lt;br /&gt;
&lt;br /&gt;
**le déplacement jusqu'à A4 (sens de circulation direct) est de : &lt;br /&gt;
&lt;br /&gt;
                        Y baies - (indice de la baie/2 +indice de la baie % 2) &lt;br /&gt;
&lt;br /&gt;
**le déplacement jusqu'à B1 (sens de circulation indirect) est de : &lt;br /&gt;
&lt;br /&gt;
                        Y baies + différence entre l'allée A et B donc X baies + indice de la baie/2 +indice de la baie % 2&lt;br /&gt;
**le déplacement jusqu'à C1 (sens de circulation direct) est de : &lt;br /&gt;
                      &lt;br /&gt;
                        Y baies - (indice de la baie/2 +indice de la baie % 2)+différence entre l'allée A et C donc 2*X baies.&lt;br /&gt;
&lt;br /&gt;
*Si on se place à l'entrée de l'Allée B :&lt;br /&gt;
**le déplacement jusqu'à B1 (sens de circulation indirect avec contournement) est de : &lt;br /&gt;
                        &lt;br /&gt;
                        2*X baies + Y baies + 2*X baies + (indice de la baie/2 +indice de la baie % 2)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On peut généraliser l'ensemble de ces situations de déplacement avec l'algorithme suivant :&lt;br /&gt;
&lt;br /&gt;
Pseudo code&lt;br /&gt;
&lt;br /&gt;
  Leplusproche( Allee depart )&lt;br /&gt;
    distance_la_plus_petite = valeurMAX&lt;br /&gt;
      le_plus_proche=&amp;quot;&amp;quot;&lt;br /&gt;
         Pour chaque Allee de Cellule&lt;br /&gt;
           sens=Allee.sens&lt;br /&gt;
           Pour chaque Baie de Allee&lt;br /&gt;
             Pour chaque Rang de Allee&lt;br /&gt;
 	       Pour chaque Emplacement de Rang&lt;br /&gt;
                Si Emplacement estlibre &lt;br /&gt;
                &lt;br /&gt;
                indice_baie = selection_indice_baie(Emplacement.adresse)&lt;br /&gt;
   		 allee_cible = selection_indice_allee(Emplacement.adresse)  &lt;br /&gt;
   		 difference_allee = valeur_absolue(depart -cible) &lt;br /&gt;
                    Si difference_allee==0 et sens.estindirect&lt;br /&gt;
                      //sens indirect +contournement&lt;br /&gt;
                      distance_actuelle=(indice_baie/2)+indice_baie%2+(2*(difference_allee))+4*X+Y			&lt;br /&gt;
                    Sinon	&lt;br /&gt;
                        Si sens estdirect&lt;br /&gt;
                          //sens direct &lt;br /&gt;
                          distance_actuelle=(Y-((indice_baie/2)+indice_baie%2))+2*difference_allee&lt;br /&gt;
                        Sinon&lt;br /&gt;
                          //sens indirect mais pas de contournement&lt;br /&gt;
                          distance_actuelle=((indice_baie/2)+indice_baie%2)+2*difference_allee+Y&lt;br /&gt;
                        Finsi	&lt;br /&gt;
                    Finsi	&lt;br /&gt;
                    Si distance_actuelle &amp;lt; distance_la_plus_petite&lt;br /&gt;
                      le_plus_proche=Emplacement.adresse&lt;br /&gt;
                      distance_la_plus_petite=distance_actuelle&lt;br /&gt;
                    Finsi&lt;br /&gt;
                Finsi  &lt;br /&gt;
            Finpour&lt;br /&gt;
          Finpour&lt;br /&gt;
        Finpour&lt;br /&gt;
      Finpour&lt;br /&gt;
    retourne le_plus_proche&lt;br /&gt;
  Finleplusproche&lt;br /&gt;
&lt;br /&gt;
Cet algorithme nous donne satisfaction (dans le cadre de la V1)&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 10/11 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Programmation et gestion des interactions &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Aprés quelques difficultés vis à vis de la gestion des menus vocaux sur les lunettes qui ne fonctionnent pas de la même manière que les menus classiques sous android, nous avons étoffé les interactions possible avec l'application des google glass. (Nous souhaitions inflater un deuxième menu pour interagir de manière plus contextuelle, il fallait le faire dans la méthode onCreatePanelMenu dont l'appel serait forcé avec getWindow().invalidatePanelMenu(WindowUtils.FEATURE_VOICE_COMMANDS) plutôt que dans onPrepareOptionsMenu forcée par invalidateOptionMenu()...) &lt;br /&gt;
&lt;br /&gt;
schéma d'utilisation...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Proposition projet affichage télévision &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Tele_concept.png|200px|thumb|right]]&lt;br /&gt;
&lt;br /&gt;
Notre tuteur nous a contacté pour nous proposer d'étudier un second projet en parallèle au projet initial. Celui consistant à gérer l'affichage d'information personnalisé d'un magasinier passant à proximité d'un écran de télévision. Nous devons effectuer un Proof Of Concept (POC) et réfléchir à ce sujet.&lt;br /&gt;
L'utilisation du BLE est donc de nouveau d'actualité, car je rappel que sont utilité était discutable dans une réalité métier du projet initial. La question étant plus de savoir comment gérer le système du coté du téléviseur.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Le concept de base étant de :&lt;br /&gt;
* Fournir une beacon aux magasiniers de l'entrepôt.&lt;br /&gt;
* Installer une télévision sur un centre de vie dans l'entrepôt avec une beacon&lt;br /&gt;
* Pousser du contenu personnalisé au magasinier qui se présente devant la tv dans son centre de vie&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 17/11 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Brainstorming à Polytech &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Dans la cadre du POC sur l'affichage personnalisé sur une télévision, nous avons profité d'un exercice de management pour faire participer la classe à notre projet. Grâce à cette intervention nous avons pu confirmer nos idées sur les technologies à utiliser. Mais nous avons surtout eu une multitude de propositions sur les données à afficher sur l'écran.&lt;br /&gt;
&lt;br /&gt;
Pour plus détails, le compte rendu est disponible à ce lien:&lt;br /&gt;
&lt;br /&gt;
'''Compte Rendu Brainstorming 17/11/2014 :''' [[Fichier:Compte_Rendu_POC_17_11.pdf]]&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Entretien avec notre tuteur entreprise &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Durant cet entretien, nous avons livré la première version de l'application et nous avons discuté de la suite du projet.&lt;br /&gt;
Ci joint le Compte Rendu.&lt;br /&gt;
&lt;br /&gt;
'''Compte Rendu  19/11/2014 :''' [[Fichier:Compte_Rendu_19_11.pdf]]&lt;br /&gt;
&lt;br /&gt;
De cette réunion, les points suivants en sont sortis:&lt;br /&gt;
&lt;br /&gt;
*Une reconnaissance vocale en langue française sur les lunettes serait plus intéressante pour les employés (une piste serait d’utiliser l’outil pocketsphinx-  android).&lt;br /&gt;
*Par rapport à l'IHM, il faudrait mettre l’affichage au premier plan sur les Google Glass pour une démo auprés des parties prenantes du projet.&lt;br /&gt;
*Choisir une architecture pour l’affichage d’information personnalisées.&lt;br /&gt;
**La télévision connectée à une raspberry qui communiquerait via un dongle BLE avec le beacon d’un magasinier, ce qui permettrait l’identification de celui-ci prés de la Télévision, et déclencherait un processus d’échange d’information. (Communication via le protocole Bluetooh, wifi entre les lunettes et la Raspberry  ou communication avec la Raspberry avec la Base de Donnée sur le réseau de l’entreprise)&lt;br /&gt;
**Une télévision connectée en continu à un site internet via un dongle HDMI.&lt;br /&gt;
**Une tablette android géante supportant le BLE, ou utilisant un dongle BLE.&lt;br /&gt;
* Réaliser le portage de l’application sur le prototype des lunettes ORA.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 24/11 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Reconnaissance vocale en Français &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Pocket Sphinx Android est une librairie permettant de faire de la reconnaissance vocale d'un langage donné sur un système android en offline.&lt;br /&gt;
Pour supporter une langue, elle nécessite: &lt;br /&gt;
*un modèle acoustique (ensemble d'informations pour le traitement sonore)&lt;br /&gt;
*un dictionnaire associant les mots et leur phonèmes&lt;br /&gt;
*une grammaire, c'est un fichier définissant comment seraient articulé les mots à reconnaître et limitant les possibilités de langage).&lt;br /&gt;
&lt;br /&gt;
La grammaire étant un automate. Voici un exemple de la grammaire menu.gram pour la reconnaissance de la porte de déchargement.&lt;br /&gt;
[[Fichier:Arborescence_pocket_sphinx.png|200px|thumb|right|PocketSphinx dans un projet Android]]&lt;br /&gt;
&lt;br /&gt;
  #JSGF V1.0;&lt;br /&gt;
  grammar menu;&lt;br /&gt;
  &amp;lt;porte&amp;gt; = porte a |&lt;br /&gt;
            porte b |&lt;br /&gt;
            porte c |&lt;br /&gt;
            porte d |&lt;br /&gt;
            porte e |&lt;br /&gt;
            porte f |&lt;br /&gt;
            porte g |&lt;br /&gt;
            porte h |&lt;br /&gt;
            porte i |&lt;br /&gt;
            porte j ;&lt;br /&gt;
  public &amp;lt;porte&amp;gt; = &amp;lt;porte&amp;gt;+;&lt;br /&gt;
&lt;br /&gt;
Un extrait du dictionnaire french_letter.dic associé avec les phonemes&lt;br /&gt;
&lt;br /&gt;
  a aa &amp;lt;-- juste la lettre a et son phoneme &lt;br /&gt;
  autre au tt rr&lt;br /&gt;
  autre(2) au tt rr ee &lt;br /&gt;
  b bb &lt;br /&gt;
  c ss &lt;br /&gt;
  d dd ei d(2) dd ait &lt;br /&gt;
  e eu e(2) eu zz &lt;br /&gt;
  f ai ff &lt;br /&gt;
  g jj ei g(2) gg ai &lt;br /&gt;
  h aa ch  &lt;br /&gt;
  i ii &lt;br /&gt;
  j jj yy j(2) jj ii&lt;br /&gt;
  porte pp oo rr tt&lt;br /&gt;
  porte(2) pp oo rr tt ee&lt;br /&gt;
  portes(2) pp oo rr tt ee&lt;br /&gt;
  portes(3) pp oo rr tt ee zz&lt;br /&gt;
  portes(4) pp oo rr tt zz&lt;br /&gt;
&lt;br /&gt;
Le modèle acoustique que nous avons téléchargé étant inclu dans lium_french_f0&lt;br /&gt;
&lt;br /&gt;
Nous avons testé la reconnaissance vocale sur un téléphone android, les mots sont, dans la majorité des cas, bien reconnus.&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Comparaison architectures projet TV &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Au niveau de l’architecture nous avons établi plusieurs propositions après la réunion avec notre tuteur:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour une Raspberry Pi avec un dongle BLE :&lt;br /&gt;
* Installation OS Linux sur la Raspberry&lt;br /&gt;
* Librairie BlueZ pour l’utilisation du BLE (tests rapides effectués sur Linux avec le Dongle)&lt;br /&gt;
* Interface graphique avec une bibliothèque comme Qt (ou encore SDL…)&lt;br /&gt;
* Prix : Rpi = 26€ (chez RadioSpare), Dongle = 10€, TV = à partir de 358€ pour 117cm, + Connectique vidéo. Total = 394€&lt;br /&gt;
&lt;br /&gt;
Pour un écran ViewSonic VSD231 :&lt;br /&gt;
* Possède une API Bluetooth classic + API BLE&lt;br /&gt;
* Interface graphique Android (View, Layout...)&lt;br /&gt;
* Prix : écran ViewSonic VSD231 = 558 € pour 58 cm (chez ViewSonic).&lt;br /&gt;
&lt;br /&gt;
Récupération d’informations :&lt;br /&gt;
* Si données sur les lunettes : Bluetooth ou Wifi.&lt;br /&gt;
* Si données sur serveur : Ethernet ou Wifi.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Vu les propositions possibles nous pensons que la première proposition permettra une meilleure souplesse dans le développement mais serait un peu plus compliquée. Mais nous la trouvons aussi plus intéressante à faire de plus elle est moins coûteuse et permet d'utiliser un écran plus grand. Le développement sur tablette serait sûrement plus rapide à faire en contrepartie.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 01/12 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Conférence GlassCamp à l'Imaginarium &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
GlassCamp est une association qui essaye de répandre l'utilisation de toute les Smart Glass en général. Elle propose de multiples conférences dans lesquelles ils essayent de montrer au public l’intérêt de développer sur ces appareils. Dans le cadre de notre projet, notre tuteur nous a proposé de participer à cette présentation afin de mieux s’approprier le sujet. La conférence a eu lieu le 4 décembre à l'Imaginarium: une grande partie était plutôt tournée vers la présentation mais nous avons apprîs plusieurs choses intéressantes qui sont décrites dans le compte rendu.&lt;br /&gt;
&lt;br /&gt;
'''Compte Rendu Conférence 04/12/2014 :''' [[Fichier:Compte_Rendu_Conf_GlassCamp.pdf]]&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 08/12 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 05/01 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 08/01 &amp;lt;/font&amp;gt;==&lt;/div&gt;</summary>
		<author><name>Jgondry</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=P22_Google_Glass_en_logistique&amp;diff=15315</id>
		<title>P22 Google Glass en logistique</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=P22_Google_Glass_en_logistique&amp;diff=15315"/>
				<updated>2015-01-17T13:33:11Z</updated>
		
		<summary type="html">&lt;p&gt;Jgondry : /*  Semaine du 01/12  */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Introduction =&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Description du sujet &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
Notre projet vise à l’optimisation du stockage et de l’adressage des palettes dans un entrepôt. En effet, lors du déchargement d’un camion, chercher un emplacement libre pour les palettes dans un entrepôt occupant une grande superficie fait perdre du temps et donc de la productivité dans le stockage. Sachant qu’un cariste perd un temps non négligeable à la recherche d’emplacement disponible, optimiser ce temps de recherche permettrait de gagner du temps sur cette opération.&lt;br /&gt;
Développer un prototype permettrait de rendre compte des moyens existants qui pourrait être mis en place dans une solution métier.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Analyse du sujet &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Google_glass.png|200px|thumb|right|Paire de Google Glass]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Optinvent_ora.png|200px|thumb|right|Paire de ORA d'Optivent]]&lt;br /&gt;
&lt;br /&gt;
Notre projet consiste à fluidifier le déchargement en indiquant au cariste l’emplacement libre le plus proche. Pour ne pas gêner le travail des employés, un dispositif main-libre comme une Google Glass semble adapté. Ce projet soulève plusieurs problématiques : développer une interface homme-machine apportant une information pertinente pour l’utilisateur sans pour autant être perturbante. &lt;br /&gt;
&lt;br /&gt;
L’idée serait de réaliser dans les grandes lignes un système similaire à ce scénario d’utilisation :&lt;br /&gt;
http://n.mynews.ly/!lB.Bs4fw&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Moyen d’affichage de l’Informations pertinentes'''&lt;br /&gt;
&lt;br /&gt;
Les Google Glass ne sont pas les seules smart glasses sur le marché. Il nous faudra choisir les appareils les plus adaptés. L’information pertinente pourrait être une direction à suivre dans l’entrepôt ou simplement un numéro d’emplacement (adressage intuitif de l’entrepôt). &lt;br /&gt;
&lt;br /&gt;
'''Géolocalisation'''&lt;br /&gt;
&lt;br /&gt;
Dans le cas d’une direction à suivre se pose le problème de la géolocalisation indoor dont l’utilité et la faisabilité seront discutés au fil des réunions avec l’entreprise. &lt;br /&gt;
&lt;br /&gt;
'''Adressage / flashage'''&lt;br /&gt;
&lt;br /&gt;
En ce qui concerne l’adressage des palettes en entrepôt, la solution existante repose sur un flashage des codes barres associés à l’emplacement venant d’être occupé. Une étude de faisabilité/utilité sera aussi faite sur une solution de remplacement grâce aux possibilités qu’offrent les smart glasses.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Cahier des charges &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
En partant de l'analyse du sujet et des discussion avec notre tuteur, nous avons définie un cahier des charges plus précis des tâches à accomplir:&lt;br /&gt;
&lt;br /&gt;
* '''Développer un système embarqué sur une paire de lunette Smart Glass'''&lt;br /&gt;
** Comparer les différentes offres en matière de Smart Glass notamment Google Glass &amp;amp; ORA de Optinvent&lt;br /&gt;
** Concevoir une interface homme-machine non perturbante pour l'utilisateur.&lt;br /&gt;
* '''Etudier la nécessité d'utiliser une géolocalisation en entrepôt et l'implémenter si besoin'''&lt;br /&gt;
** Via RSSI (Wifi, Bluetooh Low Energy ...)&lt;br /&gt;
** Via traitement d'images (reconnaissance de la signalétique en entrepôt)&lt;br /&gt;
* '''Etudier les possibilités d'optimisation du système d'adressage des palettes'''&lt;br /&gt;
** Implémenter la reconnaissance de code barre&lt;br /&gt;
** La tester en réalité métier (utilité ajoutée, habitude des magasiniers, vitesse de traitement...)&lt;br /&gt;
&lt;br /&gt;
Le cahier des charges est encore en cours de construction&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Matériel utilisé &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; SmartGlass &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Lors de la réunion nous avons discuté des technologies à utiliser dans le projet, et plus particulièrement des différentes SmartGlass. En effet, il existe une multitude de sociétés qui développe ce genre de lunettes. Nous commencerons à utiliser les Google Glass étant donné que notre tuteur en a déjà commandé puis nous développerons sur les lunettes ORA de Optivent qui seront livrées fin octobre. Nous devrons donc faire un comparatif entre ces deux SmartGlass puis étudier les autres appareils disponibles sur le marché.&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Localisation &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
L'utilisation de la géolocalisation dans le projet est à débattre. Mais des tests seront probablement mis en place. L'entreprise possède quelque iBeacons BLE Estimote dans ses bureaux d'innovations que nous pourrons emprunter.&lt;br /&gt;
Dans le cas où leur gain d'informations serait utile il nous faudra comparer les modèles disponibles. Choisir un nombre de module et des emplacements stratégiques dans l'entrepôt afin d'avoir une localisation assez précise pour l'application.&lt;br /&gt;
&lt;br /&gt;
L'utilisation d'autres technologies de géolocalisation a été discuté comme le Wifi ou le XBee mais le BLE semblait le plus adapté dans le cadre de notre projet.&lt;br /&gt;
&lt;br /&gt;
= Déroulement du projet =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 22/09 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Réunion avec le tuteur entreprise dans l’entrepôt &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Nous avons observé en situation le problème et discuté des besoins, des moyens déjà utilisables. Il nous faudra prendre en compte plusieurs paramètres dans notre réflexion tels que le système de stockage et d'adressages des palettes, sens de circulation des caristes, superficie des zones à desservir, durée de livraison.&lt;br /&gt;
Nous avons suggéré des étapes de validation intermédiaire du système par les futurs utilisateurs et pour cela nous rencontrerons le chef d'équipe des magasiniers lorsque qu'une version sera assez développée.&lt;br /&gt;
&lt;br /&gt;
Nous avons défini avec le tuteur les premières deadlines du projet, voici la timeline récapitulative:&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Timeline_1.jpg||center|1000px]]&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Compte Rendu &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Nous avons rédigé un compte rendu de la première réunion détaillant les spécifications des versions des livrables, des schémas et les sujets abordés lors de la rencontre :&lt;br /&gt;
&lt;br /&gt;
'''Compte Rendu réunion du 25/09/2014 :''' [[Fichier:Compte_Rendu_25_09.pdf]]&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 29/09 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Découverte des Google Glass &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
*Prise en main des Google Glass. &lt;br /&gt;
*Installation d'applications (.apk) grand public. Nous avons utilisé l'outil Android Debug Bridge(adb). Se mettre à la place d'un utilisateur.&lt;br /&gt;
*L'une des deux lunettes qui serait retenue imposera forcément le développement d'une application android (ou d'une technologie trés proche d'android, pour les Google Glass, se basant sur le Glass Development Kit qui est un add-on au SDK classique d'android). Nous avons donc téléchargé les packages nécessaires pour commencer à développer. &lt;br /&gt;
** Nous commençons à nous former sur les technologies android :développement d'applications minimaliste.&lt;br /&gt;
** Installation de nos premières apk minimalistes pour Android.&lt;br /&gt;
** Installation d'une application minimaliste sur la Google Glass.&lt;br /&gt;
&lt;br /&gt;
Voici un comparatif réalisé entre les lunettes ORA et les Google Glass.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Différences Google Glass/ORA &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!   !! Google Glass !! ORA &lt;br /&gt;
|-&lt;br /&gt;
|Connectique&lt;br /&gt;
|Compatible BLE (à partir de la XE 16 KitKat Update), Wifi &lt;br /&gt;
|Compatible BLE, Wifi&lt;br /&gt;
|-&lt;br /&gt;
|Autonomie en utilisation normale&lt;br /&gt;
|de 1h à 2h &lt;br /&gt;
|de 4h à 8h&lt;br /&gt;
|-&lt;br /&gt;
|Son&lt;br /&gt;
|Conductivité Cranienne&lt;br /&gt;
|Prise jack&lt;br /&gt;
|-&lt;br /&gt;
|Interface&lt;br /&gt;
|Ecran occupant une faible superficie dans le champ de vision &lt;br /&gt;
|Ecran 2 positions (moyennes et basses), plus étendu permettant une réalité augmentée &lt;br /&gt;
|-&lt;br /&gt;
|Système d'exploitation&lt;br /&gt;
|Android 4.4&lt;br /&gt;
|Android 4.2.2&lt;br /&gt;
|-&lt;br /&gt;
|Calculs&lt;br /&gt;
|CPU &amp;amp; GPU&lt;br /&gt;
|CPU &amp;amp; GPU&lt;br /&gt;
|-&lt;br /&gt;
|Prix&lt;br /&gt;
|1500$ &lt;br /&gt;
|949$&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 06/10 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Deuxième rendez-vous avec le tuteur entreprise &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Nous avons fait part de notre avancée en matière de prise en main et des problèmes rencontrés en matière de développement.&lt;br /&gt;
Les lunettes ORA sont commandées elles arrivent d'ici la fin octobre.&lt;br /&gt;
&lt;br /&gt;
La première version V1 de l'application pour Google Glass à livrer pour la mi-novembre est fixée.&lt;br /&gt;
&lt;br /&gt;
En partant d'une position connue (en dur dans l'application) dans l'entrepôt, elle indiquera à un utilisateur les emplacements libres les plus proches.&lt;br /&gt;
&lt;br /&gt;
L'état d'occupation des emplacements sera consulté et stocké dans l'application. Il n'y aura donc pas de gestion des conflits. Le sens de circulation dans l'entrepôt sera pris en compte.&lt;br /&gt;
Une communication avec la base de donnée de l'entrepôt n'est pour le moment pas d'actualité, cela nécessiterait des développements en amont.&lt;br /&gt;
La géolocalisation n'est pas au goût du jour non plus. L'adressage des emplacements dans l'entrepôt est intuitif, il est donc facile pour un magasinier de &lt;br /&gt;
se rendre à un emplacement en connaissant l'adresse.&lt;br /&gt;
&lt;br /&gt;
Pour l'IHM, nous nous inspirerons des applications pour Google Glass (les Glasswares) de type GPS.&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Premiers programmes sur Google Glass &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Pour nous familiariser avec la programmation sur ce genre d'appareil nous avons tous deux décidé de suivre en premier le tutoriel Android d'un site spécialisé. Cela afin de mieux comprendre le système Android, avec les concepts d'activités, de view etc.&lt;br /&gt;
Dans un deuxième temps nous avons choisi de suivre plusieurs tutoriels nous expliquant la prise en main basique des lunettes afin de saisir les particularités de leur programmation.&lt;br /&gt;
&lt;br /&gt;
Le plus dur étant finalement de comprendre les liens entre tous les fichiers du projets, les problèmes de drivers et d'upload simple que nous avons rencontrés et l’exécution du programme sur les lunettes. Des choses que nous arrivons maintenant à maitriser mais qui était floues à l'origine.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 13/10 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Programmation et gestion des interactions &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Durant cette semaine nous avons commencé a vraiment toucher aux fonctionnalités des Glass. Pour rester en main libre, nous avons fait des recherches et commencé à programmer de la reconnaissance vocale. Nous avons ainsi crée un système de navigation basique par commande vocale dans différents menus. Pour un accès rapide à l'application et toujours dans la même optique nous avons réussi à inclure le lancement de notre logiciel à partir du &amp;quot;Ok Glass&amp;quot; menu qui est le menu de lancement d'application par commande vocale des Google Glass. Voici un aperçu du résultat:&lt;br /&gt;
[[Fichier:V0_menu.png|1000px|center]]&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Analyse et évaluation du rendu &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Le début de la prise en main des fonctionnalités des Google Glass n'a pas été facile étant donné que la plupart des fonctionnalités sont propres à ce genre d'appareil. De plus elles nécessitent des techniques spéciales de programmation qui ne sont pas toujours très utilisées donc il est parfois difficile de trouver des exemples sur internet.&lt;br /&gt;
Néanmoins après l'implémentation de ces fonctionnalités nous avons pu rencontrer quelques difficultés de reconnaissance. En effet, les Google Glass possèdent un dictionnaire de mots/phrases pour la reconnaissance vocale mais elles nous permettent aussi d'écrire n'importe quelle phrase dans le mode développeur. Les phrases du dictionnaires ne posent aucun problème mais les phrases que nous écrivons sont parfois dures à reconnaitre. La reconnaissance de lettre seule ou de certains numéros est par exemple quasi impossible ou très aléatoire.&lt;br /&gt;
Le système de vu est quant à lui plutôt facile à prendre en main et intuitif dans l'utilisation.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 20/10 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Premiere structure de donnée &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Nous avons opté pour une structure de donnée récursive. Une Cellule, contenant des Allées, qui contiennent des Baies, contenant des Rangées, contenant des Emplacements.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Structure_export_resized.png|750px|center]]&lt;br /&gt;
Nous avons conçu cette structure de donnée pour qu'elle génère, dans un premier temps &amp;quot;en dur&amp;quot;, une cellule contenant des emplacements automatiquement adressés à la manière de ceux présent dans l'entrepôt. Ces adresses sont de la forme &amp;quot;D61A514&amp;quot; traduisez &amp;quot; Cellule 6 Allée 1A Baie 5 Rang 1 Niveau 4&amp;quot;.&lt;br /&gt;
Cette structure prend on compte le sens de circulation dans l'entrepôt.&lt;br /&gt;
Lors de futures interactions avec une base de donnée, cette structure serait sujette à évolution par une modification des méthodes de génération/modification du statut des adresses en fonction de cette base de donnée. Mais celle-ci constitue essentiellement une base pour appréhender plus pratiquement les problématiques de recherches de l'emplacement le plus proche.&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Prise en main de l'interface &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Nous avons déjà abordé les layouts java en TP donc il a été assez facile de commencer à faire des interfaces graphiques simples. Nous avons construit une interface graphique simple pour de faire une démonstration du programme aux tuteurs entreprise afin qu'ils comprennent bien le fonctionnement de notre algorithme.&lt;br /&gt;
L'interface graphique finale du programme sera très sobre afin de ne pas donner trop gêner le magasinier dans sa tâche.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 27/10 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Chemin optimal : Parcours intelligent Vs Sélection intelligente &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Un premier algorithme de recherche de l'emplacement le plus proche a été développé, celui-ci ne prend en compte qu'un seul scénario. &lt;br /&gt;
Celui de la position de départ (quai de déchargement où reviendra constamment le magasinier aprés chaque livraison) correspondante à la première allée de l'entrepôt, et en prenant en compte le sens de circulation. &lt;br /&gt;
A partir de ce moment, nous avons dégager deux grandes manières d'appréhender le problème.&lt;br /&gt;
&lt;br /&gt;
* Un parcours intelligent de la structure de donnée. C'est à dire parcourir les emplacements les plus proches, et choisir le premier emplacement libre. Une solution complexe à réaliser sur le plan algorithmique. En tenant compte du sens de circulation, il apparait que l'emplacement libre &amp;quot;leplusproche&amp;quot; (à vol d'oiseau) trouvé le plus tôt, ne correspondrait pas forcément à l'emplacement le plus proche compte tenu du chemin emprunté par un magasinier. Et c'est plutôt l'intérêt de cette algorithme.(Sauf dans l'unique cas où l'emplacement libre se trouve directement dans l'allée faisant face à la position de départ du magasinier, et le sens de circulation lui permet directement de se rendre à l'emplacement sans détour).&lt;br /&gt;
&lt;br /&gt;
* Une sélection intelligente parmi les emplacements libres. Leurs adresses renseignent à quelles allées, les emplacements libres appartiennent, donc renseignent sur le sens de circulation. A partir de la position de départ du magasinier et de l'ensemble des emplacements libres, on peut calculer la distance nécessaire à celui-ci pour les atteindre. Pour ainsi choisir l'adresse pour laquelle la distance est minimale.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 3/11 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Chemin optimal : sélection intelligente des adresses &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Nous avons écrit une premiere méthode de détermination. &lt;br /&gt;
On choisit l'emplacement, parmi tous ceux qui sont libres, pour lequel la distance de parcours est minimale entre le départ et celui-ci. &lt;br /&gt;
Ici l'unité de distance est la baie. La simplicité de l'algorithme réside dans le fait que le magasinier ne transporte qu'une seule caisse à la fois et repars toujours au même point de départ.&lt;br /&gt;
&lt;br /&gt;
Ci dessous un plan de l'entrepôt.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:schema_entrepot.png|750px|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Si on se place à l'entrée de l'Allée A :&lt;br /&gt;
&lt;br /&gt;
**le déplacement jusqu'à A4 (sens de circulation direct) est de : &lt;br /&gt;
&lt;br /&gt;
                        Y baies - (indice de la baie/2 +indice de la baie % 2) &lt;br /&gt;
&lt;br /&gt;
**le déplacement jusqu'à B1 (sens de circulation indirect) est de : &lt;br /&gt;
&lt;br /&gt;
                        Y baies + différence entre l'allée A et B donc X baies + indice de la baie/2 +indice de la baie % 2&lt;br /&gt;
**le déplacement jusqu'à C1 (sens de circulation direct) est de : &lt;br /&gt;
                      &lt;br /&gt;
                        Y baies - (indice de la baie/2 +indice de la baie % 2)+différence entre l'allée A et C donc 2*X baies.&lt;br /&gt;
&lt;br /&gt;
*Si on se place à l'entrée de l'Allée B :&lt;br /&gt;
**le déplacement jusqu'à B1 (sens de circulation indirect avec contournement) est de : &lt;br /&gt;
                        &lt;br /&gt;
                        2*X baies + Y baies + 2*X baies + (indice de la baie/2 +indice de la baie % 2)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On peut généraliser l'ensemble de ces situations de déplacement avec l'algorithme suivant :&lt;br /&gt;
&lt;br /&gt;
Pseudo code&lt;br /&gt;
&lt;br /&gt;
  Leplusproche( Allee depart )&lt;br /&gt;
    distance_la_plus_petite = valeurMAX&lt;br /&gt;
      le_plus_proche=&amp;quot;&amp;quot;&lt;br /&gt;
         Pour chaque Allee de Cellule&lt;br /&gt;
           sens=Allee.sens&lt;br /&gt;
           Pour chaque Baie de Allee&lt;br /&gt;
             Pour chaque Rang de Allee&lt;br /&gt;
 	       Pour chaque Emplacement de Rang&lt;br /&gt;
                Si Emplacement estlibre &lt;br /&gt;
                &lt;br /&gt;
                indice_baie = selection_indice_baie(Emplacement.adresse)&lt;br /&gt;
   		 allee_cible = selection_indice_allee(Emplacement.adresse)  &lt;br /&gt;
   		 difference_allee = valeur_absolue(depart -cible) &lt;br /&gt;
                    Si difference_allee==0 et sens.estindirect&lt;br /&gt;
                      //sens indirect +contournement&lt;br /&gt;
                      distance_actuelle=(indice_baie/2)+indice_baie%2+(2*(difference_allee))+4*X+Y			&lt;br /&gt;
                    Sinon	&lt;br /&gt;
                        Si sens estdirect&lt;br /&gt;
                          //sens direct &lt;br /&gt;
                          distance_actuelle=(Y-((indice_baie/2)+indice_baie%2))+2*difference_allee&lt;br /&gt;
                        Sinon&lt;br /&gt;
                          //sens indirect mais pas de contournement&lt;br /&gt;
                          distance_actuelle=((indice_baie/2)+indice_baie%2)+2*difference_allee+Y&lt;br /&gt;
                        Finsi	&lt;br /&gt;
                    Finsi	&lt;br /&gt;
                    Si distance_actuelle &amp;lt; distance_la_plus_petite&lt;br /&gt;
                      le_plus_proche=Emplacement.adresse&lt;br /&gt;
                      distance_la_plus_petite=distance_actuelle&lt;br /&gt;
                    Finsi&lt;br /&gt;
                Finsi  &lt;br /&gt;
            Finpour&lt;br /&gt;
          Finpour&lt;br /&gt;
        Finpour&lt;br /&gt;
      Finpour&lt;br /&gt;
    retourne le_plus_proche&lt;br /&gt;
  Finleplusproche&lt;br /&gt;
&lt;br /&gt;
Cet algorithme nous donne satisfaction (dans le cadre de la V1)&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 10/11 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Programmation et gestion des interactions &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Aprés quelques difficultés vis à vis de la gestion des menus vocaux sur les lunettes qui ne fonctionnent pas de la même manière que les menus classiques sous android, nous avons étoffé les interactions possible avec l'application des google glass. (Nous souhaitions inflater un deuxième menu pour interagir de manière plus contextuelle, il fallait le faire dans la méthode onCreatePanelMenu dont l'appel serait forcé avec getWindow().invalidatePanelMenu(WindowUtils.FEATURE_VOICE_COMMANDS) plutôt que dans onPrepareOptionsMenu forcée par invalidateOptionMenu()...) &lt;br /&gt;
&lt;br /&gt;
schéma d'utilisation...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Proposition projet affichage télévision &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Tele_concept.png|200px|thumb|right]]&lt;br /&gt;
&lt;br /&gt;
Notre tuteur nous a contacté pour nous proposer d'étudier un second projet en parallèle au projet initial. Celui consistant à gérer l'affichage d'information personnalisé d'un magasinier passant à proximité d'un écran de télévision. Nous devons effectuer un Proof Of Concept (POC) et réfléchir à ce sujet.&lt;br /&gt;
L'utilisation du BLE est donc de nouveau d'actualité, car je rappel que sont utilité était discutable dans une réalité métier du projet initial. La question étant plus de savoir comment gérer le système du coté du téléviseur.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Le concept de base étant de :&lt;br /&gt;
* Fournir une beacon aux magasiniers de l'entrepôt.&lt;br /&gt;
* Installer une télévision sur un centre de vie dans l'entrepôt avec une beacon&lt;br /&gt;
* Pousser du contenu personnalisé au magasinier qui se présente devant la tv dans son centre de vie&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 17/11 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Brainstorming à Polytech &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Dans la cadre du POC sur l'affichage personnalisé sur une télévision, nous avons profité d'un exercice de management pour faire participer la classe à notre projet. Grâce à cette intervention nous avons pu confirmer nos idées sur les technologies à utiliser. Mais nous avons surtout eu une multitude de propositions sur les données à afficher sur l'écran.&lt;br /&gt;
&lt;br /&gt;
Pour plus détails, le compte rendu est disponible à ce lien:&lt;br /&gt;
&lt;br /&gt;
'''Compte Rendu Brainstorming 17/11/2014 :''' [[Fichier:Compte_Rendu_POC_17_11.pdf]]&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Entretien avec notre tuteur entreprise &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Durant cet entretien, nous avons livré la première version de l'application et nous avons discuté de la suite du projet.&lt;br /&gt;
Ci joint le Compte Rendu.&lt;br /&gt;
&lt;br /&gt;
'''Compte Rendu  19/11/2014 :''' [[Fichier:Compte_Rendu_19_11.pdf]]&lt;br /&gt;
&lt;br /&gt;
De cette réunion, les points suivants en sont sortis:&lt;br /&gt;
&lt;br /&gt;
*Une reconnaissance vocale en langue française sur les lunettes serait plus intéressante pour les employés (une piste serait d’utiliser l’outil pocketsphinx-  android).&lt;br /&gt;
*Par rapport à l'IHM, il faudrait mettre l’affichage au premier plan sur les Google Glass pour une démo auprés des parties prenantes du projet.&lt;br /&gt;
*Choisir une architecture pour l’affichage d’information personnalisées.&lt;br /&gt;
**La télévision connectée à une raspberry qui communiquerait via un dongle BLE avec le beacon d’un magasinier, ce qui permettrait l’identification de celui-ci prés de la Télévision, et déclencherait un processus d’échange d’information. (Communication via le protocole Bluetooh, wifi entre les lunettes et la Raspberry  ou communication avec la Raspberry avec la Base de Donnée sur le réseau de l’entreprise)&lt;br /&gt;
**Une télévision connectée en continu à un site internet via un dongle HDMI.&lt;br /&gt;
**Une tablette android géante supportant le BLE, ou utilisant un dongle BLE.&lt;br /&gt;
* Réaliser le portage de l’application sur le prototype des lunettes ORA.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 24/11 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Reconnaissance vocale en Français &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Pocket Sphinx Android est une librairie permettant de faire de la reconnaissance vocale d'un langage donné sur un système android en offline.&lt;br /&gt;
Pour supporter une langue, elle nécessite: &lt;br /&gt;
*un modèle acoustique (ensemble d'informations pour le traitement sonore)&lt;br /&gt;
*un dictionnaire associant les mots et leur phonèmes&lt;br /&gt;
*une grammaire, c'est un fichier définissant comment seraient articulé les mots à reconnaître et limitant les possibilités de langage).&lt;br /&gt;
&lt;br /&gt;
La grammaire étant un automate. Voici un exemple de la grammaire menu.gram pour la reconnaissance de la porte de déchargement.&lt;br /&gt;
[[Fichier:Arborescence_pocket_sphinx.png|200px|thumb|right|PocketSphinx dans un projet Android]]&lt;br /&gt;
&lt;br /&gt;
  #JSGF V1.0;&lt;br /&gt;
  grammar menu;&lt;br /&gt;
  &amp;lt;porte&amp;gt; = porte a |&lt;br /&gt;
            porte b |&lt;br /&gt;
            porte c |&lt;br /&gt;
            porte d |&lt;br /&gt;
            porte e |&lt;br /&gt;
            porte f |&lt;br /&gt;
            porte g |&lt;br /&gt;
            porte h |&lt;br /&gt;
            porte i |&lt;br /&gt;
            porte j ;&lt;br /&gt;
  public &amp;lt;porte&amp;gt; = &amp;lt;porte&amp;gt;+;&lt;br /&gt;
&lt;br /&gt;
Un extrait du dictionnaire french_letter.dic associé avec les phonemes&lt;br /&gt;
&lt;br /&gt;
  a aa &amp;lt;-- juste la lettre a et son phoneme &lt;br /&gt;
  autre au tt rr&lt;br /&gt;
  autre(2) au tt rr ee &lt;br /&gt;
  b bb &lt;br /&gt;
  c ss &lt;br /&gt;
  d dd ei d(2) dd ait &lt;br /&gt;
  e eu e(2) eu zz &lt;br /&gt;
  f ai ff &lt;br /&gt;
  g jj ei g(2) gg ai &lt;br /&gt;
  h aa ch  &lt;br /&gt;
  i ii &lt;br /&gt;
  j jj yy j(2) jj ii&lt;br /&gt;
  porte pp oo rr tt&lt;br /&gt;
  porte(2) pp oo rr tt ee&lt;br /&gt;
  portes(2) pp oo rr tt ee&lt;br /&gt;
  portes(3) pp oo rr tt ee zz&lt;br /&gt;
  portes(4) pp oo rr tt zz&lt;br /&gt;
&lt;br /&gt;
Le modèle acoustique que nous avons téléchargé étant inclu dans lium_french_f0&lt;br /&gt;
&lt;br /&gt;
Nous avons testé la reconnaissance vocale sur un téléphone android, les mots sont, dans la majorité des cas, bien reconnus.&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Comparaison architectures projet TV &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Au niveau de l’architecture nous avons établi plusieurs propositions après la réunion avec notre tuteur:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour une Raspberry Pi avec un dongle BLE :&lt;br /&gt;
* Installation OS Linux sur la Raspberry&lt;br /&gt;
* Librairie BlueZ pour l’utilisation du BLE (tests rapides effectués sur Linux avec le Dongle)&lt;br /&gt;
* Interface graphique avec une bibliothèque comme Qt (ou encore SDL…)&lt;br /&gt;
* Prix : Rpi = 26€ (chez RadioSpare), Dongle = 10€, TV = à partir de 358€ pour 117cm, + Connectique vidéo. Total = 394€&lt;br /&gt;
&lt;br /&gt;
Pour un écran ViewSonic VSD231 :&lt;br /&gt;
* Possède une API Bluetooth classic + API BLE&lt;br /&gt;
* Interface graphique Android (View, Layout...)&lt;br /&gt;
* Prix : écran ViewSonic VSD231 = 558 € pour 58 cm (chez ViewSonic).&lt;br /&gt;
&lt;br /&gt;
Récupération d’informations :&lt;br /&gt;
* Si données sur les lunettes : Bluetooth ou Wifi.&lt;br /&gt;
* Si données sur serveur : Ethernet ou Wifi.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Vu les propositions possibles nous pensons que la première proposition permettra une meilleure souplesse dans le développement mais serait un peu plus compliquée. Mais nous la trouvons aussi plus intéressante à faire de plus elle est moins coûteuse et permet d'utiliser un écran plus grand. Le développement sur tablette serait sûrement plus rapide à faire en contrepartie.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 01/12 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Conférence GlassCamp à l'Imaginarium &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
GlassCamp est une association qui essaye de répandre l'utilisation de toute les Smart Glass en général. Elle propose de multiples conférences dans lesquelles ils essayent de montrer au public l’intérêt de développer sur ces appareils. Dans le cadre de notre projet, notre tuteur nous a proposé de participer à cette présentation afin de mieux s’approprier le sujet. La conférence a eu lieu le 4 décembre à l'Imaginarium: une grande partie était plutôt tournée vers la présentation mais nous avons apprîs plusieurs choses intéressantes qui sont décrites dans le compte rendu.&lt;br /&gt;
&lt;br /&gt;
'''Compte Rendu Conférence 04/12/2014 :''' [[Fichier:Compte_Rendu_Conf_GlassCamp.pdf]]&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 08/12 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 01/01 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 08/01 &amp;lt;/font&amp;gt;==&lt;/div&gt;</summary>
		<author><name>Jgondry</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=P22_Google_Glass_en_logistique&amp;diff=15070</id>
		<title>P22 Google Glass en logistique</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=P22_Google_Glass_en_logistique&amp;diff=15070"/>
				<updated>2014-12-16T10:29:07Z</updated>
		
		<summary type="html">&lt;p&gt;Jgondry : /*  Semaine du 01/12  */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Introduction =&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Description du sujet &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
Notre projet vise à l’optimisation du stockage et de l’adressage des palettes dans un entrepôt. En effet, lors du déchargement d’un camion, chercher un emplacement libre pour les palettes dans un entrepôt occupant une grande superficie fait perdre du temps et donc de la productivité dans le stockage. Sachant qu’un cariste perd un temps non négligeable à la recherche d’emplacement disponible, optimiser ce temps de recherche permettrait de gagner du temps sur cette opération.&lt;br /&gt;
Développer un prototype permettrait de rendre compte des moyens existants qui pourrait être mis en place dans une solution métier.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Analyse du sujet &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Google_glass.png|200px|thumb|right|Paire de Google Glass]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Optinvent_ora.png|200px|thumb|right|Paire de ORA d'Optivent]]&lt;br /&gt;
&lt;br /&gt;
Notre projet consiste à fluidifier le déchargement en indiquant au cariste l’emplacement libre le plus proche. Pour ne pas gêner le travail des employés, un dispositif main-libre comme une Google Glass semble adapté. Ce projet soulève plusieurs problématiques : développer une interface homme-machine apportant une information pertinente pour l’utilisateur sans pour autant être perturbante. &lt;br /&gt;
&lt;br /&gt;
L’idée serait de réaliser dans les grandes lignes un système similaire à ce scénario d’utilisation :&lt;br /&gt;
http://n.mynews.ly/!lB.Bs4fw&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Moyen d’affichage de l’Informations pertinentes'''&lt;br /&gt;
&lt;br /&gt;
Les Google Glass ne sont pas les seules smart glasses sur le marché. Il nous faudra choisir les appareils les plus adaptés. L’information pertinente pourrait être une direction à suivre dans l’entrepôt ou simplement un numéro d’emplacement (adressage intuitif de l’entrepôt). &lt;br /&gt;
&lt;br /&gt;
'''Géolocalisation'''&lt;br /&gt;
&lt;br /&gt;
Dans le cas d’une direction à suivre se pose le problème de la géolocalisation indoor dont l’utilité et la faisabilité seront discutés au fil des réunions avec l’entreprise. &lt;br /&gt;
&lt;br /&gt;
'''Adressage / flashage'''&lt;br /&gt;
&lt;br /&gt;
En ce qui concerne l’adressage des palettes en entrepôt, la solution existante repose sur un flashage des codes barres associés à l’emplacement venant d’être occupé. Une étude de faisabilité/utilité sera aussi faite sur une solution de remplacement grâce aux possibilités qu’offrent les smart glasses.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Cahier des charges &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
En partant de l'analyse du sujet et des discussion avec notre tuteur, nous avons définie un cahier des charges plus précis des tâches à accomplir:&lt;br /&gt;
&lt;br /&gt;
* '''Développer un système embarqué sur une paire de lunette Smart Glass'''&lt;br /&gt;
** Comparer les différentes offres en matière de Smart Glass notamment Google Glass &amp;amp; ORA de Optinvent&lt;br /&gt;
** Concevoir une interface homme-machine non perturbante pour l'utilisateur.&lt;br /&gt;
* '''Etudier la nécessité d'utiliser une géolocalisation en entrepôt et l'implémenter si besoin'''&lt;br /&gt;
** Via RSSI (Wifi, Bluetooh Low Energy ...)&lt;br /&gt;
** Via traitement d'images (reconnaissance de la signalétique en entrepôt)&lt;br /&gt;
* '''Etudier les possibilités d'optimisation du système d'adressage des palettes'''&lt;br /&gt;
** Implémenter la reconnaissance de code barre&lt;br /&gt;
** La tester en réalité métier (utilité ajoutée, habitude des magasiniers, vitesse de traitement...)&lt;br /&gt;
&lt;br /&gt;
Le cahier des charges est encore en cours de construction&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Matériel utilisé &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; SmartGlass &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Lors de la réunion nous avons discuté des technologies à utiliser dans le projet, et plus particulièrement des différentes SmartGlass. En effet, il existe une multitude de sociétés qui développe ce genre de lunettes. Nous commencerons à utiliser les Google Glass étant donné que notre tuteur en a déjà commandé puis nous développerons sur les lunettes ORA de Optivent qui seront livrées fin octobre. Nous devrons donc faire un comparatif entre ces deux SmartGlass puis étudier les autres appareils disponibles sur le marché.&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Localisation &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
L'utilisation de la géolocalisation dans le projet est à débattre. Mais des tests seront probablement mis en place. L'entreprise possède quelque iBeacons BLE Estimote dans ses bureaux d'innovations que nous pourrons emprunter.&lt;br /&gt;
Dans le cas où leur gain d'informations serait utile il nous faudra comparer les modèles disponibles. Choisir un nombre de module et des emplacements stratégiques dans l'entrepôt afin d'avoir une localisation assez précise pour l'application.&lt;br /&gt;
&lt;br /&gt;
L'utilisation d'autres technologies de géolocalisation a été discuté comme le Wifi ou le XBee mais le BLE semblait le plus adapté dans le cadre de notre projet.&lt;br /&gt;
&lt;br /&gt;
= Déroulement du projet =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 22/09 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Réunion avec le tuteur entreprise dans l’entrepôt &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Nous avons observé en situation le problème et discuté des besoins, des moyens déjà utilisables. Il nous faudra prendre en compte plusieurs paramètres dans notre réflexion tels que le système de stockage et d'adressages des palettes, sens de circulation des caristes, superficie des zones à desservir, durée de livraison.&lt;br /&gt;
Nous avons suggéré des étapes de validation intermédiaire du système par les futurs utilisateurs et pour cela nous rencontrerons le chef d'équipe des magasiniers lorsque qu'une version sera assez développée.&lt;br /&gt;
&lt;br /&gt;
Nous avons défini avec le tuteur les premières deadlines du projet, voici la timeline récapitulative:&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Timeline_1.jpg||center|1000px]]&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Compte Rendu &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Nous avons rédigé un compte rendu de la première réunion détaillant les spécifications des versions des livrables, des schémas et les sujets abordés lors de la rencontre :&lt;br /&gt;
&lt;br /&gt;
'''Compte Rendu réunion du 25/09/2014 :''' [[Fichier:Compte_Rendu_25_09.pdf]]&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 29/09 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Découverte des Google Glass &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
*Prise en main des Google Glass. &lt;br /&gt;
*Installation d'applications (.apk) grand public. Nous avons utilisé l'outil Android Debug Bridge(adb). Se mettre à la place d'un utilisateur.&lt;br /&gt;
*L'une des deux lunettes qui serait retenue imposera forcément le développement d'une application android (ou d'une technologie trés proche d'android, pour les Google Glass, se basant sur le Glass Development Kit qui est un add-on au SDK classique d'android). Nous avons donc téléchargé les packages nécessaires pour commencer à développer. &lt;br /&gt;
** Nous commençons à nous former sur les technologies android :développement d'applications minimaliste.&lt;br /&gt;
** Installation de nos premières apk minimalistes pour Android.&lt;br /&gt;
** Installation d'une application minimaliste sur la Google Glass.&lt;br /&gt;
&lt;br /&gt;
Voici un comparatif réalisé entre les lunettes ORA et les Google Glass.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Différences Google Glass/ORA &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!   !! Google Glass !! ORA &lt;br /&gt;
|-&lt;br /&gt;
|Connectique&lt;br /&gt;
|Compatible BLE (à partir de la XE 16 KitKat Update), Wifi &lt;br /&gt;
|Compatible BLE, Wifi&lt;br /&gt;
|-&lt;br /&gt;
|Autonomie en utilisation normale&lt;br /&gt;
|de 1h à 2h &lt;br /&gt;
|de 4h à 8h&lt;br /&gt;
|-&lt;br /&gt;
|Son&lt;br /&gt;
|Conductivité Cranienne&lt;br /&gt;
|Prise jack&lt;br /&gt;
|-&lt;br /&gt;
|Interface&lt;br /&gt;
|Ecran occupant une faible superficie dans le champ de vision &lt;br /&gt;
|Ecran 2 positions (moyennes et basses), plus étendu permettant une réalité augmentée &lt;br /&gt;
|-&lt;br /&gt;
|Système d'exploitation&lt;br /&gt;
|Android 4.4&lt;br /&gt;
|Android 4.2.2&lt;br /&gt;
|-&lt;br /&gt;
|Calculs&lt;br /&gt;
|CPU &amp;amp; GPU&lt;br /&gt;
|CPU &amp;amp; GPU&lt;br /&gt;
|-&lt;br /&gt;
|Prix&lt;br /&gt;
|1500$ &lt;br /&gt;
|949$&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 06/10 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Deuxième rendez-vous avec le tuteur entreprise &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Nous avons fait part de notre avancée en matière de prise en main et des problèmes rencontrés en matière de développement.&lt;br /&gt;
Les lunettes ORA sont commandées elles arrivent d'ici la fin octobre.&lt;br /&gt;
&lt;br /&gt;
La première version V1 de l'application pour Google Glass à livrer pour la mi-novembre est fixée.&lt;br /&gt;
&lt;br /&gt;
En partant d'une position connue (en dur dans l'application) dans l'entrepôt, elle indiquera à un utilisateur les emplacements libres les plus proches.&lt;br /&gt;
&lt;br /&gt;
L'état d'occupation des emplacements sera consulté et stocké dans l'application. Il n'y aura donc pas de gestion des conflits. Le sens de circulation dans l'entrepôt sera pris en compte.&lt;br /&gt;
Une communication avec la base de donnée de l'entrepôt n'est pour le moment pas d'actualité, cela nécessiterait des développements en amont.&lt;br /&gt;
La géolocalisation n'est pas au goût du jour non plus. L'adressage des emplacements dans l'entrepôt est intuitif, il est donc facile pour un magasinier de &lt;br /&gt;
se rendre à un emplacement en connaissant l'adresse.&lt;br /&gt;
&lt;br /&gt;
Pour l'IHM, nous nous inspirerons des applications pour Google Glass (les Glasswares) de type GPS.&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Premiers programmes sur Google Glass &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Pour nous familiariser avec la programmation sur ce genre d'appareil nous avons tous deux décidé de suivre en premier le tutoriel Android d'un site spécialisé. Cela afin de mieux comprendre le système Android, avec les concepts d'activités, de view etc.&lt;br /&gt;
Dans un deuxième temps nous avons choisi de suivre plusieurs tutoriels nous expliquant la prise en main basique des lunettes afin de saisir les particularités de leur programmation.&lt;br /&gt;
&lt;br /&gt;
Le plus dur étant finalement de comprendre les liens entre tous les fichiers du projets, les problèmes de drivers et d'upload simple que nous avons rencontrés et l’exécution du programme sur les lunettes. Des choses que nous arrivons maintenant à maitriser mais qui était floues à l'origine.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 13/10 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Programmation et gestion des interactions &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Durant cette semaine nous avons commencé a vraiment toucher aux fonctionnalités des Glass. Pour rester en main libre, nous avons fait des recherches et commencé à programmer de la reconnaissance vocale. Nous avons ainsi crée un système de navigation basique par commande vocale dans différents menus. Pour un accès rapide à l'application et toujours dans la même optique nous avons réussi à inclure le lancement de notre logiciel à partir du &amp;quot;Ok Glass&amp;quot; menu qui est le menu de lancement d'application par commande vocale des Google Glass. Voici un aperçu du résultat:&lt;br /&gt;
[[Fichier:V0_menu.png|1000px|center]]&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Analyse et évaluation du rendu &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Le début de la prise en main des fonctionnalités des Google Glass n'a pas été facile étant donné que la plupart des fonctionnalités sont propres à ce genre d'appareil. De plus elles nécessitent des techniques spéciales de programmation qui ne sont pas toujours très utilisées donc il est parfois difficile de trouver des exemples sur internet.&lt;br /&gt;
Néanmoins après l'implémentation de ces fonctionnalités nous avons pu rencontrer quelques difficultés de reconnaissance. En effet, les Google Glass possèdent un dictionnaire de mots/phrases pour la reconnaissance vocale mais elles nous permettent aussi d'écrire n'importe quelle phrase dans le mode développeur. Les phrases du dictionnaires ne posent aucun problème mais les phrases que nous écrivons sont parfois dures à reconnaitre. La reconnaissance de lettre seule ou de certains numéros est par exemple quasi impossible ou très aléatoire.&lt;br /&gt;
Le système de vu est quant à lui plutôt facile à prendre en main et intuitif dans l'utilisation.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 20/10 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Premiere structure de donnée &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Nous avons opté pour une structure de donnée récursive. Une Cellule, contenant des Allées, qui contiennent des Baies, contenant des Rangées, contenant des Emplacements.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Structure_export_resized.png|750px|center]]&lt;br /&gt;
Nous avons conçu cette structure de donnée pour qu'elle génère, dans un premier temps &amp;quot;en dur&amp;quot;, une cellule contenant des emplacements automatiquement adressés à la manière de ceux présent dans l'entrepôt. Ces adresses sont de la forme &amp;quot;D61A514&amp;quot; traduisez &amp;quot; Cellule 6 Allée 1A Baie 5 Rang 1 Niveau 4&amp;quot;.&lt;br /&gt;
Cette structure prend on compte le sens de circulation dans l'entrepôt.&lt;br /&gt;
Lors de futures interactions avec une base de donnée, cette structure serait sujette à évolution par une modification des méthodes de génération/modification du statut des adresses en fonction de cette base de donnée. Mais celle-ci constitue essentiellement une base pour appréhender plus pratiquement les problématiques de recherches de l'emplacement le plus proche.&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Prise en main de l'interface &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Nous avons déjà abordé les layouts java en TP donc il a été assez facile de commencer à faire des interfaces graphiques simples. Nous avons construit une interface graphique simple pour de faire une démonstration du programme aux tuteurs entreprise afin qu'ils comprennent bien le fonctionnement de notre algorithme.&lt;br /&gt;
L'interface graphique finale du programme sera très sobre afin de ne pas donner trop gêner le magasinier dans sa tâche.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 27/10 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Chemin optimal : Parcours intelligent Vs Sélection intelligente &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Un premier algorithme de recherche de l'emplacement le plus proche a été développé, celui-ci ne prend en compte qu'un seul scénario. &lt;br /&gt;
Celui de la position de départ (quai de déchargement où reviendra constamment le magasinier aprés chaque livraison) correspondante à la première allée de l'entrepôt, et en prenant en compte le sens de circulation. &lt;br /&gt;
A partir de ce moment, nous avons dégager deux grandes manières d'appréhender le problème.&lt;br /&gt;
&lt;br /&gt;
* Un parcours intelligent de la structure de donnée. C'est à dire parcourir les emplacements les plus proches, et choisir le premier emplacement libre. Une solution complexe à réaliser sur le plan algorithmique. En tenant compte du sens de circulation, il apparait que l'emplacement libre &amp;quot;leplusproche&amp;quot; (à vol d'oiseau) trouvé le plus tôt, ne correspondrait pas forcément à l'emplacement le plus proche compte tenu du chemin emprunté par un magasinier. Et c'est plutôt l'intérêt de cette algorithme.(Sauf dans l'unique cas où l'emplacement libre se trouve directement dans l'allée faisant face à la position de départ du magasinier, et le sens de circulation lui permet directement de se rendre à l'emplacement sans détour).&lt;br /&gt;
&lt;br /&gt;
* Une sélection intelligente parmi les emplacements libres. Leurs adresses renseignent à quelles allées, les emplacements libres appartiennent, donc renseignent sur le sens de circulation. A partir de la position de départ du magasinier et de l'ensemble des emplacements libres, on peut calculer la distance nécessaire à celui-ci pour les atteindre. Pour ainsi choisir l'adresse pour laquelle la distance est minimale.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 3/11 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Chemin optimal : sélection intelligente des adresses &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Nous avons écrit une premiere méthode de détermination. &lt;br /&gt;
On choisit l'emplacement, parmi tous ceux qui sont libres, pour lequel la distance de parcours est minimale entre le départ et celui-ci. &lt;br /&gt;
Ici l'unité de distance est la baie. La simplicité de l'algorithme réside dans le fait que le magasinier ne transporte qu'une seule caisse à la fois et repars toujours au même point de départ.&lt;br /&gt;
&lt;br /&gt;
Ci dessous un plan de l'entrepôt.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:schema_entrepot.png|750px|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Si on se place à l'entrée de l'Allée A :&lt;br /&gt;
&lt;br /&gt;
**le déplacement jusqu'à A4 (sens de circulation direct) est de : &lt;br /&gt;
&lt;br /&gt;
                        Y baies - (indice de la baie/2 +indice de la baie % 2) &lt;br /&gt;
&lt;br /&gt;
**le déplacement jusqu'à B1 (sens de circulation indirect) est de : &lt;br /&gt;
&lt;br /&gt;
                        Y baies + différence entre l'allée A et B donc X baies + indice de la baie/2 +indice de la baie % 2&lt;br /&gt;
**le déplacement jusqu'à C1 (sens de circulation direct) est de : &lt;br /&gt;
                      &lt;br /&gt;
                        Y baies - (indice de la baie/2 +indice de la baie % 2)+différence entre l'allée A et C donc 2*X baies.&lt;br /&gt;
&lt;br /&gt;
*Si on se place à l'entrée de l'Allée B :&lt;br /&gt;
**le déplacement jusqu'à B1 (sens de circulation indirect avec contournement) est de : &lt;br /&gt;
                        &lt;br /&gt;
                        2*X baies + Y baies + 2*X baies + (indice de la baie/2 +indice de la baie % 2)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On peut généraliser l'ensemble de ces situations de déplacement avec l'algorithme suivant :&lt;br /&gt;
&lt;br /&gt;
Pseudo code&lt;br /&gt;
&lt;br /&gt;
  Leplusproche( Allee depart )&lt;br /&gt;
    distance_la_plus_petite = valeurMAX&lt;br /&gt;
      le_plus_proche=&amp;quot;&amp;quot;&lt;br /&gt;
         Pour chaque Allee de Cellule&lt;br /&gt;
           sens=Allee.sens&lt;br /&gt;
           Pour chaque Baie de Allee&lt;br /&gt;
             Pour chaque Rang de Allee&lt;br /&gt;
 	       Pour chaque Emplacement de Rang&lt;br /&gt;
                Si Emplacement estlibre &lt;br /&gt;
                &lt;br /&gt;
                indice_baie = selection_indice_baie(Emplacement.adresse)&lt;br /&gt;
   		 allee_cible = selection_indice_allee(Emplacement.adresse)  &lt;br /&gt;
   		 difference_allee = valeur_absolue(depart -cible) &lt;br /&gt;
                    Si difference_allee==0 et sens.estindirect&lt;br /&gt;
                      //sens indirect +contournement&lt;br /&gt;
                      distance_actuelle=(indice_baie/2)+indice_baie%2+(2*(difference_allee))+4*X+Y			&lt;br /&gt;
                    Sinon	&lt;br /&gt;
                        Si sens estdirect&lt;br /&gt;
                          //sens direct &lt;br /&gt;
                          distance_actuelle=(Y-((indice_baie/2)+indice_baie%2))+2*difference_allee&lt;br /&gt;
                        Sinon&lt;br /&gt;
                          //sens indirect mais pas de contournement&lt;br /&gt;
                          distance_actuelle=((indice_baie/2)+indice_baie%2)+2*difference_allee+Y&lt;br /&gt;
                        Finsi	&lt;br /&gt;
                    Finsi	&lt;br /&gt;
                    Si distance_actuelle &amp;lt; distance_la_plus_petite&lt;br /&gt;
                      le_plus_proche=Emplacement.adresse&lt;br /&gt;
                      distance_la_plus_petite=distance_actuelle&lt;br /&gt;
                    Finsi&lt;br /&gt;
                Finsi  &lt;br /&gt;
            Finpour&lt;br /&gt;
          Finpour&lt;br /&gt;
        Finpour&lt;br /&gt;
      Finpour&lt;br /&gt;
    retourne le_plus_proche&lt;br /&gt;
  Finleplusproche&lt;br /&gt;
&lt;br /&gt;
Cet algorithme nous donne satisfaction (dans le cadre de la V1)&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 10/11 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Programmation et gestion des interactions &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Aprés quelques difficultés vis à vis de la gestion des menus vocaux sur les lunettes qui ne fonctionnent pas de la même manière que les menus classiques sous android, nous avons étoffé les interactions possible avec l'application des google glass. (Nous souhaitions inflater un deuxième menu pour interagir de manière plus contextuelle, il fallait le faire dans la méthode onCreatePanelMenu dont l'appel serait forcé avec getWindow().invalidatePanelMenu(WindowUtils.FEATURE_VOICE_COMMANDS) plutôt que dans onPrepareOptionsMenu forcée par invalidateOptionMenu()...) &lt;br /&gt;
&lt;br /&gt;
schéma d'utilisation...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Proposition projet affichage télévision &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Tele_concept.png|200px|thumb|right]]&lt;br /&gt;
&lt;br /&gt;
Notre tuteur nous a contacté pour nous proposer d'étudier un second projet en parallèle au projet initial. Celui consistant à gérer l'affichage d'information personnalisé d'un magasinier passant à proximité d'un écran de télévision. Nous devons effectuer un Proof Of Concept (POC) et réfléchir à ce sujet.&lt;br /&gt;
L'utilisation du BLE est donc de nouveau d'actualité, car je rappel que sont utilité était discutable dans une réalité métier du projet initial. La question étant plus de savoir comment gérer le système du coté du téléviseur.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Le concept de base étant de :&lt;br /&gt;
* Fournir une beacon aux magasiniers de l'entrepôt.&lt;br /&gt;
* Installer une télévision sur un centre de vie dans l'entrepôt avec une beacon&lt;br /&gt;
* Pousser du contenu personnalisé au magasinier qui se présente devant la tv dans son centre de vie&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 17/11 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Brainstorming à Polytech &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Dans la cadre du POC sur l'affichage personnalisé sur une télévision, nous avons profité d'un exercice de management pour faire participer la classe à notre projet. Grâce à cette intervention nous avons pu confirmer nos idées sur les technologies à utiliser. Mais nous avons surtout eu une multitude de propositions sur les données à afficher sur l'écran.&lt;br /&gt;
&lt;br /&gt;
Pour plus détails, le compte rendu est disponible à ce lien:&lt;br /&gt;
&lt;br /&gt;
'''Compte Rendu Brainstorming 17/11/2014 :''' [[Fichier:Compte_Rendu_POC_17_11.pdf]]&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Entretien avec notre tuteur entreprise &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Durant cet entretien, nous avons livré la première version de l'application et nous avons discuté de la suite du projet.&lt;br /&gt;
Ci joint le Compte Rendu.&lt;br /&gt;
&lt;br /&gt;
'''Compte Rendu  19/11/2014 :''' [[Fichier:Compte_Rendu_19_11.pdf]]&lt;br /&gt;
&lt;br /&gt;
De cette réunion, les points suivants en sont sortis:&lt;br /&gt;
&lt;br /&gt;
*Une reconnaissance vocale en langue française sur les lunettes serait plus intéressante pour les employés (une piste serait d’utiliser l’outil pocketsphinx-  android).&lt;br /&gt;
*Par rapport à l'IHM, il faudrait mettre l’affichage au premier plan sur les Google Glass pour une démo auprés des parties prenantes du projet.&lt;br /&gt;
*Choisir une architecture pour l’affichage d’information personnalisées.&lt;br /&gt;
**La télévision connectée à une raspberry qui communiquerait via un dongle BLE avec le beacon d’un magasinier, ce qui permettrait l’identification de celui-ci prés de la Télévision, et déclencherait un processus d’échange d’information. (Communication via le protocole Bluetooh, wifi entre les lunettes et la Raspberry  ou communication avec la Raspberry avec la Base de Donnée sur le réseau de l’entreprise)&lt;br /&gt;
**Une télévision connectée en continu à un site internet via un dongle HDMI.&lt;br /&gt;
**Une tablette android géante supportant le BLE, ou utilisant un dongle BLE.&lt;br /&gt;
* Réaliser le portage de l’application sur le prototype des lunettes ORA.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 24/11 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Reconnaissance vocale en Français &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Pocket Sphinx Android est une librairie permettant de faire de la reconnaissance vocale d'un langage donné sur un système android en offline.&lt;br /&gt;
Pour supporter une langue, elle nécessite: &lt;br /&gt;
*un modèle acoustique (ensemble d'informations pour le traitement sonore)&lt;br /&gt;
*un dictionnaire associant les mots et leur phonèmes&lt;br /&gt;
*une grammaire, c'est un fichier définissant comment seraient articulé les mots à reconnaître et limitant les possibilités de langage).&lt;br /&gt;
&lt;br /&gt;
La grammaire étant un automate. Voici un exemple de la grammaire menu.gram pour la reconnaissance de la porte de déchargement.&lt;br /&gt;
[[Fichier:Arborescence_pocket_sphinx.png|200px|thumb|right|PocketSphinx dans un projet Android]]&lt;br /&gt;
&lt;br /&gt;
  #JSGF V1.0;&lt;br /&gt;
  grammar menu;&lt;br /&gt;
  &amp;lt;porte&amp;gt; = porte a |&lt;br /&gt;
            porte b |&lt;br /&gt;
            porte c |&lt;br /&gt;
            porte d |&lt;br /&gt;
            porte e |&lt;br /&gt;
            porte f |&lt;br /&gt;
            porte g |&lt;br /&gt;
            porte h |&lt;br /&gt;
            porte i |&lt;br /&gt;
            porte j ;&lt;br /&gt;
  public &amp;lt;porte&amp;gt; = &amp;lt;porte&amp;gt;+;&lt;br /&gt;
&lt;br /&gt;
Un extrait du dictionnaire french_letter.dic associé avec les phonemes&lt;br /&gt;
&lt;br /&gt;
  a aa &amp;lt;-- juste la lettre a et son phoneme &lt;br /&gt;
  autre au tt rr&lt;br /&gt;
  autre(2) au tt rr ee &lt;br /&gt;
  b bb &lt;br /&gt;
  c ss &lt;br /&gt;
  d dd ei d(2) dd ait &lt;br /&gt;
  e eu e(2) eu zz &lt;br /&gt;
  f ai ff &lt;br /&gt;
  g jj ei g(2) gg ai &lt;br /&gt;
  h aa ch  &lt;br /&gt;
  i ii &lt;br /&gt;
  j jj yy j(2) jj ii&lt;br /&gt;
  porte pp oo rr tt&lt;br /&gt;
  porte(2) pp oo rr tt ee&lt;br /&gt;
  portes(2) pp oo rr tt ee&lt;br /&gt;
  portes(3) pp oo rr tt ee zz&lt;br /&gt;
  portes(4) pp oo rr tt zz&lt;br /&gt;
&lt;br /&gt;
Le modèle acoustique que nous avons téléchargé étant inclu dans lium_french_f0&lt;br /&gt;
&lt;br /&gt;
Nous avons testé la reconnaissance vocale sur un téléphone android, les mots sont, dans la majorité des cas, bien reconnus.&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Comparaison architectures projet TV &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Au niveau de l’architecture nous avons établi plusieurs propositions après la réunion avec notre tuteur:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour une Raspberry Pi avec un dongle BLE :&lt;br /&gt;
* Installation OS Linux sur la Raspberry&lt;br /&gt;
* Librairie BlueZ pour l’utilisation du BLE (tests rapides effectués sur Linux avec le Dongle)&lt;br /&gt;
* Interface graphique avec une bibliothèque comme Qt (ou encore SDL…)&lt;br /&gt;
* Prix : Rpi = 26€ (chez RadioSpare), Dongle = 10€, TV = à partir de 358€ pour 117cm, + Connectique vidéo. Total = 394€&lt;br /&gt;
&lt;br /&gt;
Pour un écran ViewSonic VSD231 :&lt;br /&gt;
* Possède une API Bluetooth classic + API BLE&lt;br /&gt;
* Interface graphique Android (View, Layout...)&lt;br /&gt;
* Prix : écran ViewSonic VSD231 = 558 € pour 58 cm (chez ViewSonic).&lt;br /&gt;
&lt;br /&gt;
Récupération d’informations :&lt;br /&gt;
* Si données sur les lunettes : Bluetooth ou Wifi.&lt;br /&gt;
* Si données sur serveur : Ethernet ou Wifi.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Vu les propositions possibles nous pensons que la première proposition permettra une meilleure souplesse dans le développement mais serait un peu plus compliquée. Mais nous la trouvons aussi plus intéressante à faire de plus elle est moins coûteuse et permet d'utiliser un écran plus grand. Le développement sur tablette serait sûrement plus rapide à faire en contrepartie.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 01/12 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Conférence GlassCamp à l'Imaginarium &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
GlassCamp est une association qui essaye de répandre l'utilisation de toute les Smart Glass en général. Elle propose de multiples conférences dans lesquelles ils essayent de montrer au public l’intérêt de développer sur ces appareils. Dans le cadre de notre projet, notre tuteur nous a proposé de participer à cette présentation afin de mieux s’approprier le sujet. La conférence a eu lieu le 4 décembre à l'Imaginarium: une grande partie était plutôt tournée vers la présentation mais nous avons apprîs plusieurs choses intéressantes qui sont décrites dans le compte rendu.&lt;br /&gt;
&lt;br /&gt;
'''Compte Rendu Conférence 04/12/2014 :''' [[Fichier:Compte_Rendu_Conf_GlassCamp.pdf]]&lt;/div&gt;</summary>
		<author><name>Jgondry</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=P22_Google_Glass_en_logistique&amp;diff=15016</id>
		<title>P22 Google Glass en logistique</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=P22_Google_Glass_en_logistique&amp;diff=15016"/>
				<updated>2014-12-11T09:45:08Z</updated>
		
		<summary type="html">&lt;p&gt;Jgondry : /*  Comparaison architectures projet TV  */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Introduction =&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Description du sujet &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
Notre projet vise à l’optimisation du stockage et de l’adressage des palettes dans un entrepôt. En effet, lors du déchargement d’un camion, chercher un emplacement libre pour les palettes dans un entrepôt occupant une grande superficie fait perdre du temps et donc de la productivité dans le stockage. Sachant qu’un cariste perd un temps non négligeable à la recherche d’emplacement disponible, optimiser ce temps de recherche permettrait de gagner du temps sur cette opération.&lt;br /&gt;
Développer un prototype permettrait de rendre compte des moyens existants qui pourrait être mis en place dans une solution métier.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Analyse du sujet &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Google_glass.png|200px|thumb|right|Paire de Google Glass]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Optinvent_ora.png|200px|thumb|right|Paire de ORA d'Optivent]]&lt;br /&gt;
&lt;br /&gt;
Notre projet consiste à fluidifier le déchargement en indiquant au cariste l’emplacement libre le plus proche. Pour ne pas gêner le travail des employés, un dispositif main-libre comme une Google Glass semble adapté. Ce projet soulève plusieurs problématiques : développer une interface homme-machine apportant une information pertinente pour l’utilisateur sans pour autant être perturbante. &lt;br /&gt;
&lt;br /&gt;
L’idée serait de réaliser dans les grandes lignes un système similaire à ce scénario d’utilisation :&lt;br /&gt;
http://n.mynews.ly/!lB.Bs4fw&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Moyen d’affichage de l’Informations pertinentes'''&lt;br /&gt;
&lt;br /&gt;
Les Google Glass ne sont pas les seules smart glasses sur le marché. Il nous faudra choisir les appareils les plus adaptés. L’information pertinente pourrait être une direction à suivre dans l’entrepôt ou simplement un numéro d’emplacement (adressage intuitif de l’entrepôt). &lt;br /&gt;
&lt;br /&gt;
'''Géolocalisation'''&lt;br /&gt;
&lt;br /&gt;
Dans le cas d’une direction à suivre se pose le problème de la géolocalisation indoor dont l’utilité et la faisabilité seront discutés au fil des réunions avec l’entreprise. &lt;br /&gt;
&lt;br /&gt;
'''Adressage / flashage'''&lt;br /&gt;
&lt;br /&gt;
En ce qui concerne l’adressage des palettes en entrepôt, la solution existante repose sur un flashage des codes barres associés à l’emplacement venant d’être occupé. Une étude de faisabilité/utilité sera aussi faite sur une solution de remplacement grâce aux possibilités qu’offrent les smart glasses.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Cahier des charges &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
En partant de l'analyse du sujet et des discussion avec notre tuteur, nous avons définie un cahier des charges plus précis des tâches à accomplir:&lt;br /&gt;
&lt;br /&gt;
* '''Développer un système embarqué sur une paire de lunette Smart Glass'''&lt;br /&gt;
** Comparer les différentes offres en matière de Smart Glass notamment Google Glass &amp;amp; ORA de Optinvent&lt;br /&gt;
** Concevoir une interface homme-machine non perturbante pour l'utilisateur.&lt;br /&gt;
* '''Etudier la nécessité d'utiliser une géolocalisation en entrepôt et l'implémenter si besoin'''&lt;br /&gt;
** Via RSSI (Wifi, Bluetooh Low Energy ...)&lt;br /&gt;
** Via traitement d'images (reconnaissance de la signalétique en entrepôt)&lt;br /&gt;
* '''Etudier les possibilités d'optimisation du système d'adressage des palettes'''&lt;br /&gt;
** Implémenter la reconnaissance de code barre&lt;br /&gt;
** La tester en réalité métier (utilité ajoutée, habitude des magasiniers, vitesse de traitement...)&lt;br /&gt;
&lt;br /&gt;
Le cahier des charges est encore en cours de construction&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Matériel utilisé &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; SmartGlass &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Lors de la réunion nous avons discuté des technologies à utiliser dans le projet, et plus particulièrement des différentes SmartGlass. En effet, il existe une multitude de sociétés qui développe ce genre de lunettes. Nous commencerons à utiliser les Google Glass étant donné que notre tuteur en a déjà commandé puis nous développerons sur les lunettes ORA de Optivent qui seront livrées fin octobre. Nous devrons donc faire un comparatif entre ces deux SmartGlass puis étudier les autres appareils disponibles sur le marché.&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Localisation &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
L'utilisation de la géolocalisation dans le projet est à débattre. Mais des tests seront probablement mis en place. L'entreprise possède quelque iBeacons BLE Estimote dans ses bureaux d'innovations que nous pourrons emprunter.&lt;br /&gt;
Dans le cas où leur gain d'informations serait utile il nous faudra comparer les modèles disponibles. Choisir un nombre de module et des emplacements stratégiques dans l'entrepôt afin d'avoir une localisation assez précise pour l'application.&lt;br /&gt;
&lt;br /&gt;
L'utilisation d'autres technologies de géolocalisation a été discuté comme le Wifi ou le XBee mais le BLE semblait le plus adapté dans le cadre de notre projet.&lt;br /&gt;
&lt;br /&gt;
= Déroulement du projet =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 22/09 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Réunion avec le tuteur entreprise dans l’entrepôt &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Nous avons observé en situation le problème et discuté des besoins, des moyens déjà utilisables. Il nous faudra prendre en compte plusieurs paramètres dans notre réflexion tels que le système de stockage et d'adressages des palettes, sens de circulation des caristes, superficie des zones à desservir, durée de livraison.&lt;br /&gt;
Nous avons suggéré des étapes de validation intermédiaire du système par les futurs utilisateurs et pour cela nous rencontrerons le chef d'équipe des magasiniers lorsque qu'une version sera assez développée.&lt;br /&gt;
&lt;br /&gt;
Nous avons défini avec le tuteur les premières deadlines du projet, voici la timeline récapitulative:&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Timeline_1.jpg||center|1000px]]&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Compte Rendu &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Nous avons rédigé un compte rendu de la première réunion détaillant les spécifications des versions des livrables, des schémas et les sujets abordés lors de la rencontre :&lt;br /&gt;
&lt;br /&gt;
'''Compte Rendu réunion du 25/09/2014 :''' [[Fichier:Compte_Rendu_25_09.pdf]]&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 29/09 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Découverte des Google Glass &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
*Prise en main des Google Glass. &lt;br /&gt;
*Installation d'applications (.apk) grand public. Nous avons utilisé l'outil Android Debug Bridge(adb). Se mettre à la place d'un utilisateur.&lt;br /&gt;
*L'une des deux lunettes qui serait retenue imposera forcément le développement d'une application android (ou d'une technologie trés proche d'android, pour les Google Glass, se basant sur le Glass Development Kit qui est un add-on au SDK classique d'android). Nous avons donc téléchargé les packages nécessaires pour commencer à développer. &lt;br /&gt;
** Nous commençons à nous former sur les technologies android :développement d'applications minimaliste.&lt;br /&gt;
** Installation de nos premières apk minimalistes pour Android.&lt;br /&gt;
** Installation d'une application minimaliste sur la Google Glass.&lt;br /&gt;
&lt;br /&gt;
Voici un comparatif réalisé entre les lunettes ORA et les Google Glass.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Différences Google Glass/ORA &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!   !! Google Glass !! ORA &lt;br /&gt;
|-&lt;br /&gt;
|Connectique&lt;br /&gt;
|Compatible BLE (à partir de la XE 16 KitKat Update), Wifi &lt;br /&gt;
|Compatible BLE, Wifi&lt;br /&gt;
|-&lt;br /&gt;
|Autonomie en utilisation normale&lt;br /&gt;
|de 1h à 2h &lt;br /&gt;
|de 4h à 8h&lt;br /&gt;
|-&lt;br /&gt;
|Son&lt;br /&gt;
|Conductivité Cranienne&lt;br /&gt;
|Prise jack&lt;br /&gt;
|-&lt;br /&gt;
|Interface&lt;br /&gt;
|Ecran occupant une faible superficie dans le champ de vision &lt;br /&gt;
|Ecran 2 positions (moyennes et basses), plus étendu permettant une réalité augmentée &lt;br /&gt;
|-&lt;br /&gt;
|Système d'exploitation&lt;br /&gt;
|Android 4.4&lt;br /&gt;
|Android 4.2.2&lt;br /&gt;
|-&lt;br /&gt;
|Calculs&lt;br /&gt;
|CPU &amp;amp; GPU&lt;br /&gt;
|CPU &amp;amp; GPU&lt;br /&gt;
|-&lt;br /&gt;
|Prix&lt;br /&gt;
|1500$ &lt;br /&gt;
|949$&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 06/10 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Deuxième rendez-vous avec le tuteur entreprise &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Nous avons fait part de notre avancée en matière de prise en main et des problèmes rencontrés en matière de développement.&lt;br /&gt;
Les lunettes ORA sont commandées elles arrivent d'ici la fin octobre.&lt;br /&gt;
&lt;br /&gt;
La première version V1 de l'application pour Google Glass à livrer pour la mi-novembre est fixée.&lt;br /&gt;
&lt;br /&gt;
En partant d'une position connue (en dur dans l'application) dans l'entrepôt, elle indiquera à un utilisateur les emplacements libres les plus proches.&lt;br /&gt;
&lt;br /&gt;
L'état d'occupation des emplacements sera consulté et stocké dans l'application. Il n'y aura donc pas de gestion des conflits. Le sens de circulation dans l'entrepôt sera pris en compte.&lt;br /&gt;
Une communication avec la base de donnée de l'entrepôt n'est pour le moment pas d'actualité, cela nécessiterait des développements en amont.&lt;br /&gt;
La géolocalisation n'est pas au goût du jour non plus. L'adressage des emplacements dans l'entrepôt est intuitif, il est donc facile pour un magasinier de &lt;br /&gt;
se rendre à un emplacement en connaissant l'adresse.&lt;br /&gt;
&lt;br /&gt;
Pour l'IHM, nous nous inspirerons des applications pour Google Glass (les Glasswares) de type GPS.&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Premiers programmes sur Google Glass &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Pour nous familiariser avec la programmation sur ce genre d'appareil nous avons tous deux décidé de suivre en premier le tutoriel Android d'un site spécialisé. Cela afin de mieux comprendre le système Android, avec les concepts d'activités, de view etc.&lt;br /&gt;
Dans un deuxième temps nous avons choisi de suivre plusieurs tutoriels nous expliquant la prise en main basique des lunettes afin de saisir les particularités de leur programmation.&lt;br /&gt;
&lt;br /&gt;
Le plus dur étant finalement de comprendre les liens entre tous les fichiers du projets, les problèmes de drivers et d'upload simple que nous avons rencontrés et l’exécution du programme sur les lunettes. Des choses que nous arrivons maintenant à maitriser mais qui était floues à l'origine.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 13/10 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Programmation et gestion des interactions &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Durant cette semaine nous avons commencé a vraiment toucher aux fonctionnalités des Glass. Pour rester en main libre, nous avons fait des recherches et commencé à programmer de la reconnaissance vocale. Nous avons ainsi crée un système de navigation basique par commande vocale dans différents menus. Pour un accès rapide à l'application et toujours dans la même optique nous avons réussi à inclure le lancement de notre logiciel à partir du &amp;quot;Ok Glass&amp;quot; menu qui est le menu de lancement d'application par commande vocale des Google Glass. Voici un aperçu du résultat:&lt;br /&gt;
[[Fichier:V0_menu.png|1000px|center]]&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Analyse et évaluation du rendu &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Le début de la prise en main des fonctionnalités des Google Glass n'a pas été facile étant donné que la plupart des fonctionnalités sont propres à ce genre d'appareil. De plus elles nécessitent des techniques spéciales de programmation qui ne sont pas toujours très utilisées donc il est parfois difficile de trouver des exemples sur internet.&lt;br /&gt;
Néanmoins après l'implémentation de ces fonctionnalités nous avons pu rencontrer quelques difficultés de reconnaissance. En effet, les Google Glass possèdent un dictionnaire de mots/phrases pour la reconnaissance vocale mais elles nous permettent aussi d'écrire n'importe quelle phrase dans le mode développeur. Les phrases du dictionnaires ne posent aucun problème mais les phrases que nous écrivons sont parfois dures à reconnaitre. La reconnaissance de lettre seule ou de certains numéros est par exemple quasi impossible ou très aléatoire.&lt;br /&gt;
Le système de vu est quant à lui plutôt facile à prendre en main et intuitif dans l'utilisation.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 20/10 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Premiere structure de donnée &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Nous avons opté pour une structure de donnée récursive. Une Cellule, contenant des Allées, qui contiennent des Baies, contenant des Rangées, contenant des Emplacements.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Structure_export_resized.png|750px|center]]&lt;br /&gt;
Nous avons conçu cette structure de donnée pour qu'elle génère, dans un premier temps &amp;quot;en dur&amp;quot;, une cellule contenant des emplacements automatiquement adressés à la manière de ceux présent dans l'entrepôt. Ces adresses sont de la forme &amp;quot;D61A514&amp;quot; traduisez &amp;quot; Cellule 6 Allée 1A Baie 5 Rang 1 Niveau 4&amp;quot;.&lt;br /&gt;
Cette structure prend on compte le sens de circulation dans l'entrepôt.&lt;br /&gt;
Lors de futures interactions avec une base de donnée, cette structure serait sujette à évolution par une modification des méthodes de génération/modification du statut des adresses en fonction de cette base de donnée. Mais celle-ci constitue essentiellement une base pour appréhender plus pratiquement les problématiques de recherches de l'emplacement le plus proche.&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Prise en main de l'interface &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Nous avons déjà abordé les layouts java en TP donc il a été assez facile de commencer à faire des interfaces graphiques simples. Nous avons construit une interface graphique simple pour de faire une démonstration du programme aux tuteurs entreprise afin qu'ils comprennent bien le fonctionnement de notre algorithme.&lt;br /&gt;
L'interface graphique finale du programme sera très sobre afin de ne pas donner trop gêner le magasinier dans sa tâche.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 27/10 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Chemin optimal : Parcours intelligent Vs Sélection intelligente &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Un premier algorithme de recherche de l'emplacement le plus proche a été développé, celui-ci ne prend en compte qu'un seul scénario. &lt;br /&gt;
Celui de la position de départ (quai de déchargement où reviendra constamment le magasinier aprés chaque livraison) correspondante à la première allée de l'entrepôt, et en prenant en compte le sens de circulation. &lt;br /&gt;
A partir de ce moment, nous avons dégager deux grandes manières d'appréhender le problème.&lt;br /&gt;
&lt;br /&gt;
* Un parcours intelligent de la structure de donnée. C'est à dire parcourir les emplacements les plus proches, et choisir le premier emplacement libre. Une solution complexe à réaliser sur le plan algorithmique. En tenant compte du sens de circulation, il apparait que l'emplacement libre &amp;quot;leplusproche&amp;quot; (à vol d'oiseau) trouvé le plus tôt, ne correspondrait pas forcément à l'emplacement le plus proche compte tenu du chemin emprunté par un magasinier. Et c'est plutôt l'intérêt de cette algorithme.(Sauf dans l'unique cas où l'emplacement libre se trouve directement dans l'allée faisant face à la position de départ du magasinier, et le sens de circulation lui permet directement de se rendre à l'emplacement sans détour).&lt;br /&gt;
&lt;br /&gt;
* Une sélection intelligente parmi les emplacements libres. Leurs adresses renseignent à quelles allées, les emplacements libres appartiennent, donc renseignent sur le sens de circulation. A partir de la position de départ du magasinier et de l'ensemble des emplacements libres, on peut calculer la distance nécessaire à celui-ci pour les atteindre. Pour ainsi choisir l'adresse pour laquelle la distance est minimale.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 3/11 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Chemin optimal : sélection intelligente des adresses &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Nous avons écrit une premiere méthode de détermination. &lt;br /&gt;
On choisit l'emplacement, parmi tous ceux qui sont libres, pour lequel la distance de parcours est minimale entre le départ et celui-ci. &lt;br /&gt;
Ici l'unité de distance est la baie. La simplicité de l'algorithme réside dans le fait que le magasinier ne transporte qu'une seule caisse à la fois et repars toujours au même point de départ.&lt;br /&gt;
&lt;br /&gt;
Ci dessous un plan de l'entrepôt.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:schema_entrepot.png|750px|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Si on se place à l'entrée de l'Allée A :&lt;br /&gt;
&lt;br /&gt;
**le déplacement jusqu'à A4 (sens de circulation direct) est de : &lt;br /&gt;
&lt;br /&gt;
                        Y baies - (indice de la baie/2 +indice de la baie % 2) &lt;br /&gt;
&lt;br /&gt;
**le déplacement jusqu'à B1 (sens de circulation indirect) est de : &lt;br /&gt;
&lt;br /&gt;
                        Y baies + différence entre l'allée A et B donc X baies + indice de la baie/2 +indice de la baie % 2&lt;br /&gt;
**le déplacement jusqu'à C1 (sens de circulation direct) est de : &lt;br /&gt;
                      &lt;br /&gt;
                        Y baies - (indice de la baie/2 +indice de la baie % 2)+différence entre l'allée A et C donc 2*X baies.&lt;br /&gt;
&lt;br /&gt;
*Si on se place à l'entrée de l'Allée B :&lt;br /&gt;
**le déplacement jusqu'à B1 (sens de circulation indirect avec contournement) est de : &lt;br /&gt;
                        &lt;br /&gt;
                        2*X baies + Y baies + 2*X baies + (indice de la baie/2 +indice de la baie % 2)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On peut généraliser l'ensemble de ces situations de déplacement avec l'algorithme suivant :&lt;br /&gt;
&lt;br /&gt;
Pseudo code&lt;br /&gt;
&lt;br /&gt;
  Leplusproche( Allee depart )&lt;br /&gt;
    distance_la_plus_petite = valeurMAX&lt;br /&gt;
      le_plus_proche=&amp;quot;&amp;quot;&lt;br /&gt;
         Pour chaque Allee de Cellule&lt;br /&gt;
           sens=Allee.sens&lt;br /&gt;
           Pour chaque Baie de Allee&lt;br /&gt;
             Pour chaque Rang de Allee&lt;br /&gt;
 	       Pour chaque Emplacement de Rang&lt;br /&gt;
                Si Emplacement estlibre &lt;br /&gt;
                &lt;br /&gt;
                indice_baie = selection_indice_baie(Emplacement.adresse)&lt;br /&gt;
   		 allee_cible = selection_indice_allee(Emplacement.adresse)  &lt;br /&gt;
   		 difference_allee = valeur_absolue(depart -cible) &lt;br /&gt;
                    Si difference_allee==0 et sens.estindirect&lt;br /&gt;
                      //sens indirect +contournement&lt;br /&gt;
                      distance_actuelle=(indice_baie/2)+indice_baie%2+(2*(difference_allee))+4*X+Y			&lt;br /&gt;
                    Sinon	&lt;br /&gt;
                        Si sens estdirect&lt;br /&gt;
                          //sens direct &lt;br /&gt;
                          distance_actuelle=(Y-((indice_baie/2)+indice_baie%2))+2*difference_allee&lt;br /&gt;
                        Sinon&lt;br /&gt;
                          //sens indirect mais pas de contournement&lt;br /&gt;
                          distance_actuelle=((indice_baie/2)+indice_baie%2)+2*difference_allee+Y&lt;br /&gt;
                        Finsi	&lt;br /&gt;
                    Finsi	&lt;br /&gt;
                    Si distance_actuelle &amp;lt; distance_la_plus_petite&lt;br /&gt;
                      le_plus_proche=Emplacement.adresse&lt;br /&gt;
                      distance_la_plus_petite=distance_actuelle&lt;br /&gt;
                    Finsi&lt;br /&gt;
                Finsi  &lt;br /&gt;
            Finpour&lt;br /&gt;
          Finpour&lt;br /&gt;
        Finpour&lt;br /&gt;
      Finpour&lt;br /&gt;
    retourne le_plus_proche&lt;br /&gt;
  Finleplusproche&lt;br /&gt;
&lt;br /&gt;
Cet algorithme nous donne satisfaction (dans le cadre de la V1)&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 10/11 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Programmation et gestion des interactions &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Aprés quelques difficultés vis à vis de la gestion des menus vocaux sur les lunettes qui ne fonctionnent pas de la même manière que les menus classiques sous android, nous avons étoffé les interactions possible avec l'application des google glass. (Nous souhaitions inflater un deuxième menu pour interagir de manière plus contextuelle, il fallait le faire dans la méthode onCreatePanelMenu dont l'appel serait forcé avec getWindow().invalidatePanelMenu(WindowUtils.FEATURE_VOICE_COMMANDS) plutôt que dans onPrepareOptionsMenu forcée par invalidateOptionMenu()...) &lt;br /&gt;
&lt;br /&gt;
schéma d'utilisation...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Proposition projet affichage télévision &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Tele_concept.png|200px|thumb|right]]&lt;br /&gt;
&lt;br /&gt;
Notre tuteur nous a contacté pour nous proposer d'étudier un second projet en parallèle au projet initial. Celui consistant à gérer l'affichage d'information personnalisé d'un magasinier passant à proximité d'un écran de télévision. Nous devons effectuer un Proof Of Concept (POC) et réfléchir à ce sujet.&lt;br /&gt;
L'utilisation du BLE est donc de nouveau d'actualité, car je rappel que sont utilité était discutable dans une réalité métier du projet initial. La question étant plus de savoir comment gérer le système du coté du téléviseur.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Le concept de base étant de :&lt;br /&gt;
* Fournir une beacon aux magasiniers de l'entrepôt.&lt;br /&gt;
* Installer une télévision sur un centre de vie dans l'entrepôt avec une beacon&lt;br /&gt;
* Pousser du contenu personnalisé au magasinier qui se présente devant la tv dans son centre de vie&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 17/11 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Brainstorming à Polytech &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Dans la cadre du POC sur l'affichage personnalisé sur une télévision, nous avons profité d'un exercice de management pour faire participer la classe à notre projet. Grâce à cette intervention nous avons pu confirmer nos idées sur les technologies à utiliser. Mais nous avons surtout eu une multitude de propositions sur les données à afficher sur l'écran.&lt;br /&gt;
&lt;br /&gt;
Pour plus détails, le compte rendu est disponible à ce lien:&lt;br /&gt;
&lt;br /&gt;
'''Compte Rendu Brainstorming 17/11/2014 :''' [[Fichier:Compte_Rendu_POC_17_11.pdf]]&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Entretien avec notre tuteur entreprise &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Durant cet entretien, nous avons livré la première version de l'application et nous avons discuté de la suite du projet.&lt;br /&gt;
Ci joint le Compte Rendu.&lt;br /&gt;
&lt;br /&gt;
'''Compte Rendu  19/11/2014 :''' [[Fichier:Compte_Rendu_19_11.pdf]]&lt;br /&gt;
&lt;br /&gt;
De cette réunion, les points suivants en sont sortis:&lt;br /&gt;
&lt;br /&gt;
*Une reconnaissance vocale en langue française sur les lunettes serait plus intéressante pour les employés (une piste serait d’utiliser l’outil pocketsphinx-  android).&lt;br /&gt;
*Par rapport à l'IHM, il faudrait mettre l’affichage au premier plan sur les Google Glass pour une démo auprés des parties prenantes du projet.&lt;br /&gt;
*Choisir une architecture pour l’affichage d’information personnalisées.&lt;br /&gt;
**La télévision connectée à une raspberry qui communiquerait via un dongle BLE avec le beacon d’un magasinier, ce qui permettrait l’identification de celui-ci prés de la Télévision, et déclencherait un processus d’échange d’information. (Communication via le protocole Bluetooh, wifi entre les lunettes et la Raspberry  ou communication avec la Raspberry avec la Base de Donnée sur le réseau de l’entreprise)&lt;br /&gt;
**Une télévision connectée en continu à un site internet via un dongle HDMI.&lt;br /&gt;
**Une tablette android géante supportant le BLE, ou utilisant un dongle BLE.&lt;br /&gt;
* Réaliser le portage de l’application sur le prototype des lunettes ORA.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 24/11 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Reconnaissance vocale en Français &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Pocket Sphinx Android est une librairie permettant de faire de la reconnaissance vocale d'un langage donné sur un système android en offline.&lt;br /&gt;
Pour supporter une langue, elle nécessite: &lt;br /&gt;
*un modèle acoustique (ensemble d'informations pour le traitement sonore)&lt;br /&gt;
*un dictionnaire associant les mots et leur phonèmes&lt;br /&gt;
*une grammaire, c'est un fichier définissant comment seraient articulé les mots à reconnaître et limitant les possibilités de langage).&lt;br /&gt;
&lt;br /&gt;
La grammaire étant un automate. Voici un exemple de la grammaire menu.gram pour la reconnaissance de la porte de déchargement.&lt;br /&gt;
[[Fichier:Arborescence_pocket_sphinx.png|200px|thumb|right|PocketSphinx dans un projet Android]]&lt;br /&gt;
&lt;br /&gt;
  #JSGF V1.0;&lt;br /&gt;
  grammar menu;&lt;br /&gt;
  &amp;lt;porte&amp;gt; = porte a |&lt;br /&gt;
            porte b |&lt;br /&gt;
            porte c |&lt;br /&gt;
            porte d |&lt;br /&gt;
            porte e |&lt;br /&gt;
            porte f |&lt;br /&gt;
            porte g |&lt;br /&gt;
            porte h |&lt;br /&gt;
            porte i |&lt;br /&gt;
            porte j ;&lt;br /&gt;
  public &amp;lt;porte&amp;gt; = &amp;lt;porte&amp;gt;+;&lt;br /&gt;
&lt;br /&gt;
Un extrait du dictionnaire french_letter.dic associé avec les phonemes&lt;br /&gt;
&lt;br /&gt;
  a aa &amp;lt;-- juste la lettre a et son phoneme &lt;br /&gt;
  autre au tt rr&lt;br /&gt;
  autre(2) au tt rr ee &lt;br /&gt;
  b bb &lt;br /&gt;
  c ss &lt;br /&gt;
  d dd ei d(2) dd ait &lt;br /&gt;
  e eu e(2) eu zz &lt;br /&gt;
  f ai ff &lt;br /&gt;
  g jj ei g(2) gg ai &lt;br /&gt;
  h aa ch  &lt;br /&gt;
  i ii &lt;br /&gt;
  j jj yy j(2) jj ii&lt;br /&gt;
  porte pp oo rr tt&lt;br /&gt;
  porte(2) pp oo rr tt ee&lt;br /&gt;
  portes(2) pp oo rr tt ee&lt;br /&gt;
  portes(3) pp oo rr tt ee zz&lt;br /&gt;
  portes(4) pp oo rr tt zz&lt;br /&gt;
&lt;br /&gt;
Le modèle acoustique que nous avons téléchargé étant inclu dans lium_french_f0&lt;br /&gt;
&lt;br /&gt;
Nous avons testé la reconnaissance vocale sur un téléphone android, les mots sont, dans la majorité des cas, bien reconnus.&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Comparaison architectures projet TV &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Au niveau de l’architecture nous avons établi plusieurs propositions après la réunion avec notre tuteur:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour une Raspberry Pi avec un dongle BLE :&lt;br /&gt;
* Installation OS Linux sur la Raspberry&lt;br /&gt;
* Librairie BlueZ pour l’utilisation du BLE (tests rapides effectués sur Linux avec le Dongle)&lt;br /&gt;
* Interface graphique avec une bibliothèque comme Qt (ou encore SDL…)&lt;br /&gt;
* Prix : Rpi = 26€ (chez RadioSpare), Dongle = 10€, TV = à partir de 358€ pour 117cm, + Connectique vidéo. Total = 394€&lt;br /&gt;
&lt;br /&gt;
Pour un écran ViewSonic VSD231 :&lt;br /&gt;
* Possède une API Bluetooth classic + API BLE&lt;br /&gt;
* Interface graphique Android (View, Layout...)&lt;br /&gt;
* Prix : écran ViewSonic VSD231 = 558 € pour 58 cm (chez ViewSonic).&lt;br /&gt;
&lt;br /&gt;
Récupération d’informations :&lt;br /&gt;
* Si données sur les lunettes : Bluetooth ou Wifi.&lt;br /&gt;
* Si données sur serveur : Ethernet ou Wifi.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Vu les propositions possibles nous pensons que la première proposition permettra une meilleure souplesse dans le développement mais serait un peu plus compliquée. Mais nous la trouvons aussi plus intéressante à faire de plus elle est moins coûteuse et permet d'utiliser un écran plus grand. Le développement sur tablette serait sûrement plus rapide à faire en contrepartie.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 01/12 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; T &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Conférence GlassCamp à l'Imaginarium &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
GlassCamp est une association qui essaye de répandre l'utilisation de toute les Smart Glass en général. Elle propose de multiples conférences dans lesquelles ils essayent de montrer au public l’intérêt de développer sur ces appareils. Dans le cadre de notre projet, notre tuteur nous a proposé de participer à cette présentation afin de mieux s’approprier le sujet. La conférence a eu lieu le 4 décembre à l'Imaginarium: une grande partie était plutôt tournée vers la présentation mais nous avons apprîs plusieurs choses intéressantes qui sont décrites dans le compte rendu.&lt;br /&gt;
&lt;br /&gt;
'''Compte Rendu Conférence 04/12/2014 :''' [[Fichier:Compte_Rendu_Conf_GlassCamp.pdf]]&lt;/div&gt;</summary>
		<author><name>Jgondry</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=P22_Google_Glass_en_logistique&amp;diff=15014</id>
		<title>P22 Google Glass en logistique</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=P22_Google_Glass_en_logistique&amp;diff=15014"/>
				<updated>2014-12-11T09:37:03Z</updated>
		
		<summary type="html">&lt;p&gt;Jgondry : /*  Conférence GlassCamp à l'Imaginarium  */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Introduction =&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Description du sujet &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
Notre projet vise à l’optimisation du stockage et de l’adressage des palettes dans un entrepôt. En effet, lors du déchargement d’un camion, chercher un emplacement libre pour les palettes dans un entrepôt occupant une grande superficie fait perdre du temps et donc de la productivité dans le stockage. Sachant qu’un cariste perd un temps non négligeable à la recherche d’emplacement disponible, optimiser ce temps de recherche permettrait de gagner du temps sur cette opération.&lt;br /&gt;
Développer un prototype permettrait de rendre compte des moyens existants qui pourrait être mis en place dans une solution métier.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Analyse du sujet &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Google_glass.png|200px|thumb|right|Paire de Google Glass]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Optinvent_ora.png|200px|thumb|right|Paire de ORA d'Optivent]]&lt;br /&gt;
&lt;br /&gt;
Notre projet consiste à fluidifier le déchargement en indiquant au cariste l’emplacement libre le plus proche. Pour ne pas gêner le travail des employés, un dispositif main-libre comme une Google Glass semble adapté. Ce projet soulève plusieurs problématiques : développer une interface homme-machine apportant une information pertinente pour l’utilisateur sans pour autant être perturbante. &lt;br /&gt;
&lt;br /&gt;
L’idée serait de réaliser dans les grandes lignes un système similaire à ce scénario d’utilisation :&lt;br /&gt;
http://n.mynews.ly/!lB.Bs4fw&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Moyen d’affichage de l’Informations pertinentes'''&lt;br /&gt;
&lt;br /&gt;
Les Google Glass ne sont pas les seules smart glasses sur le marché. Il nous faudra choisir les appareils les plus adaptés. L’information pertinente pourrait être une direction à suivre dans l’entrepôt ou simplement un numéro d’emplacement (adressage intuitif de l’entrepôt). &lt;br /&gt;
&lt;br /&gt;
'''Géolocalisation'''&lt;br /&gt;
&lt;br /&gt;
Dans le cas d’une direction à suivre se pose le problème de la géolocalisation indoor dont l’utilité et la faisabilité seront discutés au fil des réunions avec l’entreprise. &lt;br /&gt;
&lt;br /&gt;
'''Adressage / flashage'''&lt;br /&gt;
&lt;br /&gt;
En ce qui concerne l’adressage des palettes en entrepôt, la solution existante repose sur un flashage des codes barres associés à l’emplacement venant d’être occupé. Une étude de faisabilité/utilité sera aussi faite sur une solution de remplacement grâce aux possibilités qu’offrent les smart glasses.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Cahier des charges &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
En partant de l'analyse du sujet et des discussion avec notre tuteur, nous avons définie un cahier des charges plus précis des tâches à accomplir:&lt;br /&gt;
&lt;br /&gt;
* '''Développer un système embarqué sur une paire de lunette Smart Glass'''&lt;br /&gt;
** Comparer les différentes offres en matière de Smart Glass notamment Google Glass &amp;amp; ORA de Optinvent&lt;br /&gt;
** Concevoir une interface homme-machine non perturbante pour l'utilisateur.&lt;br /&gt;
* '''Etudier la nécessité d'utiliser une géolocalisation en entrepôt et l'implémenter si besoin'''&lt;br /&gt;
** Via RSSI (Wifi, Bluetooh Low Energy ...)&lt;br /&gt;
** Via traitement d'images (reconnaissance de la signalétique en entrepôt)&lt;br /&gt;
* '''Etudier les possibilités d'optimisation du système d'adressage des palettes'''&lt;br /&gt;
** Implémenter la reconnaissance de code barre&lt;br /&gt;
** La tester en réalité métier (utilité ajoutée, habitude des magasiniers, vitesse de traitement...)&lt;br /&gt;
&lt;br /&gt;
Le cahier des charges est encore en cours de construction&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Matériel utilisé &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; SmartGlass &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Lors de la réunion nous avons discuté des technologies à utiliser dans le projet, et plus particulièrement des différentes SmartGlass. En effet, il existe une multitude de sociétés qui développe ce genre de lunettes. Nous commencerons à utiliser les Google Glass étant donné que notre tuteur en a déjà commandé puis nous développerons sur les lunettes ORA de Optivent qui seront livrées fin octobre. Nous devrons donc faire un comparatif entre ces deux SmartGlass puis étudier les autres appareils disponibles sur le marché.&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Localisation &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
L'utilisation de la géolocalisation dans le projet est à débattre. Mais des tests seront probablement mis en place. L'entreprise possède quelque iBeacons BLE Estimote dans ses bureaux d'innovations que nous pourrons emprunter.&lt;br /&gt;
Dans le cas où leur gain d'informations serait utile il nous faudra comparer les modèles disponibles. Choisir un nombre de module et des emplacements stratégiques dans l'entrepôt afin d'avoir une localisation assez précise pour l'application.&lt;br /&gt;
&lt;br /&gt;
L'utilisation d'autres technologies de géolocalisation a été discuté comme le Wifi ou le XBee mais le BLE semblait le plus adapté dans le cadre de notre projet.&lt;br /&gt;
&lt;br /&gt;
= Déroulement du projet =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 22/09 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Réunion avec le tuteur entreprise dans l’entrepôt &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Nous avons observé en situation le problème et discuté des besoins, des moyens déjà utilisables. Il nous faudra prendre en compte plusieurs paramètres dans notre réflexion tels que le système de stockage et d'adressages des palettes, sens de circulation des caristes, superficie des zones à desservir, durée de livraison.&lt;br /&gt;
Nous avons suggéré des étapes de validation intermédiaire du système par les futurs utilisateurs et pour cela nous rencontrerons le chef d'équipe des magasiniers lorsque qu'une version sera assez développée.&lt;br /&gt;
&lt;br /&gt;
Nous avons défini avec le tuteur les premières deadlines du projet, voici la timeline récapitulative:&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Timeline_1.jpg||center|1000px]]&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Compte Rendu &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Nous avons rédigé un compte rendu de la première réunion détaillant les spécifications des versions des livrables, des schémas et les sujets abordés lors de la rencontre :&lt;br /&gt;
&lt;br /&gt;
'''Compte Rendu réunion du 25/09/2014 :''' [[Fichier:Compte_Rendu_25_09.pdf]]&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 29/09 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Découverte des Google Glass &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
*Prise en main des Google Glass. &lt;br /&gt;
*Installation d'applications (.apk) grand public. Nous avons utilisé l'outil Android Debug Bridge(adb). Se mettre à la place d'un utilisateur.&lt;br /&gt;
*L'une des deux lunettes qui serait retenue imposera forcément le développement d'une application android (ou d'une technologie trés proche d'android, pour les Google Glass, se basant sur le Glass Development Kit qui est un add-on au SDK classique d'android). Nous avons donc téléchargé les packages nécessaires pour commencer à développer. &lt;br /&gt;
** Nous commençons à nous former sur les technologies android :développement d'applications minimaliste.&lt;br /&gt;
** Installation de nos premières apk minimalistes pour Android.&lt;br /&gt;
** Installation d'une application minimaliste sur la Google Glass.&lt;br /&gt;
&lt;br /&gt;
Voici un comparatif réalisé entre les lunettes ORA et les Google Glass.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Différences Google Glass/ORA &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!   !! Google Glass !! ORA &lt;br /&gt;
|-&lt;br /&gt;
|Connectique&lt;br /&gt;
|Compatible BLE (à partir de la XE 16 KitKat Update), Wifi &lt;br /&gt;
|Compatible BLE, Wifi&lt;br /&gt;
|-&lt;br /&gt;
|Autonomie en utilisation normale&lt;br /&gt;
|de 1h à 2h &lt;br /&gt;
|de 4h à 8h&lt;br /&gt;
|-&lt;br /&gt;
|Son&lt;br /&gt;
|Conductivité Cranienne&lt;br /&gt;
|Prise jack&lt;br /&gt;
|-&lt;br /&gt;
|Interface&lt;br /&gt;
|Ecran occupant une faible superficie dans le champ de vision &lt;br /&gt;
|Ecran 2 positions (moyennes et basses), plus étendu permettant une réalité augmentée &lt;br /&gt;
|-&lt;br /&gt;
|Système d'exploitation&lt;br /&gt;
|Android 4.4&lt;br /&gt;
|Android 4.2.2&lt;br /&gt;
|-&lt;br /&gt;
|Calculs&lt;br /&gt;
|CPU &amp;amp; GPU&lt;br /&gt;
|CPU &amp;amp; GPU&lt;br /&gt;
|-&lt;br /&gt;
|Prix&lt;br /&gt;
|1500$ &lt;br /&gt;
|949$&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 06/10 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Deuxième rendez-vous avec le tuteur entreprise &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Nous avons fait part de notre avancée en matière de prise en main et des problèmes rencontrés en matière de développement.&lt;br /&gt;
Les lunettes ORA sont commandées elles arrivent d'ici la fin octobre.&lt;br /&gt;
&lt;br /&gt;
La première version V1 de l'application pour Google Glass à livrer pour la mi-novembre est fixée.&lt;br /&gt;
&lt;br /&gt;
En partant d'une position connue (en dur dans l'application) dans l'entrepôt, elle indiquera à un utilisateur les emplacements libres les plus proches.&lt;br /&gt;
&lt;br /&gt;
L'état d'occupation des emplacements sera consulté et stocké dans l'application. Il n'y aura donc pas de gestion des conflits. Le sens de circulation dans l'entrepôt sera pris en compte.&lt;br /&gt;
Une communication avec la base de donnée de l'entrepôt n'est pour le moment pas d'actualité, cela nécessiterait des développements en amont.&lt;br /&gt;
La géolocalisation n'est pas au goût du jour non plus. L'adressage des emplacements dans l'entrepôt est intuitif, il est donc facile pour un magasinier de &lt;br /&gt;
se rendre à un emplacement en connaissant l'adresse.&lt;br /&gt;
&lt;br /&gt;
Pour l'IHM, nous nous inspirerons des applications pour Google Glass (les Glasswares) de type GPS.&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Premiers programmes sur Google Glass &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Pour nous familiariser avec la programmation sur ce genre d'appareil nous avons tous deux décidé de suivre en premier le tutoriel Android d'un site spécialisé. Cela afin de mieux comprendre le système Android, avec les concepts d'activités, de view etc.&lt;br /&gt;
Dans un deuxième temps nous avons choisi de suivre plusieurs tutoriels nous expliquant la prise en main basique des lunettes afin de saisir les particularités de leur programmation.&lt;br /&gt;
&lt;br /&gt;
Le plus dur étant finalement de comprendre les liens entre tous les fichiers du projets, les problèmes de drivers et d'upload simple que nous avons rencontrés et l’exécution du programme sur les lunettes. Des choses que nous arrivons maintenant à maitriser mais qui était floues à l'origine.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 13/10 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Programmation et gestion des interactions &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Durant cette semaine nous avons commencé a vraiment toucher aux fonctionnalités des Glass. Pour rester en main libre, nous avons fait des recherches et commencé à programmer de la reconnaissance vocale. Nous avons ainsi crée un système de navigation basique par commande vocale dans différents menus. Pour un accès rapide à l'application et toujours dans la même optique nous avons réussi à inclure le lancement de notre logiciel à partir du &amp;quot;Ok Glass&amp;quot; menu qui est le menu de lancement d'application par commande vocale des Google Glass. Voici un aperçu du résultat:&lt;br /&gt;
[[Fichier:V0_menu.png|1000px|center]]&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Analyse et évaluation du rendu &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Le début de la prise en main des fonctionnalités des Google Glass n'a pas été facile étant donné que la plupart des fonctionnalités sont propres à ce genre d'appareil. De plus elles nécessitent des techniques spéciales de programmation qui ne sont pas toujours très utilisées donc il est parfois difficile de trouver des exemples sur internet.&lt;br /&gt;
Néanmoins après l'implémentation de ces fonctionnalités nous avons pu rencontrer quelques difficultés de reconnaissance. En effet, les Google Glass possèdent un dictionnaire de mots/phrases pour la reconnaissance vocale mais elles nous permettent aussi d'écrire n'importe quelle phrase dans le mode développeur. Les phrases du dictionnaires ne posent aucun problème mais les phrases que nous écrivons sont parfois dures à reconnaitre. La reconnaissance de lettre seule ou de certains numéros est par exemple quasi impossible ou très aléatoire.&lt;br /&gt;
Le système de vu est quant à lui plutôt facile à prendre en main et intuitif dans l'utilisation.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 20/10 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Premiere structure de donnée &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Nous avons opté pour une structure de donnée récursive. Une Cellule, contenant des Allées, qui contiennent des Baies, contenant des Rangées, contenant des Emplacements.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Structure_export_resized.png|750px|center]]&lt;br /&gt;
Nous avons conçu cette structure de donnée pour qu'elle génère, dans un premier temps &amp;quot;en dur&amp;quot;, une cellule contenant des emplacements automatiquement adressés à la manière de ceux présent dans l'entrepôt. Ces adresses sont de la forme &amp;quot;D61A514&amp;quot; traduisez &amp;quot; Cellule 6 Allée 1A Baie 5 Rang 1 Niveau 4&amp;quot;.&lt;br /&gt;
Cette structure prend on compte le sens de circulation dans l'entrepôt.&lt;br /&gt;
Lors de futures interactions avec une base de donnée, cette structure serait sujette à évolution par une modification des méthodes de génération/modification du statut des adresses en fonction de cette base de donnée. Mais celle-ci constitue essentiellement une base pour appréhender plus pratiquement les problématiques de recherches de l'emplacement le plus proche.&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Prise en main de l'interface &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Nous avons déjà abordé les layouts java en TP donc il a été assez facile de commencer à faire des interfaces graphiques simples. Nous avons construit une interface graphique simple pour de faire une démonstration du programme aux tuteurs entreprise afin qu'ils comprennent bien le fonctionnement de notre algorithme.&lt;br /&gt;
L'interface graphique finale du programme sera très sobre afin de ne pas donner trop gêner le magasinier dans sa tâche.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 27/10 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Chemin optimal : Parcours intelligent Vs Sélection intelligente &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Un premier algorithme de recherche de l'emplacement le plus proche a été développé, celui-ci ne prend en compte qu'un seul scénario. &lt;br /&gt;
Celui de la position de départ (quai de déchargement où reviendra constamment le magasinier aprés chaque livraison) correspondante à la première allée de l'entrepôt, et en prenant en compte le sens de circulation. &lt;br /&gt;
A partir de ce moment, nous avons dégager deux grandes manières d'appréhender le problème.&lt;br /&gt;
&lt;br /&gt;
* Un parcours intelligent de la structure de donnée. C'est à dire parcourir les emplacements les plus proches, et choisir le premier emplacement libre. Une solution complexe à réaliser sur le plan algorithmique. En tenant compte du sens de circulation, il apparait que l'emplacement libre &amp;quot;leplusproche&amp;quot; (à vol d'oiseau) trouvé le plus tôt, ne correspondrait pas forcément à l'emplacement le plus proche compte tenu du chemin emprunté par un magasinier. Et c'est plutôt l'intérêt de cette algorithme.(Sauf dans l'unique cas où l'emplacement libre se trouve directement dans l'allée faisant face à la position de départ du magasinier, et le sens de circulation lui permet directement de se rendre à l'emplacement sans détour).&lt;br /&gt;
&lt;br /&gt;
* Une sélection intelligente parmi les emplacements libres. Leurs adresses renseignent à quelles allées, les emplacements libres appartiennent, donc renseignent sur le sens de circulation. A partir de la position de départ du magasinier et de l'ensemble des emplacements libres, on peut calculer la distance nécessaire à celui-ci pour les atteindre. Pour ainsi choisir l'adresse pour laquelle la distance est minimale.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 3/11 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Chemin optimal : sélection intelligente des adresses &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Nous avons écrit une premiere méthode de détermination. &lt;br /&gt;
On choisit l'emplacement, parmi tous ceux qui sont libres, pour lequel la distance de parcours est minimale entre le départ et celui-ci. &lt;br /&gt;
Ici l'unité de distance est la baie. La simplicité de l'algorithme réside dans le fait que le magasinier ne transporte qu'une seule caisse à la fois et repars toujours au même point de départ.&lt;br /&gt;
&lt;br /&gt;
Ci dessous un plan de l'entrepôt.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:schema_entrepot.png|750px|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Si on se place à l'entrée de l'Allée A :&lt;br /&gt;
&lt;br /&gt;
**le déplacement jusqu'à A4 (sens de circulation direct) est de : &lt;br /&gt;
&lt;br /&gt;
                        Y baies - (indice de la baie/2 +indice de la baie % 2) &lt;br /&gt;
&lt;br /&gt;
**le déplacement jusqu'à B1 (sens de circulation indirect) est de : &lt;br /&gt;
&lt;br /&gt;
                        Y baies + différence entre l'allée A et B donc X baies + indice de la baie/2 +indice de la baie % 2&lt;br /&gt;
**le déplacement jusqu'à C1 (sens de circulation direct) est de : &lt;br /&gt;
                      &lt;br /&gt;
                        Y baies - (indice de la baie/2 +indice de la baie % 2)+différence entre l'allée A et C donc 2*X baies.&lt;br /&gt;
&lt;br /&gt;
*Si on se place à l'entrée de l'Allée B :&lt;br /&gt;
**le déplacement jusqu'à B1 (sens de circulation indirect avec contournement) est de : &lt;br /&gt;
                        &lt;br /&gt;
                        2*X baies + Y baies + 2*X baies + (indice de la baie/2 +indice de la baie % 2)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On peut généraliser l'ensemble de ces situations de déplacement avec l'algorithme suivant :&lt;br /&gt;
&lt;br /&gt;
Pseudo code&lt;br /&gt;
&lt;br /&gt;
  Leplusproche( Allee depart )&lt;br /&gt;
    distance_la_plus_petite = valeurMAX&lt;br /&gt;
      le_plus_proche=&amp;quot;&amp;quot;&lt;br /&gt;
         Pour chaque Allee de Cellule&lt;br /&gt;
           sens=Allee.sens&lt;br /&gt;
           Pour chaque Baie de Allee&lt;br /&gt;
             Pour chaque Rang de Allee&lt;br /&gt;
 	       Pour chaque Emplacement de Rang&lt;br /&gt;
                Si Emplacement estlibre &lt;br /&gt;
                &lt;br /&gt;
                indice_baie = selection_indice_baie(Emplacement.adresse)&lt;br /&gt;
   		 allee_cible = selection_indice_allee(Emplacement.adresse)  &lt;br /&gt;
   		 difference_allee = valeur_absolue(depart -cible) &lt;br /&gt;
                    Si difference_allee==0 et sens.estindirect&lt;br /&gt;
                      //sens indirect +contournement&lt;br /&gt;
                      distance_actuelle=(indice_baie/2)+indice_baie%2+(2*(difference_allee))+4*X+Y			&lt;br /&gt;
                    Sinon	&lt;br /&gt;
                        Si sens estdirect&lt;br /&gt;
                          //sens direct &lt;br /&gt;
                          distance_actuelle=(Y-((indice_baie/2)+indice_baie%2))+2*difference_allee&lt;br /&gt;
                        Sinon&lt;br /&gt;
                          //sens indirect mais pas de contournement&lt;br /&gt;
                          distance_actuelle=((indice_baie/2)+indice_baie%2)+2*difference_allee+Y&lt;br /&gt;
                        Finsi	&lt;br /&gt;
                    Finsi	&lt;br /&gt;
                    Si distance_actuelle &amp;lt; distance_la_plus_petite&lt;br /&gt;
                      le_plus_proche=Emplacement.adresse&lt;br /&gt;
                      distance_la_plus_petite=distance_actuelle&lt;br /&gt;
                    Finsi&lt;br /&gt;
                Finsi  &lt;br /&gt;
            Finpour&lt;br /&gt;
          Finpour&lt;br /&gt;
        Finpour&lt;br /&gt;
      Finpour&lt;br /&gt;
    retourne le_plus_proche&lt;br /&gt;
  Finleplusproche&lt;br /&gt;
&lt;br /&gt;
Cet algorithme nous donne satisfaction (dans le cadre de la V1)&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 10/11 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Programmation et gestion des interactions &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Aprés quelques difficultés vis à vis de la gestion des menus vocaux sur les lunettes qui ne fonctionnent pas de la même manière que les menus classiques sous android, nous avons étoffé les interactions possible avec l'application des google glass. (Nous souhaitions inflater un deuxième menu pour interagir de manière plus contextuelle, il fallait le faire dans la méthode onCreatePanelMenu dont l'appel serait forcé avec getWindow().invalidatePanelMenu(WindowUtils.FEATURE_VOICE_COMMANDS) plutôt que dans onPrepareOptionsMenu forcée par invalidateOptionMenu()...) &lt;br /&gt;
&lt;br /&gt;
schéma d'utilisation...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Proposition projet affichage télévision &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Tele_concept.png|200px|thumb|right]]&lt;br /&gt;
&lt;br /&gt;
Notre tuteur nous a contacté pour nous proposer d'étudier un second projet en parallèle au projet initial. Celui consistant à gérer l'affichage d'information personnalisé d'un magasinier passant à proximité d'un écran de télévision. Nous devons effectuer un Proof Of Concept (POC) et réfléchir à ce sujet.&lt;br /&gt;
L'utilisation du BLE est donc de nouveau d'actualité, car je rappel que sont utilité était discutable dans une réalité métier du projet initial. La question étant plus de savoir comment gérer le système du coté du téléviseur.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Le concept de base étant de :&lt;br /&gt;
* Fournir une beacon aux magasiniers de l'entrepôt.&lt;br /&gt;
* Installer une télévision sur un centre de vie dans l'entrepôt avec une beacon&lt;br /&gt;
* Pousser du contenu personnalisé au magasinier qui se présente devant la tv dans son centre de vie&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 17/11 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Brainstorming à Polytech &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Dans la cadre du POC sur l'affichage personnalisé sur une télévision, nous avons profité d'un exercice de management pour faire participer la classe à notre projet. Grâce à cette intervention nous avons pu confirmer nos idées sur les technologies à utiliser. Mais nous avons surtout eu une multitude de propositions sur les données à afficher sur l'écran.&lt;br /&gt;
&lt;br /&gt;
Pour plus détails, le compte rendu est disponible à ce lien:&lt;br /&gt;
&lt;br /&gt;
'''Compte Rendu Brainstorming 17/11/2014 :''' [[Fichier:Compte_Rendu_POC_17_11.pdf]]&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Entretien avec notre tuteur entreprise &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Durant cet entretien, nous avons livré la première version de l'application et nous avons discuté de la suite du projet.&lt;br /&gt;
Ci joint le Compte Rendu.&lt;br /&gt;
&lt;br /&gt;
'''Compte Rendu  19/11/2014 :''' [[Fichier:Compte_Rendu_19_11.pdf]]&lt;br /&gt;
&lt;br /&gt;
De cette réunion, les points suivants en sont sortis:&lt;br /&gt;
&lt;br /&gt;
*Une reconnaissance vocale en langue française sur les lunettes serait plus intéressante pour les employés (une piste serait d’utiliser l’outil pocketsphinx-  android).&lt;br /&gt;
*Par rapport à l'IHM, il faudrait mettre l’affichage au premier plan sur les Google Glass pour une démo auprés des parties prenantes du projet.&lt;br /&gt;
*Choisir une architecture pour l’affichage d’information personnalisées.&lt;br /&gt;
**La télévision connectée à une raspberry qui communiquerait via un dongle BLE avec le beacon d’un magasinier, ce qui permettrait l’identification de celui-ci prés de la Télévision, et déclencherait un processus d’échange d’information. (Communication via le protocole Bluetooh, wifi entre les lunettes et la Raspberry  ou communication avec la Raspberry avec la Base de Donnée sur le réseau de l’entreprise)&lt;br /&gt;
**Une télévision connectée en continu à un site internet via un dongle HDMI.&lt;br /&gt;
**Une tablette android géante supportant le BLE, ou utilisant un dongle BLE.&lt;br /&gt;
* Réaliser le portage de l’application sur le prototype des lunettes ORA.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 24/11 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Reconnaissance vocale en Français &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Pocket Sphinx Android est une librairie permettant de faire de la reconnaissance vocale d'un langage donné sur un système android en offline.&lt;br /&gt;
Pour supporter une langue, elle nécessite: &lt;br /&gt;
*un modèle acoustique (ensemble d'informations pour le traitement sonore)&lt;br /&gt;
*un dictionnaire associant les mots et leur phonèmes&lt;br /&gt;
*une grammaire, c'est un fichier définissant comment seraient articulé les mots à reconnaître et limitant les possibilités de langage).&lt;br /&gt;
&lt;br /&gt;
La grammaire étant un automate. Voici un exemple de la grammaire menu.gram pour la reconnaissance de la porte de déchargement.&lt;br /&gt;
[[Fichier:Arborescence_pocket_sphinx.png|200px|thumb|right|PocketSphinx dans un projet Android]]&lt;br /&gt;
&lt;br /&gt;
  #JSGF V1.0;&lt;br /&gt;
  grammar menu;&lt;br /&gt;
  &amp;lt;porte&amp;gt; = porte a |&lt;br /&gt;
            porte b |&lt;br /&gt;
            porte c |&lt;br /&gt;
            porte d |&lt;br /&gt;
            porte e |&lt;br /&gt;
            porte f |&lt;br /&gt;
            porte g |&lt;br /&gt;
            porte h |&lt;br /&gt;
            porte i |&lt;br /&gt;
            porte j ;&lt;br /&gt;
  public &amp;lt;porte&amp;gt; = &amp;lt;porte&amp;gt;+;&lt;br /&gt;
&lt;br /&gt;
Un extrait du dictionnaire french_letter.dic associé avec les phonemes&lt;br /&gt;
&lt;br /&gt;
  a aa &amp;lt;-- juste la lettre a et son phoneme &lt;br /&gt;
  autre au tt rr&lt;br /&gt;
  autre(2) au tt rr ee &lt;br /&gt;
  b bb &lt;br /&gt;
  c ss &lt;br /&gt;
  d dd ei d(2) dd ait &lt;br /&gt;
  e eu e(2) eu zz &lt;br /&gt;
  f ai ff &lt;br /&gt;
  g jj ei g(2) gg ai &lt;br /&gt;
  h aa ch  &lt;br /&gt;
  i ii &lt;br /&gt;
  j jj yy j(2) jj ii&lt;br /&gt;
  porte pp oo rr tt&lt;br /&gt;
  porte(2) pp oo rr tt ee&lt;br /&gt;
  portes(2) pp oo rr tt ee&lt;br /&gt;
  portes(3) pp oo rr tt ee zz&lt;br /&gt;
  portes(4) pp oo rr tt zz&lt;br /&gt;
&lt;br /&gt;
Le modèle acoustique que nous avons téléchargé étant inclu dans lium_french_f0&lt;br /&gt;
&lt;br /&gt;
Nous avons testé la reconnaissance vocale sur un téléphone android, les mots sont, dans la majorité des cas, bien reconnus.&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Comparaison architectures projet TV &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 01/12 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; T &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Conférence GlassCamp à l'Imaginarium &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
GlassCamp est une association qui essaye de répandre l'utilisation de toute les Smart Glass en général. Elle propose de multiples conférences dans lesquelles ils essayent de montrer au public l’intérêt de développer sur ces appareils. Dans le cadre de notre projet, notre tuteur nous a proposé de participer à cette présentation afin de mieux s’approprier le sujet. La conférence a eu lieu le 4 décembre à l'Imaginarium: une grande partie était plutôt tournée vers la présentation mais nous avons apprîs plusieurs choses intéressantes qui sont décrites dans le compte rendu.&lt;br /&gt;
&lt;br /&gt;
'''Compte Rendu Conférence 04/12/2014 :''' [[Fichier:Compte_Rendu_Conf_GlassCamp.pdf]]&lt;/div&gt;</summary>
		<author><name>Jgondry</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=P22_Google_Glass_en_logistique&amp;diff=15013</id>
		<title>P22 Google Glass en logistique</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=P22_Google_Glass_en_logistique&amp;diff=15013"/>
				<updated>2014-12-11T09:32:01Z</updated>
		
		<summary type="html">&lt;p&gt;Jgondry : /*  Reconnaissance vocale en Français  */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Introduction =&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Description du sujet &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
Notre projet vise à l’optimisation du stockage et de l’adressage des palettes dans un entrepôt. En effet, lors du déchargement d’un camion, chercher un emplacement libre pour les palettes dans un entrepôt occupant une grande superficie fait perdre du temps et donc de la productivité dans le stockage. Sachant qu’un cariste perd un temps non négligeable à la recherche d’emplacement disponible, optimiser ce temps de recherche permettrait de gagner du temps sur cette opération.&lt;br /&gt;
Développer un prototype permettrait de rendre compte des moyens existants qui pourrait être mis en place dans une solution métier.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Analyse du sujet &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Google_glass.png|200px|thumb|right|Paire de Google Glass]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Optinvent_ora.png|200px|thumb|right|Paire de ORA d'Optivent]]&lt;br /&gt;
&lt;br /&gt;
Notre projet consiste à fluidifier le déchargement en indiquant au cariste l’emplacement libre le plus proche. Pour ne pas gêner le travail des employés, un dispositif main-libre comme une Google Glass semble adapté. Ce projet soulève plusieurs problématiques : développer une interface homme-machine apportant une information pertinente pour l’utilisateur sans pour autant être perturbante. &lt;br /&gt;
&lt;br /&gt;
L’idée serait de réaliser dans les grandes lignes un système similaire à ce scénario d’utilisation :&lt;br /&gt;
http://n.mynews.ly/!lB.Bs4fw&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Moyen d’affichage de l’Informations pertinentes'''&lt;br /&gt;
&lt;br /&gt;
Les Google Glass ne sont pas les seules smart glasses sur le marché. Il nous faudra choisir les appareils les plus adaptés. L’information pertinente pourrait être une direction à suivre dans l’entrepôt ou simplement un numéro d’emplacement (adressage intuitif de l’entrepôt). &lt;br /&gt;
&lt;br /&gt;
'''Géolocalisation'''&lt;br /&gt;
&lt;br /&gt;
Dans le cas d’une direction à suivre se pose le problème de la géolocalisation indoor dont l’utilité et la faisabilité seront discutés au fil des réunions avec l’entreprise. &lt;br /&gt;
&lt;br /&gt;
'''Adressage / flashage'''&lt;br /&gt;
&lt;br /&gt;
En ce qui concerne l’adressage des palettes en entrepôt, la solution existante repose sur un flashage des codes barres associés à l’emplacement venant d’être occupé. Une étude de faisabilité/utilité sera aussi faite sur une solution de remplacement grâce aux possibilités qu’offrent les smart glasses.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Cahier des charges &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
En partant de l'analyse du sujet et des discussion avec notre tuteur, nous avons définie un cahier des charges plus précis des tâches à accomplir:&lt;br /&gt;
&lt;br /&gt;
* '''Développer un système embarqué sur une paire de lunette Smart Glass'''&lt;br /&gt;
** Comparer les différentes offres en matière de Smart Glass notamment Google Glass &amp;amp; ORA de Optinvent&lt;br /&gt;
** Concevoir une interface homme-machine non perturbante pour l'utilisateur.&lt;br /&gt;
* '''Etudier la nécessité d'utiliser une géolocalisation en entrepôt et l'implémenter si besoin'''&lt;br /&gt;
** Via RSSI (Wifi, Bluetooh Low Energy ...)&lt;br /&gt;
** Via traitement d'images (reconnaissance de la signalétique en entrepôt)&lt;br /&gt;
* '''Etudier les possibilités d'optimisation du système d'adressage des palettes'''&lt;br /&gt;
** Implémenter la reconnaissance de code barre&lt;br /&gt;
** La tester en réalité métier (utilité ajoutée, habitude des magasiniers, vitesse de traitement...)&lt;br /&gt;
&lt;br /&gt;
Le cahier des charges est encore en cours de construction&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Matériel utilisé &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; SmartGlass &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Lors de la réunion nous avons discuté des technologies à utiliser dans le projet, et plus particulièrement des différentes SmartGlass. En effet, il existe une multitude de sociétés qui développe ce genre de lunettes. Nous commencerons à utiliser les Google Glass étant donné que notre tuteur en a déjà commandé puis nous développerons sur les lunettes ORA de Optivent qui seront livrées fin octobre. Nous devrons donc faire un comparatif entre ces deux SmartGlass puis étudier les autres appareils disponibles sur le marché.&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Localisation &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
L'utilisation de la géolocalisation dans le projet est à débattre. Mais des tests seront probablement mis en place. L'entreprise possède quelque iBeacons BLE Estimote dans ses bureaux d'innovations que nous pourrons emprunter.&lt;br /&gt;
Dans le cas où leur gain d'informations serait utile il nous faudra comparer les modèles disponibles. Choisir un nombre de module et des emplacements stratégiques dans l'entrepôt afin d'avoir une localisation assez précise pour l'application.&lt;br /&gt;
&lt;br /&gt;
L'utilisation d'autres technologies de géolocalisation a été discuté comme le Wifi ou le XBee mais le BLE semblait le plus adapté dans le cadre de notre projet.&lt;br /&gt;
&lt;br /&gt;
= Déroulement du projet =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 22/09 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Réunion avec le tuteur entreprise dans l’entrepôt &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Nous avons observé en situation le problème et discuté des besoins, des moyens déjà utilisables. Il nous faudra prendre en compte plusieurs paramètres dans notre réflexion tels que le système de stockage et d'adressages des palettes, sens de circulation des caristes, superficie des zones à desservir, durée de livraison.&lt;br /&gt;
Nous avons suggéré des étapes de validation intermédiaire du système par les futurs utilisateurs et pour cela nous rencontrerons le chef d'équipe des magasiniers lorsque qu'une version sera assez développée.&lt;br /&gt;
&lt;br /&gt;
Nous avons défini avec le tuteur les premières deadlines du projet, voici la timeline récapitulative:&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Timeline_1.jpg||center|1000px]]&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Compte Rendu &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Nous avons rédigé un compte rendu de la première réunion détaillant les spécifications des versions des livrables, des schémas et les sujets abordés lors de la rencontre :&lt;br /&gt;
&lt;br /&gt;
'''Compte Rendu réunion du 25/09/2014 :''' [[Fichier:Compte_Rendu_25_09.pdf]]&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 29/09 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Découverte des Google Glass &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
*Prise en main des Google Glass. &lt;br /&gt;
*Installation d'applications (.apk) grand public. Nous avons utilisé l'outil Android Debug Bridge(adb). Se mettre à la place d'un utilisateur.&lt;br /&gt;
*L'une des deux lunettes qui serait retenue imposera forcément le développement d'une application android (ou d'une technologie trés proche d'android, pour les Google Glass, se basant sur le Glass Development Kit qui est un add-on au SDK classique d'android). Nous avons donc téléchargé les packages nécessaires pour commencer à développer. &lt;br /&gt;
** Nous commençons à nous former sur les technologies android :développement d'applications minimaliste.&lt;br /&gt;
** Installation de nos premières apk minimalistes pour Android.&lt;br /&gt;
** Installation d'une application minimaliste sur la Google Glass.&lt;br /&gt;
&lt;br /&gt;
Voici un comparatif réalisé entre les lunettes ORA et les Google Glass.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Différences Google Glass/ORA &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!   !! Google Glass !! ORA &lt;br /&gt;
|-&lt;br /&gt;
|Connectique&lt;br /&gt;
|Compatible BLE (à partir de la XE 16 KitKat Update), Wifi &lt;br /&gt;
|Compatible BLE, Wifi&lt;br /&gt;
|-&lt;br /&gt;
|Autonomie en utilisation normale&lt;br /&gt;
|de 1h à 2h &lt;br /&gt;
|de 4h à 8h&lt;br /&gt;
|-&lt;br /&gt;
|Son&lt;br /&gt;
|Conductivité Cranienne&lt;br /&gt;
|Prise jack&lt;br /&gt;
|-&lt;br /&gt;
|Interface&lt;br /&gt;
|Ecran occupant une faible superficie dans le champ de vision &lt;br /&gt;
|Ecran 2 positions (moyennes et basses), plus étendu permettant une réalité augmentée &lt;br /&gt;
|-&lt;br /&gt;
|Système d'exploitation&lt;br /&gt;
|Android 4.4&lt;br /&gt;
|Android 4.2.2&lt;br /&gt;
|-&lt;br /&gt;
|Calculs&lt;br /&gt;
|CPU &amp;amp; GPU&lt;br /&gt;
|CPU &amp;amp; GPU&lt;br /&gt;
|-&lt;br /&gt;
|Prix&lt;br /&gt;
|1500$ &lt;br /&gt;
|949$&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 06/10 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Deuxième rendez-vous avec le tuteur entreprise &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Nous avons fait part de notre avancée en matière de prise en main et des problèmes rencontrés en matière de développement.&lt;br /&gt;
Les lunettes ORA sont commandées elles arrivent d'ici la fin octobre.&lt;br /&gt;
&lt;br /&gt;
La première version V1 de l'application pour Google Glass à livrer pour la mi-novembre est fixée.&lt;br /&gt;
&lt;br /&gt;
En partant d'une position connue (en dur dans l'application) dans l'entrepôt, elle indiquera à un utilisateur les emplacements libres les plus proches.&lt;br /&gt;
&lt;br /&gt;
L'état d'occupation des emplacements sera consulté et stocké dans l'application. Il n'y aura donc pas de gestion des conflits. Le sens de circulation dans l'entrepôt sera pris en compte.&lt;br /&gt;
Une communication avec la base de donnée de l'entrepôt n'est pour le moment pas d'actualité, cela nécessiterait des développements en amont.&lt;br /&gt;
La géolocalisation n'est pas au goût du jour non plus. L'adressage des emplacements dans l'entrepôt est intuitif, il est donc facile pour un magasinier de &lt;br /&gt;
se rendre à un emplacement en connaissant l'adresse.&lt;br /&gt;
&lt;br /&gt;
Pour l'IHM, nous nous inspirerons des applications pour Google Glass (les Glasswares) de type GPS.&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Premiers programmes sur Google Glass &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Pour nous familiariser avec la programmation sur ce genre d'appareil nous avons tous deux décidé de suivre en premier le tutoriel Android d'un site spécialisé. Cela afin de mieux comprendre le système Android, avec les concepts d'activités, de view etc.&lt;br /&gt;
Dans un deuxième temps nous avons choisi de suivre plusieurs tutoriels nous expliquant la prise en main basique des lunettes afin de saisir les particularités de leur programmation.&lt;br /&gt;
&lt;br /&gt;
Le plus dur étant finalement de comprendre les liens entre tous les fichiers du projets, les problèmes de drivers et d'upload simple que nous avons rencontrés et l’exécution du programme sur les lunettes. Des choses que nous arrivons maintenant à maitriser mais qui était floues à l'origine.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 13/10 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Programmation et gestion des interactions &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Durant cette semaine nous avons commencé a vraiment toucher aux fonctionnalités des Glass. Pour rester en main libre, nous avons fait des recherches et commencé à programmer de la reconnaissance vocale. Nous avons ainsi crée un système de navigation basique par commande vocale dans différents menus. Pour un accès rapide à l'application et toujours dans la même optique nous avons réussi à inclure le lancement de notre logiciel à partir du &amp;quot;Ok Glass&amp;quot; menu qui est le menu de lancement d'application par commande vocale des Google Glass. Voici un aperçu du résultat:&lt;br /&gt;
[[Fichier:V0_menu.png|1000px|center]]&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Analyse et évaluation du rendu &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Le début de la prise en main des fonctionnalités des Google Glass n'a pas été facile étant donné que la plupart des fonctionnalités sont propres à ce genre d'appareil. De plus elles nécessitent des techniques spéciales de programmation qui ne sont pas toujours très utilisées donc il est parfois difficile de trouver des exemples sur internet.&lt;br /&gt;
Néanmoins après l'implémentation de ces fonctionnalités nous avons pu rencontrer quelques difficultés de reconnaissance. En effet, les Google Glass possèdent un dictionnaire de mots/phrases pour la reconnaissance vocale mais elles nous permettent aussi d'écrire n'importe quelle phrase dans le mode développeur. Les phrases du dictionnaires ne posent aucun problème mais les phrases que nous écrivons sont parfois dures à reconnaitre. La reconnaissance de lettre seule ou de certains numéros est par exemple quasi impossible ou très aléatoire.&lt;br /&gt;
Le système de vu est quant à lui plutôt facile à prendre en main et intuitif dans l'utilisation.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 20/10 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Premiere structure de donnée &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Nous avons opté pour une structure de donnée récursive. Une Cellule, contenant des Allées, qui contiennent des Baies, contenant des Rangées, contenant des Emplacements.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Structure_export_resized.png|750px|center]]&lt;br /&gt;
Nous avons conçu cette structure de donnée pour qu'elle génère, dans un premier temps &amp;quot;en dur&amp;quot;, une cellule contenant des emplacements automatiquement adressés à la manière de ceux présent dans l'entrepôt. Ces adresses sont de la forme &amp;quot;D61A514&amp;quot; traduisez &amp;quot; Cellule 6 Allée 1A Baie 5 Rang 1 Niveau 4&amp;quot;.&lt;br /&gt;
Cette structure prend on compte le sens de circulation dans l'entrepôt.&lt;br /&gt;
Lors de futures interactions avec une base de donnée, cette structure serait sujette à évolution par une modification des méthodes de génération/modification du statut des adresses en fonction de cette base de donnée. Mais celle-ci constitue essentiellement une base pour appréhender plus pratiquement les problématiques de recherches de l'emplacement le plus proche.&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Prise en main de l'interface &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Nous avons déjà abordé les layouts java en TP donc il a été assez facile de commencer à faire des interfaces graphiques simples. Nous avons construit une interface graphique simple pour de faire une démonstration du programme aux tuteurs entreprise afin qu'ils comprennent bien le fonctionnement de notre algorithme.&lt;br /&gt;
L'interface graphique finale du programme sera très sobre afin de ne pas donner trop gêner le magasinier dans sa tâche.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 27/10 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Chemin optimal : Parcours intelligent Vs Sélection intelligente &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Un premier algorithme de recherche de l'emplacement le plus proche a été développé, celui-ci ne prend en compte qu'un seul scénario. &lt;br /&gt;
Celui de la position de départ (quai de déchargement où reviendra constamment le magasinier aprés chaque livraison) correspondante à la première allée de l'entrepôt, et en prenant en compte le sens de circulation. &lt;br /&gt;
A partir de ce moment, nous avons dégager deux grandes manières d'appréhender le problème.&lt;br /&gt;
&lt;br /&gt;
* Un parcours intelligent de la structure de donnée. C'est à dire parcourir les emplacements les plus proches, et choisir le premier emplacement libre. Une solution complexe à réaliser sur le plan algorithmique. En tenant compte du sens de circulation, il apparait que l'emplacement libre &amp;quot;leplusproche&amp;quot; (à vol d'oiseau) trouvé le plus tôt, ne correspondrait pas forcément à l'emplacement le plus proche compte tenu du chemin emprunté par un magasinier. Et c'est plutôt l'intérêt de cette algorithme.(Sauf dans l'unique cas où l'emplacement libre se trouve directement dans l'allée faisant face à la position de départ du magasinier, et le sens de circulation lui permet directement de se rendre à l'emplacement sans détour).&lt;br /&gt;
&lt;br /&gt;
* Une sélection intelligente parmi les emplacements libres. Leurs adresses renseignent à quelles allées, les emplacements libres appartiennent, donc renseignent sur le sens de circulation. A partir de la position de départ du magasinier et de l'ensemble des emplacements libres, on peut calculer la distance nécessaire à celui-ci pour les atteindre. Pour ainsi choisir l'adresse pour laquelle la distance est minimale.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 3/11 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Chemin optimal : sélection intelligente des adresses &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Nous avons écrit une premiere méthode de détermination. &lt;br /&gt;
On choisit l'emplacement, parmi tous ceux qui sont libres, pour lequel la distance de parcours est minimale entre le départ et celui-ci. &lt;br /&gt;
Ici l'unité de distance est la baie. La simplicité de l'algorithme réside dans le fait que le magasinier ne transporte qu'une seule caisse à la fois et repars toujours au même point de départ.&lt;br /&gt;
&lt;br /&gt;
Ci dessous un plan de l'entrepôt.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:schema_entrepot.png|750px|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Si on se place à l'entrée de l'Allée A :&lt;br /&gt;
&lt;br /&gt;
**le déplacement jusqu'à A4 (sens de circulation direct) est de : &lt;br /&gt;
&lt;br /&gt;
                        Y baies - (indice de la baie/2 +indice de la baie % 2) &lt;br /&gt;
&lt;br /&gt;
**le déplacement jusqu'à B1 (sens de circulation indirect) est de : &lt;br /&gt;
&lt;br /&gt;
                        Y baies + différence entre l'allée A et B donc X baies + indice de la baie/2 +indice de la baie % 2&lt;br /&gt;
**le déplacement jusqu'à C1 (sens de circulation direct) est de : &lt;br /&gt;
                      &lt;br /&gt;
                        Y baies - (indice de la baie/2 +indice de la baie % 2)+différence entre l'allée A et C donc 2*X baies.&lt;br /&gt;
&lt;br /&gt;
*Si on se place à l'entrée de l'Allée B :&lt;br /&gt;
**le déplacement jusqu'à B1 (sens de circulation indirect avec contournement) est de : &lt;br /&gt;
                        &lt;br /&gt;
                        2*X baies + Y baies + 2*X baies + (indice de la baie/2 +indice de la baie % 2)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On peut généraliser l'ensemble de ces situations de déplacement avec l'algorithme suivant :&lt;br /&gt;
&lt;br /&gt;
Pseudo code&lt;br /&gt;
&lt;br /&gt;
  Leplusproche( Allee depart )&lt;br /&gt;
    distance_la_plus_petite = valeurMAX&lt;br /&gt;
      le_plus_proche=&amp;quot;&amp;quot;&lt;br /&gt;
         Pour chaque Allee de Cellule&lt;br /&gt;
           sens=Allee.sens&lt;br /&gt;
           Pour chaque Baie de Allee&lt;br /&gt;
             Pour chaque Rang de Allee&lt;br /&gt;
 	       Pour chaque Emplacement de Rang&lt;br /&gt;
                Si Emplacement estlibre &lt;br /&gt;
                &lt;br /&gt;
                indice_baie = selection_indice_baie(Emplacement.adresse)&lt;br /&gt;
   		 allee_cible = selection_indice_allee(Emplacement.adresse)  &lt;br /&gt;
   		 difference_allee = valeur_absolue(depart -cible) &lt;br /&gt;
                    Si difference_allee==0 et sens.estindirect&lt;br /&gt;
                      //sens indirect +contournement&lt;br /&gt;
                      distance_actuelle=(indice_baie/2)+indice_baie%2+(2*(difference_allee))+4*X+Y			&lt;br /&gt;
                    Sinon	&lt;br /&gt;
                        Si sens estdirect&lt;br /&gt;
                          //sens direct &lt;br /&gt;
                          distance_actuelle=(Y-((indice_baie/2)+indice_baie%2))+2*difference_allee&lt;br /&gt;
                        Sinon&lt;br /&gt;
                          //sens indirect mais pas de contournement&lt;br /&gt;
                          distance_actuelle=((indice_baie/2)+indice_baie%2)+2*difference_allee+Y&lt;br /&gt;
                        Finsi	&lt;br /&gt;
                    Finsi	&lt;br /&gt;
                    Si distance_actuelle &amp;lt; distance_la_plus_petite&lt;br /&gt;
                      le_plus_proche=Emplacement.adresse&lt;br /&gt;
                      distance_la_plus_petite=distance_actuelle&lt;br /&gt;
                    Finsi&lt;br /&gt;
                Finsi  &lt;br /&gt;
            Finpour&lt;br /&gt;
          Finpour&lt;br /&gt;
        Finpour&lt;br /&gt;
      Finpour&lt;br /&gt;
    retourne le_plus_proche&lt;br /&gt;
  Finleplusproche&lt;br /&gt;
&lt;br /&gt;
Cet algorithme nous donne satisfaction (dans le cadre de la V1)&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 10/11 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Programmation et gestion des interactions &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Aprés quelques difficultés vis à vis de la gestion des menus vocaux sur les lunettes qui ne fonctionnent pas de la même manière que les menus classiques sous android, nous avons étoffé les interactions possible avec l'application des google glass. (Nous souhaitions inflater un deuxième menu pour interagir de manière plus contextuelle, il fallait le faire dans la méthode onCreatePanelMenu dont l'appel serait forcé avec getWindow().invalidatePanelMenu(WindowUtils.FEATURE_VOICE_COMMANDS) plutôt que dans onPrepareOptionsMenu forcée par invalidateOptionMenu()...) &lt;br /&gt;
&lt;br /&gt;
schéma d'utilisation...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Proposition projet affichage télévision &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Tele_concept.png|200px|thumb|right]]&lt;br /&gt;
&lt;br /&gt;
Notre tuteur nous a contacté pour nous proposer d'étudier un second projet en parallèle au projet initial. Celui consistant à gérer l'affichage d'information personnalisé d'un magasinier passant à proximité d'un écran de télévision. Nous devons effectuer un Proof Of Concept (POC) et réfléchir à ce sujet.&lt;br /&gt;
L'utilisation du BLE est donc de nouveau d'actualité, car je rappel que sont utilité était discutable dans une réalité métier du projet initial. La question étant plus de savoir comment gérer le système du coté du téléviseur.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Le concept de base étant de :&lt;br /&gt;
* Fournir une beacon aux magasiniers de l'entrepôt.&lt;br /&gt;
* Installer une télévision sur un centre de vie dans l'entrepôt avec une beacon&lt;br /&gt;
* Pousser du contenu personnalisé au magasinier qui se présente devant la tv dans son centre de vie&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 17/11 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Brainstorming à Polytech &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Dans la cadre du POC sur l'affichage personnalisé sur une télévision, nous avons profité d'un exercice de management pour faire participer la classe à notre projet. Grâce à cette intervention nous avons pu confirmer nos idées sur les technologies à utiliser. Mais nous avons surtout eu une multitude de propositions sur les données à afficher sur l'écran.&lt;br /&gt;
&lt;br /&gt;
Pour plus détails, le compte rendu est disponible à ce lien:&lt;br /&gt;
&lt;br /&gt;
'''Compte Rendu Brainstorming 17/11/2014 :''' [[Fichier:Compte_Rendu_POC_17_11.pdf]]&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Entretien avec notre tuteur entreprise &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Durant cet entretien, nous avons livré la première version de l'application et nous avons discuté de la suite du projet.&lt;br /&gt;
Ci joint le Compte Rendu.&lt;br /&gt;
&lt;br /&gt;
'''Compte Rendu  19/11/2014 :''' [[Fichier:Compte_Rendu_19_11.pdf]]&lt;br /&gt;
&lt;br /&gt;
De cette réunion, les points suivants en sont sortis:&lt;br /&gt;
&lt;br /&gt;
*Une reconnaissance vocale en langue française sur les lunettes serait plus intéressante pour les employés (une piste serait d’utiliser l’outil pocketsphinx-  android).&lt;br /&gt;
*Par rapport à l'IHM, il faudrait mettre l’affichage au premier plan sur les Google Glass pour une démo auprés des parties prenantes du projet.&lt;br /&gt;
*Choisir une architecture pour l’affichage d’information personnalisées.&lt;br /&gt;
**La télévision connectée à une raspberry qui communiquerait via un dongle BLE avec le beacon d’un magasinier, ce qui permettrait l’identification de celui-ci prés de la Télévision, et déclencherait un processus d’échange d’information. (Communication via le protocole Bluetooh, wifi entre les lunettes et la Raspberry  ou communication avec la Raspberry avec la Base de Donnée sur le réseau de l’entreprise)&lt;br /&gt;
**Une télévision connectée en continu à un site internet via un dongle HDMI.&lt;br /&gt;
**Une tablette android géante supportant le BLE, ou utilisant un dongle BLE.&lt;br /&gt;
* Réaliser le portage de l’application sur le prototype des lunettes ORA.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 24/11 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Reconnaissance vocale en Français &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Pocket Sphinx Android est une librairie permettant de faire de la reconnaissance vocale d'un langage donné sur un système android en offline.&lt;br /&gt;
Pour supporter une langue, elle nécessite: &lt;br /&gt;
*un modèle acoustique (ensemble d'informations pour le traitement sonore)&lt;br /&gt;
*un dictionnaire associant les mots et leur phonèmes&lt;br /&gt;
*une grammaire, c'est un fichier définissant comment seraient articulé les mots à reconnaître et limitant les possibilités de langage).&lt;br /&gt;
&lt;br /&gt;
La grammaire étant un automate. Voici un exemple de la grammaire menu.gram pour la reconnaissance de la porte de déchargement.&lt;br /&gt;
[[Fichier:Arborescence_pocket_sphinx.png|200px|thumb|right|PocketSphinx dans un projet Android]]&lt;br /&gt;
&lt;br /&gt;
  #JSGF V1.0;&lt;br /&gt;
  grammar menu;&lt;br /&gt;
  &amp;lt;porte&amp;gt; = porte a |&lt;br /&gt;
            porte b |&lt;br /&gt;
            porte c |&lt;br /&gt;
            porte d |&lt;br /&gt;
            porte e |&lt;br /&gt;
            porte f |&lt;br /&gt;
            porte g |&lt;br /&gt;
            porte h |&lt;br /&gt;
            porte i |&lt;br /&gt;
            porte j ;&lt;br /&gt;
  public &amp;lt;porte&amp;gt; = &amp;lt;porte&amp;gt;+;&lt;br /&gt;
&lt;br /&gt;
Un extrait du dictionnaire french_letter.dic associé avec les phonemes&lt;br /&gt;
&lt;br /&gt;
  a aa &amp;lt;-- juste la lettre a et son phoneme &lt;br /&gt;
  autre au tt rr&lt;br /&gt;
  autre(2) au tt rr ee &lt;br /&gt;
  b bb &lt;br /&gt;
  c ss &lt;br /&gt;
  d dd ei d(2) dd ait &lt;br /&gt;
  e eu e(2) eu zz &lt;br /&gt;
  f ai ff &lt;br /&gt;
  g jj ei g(2) gg ai &lt;br /&gt;
  h aa ch  &lt;br /&gt;
  i ii &lt;br /&gt;
  j jj yy j(2) jj ii&lt;br /&gt;
  porte pp oo rr tt&lt;br /&gt;
  porte(2) pp oo rr tt ee&lt;br /&gt;
  portes(2) pp oo rr tt ee&lt;br /&gt;
  portes(3) pp oo rr tt ee zz&lt;br /&gt;
  portes(4) pp oo rr tt zz&lt;br /&gt;
&lt;br /&gt;
Le modèle acoustique que nous avons téléchargé étant inclu dans lium_french_f0&lt;br /&gt;
&lt;br /&gt;
Nous avons testé la reconnaissance vocale sur un téléphone android, les mots sont, dans la majorité des cas, bien reconnus.&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Comparaison architectures projet TV &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 01/12 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; T &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Conférence GlassCamp à l'Imaginarium &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
GlassCamp est une association qui essaye de répandre l'utilisation de toute les Smart Glass en général. Elle propose de multiple conférences dans lesquels ils essayent de montrer au public l’intérêt de développer sur ces appareils. Dans le cadre de notre projet, notre tuteur nous a proposé de participer à cette présentation afin de mieux s’approprier le sujet. La conférence à eu lieux le 4 décembre à l'Imaginarium: une grande partie était plus tournée vers la présentation mais nous avons apprît plusieurs choses inintéressantes qui sont décrient dans le compte rendu.&lt;br /&gt;
&lt;br /&gt;
'''Compte Rendu Conférence 04/12/2014 :''' [[Fichier:Compte_Rendu_Conf_GlassCamp.pdf]]&lt;/div&gt;</summary>
		<author><name>Jgondry</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=P22_Google_Glass_en_logistique&amp;diff=15012</id>
		<title>P22 Google Glass en logistique</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=P22_Google_Glass_en_logistique&amp;diff=15012"/>
				<updated>2014-12-11T09:09:50Z</updated>
		
		<summary type="html">&lt;p&gt;Jgondry : /*  Reconnaissance vocale en Français  */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Introduction =&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Description du sujet &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
Notre projet vise à l’optimisation du stockage et de l’adressage des palettes dans un entrepôt. En effet, lors du déchargement d’un camion, chercher un emplacement libre pour les palettes dans un entrepôt occupant une grande superficie fait perdre du temps et donc de la productivité dans le stockage. Sachant qu’un cariste perd un temps non négligeable à la recherche d’emplacement disponible, optimiser ce temps de recherche permettrait de gagner du temps sur cette opération.&lt;br /&gt;
Développer un prototype permettrait de rendre compte des moyens existants qui pourrait être mis en place dans une solution métier.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Analyse du sujet &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Google_glass.png|200px|thumb|right|Paire de Google Glass]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Optinvent_ora.png|200px|thumb|right|Paire de ORA d'Optivent]]&lt;br /&gt;
&lt;br /&gt;
Notre projet consiste à fluidifier le déchargement en indiquant au cariste l’emplacement libre le plus proche. Pour ne pas gêner le travail des employés, un dispositif main-libre comme une Google Glass semble adapté. Ce projet soulève plusieurs problématiques : développer une interface homme-machine apportant une information pertinente pour l’utilisateur sans pour autant être perturbante. &lt;br /&gt;
&lt;br /&gt;
L’idée serait de réaliser dans les grandes lignes un système similaire à ce scénario d’utilisation :&lt;br /&gt;
http://n.mynews.ly/!lB.Bs4fw&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Moyen d’affichage de l’Informations pertinentes'''&lt;br /&gt;
&lt;br /&gt;
Les Google Glass ne sont pas les seules smart glasses sur le marché. Il nous faudra choisir les appareils les plus adaptés. L’information pertinente pourrait être une direction à suivre dans l’entrepôt ou simplement un numéro d’emplacement (adressage intuitif de l’entrepôt). &lt;br /&gt;
&lt;br /&gt;
'''Géolocalisation'''&lt;br /&gt;
&lt;br /&gt;
Dans le cas d’une direction à suivre se pose le problème de la géolocalisation indoor dont l’utilité et la faisabilité seront discutés au fil des réunions avec l’entreprise. &lt;br /&gt;
&lt;br /&gt;
'''Adressage / flashage'''&lt;br /&gt;
&lt;br /&gt;
En ce qui concerne l’adressage des palettes en entrepôt, la solution existante repose sur un flashage des codes barres associés à l’emplacement venant d’être occupé. Une étude de faisabilité/utilité sera aussi faite sur une solution de remplacement grâce aux possibilités qu’offrent les smart glasses.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Cahier des charges &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
En partant de l'analyse du sujet et des discussion avec notre tuteur, nous avons définie un cahier des charges plus précis des tâches à accomplir:&lt;br /&gt;
&lt;br /&gt;
* '''Développer un système embarqué sur une paire de lunette Smart Glass'''&lt;br /&gt;
** Comparer les différentes offres en matière de Smart Glass notamment Google Glass &amp;amp; ORA de Optinvent&lt;br /&gt;
** Concevoir une interface homme-machine non perturbante pour l'utilisateur.&lt;br /&gt;
* '''Etudier la nécessité d'utiliser une géolocalisation en entrepôt et l'implémenter si besoin'''&lt;br /&gt;
** Via RSSI (Wifi, Bluetooh Low Energy ...)&lt;br /&gt;
** Via traitement d'images (reconnaissance de la signalétique en entrepôt)&lt;br /&gt;
* '''Etudier les possibilités d'optimisation du système d'adressage des palettes'''&lt;br /&gt;
** Implémenter la reconnaissance de code barre&lt;br /&gt;
** La tester en réalité métier (utilité ajoutée, habitude des magasiniers, vitesse de traitement...)&lt;br /&gt;
&lt;br /&gt;
Le cahier des charges est encore en cours de construction&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Matériel utilisé &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; SmartGlass &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Lors de la réunion nous avons discuté des technologies à utiliser dans le projet, et plus particulièrement des différentes SmartGlass. En effet, il existe une multitude de sociétés qui développe ce genre de lunettes. Nous commencerons à utiliser les Google Glass étant donné que notre tuteur en a déjà commandé puis nous développerons sur les lunettes ORA de Optivent qui seront livrées fin octobre. Nous devrons donc faire un comparatif entre ces deux SmartGlass puis étudier les autres appareils disponibles sur le marché.&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Localisation &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
L'utilisation de la géolocalisation dans le projet est à débattre. Mais des tests seront probablement mis en place. L'entreprise possède quelque iBeacons BLE Estimote dans ses bureaux d'innovations que nous pourrons emprunter.&lt;br /&gt;
Dans le cas où leur gain d'informations serait utile il nous faudra comparer les modèles disponibles. Choisir un nombre de module et des emplacements stratégiques dans l'entrepôt afin d'avoir une localisation assez précise pour l'application.&lt;br /&gt;
&lt;br /&gt;
L'utilisation d'autres technologies de géolocalisation a été discuté comme le Wifi ou le XBee mais le BLE semblait le plus adapté dans le cadre de notre projet.&lt;br /&gt;
&lt;br /&gt;
= Déroulement du projet =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 22/09 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Réunion avec le tuteur entreprise dans l’entrepôt &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Nous avons observé en situation le problème et discuté des besoins, des moyens déjà utilisables. Il nous faudra prendre en compte plusieurs paramètres dans notre réflexion tels que le système de stockage et d'adressages des palettes, sens de circulation des caristes, superficie des zones à desservir, durée de livraison.&lt;br /&gt;
Nous avons suggéré des étapes de validation intermédiaire du système par les futurs utilisateurs et pour cela nous rencontrerons le chef d'équipe des magasiniers lorsque qu'une version sera assez développée.&lt;br /&gt;
&lt;br /&gt;
Nous avons défini avec le tuteur les premières deadlines du projet, voici la timeline récapitulative:&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Timeline_1.jpg||center|1000px]]&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Compte Rendu &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Nous avons rédigé un compte rendu de la première réunion détaillant les spécifications des versions des livrables, des schémas et les sujets abordés lors de la rencontre :&lt;br /&gt;
&lt;br /&gt;
'''Compte Rendu réunion du 25/09/2014 :''' [[Fichier:Compte_Rendu_25_09.pdf]]&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 29/09 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Découverte des Google Glass &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
*Prise en main des Google Glass. &lt;br /&gt;
*Installation d'applications (.apk) grand public. Nous avons utilisé l'outil Android Debug Bridge(adb). Se mettre à la place d'un utilisateur.&lt;br /&gt;
*L'une des deux lunettes qui serait retenue imposera forcément le développement d'une application android (ou d'une technologie trés proche d'android, pour les Google Glass, se basant sur le Glass Development Kit qui est un add-on au SDK classique d'android). Nous avons donc téléchargé les packages nécessaires pour commencer à développer. &lt;br /&gt;
** Nous commençons à nous former sur les technologies android :développement d'applications minimaliste.&lt;br /&gt;
** Installation de nos premières apk minimalistes pour Android.&lt;br /&gt;
** Installation d'une application minimaliste sur la Google Glass.&lt;br /&gt;
&lt;br /&gt;
Voici un comparatif réalisé entre les lunettes ORA et les Google Glass.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Différences Google Glass/ORA &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!   !! Google Glass !! ORA &lt;br /&gt;
|-&lt;br /&gt;
|Connectique&lt;br /&gt;
|Compatible BLE (à partir de la XE 16 KitKat Update), Wifi &lt;br /&gt;
|Compatible BLE, Wifi&lt;br /&gt;
|-&lt;br /&gt;
|Autonomie en utilisation normale&lt;br /&gt;
|de 1h à 2h &lt;br /&gt;
|de 4h à 8h&lt;br /&gt;
|-&lt;br /&gt;
|Son&lt;br /&gt;
|Conductivité Cranienne&lt;br /&gt;
|Prise jack&lt;br /&gt;
|-&lt;br /&gt;
|Interface&lt;br /&gt;
|Ecran occupant une faible superficie dans le champ de vision &lt;br /&gt;
|Ecran 2 positions (moyennes et basses), plus étendu permettant une réalité augmentée &lt;br /&gt;
|-&lt;br /&gt;
|Système d'exploitation&lt;br /&gt;
|Android 4.4&lt;br /&gt;
|Android 4.2.2&lt;br /&gt;
|-&lt;br /&gt;
|Calculs&lt;br /&gt;
|CPU &amp;amp; GPU&lt;br /&gt;
|CPU &amp;amp; GPU&lt;br /&gt;
|-&lt;br /&gt;
|Prix&lt;br /&gt;
|1500$ &lt;br /&gt;
|949$&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 06/10 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Deuxième rendez-vous avec le tuteur entreprise &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Nous avons fait part de notre avancée en matière de prise en main et des problèmes rencontrés en matière de développement.&lt;br /&gt;
Les lunettes ORA sont commandées elles arrivent d'ici la fin octobre.&lt;br /&gt;
&lt;br /&gt;
La première version V1 de l'application pour Google Glass à livrer pour la mi-novembre est fixée.&lt;br /&gt;
&lt;br /&gt;
En partant d'une position connue (en dur dans l'application) dans l'entrepôt, elle indiquera à un utilisateur les emplacements libres les plus proches.&lt;br /&gt;
&lt;br /&gt;
L'état d'occupation des emplacements sera consulté et stocké dans l'application. Il n'y aura donc pas de gestion des conflits. Le sens de circulation dans l'entrepôt sera pris en compte.&lt;br /&gt;
Une communication avec la base de donnée de l'entrepôt n'est pour le moment pas d'actualité, cela nécessiterait des développements en amont.&lt;br /&gt;
La géolocalisation n'est pas au goût du jour non plus. L'adressage des emplacements dans l'entrepôt est intuitif, il est donc facile pour un magasinier de &lt;br /&gt;
se rendre à un emplacement en connaissant l'adresse.&lt;br /&gt;
&lt;br /&gt;
Pour l'IHM, nous nous inspirerons des applications pour Google Glass (les Glasswares) de type GPS.&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Premiers programmes sur Google Glass &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Pour nous familiariser avec la programmation sur ce genre d'appareil nous avons tous deux décidé de suivre en premier le tutoriel Android d'un site spécialisé. Cela afin de mieux comprendre le système Android, avec les concepts d'activités, de view etc.&lt;br /&gt;
Dans un deuxième temps nous avons choisi de suivre plusieurs tutoriels nous expliquant la prise en main basique des lunettes afin de saisir les particularités de leur programmation.&lt;br /&gt;
&lt;br /&gt;
Le plus dur étant finalement de comprendre les liens entre tous les fichiers du projets, les problèmes de drivers et d'upload simple que nous avons rencontrés et l’exécution du programme sur les lunettes. Des choses que nous arrivons maintenant à maitriser mais qui était floues à l'origine.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 13/10 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Programmation et gestion des interactions &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Durant cette semaine nous avons commencé a vraiment toucher aux fonctionnalités des Glass. Pour rester en main libre, nous avons fait des recherches et commencé à programmer de la reconnaissance vocale. Nous avons ainsi crée un système de navigation basique par commande vocale dans différents menus. Pour un accès rapide à l'application et toujours dans la même optique nous avons réussi à inclure le lancement de notre logiciel à partir du &amp;quot;Ok Glass&amp;quot; menu qui est le menu de lancement d'application par commande vocale des Google Glass. Voici un aperçu du résultat:&lt;br /&gt;
[[Fichier:V0_menu.png|1000px|center]]&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Analyse et évaluation du rendu &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Le début de la prise en main des fonctionnalités des Google Glass n'a pas été facile étant donné que la plupart des fonctionnalités sont propres à ce genre d'appareil. De plus elles nécessitent des techniques spéciales de programmation qui ne sont pas toujours très utilisées donc il est parfois difficile de trouver des exemples sur internet.&lt;br /&gt;
Néanmoins après l'implémentation de ces fonctionnalités nous avons pu rencontrer quelques difficultés de reconnaissance. En effet, les Google Glass possèdent un dictionnaire de mots/phrases pour la reconnaissance vocale mais elles nous permettent aussi d'écrire n'importe quelle phrase dans le mode développeur. Les phrases du dictionnaires ne posent aucun problème mais les phrases que nous écrivons sont parfois dures à reconnaitre. La reconnaissance de lettre seule ou de certains numéros est par exemple quasi impossible ou très aléatoire.&lt;br /&gt;
Le système de vu est quant à lui plutôt facile à prendre en main et intuitif dans l'utilisation.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 20/10 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Premiere structure de donnée &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Nous avons opté pour une structure de donnée récursive. Une Cellule, contenant des Allées, qui contiennent des Baies, contenant des Rangées, contenant des Emplacements.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Structure_export_resized.png|750px|center]]&lt;br /&gt;
Nous avons conçu cette structure de donnée pour qu'elle génère, dans un premier temps &amp;quot;en dur&amp;quot;, une cellule contenant des emplacements automatiquement adressés à la manière de ceux présent dans l'entrepôt. Ces adresses sont de la forme &amp;quot;D61A514&amp;quot; traduisez &amp;quot; Cellule 6 Allée 1A Baie 5 Rang 1 Niveau 4&amp;quot;.&lt;br /&gt;
Cette structure prend on compte le sens de circulation dans l'entrepôt.&lt;br /&gt;
Lors de futures interactions avec une base de donnée, cette structure serait sujette à évolution par une modification des méthodes de génération/modification du statut des adresses en fonction de cette base de donnée. Mais celle-ci constitue essentiellement une base pour appréhender plus pratiquement les problématiques de recherches de l'emplacement le plus proche.&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Prise en main de l'interface &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Nous avons déjà abordé les layouts java en TP donc il a été assez facile de commencer à faire des interfaces graphiques simples. Nous avons construit une interface graphique simple pour de faire une démonstration du programme aux tuteurs entreprise afin qu'ils comprennent bien le fonctionnement de notre algorithme.&lt;br /&gt;
L'interface graphique finale du programme sera très sobre afin de ne pas donner trop gêner le magasinier dans sa tâche.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 27/10 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Chemin optimal : Parcours intelligent Vs Sélection intelligente &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Un premier algorithme de recherche de l'emplacement le plus proche a été développé, celui-ci ne prend en compte qu'un seul scénario. &lt;br /&gt;
Celui de la position de départ (quai de déchargement où reviendra constamment le magasinier aprés chaque livraison) correspondante à la première allée de l'entrepôt, et en prenant en compte le sens de circulation. &lt;br /&gt;
A partir de ce moment, nous avons dégager deux grandes manières d'appréhender le problème.&lt;br /&gt;
&lt;br /&gt;
* Un parcours intelligent de la structure de donnée. C'est à dire parcourir les emplacements les plus proches, et choisir le premier emplacement libre. Une solution complexe à réaliser sur le plan algorithmique. En tenant compte du sens de circulation, il apparait que l'emplacement libre &amp;quot;leplusproche&amp;quot; (à vol d'oiseau) trouvé le plus tôt, ne correspondrait pas forcément à l'emplacement le plus proche compte tenu du chemin emprunté par un magasinier. Et c'est plutôt l'intérêt de cette algorithme.(Sauf dans l'unique cas où l'emplacement libre se trouve directement dans l'allée faisant face à la position de départ du magasinier, et le sens de circulation lui permet directement de se rendre à l'emplacement sans détour).&lt;br /&gt;
&lt;br /&gt;
* Une sélection intelligente parmi les emplacements libres. Leurs adresses renseignent à quelles allées, les emplacements libres appartiennent, donc renseignent sur le sens de circulation. A partir de la position de départ du magasinier et de l'ensemble des emplacements libres, on peut calculer la distance nécessaire à celui-ci pour les atteindre. Pour ainsi choisir l'adresse pour laquelle la distance est minimale.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 3/11 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Chemin optimal : sélection intelligente des adresses &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Nous avons écrit une premiere méthode de détermination. &lt;br /&gt;
On choisit l'emplacement, parmi tous ceux qui sont libres, pour lequel la distance de parcours est minimale entre le départ et celui-ci. &lt;br /&gt;
Ici l'unité de distance est la baie. La simplicité de l'algorithme réside dans le fait que le magasinier ne transporte qu'une seule caisse à la fois et repars toujours au même point de départ.&lt;br /&gt;
&lt;br /&gt;
Ci dessous un plan de l'entrepôt.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:schema_entrepot.png|750px|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Si on se place à l'entrée de l'Allée A :&lt;br /&gt;
&lt;br /&gt;
**le déplacement jusqu'à A4 (sens de circulation direct) est de : &lt;br /&gt;
&lt;br /&gt;
                        Y baies - (indice de la baie/2 +indice de la baie % 2) &lt;br /&gt;
&lt;br /&gt;
**le déplacement jusqu'à B1 (sens de circulation indirect) est de : &lt;br /&gt;
&lt;br /&gt;
                        Y baies + différence entre l'allée A et B donc X baies + indice de la baie/2 +indice de la baie % 2&lt;br /&gt;
**le déplacement jusqu'à C1 (sens de circulation direct) est de : &lt;br /&gt;
                      &lt;br /&gt;
                        Y baies - (indice de la baie/2 +indice de la baie % 2)+différence entre l'allée A et C donc 2*X baies.&lt;br /&gt;
&lt;br /&gt;
*Si on se place à l'entrée de l'Allée B :&lt;br /&gt;
**le déplacement jusqu'à B1 (sens de circulation indirect avec contournement) est de : &lt;br /&gt;
                        &lt;br /&gt;
                        2*X baies + Y baies + 2*X baies + (indice de la baie/2 +indice de la baie % 2)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On peut généraliser l'ensemble de ces situations de déplacement avec l'algorithme suivant :&lt;br /&gt;
&lt;br /&gt;
Pseudo code&lt;br /&gt;
&lt;br /&gt;
  Leplusproche( Allee depart )&lt;br /&gt;
    distance_la_plus_petite = valeurMAX&lt;br /&gt;
      le_plus_proche=&amp;quot;&amp;quot;&lt;br /&gt;
         Pour chaque Allee de Cellule&lt;br /&gt;
           sens=Allee.sens&lt;br /&gt;
           Pour chaque Baie de Allee&lt;br /&gt;
             Pour chaque Rang de Allee&lt;br /&gt;
 	       Pour chaque Emplacement de Rang&lt;br /&gt;
                Si Emplacement estlibre &lt;br /&gt;
                &lt;br /&gt;
                indice_baie = selection_indice_baie(Emplacement.adresse)&lt;br /&gt;
   		 allee_cible = selection_indice_allee(Emplacement.adresse)  &lt;br /&gt;
   		 difference_allee = valeur_absolue(depart -cible) &lt;br /&gt;
                    Si difference_allee==0 et sens.estindirect&lt;br /&gt;
                      //sens indirect +contournement&lt;br /&gt;
                      distance_actuelle=(indice_baie/2)+indice_baie%2+(2*(difference_allee))+4*X+Y			&lt;br /&gt;
                    Sinon	&lt;br /&gt;
                        Si sens estdirect&lt;br /&gt;
                          //sens direct &lt;br /&gt;
                          distance_actuelle=(Y-((indice_baie/2)+indice_baie%2))+2*difference_allee&lt;br /&gt;
                        Sinon&lt;br /&gt;
                          //sens indirect mais pas de contournement&lt;br /&gt;
                          distance_actuelle=((indice_baie/2)+indice_baie%2)+2*difference_allee+Y&lt;br /&gt;
                        Finsi	&lt;br /&gt;
                    Finsi	&lt;br /&gt;
                    Si distance_actuelle &amp;lt; distance_la_plus_petite&lt;br /&gt;
                      le_plus_proche=Emplacement.adresse&lt;br /&gt;
                      distance_la_plus_petite=distance_actuelle&lt;br /&gt;
                    Finsi&lt;br /&gt;
                Finsi  &lt;br /&gt;
            Finpour&lt;br /&gt;
          Finpour&lt;br /&gt;
        Finpour&lt;br /&gt;
      Finpour&lt;br /&gt;
    retourne le_plus_proche&lt;br /&gt;
  Finleplusproche&lt;br /&gt;
&lt;br /&gt;
Cet algorithme nous donne satisfaction (dans le cadre de la V1)&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 10/11 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Programmation et gestion des interactions &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Aprés quelques difficultés vis à vis de la gestion des menus vocaux sur les lunettes qui ne fonctionnent pas de la même manière que les menus classiques sous android, nous avons étoffé les interactions possible avec l'application des google glass. (Nous souhaitions inflater un deuxième menu pour interagir de manière plus contextuelle, il fallait le faire dans la méthode onCreatePanelMenu dont l'appel serait forcé avec getWindow().invalidatePanelMenu(WindowUtils.FEATURE_VOICE_COMMANDS) plutôt que dans onPrepareOptionsMenu forcée par invalidateOptionMenu()...) &lt;br /&gt;
&lt;br /&gt;
schéma d'utilisation...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Proposition projet affichage télévision &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Tele_concept.png|200px|thumb|right]]&lt;br /&gt;
&lt;br /&gt;
Notre tuteur nous a contacté pour nous proposer d'étudier un second projet en parallèle au projet initial. Celui consistant à gérer l'affichage d'information personnalisé d'un magasinier passant à proximité d'un écran de télévision. Nous devons effectuer un Proof Of Concept (POC) et réfléchir à ce sujet.&lt;br /&gt;
L'utilisation du BLE est donc de nouveau d'actualité, car je rappel que sont utilité était discutable dans une réalité métier du projet initial. La question étant plus de savoir comment gérer le système du coté du téléviseur.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Le concept de base étant de :&lt;br /&gt;
* Fournir une beacon aux magasiniers de l'entrepôt.&lt;br /&gt;
* Installer une télévision sur un centre de vie dans l'entrepôt avec une beacon&lt;br /&gt;
* Pousser du contenu personnalisé au magasinier qui se présente devant la tv dans son centre de vie&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 17/11 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Brainstorming à Polytech &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Dans la cadre du POC sur l'affichage personnalisé sur une télévision, nous avons profité d'un exercice de management pour faire participer la classe à notre projet. Grâce à cette intervention nous avons pu confirmer nos idées sur les technologies à utiliser. Mais nous avons surtout eu une multitude de propositions sur les données à afficher sur l'écran.&lt;br /&gt;
&lt;br /&gt;
Pour plus détails, le compte rendu est disponible à ce lien:&lt;br /&gt;
&lt;br /&gt;
'''Compte Rendu Brainstorming 17/11/2014 :''' [[Fichier:Compte_Rendu_POC_17_11.pdf]]&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Entretien avec notre tuteur entreprise &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Durant cet entretien, nous avons livré la première version de l'application et nous avons discuté de la suite du projet.&lt;br /&gt;
Ci joint le Compte Rendu.&lt;br /&gt;
&lt;br /&gt;
'''Compte Rendu  19/11/2014 :''' [[Fichier:Compte_Rendu_19_11.pdf]]&lt;br /&gt;
&lt;br /&gt;
De cette réunion, les points suivants en sont sortis:&lt;br /&gt;
&lt;br /&gt;
*Une reconnaissance vocale en langue française sur les lunettes serait plus intéressante pour les employés (une piste serait d’utiliser l’outil pocketsphinx-  android).&lt;br /&gt;
*Par rapport à l'IHM, il faudrait mettre l’affichage au premier plan sur les Google Glass pour une démo auprés des parties prenantes du projet.&lt;br /&gt;
*Choisir une architecture pour l’affichage d’information personnalisées.&lt;br /&gt;
**La télévision connectée à une raspberry qui communiquerait via un dongle BLE avec le beacon d’un magasinier, ce qui permettrait l’identification de celui-ci prés de la Télévision, et déclencherait un processus d’échange d’information. (Communication via le protocole Bluetooh, wifi entre les lunettes et la Raspberry  ou communication avec la Raspberry avec la Base de Donnée sur le réseau de l’entreprise)&lt;br /&gt;
**Une télévision connectée en continu à un site internet via un dongle HDMI.&lt;br /&gt;
**Une tablette android géante supportant le BLE, ou utilisant un dongle BLE.&lt;br /&gt;
* Réaliser le portage de l’application sur le prototype des lunettes ORA.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 24/11 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Reconnaissance vocale en Français &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Pocket Sphinx Android est une librairie permettant de faire de la reconnaissance vocale d'un langage donné sur un système android en offline.&lt;br /&gt;
Pour supporter une langue, elle nécessite un modèle acoustique (ensemble d'informations pour le traitement sonore), un dictionnaire associant les mots et leur phonèmes, ainsi qu'une grammaire, c'est un fichier définissant comment seraient articulé les mots à reconnaître et limitant les possibilités de langage).&lt;br /&gt;
La grammaire étant un automate. Voici un exemple de la grammaire menu.gram pour la reconnaissance de la porte de déchargement.&lt;br /&gt;
[[Fichier:Arborescence_pocket_sphinx.png|200px|thumb|right|PocketSphinx dans un projet Android]]&lt;br /&gt;
&lt;br /&gt;
  #JSGF V1.0;&lt;br /&gt;
  grammar menu;&lt;br /&gt;
  &amp;lt;porte&amp;gt; = porte a |&lt;br /&gt;
            porte b |&lt;br /&gt;
            porte c |&lt;br /&gt;
            porte d |&lt;br /&gt;
            porte e |&lt;br /&gt;
            porte f |&lt;br /&gt;
            porte g |&lt;br /&gt;
            porte h |&lt;br /&gt;
            porte i |&lt;br /&gt;
            porte j ;&lt;br /&gt;
  public &amp;lt;porte&amp;gt; = &amp;lt;porte&amp;gt;+;&lt;br /&gt;
&lt;br /&gt;
Un extrait du dictionnaire french_letter.dic associé avec les phonemes&lt;br /&gt;
&lt;br /&gt;
  a aa &amp;lt;-- juste la lettre a et son phoneme &lt;br /&gt;
  autre au tt rr&lt;br /&gt;
  autre(2) au tt rr ee &lt;br /&gt;
  b bb &lt;br /&gt;
  c ss &lt;br /&gt;
  d dd ei d(2) dd ait &lt;br /&gt;
  e eu e(2) eu zz &lt;br /&gt;
  f ai ff &lt;br /&gt;
  g jj ei g(2) gg ai &lt;br /&gt;
  h aa ch  &lt;br /&gt;
  i ii &lt;br /&gt;
  j jj yy j(2) jj ii&lt;br /&gt;
  porte pp oo rr tt&lt;br /&gt;
  porte(2) pp oo rr tt ee&lt;br /&gt;
  portes(2) pp oo rr tt ee&lt;br /&gt;
  portes(3) pp oo rr tt ee zz&lt;br /&gt;
  portes(4) pp oo rr tt zz&lt;br /&gt;
&lt;br /&gt;
Le modèle acoustique que nous avons téléchargé étant inclu lium_french_f0&lt;br /&gt;
&lt;br /&gt;
Nous avons testé la reconnaissance vocale sur un téléphone android, les mots sont, dans la majorité des cas, bien reconnus.&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Comparaison architectures projet TV &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 01/12 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; T &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Conférence GlassCamp à l'Imaginarium &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
GlassCamp est une association qui essaye de répandre l'utilisation de toute les Smart Glass en général. Elle propose de multiple conférences dans lesquels ils essayent de montrer au public l’intérêt de développer sur ces appareils. Dans le cadre de notre projet, notre tuteur nous a proposé de participer à cette présentation afin de mieux s’approprier le sujet. La conférence à eu lieux le 4 décembre à l'Imaginarium: une grande partie était plus tournée vers la présentation mais nous avons apprît plusieurs choses inintéressantes qui sont décrient dans le compte rendu.&lt;br /&gt;
&lt;br /&gt;
'''Compte Rendu Conférence 04/12/2014 :''' [[Fichier:Compte_Rendu_Conf_GlassCamp.pdf]]&lt;/div&gt;</summary>
		<author><name>Jgondry</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=P22_Google_Glass_en_logistique&amp;diff=14961</id>
		<title>P22 Google Glass en logistique</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=P22_Google_Glass_en_logistique&amp;diff=14961"/>
				<updated>2014-12-10T10:43:04Z</updated>
		
		<summary type="html">&lt;p&gt;Jgondry : /*  Reconnaissance vocale en Français  */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Introduction =&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Description du sujet &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
Notre projet vise à l’optimisation du stockage et de l’adressage des palettes dans un entrepôt. En effet, lors du déchargement d’un camion, chercher un emplacement libre pour les palettes dans un entrepôt occupant une grande superficie fait perdre du temps et donc de la productivité dans le stockage. Sachant qu’un cariste perd un temps non négligeable à la recherche d’emplacement disponible, optimiser ce temps de recherche permettrait de gagner du temps sur cette opération.&lt;br /&gt;
Développer un prototype permettrait de rendre compte des moyens existants qui pourrait être mis en place dans une solution métier.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Analyse du sujet &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Google_glass.png|200px|thumb|right|Paire de Google Glass]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Optinvent_ora.png|200px|thumb|right|Paire de ORA d'Optivent]]&lt;br /&gt;
&lt;br /&gt;
Notre projet consiste à fluidifier le déchargement en indiquant au cariste l’emplacement libre le plus proche. Pour ne pas gêner le travail des employés, un dispositif main-libre comme une Google Glass semble adapté. Ce projet soulève plusieurs problématiques : développer une interface homme-machine apportant une information pertinente pour l’utilisateur sans pour autant être perturbante. &lt;br /&gt;
&lt;br /&gt;
L’idée serait de réaliser dans les grandes lignes un système similaire à ce scénario d’utilisation :&lt;br /&gt;
http://n.mynews.ly/!lB.Bs4fw&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Moyen d’affichage de l’Informations pertinentes'''&lt;br /&gt;
&lt;br /&gt;
Les Google Glass ne sont pas les seules smart glasses sur le marché. Il nous faudra choisir les appareils les plus adaptés. L’information pertinente pourrait être une direction à suivre dans l’entrepôt ou simplement un numéro d’emplacement (adressage intuitif de l’entrepôt). &lt;br /&gt;
&lt;br /&gt;
'''Géolocalisation'''&lt;br /&gt;
&lt;br /&gt;
Dans le cas d’une direction à suivre se pose le problème de la géolocalisation indoor dont l’utilité et la faisabilité seront discutés au fil des réunions avec l’entreprise. &lt;br /&gt;
&lt;br /&gt;
'''Adressage / flashage'''&lt;br /&gt;
&lt;br /&gt;
En ce qui concerne l’adressage des palettes en entrepôt, la solution existante repose sur un flashage des codes barres associés à l’emplacement venant d’être occupé. Une étude de faisabilité/utilité sera aussi faite sur une solution de remplacement grâce aux possibilités qu’offrent les smart glasses.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Cahier des charges &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
En partant de l'analyse du sujet et des discussion avec notre tuteur, nous avons définie un cahier des charges plus précis des tâches à accomplir:&lt;br /&gt;
&lt;br /&gt;
* '''Développer un système embarqué sur une paire de lunette Smart Glass'''&lt;br /&gt;
** Comparer les différentes offres en matière de Smart Glass notamment Google Glass &amp;amp; ORA de Optinvent&lt;br /&gt;
** Concevoir une interface homme-machine non perturbante pour l'utilisateur.&lt;br /&gt;
* '''Etudier la nécessité d'utiliser une géolocalisation en entrepôt et l'implémenter si besoin'''&lt;br /&gt;
** Via RSSI (Wifi, Bluetooh Low Energy ...)&lt;br /&gt;
** Via traitement d'images (reconnaissance de la signalétique en entrepôt)&lt;br /&gt;
* '''Etudier les possibilités d'optimisation du système d'adressage des palettes'''&lt;br /&gt;
** Implémenter la reconnaissance de code barre&lt;br /&gt;
** La tester en réalité métier (utilité ajoutée, habitude des magasiniers, vitesse de traitement...)&lt;br /&gt;
&lt;br /&gt;
Le cahier des charges est encore en cours de construction&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Matériel utilisé &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; SmartGlass &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Lors de la réunion nous avons discuté des technologies à utiliser dans le projet, et plus particulièrement des différentes SmartGlass. En effet, il existe une multitude de sociétés qui développe ce genre de lunettes. Nous commencerons à utiliser les Google Glass étant donné que notre tuteur en a déjà commandé puis nous développerons sur les lunettes ORA de Optivent qui seront livrées fin octobre. Nous devrons donc faire un comparatif entre ces deux SmartGlass puis étudier les autres appareils disponibles sur le marché.&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Localisation &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
L'utilisation de la géolocalisation dans le projet est à débattre. Mais des tests seront probablement mis en place. L'entreprise possède quelque iBeacons BLE Estimote dans ses bureaux d'innovations que nous pourrons emprunter.&lt;br /&gt;
Dans le cas où leur gain d'informations serait utile il nous faudra comparer les modèles disponibles. Choisir un nombre de module et des emplacements stratégiques dans l'entrepôt afin d'avoir une localisation assez précise pour l'application.&lt;br /&gt;
&lt;br /&gt;
L'utilisation d'autres technologies de géolocalisation a été discuté comme le Wifi ou le XBee mais le BLE semblait le plus adapté dans le cadre de notre projet.&lt;br /&gt;
&lt;br /&gt;
= Déroulement du projet =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 22/09 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Réunion avec le tuteur entreprise dans l’entrepôt &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Nous avons observé en situation le problème et discuté des besoins, des moyens déjà utilisables. Il nous faudra prendre en compte plusieurs paramètres dans notre réflexion tels que le système de stockage et d'adressages des palettes, sens de circulation des caristes, superficie des zones à desservir, durée de livraison.&lt;br /&gt;
Nous avons suggéré des étapes de validation intermédiaire du système par les futurs utilisateurs et pour cela nous rencontrerons le chef d'équipe des magasiniers lorsque qu'une version sera assez développée.&lt;br /&gt;
&lt;br /&gt;
Nous avons défini avec le tuteur les premières deadlines du projet, voici la timeline récapitulative:&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Timeline_1.jpg||center|1000px]]&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Compte Rendu &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Nous avons rédigé un compte rendu de la première réunion détaillant les spécifications des versions des livrables, des schémas et les sujets abordés lors de la rencontre :&lt;br /&gt;
&lt;br /&gt;
'''Compte Rendu réunion du 25/09/2014 :''' [[Fichier:Compte_Rendu_25_09.pdf]]&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 29/09 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Découverte des Google Glass &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
*Prise en main des Google Glass. &lt;br /&gt;
*Installation d'applications (.apk) grand public. Nous avons utilisé l'outil Android Debug Bridge(adb). Se mettre à la place d'un utilisateur.&lt;br /&gt;
*L'une des deux lunettes qui serait retenue imposera forcément le développement d'une application android (ou d'une technologie trés proche d'android, pour les Google Glass, se basant sur le Glass Development Kit qui est un add-on au SDK classique d'android). Nous avons donc téléchargé les packages nécessaires pour commencer à développer. &lt;br /&gt;
** Nous commençons à nous former sur les technologies android :développement d'applications minimaliste.&lt;br /&gt;
** Installation de nos premières apk minimalistes pour Android.&lt;br /&gt;
** Installation d'une application minimaliste sur la Google Glass.&lt;br /&gt;
&lt;br /&gt;
Voici un comparatif réalisé entre les lunettes ORA et les Google Glass.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Différences Google Glass/ORA &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!   !! Google Glass !! ORA &lt;br /&gt;
|-&lt;br /&gt;
|Connectique&lt;br /&gt;
|Compatible BLE (à partir de la XE 16 KitKat Update), Wifi &lt;br /&gt;
|Compatible BLE, Wifi&lt;br /&gt;
|-&lt;br /&gt;
|Autonomie en utilisation normale&lt;br /&gt;
|de 1h à 2h &lt;br /&gt;
|de 4h à 8h&lt;br /&gt;
|-&lt;br /&gt;
|Son&lt;br /&gt;
|Conductivité Cranienne&lt;br /&gt;
|Prise jack&lt;br /&gt;
|-&lt;br /&gt;
|Interface&lt;br /&gt;
|Ecran occupant une faible superficie dans le champ de vision &lt;br /&gt;
|Ecran 2 positions (moyennes et basses), plus étendu permettant une réalité augmentée &lt;br /&gt;
|-&lt;br /&gt;
|Système d'exploitation&lt;br /&gt;
|Android 4.4&lt;br /&gt;
|Android 4.2.2&lt;br /&gt;
|-&lt;br /&gt;
|Calculs&lt;br /&gt;
|CPU &amp;amp; GPU&lt;br /&gt;
|CPU &amp;amp; GPU&lt;br /&gt;
|-&lt;br /&gt;
|Prix&lt;br /&gt;
|1500$ &lt;br /&gt;
|949$&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 06/10 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Deuxième rendez-vous avec le tuteur entreprise &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Nous avons fait part de notre avancée en matière de prise en main et des problèmes rencontrés en matière de développement.&lt;br /&gt;
Les lunettes ORA sont commandées elles arrivent d'ici la fin octobre.&lt;br /&gt;
&lt;br /&gt;
La première version V1 de l'application pour Google Glass à livrer pour la mi-novembre est fixée.&lt;br /&gt;
&lt;br /&gt;
En partant d'une position connue (en dur dans l'application) dans l'entrepôt, elle indiquera à un utilisateur les emplacements libres les plus proches.&lt;br /&gt;
&lt;br /&gt;
L'état d'occupation des emplacements sera consulté et stocké dans l'application. Il n'y aura donc pas de gestion des conflits. Le sens de circulation dans l'entrepôt sera pris en compte.&lt;br /&gt;
Une communication avec la base de donnée de l'entrepôt n'est pour le moment pas d'actualité, cela nécessiterait des développements en amont.&lt;br /&gt;
La géolocalisation n'est pas au goût du jour non plus. L'adressage des emplacements dans l'entrepôt est intuitif, il est donc facile pour un magasinier de &lt;br /&gt;
se rendre à un emplacement en connaissant l'adresse.&lt;br /&gt;
&lt;br /&gt;
Pour l'IHM, nous nous inspirerons des applications pour Google Glass (les Glasswares) de type GPS.&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Premiers programmes sur Google Glass &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Pour nous familiariser avec la programmation sur ce genre d'appareil nous avons tous deux décidé de suivre en premier le tutoriel Android d'un site spécialisé. Cela afin de mieux comprendre le système Android, avec les concepts d'activités, de view etc.&lt;br /&gt;
Dans un deuxième temps nous avons choisi de suivre plusieurs tutoriels nous expliquant la prise en main basique des lunettes afin de saisir les particularités de leur programmation.&lt;br /&gt;
&lt;br /&gt;
Le plus dur étant finalement de comprendre les liens entre tous les fichiers du projets, les problèmes de drivers et d'upload simple que nous avons rencontrés et l’exécution du programme sur les lunettes. Des choses que nous arrivons maintenant à maitriser mais qui était floues à l'origine.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 13/10 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Programmation et gestion des interactions &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Durant cette semaine nous avons commencé a vraiment toucher aux fonctionnalités des Glass. Pour rester en main libre, nous avons fait des recherches et commencé à programmer de la reconnaissance vocale. Nous avons ainsi crée un système de navigation basique par commande vocale dans différents menus. Pour un accès rapide à l'application et toujours dans la même optique nous avons réussi à inclure le lancement de notre logiciel à partir du &amp;quot;Ok Glass&amp;quot; menu qui est le menu de lancement d'application par commande vocale des Google Glass. Voici un aperçu du résultat:&lt;br /&gt;
[[Fichier:V0_menu.png|1000px|center]]&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Analyse et évaluation du rendu &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Le début de la prise en main des fonctionnalités des Google Glass n'a pas été facile étant donné que la plupart des fonctionnalités sont propres à ce genre d'appareil. De plus elles nécessitent des techniques spéciales de programmation qui ne sont pas toujours très utilisées donc il est parfois difficile de trouver des exemples sur internet.&lt;br /&gt;
Néanmoins après l'implémentation de ces fonctionnalités nous avons pu rencontrer quelques difficultés de reconnaissance. En effet, les Google Glass possèdent un dictionnaire de mots/phrases pour la reconnaissance vocale mais elles nous permettent aussi d'écrire n'importe quelle phrase dans le mode développeur. Les phrases du dictionnaires ne posent aucun problème mais les phrases que nous écrivons sont parfois dures à reconnaitre. La reconnaissance de lettre seule ou de certains numéros est par exemple quasi impossible ou très aléatoire.&lt;br /&gt;
Le système de vu est quant à lui plutôt facile à prendre en main et intuitif dans l'utilisation.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 20/10 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Premiere structure de donnée &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Nous avons opté pour une structure de donnée récursive. Une Cellule, contenant des Allées, qui contiennent des Baies, contenant des Rangées, contenant des Emplacements.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Structure_export_resized.png|750px|center]]&lt;br /&gt;
Nous avons conçu cette structure de donnée pour qu'elle génère, dans un premier temps &amp;quot;en dur&amp;quot;, une cellule contenant des emplacements automatiquement adressés à la manière de ceux présent dans l'entrepôt. Ces adresses sont de la forme &amp;quot;D61A514&amp;quot; traduisez &amp;quot; Cellule 6 Allée 1A Baie 5 Rang 1 Niveau 4&amp;quot;.&lt;br /&gt;
Cette structure prend on compte le sens de circulation dans l'entrepôt.&lt;br /&gt;
Lors de futures interactions avec une base de donnée, cette structure serait sujette à évolution par une modification des méthodes de génération/modification du statut des adresses en fonction de cette base de donnée. Mais celle-ci constitue essentiellement une base pour appréhender plus pratiquement les problématiques de recherches de l'emplacement le plus proche.&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Prise en main de l'interface &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Nous avons déjà abordé les layouts java en TP donc il a été assez facile de commencer à faire des interfaces graphiques simples. Nous avons construit une interface graphique simple pour de faire une démonstration du programme aux tuteurs entreprise afin qu'ils comprennent bien le fonctionnement de notre algorithme.&lt;br /&gt;
L'interface graphique finale du programme sera très sobre afin de ne pas donner trop gêner le magasinier dans sa tâche.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 27/10 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Chemin optimal : Parcours intelligent Vs Sélection intelligente &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Un premier algorithme de recherche de l'emplacement le plus proche a été développé, celui-ci ne prend en compte qu'un seul scénario. &lt;br /&gt;
Celui de la position de départ (quai de déchargement où reviendra constamment le magasinier aprés chaque livraison) correspondante à la première allée de l'entrepôt, et en prenant en compte le sens de circulation. &lt;br /&gt;
A partir de ce moment, nous avons dégager deux grandes manières d'appréhender le problème.&lt;br /&gt;
&lt;br /&gt;
* Un parcours intelligent de la structure de donnée. C'est à dire parcourir les emplacements les plus proches, et choisir le premier emplacement libre. Une solution complexe à réaliser sur le plan algorithmique. En tenant compte du sens de circulation, il apparait que l'emplacement libre &amp;quot;leplusproche&amp;quot; (à vol d'oiseau) trouvé le plus tôt, ne correspondrait pas forcément à l'emplacement le plus proche compte tenu du chemin emprunté par un magasinier. Et c'est plutôt l'intérêt de cette algorithme.(Sauf dans l'unique cas où l'emplacement libre se trouve directement dans l'allée faisant face à la position de départ du magasinier, et le sens de circulation lui permet directement de se rendre à l'emplacement sans détour).&lt;br /&gt;
&lt;br /&gt;
* Une sélection intelligente parmi les emplacements libres. Leurs adresses renseignent à quelles allées, les emplacements libres appartiennent, donc renseignent sur le sens de circulation. A partir de la position de départ du magasinier et de l'ensemble des emplacements libres, on peut calculer la distance nécessaire à celui-ci pour les atteindre. Pour ainsi choisir l'adresse pour laquelle la distance est minimale.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 3/11 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Chemin optimal : sélection intelligente des adresses &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Nous avons écrit une premiere méthode de détermination. &lt;br /&gt;
On choisit l'emplacement, parmi tous ceux qui sont libres, pour lequel la distance de parcours est minimale entre le départ et celui-ci. &lt;br /&gt;
Ici l'unité de distance est la baie. La simplicité de l'algorithme réside dans le fait que le magasinier ne transporte qu'une seule caisse à la fois et repars toujours au même point de départ.&lt;br /&gt;
&lt;br /&gt;
Ci dessous un plan de l'entrepôt.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:schema_entrepot.png|750px|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Si on se place à l'entrée de l'Allée A :&lt;br /&gt;
&lt;br /&gt;
**le déplacement jusqu'à A4 (sens de circulation direct) est de : &lt;br /&gt;
&lt;br /&gt;
                        Y baies - (indice de la baie/2 +indice de la baie % 2) &lt;br /&gt;
&lt;br /&gt;
**le déplacement jusqu'à B1 (sens de circulation indirect) est de : &lt;br /&gt;
&lt;br /&gt;
                        Y baies + différence entre l'allée A et B donc X baies + indice de la baie/2 +indice de la baie % 2&lt;br /&gt;
**le déplacement jusqu'à C1 (sens de circulation direct) est de : &lt;br /&gt;
                      &lt;br /&gt;
                        Y baies - (indice de la baie/2 +indice de la baie % 2)+différence entre l'allée A et C donc 2*X baies.&lt;br /&gt;
&lt;br /&gt;
*Si on se place à l'entrée de l'Allée B :&lt;br /&gt;
**le déplacement jusqu'à B1 (sens de circulation indirect avec contournement) est de : &lt;br /&gt;
                        &lt;br /&gt;
                        2*X baies + Y baies + 2*X baies + (indice de la baie/2 +indice de la baie % 2)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On peut généraliser l'ensemble de ces situations de déplacement avec l'algorithme suivant :&lt;br /&gt;
&lt;br /&gt;
Pseudo code&lt;br /&gt;
&lt;br /&gt;
  Leplusproche( Allee depart )&lt;br /&gt;
    distance_la_plus_petite = valeurMAX&lt;br /&gt;
      le_plus_proche=&amp;quot;&amp;quot;&lt;br /&gt;
         Pour chaque Allee de Cellule&lt;br /&gt;
           sens=Allee.sens&lt;br /&gt;
           Pour chaque Baie de Allee&lt;br /&gt;
             Pour chaque Rang de Allee&lt;br /&gt;
 	       Pour chaque Emplacement de Rang&lt;br /&gt;
                Si Emplacement estlibre &lt;br /&gt;
                &lt;br /&gt;
                indice_baie = selection_indice_baie(Emplacement.adresse)&lt;br /&gt;
   		 allee_cible = selection_indice_allee(Emplacement.adresse)  &lt;br /&gt;
   		 difference_allee = valeur_absolue(depart -cible) &lt;br /&gt;
                    Si difference_allee==0 et sens.estindirect&lt;br /&gt;
                      //sens indirect +contournement&lt;br /&gt;
                      distance_actuelle=(indice_baie/2)+indice_baie%2+(2*(difference_allee))+4*X+Y			&lt;br /&gt;
                    Sinon	&lt;br /&gt;
                        Si sens estdirect&lt;br /&gt;
                          //sens direct &lt;br /&gt;
                          distance_actuelle=(Y-((indice_baie/2)+indice_baie%2))+2*difference_allee&lt;br /&gt;
                        Sinon&lt;br /&gt;
                          //sens indirect mais pas de contournement&lt;br /&gt;
                          distance_actuelle=((indice_baie/2)+indice_baie%2)+2*difference_allee+Y&lt;br /&gt;
                        Finsi	&lt;br /&gt;
                    Finsi	&lt;br /&gt;
                    Si distance_actuelle &amp;lt; distance_la_plus_petite&lt;br /&gt;
                      le_plus_proche=Emplacement.adresse&lt;br /&gt;
                      distance_la_plus_petite=distance_actuelle&lt;br /&gt;
                    Finsi&lt;br /&gt;
                Finsi  &lt;br /&gt;
            Finpour&lt;br /&gt;
          Finpour&lt;br /&gt;
        Finpour&lt;br /&gt;
      Finpour&lt;br /&gt;
    retourne le_plus_proche&lt;br /&gt;
  Finleplusproche&lt;br /&gt;
&lt;br /&gt;
Cet algorithme nous donne satisfaction (dans le cadre de la V1)&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 10/11 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Programmation et gestion des interactions &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Aprés quelques difficultés vis à vis de la gestion des menus vocaux sur les lunettes qui ne fonctionnent pas de la même manière que les menus classiques sous android, nous avons étoffé les interactions possible avec l'application des google glass. (Nous souhaitions inflater un deuxième menu pour interagir de manière plus contextuelle, il fallait le faire dans la méthode onCreatePanelMenu dont l'appel serait forcé avec getWindow().invalidatePanelMenu(WindowUtils.FEATURE_VOICE_COMMANDS) plutôt que dans onPrepareOptionsMenu forcée par invalidateOptionMenu()...) &lt;br /&gt;
&lt;br /&gt;
schéma d'utilisation...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Proposition projet affichage télévision &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Tele_concept.png|200px|thumb|right]]&lt;br /&gt;
&lt;br /&gt;
Notre tuteur nous a contacté pour nous proposer d'étudier un second projet en parallèle au projet initial. Celui consistant à gérer l'affichage d'information personnalisé d'un magasinier passant à proximité d'un écran de télévision. Nous devons effectuer un Proof Of Concept (POC) et réfléchir à ce sujet.&lt;br /&gt;
L'utilisation du BLE est donc de nouveau d'actualité, car je rappel que sont utilité était discutable dans une réalité métier du projet initial. La question étant plus de savoir comment gérer le système du coté du téléviseur.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Le concept de base étant de :&lt;br /&gt;
* Fournir une beacon aux magasiniers de l'entrepôt.&lt;br /&gt;
* Installer une télévision sur un centre de vie dans l'entrepôt avec une beacon&lt;br /&gt;
* Pousser du contenu personnalisé au magasinier qui se présente devant la tv dans son centre de vie&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 17/11 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Brainstorming à Polytech &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Dans la cadre du POC sur l'affichage personnalisé sur une télévision, nous avons profité d'un exercice de management pour faire participer la classe à notre projet. Grâce à cette intervention nous avons pu confirmer nos idées sur les technologies à utiliser. Mais nous avons surtout eu une multitude de propositions sur les données à afficher sur l'écran.&lt;br /&gt;
&lt;br /&gt;
Pour plus détails, le compte rendu est disponible à ce lien:&lt;br /&gt;
&lt;br /&gt;
'''Compte Rendu Brainstorming 17/11/2014 :''' [[Fichier:Compte_Rendu_POC_17_11.pdf]]&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Entretien avec notre tuteur entreprise &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Durant cet entretien, nous avons livré la première version de l'application et nous avons discuté de la suite du projet.&lt;br /&gt;
Ci joint le Compte Rendu.&lt;br /&gt;
&lt;br /&gt;
'''Compte Rendu  19/11/2014 :''' [[Fichier:Compte_Rendu_19_11.pdf]]&lt;br /&gt;
&lt;br /&gt;
De cette réunion, les points suivants en sont sortis:&lt;br /&gt;
&lt;br /&gt;
*Une reconnaissance vocale en langue française sur les lunettes serait plus intéressante pour les employés (une piste serait d’utiliser l’outil pocketsphinx-  android).&lt;br /&gt;
*Par rapport à l'IHM, il faudrait mettre l’affichage au premier plan sur les Google Glass pour une démo auprés des parties prenantes du projet.&lt;br /&gt;
*Choisir une architecture pour l’affichage d’information personnalisées.&lt;br /&gt;
**La télévision connectée à une raspberry qui communiquerait via un dongle BLE avec le beacon d’un magasinier, ce qui permettrait l’identification de celui-ci prés de la Télévision, et déclencherait un processus d’échange d’information. (Communication via le protocole Bluetooh, wifi entre les lunettes et la Raspberry  ou communication avec la Raspberry avec la Base de Donnée sur le réseau de l’entreprise)&lt;br /&gt;
**Une télévision connectée en continu à un site internet via un dongle HDMI.&lt;br /&gt;
**Une tablette android géante supportant le BLE, ou utilisant un dongle BLE.&lt;br /&gt;
* Réaliser le portage de l’application sur le prototype des lunettes ORA.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 24/11 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Reconnaissance vocale en Français &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Pocket Sphinx Android est une librairie permettant de faire de la reconnaissance vocale d'un langage donné sur un système android en offline.&lt;br /&gt;
Pour supporter une langue, elle nécessite un modèle (ensemble d'informations pour le traitement sonore), un dictionnaire associant les mots et leur phonèmes, ainsi qu'une grammaire, c'est un fichier définissant comment seraient articulé les mots à reconnaître et limitant les possibilités de langage).&lt;br /&gt;
La grammaire étant un automate. Voici un exemple de la grammaire menu.gram pour la reconnaissance de la porte de déchargement.&lt;br /&gt;
[[Fichier:Arborescence_pocket_sphinx.png|200px|thumb|right|PocketSphinx dans un projet Android]]&lt;br /&gt;
&lt;br /&gt;
  #JSGF V1.0;&lt;br /&gt;
  grammar menu;&lt;br /&gt;
  &amp;lt;porte&amp;gt; = porte a |&lt;br /&gt;
            porte b |&lt;br /&gt;
            porte c |&lt;br /&gt;
            porte d |&lt;br /&gt;
            porte e |&lt;br /&gt;
            porte f |&lt;br /&gt;
            porte g |&lt;br /&gt;
            porte h |&lt;br /&gt;
            porte i |&lt;br /&gt;
            porte j ;&lt;br /&gt;
  public &amp;lt;porte&amp;gt; = &amp;lt;porte&amp;gt;+;&lt;br /&gt;
&lt;br /&gt;
Un extrait du dictionnaire french_letter.dic associé avec les phonemes&lt;br /&gt;
&lt;br /&gt;
  a aa &amp;lt;-- juste la lettre a et son phoneme &lt;br /&gt;
  autre au tt rr&lt;br /&gt;
  autre(2) au tt rr ee &lt;br /&gt;
  b bb &lt;br /&gt;
  c ss &lt;br /&gt;
  d dd ei d(2) dd ait &lt;br /&gt;
  e eu e(2) eu zz &lt;br /&gt;
  f ai ff &lt;br /&gt;
  g jj ei g(2) gg ai &lt;br /&gt;
  h aa ch  &lt;br /&gt;
  i ii &lt;br /&gt;
  j jj yy j(2) jj ii&lt;br /&gt;
  porte pp oo rr tt&lt;br /&gt;
  porte(2) pp oo rr tt ee&lt;br /&gt;
  portes(2) pp oo rr tt ee&lt;br /&gt;
  portes(3) pp oo rr tt ee zz&lt;br /&gt;
  portes(4) pp oo rr tt zz&lt;br /&gt;
&lt;br /&gt;
Le modèle acoustique que nous avons téléchargé étant inclu lium_french_f0&lt;br /&gt;
&lt;br /&gt;
Nous avons testé la reconnaissance vocale sur un téléphone android, les mots sont, dans la majorité des cas, bien reconnus.&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Comparaison architectures projet TV &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 01/12 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; T &amp;lt;/font&amp;gt;===&lt;/div&gt;</summary>
		<author><name>Jgondry</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=P22_Google_Glass_en_logistique&amp;diff=14960</id>
		<title>P22 Google Glass en logistique</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=P22_Google_Glass_en_logistique&amp;diff=14960"/>
				<updated>2014-12-10T10:42:45Z</updated>
		
		<summary type="html">&lt;p&gt;Jgondry : /*  Reconnaissance vocale en Français  */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Introduction =&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Description du sujet &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
Notre projet vise à l’optimisation du stockage et de l’adressage des palettes dans un entrepôt. En effet, lors du déchargement d’un camion, chercher un emplacement libre pour les palettes dans un entrepôt occupant une grande superficie fait perdre du temps et donc de la productivité dans le stockage. Sachant qu’un cariste perd un temps non négligeable à la recherche d’emplacement disponible, optimiser ce temps de recherche permettrait de gagner du temps sur cette opération.&lt;br /&gt;
Développer un prototype permettrait de rendre compte des moyens existants qui pourrait être mis en place dans une solution métier.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Analyse du sujet &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Google_glass.png|200px|thumb|right|Paire de Google Glass]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Optinvent_ora.png|200px|thumb|right|Paire de ORA d'Optivent]]&lt;br /&gt;
&lt;br /&gt;
Notre projet consiste à fluidifier le déchargement en indiquant au cariste l’emplacement libre le plus proche. Pour ne pas gêner le travail des employés, un dispositif main-libre comme une Google Glass semble adapté. Ce projet soulève plusieurs problématiques : développer une interface homme-machine apportant une information pertinente pour l’utilisateur sans pour autant être perturbante. &lt;br /&gt;
&lt;br /&gt;
L’idée serait de réaliser dans les grandes lignes un système similaire à ce scénario d’utilisation :&lt;br /&gt;
http://n.mynews.ly/!lB.Bs4fw&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Moyen d’affichage de l’Informations pertinentes'''&lt;br /&gt;
&lt;br /&gt;
Les Google Glass ne sont pas les seules smart glasses sur le marché. Il nous faudra choisir les appareils les plus adaptés. L’information pertinente pourrait être une direction à suivre dans l’entrepôt ou simplement un numéro d’emplacement (adressage intuitif de l’entrepôt). &lt;br /&gt;
&lt;br /&gt;
'''Géolocalisation'''&lt;br /&gt;
&lt;br /&gt;
Dans le cas d’une direction à suivre se pose le problème de la géolocalisation indoor dont l’utilité et la faisabilité seront discutés au fil des réunions avec l’entreprise. &lt;br /&gt;
&lt;br /&gt;
'''Adressage / flashage'''&lt;br /&gt;
&lt;br /&gt;
En ce qui concerne l’adressage des palettes en entrepôt, la solution existante repose sur un flashage des codes barres associés à l’emplacement venant d’être occupé. Une étude de faisabilité/utilité sera aussi faite sur une solution de remplacement grâce aux possibilités qu’offrent les smart glasses.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Cahier des charges &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
En partant de l'analyse du sujet et des discussion avec notre tuteur, nous avons définie un cahier des charges plus précis des tâches à accomplir:&lt;br /&gt;
&lt;br /&gt;
* '''Développer un système embarqué sur une paire de lunette Smart Glass'''&lt;br /&gt;
** Comparer les différentes offres en matière de Smart Glass notamment Google Glass &amp;amp; ORA de Optinvent&lt;br /&gt;
** Concevoir une interface homme-machine non perturbante pour l'utilisateur.&lt;br /&gt;
* '''Etudier la nécessité d'utiliser une géolocalisation en entrepôt et l'implémenter si besoin'''&lt;br /&gt;
** Via RSSI (Wifi, Bluetooh Low Energy ...)&lt;br /&gt;
** Via traitement d'images (reconnaissance de la signalétique en entrepôt)&lt;br /&gt;
* '''Etudier les possibilités d'optimisation du système d'adressage des palettes'''&lt;br /&gt;
** Implémenter la reconnaissance de code barre&lt;br /&gt;
** La tester en réalité métier (utilité ajoutée, habitude des magasiniers, vitesse de traitement...)&lt;br /&gt;
&lt;br /&gt;
Le cahier des charges est encore en cours de construction&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Matériel utilisé &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; SmartGlass &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Lors de la réunion nous avons discuté des technologies à utiliser dans le projet, et plus particulièrement des différentes SmartGlass. En effet, il existe une multitude de sociétés qui développe ce genre de lunettes. Nous commencerons à utiliser les Google Glass étant donné que notre tuteur en a déjà commandé puis nous développerons sur les lunettes ORA de Optivent qui seront livrées fin octobre. Nous devrons donc faire un comparatif entre ces deux SmartGlass puis étudier les autres appareils disponibles sur le marché.&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Localisation &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
L'utilisation de la géolocalisation dans le projet est à débattre. Mais des tests seront probablement mis en place. L'entreprise possède quelque iBeacons BLE Estimote dans ses bureaux d'innovations que nous pourrons emprunter.&lt;br /&gt;
Dans le cas où leur gain d'informations serait utile il nous faudra comparer les modèles disponibles. Choisir un nombre de module et des emplacements stratégiques dans l'entrepôt afin d'avoir une localisation assez précise pour l'application.&lt;br /&gt;
&lt;br /&gt;
L'utilisation d'autres technologies de géolocalisation a été discuté comme le Wifi ou le XBee mais le BLE semblait le plus adapté dans le cadre de notre projet.&lt;br /&gt;
&lt;br /&gt;
= Déroulement du projet =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 22/09 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Réunion avec le tuteur entreprise dans l’entrepôt &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Nous avons observé en situation le problème et discuté des besoins, des moyens déjà utilisables. Il nous faudra prendre en compte plusieurs paramètres dans notre réflexion tels que le système de stockage et d'adressages des palettes, sens de circulation des caristes, superficie des zones à desservir, durée de livraison.&lt;br /&gt;
Nous avons suggéré des étapes de validation intermédiaire du système par les futurs utilisateurs et pour cela nous rencontrerons le chef d'équipe des magasiniers lorsque qu'une version sera assez développée.&lt;br /&gt;
&lt;br /&gt;
Nous avons défini avec le tuteur les premières deadlines du projet, voici la timeline récapitulative:&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Timeline_1.jpg||center|1000px]]&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Compte Rendu &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Nous avons rédigé un compte rendu de la première réunion détaillant les spécifications des versions des livrables, des schémas et les sujets abordés lors de la rencontre :&lt;br /&gt;
&lt;br /&gt;
'''Compte Rendu réunion du 25/09/2014 :''' [[Fichier:Compte_Rendu_25_09.pdf]]&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 29/09 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Découverte des Google Glass &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
*Prise en main des Google Glass. &lt;br /&gt;
*Installation d'applications (.apk) grand public. Nous avons utilisé l'outil Android Debug Bridge(adb). Se mettre à la place d'un utilisateur.&lt;br /&gt;
*L'une des deux lunettes qui serait retenue imposera forcément le développement d'une application android (ou d'une technologie trés proche d'android, pour les Google Glass, se basant sur le Glass Development Kit qui est un add-on au SDK classique d'android). Nous avons donc téléchargé les packages nécessaires pour commencer à développer. &lt;br /&gt;
** Nous commençons à nous former sur les technologies android :développement d'applications minimaliste.&lt;br /&gt;
** Installation de nos premières apk minimalistes pour Android.&lt;br /&gt;
** Installation d'une application minimaliste sur la Google Glass.&lt;br /&gt;
&lt;br /&gt;
Voici un comparatif réalisé entre les lunettes ORA et les Google Glass.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Différences Google Glass/ORA &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!   !! Google Glass !! ORA &lt;br /&gt;
|-&lt;br /&gt;
|Connectique&lt;br /&gt;
|Compatible BLE (à partir de la XE 16 KitKat Update), Wifi &lt;br /&gt;
|Compatible BLE, Wifi&lt;br /&gt;
|-&lt;br /&gt;
|Autonomie en utilisation normale&lt;br /&gt;
|de 1h à 2h &lt;br /&gt;
|de 4h à 8h&lt;br /&gt;
|-&lt;br /&gt;
|Son&lt;br /&gt;
|Conductivité Cranienne&lt;br /&gt;
|Prise jack&lt;br /&gt;
|-&lt;br /&gt;
|Interface&lt;br /&gt;
|Ecran occupant une faible superficie dans le champ de vision &lt;br /&gt;
|Ecran 2 positions (moyennes et basses), plus étendu permettant une réalité augmentée &lt;br /&gt;
|-&lt;br /&gt;
|Système d'exploitation&lt;br /&gt;
|Android 4.4&lt;br /&gt;
|Android 4.2.2&lt;br /&gt;
|-&lt;br /&gt;
|Calculs&lt;br /&gt;
|CPU &amp;amp; GPU&lt;br /&gt;
|CPU &amp;amp; GPU&lt;br /&gt;
|-&lt;br /&gt;
|Prix&lt;br /&gt;
|1500$ &lt;br /&gt;
|949$&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 06/10 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Deuxième rendez-vous avec le tuteur entreprise &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Nous avons fait part de notre avancée en matière de prise en main et des problèmes rencontrés en matière de développement.&lt;br /&gt;
Les lunettes ORA sont commandées elles arrivent d'ici la fin octobre.&lt;br /&gt;
&lt;br /&gt;
La première version V1 de l'application pour Google Glass à livrer pour la mi-novembre est fixée.&lt;br /&gt;
&lt;br /&gt;
En partant d'une position connue (en dur dans l'application) dans l'entrepôt, elle indiquera à un utilisateur les emplacements libres les plus proches.&lt;br /&gt;
&lt;br /&gt;
L'état d'occupation des emplacements sera consulté et stocké dans l'application. Il n'y aura donc pas de gestion des conflits. Le sens de circulation dans l'entrepôt sera pris en compte.&lt;br /&gt;
Une communication avec la base de donnée de l'entrepôt n'est pour le moment pas d'actualité, cela nécessiterait des développements en amont.&lt;br /&gt;
La géolocalisation n'est pas au goût du jour non plus. L'adressage des emplacements dans l'entrepôt est intuitif, il est donc facile pour un magasinier de &lt;br /&gt;
se rendre à un emplacement en connaissant l'adresse.&lt;br /&gt;
&lt;br /&gt;
Pour l'IHM, nous nous inspirerons des applications pour Google Glass (les Glasswares) de type GPS.&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Premiers programmes sur Google Glass &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Pour nous familiariser avec la programmation sur ce genre d'appareil nous avons tous deux décidé de suivre en premier le tutoriel Android d'un site spécialisé. Cela afin de mieux comprendre le système Android, avec les concepts d'activités, de view etc.&lt;br /&gt;
Dans un deuxième temps nous avons choisi de suivre plusieurs tutoriels nous expliquant la prise en main basique des lunettes afin de saisir les particularités de leur programmation.&lt;br /&gt;
&lt;br /&gt;
Le plus dur étant finalement de comprendre les liens entre tous les fichiers du projets, les problèmes de drivers et d'upload simple que nous avons rencontrés et l’exécution du programme sur les lunettes. Des choses que nous arrivons maintenant à maitriser mais qui était floues à l'origine.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 13/10 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Programmation et gestion des interactions &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Durant cette semaine nous avons commencé a vraiment toucher aux fonctionnalités des Glass. Pour rester en main libre, nous avons fait des recherches et commencé à programmer de la reconnaissance vocale. Nous avons ainsi crée un système de navigation basique par commande vocale dans différents menus. Pour un accès rapide à l'application et toujours dans la même optique nous avons réussi à inclure le lancement de notre logiciel à partir du &amp;quot;Ok Glass&amp;quot; menu qui est le menu de lancement d'application par commande vocale des Google Glass. Voici un aperçu du résultat:&lt;br /&gt;
[[Fichier:V0_menu.png|1000px|center]]&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Analyse et évaluation du rendu &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Le début de la prise en main des fonctionnalités des Google Glass n'a pas été facile étant donné que la plupart des fonctionnalités sont propres à ce genre d'appareil. De plus elles nécessitent des techniques spéciales de programmation qui ne sont pas toujours très utilisées donc il est parfois difficile de trouver des exemples sur internet.&lt;br /&gt;
Néanmoins après l'implémentation de ces fonctionnalités nous avons pu rencontrer quelques difficultés de reconnaissance. En effet, les Google Glass possèdent un dictionnaire de mots/phrases pour la reconnaissance vocale mais elles nous permettent aussi d'écrire n'importe quelle phrase dans le mode développeur. Les phrases du dictionnaires ne posent aucun problème mais les phrases que nous écrivons sont parfois dures à reconnaitre. La reconnaissance de lettre seule ou de certains numéros est par exemple quasi impossible ou très aléatoire.&lt;br /&gt;
Le système de vu est quant à lui plutôt facile à prendre en main et intuitif dans l'utilisation.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 20/10 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Premiere structure de donnée &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Nous avons opté pour une structure de donnée récursive. Une Cellule, contenant des Allées, qui contiennent des Baies, contenant des Rangées, contenant des Emplacements.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Structure_export_resized.png|750px|center]]&lt;br /&gt;
Nous avons conçu cette structure de donnée pour qu'elle génère, dans un premier temps &amp;quot;en dur&amp;quot;, une cellule contenant des emplacements automatiquement adressés à la manière de ceux présent dans l'entrepôt. Ces adresses sont de la forme &amp;quot;D61A514&amp;quot; traduisez &amp;quot; Cellule 6 Allée 1A Baie 5 Rang 1 Niveau 4&amp;quot;.&lt;br /&gt;
Cette structure prend on compte le sens de circulation dans l'entrepôt.&lt;br /&gt;
Lors de futures interactions avec une base de donnée, cette structure serait sujette à évolution par une modification des méthodes de génération/modification du statut des adresses en fonction de cette base de donnée. Mais celle-ci constitue essentiellement une base pour appréhender plus pratiquement les problématiques de recherches de l'emplacement le plus proche.&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Prise en main de l'interface &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Nous avons déjà abordé les layouts java en TP donc il a été assez facile de commencer à faire des interfaces graphiques simples. Nous avons construit une interface graphique simple pour de faire une démonstration du programme aux tuteurs entreprise afin qu'ils comprennent bien le fonctionnement de notre algorithme.&lt;br /&gt;
L'interface graphique finale du programme sera très sobre afin de ne pas donner trop gêner le magasinier dans sa tâche.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 27/10 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Chemin optimal : Parcours intelligent Vs Sélection intelligente &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Un premier algorithme de recherche de l'emplacement le plus proche a été développé, celui-ci ne prend en compte qu'un seul scénario. &lt;br /&gt;
Celui de la position de départ (quai de déchargement où reviendra constamment le magasinier aprés chaque livraison) correspondante à la première allée de l'entrepôt, et en prenant en compte le sens de circulation. &lt;br /&gt;
A partir de ce moment, nous avons dégager deux grandes manières d'appréhender le problème.&lt;br /&gt;
&lt;br /&gt;
* Un parcours intelligent de la structure de donnée. C'est à dire parcourir les emplacements les plus proches, et choisir le premier emplacement libre. Une solution complexe à réaliser sur le plan algorithmique. En tenant compte du sens de circulation, il apparait que l'emplacement libre &amp;quot;leplusproche&amp;quot; (à vol d'oiseau) trouvé le plus tôt, ne correspondrait pas forcément à l'emplacement le plus proche compte tenu du chemin emprunté par un magasinier. Et c'est plutôt l'intérêt de cette algorithme.(Sauf dans l'unique cas où l'emplacement libre se trouve directement dans l'allée faisant face à la position de départ du magasinier, et le sens de circulation lui permet directement de se rendre à l'emplacement sans détour).&lt;br /&gt;
&lt;br /&gt;
* Une sélection intelligente parmi les emplacements libres. Leurs adresses renseignent à quelles allées, les emplacements libres appartiennent, donc renseignent sur le sens de circulation. A partir de la position de départ du magasinier et de l'ensemble des emplacements libres, on peut calculer la distance nécessaire à celui-ci pour les atteindre. Pour ainsi choisir l'adresse pour laquelle la distance est minimale.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 3/11 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Chemin optimal : sélection intelligente des adresses &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Nous avons écrit une premiere méthode de détermination. &lt;br /&gt;
On choisit l'emplacement, parmi tous ceux qui sont libres, pour lequel la distance de parcours est minimale entre le départ et celui-ci. &lt;br /&gt;
Ici l'unité de distance est la baie. La simplicité de l'algorithme réside dans le fait que le magasinier ne transporte qu'une seule caisse à la fois et repars toujours au même point de départ.&lt;br /&gt;
&lt;br /&gt;
Ci dessous un plan de l'entrepôt.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:schema_entrepot.png|750px|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Si on se place à l'entrée de l'Allée A :&lt;br /&gt;
&lt;br /&gt;
**le déplacement jusqu'à A4 (sens de circulation direct) est de : &lt;br /&gt;
&lt;br /&gt;
                        Y baies - (indice de la baie/2 +indice de la baie % 2) &lt;br /&gt;
&lt;br /&gt;
**le déplacement jusqu'à B1 (sens de circulation indirect) est de : &lt;br /&gt;
&lt;br /&gt;
                        Y baies + différence entre l'allée A et B donc X baies + indice de la baie/2 +indice de la baie % 2&lt;br /&gt;
**le déplacement jusqu'à C1 (sens de circulation direct) est de : &lt;br /&gt;
                      &lt;br /&gt;
                        Y baies - (indice de la baie/2 +indice de la baie % 2)+différence entre l'allée A et C donc 2*X baies.&lt;br /&gt;
&lt;br /&gt;
*Si on se place à l'entrée de l'Allée B :&lt;br /&gt;
**le déplacement jusqu'à B1 (sens de circulation indirect avec contournement) est de : &lt;br /&gt;
                        &lt;br /&gt;
                        2*X baies + Y baies + 2*X baies + (indice de la baie/2 +indice de la baie % 2)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On peut généraliser l'ensemble de ces situations de déplacement avec l'algorithme suivant :&lt;br /&gt;
&lt;br /&gt;
Pseudo code&lt;br /&gt;
&lt;br /&gt;
  Leplusproche( Allee depart )&lt;br /&gt;
    distance_la_plus_petite = valeurMAX&lt;br /&gt;
      le_plus_proche=&amp;quot;&amp;quot;&lt;br /&gt;
         Pour chaque Allee de Cellule&lt;br /&gt;
           sens=Allee.sens&lt;br /&gt;
           Pour chaque Baie de Allee&lt;br /&gt;
             Pour chaque Rang de Allee&lt;br /&gt;
 	       Pour chaque Emplacement de Rang&lt;br /&gt;
                Si Emplacement estlibre &lt;br /&gt;
                &lt;br /&gt;
                indice_baie = selection_indice_baie(Emplacement.adresse)&lt;br /&gt;
   		 allee_cible = selection_indice_allee(Emplacement.adresse)  &lt;br /&gt;
   		 difference_allee = valeur_absolue(depart -cible) &lt;br /&gt;
                    Si difference_allee==0 et sens.estindirect&lt;br /&gt;
                      //sens indirect +contournement&lt;br /&gt;
                      distance_actuelle=(indice_baie/2)+indice_baie%2+(2*(difference_allee))+4*X+Y			&lt;br /&gt;
                    Sinon	&lt;br /&gt;
                        Si sens estdirect&lt;br /&gt;
                          //sens direct &lt;br /&gt;
                          distance_actuelle=(Y-((indice_baie/2)+indice_baie%2))+2*difference_allee&lt;br /&gt;
                        Sinon&lt;br /&gt;
                          //sens indirect mais pas de contournement&lt;br /&gt;
                          distance_actuelle=((indice_baie/2)+indice_baie%2)+2*difference_allee+Y&lt;br /&gt;
                        Finsi	&lt;br /&gt;
                    Finsi	&lt;br /&gt;
                    Si distance_actuelle &amp;lt; distance_la_plus_petite&lt;br /&gt;
                      le_plus_proche=Emplacement.adresse&lt;br /&gt;
                      distance_la_plus_petite=distance_actuelle&lt;br /&gt;
                    Finsi&lt;br /&gt;
                Finsi  &lt;br /&gt;
            Finpour&lt;br /&gt;
          Finpour&lt;br /&gt;
        Finpour&lt;br /&gt;
      Finpour&lt;br /&gt;
    retourne le_plus_proche&lt;br /&gt;
  Finleplusproche&lt;br /&gt;
&lt;br /&gt;
Cet algorithme nous donne satisfaction (dans le cadre de la V1)&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 10/11 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Programmation et gestion des interactions &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Aprés quelques difficultés vis à vis de la gestion des menus vocaux sur les lunettes qui ne fonctionnent pas de la même manière que les menus classiques sous android, nous avons étoffé les interactions possible avec l'application des google glass. (Nous souhaitions inflater un deuxième menu pour interagir de manière plus contextuelle, il fallait le faire dans la méthode onCreatePanelMenu dont l'appel serait forcé avec getWindow().invalidatePanelMenu(WindowUtils.FEATURE_VOICE_COMMANDS) plutôt que dans onPrepareOptionsMenu forcée par invalidateOptionMenu()...) &lt;br /&gt;
&lt;br /&gt;
schéma d'utilisation...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Proposition projet affichage télévision &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Tele_concept.png|200px|thumb|right]]&lt;br /&gt;
&lt;br /&gt;
Notre tuteur nous a contacté pour nous proposer d'étudier un second projet en parallèle au projet initial. Celui consistant à gérer l'affichage d'information personnalisé d'un magasinier passant à proximité d'un écran de télévision. Nous devons effectuer un Proof Of Concept (POC) et réfléchir à ce sujet.&lt;br /&gt;
L'utilisation du BLE est donc de nouveau d'actualité, car je rappel que sont utilité était discutable dans une réalité métier du projet initial. La question étant plus de savoir comment gérer le système du coté du téléviseur.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Le concept de base étant de :&lt;br /&gt;
* Fournir une beacon aux magasiniers de l'entrepôt.&lt;br /&gt;
* Installer une télévision sur un centre de vie dans l'entrepôt avec une beacon&lt;br /&gt;
* Pousser du contenu personnalisé au magasinier qui se présente devant la tv dans son centre de vie&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 17/11 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Brainstorming à Polytech &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Dans la cadre du POC sur l'affichage personnalisé sur une télévision, nous avons profité d'un exercice de management pour faire participer la classe à notre projet. Grâce à cette intervention nous avons pu confirmer nos idées sur les technologies à utiliser. Mais nous avons surtout eu une multitude de propositions sur les données à afficher sur l'écran.&lt;br /&gt;
&lt;br /&gt;
Pour plus détails, le compte rendu est disponible à ce lien:&lt;br /&gt;
&lt;br /&gt;
'''Compte Rendu Brainstorming 17/11/2014 :''' [[Fichier:Compte_Rendu_POC_17_11.pdf]]&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Entretien avec notre tuteur entreprise &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Durant cet entretien, nous avons livré la première version de l'application et nous avons discuté de la suite du projet.&lt;br /&gt;
Ci joint le Compte Rendu.&lt;br /&gt;
&lt;br /&gt;
'''Compte Rendu  19/11/2014 :''' [[Fichier:Compte_Rendu_19_11.pdf]]&lt;br /&gt;
&lt;br /&gt;
De cette réunion, les points suivants en sont sortis:&lt;br /&gt;
&lt;br /&gt;
*Une reconnaissance vocale en langue française sur les lunettes serait plus intéressante pour les employés (une piste serait d’utiliser l’outil pocketsphinx-  android).&lt;br /&gt;
*Par rapport à l'IHM, il faudrait mettre l’affichage au premier plan sur les Google Glass pour une démo auprés des parties prenantes du projet.&lt;br /&gt;
*Choisir une architecture pour l’affichage d’information personnalisées.&lt;br /&gt;
**La télévision connectée à une raspberry qui communiquerait via un dongle BLE avec le beacon d’un magasinier, ce qui permettrait l’identification de celui-ci prés de la Télévision, et déclencherait un processus d’échange d’information. (Communication via le protocole Bluetooh, wifi entre les lunettes et la Raspberry  ou communication avec la Raspberry avec la Base de Donnée sur le réseau de l’entreprise)&lt;br /&gt;
**Une télévision connectée en continu à un site internet via un dongle HDMI.&lt;br /&gt;
**Une tablette android géante supportant le BLE, ou utilisant un dongle BLE.&lt;br /&gt;
* Réaliser le portage de l’application sur le prototype des lunettes ORA.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 24/11 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Reconnaissance vocale en Français &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Pocket Sphinx Android est une librairie permettant de faire de la reconnaissance vocale d'un langage donné sur un système android en offline.&lt;br /&gt;
Pour supporter une langue, elle nécessite un modèle (ensemble d'informations pour le traitement sonore), un dictionnaire associant les mots et leur phonèmes, ainsi qu'une grammaire, c'est un fichier définissant comment seraient articulé les mots à reconnaître et limitant les possibilités de langage).&lt;br /&gt;
La grammaire étant un automate. Voici un exemple de la grammaire menu.gram pour la reconnaissance de la porte de déchargement.&lt;br /&gt;
[[Fichier:Arborescence_pocket_sphinx.png|200px|thumb|right|PocketSphinx dans un projet Android]]&lt;br /&gt;
&lt;br /&gt;
  #JSGF V1.0;&lt;br /&gt;
  grammar menu;&lt;br /&gt;
  &amp;lt;porte&amp;gt; = porte a |&lt;br /&gt;
            porte b |&lt;br /&gt;
            porte c |&lt;br /&gt;
            porte d |&lt;br /&gt;
            porte e |&lt;br /&gt;
            porte f |&lt;br /&gt;
            porte g |&lt;br /&gt;
            porte h |&lt;br /&gt;
            porte i |&lt;br /&gt;
            porte j ;&lt;br /&gt;
  public &amp;lt;porte&amp;gt; = &amp;lt;porte&amp;gt;+;&lt;br /&gt;
&lt;br /&gt;
Un extrait du dictionnaire french_letter.dic associé avec les phonemes&lt;br /&gt;
&lt;br /&gt;
  a aa &amp;lt;-- juste la lettre a et son phoneme &lt;br /&gt;
  autre au tt rr&lt;br /&gt;
  autre(2) au tt rr ee &lt;br /&gt;
  b bb &lt;br /&gt;
  c ss &lt;br /&gt;
  d dd ei d(2) dd ait &lt;br /&gt;
  e eu e(2) eu zz &lt;br /&gt;
  f ai ff &lt;br /&gt;
  g jj ei g(2) gg ai &lt;br /&gt;
  h aa ch  &lt;br /&gt;
  i ii &lt;br /&gt;
  j jj yy j(2) jj ii&lt;br /&gt;
  porte pp oo rr tt&lt;br /&gt;
  porte(2) pp oo rr tt ee&lt;br /&gt;
  portes(2) pp oo rr tt ee&lt;br /&gt;
  portes(3) pp oo rr tt ee zz&lt;br /&gt;
  portes(4) pp oo rr tt zz&lt;br /&gt;
&lt;br /&gt;
Le modèle acoustique que nous avons téléchargé étant inclu lium_french_f0&lt;br /&gt;
&lt;br /&gt;
Nous avons testé la reconnaissance vocale sur un téléphone android, les mots sont, dans la majorité des cas bien reconnus.&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Comparaison architectures projet TV &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 01/12 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; T &amp;lt;/font&amp;gt;===&lt;/div&gt;</summary>
		<author><name>Jgondry</name></author>	</entry>

	<entry>
		<id>https://wiki-ima.plil.fr/mediawiki//index.php?title=P22_Google_Glass_en_logistique&amp;diff=14959</id>
		<title>P22 Google Glass en logistique</title>
		<link rel="alternate" type="text/html" href="https://wiki-ima.plil.fr/mediawiki//index.php?title=P22_Google_Glass_en_logistique&amp;diff=14959"/>
				<updated>2014-12-10T10:39:58Z</updated>
		
		<summary type="html">&lt;p&gt;Jgondry : /*  Reconnaissance vocale en Français  */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Introduction =&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Description du sujet &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
Notre projet vise à l’optimisation du stockage et de l’adressage des palettes dans un entrepôt. En effet, lors du déchargement d’un camion, chercher un emplacement libre pour les palettes dans un entrepôt occupant une grande superficie fait perdre du temps et donc de la productivité dans le stockage. Sachant qu’un cariste perd un temps non négligeable à la recherche d’emplacement disponible, optimiser ce temps de recherche permettrait de gagner du temps sur cette opération.&lt;br /&gt;
Développer un prototype permettrait de rendre compte des moyens existants qui pourrait être mis en place dans une solution métier.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Analyse du sujet &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Google_glass.png|200px|thumb|right|Paire de Google Glass]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Optinvent_ora.png|200px|thumb|right|Paire de ORA d'Optivent]]&lt;br /&gt;
&lt;br /&gt;
Notre projet consiste à fluidifier le déchargement en indiquant au cariste l’emplacement libre le plus proche. Pour ne pas gêner le travail des employés, un dispositif main-libre comme une Google Glass semble adapté. Ce projet soulève plusieurs problématiques : développer une interface homme-machine apportant une information pertinente pour l’utilisateur sans pour autant être perturbante. &lt;br /&gt;
&lt;br /&gt;
L’idée serait de réaliser dans les grandes lignes un système similaire à ce scénario d’utilisation :&lt;br /&gt;
http://n.mynews.ly/!lB.Bs4fw&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Moyen d’affichage de l’Informations pertinentes'''&lt;br /&gt;
&lt;br /&gt;
Les Google Glass ne sont pas les seules smart glasses sur le marché. Il nous faudra choisir les appareils les plus adaptés. L’information pertinente pourrait être une direction à suivre dans l’entrepôt ou simplement un numéro d’emplacement (adressage intuitif de l’entrepôt). &lt;br /&gt;
&lt;br /&gt;
'''Géolocalisation'''&lt;br /&gt;
&lt;br /&gt;
Dans le cas d’une direction à suivre se pose le problème de la géolocalisation indoor dont l’utilité et la faisabilité seront discutés au fil des réunions avec l’entreprise. &lt;br /&gt;
&lt;br /&gt;
'''Adressage / flashage'''&lt;br /&gt;
&lt;br /&gt;
En ce qui concerne l’adressage des palettes en entrepôt, la solution existante repose sur un flashage des codes barres associés à l’emplacement venant d’être occupé. Une étude de faisabilité/utilité sera aussi faite sur une solution de remplacement grâce aux possibilités qu’offrent les smart glasses.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Cahier des charges &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
En partant de l'analyse du sujet et des discussion avec notre tuteur, nous avons définie un cahier des charges plus précis des tâches à accomplir:&lt;br /&gt;
&lt;br /&gt;
* '''Développer un système embarqué sur une paire de lunette Smart Glass'''&lt;br /&gt;
** Comparer les différentes offres en matière de Smart Glass notamment Google Glass &amp;amp; ORA de Optinvent&lt;br /&gt;
** Concevoir une interface homme-machine non perturbante pour l'utilisateur.&lt;br /&gt;
* '''Etudier la nécessité d'utiliser une géolocalisation en entrepôt et l'implémenter si besoin'''&lt;br /&gt;
** Via RSSI (Wifi, Bluetooh Low Energy ...)&lt;br /&gt;
** Via traitement d'images (reconnaissance de la signalétique en entrepôt)&lt;br /&gt;
* '''Etudier les possibilités d'optimisation du système d'adressage des palettes'''&lt;br /&gt;
** Implémenter la reconnaissance de code barre&lt;br /&gt;
** La tester en réalité métier (utilité ajoutée, habitude des magasiniers, vitesse de traitement...)&lt;br /&gt;
&lt;br /&gt;
Le cahier des charges est encore en cours de construction&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Matériel utilisé &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; SmartGlass &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Lors de la réunion nous avons discuté des technologies à utiliser dans le projet, et plus particulièrement des différentes SmartGlass. En effet, il existe une multitude de sociétés qui développe ce genre de lunettes. Nous commencerons à utiliser les Google Glass étant donné que notre tuteur en a déjà commandé puis nous développerons sur les lunettes ORA de Optivent qui seront livrées fin octobre. Nous devrons donc faire un comparatif entre ces deux SmartGlass puis étudier les autres appareils disponibles sur le marché.&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Localisation &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
L'utilisation de la géolocalisation dans le projet est à débattre. Mais des tests seront probablement mis en place. L'entreprise possède quelque iBeacons BLE Estimote dans ses bureaux d'innovations que nous pourrons emprunter.&lt;br /&gt;
Dans le cas où leur gain d'informations serait utile il nous faudra comparer les modèles disponibles. Choisir un nombre de module et des emplacements stratégiques dans l'entrepôt afin d'avoir une localisation assez précise pour l'application.&lt;br /&gt;
&lt;br /&gt;
L'utilisation d'autres technologies de géolocalisation a été discuté comme le Wifi ou le XBee mais le BLE semblait le plus adapté dans le cadre de notre projet.&lt;br /&gt;
&lt;br /&gt;
= Déroulement du projet =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 22/09 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Réunion avec le tuteur entreprise dans l’entrepôt &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Nous avons observé en situation le problème et discuté des besoins, des moyens déjà utilisables. Il nous faudra prendre en compte plusieurs paramètres dans notre réflexion tels que le système de stockage et d'adressages des palettes, sens de circulation des caristes, superficie des zones à desservir, durée de livraison.&lt;br /&gt;
Nous avons suggéré des étapes de validation intermédiaire du système par les futurs utilisateurs et pour cela nous rencontrerons le chef d'équipe des magasiniers lorsque qu'une version sera assez développée.&lt;br /&gt;
&lt;br /&gt;
Nous avons défini avec le tuteur les premières deadlines du projet, voici la timeline récapitulative:&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Timeline_1.jpg||center|1000px]]&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Compte Rendu &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Nous avons rédigé un compte rendu de la première réunion détaillant les spécifications des versions des livrables, des schémas et les sujets abordés lors de la rencontre :&lt;br /&gt;
&lt;br /&gt;
'''Compte Rendu réunion du 25/09/2014 :''' [[Fichier:Compte_Rendu_25_09.pdf]]&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 29/09 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Découverte des Google Glass &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
*Prise en main des Google Glass. &lt;br /&gt;
*Installation d'applications (.apk) grand public. Nous avons utilisé l'outil Android Debug Bridge(adb). Se mettre à la place d'un utilisateur.&lt;br /&gt;
*L'une des deux lunettes qui serait retenue imposera forcément le développement d'une application android (ou d'une technologie trés proche d'android, pour les Google Glass, se basant sur le Glass Development Kit qui est un add-on au SDK classique d'android). Nous avons donc téléchargé les packages nécessaires pour commencer à développer. &lt;br /&gt;
** Nous commençons à nous former sur les technologies android :développement d'applications minimaliste.&lt;br /&gt;
** Installation de nos premières apk minimalistes pour Android.&lt;br /&gt;
** Installation d'une application minimaliste sur la Google Glass.&lt;br /&gt;
&lt;br /&gt;
Voici un comparatif réalisé entre les lunettes ORA et les Google Glass.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Différences Google Glass/ORA &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!   !! Google Glass !! ORA &lt;br /&gt;
|-&lt;br /&gt;
|Connectique&lt;br /&gt;
|Compatible BLE (à partir de la XE 16 KitKat Update), Wifi &lt;br /&gt;
|Compatible BLE, Wifi&lt;br /&gt;
|-&lt;br /&gt;
|Autonomie en utilisation normale&lt;br /&gt;
|de 1h à 2h &lt;br /&gt;
|de 4h à 8h&lt;br /&gt;
|-&lt;br /&gt;
|Son&lt;br /&gt;
|Conductivité Cranienne&lt;br /&gt;
|Prise jack&lt;br /&gt;
|-&lt;br /&gt;
|Interface&lt;br /&gt;
|Ecran occupant une faible superficie dans le champ de vision &lt;br /&gt;
|Ecran 2 positions (moyennes et basses), plus étendu permettant une réalité augmentée &lt;br /&gt;
|-&lt;br /&gt;
|Système d'exploitation&lt;br /&gt;
|Android 4.4&lt;br /&gt;
|Android 4.2.2&lt;br /&gt;
|-&lt;br /&gt;
|Calculs&lt;br /&gt;
|CPU &amp;amp; GPU&lt;br /&gt;
|CPU &amp;amp; GPU&lt;br /&gt;
|-&lt;br /&gt;
|Prix&lt;br /&gt;
|1500$ &lt;br /&gt;
|949$&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 06/10 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Deuxième rendez-vous avec le tuteur entreprise &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Nous avons fait part de notre avancée en matière de prise en main et des problèmes rencontrés en matière de développement.&lt;br /&gt;
Les lunettes ORA sont commandées elles arrivent d'ici la fin octobre.&lt;br /&gt;
&lt;br /&gt;
La première version V1 de l'application pour Google Glass à livrer pour la mi-novembre est fixée.&lt;br /&gt;
&lt;br /&gt;
En partant d'une position connue (en dur dans l'application) dans l'entrepôt, elle indiquera à un utilisateur les emplacements libres les plus proches.&lt;br /&gt;
&lt;br /&gt;
L'état d'occupation des emplacements sera consulté et stocké dans l'application. Il n'y aura donc pas de gestion des conflits. Le sens de circulation dans l'entrepôt sera pris en compte.&lt;br /&gt;
Une communication avec la base de donnée de l'entrepôt n'est pour le moment pas d'actualité, cela nécessiterait des développements en amont.&lt;br /&gt;
La géolocalisation n'est pas au goût du jour non plus. L'adressage des emplacements dans l'entrepôt est intuitif, il est donc facile pour un magasinier de &lt;br /&gt;
se rendre à un emplacement en connaissant l'adresse.&lt;br /&gt;
&lt;br /&gt;
Pour l'IHM, nous nous inspirerons des applications pour Google Glass (les Glasswares) de type GPS.&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Premiers programmes sur Google Glass &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Pour nous familiariser avec la programmation sur ce genre d'appareil nous avons tous deux décidé de suivre en premier le tutoriel Android d'un site spécialisé. Cela afin de mieux comprendre le système Android, avec les concepts d'activités, de view etc.&lt;br /&gt;
Dans un deuxième temps nous avons choisi de suivre plusieurs tutoriels nous expliquant la prise en main basique des lunettes afin de saisir les particularités de leur programmation.&lt;br /&gt;
&lt;br /&gt;
Le plus dur étant finalement de comprendre les liens entre tous les fichiers du projets, les problèmes de drivers et d'upload simple que nous avons rencontrés et l’exécution du programme sur les lunettes. Des choses que nous arrivons maintenant à maitriser mais qui était floues à l'origine.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 13/10 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Programmation et gestion des interactions &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Durant cette semaine nous avons commencé a vraiment toucher aux fonctionnalités des Glass. Pour rester en main libre, nous avons fait des recherches et commencé à programmer de la reconnaissance vocale. Nous avons ainsi crée un système de navigation basique par commande vocale dans différents menus. Pour un accès rapide à l'application et toujours dans la même optique nous avons réussi à inclure le lancement de notre logiciel à partir du &amp;quot;Ok Glass&amp;quot; menu qui est le menu de lancement d'application par commande vocale des Google Glass. Voici un aperçu du résultat:&lt;br /&gt;
[[Fichier:V0_menu.png|1000px|center]]&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Analyse et évaluation du rendu &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Le début de la prise en main des fonctionnalités des Google Glass n'a pas été facile étant donné que la plupart des fonctionnalités sont propres à ce genre d'appareil. De plus elles nécessitent des techniques spéciales de programmation qui ne sont pas toujours très utilisées donc il est parfois difficile de trouver des exemples sur internet.&lt;br /&gt;
Néanmoins après l'implémentation de ces fonctionnalités nous avons pu rencontrer quelques difficultés de reconnaissance. En effet, les Google Glass possèdent un dictionnaire de mots/phrases pour la reconnaissance vocale mais elles nous permettent aussi d'écrire n'importe quelle phrase dans le mode développeur. Les phrases du dictionnaires ne posent aucun problème mais les phrases que nous écrivons sont parfois dures à reconnaitre. La reconnaissance de lettre seule ou de certains numéros est par exemple quasi impossible ou très aléatoire.&lt;br /&gt;
Le système de vu est quant à lui plutôt facile à prendre en main et intuitif dans l'utilisation.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 20/10 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Premiere structure de donnée &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Nous avons opté pour une structure de donnée récursive. Une Cellule, contenant des Allées, qui contiennent des Baies, contenant des Rangées, contenant des Emplacements.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Structure_export_resized.png|750px|center]]&lt;br /&gt;
Nous avons conçu cette structure de donnée pour qu'elle génère, dans un premier temps &amp;quot;en dur&amp;quot;, une cellule contenant des emplacements automatiquement adressés à la manière de ceux présent dans l'entrepôt. Ces adresses sont de la forme &amp;quot;D61A514&amp;quot; traduisez &amp;quot; Cellule 6 Allée 1A Baie 5 Rang 1 Niveau 4&amp;quot;.&lt;br /&gt;
Cette structure prend on compte le sens de circulation dans l'entrepôt.&lt;br /&gt;
Lors de futures interactions avec une base de donnée, cette structure serait sujette à évolution par une modification des méthodes de génération/modification du statut des adresses en fonction de cette base de donnée. Mais celle-ci constitue essentiellement une base pour appréhender plus pratiquement les problématiques de recherches de l'emplacement le plus proche.&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Prise en main de l'interface &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Nous avons déjà abordé les layouts java en TP donc il a été assez facile de commencer à faire des interfaces graphiques simples. Nous avons construit une interface graphique simple pour de faire une démonstration du programme aux tuteurs entreprise afin qu'ils comprennent bien le fonctionnement de notre algorithme.&lt;br /&gt;
L'interface graphique finale du programme sera très sobre afin de ne pas donner trop gêner le magasinier dans sa tâche.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 27/10 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Chemin optimal : Parcours intelligent Vs Sélection intelligente &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Un premier algorithme de recherche de l'emplacement le plus proche a été développé, celui-ci ne prend en compte qu'un seul scénario. &lt;br /&gt;
Celui de la position de départ (quai de déchargement où reviendra constamment le magasinier aprés chaque livraison) correspondante à la première allée de l'entrepôt, et en prenant en compte le sens de circulation. &lt;br /&gt;
A partir de ce moment, nous avons dégager deux grandes manières d'appréhender le problème.&lt;br /&gt;
&lt;br /&gt;
* Un parcours intelligent de la structure de donnée. C'est à dire parcourir les emplacements les plus proches, et choisir le premier emplacement libre. Une solution complexe à réaliser sur le plan algorithmique. En tenant compte du sens de circulation, il apparait que l'emplacement libre &amp;quot;leplusproche&amp;quot; (à vol d'oiseau) trouvé le plus tôt, ne correspondrait pas forcément à l'emplacement le plus proche compte tenu du chemin emprunté par un magasinier. Et c'est plutôt l'intérêt de cette algorithme.(Sauf dans l'unique cas où l'emplacement libre se trouve directement dans l'allée faisant face à la position de départ du magasinier, et le sens de circulation lui permet directement de se rendre à l'emplacement sans détour).&lt;br /&gt;
&lt;br /&gt;
* Une sélection intelligente parmi les emplacements libres. Leurs adresses renseignent à quelles allées, les emplacements libres appartiennent, donc renseignent sur le sens de circulation. A partir de la position de départ du magasinier et de l'ensemble des emplacements libres, on peut calculer la distance nécessaire à celui-ci pour les atteindre. Pour ainsi choisir l'adresse pour laquelle la distance est minimale.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 3/11 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Chemin optimal : sélection intelligente des adresses &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Nous avons écrit une premiere méthode de détermination. &lt;br /&gt;
On choisit l'emplacement, parmi tous ceux qui sont libres, pour lequel la distance de parcours est minimale entre le départ et celui-ci. &lt;br /&gt;
Ici l'unité de distance est la baie. La simplicité de l'algorithme réside dans le fait que le magasinier ne transporte qu'une seule caisse à la fois et repars toujours au même point de départ.&lt;br /&gt;
&lt;br /&gt;
Ci dessous un plan de l'entrepôt.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:schema_entrepot.png|750px|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Si on se place à l'entrée de l'Allée A :&lt;br /&gt;
&lt;br /&gt;
**le déplacement jusqu'à A4 (sens de circulation direct) est de : &lt;br /&gt;
&lt;br /&gt;
                        Y baies - (indice de la baie/2 +indice de la baie % 2) &lt;br /&gt;
&lt;br /&gt;
**le déplacement jusqu'à B1 (sens de circulation indirect) est de : &lt;br /&gt;
&lt;br /&gt;
                        Y baies + différence entre l'allée A et B donc X baies + indice de la baie/2 +indice de la baie % 2&lt;br /&gt;
**le déplacement jusqu'à C1 (sens de circulation direct) est de : &lt;br /&gt;
                      &lt;br /&gt;
                        Y baies - (indice de la baie/2 +indice de la baie % 2)+différence entre l'allée A et C donc 2*X baies.&lt;br /&gt;
&lt;br /&gt;
*Si on se place à l'entrée de l'Allée B :&lt;br /&gt;
**le déplacement jusqu'à B1 (sens de circulation indirect avec contournement) est de : &lt;br /&gt;
                        &lt;br /&gt;
                        2*X baies + Y baies + 2*X baies + (indice de la baie/2 +indice de la baie % 2)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On peut généraliser l'ensemble de ces situations de déplacement avec l'algorithme suivant :&lt;br /&gt;
&lt;br /&gt;
Pseudo code&lt;br /&gt;
&lt;br /&gt;
  Leplusproche( Allee depart )&lt;br /&gt;
    distance_la_plus_petite = valeurMAX&lt;br /&gt;
      le_plus_proche=&amp;quot;&amp;quot;&lt;br /&gt;
         Pour chaque Allee de Cellule&lt;br /&gt;
           sens=Allee.sens&lt;br /&gt;
           Pour chaque Baie de Allee&lt;br /&gt;
             Pour chaque Rang de Allee&lt;br /&gt;
 	       Pour chaque Emplacement de Rang&lt;br /&gt;
                Si Emplacement estlibre &lt;br /&gt;
                &lt;br /&gt;
                indice_baie = selection_indice_baie(Emplacement.adresse)&lt;br /&gt;
   		 allee_cible = selection_indice_allee(Emplacement.adresse)  &lt;br /&gt;
   		 difference_allee = valeur_absolue(depart -cible) &lt;br /&gt;
                    Si difference_allee==0 et sens.estindirect&lt;br /&gt;
                      //sens indirect +contournement&lt;br /&gt;
                      distance_actuelle=(indice_baie/2)+indice_baie%2+(2*(difference_allee))+4*X+Y			&lt;br /&gt;
                    Sinon	&lt;br /&gt;
                        Si sens estdirect&lt;br /&gt;
                          //sens direct &lt;br /&gt;
                          distance_actuelle=(Y-((indice_baie/2)+indice_baie%2))+2*difference_allee&lt;br /&gt;
                        Sinon&lt;br /&gt;
                          //sens indirect mais pas de contournement&lt;br /&gt;
                          distance_actuelle=((indice_baie/2)+indice_baie%2)+2*difference_allee+Y&lt;br /&gt;
                        Finsi	&lt;br /&gt;
                    Finsi	&lt;br /&gt;
                    Si distance_actuelle &amp;lt; distance_la_plus_petite&lt;br /&gt;
                      le_plus_proche=Emplacement.adresse&lt;br /&gt;
                      distance_la_plus_petite=distance_actuelle&lt;br /&gt;
                    Finsi&lt;br /&gt;
                Finsi  &lt;br /&gt;
            Finpour&lt;br /&gt;
          Finpour&lt;br /&gt;
        Finpour&lt;br /&gt;
      Finpour&lt;br /&gt;
    retourne le_plus_proche&lt;br /&gt;
  Finleplusproche&lt;br /&gt;
&lt;br /&gt;
Cet algorithme nous donne satisfaction (dans le cadre de la V1)&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 10/11 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Programmation et gestion des interactions &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Aprés quelques difficultés vis à vis de la gestion des menus vocaux sur les lunettes qui ne fonctionnent pas de la même manière que les menus classiques sous android, nous avons étoffé les interactions possible avec l'application des google glass. (Nous souhaitions inflater un deuxième menu pour interagir de manière plus contextuelle, il fallait le faire dans la méthode onCreatePanelMenu dont l'appel serait forcé avec getWindow().invalidatePanelMenu(WindowUtils.FEATURE_VOICE_COMMANDS) plutôt que dans onPrepareOptionsMenu forcée par invalidateOptionMenu()...) &lt;br /&gt;
&lt;br /&gt;
schéma d'utilisation...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Proposition projet affichage télévision &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Tele_concept.png|200px|thumb|right]]&lt;br /&gt;
&lt;br /&gt;
Notre tuteur nous a contacté pour nous proposer d'étudier un second projet en parallèle au projet initial. Celui consistant à gérer l'affichage d'information personnalisé d'un magasinier passant à proximité d'un écran de télévision. Nous devons effectuer un Proof Of Concept (POC) et réfléchir à ce sujet.&lt;br /&gt;
L'utilisation du BLE est donc de nouveau d'actualité, car je rappel que sont utilité était discutable dans une réalité métier du projet initial. La question étant plus de savoir comment gérer le système du coté du téléviseur.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Le concept de base étant de :&lt;br /&gt;
* Fournir une beacon aux magasiniers de l'entrepôt.&lt;br /&gt;
* Installer une télévision sur un centre de vie dans l'entrepôt avec une beacon&lt;br /&gt;
* Pousser du contenu personnalisé au magasinier qui se présente devant la tv dans son centre de vie&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 17/11 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Brainstorming à Polytech &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Dans la cadre du POC sur l'affichage personnalisé sur une télévision, nous avons profité d'un exercice de management pour faire participer la classe à notre projet. Grâce à cette intervention nous avons pu confirmer nos idées sur les technologies à utiliser. Mais nous avons surtout eu une multitude de propositions sur les données à afficher sur l'écran.&lt;br /&gt;
&lt;br /&gt;
Pour plus détails, le compte rendu est disponible à ce lien:&lt;br /&gt;
&lt;br /&gt;
'''Compte Rendu Brainstorming 17/11/2014 :''' [[Fichier:Compte_Rendu_POC_17_11.pdf]]&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Entretien avec notre tuteur entreprise &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Durant cet entretien, nous avons livré la première version de l'application et nous avons discuté de la suite du projet.&lt;br /&gt;
Ci joint le Compte Rendu.&lt;br /&gt;
&lt;br /&gt;
'''Compte Rendu  19/11/2014 :''' [[Fichier:Compte_Rendu_19_11.pdf]]&lt;br /&gt;
&lt;br /&gt;
De cette réunion, les points suivants en sont sortis:&lt;br /&gt;
&lt;br /&gt;
*Une reconnaissance vocale en langue française sur les lunettes serait plus intéressante pour les employés (une piste serait d’utiliser l’outil pocketsphinx-  android).&lt;br /&gt;
*Par rapport à l'IHM, il faudrait mettre l’affichage au premier plan sur les Google Glass pour une démo auprés des parties prenantes du projet.&lt;br /&gt;
*Choisir une architecture pour l’affichage d’information personnalisées.&lt;br /&gt;
**La télévision connectée à une raspberry qui communiquerait via un dongle BLE avec le beacon d’un magasinier, ce qui permettrait l’identification de celui-ci prés de la Télévision, et déclencherait un processus d’échange d’information. (Communication via le protocole Bluetooh, wifi entre les lunettes et la Raspberry  ou communication avec la Raspberry avec la Base de Donnée sur le réseau de l’entreprise)&lt;br /&gt;
**Une télévision connectée en continu à un site internet via un dongle HDMI.&lt;br /&gt;
**Une tablette android géante supportant le BLE, ou utilisant un dongle BLE.&lt;br /&gt;
* Réaliser le portage de l’application sur le prototype des lunettes ORA.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 24/11 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Reconnaissance vocale en Français &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Pocket Sphinx Android est une librairie permettant de faire de la reconnaissance vocale d'un langage donné sur un système android en offline.&lt;br /&gt;
Pour supporter une langue, elle nécessite un modèle (ensemble d'informations pour le traitement sonore), un dictionnaire associant les mots et leur phonèmes, ainsi qu'une grammaire, c'est un fichier définissant comment seraient articulé les mots à reconnaître et limitant les possibilités de langage).&lt;br /&gt;
La grammaire étant un automate. Voici un exemple de la grammaire menu.gram pour la reconnaissance de la porte de déchargement.&lt;br /&gt;
[[Fichier:Arborescence_pocket_sphinx.png|200px|thumb|right|PocketSphinx dans un projet Android]]&lt;br /&gt;
&lt;br /&gt;
  #JSGF V1.0;&lt;br /&gt;
  grammar menu;&lt;br /&gt;
  &amp;lt;porte&amp;gt; = porte a |&lt;br /&gt;
            porte b |&lt;br /&gt;
            porte c |&lt;br /&gt;
            porte d |&lt;br /&gt;
            porte e |&lt;br /&gt;
            porte f |&lt;br /&gt;
            porte g |&lt;br /&gt;
            porte h |&lt;br /&gt;
            porte i |&lt;br /&gt;
            porte j ;&lt;br /&gt;
  public &amp;lt;porte&amp;gt; = &amp;lt;porte&amp;gt;+;&lt;br /&gt;
&lt;br /&gt;
Un extrait du dictionnaire french_letter.dic associé avec les phonemes&lt;br /&gt;
&lt;br /&gt;
  a aa &amp;lt;-- juste la lettre a et son phoneme &lt;br /&gt;
  autre au tt rr&lt;br /&gt;
  autre(2) au tt rr ee &lt;br /&gt;
  b bb &lt;br /&gt;
  c ss &lt;br /&gt;
  d dd ei d(2) dd ait &lt;br /&gt;
  e eu e(2) eu zz &lt;br /&gt;
  f ai ff &lt;br /&gt;
  g jj ei g(2) gg ai &lt;br /&gt;
  h aa ch  &lt;br /&gt;
  i ii &lt;br /&gt;
  j jj yy j(2) jj ii&lt;br /&gt;
  porte pp oo rr tt&lt;br /&gt;
  porte(2) pp oo rr tt ee&lt;br /&gt;
  portes(2) pp oo rr tt ee&lt;br /&gt;
  portes(3) pp oo rr tt ee zz&lt;br /&gt;
  portes(4) pp oo rr tt zz&lt;br /&gt;
&lt;br /&gt;
Le model acoustique que nous avons téléchargé étant inclu lium_french_f0&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; Comparaison architectures projet TV &amp;lt;/font&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;font color=#b03434&amp;gt; Semaine du 01/12 &amp;lt;/font&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
===&amp;lt;font color=&amp;quot;grey&amp;quot;&amp;gt; T &amp;lt;/font&amp;gt;===&lt;/div&gt;</summary>
		<author><name>Jgondry</name></author>	</entry>

	</feed>