SlideShare une entreprise Scribd logo
1  sur  5
Télécharger pour lire hors ligne
TP3 : Comportement temps r´eel de l’agent
Perception
S.Benaissa
GI3-ENSEM-CASA
said.benaissa@ensem.ac.ma
2015–2016
1 Introduction
Un robot est une machine ´equip´ee de capacit´es de perception, de d´ecision et
d’action qui lui permettent d’agir de mani`ere autonome dans son environnement
en fonction de la perception qu’il en a.
Figure 1 – Architecture d’agent localisation de robot mobile.
2 Mod`ele d’agent de perception
R(O, x, y) le rep`ere fixe li´e `a l’environnement externe. La position de robot
en kem
it´eration est Pk = [xk, yk, zk] avec xk et yk les coordonn´ees 2D et θk
1
l’orientation dans R(O, x, y).
R (O , x , y ) le rep`ere mobile li´e au robot mobile khepera-III avec O le
centre de masse de robot. Soit Pk = [xk, yk, zk] repr´esente le d´eplacement et
l’orientation par rapport a R (O , x , y ).
Dans le rep`ere d’environnement R(O, x, y) le d´eplacement relatif ∆dk et l’orien-
tation ∆θk de robot entre deux it´erations ´el´ementaires sont :
Figure 2 – (a) :Robot mobile khepera IV. (b) : Syst`eme de coordonn´ee
R(O, x, y) et R (O , x , y ). (c) :Mod`ele de localisation de robot mobile.



∆dk=
∆dk,r+∆dk,l
2
∆θk=
∆dk,r−∆dk,l
L
∆dk,r et ∆dk,l repr´esente les d´eplacements relatifs respectivement des roues
droit et gauche. ces deux valeurs seront mesur´e par les capteurs odometriques
install´es sur chacune des deux roues. L = 140mm est la distance entre les centres
des deux roues de robot. k = 1, 2, 3, ..., n repr´esentant l’it´eration de mesure. Pour
chaque mesure k on a la position de robot :



