Intégration d'un système d'audio-vidéo conférence sur un robot de téléprésence



Documents pareils
Télécom Nancy Année

Guide de l'utilisateur de l'application mobile

Assistance à distance sous Windows


Types de REA produites dans le cadre de la séquence pédagogique

Google Drive, le cloud de Google

contact@nqicorp.com - Web :

SOUTIEN INFORMATIQUE DEP 5229

Configurer son courrier électrique avec votre compte Abicom

Seagate Technology LLC S. De Anza Boulevard Cupertino, CA 95014, États-Unis

Application de lecture de carte SESAM-Vitale Jeebop

Edutab. gestion centralisée de tablettes Android

Caméra IP motorisée de surveillance jour et nuit

Assistance à distance. Guide d utilisation

Sage CRM. Sage CRM 7.3 Guide du portable

Notice succincte pour ordinateurs Windows - IPC-10 AC

Seafile, pour simplifier l'accès à ses fichiers, les partager et les synchroniser

Boîtier TV F200 Retransmetteur de chaînes à distance

Lifesize. Cloud. Communiquez maintenant avec un système de visioconférence époustouflant

DCS-933L. Cloud Camera 1150 Caméra réseau à vision diurne et nocturne. Guide d installation rapide

PARAGON SYSTEM BACKUP 2010

GesTab. Gestion centralisée de tablettes Android

Guide de l'utilisateur

Bluetooth pour Windows

Microsoft Application Center Test

Tutorial et Guide TeamViewer

FORMATION PcVue. Mise en œuvre de WEBVUE. Journées de formation au logiciel de supervision PcVue 8.1. Lieu : Lycée Pablo Neruda Saint Martin d hères

domovea Portier tebis

1.3 Gestion d'une application

Qu'est-ce que le BPM?

TRACcess ekey. Référence rapide

GUIDE DE DÉMARRAGE RAPIDE

POUR MAC Guide de démarrage rapide. Cliquez ici pour télécharger la version la plus récente de ce document

TP Composants Java ME - Java EE. Le serveur GereCompteBancaireServlet

Tutorial pour une application simple

inviu routes Installation et création d'un ENAiKOON ID

Qu'est ce que le Cloud?

Sage CRM. 7.2 Guide de Portail Client

Dell SupportAssist pour PC et tablettes Guide de déploiement

Service d'installation et de démarrage de la solution de stockage réseau HP StoreEasy 1000/3000

ETI/Domo. Français. ETI-Domo Config FR

Capture Pro Software. Démarrage. A-61640_fr

DESCRIPTIF DES PROJETS 3EME ANNEE QUI SERONT PRESENTES LORS DE LA JOURNEE DE PROJET DE FIN D ETUDE LE 26/01/2012

Boîte à outils OfficeScan

PROTECTION DES DONNEES PERSONNELLES ET COOKIES

Qu est ce qu une bibliothèque?

2010 Ing. Punzenberger COPA-DATA GmbH. Tous droits réservés.

Concepts et définitions

Sommaire Introduction... 3 Le but du projet... 3 Les moyens utilisés... 3 Informations sur le client FTP... 4 Pourquoi une version Linux et

2) Téléchargement de l'application pour contrôler vos caméras :

TAGREROUT Seyf Allah TMRIM

NovoSIP manuel de mise en service

Transmetteur Wifi Heden NOTICE D UTILISATION

SPÉCIFICATION DE L'API VERISIGN OPENHYBRID CLOUD SIGNALING

MAJ 08/07/2013. INSTALLATION RAPIDE Version 1.3

Manuel d utilisation NETexcom

Guide Google Cloud Print

Product positioning. Caméra Cloud d'extérieur PoE HD DCS-2310L/ Caméra Cloud HD sans fil d'extérieur DCS-2332L

OCLOUD BACKUP GUIDE DE REFERENCE POUR ANDROID

Partager la connexion Internet de son te le phone portable

AQUAGENIUZ Système de surveillance/ controle de l eau

Utilisation de GCM (Google Cloud Messaging) pour Android. Partie préliminaire éventuelle : Création d'un AVD lisant GCM

RMI. Remote Method Invocation: permet d'invoquer des méthodes d'objets distants.

Installation d'un serveur DHCP sous Windows 2000 Serveur

