Affichage des articles dont le libellé est janus. Afficher tous les articles
Affichage des articles dont le libellé est janus. Afficher tous les articles

08/06/2015

Comment créer une méthode pour Smag0, la méthode Diamond, au format RDF

On peut maintenant enregistrer un nouveau projet ou une information à transmettre à sa maison, grâce à l'appli Coolitude4, ou bien directement sur le site http://smag-smag0.rhcloud.com/visu.jsp.

Ensuite, pour nous aider à réaliser ce projet, ou pour aider le système à analyser l'information qu'on lui a envoyer, nous allons de voir utiliser une ou plusieurs méthode. Cet article décrit comment créer une nouvelle méthode et comment l'intégrer au système Smag0. On pourra de la même manière créer d'autres méthodes, des procédures métiers, des recettes de cuisine, des manières de ranger une chambre. Ces méthodes sont partageables et utilisables par plusieurs systèmes, elles devront également être personnalisables, selon l'envie, le contexte de chacun.

J'avais dans un premier temps, fait un premier test pour modéliser la méthode Diamond en me basant sur ce document : DIAMOND : Une approche pour la conception de systèmes multi-agents embarqués par Jean-Paul Jamont, et ça nous donnait ceci : http://smag0.rww.io/diamond.owl.
On pourra aussi se pencher sur la méthode ASPECS à laquelle est étroitement liée Janus.

J'ai depuis approfondi mes connaissances en RDF, et il apparaît opportun, d'utiliser au maximum des vocabulaires déjà existants, pour renforcer la compatibilité et la portabilité d'un méthode.
pour un rappel (ou une découverte) sur RDF et ses triplets, un petit coup d'oeil sur Wikipedia.

Une méthode est tout d'abord une séquence ordonnée d'instructions, ce qui se traduit en RDF par le triplet suivant : 

{ MethodeDiamond        rdf:type     rdf:Seq }


avec rdf:type http://www.w3.org/TR/rdf-schema/#ch_type : 
rdf:type est une instance de rdf:Property qui est utilisé pour indiquer qu'une ressource est une instance d'une classe.Un triplet de la forme: R rdf:type Cstipule que C est une instance de rdfs:Class et R est une instance de C.Le rdfs:domain de rdf:type est rdfs:Resource. Les rdfs:range de rdf:type est rdfs:Class.

Le rdf:Seq est la classe de «séquence» conteneurs RDF. Il est une sous-classe de rdfs:Container. Bien que formellement il est pas différent d'un rdf:Bag ou un rdf:Alt. rdf:Seq est utilisée conventionnellement pour indiquer à un lecteur humain que l'ordre numérique des propriétés d'appartenance de conteneur du conteneur est destiné à être significatif.


La méthode Diamond (enfin, comme je l'ai comprise ;-)) se décompose en 4 étapes majeures : 
  1. A. Définition des besoins
  2. B. Analyse du système Multi-Agents
  3. C. Conception Générique
  4. D. Implantation
ce qui se traduira par les triplets suivants
{ MethodeDiamond rdf:_1 DefinitionDesBesoins }
{ MethodeDiamond   rdf:_2 AnalyseSMA }
{ MethodeDiamond   rdf:_3 ConceptionGenerique }
{ MethodeDiamond   rdf:_4 Implantation }


Chacun de ces étapes majeures étant elle même une séquence  composée d'autres étapes, on continuera donc en décrivant l'étape DefinitionDesBesoins par les triplets suivants : 


DefinitionDesBesoins rdf:type  rdf:Seq  }
DefinitionDesBesoins rdf:_1 ApprochePreliminaire }
{ DefinitionDesBesoins rdf:_2 EtudeActeurs }
{ DefinitionDesBesoins rdf:_3 EtudeCasUtilisation }
{ DefinitionDesBesoins rdf:_4 EtudeBesoinsService }
{ DefinitionDesBesoins rdf:_5 EtudeModeMarcheArret }

