28/12/2014

inserer un nouveau projet doap au serveur Fuseki

Comment insérer un nouveau projet au serveur Fuseki du projet Smag0 :

Code source (App Inventor) et fichier pour Android au bas de cet article.

Dans le cadre Sparql Update de : http://fuseki-smag0.rhcloud.com/
 (selectionner "Control Panel" puis "ds" )

En remplacant test2 par le nom de votre projet

saisir :
 PREFIX rdf:   <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX rdfs:   <http://www.w3.org/2000/01/rdf-schema#>
PREFIX owl: <http://www.w3.org/2002/07/owl#>
PREFIX ex:   <http://example.org/>
PREFIX doap: <http://usefulinc.com/ns/doap#>
PREFIX smag:   <http://smag0.blogspot.fr/NS/>

INSERT DATA {
GRAPH <http://smag0.blogspot.fr/Projets>{
smag:test2 rdf:type doap:Project .

}
}


ou remplacez  "Titre Projet" "description Projet" par vos valeurs (attention, essayer de trouver un id unique, pour l'instant j'utilise le timestamp avec un "P" devant

PREFIX rdf:   <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX rdfs:   <http://www.w3.org/2000/01/rdf-schema#>
PREFIX owl: <http://www.w3.org/2002/07/owl#>
PREFIX ex:   <http://example.org/>
PREFIX doap: <http://usefulinc.com/ns/doap#>
PREFIX smag:   <http://smag0.blogspot.fr/ns/smag0#>
PREFIX dc: <http://purl.org/dc/elements/1.1/>

INSERT DATA {
GRAPH <http://smag0.blogspot.fr/Projets>{
smag:id rdf:type smag:Projet .
smag:id dc:title  "Titre Projet" .
smag:id dc:description  "description Projet" .
}
}


SELECTION DES PROJETS : (dans le cadre Sparql Query)

select ?projet ?titre ?description where {
?projet <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://smag0.blogspot.fr/ns/smag0#Projet> .
?projet <http://purl.org/dc/elements/1.1/title> ?titre .
?projet <http://purl.org/dc/elements/1.1/description> ?description .
}
ORDER BY DESC(?projet)
LIMIT 100

résultat de la requete attendu


RECUPERER LES PROPRIETES DU PROJET DONT LE TITRE EST "SPHERO-CARTO"

PREFIX dc: <http://purl.org/dc/elements/1.1/>
PREFIX smag:   <http://smag0.blogspot.fr/ns/smag0#>

select * where {
?projet dc:title "Sphero-Carto" .
?projet ?propriete ?objet .
}

résultat attendu

idem avec Smag0 :

PREFIX dc: <http://purl.org/dc/elements/1.1/>
PREFIX smag:   <http://smag0.blogspot.fr/ns/smag0#>

select * where {
?projet dc:title "Smag0" .
?projet ?propriete ?objet .
}


résultat attendu



une application android créée avec App-Inventor permet d'inserer et de lire les informations RDF présentes sur ce serveur, elles sont récupérées au format JSON.

Cette démo est un premier test... juste pour la preuve du concept.
Maintenant je peux envoyer des infos sur mon serveur FUSEKI, et les récupérer sur mon smartphone Android. Utile pour envoyer des infos au système multi-agent Smag qui gère mon domicile.

ici se trouve le code source et l'apk : https://drive.google.com/folderview?id=0B0zEK4yLB5C6UUVsMWNkbDZ0WEU&usp=sharing

le fichier Projet.aia est à importer en tant que nouveau projet sur App-inventor : http://ai2.appinventor.mit.edu/

le fichier Projet.apk est prêt à l'emploi

deux fonctions sont incluses pour l'instant : Derniers projets et Ajout d'un projet (Connection internet /wifi activée nécessairement)
Parfois le serveur fuseki met du temps à démarrer. attendez 30 secondes et renouvelez en cas d'échec

!!!! première étape franchie !!! Yahou !!!!




07/12/2014

Le système multi-agent de SMAG

faut vraiment que je rédige cet article, pour faire le point sur l'avancée... si ça met trop de temps, envoyez moi un message pour me le rappeler 

04/12/2014

SpheroCarto - Utiliser Sphero pour cartographier un environnement, et le visualiser avec Processing (APDE)

Une fois n'est pas coutume, prenons le temps de faire le point sur une partie essentielle du projet.

Dans le système SMAG comme je le prévoit, les différents modules robotiques doivent être amenés à échanger les informations qu'ils possèdent, et l'une des informations primordiales pour un objet mobile, est d'abord de savoir dans quel environnement il évolue. L'hypothèse de départ étant un "robot qui range ma chambre" on devra avoir un ou plusieurs robot qui permette aux autres de percevoir l'environnement. N'importe quel appareil mobile, connecté, capable de déterminer sa position par rapport à son point de départ pourra faire l'affaire.

J'avais dans l'idée depuis un bout de temps, d'utiliser SPHERO , une balle programmable, pour tenter de créer une "cartographie" de l'environnement maison. J'en ai trouvé une d'occasion (merci au parquet trop glissant de Matthias !).