LANDPARK NETWORK IP LANDPARK NETWORK IP VOUS PERMET D'INVENTORIER FACILEMENT VOS POSTES EN RÉSEAU

Les messages d erreur d'applidis Client

OneDrive, le cloud de Microsoft

Un ordonnanceur stupide

[Serveur de déploiement FOG]

contact@nqicorp.com - Web :

Interface PC Vivago Ultra. Pro. Guide d'utilisation

TP2 : Client d une BDD SqlServer

I Pourquoi une messagerie?

Riddle Blocks. Jeu sous Android. - Yann Bertrand. Membres de l'équipe : - Clément Guihéneuf TS5. - Guillaume Renotton TS4

RMI le langage Java XII-1 JMF

Positionnement produit

Installation du client Cisco VPN 5 (Windows)

Logiciel EV3 LEGO MINDSTORMS Education

EIP 2012 Projet Livepad. Documentation technique 1.5

Sophos Mobile Control Guide d'administration. Version du produit : 4

Les connexions sans fil avec Android. JMF (Tous droits réservés) 1

Fiche méthodologique Rédiger un cahier des charges

A B C D. Wireless Mobile Utility (ios) Manuel d utilisation D600, D7100, D D3200, COOLPIX A Nikon 1 : V2, J3, S

TP SIN Programmation sur androïde Support : eclipse

Installation du client Cisco VPN 5 (Windows)

Service WEB, BDD MySQL, PHP et réplication Heartbeat. Conditions requises : Dans ce TP, il est nécessaire d'avoir une machine Debian sous ProxMox

Exceptions. 1 Entrées/sorties. Objectif. Manipuler les exceptions ;

LE SYSTEME ROBOTISE MASTER D'AIDE AUX HANDICAPES. DESCRIPTION ET MODE OPERATOIRE

DROPBOX. Stocker et partager des fichiers avec

Installation du client Cisco VPN 5 (Windows)

UltraVNC, UltraVNC SC réglages et configurations

Android UIThread, Thread, Handler et AsyncTask

Formateurs : Jackie DAÖN Franck DUBOIS Médiapôle de Guyancourt

Questions et réponses

LOGICIEL KIPICAM : Manuel d installation et d utilisation

Capteurs pour la santé et l autonomie. Nouvelles approches technologiques. pour le suivi sur les lieux de vie

AMTRON. La borne de recharge domestique. Le plein d énergie. MENNEKES TITRE COLONNE

Extrait du site de l'oseo (ex.anvar) Reste à déterminer les points incontournables

TUTORAT. U Guelma. Guide du Tuteur FMISM

Transcription:

Rapport de stage de 2ème année : Intégration d'un système d'audio-vidéo conférence sur un robot de téléprésence Gerontechnology Research Center, Yuan Ze University, Taiwan Kévin Ham Stage effectué du : 27/06/12 au 17/08/12 Maitre de stage : Pr. Yeh-Liang Hsu

2

Remerciements Je tiens à remercier toutes les personnes qui m'ont aidé durant mon stage et qui m'ont permis d'en apprendre tant sur le plan technique que humain et culturel durant ce séjour de deux mois à Taiwan. Je tient plus particulièrement à remercier mon maître de stage, Pr. Yeh-Liang Hsu, qui m'a accueilli au sein de son équipe et m'a insufflé sa philosphie du travail et de la vie. Je remercie également Rebecca, Wilson, Kévin et tout le reste de l'équipe du Gerontechnology Research Center pour leur aide, leurs conseils, ainsi que leur accueil et leur patience qui m'ont permis de réaliser mon stage dans une ambiance extrêmement agréable. 3