et ainsi de suite,
pour plus d'infos sur comment construire une ontologie :
http://python.espe-bretagne.fr/master-hst-ue9-2/wp-content/uploads/2013/03/Tutoriel-Pizza-gloria-1.pdf
http://protegewiki.stanford.edu/wiki/Protege4Pizzas10Minutes
http://protegewiki.stanford.edu/wiki/Protege4UserDocs

Bien , maintenant, passons à la pratique.


Commencez par télécharger et exécuter Protégé2000,
ensuite nommez votre ontologie comme décrit dans les tutoriels juste au dessus (si vous bloquez à ce niveau, demandez de l'aide dans un des groupes de discussion du blog, ou en commentaire de cet article), et importez le vocabulaire rdf : http://www.w3.org/1999/02/22-rdf-syntax-ns#
dans votre ontologie.
Cela nous donnera accès aux classes rdf:Seq et aux propriétés rdf:type...
Ensuite, pour avoir accès à la numérotation, on va aussi importer le vocabulaire rdfs : http://www.w3.org/1999/02/22-rdf-syntax-ns#

dans objectPropertyHierarchie, ajouter des sous-propriétés à la propriété "member" telles que celles-ci : 
http://www.w3.org/1999/02/22-rdf-syntax-ns#_1
http://www.w3.org/1999/02/22-rdf-syntax-ns#_2
http://www.w3.org/1999/02/22-rdf-syntax-ns#_3
...


article), et importez le vocabulaire r
Creez une classe Methode sous la classe Thing, et créez une instance "MaMethode" de type "Methode".

  •  ajoutez le type "Seq" à "MaMethode". --> ceci nous donnera le triplet { MethodeDiamond        rdf:type     rdf:Seq }
  • ensuite utilisez les propriétés _1, _2 que vous avez créé sous la propéiété member, et créez les instances  DefinitionDesBesoins, AnalyseSMA  ConceptionGenerique  Implantation ,
    ce qui nous donnera les triplets :
    { MethodeDiamond rdf:_1 DefinitionDesBesoins }
    { MethodeDiamond   rdf:_2 AnalyseSMA }
    { MethodeDiamond   rdf:_3 ConceptionGenerique }
    { MethodeDiamond   rdf:_4 Implantation }
On peut ensuite ajouter le type Seq à ces quatres instances et continuer, en décrivant les sous-étapes de ces étapes, et ainsi de suite...

Le but étant d'avoir une structure récursive, identique pour toutes les méthodes, afin de pouvoir être utilisé de manière transparente par différentes applications.

On a décrit ici comment construire l'ontologie. on pourra ensuite la stocker sur http://rww.io/ (attention, la survie de ce site n'est pas garantie), ou sur un truc comme https://github.com/scenaristeur/smagserver/tree/master/src/main/webapp/ontologies, pour avoir une possibilité d'évolution, de versionning sur l'ontologie.

Pour l'instant, une première version là : http://smag-smag0.rhcloud.com/ontologies/diamondMethode.owl

reste à ajouter un formulaire sur Smag0 pour intégrer de nouvelles ontologies.




11/03/2014

Rover PcDuino Introduction et partie matérielle

Édit (25/11/2015) :

I DID IT, JE L'AI FAIT !!!

Yahoo, Eureka, ça fonctionne...

Ça roule, ça tourne, ça envoie les images... !!!

Bon ok j'ai mis le temps, mais j'y suis arrivé. J'ai mon robot explorateur, une première étape du projet "Smag0" beaucoup plus vaste, de "robot qui range ma chambre".

Contrôlable par une interface web, une application mobile, ou adaptable à toute autre interface, le robot se déplace dans la maison et vous envoie les images, que vous soyez chez vous, au bureau ou à l'autre bout du monde !!!

Je m'apprête à préparer un "kit" pour ce robot explorateur avec tout le matériel nécessaire et les instructions, pas à pas pour en monter un vous même, ou encore à le proposer déjà tout monté, alors faites-moi signe si ce projet de robot vous intéresse par mail scenaristeur@gmail.com ou par twitter  @DFaveris