Pour rappel, dans l'idée, le système SMAG est un système multi-agent composé de multiples agents indépendants, qui remplissent un rôle. Dans ce qui nous intéresse ici, nous pouvons considérer que la cartographie de l'environnement se décompose en trois 3 composants majeurs.

On aura :
- le robot mobile (ici SPHERO)
- une interface pour commander le robot
- une interface pour visualiser les informations

Dans notre exemple, l'interface pour commander le SPHERO et celle pour visualiser les infos seront toutes les deux dans notre téléphone mais indépendantes (pour l'instant).

Pour l'interface de commande, j'ai choisi Eclipse qui a fait ses preuves en développement Android, et pour l'interface de visualisation, il m'est apparu plus easy d'utiliser Processing, qui fait de jolies interfaces très visuelles, réactives, et souples... ou plutôt APDE sa version mobile.
J'ai utilisé les versions suivantes :
- Eclipse Luna avec le plugin ADT pour (Android Developpement Tool)
- APDE (ou Processing)
- le Sphero Android SDK (avec la version actuelle : Notice: The Sphero Android SDK works with Android 2.2+ and Java Compiler Level 6.0(1.6)+ )
- et ne pas oublier, qu'il te faut évidemment un SPHERO... (Y'en a peut-être un pas trop loin de chez toi qui t'attend  sur le bon coin ???)

Hop, une fois que tu as ton SPHERO en main, les choses intéressantes commencent :

MISE EN PLACE DE L'ENVIRONNEMENT

1. Télécharge le Sphero Android SDK et décompresse -le.
2. Lance Eclipse Luna, si tu ne l'a pas encore, télécharge le, et pendant ce temps, installe l'appli APDE depuis GooglePlay.
3. Une fois Eclipse lancé, on va commencer par se la jouer feignasse... on n'est pas là pour se prendre la tête. Le composant essentiel pour établir la cartographie de l'environnement est sans aucun doute la position de notre robot SPHERO. On va donc s'appuyer sur un des exemples du Sphero Android SDK ... le LOCATOR.
Donc la feignasse, elle ouvre son Eclipse Luna, et elle crée un nouveau projet avec New / Project. Ensuite dans l'assistant (wizzard) choir un projet du type Android (si Android n'apparait pas en dessous de Général, c'est certainement que le plugin ADT n'est pas installé (voir dans Help / Eclipse MarketPlace, et prendre ADT by Google Inc))
Sous Android choisir "Android Project from existing Code" , next et là parcourir jusqu'au Sphero Android SDK téléchargé et décompressé précédemment . et allez jusqu'au dossier Locator. moi dans Browse, j'ai : C:\Users\David\Downloads\Sphero-Android-SDK-master\Sphero-Android-SDK-master\samples\Locator

Laissez faire la Magik Mystique, et Hop !
Nous volià avec une première appli Locator que l'on peut lancer avec un coup de Run dans Eclipse... Là , si vous n'avez jamais utilisé le plugin ADT, il faut configurer l'émulateur (on trouve de la doc là dessus assez facilement).

Moi je veux tester en direct sur mon téléphone, alors je lance le Run mais l'émulateur plante alors je l'arrête , mais je m'en f... parce que c'est pas ça qui m'intéresse... ce qui m'interesse, c'est le fichier APK qui a été créé par le lancement de la commande RUN. il se trouve dans le répertoire bin du répertoire Locator de votre workspace Eclipse (celui que l'on vous demande de confirmer à chaque démarrage)

Ce fichier APK, je le copie sur la carte sd de mon téléphone(via le câble USB). Ensuite, avec un explorateur (comme ES Explorer ) je peux parcourir ma carte et installer l'application que je viens de créer.

D'autres exemples nous seront utiles. On va donc refaire la manip avec le chemin qui s'arrête à la liste des exemple (samples) : C:\Users\David\Downloads\Sphero-Android-SDK-master\Sphero-Android-SDK-master\samples

Là on va cocher : Collision + UISample + Streming Example ( + Locator mais il doit déjà être grisé car déjà installé) + cochez l'option "Copy projects into workspace"

En fait je suis plus feignasse que feignasse, on va utiliser UISample qui est un exemple déjà tout prêt d'interface. Tu peux la tester en faisant comme tout à l'heure un RUN (as android Appli. !) En copiant le fichier présent dans <<ton workspace>>/UISample/bin/ c'est le fichier UiSample.apk

Hop, comme ça, on pourra piquer du code dans ces exemples.

Maintenant au boulot !

... non en fait, trop long de recopier tout le code, si tu veux le récupérer, il est là : https://github.com/scenaristeur/sphero-carto . Il n'est pas encore nickel, il faut que je revoie la correction de direction lors des collision, la mise en veille du tél...
A ta dispo pour corriger, ajouter de nouvelles fonctionnalités... Si tu as des idées, on en discute |-)

+ découvert récemment : un mec qui utilise App Inventor pour contrôler son Sphero. J'ai testé, il reste quelques fignolages, encore, je crois. Je vous ferais signe. Abonnez-vous pour être informé des nouveautés .