Table des matières Remerciements... 3 Introduction... 6 1. Gerontechnology Research Center de Yuan Ze University... 7 1.1. Historique... 7 1.2. Activités... 7 1.3. Mode de fonctionnement du laboratoire... 8 2. Contexte : Le projet Tric Mini+... 8 2.1. Contexte... 8 2.2. Tric Mini+... 10 2.2.1 Structure de Tric Mini +... 12 2.2.2. Expression faciale et déplacement du robot... 12 2.2.3. Mesures des signes vitaux... 13 2.2.4. Intégration des réseaux sociaux... 13 2.2.6. Enjeu de l'application... 14 3. Projet : Interpersonnal Communication... 15 3.1. Définition des exigences... 15 3.2. Analyse des applications existantes... 15 3.3. Description du code source... 16 3.4. Connaissances acquises... 17 3.5. Résultats... 18 4. Difficultés rencontrées... 18 Conclusion... 19 5. Annexe... 20 Table des illustrations Figure 1 : Logo du Gerontechnology Research Center de Yuan Ze University... 7 Figure 2 : Interface du menu de Comm&Care... 9 Figure 3 : Décentralisation de l'application Comm&Care... 9 Figure 4 : logo de TricMini+... 10 4

Figure 5 : Le robot Tric Mini +... 11 Figure 6 : Structure du système Tric Mini +... 12 Figure 7 : Interface de mesures des signes vitaux... 13 Figure 8 : Interface d'envoi de données via Facebook... 14 Figure 9 : StreamingLoop.java... 21 Figure 10 : la fonction doaction... 21 5

Introduction Dans le cadre de mon cursus à l'enseeiht, j'ai effectué mon stage technique de 2ème année dans le laboratoire de recherche Gerontechnology Research Center à l'université de Yuan Ze à Taiwan. Durant ce stage j'ai rejoint l'équipe travaillant sur le robot de communication Tric Mini+ et plus particulièrement sur l'intégration d'une application d'audio-vidéo conférence codé en Android. Ce stage technique est une introduction au monde du travail, qui m'a permis de découvrir le fonctionnement d'un laboratoire de recherche subventionné par le gouvernement de Taiwan, mais surtout de découvrir la culture du travail dans un pays totalement éloigné de la France mais pourtant berceau de la technologie actuelle. Ce fut l'occasion de mettre en pratique mes acquis théoriques au sein d'un projet de recherche, l'objectif étant d'obtenir un contrat avec une entreprise. C'est ainsi que j'ai pu assister et prendre part à toute une phase d'analyse et conception basée sur un cahier des charges définit avec un client et en parrallèle, développer ce même projet en vue de remporter le prix de la compétition PMC (Precision Machinery Research and Development Center). Dans ce rapport, je décrirai mon expérience au sein de cette équipe taïwanaise, d'un point de vue technique, méthodologique et personnel, ainsi qu'en terme de gestion de projet. Dans un premier temps, je présenterai le laboratoire et son activité. Nous nous intéresserons au contexte de mon stage, le projet et ses enjeux, puis nous verrons plus en détail la partie du projet sur laquelle j'ai travaillé lors de mon stage. 6

1. Gerontechnology Research Center de Yuan Ze University 1.1. Historique La gérontechnologie repose sur la conception d'environnement technologique pour l'assistance aux personnes âgées pour leur assurer santé, confort et sécurité ainsi qu'une indépendance dans leur activité au quotidien et leur offrir des moyens simples de sociabilisation. Organisé depuis 2001, le GRC fut officiellement fondé en Janvier 2003, et constitue alors le premier institut de recherche centré dans le domaine de gérontechnologie à Taiwan. Le GRC conçoit des technologies et produits fournissant des solutions pratiques aux différents problèmes de la société vieillissante. Le GRC est né de la volonté de fournir aux personnes âgées une assistance au quotidien à l'aide de produits high-tech. Figure 1 : Logo du Gerontechnology Research Center de Yuan Ze University 1.2. Activités Le centre de recherche et développement est divisé en trois secteurs majeurs : assistance aux personnes âgées, service de santé, et aide à la mobilité, concentrés sur des projets d'une durée de un à deux ans, commercialisables et adaptés au plus grand éventail de la population vieillissante. Les différents projets du GRC sont : Activity of Daily Life (ADL) monitoring : o capteurs d'humidité, de température, de mouvements o détection de chutes de personnes o SmartPad : surveillance de la qualité du sommeil ( bed actigraphy) utilisation de fibres conductrices pour concevoir un capteur de pression pour détecter les mouvements dans le lit Telepresence Robot for Interpersonnal Communication(TRIC) 7