voici un guide pour l'installation des composants utiles  http://smag0.blogspot.fr/2015/12/reinstallation-pcduino.html






http://store.linksprite.com/#oid=1005_1_banner_1

cliquez sur cette image pour voir en détail les caractéristiques du pcDuino :


1. Matériel
1.1 Outils nécessaires
1.2 Découverte du matériel
1.3 Montage de la caméra PTZ
1.4 Assemblage de la plate-forme
1.5 Instruction de câblage
2.1 Configurer pcDuino en point d'accès WiFi
2.2 Installer Video Stream Server sur pcDuino
2.3 Installer le logiciel de contrôle
2.4 Contrôler le rover avec un PC
2.5 Contrôler le Rover avec un appareil Android
2.5.1Introduction
2.5.2 GUI
2.5.3 Introduction au code source
2.5.3.1Module de contrôle d'interface
2.5.3.2 Module de conversion du format d'images
2.5.3.3 Module de communication
2.5.4 Guide de l'utilisateur
2.6 Liens de téléchargement

Introduction

(pour la prise en main du pc duino -> Mon club Elec)
Avec le développement de matériel et de logiciel embarqué , diverses technologies sont de plus en plus intégrée . En conséquence , l'obligation de matériel et de logiciels de co-développement est de plus en plus et le cycle d'apprentissage de l'ingénieur s'allonge .
Au cours des dernières années , le mouvement open source du matériel est de plus en plus populaire dans le monde . Arduino est un chef de file dans ce mouvement . Les groupes d'utilisateurs répartis des ingénieurs aux étudiants, puis aux élèves de collège ou même les enfants de l'école primaire . L'émergence d'une variété de plates-formes matérielles open source réduit considérablement la courbe d'apprentissage , stimule l'innovation et accélère la conversion de l'idée à la réalisation. pcDuino est un Arduino superbe avec mini fonctionnalités d'un PC . pcDuino dispose à bord interface matérielle compatible avec l'interface Shield Arduino Uno . Arduino Shields disponibles sur le marché peut être installé sur pcDuino avec un conseil simple traduction ( T -Board ) . Le code source Arudino est également entièrement compatible avec pcDuino . Le système d'exploitation utilisé par pcDuino est open source Linux Ubuntu . Open-source des logiciels Linux innombrables avec de nombreux conseils de matériel open-source peuvent être combinés dans pcDuino pour créer une variété d'applications . pcDuino une plate-forme idéale pour le développement offre implique un logiciel open source et du matériel open source .
Dans cet article, nous montrons comment utiliser pcDuino de construire un réseau WiFi en temps réel de vidéo surveillance robot télécommandé . Sur le plan matériel , nous utilisons le bouclier moteur pour Arduino pour commander les moteurs et servo de la caméra de PZT de Rover . Sur le plan logiciel , nous utilisons un système pcDuino Linux pour obtenir un accès WiFi AP , serveur de streaming vidéo et de la communication TCP / IP .
Dans les sections suivantes , nous les détails la mise en œuvre matérielle et logicielle .

1. Matériel

1.1 Outils nécessaires

- Pince diagonale, pince à bec, 3 mm manche, 2 mm tournevis à tête plate, Tournevis Phillips 3 mm, 5 mm tournevis cruciforme, multimètre, fer à souder, soudure, ruban, pinces, couteau de papier peint


 

1.2 Découverte du matériel

1.2.1 pcDuino

La carte pcDuino est le cerveau du Rover. Elle gère le streaming vidéo,  la communication WiFi et contrôle toutes les pièces mécaniques en Rover.


Les caractéristiques matérielles de pcDuino 
 CPU: core de 1GHz ARM Cortex A8 
 GPU: OpenGL ES2.0, OpenVG 1.1 Mali 400 noyau 
 DRAM: 1 Go 
 le stockage à bord: 2 Go flash, prise microSD extensible jusqu'à 32 Go 