xk+1=xk + ∆dk cos(θk + ∆θk
2 )
yk+1=yk + ∆dk sin(θk + ∆θk
2 )
θk+1= θk + ∆θk
3 A.Perception : Position Pr´edite
function [x, y, theta] = MajOdom(xk, yk, thetak, delta-dg, delta_dd, L)
delta_d = (delta_dg+delta_dd)/2; // Calcule de d´eplacement de centre de robot.
delta_theta = (delta_dd-delta_dg)/L; // Calcule d’orientation de centre de robot.
x = xk + delta_s*cos(thetak + delta_theta/2); // Mise `a jour sur x
y = yk + delta_s*sin(thetak + delta_theta/2); // Mise `a jour sur y
theta = thetak + delta_theta; // Mise `a jour sur l’orientation
2
– Programmer l’algorithme de mise `a jour de position de robot.
– Alimenter l’algorithme par des valeurs initiales.
– Analyser le comportement temps r´eel d’agent Perception (Cas Position
Pr´ediction).
4 A.Perception : Position Mesur´ee
1. Utiliser le code ”rodo.c” pour mesures odom´etriques.
2. Compiler ”rodo.c” via la commande ”make”.
3. Utiliser la commande ssh root@192.168.1.2 ’./rodo’ > data.txt pour r´ecup´erer
les mesures vers un fichier ”data.txt” sur votre machine.
4. Alimenter l’algorithme par des valeurs mesur´ees.
5. Analyser le comportement temps r´eel d’agent Perception (Cas Position
Estimation odom´etrique).
5 Perception : Aspect T.R´eel
Analyser le comportement temps-r´eel d’agent perception dans le cas des
mesures r´eel(estimation odom´etriques) et dans le cas de pr´ediction.
1. La distance entre les centres des deux roues de robot : L=140mm.
2. Relation entre la vitesse en pulsation vers la vitesse en mm/s : 1 pul-
se/10ms = 0.678 mm/s.
3. Relation entre la position absolue en pulsation vers la position absolue en
mm : 1 pulse = 0.006781 mm.
6 Code source
Listing 1 – Code source pour mesures odom´etriques.
/∗S . Benaissa ( said . benaissa@ensem . ac .ma)
∗ compiler via la commande : make
∗/
#include <khepera/khepera . h>
#include <s i g n a l . h>
s t a t i c knet dev t ∗ dsPic ;
int maxsp , accinc , accdiv , minspacc , minspdec ;
s t a t i c int quitReq =0;
int main ( int argc , int ∗argv [ ] )
{
int i , lpos , rpos ;
long motspeed=200;
p r i n t f (”n Read odom n ” ) ;
3
// i n i t libkhepera
i f ( k h4 i ni t (0 ,NULL)!=0)
{
p r i n t f (”n i n i t de libkhepera ! nn ” ) ;
return −1;
}
dsPic=knet open (” Khepera4 : dsPic ” ,KNET BUS I2C,0 ,NULL) ;
i f ( dsPic==NULL)
{
p r i n t f (”n prob comm Kh4 dsPic nn ” ) ;
return −2;
}
while (100)
{
kh4 SetMode ( kh4RegSpeedProfile , dsPic ) ;
kh4 set speed ( motspeed , motspeed , dsPic ) ;
kh4 get position (&lpos ,&rpos , dsPic ) ;
p r i n t f (”n odom : l e f t %ld | right %ld n” , lpos , rpos ) ;
}
kh4 SetMode ( kh4RegSpeedProfile , dsPic ) ;
kh4 set speed (0 ,0 , dsPic ) ;
}
Listing 2 – Makefile de compilation.
# S . Benaissa ( said . benaissa@ensem . ac .ma)
# Makefile fo r development with libkhepera
.PHONY: clean
# Modify t h i s !
#KTEAMHOME = . . / . .
KTEAMHOME =˜/khepera4 development
# And maybe these
LIBKHEPERA ROOT = ${KTEAMHOME}/ libkhepera −1.0
TARGET SYSTEM = khepera −2.6
OE HOME = / usr / l o c a l /khepera4−oetools
KHEPERA TOOLS = ${OE HOME}
KTEAM KERNEL VERSION = 2.6.24
KTEAM KERNEL HOME = ${KHEPERA TOOLS}/tmp/work/
overo−angstrom−linux−gnueabi / linux−omap3−${KTEAM KERNEL VERSION}−r97 / g i t
# And don ’ t touch these
ARCH = arm
CROSS COMPILE = arm−angstrom−linux−gnueabi−
PATH := $ (PATH) : ${KHEPERA TOOLS}/tmp/ sysroots / i686−linux / usr /armv7a/ bin
CC = ${CROSS COMPILE} gcc
CXX = ${CROSS COMPILE}g++
LD = ${CROSS COMPILE} ld
AR = ${CROSS COMPILE} ar
4
AS = ${CROSS COMPILE} as
INCPATH = ${LIBKHEPERA ROOT}/ build−${TARGET SYSTEM}/ include
LIBPATH = ${LIBKHEPERA ROOT}/ build−${TARGET SYSTEM}/ l i b
# Pointer to the libkhepera build directory
LIBKHEPERA = ${LIBKHEPERA ROOT}/ build−${TARGET SYSTEM}
SRCS = $ ( wildcard ∗. c )
OBJS = $ ( patsubst %.c ,%.o , ${SRCS})
INCS = −I ${LIBKHEPERA}/ include
LIBS = −L ${LIBKHEPERA}/ l i b −lkhepera −lpthread
CFLAGS = −O2
# f or debugging
#CFLAGS = −g
TARGET = template template−s t a t i c
.PHONY: a l l clean depend
r odo : r odo . o
@echo ” Building $@”
$ (CC) −o $@ $? $ (LIBS) $ (INCS) $ (CFLAGS)
template−s t a t i c : r odo . o
@echo ” Building $@”
@$(CC) −o $@ $? $ (LIBS) −s t a t i c $ (INCS) $ (CFLAGS)
a l l : ${TARGET}
clean :
@echo ” Cleaning ”
@rm −f ∗. o . depend ${TARGET} ∗˜
depend :
@echo ” Building dependencies ”
@rm −f . depend
@touch . depend
@makedepend ${SYS INCLUDES} ${INCS} −Y −f . depend ${SRCS}
%.o : %.c
@echo ”Compiling $@”
$ (CC) $ (INCS) −c $ (CFLAGS) $< −o $@
i f e q ( . depend , $ ( wildcard . depend ))
include . depend
endif
5

Contenu connexe

Tendances

Asyncio: offrez des tulipes à vos entrées sorties asynchrones
Asyncio: offrez des tulipes à vos entrées sorties asynchronesAsyncio: offrez des tulipes à vos entrées sorties asynchrones
Asyncio: offrez des tulipes à vos entrées sorties asynchronestchappui
 
Beyond F5 - windbg et .Net
Beyond F5 - windbg et .NetBeyond F5 - windbg et .Net
Beyond F5 - windbg et .NetYann Schwartz
 
Need it help in Operating System quiz(computer language) and in some course
Need it help in Operating System quiz(computer language) and in some courseNeed it help in Operating System quiz(computer language) and in some course
Need it help in Operating System quiz(computer language) and in some courseDouria Zohbi
 
Comment développer un serveur métier en python/C++
Comment développer un serveur métier en python/C++Comment développer un serveur métier en python/C++
Comment développer un serveur métier en python/C++cppfrug
 
Annotation Java vs. Decorator Python
Annotation Java vs. Decorator PythonAnnotation Java vs. Decorator Python
Annotation Java vs. Decorator PythonDidier Plaindoux
 
Monitoring d'applications/environnements PHP: APM et Pinba
Monitoring d'applications/environnements PHP: APM et PinbaMonitoring d'applications/environnements PHP: APM et Pinba
Monitoring d'applications/environnements PHP: APM et PinbaPatrick Allaert
 
De java à swift en 2 temps trois mouvements
De java à swift en 2 temps trois mouvementsDe java à swift en 2 temps trois mouvements
De java à swift en 2 temps trois mouvementsDidier Plaindoux
 
La programmation fonctionnelle avec le langage OCaml
La programmation fonctionnelle avec le langage OCamlLa programmation fonctionnelle avec le langage OCaml
La programmation fonctionnelle avec le langage OCamlStéphane Legrand
 
Coat::Persistent at FPW2009
Coat::Persistent at FPW2009Coat::Persistent at FPW2009
Coat::Persistent at FPW2009Alexis Sukrieh
 
Introduction à Python - Achraf Kacimi El Hassani
Introduction à Python - Achraf Kacimi El HassaniIntroduction à Python - Achraf Kacimi El Hassani
Introduction à Python - Achraf Kacimi El HassaniShellmates
 
Interception de signal avec dump de la pile d'appel
Interception de signal avec dump de la pile d'appelInterception de signal avec dump de la pile d'appel
Interception de signal avec dump de la pile d'appelThierry Gayet
 
The iTronics - Arduino + Raspberry Pi Workshop 20-04-2017
The iTronics - Arduino + Raspberry Pi Workshop 20-04-2017The iTronics - Arduino + Raspberry Pi Workshop 20-04-2017
The iTronics - Arduino + Raspberry Pi Workshop 20-04-2017Romaric Saounde Tsopnang
 
Formation python micro club.net
Formation python micro club.netFormation python micro club.net
Formation python micro club.netZakaria SMAHI
 
Programmes et objets informatiques (Prof. Ch. Rapin, Juillet 1989)
Programmes et objets informatiques (Prof. Ch. Rapin, Juillet 1989)Programmes et objets informatiques (Prof. Ch. Rapin, Juillet 1989)
Programmes et objets informatiques (Prof. Ch. Rapin, Juillet 1989)ebruchez
 
Android Optimisations Greendroid
Android Optimisations GreendroidAndroid Optimisations Greendroid
Android Optimisations GreendroidGDG Nantes
 

Tendances (20)

Programmation Fonctionnelle
Programmation FonctionnelleProgrammation Fonctionnelle
Programmation Fonctionnelle
 
Asyncio: offrez des tulipes à vos entrées sorties asynchrones
Asyncio: offrez des tulipes à vos entrées sorties asynchronesAsyncio: offrez des tulipes à vos entrées sorties asynchrones
Asyncio: offrez des tulipes à vos entrées sorties asynchrones
 
Beyond F5 - windbg et .Net
Beyond F5 - windbg et .NetBeyond F5 - windbg et .Net
Beyond F5 - windbg et .Net
 
Need it help in Operating System quiz(computer language) and in some course
Need it help in Operating System quiz(computer language) and in some courseNeed it help in Operating System quiz(computer language) and in some course
Need it help in Operating System quiz(computer language) and in some course
 
Comment développer un serveur métier en python/C++
Comment développer un serveur métier en python/C++Comment développer un serveur métier en python/C++
Comment développer un serveur métier en python/C++
 
Annotation Java vs. Decorator Python
Annotation Java vs. Decorator PythonAnnotation Java vs. Decorator Python
Annotation Java vs. Decorator Python
 
Monitoring d'applications/environnements PHP: APM et Pinba
Monitoring d'applications/environnements PHP: APM et PinbaMonitoring d'applications/environnements PHP: APM et Pinba
Monitoring d'applications/environnements PHP: APM et Pinba
 
Tour C++
Tour C++Tour C++
Tour C++
 
De java à swift en 2 temps trois mouvements
De java à swift en 2 temps trois mouvementsDe java à swift en 2 temps trois mouvements
De java à swift en 2 temps trois mouvements
 
Ds2 informatique
Ds2 informatiqueDs2 informatique
Ds2 informatique
 
La programmation fonctionnelle avec le langage OCaml
La programmation fonctionnelle avec le langage OCamlLa programmation fonctionnelle avec le langage OCaml
La programmation fonctionnelle avec le langage OCaml
 
Coat::Persistent at FPW2009
Coat::Persistent at FPW2009Coat::Persistent at FPW2009
Coat::Persistent at FPW2009
 
Introduction à Python - Achraf Kacimi El Hassani
Introduction à Python - Achraf Kacimi El HassaniIntroduction à Python - Achraf Kacimi El Hassani
Introduction à Python - Achraf Kacimi El Hassani
 
Interception de signal avec dump de la pile d'appel
Interception de signal avec dump de la pile d'appelInterception de signal avec dump de la pile d'appel
Interception de signal avec dump de la pile d'appel
 
ALF 8 - Generation de code
ALF 8 - Generation de codeALF 8 - Generation de code
ALF 8 - Generation de code
 
Python profiling
Python profilingPython profiling
Python profiling
 
The iTronics - Arduino + Raspberry Pi Workshop 20-04-2017
The iTronics - Arduino + Raspberry Pi Workshop 20-04-2017The iTronics - Arduino + Raspberry Pi Workshop 20-04-2017
The iTronics - Arduino + Raspberry Pi Workshop 20-04-2017
 
Formation python micro club.net
Formation python micro club.netFormation python micro club.net
Formation python micro club.net
 
Programmes et objets informatiques (Prof. Ch. Rapin, Juillet 1989)
Programmes et objets informatiques (Prof. Ch. Rapin, Juillet 1989)Programmes et objets informatiques (Prof. Ch. Rapin, Juillet 1989)
Programmes et objets informatiques (Prof. Ch. Rapin, Juillet 1989)
 
Android Optimisations Greendroid
Android Optimisations GreendroidAndroid Optimisations Greendroid
Android Optimisations Greendroid
 

En vedette

Appropriation powerpoint csl
Appropriation powerpoint cslAppropriation powerpoint csl
Appropriation powerpoint cslLouise Roy
 
Gamme OpéRatoire G30 TP 130
Gamme OpéRatoire G30 TP 130Gamme OpéRatoire G30 TP 130
Gamme OpéRatoire G30 TP 130youri59490
 
L’environnement profitons-en! LES LOISIRS
L’environnement profitons-en! LES LOISIRSL’environnement profitons-en! LES LOISIRS
L’environnement profitons-en! LES LOISIRSIES JOSÉ LUIS TEJADA
 
Science et technologie de l'environnement - Révision partie 1
Science et technologie de l'environnement - Révision partie 1Science et technologie de l'environnement - Révision partie 1
Science et technologie de l'environnement - Révision partie 1Jean-Philippe Lehoux
 
Dessin d\'une pièce simple avec Inventor
Dessin d\'une pièce simple avec InventorDessin d\'une pièce simple avec Inventor
Dessin d\'une pièce simple avec Inventorpapanicola robert
 
Unité didactique 1 les produits industriels et sa représentation
Unité didactique 1   les produits industriels et sa représentationUnité didactique 1   les produits industriels et sa représentation
Unité didactique 1 les produits industriels et sa représentationIES JOSÉ LUIS TEJADA
 
Fiches de la flore et de la faune. L'ÉTÉ
Fiches de la flore et de la faune. L'ÉTÉFiches de la flore et de la faune. L'ÉTÉ
Fiches de la flore et de la faune. L'ÉTÉIES JOSÉ LUIS TEJADA
 
SCT-3061 Activité sur les articulations 2
SCT-3061 Activité sur les articulations 2SCT-3061 Activité sur les articulations 2
SCT-3061 Activité sur les articulations 2Louise Roy
 
Turbine a vapeur / Steam Turbine
Turbine a vapeur / Steam TurbineTurbine a vapeur / Steam Turbine
Turbine a vapeur / Steam TurbineJean-Denis Fournier
 
02 mesure-terrestre-et-mesure-celeste
02 mesure-terrestre-et-mesure-celeste02 mesure-terrestre-et-mesure-celeste
02 mesure-terrestre-et-mesure-celestem.a bensaaoud
 
Tp2: Installation d'une couche d’abstraction entre un robot physique et ros
Tp2: Installation d'une couche d’abstraction entre un robot physique et rosTp2: Installation d'une couche d’abstraction entre un robot physique et ros
Tp2: Installation d'une couche d’abstraction entre un robot physique et rosSaid Benaissa
 
Science technologie - 16 novembre - séchoir à cheveux - version 2
Science technologie - 16 novembre - séchoir à cheveux - version 2Science technologie - 16 novembre - séchoir à cheveux - version 2
Science technologie - 16 novembre - séchoir à cheveux - version 2Louise Roy
 
SCT-3061, Activité sur les articulations
SCT-3061, Activité sur les articulationsSCT-3061, Activité sur les articulations
SCT-3061, Activité sur les articulationsLouise Roy
 

En vedette (20)

Ud 06 l_electricite
Ud 06 l_electriciteUd 06 l_electricite
Ud 06 l_electricite
 
Appropriation powerpoint csl
Appropriation powerpoint cslAppropriation powerpoint csl
Appropriation powerpoint csl
 
Real time systems
Real time systemsReal time systems
Real time systems
 
Moteur Wankel
Moteur WankelMoteur Wankel
Moteur Wankel
 
Réducteur de treuil
Réducteur de treuilRéducteur de treuil
Réducteur de treuil
 
Gamme OpéRatoire G30 TP 130
Gamme OpéRatoire G30 TP 130Gamme OpéRatoire G30 TP 130
Gamme OpéRatoire G30 TP 130
 
L’environnement profitons-en! LES LOISIRS
L’environnement profitons-en! LES LOISIRSL’environnement profitons-en! LES LOISIRS
L’environnement profitons-en! LES LOISIRS
 
Science et technologie de l'environnement - Révision partie 1
Science et technologie de l'environnement - Révision partie 1Science et technologie de l'environnement - Révision partie 1
Science et technologie de l'environnement - Révision partie 1
 
TRIO-Product Guide_715a
TRIO-Product Guide_715aTRIO-Product Guide_715a
TRIO-Product Guide_715a
 
La pêche et les fruits de mer
La pêche et les fruits de merLa pêche et les fruits de mer
La pêche et les fruits de mer
 
Dessin d\'une pièce simple avec Inventor
Dessin d\'une pièce simple avec InventorDessin d\'une pièce simple avec Inventor
Dessin d\'une pièce simple avec Inventor
 
Unité didactique 1 les produits industriels et sa représentation
Unité didactique 1   les produits industriels et sa représentationUnité didactique 1   les produits industriels et sa représentation
Unité didactique 1 les produits industriels et sa représentation
 
Fiches de la flore et de la faune. L'ÉTÉ
Fiches de la flore et de la faune. L'ÉTÉFiches de la flore et de la faune. L'ÉTÉ
Fiches de la flore et de la faune. L'ÉTÉ
 
SCT-3061 Activité sur les articulations 2
SCT-3061 Activité sur les articulations 2SCT-3061 Activité sur les articulations 2
SCT-3061 Activité sur les articulations 2
 
Turbine a vapeur / Steam Turbine
Turbine a vapeur / Steam TurbineTurbine a vapeur / Steam Turbine
Turbine a vapeur / Steam Turbine
 
Ud 05 les_mecanismes
Ud 05 les_mecanismesUd 05 les_mecanismes
Ud 05 les_mecanismes
 
02 mesure-terrestre-et-mesure-celeste
02 mesure-terrestre-et-mesure-celeste02 mesure-terrestre-et-mesure-celeste
02 mesure-terrestre-et-mesure-celeste
 
Tp2: Installation d'une couche d’abstraction entre un robot physique et ros
Tp2: Installation d'une couche d’abstraction entre un robot physique et rosTp2: Installation d'une couche d’abstraction entre un robot physique et ros
Tp2: Installation d'une couche d’abstraction entre un robot physique et ros
 
Science technologie - 16 novembre - séchoir à cheveux - version 2
Science technologie - 16 novembre - séchoir à cheveux - version 2Science technologie - 16 novembre - séchoir à cheveux - version 2
Science technologie - 16 novembre - séchoir à cheveux - version 2
 
SCT-3061, Activité sur les articulations
SCT-3061, Activité sur les articulationsSCT-3061, Activité sur les articulations
SCT-3061, Activité sur les articulations
 

Similaire à TP3: Comportement Temps Réel de l'Agent Perception

Javascript : fondamentaux et OOP
Javascript : fondamentaux et OOPJavascript : fondamentaux et OOP
Javascript : fondamentaux et OOPJean-Pierre Vincent
 
Exploiter php 5
Exploiter php 5Exploiter php 5
Exploiter php 5halleck45
 
ALF 11 - Diagrame de flux de controlle
ALF 11 - Diagrame de flux de controlleALF 11 - Diagrame de flux de controlle
ALF 11 - Diagrame de flux de controlleAlexandru Radovici
 
Tp1 compte rendu en langage c
Tp1 compte rendu en langage cTp1 compte rendu en langage c
Tp1 compte rendu en langage cEbrima NJIE
 
Wygday 2011 - C#5 Async CTP - Reactive Extensions
Wygday 2011  - C#5 Async CTP - Reactive ExtensionsWygday 2011  - C#5 Async CTP - Reactive Extensions
Wygday 2011 - C#5 Async CTP - Reactive Extensionswyggio
 
Function oop - bonnes pratiques ms tech days
Function   oop - bonnes pratiques ms tech daysFunction   oop - bonnes pratiques ms tech days
Function oop - bonnes pratiques ms tech daysJean-Pierre Vincent
 
Patterns et bonnes pratiques autour de JavaScript
Patterns et bonnes pratiques autour de JavaScriptPatterns et bonnes pratiques autour de JavaScript
Patterns et bonnes pratiques autour de JavaScriptMicrosoft Technet France
 
Fondamentaux portée - contexte - function ms tech days
Fondamentaux   portée - contexte - function ms tech daysFondamentaux   portée - contexte - function ms tech days
Fondamentaux portée - contexte - function ms tech daysJean-Pierre Vincent
 
Introduction à JavaScript
Introduction à JavaScriptIntroduction à JavaScript
Introduction à JavaScriptMicrosoft
 
Seance 3- Programmation en langage C
Seance 3- Programmation en langage C Seance 3- Programmation en langage C
Seance 3- Programmation en langage C Fahad Golra
 
ALF 11 - Diagramme de flux de contrôle et WebAssembly
ALF 11 - Diagramme de flux de contrôle et WebAssemblyALF 11 - Diagramme de flux de contrôle et WebAssembly
ALF 11 - Diagramme de flux de contrôle et WebAssemblyAlexandru Radovici
 
Traitement des données massives (INF442, A2)
Traitement des données massives (INF442, A2)Traitement des données massives (INF442, A2)
Traitement des données massives (INF442, A2)Frank Nielsen
 
Pré projet thèse "VILLE AGILE ET AGILITÉ URBAINE : VERS UN NOUVEAU DESIGN M...
Pré projet thèse "VILLE AGILE ET AGILITÉ URBAINE : VERS UN NOUVEAU DESIGN M...Pré projet thèse "VILLE AGILE ET AGILITÉ URBAINE : VERS UN NOUVEAU DESIGN M...
Pré projet thèse "VILLE AGILE ET AGILITÉ URBAINE : VERS UN NOUVEAU DESIGN M...François-Florimond FLUCK
 
Future of java script web version
Future of java script web versionFuture of java script web version
Future of java script web versionSébastien Pertus
 
Présentation Javascript à l'ESI (Alger)
Présentation Javascript à l'ESI (Alger)Présentation Javascript à l'ESI (Alger)
Présentation Javascript à l'ESI (Alger)Dr Samir A. ROUABHI
 
Introduction a la compilation Analyse lexicale - C2
Introduction a la compilation  Analyse lexicale - C2Introduction a la compilation  Analyse lexicale - C2
Introduction a la compilation Analyse lexicale - C2Beligh HAMDI
 

Similaire à TP3: Comportement Temps Réel de l'Agent Perception (20)

Javascript : fondamentaux et OOP
Javascript : fondamentaux et OOPJavascript : fondamentaux et OOP
Javascript : fondamentaux et OOP
 
Exploiter php 5
Exploiter php 5Exploiter php 5
Exploiter php 5
 
ALF 11 - Diagrame de flux de controlle
ALF 11 - Diagrame de flux de controlleALF 11 - Diagrame de flux de controlle
ALF 11 - Diagrame de flux de controlle
 
Mathématiques et Python
Mathématiques et PythonMathématiques et Python
Mathématiques et Python
 
Tp1 compte rendu en langage c
Tp1 compte rendu en langage cTp1 compte rendu en langage c
Tp1 compte rendu en langage c
 
Cours php
Cours phpCours php
Cours php
 
Wygday 2011 - C#5 Async CTP - Reactive Extensions
Wygday 2011  - C#5 Async CTP - Reactive ExtensionsWygday 2011  - C#5 Async CTP - Reactive Extensions
Wygday 2011 - C#5 Async CTP - Reactive Extensions
 
Php4 Mysql
Php4 MysqlPhp4 Mysql
Php4 Mysql
 
Function oop - bonnes pratiques ms tech days
Function   oop - bonnes pratiques ms tech daysFunction   oop - bonnes pratiques ms tech days
Function oop - bonnes pratiques ms tech days
 
Patterns et bonnes pratiques autour de JavaScript
Patterns et bonnes pratiques autour de JavaScriptPatterns et bonnes pratiques autour de JavaScript
Patterns et bonnes pratiques autour de JavaScript
 
Ruby STAR
Ruby STARRuby STAR
Ruby STAR
 
Fondamentaux portée - contexte - function ms tech days
Fondamentaux   portée - contexte - function ms tech daysFondamentaux   portée - contexte - function ms tech days
Fondamentaux portée - contexte - function ms tech days
 
Introduction à JavaScript
Introduction à JavaScriptIntroduction à JavaScript
Introduction à JavaScript
 
Seance 3- Programmation en langage C
Seance 3- Programmation en langage C Seance 3- Programmation en langage C
Seance 3- Programmation en langage C
 
ALF 11 - Diagramme de flux de contrôle et WebAssembly
ALF 11 - Diagramme de flux de contrôle et WebAssemblyALF 11 - Diagramme de flux de contrôle et WebAssembly
ALF 11 - Diagramme de flux de contrôle et WebAssembly
 
Traitement des données massives (INF442, A2)
Traitement des données massives (INF442, A2)Traitement des données massives (INF442, A2)
Traitement des données massives (INF442, A2)
 
Pré projet thèse "VILLE AGILE ET AGILITÉ URBAINE : VERS UN NOUVEAU DESIGN M...
Pré projet thèse "VILLE AGILE ET AGILITÉ URBAINE : VERS UN NOUVEAU DESIGN M...Pré projet thèse "VILLE AGILE ET AGILITÉ URBAINE : VERS UN NOUVEAU DESIGN M...
Pré projet thèse "VILLE AGILE ET AGILITÉ URBAINE : VERS UN NOUVEAU DESIGN M...
 
Future of java script web version
Future of java script web versionFuture of java script web version
Future of java script web version
 
Présentation Javascript à l'ESI (Alger)
Présentation Javascript à l'ESI (Alger)Présentation Javascript à l'ESI (Alger)
Présentation Javascript à l'ESI (Alger)
 
Introduction a la compilation Analyse lexicale - C2
Introduction a la compilation  Analyse lexicale - C2Introduction a la compilation  Analyse lexicale - C2
Introduction a la compilation Analyse lexicale - C2
 

TP3: Comportement Temps Réel de l'Agent Perception

  • 1. TP3 : Comportement temps r´eel de l’agent Perception S.Benaissa GI3-ENSEM-CASA said.benaissa@ensem.ac.ma 2015–2016 1 Introduction Un robot est une machine ´equip´ee de capacit´es de perception, de d´ecision et d’action qui lui permettent d’agir de mani`ere autonome dans son environnement en fonction de la perception qu’il en a. Figure 1 – Architecture d’agent localisation de robot mobile. 2 Mod`ele d’agent de perception R(O, x, y) le rep`ere fixe li´e `a l’environnement externe. La position de robot en kem it´eration est Pk = [xk, yk, zk] avec xk et yk les coordonn´ees 2D et θk 1
  • 2. l’orientation dans R(O, x, y). R (O , x , y ) le rep`ere mobile li´e au robot mobile khepera-III avec O le centre de masse de robot. Soit Pk = [xk, yk, zk] repr´esente le d´eplacement et l’orientation par rapport a R (O , x , y ). Dans le rep`ere d’environnement R(O, x, y) le d´eplacement relatif ∆dk et l’orien- tation ∆θk de robot entre deux it´erations ´el´ementaires sont : Figure 2 – (a) :Robot mobile khepera IV. (b) : Syst`eme de coordonn´ee R(O, x, y) et R (O , x , y ). (c) :Mod`ele de localisation de robot mobile.    ∆dk= ∆dk,r+∆dk,l 2 ∆θk= ∆dk,r−∆dk,l L ∆dk,r et ∆dk,l repr´esente les d´eplacements relatifs respectivement des roues droit et gauche. ces deux valeurs seront mesur´e par les capteurs odometriques install´es sur chacune des deux roues. L = 140mm est la distance entre les centres des deux roues de robot. k = 1, 2, 3, ..., n repr´esentant l’it´eration de mesure. Pour chaque mesure k on a la position de robot :    xk+1=xk + ∆dk cos(θk + ∆θk 2 ) yk+1=yk + ∆dk sin(θk + ∆θk 2 ) θk+1= θk + ∆θk 3 A.Perception : Position Pr´edite function [x, y, theta] = MajOdom(xk, yk, thetak, delta-dg, delta_dd, L) delta_d = (delta_dg+delta_dd)/2; // Calcule de d´eplacement de centre de robot. delta_theta = (delta_dd-delta_dg)/L; // Calcule d’orientation de centre de robot. x = xk + delta_s*cos(thetak + delta_theta/2); // Mise `a jour sur x y = yk + delta_s*sin(thetak + delta_theta/2); // Mise `a jour sur y theta = thetak + delta_theta; // Mise `a jour sur l’orientation 2
  • 3. – Programmer l’algorithme de mise `a jour de position de robot. – Alimenter l’algorithme par des valeurs initiales. – Analyser le comportement temps r´eel d’agent Perception (Cas Position Pr´ediction). 4 A.Perception : Position Mesur´ee 1. Utiliser le code ”rodo.c” pour mesures odom´etriques. 2. Compiler ”rodo.c” via la commande ”make”. 3. Utiliser la commande ssh root@192.168.1.2 ’./rodo’ > data.txt pour r´ecup´erer les mesures vers un fichier ”data.txt” sur votre machine. 4. Alimenter l’algorithme par des valeurs mesur´ees. 5. Analyser le comportement temps r´eel d’agent Perception (Cas Position Estimation odom´etrique). 5 Perception : Aspect T.R´eel Analyser le comportement temps-r´eel d’agent perception dans le cas des mesures r´eel(estimation odom´etriques) et dans le cas de pr´ediction. 1. La distance entre les centres des deux roues de robot : L=140mm. 2. Relation entre la vitesse en pulsation vers la vitesse en mm/s : 1 pul- se/10ms = 0.678 mm/s. 3. Relation entre la position absolue en pulsation vers la position absolue en mm : 1 pulse = 0.006781 mm. 6 Code source Listing 1 – Code source pour mesures odom´etriques. /∗S . Benaissa ( said . benaissa@ensem . ac .ma) ∗ compiler via la commande : make ∗/ #include <khepera/khepera . h> #include <s i g n a l . h> s t a t i c knet dev t ∗ dsPic ; int maxsp , accinc , accdiv , minspacc , minspdec ; s t a t i c int quitReq =0; int main ( int argc , int ∗argv [ ] ) { int i , lpos , rpos ; long motspeed=200; p r i n t f (”n Read odom n ” ) ; 3
  • 4. // i n i t libkhepera i f ( k h4 i ni t (0 ,NULL)!=0) { p r i n t f (”n i n i t de libkhepera ! nn ” ) ; return −1; } dsPic=knet open (” Khepera4 : dsPic ” ,KNET BUS I2C,0 ,NULL) ; i f ( dsPic==NULL) { p r i n t f (”n prob comm Kh4 dsPic nn ” ) ; return −2; } while (100) { kh4 SetMode ( kh4RegSpeedProfile , dsPic ) ; kh4 set speed ( motspeed , motspeed , dsPic ) ; kh4 get position (&lpos ,&rpos , dsPic ) ; p r i n t f (”n odom : l e f t %ld | right %ld n” , lpos , rpos ) ; } kh4 SetMode ( kh4RegSpeedProfile , dsPic ) ; kh4 set speed (0 ,0 , dsPic ) ; } Listing 2 – Makefile de compilation. # S . Benaissa ( said . benaissa@ensem . ac .ma) # Makefile fo r development with libkhepera .PHONY: clean # Modify t h i s ! #KTEAMHOME = . . / . . KTEAMHOME =˜/khepera4 development # And maybe these LIBKHEPERA ROOT = ${KTEAMHOME}/ libkhepera −1.0 TARGET SYSTEM = khepera −2.6 OE HOME = / usr / l o c a l /khepera4−oetools KHEPERA TOOLS = ${OE HOME} KTEAM KERNEL VERSION = 2.6.24 KTEAM KERNEL HOME = ${KHEPERA TOOLS}/tmp/work/ overo−angstrom−linux−gnueabi / linux−omap3−${KTEAM KERNEL VERSION}−r97 / g i t # And don ’ t touch these ARCH = arm CROSS COMPILE = arm−angstrom−linux−gnueabi− PATH := $ (PATH) : ${KHEPERA TOOLS}/tmp/ sysroots / i686−linux / usr /armv7a/ bin CC = ${CROSS COMPILE} gcc CXX = ${CROSS COMPILE}g++ LD = ${CROSS COMPILE} ld AR = ${CROSS COMPILE} ar 4
  • 5. AS = ${CROSS COMPILE} as INCPATH = ${LIBKHEPERA ROOT}/ build−${TARGET SYSTEM}/ include LIBPATH = ${LIBKHEPERA ROOT}/ build−${TARGET SYSTEM}/ l i b # Pointer to the libkhepera build directory LIBKHEPERA = ${LIBKHEPERA ROOT}/ build−${TARGET SYSTEM} SRCS = $ ( wildcard ∗. c ) OBJS = $ ( patsubst %.c ,%.o , ${SRCS}) INCS = −I ${LIBKHEPERA}/ include LIBS = −L ${LIBKHEPERA}/ l i b −lkhepera −lpthread CFLAGS = −O2 # f or debugging #CFLAGS = −g TARGET = template template−s t a t i c .PHONY: a l l clean depend r odo : r odo . o @echo ” Building $@” $ (CC) −o $@ $? $ (LIBS) $ (INCS) $ (CFLAGS) template−s t a t i c : r odo . o @echo ” Building $@” @$(CC) −o $@ $? $ (LIBS) −s t a t i c $ (INCS) $ (CFLAGS) a l l : ${TARGET} clean : @echo ” Cleaning ” @rm −f ∗. o . depend ${TARGET} ∗˜ depend : @echo ” Building dependencies ” @rm −f . depend @touch . depend @makedepend ${SYS INCLUDES} ${INCS} −Y −f . depend ${SRCS} %.o : %.c @echo ”Compiling $@” $ (CC) $ (INCS) −c $ (CFLAGS) $< −o $@ i f e q ( . depend , $ ( wildcard . depend )) include . depend endif 5