Connecting Homes : Platforme de communication pour les personnes âgées Intelligent Robotic WheelChair (irw) : création d'un chaise roulante facilitant l'accessibilité et la manœuvrabilité et réduit la charge d'effort pour les personnes âgées. 1.3. Mode de fonctionnement du laboratoire La prise d'initiative de la part des membres du laboratoire est un point prédominant dans le fonctionnement du centre. En effet les différentes solutions aux problèmes et enjeux sont principalement issus de la propre réflexion des personnes travaillant sur les projets. Une réunion hebdomadaire durant laquelle le responsable du laboratoire donne ses directions de développement s'apparente à une séance de brainstorming lors de laquelle les membres du laboratoire constitués essentiellement d'étudiants en Master et Doctorat ont la chance d'exprimer leurs opinions, idées et points de vue et où la prise de parole est grandement encouragée par le superviseur. Il s'agit d'une partie de mon stage que j'ai beaucoup appréciée car ce fut une opportunité pour moi de comprendre le point de vue taïwanais sur des problèmes techniques mais aussi les points de vue de personnes issus de différents génies, en majorité des personnes spécialisés dans la mécanique mais aussi le design. 2. Contexte : Le projet Tric Mini+ 2.1. Contexte Le projet Tric Mini+ (Telepresence Robot for Interpersonnal Communication) est intégré dans le projet Comm&Care mais est développé de façon indépendante. Comm&Care est une application sur tablette Android ainsi que sur smartphone Android regroupant deux aspects fondamentaux : mesurer les signes vitaux tout en assurant un espace de communication avec l'entourage de l'utilisateur. Comm&Care se différencie des autres systèmes de télésanté à domicile. Moins axé sur le domaine médical et le suivi de santé par des personnes compétentes, il permet à l'entourage de l'utilisateur de se tenir informer sur l'état de santé de celui-ci. A l'attention du cercle privé, elle répond donc aux 8

problèmes actuels de coût trop élevé, systèmes trop compliqués ou manque de motivation de la part de l'utilisateur. Le leitmotiv de cette application : Social participation & Communication. C'est ainsi que se définit l'application, une transition entre les systèmes de télésanté à domicile vers un système alliant communication et santé. Figure 2 : Interface du menu de Comm&Care L'application se décompose en différentes fonctionnalités qui sont développées de façon indépendantes et utilise des appareils propres à chaque fonction. L'application repose sur la notion de Cloud Computing où la tablette Android de TricMini+ reçoit les données des différents appareils de mesures. Elles sont ensuite transmis à l'application Comm&Care via internet. 9

Figure 3 : Décentralisation de l'application Comm&Care Voici les différentes données récupérés par Comm & Care : mesure du taux d'humidité ambiant mesure de la température mesure de l'activité par détection de mouvement mesure de la qualité du sommeil par détection de mouvement lors du repos mesure des signes vitaux (sanguines, respiratoires et de cholestérol) J'ai eu l'occasion de travailler sur l'application Tric Mini+ qui est une application indépendante permettant notamment la gestion du robot mais les différentes missions de TRIC Mini+ seront développées plus en profondeur dans la partie suivante. 2.2. Tric Mini+ Figure 4 : logo de TricMini+ 10

TRIC (Telepresence Robot for Interpersonnal Communication) est un robot de téléprésence représentant une interface de communication, disposé dans l'environnement local de l'utilisateur. Ce robot repose sur l'idée que les outils de communication facilite les communications interpersonnelles en terme d'échange verbal en temps réel. Le deuxième fondement de TRIC est que la communication non verbale, comme les expressions faciales et le langage corporel sont tout aussi puissant et efficace pour véhiculer des idées, des pensées et des émotions. Tric Mini+ est commandé à l'aide de la fonction Tric de l'application Comm&Care, et regroupe les différents aspects de la communication : système d'audio-vidéo conférence, étude sur laquelle j'ai eu l'occasion d'effectuer mon stage; expression faciale et mouvement du robot; partage de photos et des mesures effectués automatiquement via facebook. Il réceptionne aussi les données reçus par les différents appareils de mesures des signes vitaux, qui pourront ensuite être synchronisé avec Comm & Care. Figure 5 : Le robot Tric Mini + 11