• Sortie vidéo: HDMI 
• Interface d'extension: 2,54 mm Têtes compatible avec Arduino 
 Réseau: Interface RJ45 et USB extensible dongle WiFi (non inclus) (!!La carte pcDuino V2 inclu le WiFi))
• Alimentation: 5V 2A 
 Dimension: 125mm X 52mm

Les caractéristiques logicielles de pcDuino 
 Système d'exploitation: Ubuntu , Android
 API: Toutes les broches extensibles de style Arduino peuvent être accessibles avec l'API, y compris UART, ADC, PWM,GPIO, SPI, I2C 
 Langages de programmation: C, C + + avec la chaîne d'outils GNU, Python, Java




1.2.2 caméra vidéo PZT

(PZT selon wikipedia : Pan Tilt Zoom (en), les unités PTZ sont utilisées pour la mise au point des caméras de surveillance et de visioconférence sur un objet. Pan est la rotation de la caméra autour de l'axe Z, Tilt est l'inclinaison de la caméra sur l'axe X, et Zoom est le mouvement de la lentille motorisée le long de l'axe Y.)
La caméra PTZ comprend deux servo-moteurs pour l'orientation de la caméra (180 degrés vertical et 180 degrés horizontal).Elle peut être directement branchée sur la carte pcDuino avec un câble USB.



Spécifications de la caméra: 
  • Pixel: 30W
  • Capteur: COMS
  • Taille du capteur: 4386 * 3.64 mm
  • Résolution maximale: 640 * 480
  • Format de l'écran: 26bit RGB
  • Interface: interface de transmission à haute vitesse USB2.0, compatible avec USB1.0
  • La balance automatique des blancs, la compensation de couleur

1.2.3 Alimentation

Une alimentation 12V/2A est utilisée pour charger la batterie.


Batterie

Une batterie rechargeable de haute capacité au lithium-ion est utilisée.
Veuillez suivre les consignes de sécurité des batteries au lithium pour éviter les accidents. Sa tension d'entrée est 12.6VDC, et la tension de sortie est 12.0VDC évalué à 4800mAh. 



Fils, Vis et câbles



Plate-Forme

Tous les principaux accessoires de robots  sont installés sur la plate-forme de robot. S'il vous plaît noter que les différents modèles peuvent être différentes dans les images suivantes.


Roulette

Le lanceur supporte l'arrière de la plate-forme du robot. Lors du montage des vis, veillez à ne pas mettre l'écrou sur le côté en dessous. Ceci pourrait affecter la direction de la roulette.



Roues de chariot et DC moteurs à engrenages

DC motoréducteurs pilotes du robot. (moteurs à courant continu)

Support de montage des moteurs DC

Lors de l'installation, le côté de trois trous est fixé à la plate-forme du robot, le côté avec deux trous est fixé à la moteur-réducteur à courant continu.


Carte d'extension moteur pour Arduino

Caractéristiques: 
 Compatible avec Arduino 
 le mode de commande de vitesse de PWM 
• Indicateur 4 directions 
 Compatible avec Linker Kit 2,54 mm interface du plug terrain de Grove. 
 grands modèles de dispositifs de refroidissement 
• Soutenir les 14 servos 
 Dimensions: 68.5x54.5x29.5 mm 
Remarque: Lorsque le courant dépasse 1000mA, la puce du pilote et dissipateur de chaleur seront très chauds.



Carte d'extension T-Board

La carte T-Board convertit le signal TTL 3,3 V en 5V. Elle est utilisé pour installer la carte d'extension moteur sur la carte pcDuino. 

Module de puissance

Ce qui suit est le schéma du module d'alimentation.

Dimensions: Longueur x largeur distance de 75x29mm entre deux trous: 50mm 
Tension d'entrée: 12V 
Tension de sortie: 5V 
Courant de sortie: 2A








Dongle WiFi