2.2.1 Structure de Tric Mini + TricMini+ est décomposé en deux parties distinctes : une tablette et le robot véhiculé. La tablette représente le centre de contrôle mais représente aussi la tête du robot pour l'affichage des expressions faciales. Figure 6 : Structure du système Tric Mini + Pour un plus grand niveau d'anthropomorphisme, la structure propre du robot se caractérise par une tête, un corps, deux bras et une base circulaire pour un déplacement possible à 360 degrés. Un "remote user" est capable de contrôler une partie des fonctionnalités de TricMini à l'aide de l'application Comm & Care notamment l'usage des expressions faciales du robot, l'audio video-conference et le partage de photos. 2.2.2. Expression faciale et déplacement du robot Une des fonctions du robot est de transmettre une expression de façon non verbale. Un set de différentes expressions faciales a donc été créés et sont affichables à l'écran de la tablette. Ces expressions peuvent être affichées automatiquement ou bien contrôlées par le 12

"remote user" ou le "local user". Ces expressions sont en adéquation avec les mouvements pré enregistré du robot pour transmettre les différentes émotions basiques : joie, peine, surprise, fatigue... 2.2.3. Mesures des signes vitaux Tric Mini +possède aussi un système de "home telehealth system" implanté sur la tablette. L'application récupèrent les informations provenant des différents appareils de mesures, les stockent et les analysent. Ces données sont ensuite envoyées par internet à l'application Comm & Care alors consultables par le "remote user". Figure 7 : Interface de mesures des signes vitaux 2.2.4. Intégration des réseaux sociaux TricMini a la capacité de se connecter à son propre compte facebook et peut être ami avec l'entourage de l'utilisateur de TricMini. Ainsi Les données des signes vitaux à l'attention de l'entourage ainsi que les photos postées sur facebook par les personnes amis de TricMini sont directement synchronisées respectivement sur facebook et la tablette. Les enfants/familles peuvent aussi envoyer des messages d'alerte à l'utilisateur de TricMini via Facebook qui seront automatiquement synchronisé à TricMini. 13

Figure 8 : Interface d'envoi de données via Facebook 2.2.5. Système d'audio-vidéo conférence La partie majeure de TricMini est basé sur le système d'audio-vidéo conférence, moyen de communication le plus simple et efficace. L'utilisateur peux communiquer via TricMini avec son entourage eux-mêmes connectés à l'application Comm & Care. J'ai eu la charge de cette partie et je développerai plus en détail mon expérience dans la prochaine partie de ce rapport. 2.2.6. Enjeu de l'application Toujours a l'état de développement de recherche, Le robot TricMini a été présenté au PMC Contest (Precision Machinery Research and Development Center) le 31 août dans l'espoir de gagner un prix et gagner du crédit et de la visibilité auprès des entreprises et du National Science Council of Taiwan. 14

3. Projet : Interpersonnal Communication 3.1. Définition des exigences L'application d'audio-video conférence intégré à TricMini+ est composé de deux parties : la partie de l'utilisateur de TricMini, "le local user" qui est capable de voir et parler à la personne avec la personne qu'il communique via la tablette Android du robot. la partie "remote user" qui communique avec l'utilisateur de TricMini via un ordinateur, ou l'application Comm & Care installée sur sa tablette Android ou son smartphone. L'un des enjeux majeurs est de pouvoir transmettre la vidéo et le son sans que ceux-ci soient saccadés. Le son ne pouvait pas être dégradé car la moindre dégradation à ce niveau rend l'utilisation du système vraiment inconfortable. La vidéo devait pouvoir se rafraîchir au moins 25 images par secondes pour que l'œil ne perçoivent pas la discontinuité. 3.2. Analyse des applications existantes La première phase de mon stage fut l'apprentissage et la prise en main du langage et des systèmes Android. Après une phase d'analyse des exigences, je devais trouver un moyen pour mettre en œuvre cette application. Deux possibilités s'offrent à moi : coder complètement l'application de a à z. utiliser une application tiers répondant aux besoins techniques et l'intégrer à l'application TricMini. Une première étape fut donc d'effectuer un examen des solutions déjà existantes à ce sujet. La première application en terme de vidéo-conférence est bien sûr skype. Cependant les termes de licence ne permet pas d'utiliser cette application en tant qu'application tiers intégré à une autre application. 15

D'autres applications open-sources furent étudier tels que SpyCam ou IpWebcam. La première ne répondait pas exactement au critère car elle utilisait le protocole rtsp et vlc Media Player pour transmettre la vidéo. En revanche IpWebcam correspondait de loin aux exigences requises. L'idée était donc de s'en inspirer pour développer notre application. 3.3. Description du code source L'application se compose de 7 fichiers sources et utilise la librairie jni de C++ : MainActivity.java CameraView.java NanoHTTPD.java NativeAgent.java NetInfoAdapter.java StreamingLoop.java StreamingServer.java MainActivity.java représente le main de l'application. Il hérite de la classe Activity qui représente une interface visuelle de l'application. MainActivity redéfinit donc les fonctions propres à la classe Activity notamment oncreate(bundle savedinstancestate), onstart(), ondestroy(), onresume(), onpause(). La fonction redéfinit qui nous intéresse est onstart() qui décrit ce que fera l'application lors de son démarrage. Au démarrage, l'utilisateur appuie sur le bouton start pour initialiser la vidéo et la caméra de la tablette, lancer le serveur sur lequel les utilisateurs vont pouvoir se connecter à l'aide de la fonction startserver(), et lancer la vidéo à l'aide de la fonction startstreaming(). Lors de la création du serveur, les classes NanoHTTPD, streamingserver et streamingloop qui seront expliqués par la suite sont appelées. Lors du streaming de la vidéo, les classes StreamingLoop et CameraView seront utilisées. CameraView.java gère les ressources matérielles de la tablette notamment l'utilisation de la caméra avec des fonctions prédéfinies sous Android, avec les classes Camera et MediaRecorder déjà implantées sous Android. 16

La diffusion de la vidéo sur internet est effectuée comme tel : la vidéo est d'abord enregistré sur la mémoire de la tablette, puis cette vidéo enregistré est accessible via le serveur de l'application. La fonction start() de la classe MediaRecorder permet d'enregistrer la vidéo sur la tablette. StreamingServer est la classe permettant la création du serveur de notre application. Ce serveur sera lancé à l'appel de la fonction startserver. Elle hérite de la classe NanoHTTPD qui permet la création d'un serveur http1.0. NanoHTTPD est une classe développé par un tiers sous la licence BSD et son utilisation est permise. Il permet la création simple d'un serveur Java portable. StreamingLoop est la classe qui s'occupera de l'envoi de la vidéo sur le serveur en utilisant les classes Socket et ServerSocket. NetInfoAdapter.java permet de gérer la connexion à Internet : accès par 3G, connexion à un routeur, une box, un réseau privé, etc. Plus particulièrement il permet de gérer l'attribution de l'adresse ip du serveur pour identifier l'adresse l'ip sur laquelle le "remote user" doit se connecter. 3.4. Connaissances acquises Le développement de cet application m'a permis d'en apprendre plus sur la mise en place d'un serveur, et l'envoi de données à celui-ci, notamment l'utilisation de Socket et ServerSocket pour la transmission de données, étudiée cet année lors du cours d'intergiciel. Vous pouvez voir sur la figure9 de l'annexe l'utilisation de ces éléments. L'une des notions sur laquelle reposait aussi l'application est l'utilisation de runnable et de Handler ce qui fut pour moi une tâche délicate car comprendre ces notions n'est pas chose aisé mais importante. L'utilisation de ces notions est présenté sur la figure10 de l'annexe. 17

3.5. Résultats L'intégration de cette application en elle-même fut réalisé. Et l'accès à l'application en cliquant sur un icône dans TricMini fut rendu fonctionnel. Une partie des exigences de l'utilisateur a été implanté et fonctionne notamment la transmission de la vidéo sur internet accessible via l'adresse ip où se trouve le serveur local http. Cependant on constate un léger délai de 3 secondes à laquelle je n'ai pas réussi à trouver une solution avant la date butoir de mon stage. La partie réception automatique sur tablette via l'application Comm & Care a aussi été codé et utilisable. Malheureusement, je n'ai pas eu le temps de rendre fonctionnel la partie audio qui a été malgré tout analysé mais non implanté, du au fait de la courte durée de mon stage. 4. Difficultés rencontrées La première difficulté rencontrée fut la prise en main du langage Android. Basé sur le langage Java, le temps d'adaptation ne fut pas très long mais les quelques subtilités du langage et des classes propres à Android tels que la classe Camera pour accéder aux ressources matérielles de la tablette ne furent pas forcément furent acquises au long du stage et m'a permis d'apprendre un nouvel environnement de développement. De plus les personnes dans mon laboratoire étaient pour la plupart issus du département de mécanique. J'étais donc le seul à travailler sur l'application d'audio-vidéo conférence et l'une de mes seules aides pour le développement de l'application fut internet. Enfin la courte durée de mon stage, dû au fait que j'effectuait un séjour d'étude à l'ecole Polytechnique de Montréal, Canada très tôt à la rentrée ne m'a pas permis d'approfondir et de construire une application entièrement fonctionnelle ce que je regrette un peu. 18