!! La carte pcDuino V2 inclu le WiFi -> le dongle ne devrait plus être nécessaire !!
Il prend en charge la norme IEEE 802.11 b / g / n normes, supporte les connexions USB 2.0. 
Il s'agit d'un module WLAN compact à faible coût avec des dimensions: 32x13 mm.

Montage de la caméra PTZ

Avant de monter la plate-forme de robot, nous avons besoin de préparer la caméra PTZ.

Étape 1: Préparer la caméra

Étape 2 : Retirez l'aiguille 


Étape 3: Retirer les vis sur le fond 


Étape 4 : Afin de fixer la caméra sur l'appareil , nous avons besoin de percer des trous et utiliser des vis . Nous pouvons couper les deux oreilles sur le fond et obtenir deux trous . 




Etape 5: Modifier le montage de la caméra . Coupez les deux anciennes fixations et lisser la surface . 




Étape 6 : Aligner la fixation et le bas de l'appareil . Marquez la position du trou avec un stylo ou un crayon , et percer deux trous . 

Etape 7: Afin de ne pas bloquer les deux trous déjà sur le fond de l'appareil , percez deux autres trous sur les deux bords de l'appareil. 




Étape 8: Mettre le couvercle inférieur de la caméra , et assemblez le dispositif, insérer les vis. 






Etape 9: L'appareil est assemblé . Serré avec les vis . 


Étape 10 : Installez l'appareil à gouverner . Faites attention de ne pas installer dans la mauvaise direction .


Étape 11 : Installez le support de la tête . Comparer à l'ouverture , si le balancier est trop long , couper la partie excédentaire et serrez avec les vis . 


Etape 12: Démonter le support de la tête et installer un autre appareil à gouverner . 




Étape 13 : Fixez la caméra à l'appareil PTZ . 


Étape 14: Coupez le pied multifonctions de direction et l'installer dans la base . 



Insérez le support dans la base , serré avec des vis. Ensuite, l'assemblage de la caméra mobile est terminé.

Assemblage de la plate-forme

Étape 1: Installez le moteur à courant continu en position.

La couleur du moteur peut être différente de la couleur du châssis. Première souder les fils du moteur, sans tenir compte de la polarité. Un condensateur céramique de 0,1 uF peut être utilisé s'il est disponible. On peut éviter les interférences etprolonger le cycle de vie du moteur. 
Ensuite, installez le support du moteur.



Etape 2: Installation des roulettes.

Étape 3: Installation des roues.
Étape 4: Installer des montants de cuivre qui sont utilisés pour maintenir le panneau de commande.

Étape 5: Fixez le panneau pcDuino au châssis.


Étape 6: Fixez le panneau du module d'alimentation au châssis. S'il vous plaît noter que le module peut être chaud en fonctionnement. Faites donc attention à ne pas toucher avec les mains.



Étape 7: Installez la batterie.




Etape 8: Installez la caméra PTZ.

 

Étape 9: Installation T-board en bord pcDuino. Il est nécessaire pour le blindage du moteur.








Étape 10: Installez le bouclier de commande de moteur.

 




Etape 11: Insérez dongle WiFi en pcDuino.
(seulement en cas de pcDuino V1 , la V2 inclu le module WiFi)


Nous y sommes presque!


Instruction de câblage

 

Servo dans le sens vertical pour appareil photo PZT:
- Rouge (VCC) -> bouclier moteur (VCC)
- Marron (GND) -> bouclier moteur (GND)
- Orange (Control) -> bouclier moteur (D7)

Servo dans le sens horizontal pour caméra PZT:
- Rouge (VCC) -> bouclier moteur (VCC)
- Marron (GND) -> bouclier moteur (GND)
- Orange (Control) -> bouclier moteur (D4)

Alimentation (12V):
- (1) le bouclier moteur (VCC GND)
- (2) adaptateur (VIN GND)

pcDuino alimentation:
Ligne d'alimentation DIY Rouge (VCC) -> OUT
Noir (GND) -> GND




Vous venez de terminer la première partie, la partie matérielle, passons maintenant à la deuxième partie, la partie logicielle : 

2. Partie Logicielle