Conclusion Ce stage de sept semaines à Taiwan fut pour moi une bonne approche du mode de fonctionnement d'un laboratoire de recherche et demeure une expérience très formatrice sur le plan technique, méthodologique et organisationnelle. Le fait d'avoir pu travailler avec une équipe issus du département mécanique m'a fait découvrir l'enjeu d'un projet à grande échelle et pas seulement la partie développement de celui-ci. J'ai eu la chance d'apprendre l'esprit d'équipe et la répartition des tâches. De plus le fait d'avoir pu effectuer ce stage à Taiwan m'a fait connaître l'esprit de travail, la mentalité et la culture de l'effort pratiqués sur le continent asiatique. De plus je pense que ce stage en Android fut une chance pour moi d'apprendre des notions qui sont en adéquation avec mes projets futurs. Le développement d'application mobile sur smartphone ou tablette représente un axe de développement très importants dans le domaine de l'informatique et acquérir des capacités dans cette branche demeure un atout majeur pour aujourd'hui et demain. Ce stage au sein du Gerontechnology Center de Yuan Ze a été une expérience que j'ai beaucoup apprécié et qui m'a permis de découvrir un monde et un mode de travail différent du notre, et me fait prendre conscience que le développement informatique est présent dans le monde entier et que beaucoup d'opportunités s'offrent à nous en tant que futur ingénieur en informatique. 19

5. Annexe public class StreamingLoop { //Local data loopback private LocalSocket receiver,sender; private LocalServerSocket lss; private String localaddress; public StreamingLoop (String addr) { localaddress = addr; try { lss = new LocalServerSocket(localAddress); catch (IOException e) { e.printstacktrace(); public FileDescriptor getsenderfiledescriptor() { return sender.getfiledescriptor(); public FileDescriptor getreceiverfiledescriptor() { return receiver.getfiledescriptor(); public InputStream getinputstream() throws IOException{ return receiver.getinputstream(); public OutputStream getoutputstream() throws IOException{ return sender.getoutputstream(); public void ReleaseLoop() { try { if ( receiver!= null){ receiver.close(); if ( sender!= null){ sender.close(); catch (IOException e1) { e1.printstacktrace(); Log.d("MVRS", e1.tostring()); sender = null; receiver = null; public boolean InitLoop() { receiver = new LocalSocket(); 20

try { receiver.connect(new LocalSocketAddress(localAddress)); receiver.setreceivebuffersize(100); receiver.setsendbuffersize(100); sender = lss.accept(); sender.setreceivebuffersize(100); sender.setsendbuffersize(100); catch (IOException e) { e.printstacktrace(); return false; return true; Figure 9 : StreamingLoop.java private void doaction() { if ( inserver == false) { mycamview.preparemedia(targetwid, targethei); boolean ret = mycamview.startrecording(checkingfile); // SLEEP 2 SECONDS HERE... final Handler handler = new Handler(); Timer t = new Timer(); t.schedule(new TimerTask() { public void run() { handler.post(new Runnable() { public void run() { mycamview.stopmedia(); Log.d("kevin","stop recording"); );, 1000); btnstart.setenabled(false); mymessage.settext( getstring(r.string.msg_prepare_waiting)); new Handler().postDelayed(new Runnable() { public void run() { if ( NativeAgent.NativeCheckMedia(targetWid, targethei, checkingfile) ) { startserver(); startstreaming();, 2000); // 2 seconds to release else { showtoast(this, getstring(r.string.msg_prepare_error1)); Figure 10 : la fonction doaction 21