cours syndex

79
8/17/2019 Cours Syndex http://slidepdf.com/reader/full/cours-syndex 1/79 Equipe Système Robotisé de Production S    y    n d    e    x V 5 Syndex Syndex V5 V5 M. Kadri

Upload: larbi-mouchou

Post on 06-Jul-2018

217 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Cours Syndex

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 179

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV5

SyndexSyndex V5V5

M Kadri

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 279

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV5

Plan

bull Introductionbull Meacutethodologie AAA

bull Installationbull Utilisation du logiciel Syndex

bull Macrosbull LinuxIO un interface CC++ avec SynDEx

bull Exemple drsquoapplication Robuter-ULM

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 379

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV5

IntroductionLes travaux meneacutes sur l optimisation des systegravemes

distribueacutes temps reacuteel embarqueacutes comprenaient principalement

1 La modeacutelisation de ces systegravemes agrave laide de la theacuteoriedes graphes

2 Loptimisation dimpleacutementations agrave laide - Dalgorithmes dordonnancement temps reacuteel dans le

cas monoprocesseur

- Dheuristiques de distribution et dordonnancementtemps reacuteel dans le cas multiprocesseur

3 Les techniques de geacuteneacuteration automatique de code pour processeur

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 479

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV5

Introduction

Ces travaux de recherche ont conduit dune part agraveune meacutethodologie appeleacutee AAA pour

Adeacutequation Algorithme-Architecture et dautre part agrave un logiciel de CAO niveau systegraveme pourlimpleacutementation optimiseacutes de systegravemes distribueacutestemps reacuteel embarqueacutes appeleacute SynDEx

Ils eacutevoluent pour permettre la conception

conjointe avec partitionnement logicielmateacuterielautomatique

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 579

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV5

Pla

bull Introduction

bull Meacutethodologie AAA

bull Installation

bull Utilisation du logiciel Syndex

bull Macros

bull LinuxIO un interface CC++ avec SynDEx

bull Exemple drsquoapplication Robuter-ULM

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 679

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV5

M M eacuteeacute thodologie thodologie AAA AAA

bull Systegraveme reacuteactifs temps reacuteel embarqueacuteesbull Algorithme

bull Architecturebull Adeacutequation

bull Impleacutementation

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 779

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV5

Systegravemes reacuteactifs temps reacuteel embarqueacutee

Les systegravemes informatiques eacutetant numeacuteriques les signauxdrsquoES sont discreacutetises aussi bien dans lespace des valeursque dans le temps La preacutecision de la commande deacutepend

de la reacutesolution de cette discreacutetisation

Une analyse matheacutematique utilisant la theacuteorie de la

commande permet de deacuteterminer dune part une bornesupeacuterieure sur le deacutelai qui seacutecoule entre deux eacutechantillons(cadence) et dautre part une borne supeacuterieure sur la dureacutee

du calcul (latence) entre une deacutetection de variation deacutetatde lenvironnement (stimulus) et la variation induite de lacommande (reacuteaction) Cest en ce sens quon parle de

systegravemes reacuteactifs

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 879

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 979

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV5

Meacutethodologie AA

Le but de la meacutethodologie AAA est de trouver lameilleure mise en correspondance entre unalgorithme speacutecifiant les fonctions de

lapplication agrave effectuer et une architecturemulti-composants tout en satisfaisant les

contraintes dembarquabiliteacute et de temps reacuteel dusystegraveme

Il est donc neacutecessaire de preacuteciser le sens que londonnera par la suite aux notions dalgorithmedarchitecture dadeacutequation et dimpleacutementation

Al i h

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 1079

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV5

Algorithme

Un algorithme est connu comme eacutetant une

seacutequence finie dopeacuterations (reacutealisables

en un temps fini et avec un support

mateacuteriel fini) Dans cette meacutethode cette

notion est eacutetendue pour prendre encompte dune part laspect infiniment

reacutepeacutetitif des applications reacuteactives et

dautre part laspect parallegravele neacutecessaire

a leur impleacutementation distribueacutee

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 1179

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV5

Op1

Op2

Op3 Op5

Op4

Op6

Capteur

Actionneur

Nœuds Opeacuteration

Arcs Transfert de donneacutees

Modegravele drsquoalgorithme

A hi

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 1279

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV5

Architecture

Larchitecture correspond auxcaracteacuteristiques structurelles du

calculateur exhibant un paralleacutelismedisponible en geacuteneacuteral moindre que leparalleacutelisme potentiel de lalgorithmePar abus de langage le termearchitecture sera ici souvent utilise dans

son sens geacuteneacuterique pour signifier agrave lafois le calculateur lui-mecircme ainsi queses caracteacuteristiques structurelles

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 1379

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV5

Meacutedia

Pr3

Pr1 Pr2

Pr123 Processeur

Meacutedia Moyen de communication

Arcs Transfert de donneacutees Modegravele drsquoarchitecture

Adeacute ti

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 1479

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

ladeacutequation consiste a mettre en correspondance de

maniegravere efficace lalgorithme et larchitecture pour reacutealiserune impleacutementation optimiseacutee

Adeacutequation

Instruction 1Instruction 2

hellip

hellip

Instruction N

Algorithme

Processeur Seacutequenceur

Architecture MonoprocesseurMeacutedia

Proc 1Seacuteq 1

Proc 2

Seacuteq 2Proc M

Seacuteq M

Architecture Multiprocesseurs

Inst 1

Inst 2

hellip

Inst N

Algorithme

Inst 1

Inst 2

hellip

Inst N

Inst 1

Inst 2

hellip

Inst N

hellip

hellip

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 1579

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Pour permettre une exploitation plus efficace du paralleacutelisme

disponible de larchitecture il faut eacutetendre lordre totaldexeacutecution des instructions du programme seacutequentielmonoprocesseur a un ordre partiel extrait par une analyse de

deacutependances de donneacutees entre instructions exhibant le paralleacutelisme potentiel de lalgorithme et permettant unedistribution et un ordonnancement

bull la distribution consiste agrave effectuer une Partition du graphe delrsquoalgorithme initial en autant drsquoeacuteleacutements de partition qursquoil y adrsquoopeacuterateur dans le graphe de lrsquoarchitecture

bull Lordonnancement consiste pour chaque eacuteleacutement de partition a lineacuteariser (rendre total) lordre partielcorrespondant au sous-graphe associe Cette phase estneacutecessaire car lopeacuterateur auquel on affecte un sous-graphe du

graphe de lalgorithme initial est geacutereacute par une seacutequenceurdrsquoinstruction

I leacute t ti

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 1679

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Impleacutementation

Limpleacutementation consiste a mettre en oeuvre

lalgorithme sur larchitecture cest- a-dire aallouer les ressources mateacuterielles de larchitectureaux opeacuterations de lalgorithme puis a compilercharger puis lancer lexeacutecution du programmecorrespondant sur le calculateur

Pl

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 1779

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Pla

bull Introduction

bull Meacutethodologie AAA

bull Installation

bull Utilisation du logiciel Syndex

bull Macros

bull LinuxIO un interface CC++ avec SynDEx

bull Exemple drsquoapplication Robuter-ULM

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 1879

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Installation Installation

bull Exigences mateacuteriellesbull Exigences logicielles

bull Installation de syndex V5bull Arborescence des reacutepertoires

Exigences mateacuteriels

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 1979

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Exigences mateacuteriels

bull Un PC avec un processeur de la famille Intel(80386 au minimum) ou un AMD

bull Une Carte de bus CAN (celle qui est installeacuteecrsquoest NuDACQ PCI-7841 baseacutee sur un chipPhilips SJA1000)

Ces deux speacutecifications sont suffisants pour ledeacuteveloppement drsquoune application RTAI

bull Pour les robots acquis il faut rajouter les cartes decontrocircle baseacutees sur le microcontrocircleur MPC555

Exigences logicielle

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 2079

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Exigences logiciellebull Un environnement sous Linux (quelle que soit la

distribution)bull Un module RTAI (Real-Time Applications

implementations)bull GNU gcc (outil de compilation)bull GNU binutils (outil pour assembler et eacutediter les liens

bull Le Logiciel Syndex V5bull Les macros de syndex pour

- carte de controcircle Robosoft- microcontrocircleur MPC555 de Motorola- PC sous LinuxRTAI

- Bus CAN

Installation de Syndex V

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 2179

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Installation de Syndex V

bull Creacuteation du reacutepertoire de destinationbull Copier le fichier avec la commande

cp syndex-xxx-linuxtgz rep_desbull Se mettre sous le reacutepertoire de destination puisdeacutecompresser le fichier avec la commande

tar zxvf syndex-xxx-linuxtgzCeci creacuteera sous le reacute pertoire de destination un sou

reacutepertoire de syndex contenant tout les fichiersDans le fichier syndexbat il faut mettre agrave jour lechemin du reacutepertoire de syndex

Arborescences des Reacutepertoire

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 2279

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Arborescences des Reacutepertoire

Apregraves lrsquoinstallation il est impeacuteratif drsquoorganiser lesreacutepertoires pour que lors de lrsquoeacutedition des liens le

fichier makefiles deacutepend de cette organisationLrsquoorganisation qui existe actuellement est comme

suit bull Apps applications deacuteveloppeacutees sous syndexbull Macros macros deacuteveloppeacutes pour syndex V5bull Rtai module rtai ou un lien symbolique qui point vers le reacutepertoire drsquoinstallation

Pla

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 2379

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Pla

bull Introduction

bull Meacutethodologie AAA

bull Installation

bull Utilisation du logiciel Syndex

bull Macros

bull LinuxIO un interface CC++ avec SynDEx

bull Exemple drsquoapplication Robuter-ULM

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 2479

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Utilisation du logicielUtilisation du logicielSyndexSyndex V5V5

bull Utilisation de lrsquointerface

bull Algorithme

bull Architecture

bull Caracteacuteristiques

bull Contraintes

bull Adeacutequation

bull Geacuteneacuteration du code exeacutecutif

SynDE

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 2579

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

SynDESynDEx est un logiciel graphique qui impleacutemente lameacutethodologie AAA et qui offre plusieurs fonctionnaliteacutes

bull Speacutecification drsquoun algorithme drsquoapplication saisi sousforme drsquoun graphe

bull Speacutecification drsquoun graphe drsquoarchitecture multi-composant

bull Heuristique pour la distribution et lrsquoordonnancement delrsquoalgorithme drsquoapplication sur lrsquoarchitecture avecoptimisation du temps de reacuteponse

bull Geacuteneacuteration des exeacutecutifs distribueacutes temps reacuteel

Utilisation de lrsquointerface

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 2679

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Utilisation de l interface

Utilisation de lrsquointerface

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 2779

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Utilisation de l interface

Utilisation de lrsquointerface

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 2879

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Utilisation de l interface

Algorithm

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 2979

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Algorithm

Lrsquoalgorithme est speacutecifieacute comme un graphe orienteacute ougravebull chaque sommet est une opeacuteration qui calcule les sorties

des entreacutees agrave chaque opeacuteration doit correspondre uneseacutequence drsquoinstructions compileacutee seacutepareacutement

bull Chaque arc est une deacutependance de donneacutees entre deux

opeacuterations (ou plus dans le cas de diffusion) c-a-d lasortie drsquoune opeacuteration est lrsquoentreacutee de lrsquoautre opeacuteration(ou de plusieurs autres opeacuterations) une entreacutee peut ecirctreconnecteacutee seulement agrave une sortie de mecircme type dedonneacutees

gor t m

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3079

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

gor t mon distingue 4 types de sommets

Algorithm

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3179

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Algorithmbull Le sommet function possegravede au moins une entreacutee et

une sortie crsquoest une opeacuteration agrave libre effet qui calculeses sorties uniquement agrave partir de ses entreacutees (c-a-d niagrave partir des variables globales ni agrave partir des

preacuteceacutedentes valeurs de ces entreacutees)bull Le sommet extio permet lrsquoacquisitionlrsquoeacutecriture des

entreacuteessorties on distingue trois cas

1 Capteur sans entreacutee agrave chaque reacuteaction sa sortierepreacutesente la valeur lue du capteur

2 Actionneur sans sortie agrave chaque reacuteaction ilenvoi son entreacutee agrave lrsquoactionneur

3 Linux_IO ces des meacutemoires partageacutees qui

permettent le transfert de donneacutees entre syndexet un langage eacutevolueacute

E i S egrave R b i eacute d P d i Algorithm

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3279

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Algorithm

bull Le sommet memory possegravede uniquement uneentreacutee et une sortie crsquoest une opeacuteration agrave effetunique qui met la sortie degraves la premiegravere reacuteaction

agrave une valeur initiale calculeacutee auparavant et puisla sortie de la prochaine reacuteaction nrsquoest que

lrsquoentreacutee de la preacuteceacutedente reacuteactionbull Le sommet constant ne possegravede aucune entreacutee

il calcule sa sortie une seule fois avant la premiegravere reacuteaction puis la sortie demeure la mecircme pour chaque reacuteaction

E i S tegrave R b ti eacute d P d ti Algorithm

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3379

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

AlgorithmPour lrsquoalgorithme chaque sommet est caracteacuteriseacute par

bull Son type geacuteneacuterique (function extio memory constant)bull Un nom unique (tout les sommets doivent avoir des

noms diffeacuterents)bull Son type identifiant sa seacutequence drsquoinstructionsassocieacute

bull Sa liste drsquoarguments ougrave chaque argument est speacutecifieacute par bull Le nombre drsquoentreacuteesortiebull Le type de donneacuteesbull Le nom (tout les arguments doivent avoir des noms

diffeacuterents)

Equipe Systegraveme Robotiseacute de Production Architecture

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3479

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

ArchitectureLrsquoarchitecture est speacutecifieacutee comme un graphe non orienteacute

ougrave bullChaque sommet est une ressource seacutequentielle il y adeux types de sommets

bull processeur crsquoest une ressource de calcul enmesure drsquoexeacutecuter seacutequentiellement les opeacuterationsdrsquoun algorithme il pourrait ecirctre un processeur ou

un circuit inteacutegreacute speacutecialiseacutebull meacutedia crsquoest une ressource de communicationen mesure drsquoexeacutecuter seacutequentiellement un transfertde donneacutees entre les meacutemoires des processeurs quilui sont connecteacutes

bull chaque arc est une connexion bidirectionnelle entreun processeur et un meacutedia

Equipe Systegraveme Robotiseacute de Production Architecture

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3579

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

ArchitecturePour lrsquoarchitecture chaque sommet est caracteacuteriseacute par

bull Un nom uniquebullSon type (processeur or meacutedia)bull Son type identifiant caracteacuteristiques mateacuterielles

bull Sa liste de connecteurs ougrave chaque connecteur est speacutecifieacute par bull son type identifiant le type de meacutedia agrave qui il peut ecirctreconnecteacute

bullUn nom

Equipe Systegraveme Robotiseacute de ProductionCaracteacuter st que

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3679

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Caracteacuter st que Nous distinguons deux cateacutegories de caracteacuteristiques lrsquoune relative

aux opeacuterations et lrsquoune agrave la communication 1 Comment speacutecifier les caracteacuteristiques des opeacuterations sous le menu AdequationAlOp_ArOp on obtient une boite

de dialogue avec

une liste de toutles types de

processeurs et

pour chaque processeur uneliste de tout les

types drsquoopeacuterationsqui peut lesexeacutecuter avec ladureacutee drsquoexeacutecutioncorrespondante

Equipe Systegraveme Robotiseacute de ProductionCaracteacuteristique

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3779

q p y

S y nd

e xV

5

q2 Comment speacutecifier les caracteacuteristiques de communication

sous le menu AdequationAlIO_ArIO on obtient une boitede dialogue avec une liste de tout les types de meacutedia et

pour chaque meacutedia une liste de tout les types de donneacutees

qui peut transfeacuterer avec la dureacutee de transfertcorrespondante

Equipe Systegraveme Robotiseacute de Production Contraintes

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3879

S y nd

e xV

5

Pour contraindre une opeacuteration agrave srsquoexeacutecuter sur un processeur donneacutee

1Seacutelectionner le(s) opeacuteration(s) agrave contraindre2 Seacutelectionner la commande AlgorithmSetConstraint3 Seacutelectionner le processeur qui doit exeacutecute les opeacuterationsseacutelectionneacutees

Pour enlever les contraintes seacutelectionner lrsquoopeacuteration puis exeacutecuterla commande AlgorithmDeleteConstraint

Pour voir sur quel processeur une opeacuteration est y contrainteseacutelectionner lrsquoopeacuteration puis exeacutecuter la commandeAlgorithmShowConstraint le processeur correspondant y sera

seacutelectionneacutePour voir toute les opeacuterations qui sont contraintes sur un processeurseacutelectionner le processeur puis exeacutecuter la commande

ArchitectureShowConstrained du menu les opeacuterationscorrespondantes y seront seacutelectionneacutees

Equipe Systegraveme Robotiseacute de Production A eacutequat o

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3979

S y nd

e xV

5

q

Pour construire le planificateur des opeacuterations dugraphe drsquoalgorithme sur les processeurs du graphedrsquoarchitecture qui effectue automatiquement le routage

des deacutependances de donneacutees inter-processeurs et lacreacuteation et la planification des opeacuterations decommunication sur le meacutedia du graphe drsquoarchitectureon utilise la commande AdequationDoIt

Cette commande creacutee un heuristique qui cherche agraveminimiser le chemin critique du graphe drsquoalgorithme

Equipe Systegraveme Robotiseacute de ProductionGeacuteneacuteration du code exeacutecuti

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4079

S y nd

e xV

5Le code exeacutecutif est la partie qui gegravere les ressources

mateacuterielles pour les allouer aux besoins de lrsquoalgorithmedrsquoapplication Les ressources agrave allouer sont

1 Les espaces meacutemoires des processeurs2 Le temps des seacutequences drsquoinstructions3 Le temps des meacutedia de communication

Gracircce agrave la meacutethodologie AAA et le logiciel Syndexlrsquoutilisateur est exempte drsquoeacutecrire du code pour geacuterer ces

ressources Donc par simple exeacutecution de la commandeAdequationGenExec un code distribueacute pour chaque processeur est automatiquement geacuteneacutereacute Ce code est en

fait un exeacutecutif geacuteneacutereacute sur mesure pour lrsquoalgorithme etlrsquoarchitecture

Equipe Systegraveme Robotiseacute de ProductionGeacuteneacuteration du code exeacutecuti

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4179

S y nd

e xV5

Pour chaque processeur de lrsquoarchitecture un fichier

source macro-exeacutecutif m4 avec le mecircme nom estgeacuteneacutereacute plus un macro-makefile ayant le mecircme nom quecelui de lrsquoapplication Chacun de ces fichiers doit ecirctre

transcrit par le macro-processeur GNU M4 (assembleurC) Cette transcription deacutepend de plusieurs fichiers

1 Fichier syndexm4x qui deacutefini les macrosgeacuteneacuteriques de syndex2 Fichier processorTypem4x qui deacutefini les macros

de bas niveau du processeur3 Fichier applicationNamem4x qui deacutefini les macros

speacutecifiques agrave lrsquoapplication

4 Fichier mediaTypem4x qui deacutefini les macros decommunication de bas niveau du type de media

Equipe Systegraveme Robotiseacute de ProductionCreacuteat on rsquoapp cat on

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4279

S y nd

e xV5 Arborescence des reacutepertoires Rep_travail

Applicationmacros

~rtai

Eacutevolution de lrsquoapplication

Phase 1

Edition des macros(C ou Assembleur)

+GNUmakefile

Phase 2

Edition du graphe

(Algorithme amp

Architecteure)

Phase 3

Compilation amp Exeacutecution

Equipe Systegraveme Robotiseacute de ProductionSeacutequence de compilation de Synde

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4379

S y nd

e xV5

Equipe Systegraveme Robotiseacute de Production Plan

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4479

S y nd

e xV5

bull Introduction

bull Meacutethodologie AAA

bull Installation

bull Utilisation du logiciel Syndex

bull Macros

bull LinuxIO un interface CC++ avec SynDEx

bull Exemple drsquoapplication Robuter-ULM

Equipe Systegraveme Robotiseacute de Production

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4579

S y nd

e xV5

Macros Macros

bull Deacutefinition

bull Types de macros

bull Carte Robosoft MPC555

bull Macros Geacuteneacuterique MPC555

bull Macros speacutecifique Robosoftbull Macros de Communication

bull Macros drsquoapplicationbull Structure du fichier Macro

Equipe Systegraveme Robotiseacute de Production Deacutefinition

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4679

S y nd

e xV5

Un macro-processeur est un programme qui consommeen entreacutee une chaicircne de caractegraveres (texte source) la

traite seacutequentiellement en substituant chaque sous-chaicircne qursquoil reconnaicirct (Appel de macro) par unechaicircne correspondante de substitution ( Deacutefinition de

macro) qursquoil traite agrave nouveau jusqursquoagrave ce qursquoil nrsquo y ait plus de substitution possible et qui produit en sortie lachaicircne de caractegraveres traiteacutee

Equipe Systegraveme Robotiseacute de Productionypes e macrosL diffeacute t di ti t d d

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4779

S y nd

e xV5

Les diffeacuterents macros se distinguent en deux grandes

classes bull Macros geacuteneacuteriques

en geacuteneacuteral ceux sont des macros non destineacutes agraveecirctre utiliser directement par lrsquointerface syndexmais plutocirct utiliseacutees pour la programmation

drsquoautres macros (macros MPC555)bull Macros utilisateurs

macros utiliseacutes directement par syndex ils sontspeacutecifiques agrave lrsquoapplication (macros decommunication macros speacutecifiques robosoft

macros speacutecifiques agrave lrsquoapplication)

Equipe Systegraveme Robotiseacute de ProductionCarte Robosoft MPC555La carte Robosoft MPC555 est conccedilue pour la commande de robot de veacutehicule

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4879

S y nd

e xV5

(1) Connecteur du chip MPC555(2) Alimentation continue(3) Interface BDM (Basic Debug Interface)(4) Entreacute Analogique (Joystickhellip)(5) EntreacuteSortie logiques(6) Ligne seacuterie Synchrone (Codeur absolu)(7) Ligne seacuterie Asynchrone (Port 0)

(8) Ligne seacuterie Asynchrone (Port 1)(9) Connecteur du bus CAN (Port 0)(10) Connecteur du bus CAN (Port 1)(11) Axe 1(13) Axe 2(14) Axe 3(15) Axe 4

La carte Robosoft MPC555 est conccedilue pour la commande de robot de veacutehiculeeacutelectrique ou toute autre machine Elle permet de commander un axe gracircce agrave

lrsquoajout drsquoune carte fille le controcircle srsquoeacutetend jusqursquoagrave 4 axesCette carte est baseacutee sur le microcontrocircleur MPC555 32-bit de MotorolaElle peut opeacuterer agrave une freacutequence

de 40 MHz Divers signauxlogique et analogique peuventecirctre utiliser pour lrsquoacquisition deet la commande de mateacuteriel Les

sorties disponibles peuvent ecirctreanalogique ou PWMOn y trouve

Equipe Systegraveme Robotiseacute de ProductionArchitecture du MPC555

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4979

S y nd

e xV5

Equipe Systegraveme Robotiseacute de Productionaract r st ques u

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5079

S y nd

e xV5

Equipe Systegraveme Robotiseacute de Productionacros n r quesbull GPIO (General-Purpose InputOutput)

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5179

S y nd

e xV5

GPIO (General Purpose InputOutput)ce macro utilise le module USIU qui lui fourni 64 pins pour desentreacuteessorties numeacuteriques ordinaires (IO de la carte Robosoft lirelrsquoeacutetat de la pince envoi de commande agrave la pince lire les alarmes)

bull QADC (Queued Analog to Digital Converter)en utilisant le module QADC ce macro permet la conversion drsquounsignal analogique en entreacutee en un signal numeacuterique multi-niveaux(lire les donneacutees du capteur drsquoeacuteffort du joystick)

bull MIOS (Modular InputOutput System)Le module MIOS fourni 16 pins drsquoES numeacuteriques Sur la carte deRobosoft tous les pins sont en sortie Les 16 pins sont reacutepartiscomme suit

utilisateurs reacuteserveacutes

les pins de 0 agrave 11 sont reacuteserveacutes car ils sont preacutevus agrave ecirctre utiliseacutes pour unmateacuteriel particulier Mais si ce mateacuteriel nrsquoest pas utiliseacute lrsquoutilisateur peut lesutiliser librement

15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

Equipe Systegraveme Robotiseacute de ProductionMacros Geacuteneacuter ques MPC55

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5279

S y nd

e xV5

bull PWM (Pulse width Modulation)utilise le module MIOS (pins de 4-7 pour la direction des moteurset de 8-11 pour la validation) pour la commande des actionneursnumeacuteriques en PWM

bull TPU (Time Processor Units)les macros lieacutes agrave ce module permettent la lecture des encodeurs

increacutementauxbull QSPI (Queued Serial Peripheral Interface)

ce module fait partie du module QSMCM et les macros lieacutes servent

agrave son initialisation pour une communication avec du mateacuterielsexternes via le bus seacuterie synchrone

Equipe Systegraveme Robotiseacute de ProductionMacros Geacuteneacuter ques MPC55

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5379

S y nd

e x

V5 bull Serial port support (Polling implementation)

le MPC555 comprend dans le module QSMCM une interface decommunication seacuterie SCI qui permet la communication avec dumateacuteriels externes via un bus seacuterie asynchrone Plusieurs macros

sont lieacutes agrave cette interface pour initialiser et eacutetablir la communicationbull Serial port support (interrupt handling implementation)

pour la mecircme interface SCI du module QSMCM pour cette

meacutethode drsquoimpleacutementation les macros lieacutes initialisent et eacutetablissentla communication en mode par interruption ce qui permet dedeacutetecter lrsquoarriveacutee des donneacutees sur le port seacuterie au lieu de le scruter

en permanence

tous ces macros on les retrouvent dans le fichier 555m4x

Equipe Systegraveme Robotiseacute de ProductionMacros Speacutec ques Ro oso tles macros suivants sont deacutedieacutes agrave la carte de Robosoft MPC555

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5479

S y nd

e x

V5

bull Initialisation de la carte Robosoftmain_ini_() macro ne doit pas ecirctre utiliser par les programmateursdu fait qursquoelle sert qursquoagrave initialiser la carte robosoft Macro interne agrave

syndex dont lrsquoappel est automatique lors de geacuteneacuteration drsquoexeacutecutifMPC555

bull DAC (Digital to Analog Converter)

macro permet lrsquoutilisation du convertisseur de carte robosoft via lemodule MIOs en utilisant les pins de 0 agrave 2

bull LED (on-bord LED interface)

macro permet la gestion de la LED de la carte robosoft connecteacuteeau module QSPI (pin PCS1)

bull SPI absolute encoder

macro permet lrsquoutilisation lrsquointerface du codeur absolu de la carterobosoft connecteacute au module QSPI

Equipe Systegraveme Robotiseacute de ProductionMacros Speacutec ques Ro oso tbull Motor amplifier direction

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5579

S y nd

e x

V5

Motor amplifier directionmacro qui permet de geacuterer la direction des moteurs

bull Motor power amplifier validationles moteurs embarqueacutes sur les robots sont eacutequipeacutes de freins

eacutelectriquement commandable Ce macro permet drsquoenvoyer unsignal drsquoinhibition pour deacutebloquer les freins

bull Watch dog

pour des raisons de seacutecuriteacute un meacutecanisme mateacuteriel que robosofta ajouteacute sur la carte Ce watch-dog vise agrave stopper lrsquoactiviteacute dumoteur en cas ougrave le programme plante Le watch est impleacutementeacute

comme un time-out mateacuteriel Srsquoil nrsquoest pas rafraicircchi peacuteriodiquement il transmet un signal de sortie ce qui enlegraveve lavalidation de lrsquoamplificateur de puissance donc lrsquoarrecirct dumouvement

ces macros se trouvent dans le fichier RSBm4x

Equipe Systegraveme Robotiseacute de Production

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5679

S y nd

e x

V5

Macros de Communicationchaque meacutedia de communication (bus CAN ) est une ressourceseacutequentielle ougrave les transferts de donneacutees entre processeurs doiventsuivre un certain ordre Donc ce macro de communication sert agravedeacutefinir cet ordre et agrave identifier le protocole de communication lecodagedeacutecodage de lrsquoinformation et la synchronisation

on trouve ces macros dans le fichier CANm4x

Macros drsquoapplicationce genre de macros sont speacutecifique au mateacuteriel en question et aussiagrave lrsquoapplication en particulier Ce sont des macros utilisateurs

on trouve ces macros dans le fichier Application_namem4x

Equipe Systegraveme Robotiseacute de Production

section include (pour inclure drsquoautres fichiers macro agrave utiliseStructure du fichier macr

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5779

S y nd

e x

V5

section define (pour tous les macros utilisateurs)MGC lsquoINITrsquo (MGC Macro Generation Context variable)

divert (declaration) (deacutebut du macro)

(deacuteclaration des variables des meacutemoires et des csts

divert (o)

MGC lsquolooprsquocode en assembleur code en C

dnl (commentaires)

MGC lsquoENDrsquo dnl (fin de la macros)divert lsquo lsquo dnl

macros MPC555meacutemoire MPC555

constante MPC555

macros RTAImeacutemoire RTAI

constante RTAI

Equipe Systegraveme Robotiseacute de Production Plan

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5879

S y nd

e x

V5

bull Introduction

bull Meacutethodologie AAA

bull Installationbull Utilisation du logiciel Syndex

bull Macrosbull LinuxIO un interface CC++ avec SynDEx

bull Exemple drsquoapplication Robuter-ULM

Equipe Systegraveme Robotiseacute de Production

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5979

S y nd

e x

V5

LinuxIO LinuxIO une interface une interface

CC++ avecCC++ avec SynDExSynDEx

bull Principe de basebull Utilisation de linuxIO_ par syndex

bull Utilisation de linuxIO_ par un programmeCC++

Equipe Systegraveme Robotiseacute de ProductionPrincipe de baseSyndex fourni une interface graphique pour la conception

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6079

S y nd

e x

V5

Syndex fourni une interface graphique pour la conception

drsquoapplications Par contre des fois nous avons besoin drsquoautresfonctionnaliteacutes non disponibles donc il faut les creacuteer Cependantgeacuteneacuterer des macros pour syndex srsquoavegravere difficile pour certains du

fait qursquoil faut avoir une bonne connaissance de la programmation bas niveau Dans ce cas lrsquoutilisation de linux_IO trouve sa placedans un contexte particulier interfacer des applications CC++utilisateurs avec des applications embarqueacutees temps reacuteeldeacuteveloppeacutees sous syndex

Par rapport agrave ce contexte de programmation lrsquoorganisation du

deacuteveloppement des applications est structureacutee en deux parties 1 Application haut niveau

2 Application bas niveau

Equipe Systegraveme Robotiseacute de ProductionPrincipe de base

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6179

S y nd

e x

V5

En reacutesumeacute lrsquoapplicationutilisateur contient une

partie haut niveau enCC++ et une partie basniveau sous syndex avecun eacutechange de donneacuteesentre les deux partie en

utilisant la couche RTAIde linux

Equipe Systegraveme Robotiseacute de Production pp cat on aut n veauOn entend application haut

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6279

S y nd

e x

V5

niveau tout programmecomme la planification detrajectoires strateacutegies de

navigation etc hellipLrsquoeacutechange de donneacutees sefait par le biais desmeacutemoires partageacutees quifont parti du noyau RTAI

et de lrsquoespace utilisateursde Linux

Toute ressource preacutesente sur la carte Robosoft peutecirctre partageacutee sans aune restriction

Equipe Systegraveme Robotiseacute de Production pp cat on as n veauUne application bas niveau

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6379

S y nd

e x

V5

Une application bas niveau

est un programme conccedilusous syndex comme lacommande des moteurs la

lecture des capteurs etc hellipLes ressources mateacuteriellessont controcircler par plusieurs

cartes MPC555 Ces cartessrsquoeacutechangent des donneacuteesvia le bus CAN Donc ES

est prise en charge par lasource logicielle deacutedieacutee quisrsquoexeacutecute dans les cartes MPC555 puis la couche RTAI

est utiliseacute pour la mise agrave jour de meacutemoires partageacutees pour lrsquoespace utilisateurs linux drsquoeacutechange de donneacutees

Equipe Systegraveme Robotiseacute de ProductionUtilisation de linux_IO par syndex

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6479

S y nd

e x

V5

Equipe Systegraveme Robotiseacute de ProductionUtilisation de linux_IO par syndex

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6579

S y nd

e x

V5

Equipe Systegraveme Robotiseacute de Production

5

Utilisation de linux_IO par syndex

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6679

S y nd

e x

V5

Degraves que la conception de lrsquoapplication sous syndex esttermineacutee et apregraves compilation (AdequationDo it +GenExec) un fichier drsquoentecircte sous le nom de linioh est

automatiquement geacuteneacutereacute Ce fichier contient lesinformations neacutecessaires pour acceacuteder aux entreacutees enlecture et aux sorties en eacutecriture des opeacuterations linuxIO_

inseacutereacutees dans le graphe drsquoalgorithme Le contenu de cefichier est organiseacute en plusieurs parties une pour chaqueopeacuteration linux_IO preacutesente dans le graphe

Equipe Systegraveme Robotiseacute de Production

5

Utilisation de linux_IO par syndex linioh auto-generated C users API frontend

C i h b f 2001 i i i b f f

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6779

S y nd

e x

V5 Copyright Robosoft 2001 Pierre Pomiers ltpierrerobosoftfrgt

LINUX IO shared memory data segments

define SEG0_BASE 0x10000typedef struct

int js_spd_o0

int js_str_o0

int enc_R_o0int enc_L_o0

double odo_X_o0

double odo_Y_o0

double odo_T_o0int spd_R_o0

int spd_L_o0

int time

unsigned char sem shm_seg0_def

Nom du segment de meacutemoire partageacutee pour notre opeacuteration linuxIO_

7 signaux drsquoentreacutees Ces valeurs sonten lecture et sont peacuteriodiquementrafraicircchies par RTAI

2 signaux de sorties Ces valeurs sonten eacutecriture et sont peacuteriodiquementrafraicircchies par RTAI

Equipe Systegraveme Robotiseacute de Production

5

Crsquoest une eacutetape tregraves facile il suffit drsquoinclure le fichier drsquoentecirctelinio h dans le code du fichier en CC++ comme suit

Utilisation de linuxIO_ par un programme CC+

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6879

S y nd

e x

V5 linioh dans le code du fichier en CC++ comme suit

include linioh

include ltrtai_shmhgt

static shm_seg0_def seg0

shm_seg0_def robot

seg0 = rtai_malloc (SEG0_BASE sizeof (shm_seg0_def))

if (seg0-gtsem = 0) bcopy (seg0 amprobot sizeof (shm_seg0_def))helliphelliphellip

helliphelliphellip bcopy (amprobot seg0 sizeof (shm_seg0_def))helliphelliphelliphelliphelliphellip

rtai_free (SEG0_BASE seg0)

fichier drsquoentecircte de la meacutemoire partageacutee fourni dans la couche RTAI de linux

Initialisation du segment SEG0_BASE Allocation de lameacutemoire pointeacutee

par seg0

Lecture des donneacutees provenant du bas

niveau

Mise agrave jours du segment de meacutemoire partageacutee

Libeacuterer le segment de meacutemoire alloueacute

Equipe Systegraveme Robotiseacute de Production

5

Plan

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6979

S y nd e x

V5

bull Introductionbull Meacutethodologie AAA

bull Installationbull Utilisation du logiciel Syndex

bull Macrosbull LinuxIO un interface CC++ avec SynDEx

bull Exemple drsquoapplication Robuter-ULM

Equipe Systegraveme Robotiseacute de Production

V5

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7079

S y nd e x

V5

Exemple dapplication Exemple dapplication Robuter Robuter--ULM ULM

Equipe Systegraveme Robotiseacute de Production

V5

Description Robuter-ULMbull Base mobile (2-RM 2-RF)

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7179

S y nd e x

V

bull Bras ultra-leacuteger 6 axesbull Ceinture 24 capteurs US

bull Capteur drsquoefforts 6 axes

bull Cameacutera CCD monochromeavec carte drsquoacquisition

bull PC embarqueacute MMX 233

bull OS linux redhat 61 avecRTAI V-13

bull 3 bouton drsquoarrecirct drsquourgence

bull 4 batteries 48 VDC 4 X12V 60 Ah

bull Entreacutee Joystick

bull Liaison Ethernet sans fil

Le manipulateur mobile Robuter-ULM comprend

Equipe Systegraveme Robotiseacute de Production

V5

Base Mobilebull dimension

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7279

S y nd e x

V

1025 mm de longueur 680 mm de largueur et 44 cm de hauteurbull Poids environ 150 kg avec les batteriesbull charge jusqursquoagrave 120 kg

bull vitesse de 5cms agrave 125 msbull Moteurs 2 X 300 W DC 48 VDCbull orientation par diffeacuterence de vitesse

bull Preacutecision Position par encodeurs optiquesbull Deux roues motrices diffeacuterentielles et de deux roues follesbull Drsquoune ceinture de 24 capteurs Ultrasons

bull Une carte MPC555 de Robosoft pour le controcircle des deuxmoteurs DC des 2 rouesbull Un systegraveme drsquoodomeacutetrie qui donne la position relative du robot

par rapport agrave son repegravere

Equipe Systegraveme Robotiseacute de Production

V5

bull dimension Faute de documentation

Bras U tra- eacuteger

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7379

S y nd e x

V Faute de documentation

bull Poids moins de 20 kgbull charge 2 kgbull Moteurs 6 moteurs DC

bull gripper pince eacutelectrique 2 doigtsbull Reacutepeacutetabiliteacute +- 1mmbull 3 carte MPC555 de Robosoft lrsquoune pour le capteur drsquoeffort et les

deux autres pour les 6 moteurs + moteur de la pincebull Position encodeur increacutemental

1 2 3 4 5 6Axisrange

plusmn90deg 0-90deg plusmn80deg plusmn100deg plusmn90deg plusmn110deg

vitesse 180degs 180degs 180degs 180degs 180degs 180degs

Equipe Systegraveme Robotiseacute de Production

V5

rc tecture ar ware

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7479

S y nd e x

V

Equipe Systegraveme Robotiseacute de Production

V5

Pro eacutemat quePlusieurs applications peuvent ecirctre impleacutementeacutees sur le robot

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7579

S y nd e x

V

Cependant il faut faire la diffeacuterence entre les applications quidemande lrsquoutilisation de syndex et les applications qui neneacutecessite qursquoune programmation en CC++ Agrave titre drsquoexemple

bull Localisationbull Commande en position

bull Commande en forcebull Navigation

bull Geacuteneacuteration de trajectoire

bull Vision

Equipe Systegraveme Robotiseacute de Production

V5 bull Pince eacutelectrique (TOR)

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7679

S y nd e x

Vq ( )

bull Pince possegravede des ES Logiques

Notre application consiste agrave

bull Recevoir lrsquoeacutetat de la pince (fermeacutee ouverte )

bull Envoyer une commande vers la pince

Capture

drsquoinformation

Open

Close

CommandeMeacutemoire

Partageacutee

Actionneur

Pince Prise de deacutecision Pince

Equipe Systegraveme Robotiseacute de Production

V5

Sc eacutema eacute ectr que

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7779

S y nd e x

Equipe Systegraveme Robotiseacute de Production

V5

Conclusion

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7879

S y nd e x bull Introduction

bull Meacutethodologie AAA

bull Installationbull Utilisation du logiciel Syndex

bull Macrosbull LinuxIO un interface CC++ avec SynDEx

bull Exemple drsquoapplication Robuter-ULM

Equipe Systegraveme Robotiseacute de Production

V5

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7979

S y nd e x

Questions

Page 2: Cours Syndex

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 279

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV5

Plan

bull Introductionbull Meacutethodologie AAA

bull Installationbull Utilisation du logiciel Syndex

bull Macrosbull LinuxIO un interface CC++ avec SynDEx

bull Exemple drsquoapplication Robuter-ULM

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 379

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV5

IntroductionLes travaux meneacutes sur l optimisation des systegravemes

distribueacutes temps reacuteel embarqueacutes comprenaient principalement

1 La modeacutelisation de ces systegravemes agrave laide de la theacuteoriedes graphes

2 Loptimisation dimpleacutementations agrave laide - Dalgorithmes dordonnancement temps reacuteel dans le

cas monoprocesseur

- Dheuristiques de distribution et dordonnancementtemps reacuteel dans le cas multiprocesseur

3 Les techniques de geacuteneacuteration automatique de code pour processeur

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 479

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV5

Introduction

Ces travaux de recherche ont conduit dune part agraveune meacutethodologie appeleacutee AAA pour

Adeacutequation Algorithme-Architecture et dautre part agrave un logiciel de CAO niveau systegraveme pourlimpleacutementation optimiseacutes de systegravemes distribueacutestemps reacuteel embarqueacutes appeleacute SynDEx

Ils eacutevoluent pour permettre la conception

conjointe avec partitionnement logicielmateacuterielautomatique

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 579

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV5

Pla

bull Introduction

bull Meacutethodologie AAA

bull Installation

bull Utilisation du logiciel Syndex

bull Macros

bull LinuxIO un interface CC++ avec SynDEx

bull Exemple drsquoapplication Robuter-ULM

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 679

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV5

M M eacuteeacute thodologie thodologie AAA AAA

bull Systegraveme reacuteactifs temps reacuteel embarqueacuteesbull Algorithme

bull Architecturebull Adeacutequation

bull Impleacutementation

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 779

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV5

Systegravemes reacuteactifs temps reacuteel embarqueacutee

Les systegravemes informatiques eacutetant numeacuteriques les signauxdrsquoES sont discreacutetises aussi bien dans lespace des valeursque dans le temps La preacutecision de la commande deacutepend

de la reacutesolution de cette discreacutetisation

Une analyse matheacutematique utilisant la theacuteorie de la

commande permet de deacuteterminer dune part une bornesupeacuterieure sur le deacutelai qui seacutecoule entre deux eacutechantillons(cadence) et dautre part une borne supeacuterieure sur la dureacutee

du calcul (latence) entre une deacutetection de variation deacutetatde lenvironnement (stimulus) et la variation induite de lacommande (reacuteaction) Cest en ce sens quon parle de

systegravemes reacuteactifs

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 879

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 979

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV5

Meacutethodologie AA

Le but de la meacutethodologie AAA est de trouver lameilleure mise en correspondance entre unalgorithme speacutecifiant les fonctions de

lapplication agrave effectuer et une architecturemulti-composants tout en satisfaisant les

contraintes dembarquabiliteacute et de temps reacuteel dusystegraveme

Il est donc neacutecessaire de preacuteciser le sens que londonnera par la suite aux notions dalgorithmedarchitecture dadeacutequation et dimpleacutementation

Al i h

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 1079

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV5

Algorithme

Un algorithme est connu comme eacutetant une

seacutequence finie dopeacuterations (reacutealisables

en un temps fini et avec un support

mateacuteriel fini) Dans cette meacutethode cette

notion est eacutetendue pour prendre encompte dune part laspect infiniment

reacutepeacutetitif des applications reacuteactives et

dautre part laspect parallegravele neacutecessaire

a leur impleacutementation distribueacutee

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 1179

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV5

Op1

Op2

Op3 Op5

Op4

Op6

Capteur

Actionneur

Nœuds Opeacuteration

Arcs Transfert de donneacutees

Modegravele drsquoalgorithme

A hi

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 1279

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV5

Architecture

Larchitecture correspond auxcaracteacuteristiques structurelles du

calculateur exhibant un paralleacutelismedisponible en geacuteneacuteral moindre que leparalleacutelisme potentiel de lalgorithmePar abus de langage le termearchitecture sera ici souvent utilise dans

son sens geacuteneacuterique pour signifier agrave lafois le calculateur lui-mecircme ainsi queses caracteacuteristiques structurelles

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 1379

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV5

Meacutedia

Pr3

Pr1 Pr2

Pr123 Processeur

Meacutedia Moyen de communication

Arcs Transfert de donneacutees Modegravele drsquoarchitecture

Adeacute ti

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 1479

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

ladeacutequation consiste a mettre en correspondance de

maniegravere efficace lalgorithme et larchitecture pour reacutealiserune impleacutementation optimiseacutee

Adeacutequation

Instruction 1Instruction 2

hellip

hellip

Instruction N

Algorithme

Processeur Seacutequenceur

Architecture MonoprocesseurMeacutedia

Proc 1Seacuteq 1

Proc 2

Seacuteq 2Proc M

Seacuteq M

Architecture Multiprocesseurs

Inst 1

Inst 2

hellip

Inst N

Algorithme

Inst 1

Inst 2

hellip

Inst N

Inst 1

Inst 2

hellip

Inst N

hellip

hellip

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 1579

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Pour permettre une exploitation plus efficace du paralleacutelisme

disponible de larchitecture il faut eacutetendre lordre totaldexeacutecution des instructions du programme seacutequentielmonoprocesseur a un ordre partiel extrait par une analyse de

deacutependances de donneacutees entre instructions exhibant le paralleacutelisme potentiel de lalgorithme et permettant unedistribution et un ordonnancement

bull la distribution consiste agrave effectuer une Partition du graphe delrsquoalgorithme initial en autant drsquoeacuteleacutements de partition qursquoil y adrsquoopeacuterateur dans le graphe de lrsquoarchitecture

bull Lordonnancement consiste pour chaque eacuteleacutement de partition a lineacuteariser (rendre total) lordre partielcorrespondant au sous-graphe associe Cette phase estneacutecessaire car lopeacuterateur auquel on affecte un sous-graphe du

graphe de lalgorithme initial est geacutereacute par une seacutequenceurdrsquoinstruction

I leacute t ti

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 1679

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Impleacutementation

Limpleacutementation consiste a mettre en oeuvre

lalgorithme sur larchitecture cest- a-dire aallouer les ressources mateacuterielles de larchitectureaux opeacuterations de lalgorithme puis a compilercharger puis lancer lexeacutecution du programmecorrespondant sur le calculateur

Pl

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 1779

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Pla

bull Introduction

bull Meacutethodologie AAA

bull Installation

bull Utilisation du logiciel Syndex

bull Macros

bull LinuxIO un interface CC++ avec SynDEx

bull Exemple drsquoapplication Robuter-ULM

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 1879

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Installation Installation

bull Exigences mateacuteriellesbull Exigences logicielles

bull Installation de syndex V5bull Arborescence des reacutepertoires

Exigences mateacuteriels

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 1979

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Exigences mateacuteriels

bull Un PC avec un processeur de la famille Intel(80386 au minimum) ou un AMD

bull Une Carte de bus CAN (celle qui est installeacuteecrsquoest NuDACQ PCI-7841 baseacutee sur un chipPhilips SJA1000)

Ces deux speacutecifications sont suffisants pour ledeacuteveloppement drsquoune application RTAI

bull Pour les robots acquis il faut rajouter les cartes decontrocircle baseacutees sur le microcontrocircleur MPC555

Exigences logicielle

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 2079

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Exigences logiciellebull Un environnement sous Linux (quelle que soit la

distribution)bull Un module RTAI (Real-Time Applications

implementations)bull GNU gcc (outil de compilation)bull GNU binutils (outil pour assembler et eacutediter les liens

bull Le Logiciel Syndex V5bull Les macros de syndex pour

- carte de controcircle Robosoft- microcontrocircleur MPC555 de Motorola- PC sous LinuxRTAI

- Bus CAN

Installation de Syndex V

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 2179

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Installation de Syndex V

bull Creacuteation du reacutepertoire de destinationbull Copier le fichier avec la commande

cp syndex-xxx-linuxtgz rep_desbull Se mettre sous le reacutepertoire de destination puisdeacutecompresser le fichier avec la commande

tar zxvf syndex-xxx-linuxtgzCeci creacuteera sous le reacute pertoire de destination un sou

reacutepertoire de syndex contenant tout les fichiersDans le fichier syndexbat il faut mettre agrave jour lechemin du reacutepertoire de syndex

Arborescences des Reacutepertoire

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 2279

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Arborescences des Reacutepertoire

Apregraves lrsquoinstallation il est impeacuteratif drsquoorganiser lesreacutepertoires pour que lors de lrsquoeacutedition des liens le

fichier makefiles deacutepend de cette organisationLrsquoorganisation qui existe actuellement est comme

suit bull Apps applications deacuteveloppeacutees sous syndexbull Macros macros deacuteveloppeacutes pour syndex V5bull Rtai module rtai ou un lien symbolique qui point vers le reacutepertoire drsquoinstallation

Pla

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 2379

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Pla

bull Introduction

bull Meacutethodologie AAA

bull Installation

bull Utilisation du logiciel Syndex

bull Macros

bull LinuxIO un interface CC++ avec SynDEx

bull Exemple drsquoapplication Robuter-ULM

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 2479

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Utilisation du logicielUtilisation du logicielSyndexSyndex V5V5

bull Utilisation de lrsquointerface

bull Algorithme

bull Architecture

bull Caracteacuteristiques

bull Contraintes

bull Adeacutequation

bull Geacuteneacuteration du code exeacutecutif

SynDE

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 2579

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

SynDESynDEx est un logiciel graphique qui impleacutemente lameacutethodologie AAA et qui offre plusieurs fonctionnaliteacutes

bull Speacutecification drsquoun algorithme drsquoapplication saisi sousforme drsquoun graphe

bull Speacutecification drsquoun graphe drsquoarchitecture multi-composant

bull Heuristique pour la distribution et lrsquoordonnancement delrsquoalgorithme drsquoapplication sur lrsquoarchitecture avecoptimisation du temps de reacuteponse

bull Geacuteneacuteration des exeacutecutifs distribueacutes temps reacuteel

Utilisation de lrsquointerface

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 2679

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Utilisation de l interface

Utilisation de lrsquointerface

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 2779

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Utilisation de l interface

Utilisation de lrsquointerface

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 2879

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Utilisation de l interface

Algorithm

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 2979

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Algorithm

Lrsquoalgorithme est speacutecifieacute comme un graphe orienteacute ougravebull chaque sommet est une opeacuteration qui calcule les sorties

des entreacutees agrave chaque opeacuteration doit correspondre uneseacutequence drsquoinstructions compileacutee seacutepareacutement

bull Chaque arc est une deacutependance de donneacutees entre deux

opeacuterations (ou plus dans le cas de diffusion) c-a-d lasortie drsquoune opeacuteration est lrsquoentreacutee de lrsquoautre opeacuteration(ou de plusieurs autres opeacuterations) une entreacutee peut ecirctreconnecteacutee seulement agrave une sortie de mecircme type dedonneacutees

gor t m

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3079

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

gor t mon distingue 4 types de sommets

Algorithm

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3179

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Algorithmbull Le sommet function possegravede au moins une entreacutee et

une sortie crsquoest une opeacuteration agrave libre effet qui calculeses sorties uniquement agrave partir de ses entreacutees (c-a-d niagrave partir des variables globales ni agrave partir des

preacuteceacutedentes valeurs de ces entreacutees)bull Le sommet extio permet lrsquoacquisitionlrsquoeacutecriture des

entreacuteessorties on distingue trois cas

1 Capteur sans entreacutee agrave chaque reacuteaction sa sortierepreacutesente la valeur lue du capteur

2 Actionneur sans sortie agrave chaque reacuteaction ilenvoi son entreacutee agrave lrsquoactionneur

3 Linux_IO ces des meacutemoires partageacutees qui

permettent le transfert de donneacutees entre syndexet un langage eacutevolueacute

E i S egrave R b i eacute d P d i Algorithm

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3279

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Algorithm

bull Le sommet memory possegravede uniquement uneentreacutee et une sortie crsquoest une opeacuteration agrave effetunique qui met la sortie degraves la premiegravere reacuteaction

agrave une valeur initiale calculeacutee auparavant et puisla sortie de la prochaine reacuteaction nrsquoest que

lrsquoentreacutee de la preacuteceacutedente reacuteactionbull Le sommet constant ne possegravede aucune entreacutee

il calcule sa sortie une seule fois avant la premiegravere reacuteaction puis la sortie demeure la mecircme pour chaque reacuteaction

E i S tegrave R b ti eacute d P d ti Algorithm

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3379

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

AlgorithmPour lrsquoalgorithme chaque sommet est caracteacuteriseacute par

bull Son type geacuteneacuterique (function extio memory constant)bull Un nom unique (tout les sommets doivent avoir des

noms diffeacuterents)bull Son type identifiant sa seacutequence drsquoinstructionsassocieacute

bull Sa liste drsquoarguments ougrave chaque argument est speacutecifieacute par bull Le nombre drsquoentreacuteesortiebull Le type de donneacuteesbull Le nom (tout les arguments doivent avoir des noms

diffeacuterents)

Equipe Systegraveme Robotiseacute de Production Architecture

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3479

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

ArchitectureLrsquoarchitecture est speacutecifieacutee comme un graphe non orienteacute

ougrave bullChaque sommet est une ressource seacutequentielle il y adeux types de sommets

bull processeur crsquoest une ressource de calcul enmesure drsquoexeacutecuter seacutequentiellement les opeacuterationsdrsquoun algorithme il pourrait ecirctre un processeur ou

un circuit inteacutegreacute speacutecialiseacutebull meacutedia crsquoest une ressource de communicationen mesure drsquoexeacutecuter seacutequentiellement un transfertde donneacutees entre les meacutemoires des processeurs quilui sont connecteacutes

bull chaque arc est une connexion bidirectionnelle entreun processeur et un meacutedia

Equipe Systegraveme Robotiseacute de Production Architecture

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3579

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

ArchitecturePour lrsquoarchitecture chaque sommet est caracteacuteriseacute par

bull Un nom uniquebullSon type (processeur or meacutedia)bull Son type identifiant caracteacuteristiques mateacuterielles

bull Sa liste de connecteurs ougrave chaque connecteur est speacutecifieacute par bull son type identifiant le type de meacutedia agrave qui il peut ecirctreconnecteacute

bullUn nom

Equipe Systegraveme Robotiseacute de ProductionCaracteacuter st que

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3679

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Caracteacuter st que Nous distinguons deux cateacutegories de caracteacuteristiques lrsquoune relative

aux opeacuterations et lrsquoune agrave la communication 1 Comment speacutecifier les caracteacuteristiques des opeacuterations sous le menu AdequationAlOp_ArOp on obtient une boite

de dialogue avec

une liste de toutles types de

processeurs et

pour chaque processeur uneliste de tout les

types drsquoopeacuterationsqui peut lesexeacutecuter avec ladureacutee drsquoexeacutecutioncorrespondante

Equipe Systegraveme Robotiseacute de ProductionCaracteacuteristique

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3779

q p y

S y nd

e xV

5

q2 Comment speacutecifier les caracteacuteristiques de communication

sous le menu AdequationAlIO_ArIO on obtient une boitede dialogue avec une liste de tout les types de meacutedia et

pour chaque meacutedia une liste de tout les types de donneacutees

qui peut transfeacuterer avec la dureacutee de transfertcorrespondante

Equipe Systegraveme Robotiseacute de Production Contraintes

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3879

S y nd

e xV

5

Pour contraindre une opeacuteration agrave srsquoexeacutecuter sur un processeur donneacutee

1Seacutelectionner le(s) opeacuteration(s) agrave contraindre2 Seacutelectionner la commande AlgorithmSetConstraint3 Seacutelectionner le processeur qui doit exeacutecute les opeacuterationsseacutelectionneacutees

Pour enlever les contraintes seacutelectionner lrsquoopeacuteration puis exeacutecuterla commande AlgorithmDeleteConstraint

Pour voir sur quel processeur une opeacuteration est y contrainteseacutelectionner lrsquoopeacuteration puis exeacutecuter la commandeAlgorithmShowConstraint le processeur correspondant y sera

seacutelectionneacutePour voir toute les opeacuterations qui sont contraintes sur un processeurseacutelectionner le processeur puis exeacutecuter la commande

ArchitectureShowConstrained du menu les opeacuterationscorrespondantes y seront seacutelectionneacutees

Equipe Systegraveme Robotiseacute de Production A eacutequat o

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3979

S y nd

e xV

5

q

Pour construire le planificateur des opeacuterations dugraphe drsquoalgorithme sur les processeurs du graphedrsquoarchitecture qui effectue automatiquement le routage

des deacutependances de donneacutees inter-processeurs et lacreacuteation et la planification des opeacuterations decommunication sur le meacutedia du graphe drsquoarchitectureon utilise la commande AdequationDoIt

Cette commande creacutee un heuristique qui cherche agraveminimiser le chemin critique du graphe drsquoalgorithme

Equipe Systegraveme Robotiseacute de ProductionGeacuteneacuteration du code exeacutecuti

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4079

S y nd

e xV

5Le code exeacutecutif est la partie qui gegravere les ressources

mateacuterielles pour les allouer aux besoins de lrsquoalgorithmedrsquoapplication Les ressources agrave allouer sont

1 Les espaces meacutemoires des processeurs2 Le temps des seacutequences drsquoinstructions3 Le temps des meacutedia de communication

Gracircce agrave la meacutethodologie AAA et le logiciel Syndexlrsquoutilisateur est exempte drsquoeacutecrire du code pour geacuterer ces

ressources Donc par simple exeacutecution de la commandeAdequationGenExec un code distribueacute pour chaque processeur est automatiquement geacuteneacutereacute Ce code est en

fait un exeacutecutif geacuteneacutereacute sur mesure pour lrsquoalgorithme etlrsquoarchitecture

Equipe Systegraveme Robotiseacute de ProductionGeacuteneacuteration du code exeacutecuti

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4179

S y nd

e xV5

Pour chaque processeur de lrsquoarchitecture un fichier

source macro-exeacutecutif m4 avec le mecircme nom estgeacuteneacutereacute plus un macro-makefile ayant le mecircme nom quecelui de lrsquoapplication Chacun de ces fichiers doit ecirctre

transcrit par le macro-processeur GNU M4 (assembleurC) Cette transcription deacutepend de plusieurs fichiers

1 Fichier syndexm4x qui deacutefini les macrosgeacuteneacuteriques de syndex2 Fichier processorTypem4x qui deacutefini les macros

de bas niveau du processeur3 Fichier applicationNamem4x qui deacutefini les macros

speacutecifiques agrave lrsquoapplication

4 Fichier mediaTypem4x qui deacutefini les macros decommunication de bas niveau du type de media

Equipe Systegraveme Robotiseacute de ProductionCreacuteat on rsquoapp cat on

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4279

S y nd

e xV5 Arborescence des reacutepertoires Rep_travail

Applicationmacros

~rtai

Eacutevolution de lrsquoapplication

Phase 1

Edition des macros(C ou Assembleur)

+GNUmakefile

Phase 2

Edition du graphe

(Algorithme amp

Architecteure)

Phase 3

Compilation amp Exeacutecution

Equipe Systegraveme Robotiseacute de ProductionSeacutequence de compilation de Synde

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4379

S y nd

e xV5

Equipe Systegraveme Robotiseacute de Production Plan

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4479

S y nd

e xV5

bull Introduction

bull Meacutethodologie AAA

bull Installation

bull Utilisation du logiciel Syndex

bull Macros

bull LinuxIO un interface CC++ avec SynDEx

bull Exemple drsquoapplication Robuter-ULM

Equipe Systegraveme Robotiseacute de Production

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4579

S y nd

e xV5

Macros Macros

bull Deacutefinition

bull Types de macros

bull Carte Robosoft MPC555

bull Macros Geacuteneacuterique MPC555

bull Macros speacutecifique Robosoftbull Macros de Communication

bull Macros drsquoapplicationbull Structure du fichier Macro

Equipe Systegraveme Robotiseacute de Production Deacutefinition

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4679

S y nd

e xV5

Un macro-processeur est un programme qui consommeen entreacutee une chaicircne de caractegraveres (texte source) la

traite seacutequentiellement en substituant chaque sous-chaicircne qursquoil reconnaicirct (Appel de macro) par unechaicircne correspondante de substitution ( Deacutefinition de

macro) qursquoil traite agrave nouveau jusqursquoagrave ce qursquoil nrsquo y ait plus de substitution possible et qui produit en sortie lachaicircne de caractegraveres traiteacutee

Equipe Systegraveme Robotiseacute de Productionypes e macrosL diffeacute t di ti t d d

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4779

S y nd

e xV5

Les diffeacuterents macros se distinguent en deux grandes

classes bull Macros geacuteneacuteriques

en geacuteneacuteral ceux sont des macros non destineacutes agraveecirctre utiliser directement par lrsquointerface syndexmais plutocirct utiliseacutees pour la programmation

drsquoautres macros (macros MPC555)bull Macros utilisateurs

macros utiliseacutes directement par syndex ils sontspeacutecifiques agrave lrsquoapplication (macros decommunication macros speacutecifiques robosoft

macros speacutecifiques agrave lrsquoapplication)

Equipe Systegraveme Robotiseacute de ProductionCarte Robosoft MPC555La carte Robosoft MPC555 est conccedilue pour la commande de robot de veacutehicule

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4879

S y nd

e xV5

(1) Connecteur du chip MPC555(2) Alimentation continue(3) Interface BDM (Basic Debug Interface)(4) Entreacute Analogique (Joystickhellip)(5) EntreacuteSortie logiques(6) Ligne seacuterie Synchrone (Codeur absolu)(7) Ligne seacuterie Asynchrone (Port 0)

(8) Ligne seacuterie Asynchrone (Port 1)(9) Connecteur du bus CAN (Port 0)(10) Connecteur du bus CAN (Port 1)(11) Axe 1(13) Axe 2(14) Axe 3(15) Axe 4

La carte Robosoft MPC555 est conccedilue pour la commande de robot de veacutehiculeeacutelectrique ou toute autre machine Elle permet de commander un axe gracircce agrave

lrsquoajout drsquoune carte fille le controcircle srsquoeacutetend jusqursquoagrave 4 axesCette carte est baseacutee sur le microcontrocircleur MPC555 32-bit de MotorolaElle peut opeacuterer agrave une freacutequence

de 40 MHz Divers signauxlogique et analogique peuventecirctre utiliser pour lrsquoacquisition deet la commande de mateacuteriel Les

sorties disponibles peuvent ecirctreanalogique ou PWMOn y trouve

Equipe Systegraveme Robotiseacute de ProductionArchitecture du MPC555

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4979

S y nd

e xV5

Equipe Systegraveme Robotiseacute de Productionaract r st ques u

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5079

S y nd

e xV5

Equipe Systegraveme Robotiseacute de Productionacros n r quesbull GPIO (General-Purpose InputOutput)

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5179

S y nd

e xV5

GPIO (General Purpose InputOutput)ce macro utilise le module USIU qui lui fourni 64 pins pour desentreacuteessorties numeacuteriques ordinaires (IO de la carte Robosoft lirelrsquoeacutetat de la pince envoi de commande agrave la pince lire les alarmes)

bull QADC (Queued Analog to Digital Converter)en utilisant le module QADC ce macro permet la conversion drsquounsignal analogique en entreacutee en un signal numeacuterique multi-niveaux(lire les donneacutees du capteur drsquoeacuteffort du joystick)

bull MIOS (Modular InputOutput System)Le module MIOS fourni 16 pins drsquoES numeacuteriques Sur la carte deRobosoft tous les pins sont en sortie Les 16 pins sont reacutepartiscomme suit

utilisateurs reacuteserveacutes

les pins de 0 agrave 11 sont reacuteserveacutes car ils sont preacutevus agrave ecirctre utiliseacutes pour unmateacuteriel particulier Mais si ce mateacuteriel nrsquoest pas utiliseacute lrsquoutilisateur peut lesutiliser librement

15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

Equipe Systegraveme Robotiseacute de ProductionMacros Geacuteneacuter ques MPC55

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5279

S y nd

e xV5

bull PWM (Pulse width Modulation)utilise le module MIOS (pins de 4-7 pour la direction des moteurset de 8-11 pour la validation) pour la commande des actionneursnumeacuteriques en PWM

bull TPU (Time Processor Units)les macros lieacutes agrave ce module permettent la lecture des encodeurs

increacutementauxbull QSPI (Queued Serial Peripheral Interface)

ce module fait partie du module QSMCM et les macros lieacutes servent

agrave son initialisation pour une communication avec du mateacuterielsexternes via le bus seacuterie synchrone

Equipe Systegraveme Robotiseacute de ProductionMacros Geacuteneacuter ques MPC55

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5379

S y nd

e x

V5 bull Serial port support (Polling implementation)

le MPC555 comprend dans le module QSMCM une interface decommunication seacuterie SCI qui permet la communication avec dumateacuteriels externes via un bus seacuterie asynchrone Plusieurs macros

sont lieacutes agrave cette interface pour initialiser et eacutetablir la communicationbull Serial port support (interrupt handling implementation)

pour la mecircme interface SCI du module QSMCM pour cette

meacutethode drsquoimpleacutementation les macros lieacutes initialisent et eacutetablissentla communication en mode par interruption ce qui permet dedeacutetecter lrsquoarriveacutee des donneacutees sur le port seacuterie au lieu de le scruter

en permanence

tous ces macros on les retrouvent dans le fichier 555m4x

Equipe Systegraveme Robotiseacute de ProductionMacros Speacutec ques Ro oso tles macros suivants sont deacutedieacutes agrave la carte de Robosoft MPC555

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5479

S y nd

e x

V5

bull Initialisation de la carte Robosoftmain_ini_() macro ne doit pas ecirctre utiliser par les programmateursdu fait qursquoelle sert qursquoagrave initialiser la carte robosoft Macro interne agrave

syndex dont lrsquoappel est automatique lors de geacuteneacuteration drsquoexeacutecutifMPC555

bull DAC (Digital to Analog Converter)

macro permet lrsquoutilisation du convertisseur de carte robosoft via lemodule MIOs en utilisant les pins de 0 agrave 2

bull LED (on-bord LED interface)

macro permet la gestion de la LED de la carte robosoft connecteacuteeau module QSPI (pin PCS1)

bull SPI absolute encoder

macro permet lrsquoutilisation lrsquointerface du codeur absolu de la carterobosoft connecteacute au module QSPI

Equipe Systegraveme Robotiseacute de ProductionMacros Speacutec ques Ro oso tbull Motor amplifier direction

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5579

S y nd

e x

V5

Motor amplifier directionmacro qui permet de geacuterer la direction des moteurs

bull Motor power amplifier validationles moteurs embarqueacutes sur les robots sont eacutequipeacutes de freins

eacutelectriquement commandable Ce macro permet drsquoenvoyer unsignal drsquoinhibition pour deacutebloquer les freins

bull Watch dog

pour des raisons de seacutecuriteacute un meacutecanisme mateacuteriel que robosofta ajouteacute sur la carte Ce watch-dog vise agrave stopper lrsquoactiviteacute dumoteur en cas ougrave le programme plante Le watch est impleacutementeacute

comme un time-out mateacuteriel Srsquoil nrsquoest pas rafraicircchi peacuteriodiquement il transmet un signal de sortie ce qui enlegraveve lavalidation de lrsquoamplificateur de puissance donc lrsquoarrecirct dumouvement

ces macros se trouvent dans le fichier RSBm4x

Equipe Systegraveme Robotiseacute de Production

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5679

S y nd

e x

V5

Macros de Communicationchaque meacutedia de communication (bus CAN ) est une ressourceseacutequentielle ougrave les transferts de donneacutees entre processeurs doiventsuivre un certain ordre Donc ce macro de communication sert agravedeacutefinir cet ordre et agrave identifier le protocole de communication lecodagedeacutecodage de lrsquoinformation et la synchronisation

on trouve ces macros dans le fichier CANm4x

Macros drsquoapplicationce genre de macros sont speacutecifique au mateacuteriel en question et aussiagrave lrsquoapplication en particulier Ce sont des macros utilisateurs

on trouve ces macros dans le fichier Application_namem4x

Equipe Systegraveme Robotiseacute de Production

section include (pour inclure drsquoautres fichiers macro agrave utiliseStructure du fichier macr

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5779

S y nd

e x

V5

section define (pour tous les macros utilisateurs)MGC lsquoINITrsquo (MGC Macro Generation Context variable)

divert (declaration) (deacutebut du macro)

(deacuteclaration des variables des meacutemoires et des csts

divert (o)

MGC lsquolooprsquocode en assembleur code en C

dnl (commentaires)

MGC lsquoENDrsquo dnl (fin de la macros)divert lsquo lsquo dnl

macros MPC555meacutemoire MPC555

constante MPC555

macros RTAImeacutemoire RTAI

constante RTAI

Equipe Systegraveme Robotiseacute de Production Plan

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5879

S y nd

e x

V5

bull Introduction

bull Meacutethodologie AAA

bull Installationbull Utilisation du logiciel Syndex

bull Macrosbull LinuxIO un interface CC++ avec SynDEx

bull Exemple drsquoapplication Robuter-ULM

Equipe Systegraveme Robotiseacute de Production

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5979

S y nd

e x

V5

LinuxIO LinuxIO une interface une interface

CC++ avecCC++ avec SynDExSynDEx

bull Principe de basebull Utilisation de linuxIO_ par syndex

bull Utilisation de linuxIO_ par un programmeCC++

Equipe Systegraveme Robotiseacute de ProductionPrincipe de baseSyndex fourni une interface graphique pour la conception

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6079

S y nd

e x

V5

Syndex fourni une interface graphique pour la conception

drsquoapplications Par contre des fois nous avons besoin drsquoautresfonctionnaliteacutes non disponibles donc il faut les creacuteer Cependantgeacuteneacuterer des macros pour syndex srsquoavegravere difficile pour certains du

fait qursquoil faut avoir une bonne connaissance de la programmation bas niveau Dans ce cas lrsquoutilisation de linux_IO trouve sa placedans un contexte particulier interfacer des applications CC++utilisateurs avec des applications embarqueacutees temps reacuteeldeacuteveloppeacutees sous syndex

Par rapport agrave ce contexte de programmation lrsquoorganisation du

deacuteveloppement des applications est structureacutee en deux parties 1 Application haut niveau

2 Application bas niveau

Equipe Systegraveme Robotiseacute de ProductionPrincipe de base

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6179

S y nd

e x

V5

En reacutesumeacute lrsquoapplicationutilisateur contient une

partie haut niveau enCC++ et une partie basniveau sous syndex avecun eacutechange de donneacuteesentre les deux partie en

utilisant la couche RTAIde linux

Equipe Systegraveme Robotiseacute de Production pp cat on aut n veauOn entend application haut

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6279

S y nd

e x

V5

niveau tout programmecomme la planification detrajectoires strateacutegies de

navigation etc hellipLrsquoeacutechange de donneacutees sefait par le biais desmeacutemoires partageacutees quifont parti du noyau RTAI

et de lrsquoespace utilisateursde Linux

Toute ressource preacutesente sur la carte Robosoft peutecirctre partageacutee sans aune restriction

Equipe Systegraveme Robotiseacute de Production pp cat on as n veauUne application bas niveau

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6379

S y nd

e x

V5

Une application bas niveau

est un programme conccedilusous syndex comme lacommande des moteurs la

lecture des capteurs etc hellipLes ressources mateacuteriellessont controcircler par plusieurs

cartes MPC555 Ces cartessrsquoeacutechangent des donneacuteesvia le bus CAN Donc ES

est prise en charge par lasource logicielle deacutedieacutee quisrsquoexeacutecute dans les cartes MPC555 puis la couche RTAI

est utiliseacute pour la mise agrave jour de meacutemoires partageacutees pour lrsquoespace utilisateurs linux drsquoeacutechange de donneacutees

Equipe Systegraveme Robotiseacute de ProductionUtilisation de linux_IO par syndex

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6479

S y nd

e x

V5

Equipe Systegraveme Robotiseacute de ProductionUtilisation de linux_IO par syndex

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6579

S y nd

e x

V5

Equipe Systegraveme Robotiseacute de Production

5

Utilisation de linux_IO par syndex

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6679

S y nd

e x

V5

Degraves que la conception de lrsquoapplication sous syndex esttermineacutee et apregraves compilation (AdequationDo it +GenExec) un fichier drsquoentecircte sous le nom de linioh est

automatiquement geacuteneacutereacute Ce fichier contient lesinformations neacutecessaires pour acceacuteder aux entreacutees enlecture et aux sorties en eacutecriture des opeacuterations linuxIO_

inseacutereacutees dans le graphe drsquoalgorithme Le contenu de cefichier est organiseacute en plusieurs parties une pour chaqueopeacuteration linux_IO preacutesente dans le graphe

Equipe Systegraveme Robotiseacute de Production

5

Utilisation de linux_IO par syndex linioh auto-generated C users API frontend

C i h b f 2001 i i i b f f

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6779

S y nd

e x

V5 Copyright Robosoft 2001 Pierre Pomiers ltpierrerobosoftfrgt

LINUX IO shared memory data segments

define SEG0_BASE 0x10000typedef struct

int js_spd_o0

int js_str_o0

int enc_R_o0int enc_L_o0

double odo_X_o0

double odo_Y_o0

double odo_T_o0int spd_R_o0

int spd_L_o0

int time

unsigned char sem shm_seg0_def

Nom du segment de meacutemoire partageacutee pour notre opeacuteration linuxIO_

7 signaux drsquoentreacutees Ces valeurs sonten lecture et sont peacuteriodiquementrafraicircchies par RTAI

2 signaux de sorties Ces valeurs sonten eacutecriture et sont peacuteriodiquementrafraicircchies par RTAI

Equipe Systegraveme Robotiseacute de Production

5

Crsquoest une eacutetape tregraves facile il suffit drsquoinclure le fichier drsquoentecirctelinio h dans le code du fichier en CC++ comme suit

Utilisation de linuxIO_ par un programme CC+

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6879

S y nd

e x

V5 linioh dans le code du fichier en CC++ comme suit

include linioh

include ltrtai_shmhgt

static shm_seg0_def seg0

shm_seg0_def robot

seg0 = rtai_malloc (SEG0_BASE sizeof (shm_seg0_def))

if (seg0-gtsem = 0) bcopy (seg0 amprobot sizeof (shm_seg0_def))helliphelliphellip

helliphelliphellip bcopy (amprobot seg0 sizeof (shm_seg0_def))helliphelliphelliphelliphelliphellip

rtai_free (SEG0_BASE seg0)

fichier drsquoentecircte de la meacutemoire partageacutee fourni dans la couche RTAI de linux

Initialisation du segment SEG0_BASE Allocation de lameacutemoire pointeacutee

par seg0

Lecture des donneacutees provenant du bas

niveau

Mise agrave jours du segment de meacutemoire partageacutee

Libeacuterer le segment de meacutemoire alloueacute

Equipe Systegraveme Robotiseacute de Production

5

Plan

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6979

S y nd e x

V5

bull Introductionbull Meacutethodologie AAA

bull Installationbull Utilisation du logiciel Syndex

bull Macrosbull LinuxIO un interface CC++ avec SynDEx

bull Exemple drsquoapplication Robuter-ULM

Equipe Systegraveme Robotiseacute de Production

V5

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7079

S y nd e x

V5

Exemple dapplication Exemple dapplication Robuter Robuter--ULM ULM

Equipe Systegraveme Robotiseacute de Production

V5

Description Robuter-ULMbull Base mobile (2-RM 2-RF)

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7179

S y nd e x

V

bull Bras ultra-leacuteger 6 axesbull Ceinture 24 capteurs US

bull Capteur drsquoefforts 6 axes

bull Cameacutera CCD monochromeavec carte drsquoacquisition

bull PC embarqueacute MMX 233

bull OS linux redhat 61 avecRTAI V-13

bull 3 bouton drsquoarrecirct drsquourgence

bull 4 batteries 48 VDC 4 X12V 60 Ah

bull Entreacutee Joystick

bull Liaison Ethernet sans fil

Le manipulateur mobile Robuter-ULM comprend

Equipe Systegraveme Robotiseacute de Production

V5

Base Mobilebull dimension

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7279

S y nd e x

V

1025 mm de longueur 680 mm de largueur et 44 cm de hauteurbull Poids environ 150 kg avec les batteriesbull charge jusqursquoagrave 120 kg

bull vitesse de 5cms agrave 125 msbull Moteurs 2 X 300 W DC 48 VDCbull orientation par diffeacuterence de vitesse

bull Preacutecision Position par encodeurs optiquesbull Deux roues motrices diffeacuterentielles et de deux roues follesbull Drsquoune ceinture de 24 capteurs Ultrasons

bull Une carte MPC555 de Robosoft pour le controcircle des deuxmoteurs DC des 2 rouesbull Un systegraveme drsquoodomeacutetrie qui donne la position relative du robot

par rapport agrave son repegravere

Equipe Systegraveme Robotiseacute de Production

V5

bull dimension Faute de documentation

Bras U tra- eacuteger

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7379

S y nd e x

V Faute de documentation

bull Poids moins de 20 kgbull charge 2 kgbull Moteurs 6 moteurs DC

bull gripper pince eacutelectrique 2 doigtsbull Reacutepeacutetabiliteacute +- 1mmbull 3 carte MPC555 de Robosoft lrsquoune pour le capteur drsquoeffort et les

deux autres pour les 6 moteurs + moteur de la pincebull Position encodeur increacutemental

1 2 3 4 5 6Axisrange

plusmn90deg 0-90deg plusmn80deg plusmn100deg plusmn90deg plusmn110deg

vitesse 180degs 180degs 180degs 180degs 180degs 180degs

Equipe Systegraveme Robotiseacute de Production

V5

rc tecture ar ware

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7479

S y nd e x

V

Equipe Systegraveme Robotiseacute de Production

V5

Pro eacutemat quePlusieurs applications peuvent ecirctre impleacutementeacutees sur le robot

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7579

S y nd e x

V

Cependant il faut faire la diffeacuterence entre les applications quidemande lrsquoutilisation de syndex et les applications qui neneacutecessite qursquoune programmation en CC++ Agrave titre drsquoexemple

bull Localisationbull Commande en position

bull Commande en forcebull Navigation

bull Geacuteneacuteration de trajectoire

bull Vision

Equipe Systegraveme Robotiseacute de Production

V5 bull Pince eacutelectrique (TOR)

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7679

S y nd e x

Vq ( )

bull Pince possegravede des ES Logiques

Notre application consiste agrave

bull Recevoir lrsquoeacutetat de la pince (fermeacutee ouverte )

bull Envoyer une commande vers la pince

Capture

drsquoinformation

Open

Close

CommandeMeacutemoire

Partageacutee

Actionneur

Pince Prise de deacutecision Pince

Equipe Systegraveme Robotiseacute de Production

V5

Sc eacutema eacute ectr que

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7779

S y nd e x

Equipe Systegraveme Robotiseacute de Production

V5

Conclusion

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7879

S y nd e x bull Introduction

bull Meacutethodologie AAA

bull Installationbull Utilisation du logiciel Syndex

bull Macrosbull LinuxIO un interface CC++ avec SynDEx

bull Exemple drsquoapplication Robuter-ULM

Equipe Systegraveme Robotiseacute de Production

V5

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7979

S y nd e x

Questions

Page 3: Cours Syndex

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 379

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV5

IntroductionLes travaux meneacutes sur l optimisation des systegravemes

distribueacutes temps reacuteel embarqueacutes comprenaient principalement

1 La modeacutelisation de ces systegravemes agrave laide de la theacuteoriedes graphes

2 Loptimisation dimpleacutementations agrave laide - Dalgorithmes dordonnancement temps reacuteel dans le

cas monoprocesseur

- Dheuristiques de distribution et dordonnancementtemps reacuteel dans le cas multiprocesseur

3 Les techniques de geacuteneacuteration automatique de code pour processeur

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 479

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV5

Introduction

Ces travaux de recherche ont conduit dune part agraveune meacutethodologie appeleacutee AAA pour

Adeacutequation Algorithme-Architecture et dautre part agrave un logiciel de CAO niveau systegraveme pourlimpleacutementation optimiseacutes de systegravemes distribueacutestemps reacuteel embarqueacutes appeleacute SynDEx

Ils eacutevoluent pour permettre la conception

conjointe avec partitionnement logicielmateacuterielautomatique

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 579

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV5

Pla

bull Introduction

bull Meacutethodologie AAA

bull Installation

bull Utilisation du logiciel Syndex

bull Macros

bull LinuxIO un interface CC++ avec SynDEx

bull Exemple drsquoapplication Robuter-ULM

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 679

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV5

M M eacuteeacute thodologie thodologie AAA AAA

bull Systegraveme reacuteactifs temps reacuteel embarqueacuteesbull Algorithme

bull Architecturebull Adeacutequation

bull Impleacutementation

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 779

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV5

Systegravemes reacuteactifs temps reacuteel embarqueacutee

Les systegravemes informatiques eacutetant numeacuteriques les signauxdrsquoES sont discreacutetises aussi bien dans lespace des valeursque dans le temps La preacutecision de la commande deacutepend

de la reacutesolution de cette discreacutetisation

Une analyse matheacutematique utilisant la theacuteorie de la

commande permet de deacuteterminer dune part une bornesupeacuterieure sur le deacutelai qui seacutecoule entre deux eacutechantillons(cadence) et dautre part une borne supeacuterieure sur la dureacutee

du calcul (latence) entre une deacutetection de variation deacutetatde lenvironnement (stimulus) et la variation induite de lacommande (reacuteaction) Cest en ce sens quon parle de

systegravemes reacuteactifs

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 879

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 979

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV5

Meacutethodologie AA

Le but de la meacutethodologie AAA est de trouver lameilleure mise en correspondance entre unalgorithme speacutecifiant les fonctions de

lapplication agrave effectuer et une architecturemulti-composants tout en satisfaisant les

contraintes dembarquabiliteacute et de temps reacuteel dusystegraveme

Il est donc neacutecessaire de preacuteciser le sens que londonnera par la suite aux notions dalgorithmedarchitecture dadeacutequation et dimpleacutementation

Al i h

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 1079

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV5

Algorithme

Un algorithme est connu comme eacutetant une

seacutequence finie dopeacuterations (reacutealisables

en un temps fini et avec un support

mateacuteriel fini) Dans cette meacutethode cette

notion est eacutetendue pour prendre encompte dune part laspect infiniment

reacutepeacutetitif des applications reacuteactives et

dautre part laspect parallegravele neacutecessaire

a leur impleacutementation distribueacutee

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 1179

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV5

Op1

Op2

Op3 Op5

Op4

Op6

Capteur

Actionneur

Nœuds Opeacuteration

Arcs Transfert de donneacutees

Modegravele drsquoalgorithme

A hi

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 1279

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV5

Architecture

Larchitecture correspond auxcaracteacuteristiques structurelles du

calculateur exhibant un paralleacutelismedisponible en geacuteneacuteral moindre que leparalleacutelisme potentiel de lalgorithmePar abus de langage le termearchitecture sera ici souvent utilise dans

son sens geacuteneacuterique pour signifier agrave lafois le calculateur lui-mecircme ainsi queses caracteacuteristiques structurelles

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 1379

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV5

Meacutedia

Pr3

Pr1 Pr2

Pr123 Processeur

Meacutedia Moyen de communication

Arcs Transfert de donneacutees Modegravele drsquoarchitecture

Adeacute ti

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 1479

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

ladeacutequation consiste a mettre en correspondance de

maniegravere efficace lalgorithme et larchitecture pour reacutealiserune impleacutementation optimiseacutee

Adeacutequation

Instruction 1Instruction 2

hellip

hellip

Instruction N

Algorithme

Processeur Seacutequenceur

Architecture MonoprocesseurMeacutedia

Proc 1Seacuteq 1

Proc 2

Seacuteq 2Proc M

Seacuteq M

Architecture Multiprocesseurs

Inst 1

Inst 2

hellip

Inst N

Algorithme

Inst 1

Inst 2

hellip

Inst N

Inst 1

Inst 2

hellip

Inst N

hellip

hellip

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 1579

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Pour permettre une exploitation plus efficace du paralleacutelisme

disponible de larchitecture il faut eacutetendre lordre totaldexeacutecution des instructions du programme seacutequentielmonoprocesseur a un ordre partiel extrait par une analyse de

deacutependances de donneacutees entre instructions exhibant le paralleacutelisme potentiel de lalgorithme et permettant unedistribution et un ordonnancement

bull la distribution consiste agrave effectuer une Partition du graphe delrsquoalgorithme initial en autant drsquoeacuteleacutements de partition qursquoil y adrsquoopeacuterateur dans le graphe de lrsquoarchitecture

bull Lordonnancement consiste pour chaque eacuteleacutement de partition a lineacuteariser (rendre total) lordre partielcorrespondant au sous-graphe associe Cette phase estneacutecessaire car lopeacuterateur auquel on affecte un sous-graphe du

graphe de lalgorithme initial est geacutereacute par une seacutequenceurdrsquoinstruction

I leacute t ti

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 1679

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Impleacutementation

Limpleacutementation consiste a mettre en oeuvre

lalgorithme sur larchitecture cest- a-dire aallouer les ressources mateacuterielles de larchitectureaux opeacuterations de lalgorithme puis a compilercharger puis lancer lexeacutecution du programmecorrespondant sur le calculateur

Pl

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 1779

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Pla

bull Introduction

bull Meacutethodologie AAA

bull Installation

bull Utilisation du logiciel Syndex

bull Macros

bull LinuxIO un interface CC++ avec SynDEx

bull Exemple drsquoapplication Robuter-ULM

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 1879

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Installation Installation

bull Exigences mateacuteriellesbull Exigences logicielles

bull Installation de syndex V5bull Arborescence des reacutepertoires

Exigences mateacuteriels

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 1979

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Exigences mateacuteriels

bull Un PC avec un processeur de la famille Intel(80386 au minimum) ou un AMD

bull Une Carte de bus CAN (celle qui est installeacuteecrsquoest NuDACQ PCI-7841 baseacutee sur un chipPhilips SJA1000)

Ces deux speacutecifications sont suffisants pour ledeacuteveloppement drsquoune application RTAI

bull Pour les robots acquis il faut rajouter les cartes decontrocircle baseacutees sur le microcontrocircleur MPC555

Exigences logicielle

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 2079

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Exigences logiciellebull Un environnement sous Linux (quelle que soit la

distribution)bull Un module RTAI (Real-Time Applications

implementations)bull GNU gcc (outil de compilation)bull GNU binutils (outil pour assembler et eacutediter les liens

bull Le Logiciel Syndex V5bull Les macros de syndex pour

- carte de controcircle Robosoft- microcontrocircleur MPC555 de Motorola- PC sous LinuxRTAI

- Bus CAN

Installation de Syndex V

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 2179

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Installation de Syndex V

bull Creacuteation du reacutepertoire de destinationbull Copier le fichier avec la commande

cp syndex-xxx-linuxtgz rep_desbull Se mettre sous le reacutepertoire de destination puisdeacutecompresser le fichier avec la commande

tar zxvf syndex-xxx-linuxtgzCeci creacuteera sous le reacute pertoire de destination un sou

reacutepertoire de syndex contenant tout les fichiersDans le fichier syndexbat il faut mettre agrave jour lechemin du reacutepertoire de syndex

Arborescences des Reacutepertoire

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 2279

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Arborescences des Reacutepertoire

Apregraves lrsquoinstallation il est impeacuteratif drsquoorganiser lesreacutepertoires pour que lors de lrsquoeacutedition des liens le

fichier makefiles deacutepend de cette organisationLrsquoorganisation qui existe actuellement est comme

suit bull Apps applications deacuteveloppeacutees sous syndexbull Macros macros deacuteveloppeacutes pour syndex V5bull Rtai module rtai ou un lien symbolique qui point vers le reacutepertoire drsquoinstallation

Pla

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 2379

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Pla

bull Introduction

bull Meacutethodologie AAA

bull Installation

bull Utilisation du logiciel Syndex

bull Macros

bull LinuxIO un interface CC++ avec SynDEx

bull Exemple drsquoapplication Robuter-ULM

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 2479

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Utilisation du logicielUtilisation du logicielSyndexSyndex V5V5

bull Utilisation de lrsquointerface

bull Algorithme

bull Architecture

bull Caracteacuteristiques

bull Contraintes

bull Adeacutequation

bull Geacuteneacuteration du code exeacutecutif

SynDE

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 2579

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

SynDESynDEx est un logiciel graphique qui impleacutemente lameacutethodologie AAA et qui offre plusieurs fonctionnaliteacutes

bull Speacutecification drsquoun algorithme drsquoapplication saisi sousforme drsquoun graphe

bull Speacutecification drsquoun graphe drsquoarchitecture multi-composant

bull Heuristique pour la distribution et lrsquoordonnancement delrsquoalgorithme drsquoapplication sur lrsquoarchitecture avecoptimisation du temps de reacuteponse

bull Geacuteneacuteration des exeacutecutifs distribueacutes temps reacuteel

Utilisation de lrsquointerface

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 2679

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Utilisation de l interface

Utilisation de lrsquointerface

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 2779

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Utilisation de l interface

Utilisation de lrsquointerface

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 2879

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Utilisation de l interface

Algorithm

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 2979

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Algorithm

Lrsquoalgorithme est speacutecifieacute comme un graphe orienteacute ougravebull chaque sommet est une opeacuteration qui calcule les sorties

des entreacutees agrave chaque opeacuteration doit correspondre uneseacutequence drsquoinstructions compileacutee seacutepareacutement

bull Chaque arc est une deacutependance de donneacutees entre deux

opeacuterations (ou plus dans le cas de diffusion) c-a-d lasortie drsquoune opeacuteration est lrsquoentreacutee de lrsquoautre opeacuteration(ou de plusieurs autres opeacuterations) une entreacutee peut ecirctreconnecteacutee seulement agrave une sortie de mecircme type dedonneacutees

gor t m

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3079

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

gor t mon distingue 4 types de sommets

Algorithm

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3179

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Algorithmbull Le sommet function possegravede au moins une entreacutee et

une sortie crsquoest une opeacuteration agrave libre effet qui calculeses sorties uniquement agrave partir de ses entreacutees (c-a-d niagrave partir des variables globales ni agrave partir des

preacuteceacutedentes valeurs de ces entreacutees)bull Le sommet extio permet lrsquoacquisitionlrsquoeacutecriture des

entreacuteessorties on distingue trois cas

1 Capteur sans entreacutee agrave chaque reacuteaction sa sortierepreacutesente la valeur lue du capteur

2 Actionneur sans sortie agrave chaque reacuteaction ilenvoi son entreacutee agrave lrsquoactionneur

3 Linux_IO ces des meacutemoires partageacutees qui

permettent le transfert de donneacutees entre syndexet un langage eacutevolueacute

E i S egrave R b i eacute d P d i Algorithm

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3279

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Algorithm

bull Le sommet memory possegravede uniquement uneentreacutee et une sortie crsquoest une opeacuteration agrave effetunique qui met la sortie degraves la premiegravere reacuteaction

agrave une valeur initiale calculeacutee auparavant et puisla sortie de la prochaine reacuteaction nrsquoest que

lrsquoentreacutee de la preacuteceacutedente reacuteactionbull Le sommet constant ne possegravede aucune entreacutee

il calcule sa sortie une seule fois avant la premiegravere reacuteaction puis la sortie demeure la mecircme pour chaque reacuteaction

E i S tegrave R b ti eacute d P d ti Algorithm

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3379

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

AlgorithmPour lrsquoalgorithme chaque sommet est caracteacuteriseacute par

bull Son type geacuteneacuterique (function extio memory constant)bull Un nom unique (tout les sommets doivent avoir des

noms diffeacuterents)bull Son type identifiant sa seacutequence drsquoinstructionsassocieacute

bull Sa liste drsquoarguments ougrave chaque argument est speacutecifieacute par bull Le nombre drsquoentreacuteesortiebull Le type de donneacuteesbull Le nom (tout les arguments doivent avoir des noms

diffeacuterents)

Equipe Systegraveme Robotiseacute de Production Architecture

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3479

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

ArchitectureLrsquoarchitecture est speacutecifieacutee comme un graphe non orienteacute

ougrave bullChaque sommet est une ressource seacutequentielle il y adeux types de sommets

bull processeur crsquoest une ressource de calcul enmesure drsquoexeacutecuter seacutequentiellement les opeacuterationsdrsquoun algorithme il pourrait ecirctre un processeur ou

un circuit inteacutegreacute speacutecialiseacutebull meacutedia crsquoest une ressource de communicationen mesure drsquoexeacutecuter seacutequentiellement un transfertde donneacutees entre les meacutemoires des processeurs quilui sont connecteacutes

bull chaque arc est une connexion bidirectionnelle entreun processeur et un meacutedia

Equipe Systegraveme Robotiseacute de Production Architecture

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3579

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

ArchitecturePour lrsquoarchitecture chaque sommet est caracteacuteriseacute par

bull Un nom uniquebullSon type (processeur or meacutedia)bull Son type identifiant caracteacuteristiques mateacuterielles

bull Sa liste de connecteurs ougrave chaque connecteur est speacutecifieacute par bull son type identifiant le type de meacutedia agrave qui il peut ecirctreconnecteacute

bullUn nom

Equipe Systegraveme Robotiseacute de ProductionCaracteacuter st que

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3679

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Caracteacuter st que Nous distinguons deux cateacutegories de caracteacuteristiques lrsquoune relative

aux opeacuterations et lrsquoune agrave la communication 1 Comment speacutecifier les caracteacuteristiques des opeacuterations sous le menu AdequationAlOp_ArOp on obtient une boite

de dialogue avec

une liste de toutles types de

processeurs et

pour chaque processeur uneliste de tout les

types drsquoopeacuterationsqui peut lesexeacutecuter avec ladureacutee drsquoexeacutecutioncorrespondante

Equipe Systegraveme Robotiseacute de ProductionCaracteacuteristique

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3779

q p y

S y nd

e xV

5

q2 Comment speacutecifier les caracteacuteristiques de communication

sous le menu AdequationAlIO_ArIO on obtient une boitede dialogue avec une liste de tout les types de meacutedia et

pour chaque meacutedia une liste de tout les types de donneacutees

qui peut transfeacuterer avec la dureacutee de transfertcorrespondante

Equipe Systegraveme Robotiseacute de Production Contraintes

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3879

S y nd

e xV

5

Pour contraindre une opeacuteration agrave srsquoexeacutecuter sur un processeur donneacutee

1Seacutelectionner le(s) opeacuteration(s) agrave contraindre2 Seacutelectionner la commande AlgorithmSetConstraint3 Seacutelectionner le processeur qui doit exeacutecute les opeacuterationsseacutelectionneacutees

Pour enlever les contraintes seacutelectionner lrsquoopeacuteration puis exeacutecuterla commande AlgorithmDeleteConstraint

Pour voir sur quel processeur une opeacuteration est y contrainteseacutelectionner lrsquoopeacuteration puis exeacutecuter la commandeAlgorithmShowConstraint le processeur correspondant y sera

seacutelectionneacutePour voir toute les opeacuterations qui sont contraintes sur un processeurseacutelectionner le processeur puis exeacutecuter la commande

ArchitectureShowConstrained du menu les opeacuterationscorrespondantes y seront seacutelectionneacutees

Equipe Systegraveme Robotiseacute de Production A eacutequat o

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3979

S y nd

e xV

5

q

Pour construire le planificateur des opeacuterations dugraphe drsquoalgorithme sur les processeurs du graphedrsquoarchitecture qui effectue automatiquement le routage

des deacutependances de donneacutees inter-processeurs et lacreacuteation et la planification des opeacuterations decommunication sur le meacutedia du graphe drsquoarchitectureon utilise la commande AdequationDoIt

Cette commande creacutee un heuristique qui cherche agraveminimiser le chemin critique du graphe drsquoalgorithme

Equipe Systegraveme Robotiseacute de ProductionGeacuteneacuteration du code exeacutecuti

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4079

S y nd

e xV

5Le code exeacutecutif est la partie qui gegravere les ressources

mateacuterielles pour les allouer aux besoins de lrsquoalgorithmedrsquoapplication Les ressources agrave allouer sont

1 Les espaces meacutemoires des processeurs2 Le temps des seacutequences drsquoinstructions3 Le temps des meacutedia de communication

Gracircce agrave la meacutethodologie AAA et le logiciel Syndexlrsquoutilisateur est exempte drsquoeacutecrire du code pour geacuterer ces

ressources Donc par simple exeacutecution de la commandeAdequationGenExec un code distribueacute pour chaque processeur est automatiquement geacuteneacutereacute Ce code est en

fait un exeacutecutif geacuteneacutereacute sur mesure pour lrsquoalgorithme etlrsquoarchitecture

Equipe Systegraveme Robotiseacute de ProductionGeacuteneacuteration du code exeacutecuti

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4179

S y nd

e xV5

Pour chaque processeur de lrsquoarchitecture un fichier

source macro-exeacutecutif m4 avec le mecircme nom estgeacuteneacutereacute plus un macro-makefile ayant le mecircme nom quecelui de lrsquoapplication Chacun de ces fichiers doit ecirctre

transcrit par le macro-processeur GNU M4 (assembleurC) Cette transcription deacutepend de plusieurs fichiers

1 Fichier syndexm4x qui deacutefini les macrosgeacuteneacuteriques de syndex2 Fichier processorTypem4x qui deacutefini les macros

de bas niveau du processeur3 Fichier applicationNamem4x qui deacutefini les macros

speacutecifiques agrave lrsquoapplication

4 Fichier mediaTypem4x qui deacutefini les macros decommunication de bas niveau du type de media

Equipe Systegraveme Robotiseacute de ProductionCreacuteat on rsquoapp cat on

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4279

S y nd

e xV5 Arborescence des reacutepertoires Rep_travail

Applicationmacros

~rtai

Eacutevolution de lrsquoapplication

Phase 1

Edition des macros(C ou Assembleur)

+GNUmakefile

Phase 2

Edition du graphe

(Algorithme amp

Architecteure)

Phase 3

Compilation amp Exeacutecution

Equipe Systegraveme Robotiseacute de ProductionSeacutequence de compilation de Synde

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4379

S y nd

e xV5

Equipe Systegraveme Robotiseacute de Production Plan

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4479

S y nd

e xV5

bull Introduction

bull Meacutethodologie AAA

bull Installation

bull Utilisation du logiciel Syndex

bull Macros

bull LinuxIO un interface CC++ avec SynDEx

bull Exemple drsquoapplication Robuter-ULM

Equipe Systegraveme Robotiseacute de Production

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4579

S y nd

e xV5

Macros Macros

bull Deacutefinition

bull Types de macros

bull Carte Robosoft MPC555

bull Macros Geacuteneacuterique MPC555

bull Macros speacutecifique Robosoftbull Macros de Communication

bull Macros drsquoapplicationbull Structure du fichier Macro

Equipe Systegraveme Robotiseacute de Production Deacutefinition

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4679

S y nd

e xV5

Un macro-processeur est un programme qui consommeen entreacutee une chaicircne de caractegraveres (texte source) la

traite seacutequentiellement en substituant chaque sous-chaicircne qursquoil reconnaicirct (Appel de macro) par unechaicircne correspondante de substitution ( Deacutefinition de

macro) qursquoil traite agrave nouveau jusqursquoagrave ce qursquoil nrsquo y ait plus de substitution possible et qui produit en sortie lachaicircne de caractegraveres traiteacutee

Equipe Systegraveme Robotiseacute de Productionypes e macrosL diffeacute t di ti t d d

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4779

S y nd

e xV5

Les diffeacuterents macros se distinguent en deux grandes

classes bull Macros geacuteneacuteriques

en geacuteneacuteral ceux sont des macros non destineacutes agraveecirctre utiliser directement par lrsquointerface syndexmais plutocirct utiliseacutees pour la programmation

drsquoautres macros (macros MPC555)bull Macros utilisateurs

macros utiliseacutes directement par syndex ils sontspeacutecifiques agrave lrsquoapplication (macros decommunication macros speacutecifiques robosoft

macros speacutecifiques agrave lrsquoapplication)

Equipe Systegraveme Robotiseacute de ProductionCarte Robosoft MPC555La carte Robosoft MPC555 est conccedilue pour la commande de robot de veacutehicule

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4879

S y nd

e xV5

(1) Connecteur du chip MPC555(2) Alimentation continue(3) Interface BDM (Basic Debug Interface)(4) Entreacute Analogique (Joystickhellip)(5) EntreacuteSortie logiques(6) Ligne seacuterie Synchrone (Codeur absolu)(7) Ligne seacuterie Asynchrone (Port 0)

(8) Ligne seacuterie Asynchrone (Port 1)(9) Connecteur du bus CAN (Port 0)(10) Connecteur du bus CAN (Port 1)(11) Axe 1(13) Axe 2(14) Axe 3(15) Axe 4

La carte Robosoft MPC555 est conccedilue pour la commande de robot de veacutehiculeeacutelectrique ou toute autre machine Elle permet de commander un axe gracircce agrave

lrsquoajout drsquoune carte fille le controcircle srsquoeacutetend jusqursquoagrave 4 axesCette carte est baseacutee sur le microcontrocircleur MPC555 32-bit de MotorolaElle peut opeacuterer agrave une freacutequence

de 40 MHz Divers signauxlogique et analogique peuventecirctre utiliser pour lrsquoacquisition deet la commande de mateacuteriel Les

sorties disponibles peuvent ecirctreanalogique ou PWMOn y trouve

Equipe Systegraveme Robotiseacute de ProductionArchitecture du MPC555

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4979

S y nd

e xV5

Equipe Systegraveme Robotiseacute de Productionaract r st ques u

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5079

S y nd

e xV5

Equipe Systegraveme Robotiseacute de Productionacros n r quesbull GPIO (General-Purpose InputOutput)

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5179

S y nd

e xV5

GPIO (General Purpose InputOutput)ce macro utilise le module USIU qui lui fourni 64 pins pour desentreacuteessorties numeacuteriques ordinaires (IO de la carte Robosoft lirelrsquoeacutetat de la pince envoi de commande agrave la pince lire les alarmes)

bull QADC (Queued Analog to Digital Converter)en utilisant le module QADC ce macro permet la conversion drsquounsignal analogique en entreacutee en un signal numeacuterique multi-niveaux(lire les donneacutees du capteur drsquoeacuteffort du joystick)

bull MIOS (Modular InputOutput System)Le module MIOS fourni 16 pins drsquoES numeacuteriques Sur la carte deRobosoft tous les pins sont en sortie Les 16 pins sont reacutepartiscomme suit

utilisateurs reacuteserveacutes

les pins de 0 agrave 11 sont reacuteserveacutes car ils sont preacutevus agrave ecirctre utiliseacutes pour unmateacuteriel particulier Mais si ce mateacuteriel nrsquoest pas utiliseacute lrsquoutilisateur peut lesutiliser librement

15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

Equipe Systegraveme Robotiseacute de ProductionMacros Geacuteneacuter ques MPC55

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5279

S y nd

e xV5

bull PWM (Pulse width Modulation)utilise le module MIOS (pins de 4-7 pour la direction des moteurset de 8-11 pour la validation) pour la commande des actionneursnumeacuteriques en PWM

bull TPU (Time Processor Units)les macros lieacutes agrave ce module permettent la lecture des encodeurs

increacutementauxbull QSPI (Queued Serial Peripheral Interface)

ce module fait partie du module QSMCM et les macros lieacutes servent

agrave son initialisation pour une communication avec du mateacuterielsexternes via le bus seacuterie synchrone

Equipe Systegraveme Robotiseacute de ProductionMacros Geacuteneacuter ques MPC55

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5379

S y nd

e x

V5 bull Serial port support (Polling implementation)

le MPC555 comprend dans le module QSMCM une interface decommunication seacuterie SCI qui permet la communication avec dumateacuteriels externes via un bus seacuterie asynchrone Plusieurs macros

sont lieacutes agrave cette interface pour initialiser et eacutetablir la communicationbull Serial port support (interrupt handling implementation)

pour la mecircme interface SCI du module QSMCM pour cette

meacutethode drsquoimpleacutementation les macros lieacutes initialisent et eacutetablissentla communication en mode par interruption ce qui permet dedeacutetecter lrsquoarriveacutee des donneacutees sur le port seacuterie au lieu de le scruter

en permanence

tous ces macros on les retrouvent dans le fichier 555m4x

Equipe Systegraveme Robotiseacute de ProductionMacros Speacutec ques Ro oso tles macros suivants sont deacutedieacutes agrave la carte de Robosoft MPC555

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5479

S y nd

e x

V5

bull Initialisation de la carte Robosoftmain_ini_() macro ne doit pas ecirctre utiliser par les programmateursdu fait qursquoelle sert qursquoagrave initialiser la carte robosoft Macro interne agrave

syndex dont lrsquoappel est automatique lors de geacuteneacuteration drsquoexeacutecutifMPC555

bull DAC (Digital to Analog Converter)

macro permet lrsquoutilisation du convertisseur de carte robosoft via lemodule MIOs en utilisant les pins de 0 agrave 2

bull LED (on-bord LED interface)

macro permet la gestion de la LED de la carte robosoft connecteacuteeau module QSPI (pin PCS1)

bull SPI absolute encoder

macro permet lrsquoutilisation lrsquointerface du codeur absolu de la carterobosoft connecteacute au module QSPI

Equipe Systegraveme Robotiseacute de ProductionMacros Speacutec ques Ro oso tbull Motor amplifier direction

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5579

S y nd

e x

V5

Motor amplifier directionmacro qui permet de geacuterer la direction des moteurs

bull Motor power amplifier validationles moteurs embarqueacutes sur les robots sont eacutequipeacutes de freins

eacutelectriquement commandable Ce macro permet drsquoenvoyer unsignal drsquoinhibition pour deacutebloquer les freins

bull Watch dog

pour des raisons de seacutecuriteacute un meacutecanisme mateacuteriel que robosofta ajouteacute sur la carte Ce watch-dog vise agrave stopper lrsquoactiviteacute dumoteur en cas ougrave le programme plante Le watch est impleacutementeacute

comme un time-out mateacuteriel Srsquoil nrsquoest pas rafraicircchi peacuteriodiquement il transmet un signal de sortie ce qui enlegraveve lavalidation de lrsquoamplificateur de puissance donc lrsquoarrecirct dumouvement

ces macros se trouvent dans le fichier RSBm4x

Equipe Systegraveme Robotiseacute de Production

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5679

S y nd

e x

V5

Macros de Communicationchaque meacutedia de communication (bus CAN ) est une ressourceseacutequentielle ougrave les transferts de donneacutees entre processeurs doiventsuivre un certain ordre Donc ce macro de communication sert agravedeacutefinir cet ordre et agrave identifier le protocole de communication lecodagedeacutecodage de lrsquoinformation et la synchronisation

on trouve ces macros dans le fichier CANm4x

Macros drsquoapplicationce genre de macros sont speacutecifique au mateacuteriel en question et aussiagrave lrsquoapplication en particulier Ce sont des macros utilisateurs

on trouve ces macros dans le fichier Application_namem4x

Equipe Systegraveme Robotiseacute de Production

section include (pour inclure drsquoautres fichiers macro agrave utiliseStructure du fichier macr

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5779

S y nd

e x

V5

section define (pour tous les macros utilisateurs)MGC lsquoINITrsquo (MGC Macro Generation Context variable)

divert (declaration) (deacutebut du macro)

(deacuteclaration des variables des meacutemoires et des csts

divert (o)

MGC lsquolooprsquocode en assembleur code en C

dnl (commentaires)

MGC lsquoENDrsquo dnl (fin de la macros)divert lsquo lsquo dnl

macros MPC555meacutemoire MPC555

constante MPC555

macros RTAImeacutemoire RTAI

constante RTAI

Equipe Systegraveme Robotiseacute de Production Plan

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5879

S y nd

e x

V5

bull Introduction

bull Meacutethodologie AAA

bull Installationbull Utilisation du logiciel Syndex

bull Macrosbull LinuxIO un interface CC++ avec SynDEx

bull Exemple drsquoapplication Robuter-ULM

Equipe Systegraveme Robotiseacute de Production

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5979

S y nd

e x

V5

LinuxIO LinuxIO une interface une interface

CC++ avecCC++ avec SynDExSynDEx

bull Principe de basebull Utilisation de linuxIO_ par syndex

bull Utilisation de linuxIO_ par un programmeCC++

Equipe Systegraveme Robotiseacute de ProductionPrincipe de baseSyndex fourni une interface graphique pour la conception

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6079

S y nd

e x

V5

Syndex fourni une interface graphique pour la conception

drsquoapplications Par contre des fois nous avons besoin drsquoautresfonctionnaliteacutes non disponibles donc il faut les creacuteer Cependantgeacuteneacuterer des macros pour syndex srsquoavegravere difficile pour certains du

fait qursquoil faut avoir une bonne connaissance de la programmation bas niveau Dans ce cas lrsquoutilisation de linux_IO trouve sa placedans un contexte particulier interfacer des applications CC++utilisateurs avec des applications embarqueacutees temps reacuteeldeacuteveloppeacutees sous syndex

Par rapport agrave ce contexte de programmation lrsquoorganisation du

deacuteveloppement des applications est structureacutee en deux parties 1 Application haut niveau

2 Application bas niveau

Equipe Systegraveme Robotiseacute de ProductionPrincipe de base

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6179

S y nd

e x

V5

En reacutesumeacute lrsquoapplicationutilisateur contient une

partie haut niveau enCC++ et une partie basniveau sous syndex avecun eacutechange de donneacuteesentre les deux partie en

utilisant la couche RTAIde linux

Equipe Systegraveme Robotiseacute de Production pp cat on aut n veauOn entend application haut

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6279

S y nd

e x

V5

niveau tout programmecomme la planification detrajectoires strateacutegies de

navigation etc hellipLrsquoeacutechange de donneacutees sefait par le biais desmeacutemoires partageacutees quifont parti du noyau RTAI

et de lrsquoespace utilisateursde Linux

Toute ressource preacutesente sur la carte Robosoft peutecirctre partageacutee sans aune restriction

Equipe Systegraveme Robotiseacute de Production pp cat on as n veauUne application bas niveau

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6379

S y nd

e x

V5

Une application bas niveau

est un programme conccedilusous syndex comme lacommande des moteurs la

lecture des capteurs etc hellipLes ressources mateacuteriellessont controcircler par plusieurs

cartes MPC555 Ces cartessrsquoeacutechangent des donneacuteesvia le bus CAN Donc ES

est prise en charge par lasource logicielle deacutedieacutee quisrsquoexeacutecute dans les cartes MPC555 puis la couche RTAI

est utiliseacute pour la mise agrave jour de meacutemoires partageacutees pour lrsquoespace utilisateurs linux drsquoeacutechange de donneacutees

Equipe Systegraveme Robotiseacute de ProductionUtilisation de linux_IO par syndex

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6479

S y nd

e x

V5

Equipe Systegraveme Robotiseacute de ProductionUtilisation de linux_IO par syndex

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6579

S y nd

e x

V5

Equipe Systegraveme Robotiseacute de Production

5

Utilisation de linux_IO par syndex

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6679

S y nd

e x

V5

Degraves que la conception de lrsquoapplication sous syndex esttermineacutee et apregraves compilation (AdequationDo it +GenExec) un fichier drsquoentecircte sous le nom de linioh est

automatiquement geacuteneacutereacute Ce fichier contient lesinformations neacutecessaires pour acceacuteder aux entreacutees enlecture et aux sorties en eacutecriture des opeacuterations linuxIO_

inseacutereacutees dans le graphe drsquoalgorithme Le contenu de cefichier est organiseacute en plusieurs parties une pour chaqueopeacuteration linux_IO preacutesente dans le graphe

Equipe Systegraveme Robotiseacute de Production

5

Utilisation de linux_IO par syndex linioh auto-generated C users API frontend

C i h b f 2001 i i i b f f

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6779

S y nd

e x

V5 Copyright Robosoft 2001 Pierre Pomiers ltpierrerobosoftfrgt

LINUX IO shared memory data segments

define SEG0_BASE 0x10000typedef struct

int js_spd_o0

int js_str_o0

int enc_R_o0int enc_L_o0

double odo_X_o0

double odo_Y_o0

double odo_T_o0int spd_R_o0

int spd_L_o0

int time

unsigned char sem shm_seg0_def

Nom du segment de meacutemoire partageacutee pour notre opeacuteration linuxIO_

7 signaux drsquoentreacutees Ces valeurs sonten lecture et sont peacuteriodiquementrafraicircchies par RTAI

2 signaux de sorties Ces valeurs sonten eacutecriture et sont peacuteriodiquementrafraicircchies par RTAI

Equipe Systegraveme Robotiseacute de Production

5

Crsquoest une eacutetape tregraves facile il suffit drsquoinclure le fichier drsquoentecirctelinio h dans le code du fichier en CC++ comme suit

Utilisation de linuxIO_ par un programme CC+

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6879

S y nd

e x

V5 linioh dans le code du fichier en CC++ comme suit

include linioh

include ltrtai_shmhgt

static shm_seg0_def seg0

shm_seg0_def robot

seg0 = rtai_malloc (SEG0_BASE sizeof (shm_seg0_def))

if (seg0-gtsem = 0) bcopy (seg0 amprobot sizeof (shm_seg0_def))helliphelliphellip

helliphelliphellip bcopy (amprobot seg0 sizeof (shm_seg0_def))helliphelliphelliphelliphelliphellip

rtai_free (SEG0_BASE seg0)

fichier drsquoentecircte de la meacutemoire partageacutee fourni dans la couche RTAI de linux

Initialisation du segment SEG0_BASE Allocation de lameacutemoire pointeacutee

par seg0

Lecture des donneacutees provenant du bas

niveau

Mise agrave jours du segment de meacutemoire partageacutee

Libeacuterer le segment de meacutemoire alloueacute

Equipe Systegraveme Robotiseacute de Production

5

Plan

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6979

S y nd e x

V5

bull Introductionbull Meacutethodologie AAA

bull Installationbull Utilisation du logiciel Syndex

bull Macrosbull LinuxIO un interface CC++ avec SynDEx

bull Exemple drsquoapplication Robuter-ULM

Equipe Systegraveme Robotiseacute de Production

V5

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7079

S y nd e x

V5

Exemple dapplication Exemple dapplication Robuter Robuter--ULM ULM

Equipe Systegraveme Robotiseacute de Production

V5

Description Robuter-ULMbull Base mobile (2-RM 2-RF)

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7179

S y nd e x

V

bull Bras ultra-leacuteger 6 axesbull Ceinture 24 capteurs US

bull Capteur drsquoefforts 6 axes

bull Cameacutera CCD monochromeavec carte drsquoacquisition

bull PC embarqueacute MMX 233

bull OS linux redhat 61 avecRTAI V-13

bull 3 bouton drsquoarrecirct drsquourgence

bull 4 batteries 48 VDC 4 X12V 60 Ah

bull Entreacutee Joystick

bull Liaison Ethernet sans fil

Le manipulateur mobile Robuter-ULM comprend

Equipe Systegraveme Robotiseacute de Production

V5

Base Mobilebull dimension

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7279

S y nd e x

V

1025 mm de longueur 680 mm de largueur et 44 cm de hauteurbull Poids environ 150 kg avec les batteriesbull charge jusqursquoagrave 120 kg

bull vitesse de 5cms agrave 125 msbull Moteurs 2 X 300 W DC 48 VDCbull orientation par diffeacuterence de vitesse

bull Preacutecision Position par encodeurs optiquesbull Deux roues motrices diffeacuterentielles et de deux roues follesbull Drsquoune ceinture de 24 capteurs Ultrasons

bull Une carte MPC555 de Robosoft pour le controcircle des deuxmoteurs DC des 2 rouesbull Un systegraveme drsquoodomeacutetrie qui donne la position relative du robot

par rapport agrave son repegravere

Equipe Systegraveme Robotiseacute de Production

V5

bull dimension Faute de documentation

Bras U tra- eacuteger

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7379

S y nd e x

V Faute de documentation

bull Poids moins de 20 kgbull charge 2 kgbull Moteurs 6 moteurs DC

bull gripper pince eacutelectrique 2 doigtsbull Reacutepeacutetabiliteacute +- 1mmbull 3 carte MPC555 de Robosoft lrsquoune pour le capteur drsquoeffort et les

deux autres pour les 6 moteurs + moteur de la pincebull Position encodeur increacutemental

1 2 3 4 5 6Axisrange

plusmn90deg 0-90deg plusmn80deg plusmn100deg plusmn90deg plusmn110deg

vitesse 180degs 180degs 180degs 180degs 180degs 180degs

Equipe Systegraveme Robotiseacute de Production

V5

rc tecture ar ware

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7479

S y nd e x

V

Equipe Systegraveme Robotiseacute de Production

V5

Pro eacutemat quePlusieurs applications peuvent ecirctre impleacutementeacutees sur le robot

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7579

S y nd e x

V

Cependant il faut faire la diffeacuterence entre les applications quidemande lrsquoutilisation de syndex et les applications qui neneacutecessite qursquoune programmation en CC++ Agrave titre drsquoexemple

bull Localisationbull Commande en position

bull Commande en forcebull Navigation

bull Geacuteneacuteration de trajectoire

bull Vision

Equipe Systegraveme Robotiseacute de Production

V5 bull Pince eacutelectrique (TOR)

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7679

S y nd e x

Vq ( )

bull Pince possegravede des ES Logiques

Notre application consiste agrave

bull Recevoir lrsquoeacutetat de la pince (fermeacutee ouverte )

bull Envoyer une commande vers la pince

Capture

drsquoinformation

Open

Close

CommandeMeacutemoire

Partageacutee

Actionneur

Pince Prise de deacutecision Pince

Equipe Systegraveme Robotiseacute de Production

V5

Sc eacutema eacute ectr que

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7779

S y nd e x

Equipe Systegraveme Robotiseacute de Production

V5

Conclusion

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7879

S y nd e x bull Introduction

bull Meacutethodologie AAA

bull Installationbull Utilisation du logiciel Syndex

bull Macrosbull LinuxIO un interface CC++ avec SynDEx

bull Exemple drsquoapplication Robuter-ULM

Equipe Systegraveme Robotiseacute de Production

V5

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7979

S y nd e x

Questions

Page 4: Cours Syndex

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 479

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV5

Introduction

Ces travaux de recherche ont conduit dune part agraveune meacutethodologie appeleacutee AAA pour

Adeacutequation Algorithme-Architecture et dautre part agrave un logiciel de CAO niveau systegraveme pourlimpleacutementation optimiseacutes de systegravemes distribueacutestemps reacuteel embarqueacutes appeleacute SynDEx

Ils eacutevoluent pour permettre la conception

conjointe avec partitionnement logicielmateacuterielautomatique

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 579

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV5

Pla

bull Introduction

bull Meacutethodologie AAA

bull Installation

bull Utilisation du logiciel Syndex

bull Macros

bull LinuxIO un interface CC++ avec SynDEx

bull Exemple drsquoapplication Robuter-ULM

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 679

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV5

M M eacuteeacute thodologie thodologie AAA AAA

bull Systegraveme reacuteactifs temps reacuteel embarqueacuteesbull Algorithme

bull Architecturebull Adeacutequation

bull Impleacutementation

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 779

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV5

Systegravemes reacuteactifs temps reacuteel embarqueacutee

Les systegravemes informatiques eacutetant numeacuteriques les signauxdrsquoES sont discreacutetises aussi bien dans lespace des valeursque dans le temps La preacutecision de la commande deacutepend

de la reacutesolution de cette discreacutetisation

Une analyse matheacutematique utilisant la theacuteorie de la

commande permet de deacuteterminer dune part une bornesupeacuterieure sur le deacutelai qui seacutecoule entre deux eacutechantillons(cadence) et dautre part une borne supeacuterieure sur la dureacutee

du calcul (latence) entre une deacutetection de variation deacutetatde lenvironnement (stimulus) et la variation induite de lacommande (reacuteaction) Cest en ce sens quon parle de

systegravemes reacuteactifs

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 879

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 979

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV5

Meacutethodologie AA

Le but de la meacutethodologie AAA est de trouver lameilleure mise en correspondance entre unalgorithme speacutecifiant les fonctions de

lapplication agrave effectuer et une architecturemulti-composants tout en satisfaisant les

contraintes dembarquabiliteacute et de temps reacuteel dusystegraveme

Il est donc neacutecessaire de preacuteciser le sens que londonnera par la suite aux notions dalgorithmedarchitecture dadeacutequation et dimpleacutementation

Al i h

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 1079

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV5

Algorithme

Un algorithme est connu comme eacutetant une

seacutequence finie dopeacuterations (reacutealisables

en un temps fini et avec un support

mateacuteriel fini) Dans cette meacutethode cette

notion est eacutetendue pour prendre encompte dune part laspect infiniment

reacutepeacutetitif des applications reacuteactives et

dautre part laspect parallegravele neacutecessaire

a leur impleacutementation distribueacutee

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 1179

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV5

Op1

Op2

Op3 Op5

Op4

Op6

Capteur

Actionneur

Nœuds Opeacuteration

Arcs Transfert de donneacutees

Modegravele drsquoalgorithme

A hi

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 1279

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV5

Architecture

Larchitecture correspond auxcaracteacuteristiques structurelles du

calculateur exhibant un paralleacutelismedisponible en geacuteneacuteral moindre que leparalleacutelisme potentiel de lalgorithmePar abus de langage le termearchitecture sera ici souvent utilise dans

son sens geacuteneacuterique pour signifier agrave lafois le calculateur lui-mecircme ainsi queses caracteacuteristiques structurelles

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 1379

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV5

Meacutedia

Pr3

Pr1 Pr2

Pr123 Processeur

Meacutedia Moyen de communication

Arcs Transfert de donneacutees Modegravele drsquoarchitecture

Adeacute ti

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 1479

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

ladeacutequation consiste a mettre en correspondance de

maniegravere efficace lalgorithme et larchitecture pour reacutealiserune impleacutementation optimiseacutee

Adeacutequation

Instruction 1Instruction 2

hellip

hellip

Instruction N

Algorithme

Processeur Seacutequenceur

Architecture MonoprocesseurMeacutedia

Proc 1Seacuteq 1

Proc 2

Seacuteq 2Proc M

Seacuteq M

Architecture Multiprocesseurs

Inst 1

Inst 2

hellip

Inst N

Algorithme

Inst 1

Inst 2

hellip

Inst N

Inst 1

Inst 2

hellip

Inst N

hellip

hellip

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 1579

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Pour permettre une exploitation plus efficace du paralleacutelisme

disponible de larchitecture il faut eacutetendre lordre totaldexeacutecution des instructions du programme seacutequentielmonoprocesseur a un ordre partiel extrait par une analyse de

deacutependances de donneacutees entre instructions exhibant le paralleacutelisme potentiel de lalgorithme et permettant unedistribution et un ordonnancement

bull la distribution consiste agrave effectuer une Partition du graphe delrsquoalgorithme initial en autant drsquoeacuteleacutements de partition qursquoil y adrsquoopeacuterateur dans le graphe de lrsquoarchitecture

bull Lordonnancement consiste pour chaque eacuteleacutement de partition a lineacuteariser (rendre total) lordre partielcorrespondant au sous-graphe associe Cette phase estneacutecessaire car lopeacuterateur auquel on affecte un sous-graphe du

graphe de lalgorithme initial est geacutereacute par une seacutequenceurdrsquoinstruction

I leacute t ti

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 1679

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Impleacutementation

Limpleacutementation consiste a mettre en oeuvre

lalgorithme sur larchitecture cest- a-dire aallouer les ressources mateacuterielles de larchitectureaux opeacuterations de lalgorithme puis a compilercharger puis lancer lexeacutecution du programmecorrespondant sur le calculateur

Pl

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 1779

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Pla

bull Introduction

bull Meacutethodologie AAA

bull Installation

bull Utilisation du logiciel Syndex

bull Macros

bull LinuxIO un interface CC++ avec SynDEx

bull Exemple drsquoapplication Robuter-ULM

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 1879

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Installation Installation

bull Exigences mateacuteriellesbull Exigences logicielles

bull Installation de syndex V5bull Arborescence des reacutepertoires

Exigences mateacuteriels

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 1979

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Exigences mateacuteriels

bull Un PC avec un processeur de la famille Intel(80386 au minimum) ou un AMD

bull Une Carte de bus CAN (celle qui est installeacuteecrsquoest NuDACQ PCI-7841 baseacutee sur un chipPhilips SJA1000)

Ces deux speacutecifications sont suffisants pour ledeacuteveloppement drsquoune application RTAI

bull Pour les robots acquis il faut rajouter les cartes decontrocircle baseacutees sur le microcontrocircleur MPC555

Exigences logicielle

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 2079

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Exigences logiciellebull Un environnement sous Linux (quelle que soit la

distribution)bull Un module RTAI (Real-Time Applications

implementations)bull GNU gcc (outil de compilation)bull GNU binutils (outil pour assembler et eacutediter les liens

bull Le Logiciel Syndex V5bull Les macros de syndex pour

- carte de controcircle Robosoft- microcontrocircleur MPC555 de Motorola- PC sous LinuxRTAI

- Bus CAN

Installation de Syndex V

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 2179

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Installation de Syndex V

bull Creacuteation du reacutepertoire de destinationbull Copier le fichier avec la commande

cp syndex-xxx-linuxtgz rep_desbull Se mettre sous le reacutepertoire de destination puisdeacutecompresser le fichier avec la commande

tar zxvf syndex-xxx-linuxtgzCeci creacuteera sous le reacute pertoire de destination un sou

reacutepertoire de syndex contenant tout les fichiersDans le fichier syndexbat il faut mettre agrave jour lechemin du reacutepertoire de syndex

Arborescences des Reacutepertoire

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 2279

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Arborescences des Reacutepertoire

Apregraves lrsquoinstallation il est impeacuteratif drsquoorganiser lesreacutepertoires pour que lors de lrsquoeacutedition des liens le

fichier makefiles deacutepend de cette organisationLrsquoorganisation qui existe actuellement est comme

suit bull Apps applications deacuteveloppeacutees sous syndexbull Macros macros deacuteveloppeacutes pour syndex V5bull Rtai module rtai ou un lien symbolique qui point vers le reacutepertoire drsquoinstallation

Pla

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 2379

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Pla

bull Introduction

bull Meacutethodologie AAA

bull Installation

bull Utilisation du logiciel Syndex

bull Macros

bull LinuxIO un interface CC++ avec SynDEx

bull Exemple drsquoapplication Robuter-ULM

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 2479

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Utilisation du logicielUtilisation du logicielSyndexSyndex V5V5

bull Utilisation de lrsquointerface

bull Algorithme

bull Architecture

bull Caracteacuteristiques

bull Contraintes

bull Adeacutequation

bull Geacuteneacuteration du code exeacutecutif

SynDE

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 2579

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

SynDESynDEx est un logiciel graphique qui impleacutemente lameacutethodologie AAA et qui offre plusieurs fonctionnaliteacutes

bull Speacutecification drsquoun algorithme drsquoapplication saisi sousforme drsquoun graphe

bull Speacutecification drsquoun graphe drsquoarchitecture multi-composant

bull Heuristique pour la distribution et lrsquoordonnancement delrsquoalgorithme drsquoapplication sur lrsquoarchitecture avecoptimisation du temps de reacuteponse

bull Geacuteneacuteration des exeacutecutifs distribueacutes temps reacuteel

Utilisation de lrsquointerface

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 2679

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Utilisation de l interface

Utilisation de lrsquointerface

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 2779

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Utilisation de l interface

Utilisation de lrsquointerface

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 2879

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Utilisation de l interface

Algorithm

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 2979

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Algorithm

Lrsquoalgorithme est speacutecifieacute comme un graphe orienteacute ougravebull chaque sommet est une opeacuteration qui calcule les sorties

des entreacutees agrave chaque opeacuteration doit correspondre uneseacutequence drsquoinstructions compileacutee seacutepareacutement

bull Chaque arc est une deacutependance de donneacutees entre deux

opeacuterations (ou plus dans le cas de diffusion) c-a-d lasortie drsquoune opeacuteration est lrsquoentreacutee de lrsquoautre opeacuteration(ou de plusieurs autres opeacuterations) une entreacutee peut ecirctreconnecteacutee seulement agrave une sortie de mecircme type dedonneacutees

gor t m

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3079

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

gor t mon distingue 4 types de sommets

Algorithm

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3179

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Algorithmbull Le sommet function possegravede au moins une entreacutee et

une sortie crsquoest une opeacuteration agrave libre effet qui calculeses sorties uniquement agrave partir de ses entreacutees (c-a-d niagrave partir des variables globales ni agrave partir des

preacuteceacutedentes valeurs de ces entreacutees)bull Le sommet extio permet lrsquoacquisitionlrsquoeacutecriture des

entreacuteessorties on distingue trois cas

1 Capteur sans entreacutee agrave chaque reacuteaction sa sortierepreacutesente la valeur lue du capteur

2 Actionneur sans sortie agrave chaque reacuteaction ilenvoi son entreacutee agrave lrsquoactionneur

3 Linux_IO ces des meacutemoires partageacutees qui

permettent le transfert de donneacutees entre syndexet un langage eacutevolueacute

E i S egrave R b i eacute d P d i Algorithm

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3279

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Algorithm

bull Le sommet memory possegravede uniquement uneentreacutee et une sortie crsquoest une opeacuteration agrave effetunique qui met la sortie degraves la premiegravere reacuteaction

agrave une valeur initiale calculeacutee auparavant et puisla sortie de la prochaine reacuteaction nrsquoest que

lrsquoentreacutee de la preacuteceacutedente reacuteactionbull Le sommet constant ne possegravede aucune entreacutee

il calcule sa sortie une seule fois avant la premiegravere reacuteaction puis la sortie demeure la mecircme pour chaque reacuteaction

E i S tegrave R b ti eacute d P d ti Algorithm

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3379

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

AlgorithmPour lrsquoalgorithme chaque sommet est caracteacuteriseacute par

bull Son type geacuteneacuterique (function extio memory constant)bull Un nom unique (tout les sommets doivent avoir des

noms diffeacuterents)bull Son type identifiant sa seacutequence drsquoinstructionsassocieacute

bull Sa liste drsquoarguments ougrave chaque argument est speacutecifieacute par bull Le nombre drsquoentreacuteesortiebull Le type de donneacuteesbull Le nom (tout les arguments doivent avoir des noms

diffeacuterents)

Equipe Systegraveme Robotiseacute de Production Architecture

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3479

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

ArchitectureLrsquoarchitecture est speacutecifieacutee comme un graphe non orienteacute

ougrave bullChaque sommet est une ressource seacutequentielle il y adeux types de sommets

bull processeur crsquoest une ressource de calcul enmesure drsquoexeacutecuter seacutequentiellement les opeacuterationsdrsquoun algorithme il pourrait ecirctre un processeur ou

un circuit inteacutegreacute speacutecialiseacutebull meacutedia crsquoest une ressource de communicationen mesure drsquoexeacutecuter seacutequentiellement un transfertde donneacutees entre les meacutemoires des processeurs quilui sont connecteacutes

bull chaque arc est une connexion bidirectionnelle entreun processeur et un meacutedia

Equipe Systegraveme Robotiseacute de Production Architecture

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3579

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

ArchitecturePour lrsquoarchitecture chaque sommet est caracteacuteriseacute par

bull Un nom uniquebullSon type (processeur or meacutedia)bull Son type identifiant caracteacuteristiques mateacuterielles

bull Sa liste de connecteurs ougrave chaque connecteur est speacutecifieacute par bull son type identifiant le type de meacutedia agrave qui il peut ecirctreconnecteacute

bullUn nom

Equipe Systegraveme Robotiseacute de ProductionCaracteacuter st que

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3679

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Caracteacuter st que Nous distinguons deux cateacutegories de caracteacuteristiques lrsquoune relative

aux opeacuterations et lrsquoune agrave la communication 1 Comment speacutecifier les caracteacuteristiques des opeacuterations sous le menu AdequationAlOp_ArOp on obtient une boite

de dialogue avec

une liste de toutles types de

processeurs et

pour chaque processeur uneliste de tout les

types drsquoopeacuterationsqui peut lesexeacutecuter avec ladureacutee drsquoexeacutecutioncorrespondante

Equipe Systegraveme Robotiseacute de ProductionCaracteacuteristique

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3779

q p y

S y nd

e xV

5

q2 Comment speacutecifier les caracteacuteristiques de communication

sous le menu AdequationAlIO_ArIO on obtient une boitede dialogue avec une liste de tout les types de meacutedia et

pour chaque meacutedia une liste de tout les types de donneacutees

qui peut transfeacuterer avec la dureacutee de transfertcorrespondante

Equipe Systegraveme Robotiseacute de Production Contraintes

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3879

S y nd

e xV

5

Pour contraindre une opeacuteration agrave srsquoexeacutecuter sur un processeur donneacutee

1Seacutelectionner le(s) opeacuteration(s) agrave contraindre2 Seacutelectionner la commande AlgorithmSetConstraint3 Seacutelectionner le processeur qui doit exeacutecute les opeacuterationsseacutelectionneacutees

Pour enlever les contraintes seacutelectionner lrsquoopeacuteration puis exeacutecuterla commande AlgorithmDeleteConstraint

Pour voir sur quel processeur une opeacuteration est y contrainteseacutelectionner lrsquoopeacuteration puis exeacutecuter la commandeAlgorithmShowConstraint le processeur correspondant y sera

seacutelectionneacutePour voir toute les opeacuterations qui sont contraintes sur un processeurseacutelectionner le processeur puis exeacutecuter la commande

ArchitectureShowConstrained du menu les opeacuterationscorrespondantes y seront seacutelectionneacutees

Equipe Systegraveme Robotiseacute de Production A eacutequat o

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3979

S y nd

e xV

5

q

Pour construire le planificateur des opeacuterations dugraphe drsquoalgorithme sur les processeurs du graphedrsquoarchitecture qui effectue automatiquement le routage

des deacutependances de donneacutees inter-processeurs et lacreacuteation et la planification des opeacuterations decommunication sur le meacutedia du graphe drsquoarchitectureon utilise la commande AdequationDoIt

Cette commande creacutee un heuristique qui cherche agraveminimiser le chemin critique du graphe drsquoalgorithme

Equipe Systegraveme Robotiseacute de ProductionGeacuteneacuteration du code exeacutecuti

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4079

S y nd

e xV

5Le code exeacutecutif est la partie qui gegravere les ressources

mateacuterielles pour les allouer aux besoins de lrsquoalgorithmedrsquoapplication Les ressources agrave allouer sont

1 Les espaces meacutemoires des processeurs2 Le temps des seacutequences drsquoinstructions3 Le temps des meacutedia de communication

Gracircce agrave la meacutethodologie AAA et le logiciel Syndexlrsquoutilisateur est exempte drsquoeacutecrire du code pour geacuterer ces

ressources Donc par simple exeacutecution de la commandeAdequationGenExec un code distribueacute pour chaque processeur est automatiquement geacuteneacutereacute Ce code est en

fait un exeacutecutif geacuteneacutereacute sur mesure pour lrsquoalgorithme etlrsquoarchitecture

Equipe Systegraveme Robotiseacute de ProductionGeacuteneacuteration du code exeacutecuti

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4179

S y nd

e xV5

Pour chaque processeur de lrsquoarchitecture un fichier

source macro-exeacutecutif m4 avec le mecircme nom estgeacuteneacutereacute plus un macro-makefile ayant le mecircme nom quecelui de lrsquoapplication Chacun de ces fichiers doit ecirctre

transcrit par le macro-processeur GNU M4 (assembleurC) Cette transcription deacutepend de plusieurs fichiers

1 Fichier syndexm4x qui deacutefini les macrosgeacuteneacuteriques de syndex2 Fichier processorTypem4x qui deacutefini les macros

de bas niveau du processeur3 Fichier applicationNamem4x qui deacutefini les macros

speacutecifiques agrave lrsquoapplication

4 Fichier mediaTypem4x qui deacutefini les macros decommunication de bas niveau du type de media

Equipe Systegraveme Robotiseacute de ProductionCreacuteat on rsquoapp cat on

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4279

S y nd

e xV5 Arborescence des reacutepertoires Rep_travail

Applicationmacros

~rtai

Eacutevolution de lrsquoapplication

Phase 1

Edition des macros(C ou Assembleur)

+GNUmakefile

Phase 2

Edition du graphe

(Algorithme amp

Architecteure)

Phase 3

Compilation amp Exeacutecution

Equipe Systegraveme Robotiseacute de ProductionSeacutequence de compilation de Synde

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4379

S y nd

e xV5

Equipe Systegraveme Robotiseacute de Production Plan

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4479

S y nd

e xV5

bull Introduction

bull Meacutethodologie AAA

bull Installation

bull Utilisation du logiciel Syndex

bull Macros

bull LinuxIO un interface CC++ avec SynDEx

bull Exemple drsquoapplication Robuter-ULM

Equipe Systegraveme Robotiseacute de Production

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4579

S y nd

e xV5

Macros Macros

bull Deacutefinition

bull Types de macros

bull Carte Robosoft MPC555

bull Macros Geacuteneacuterique MPC555

bull Macros speacutecifique Robosoftbull Macros de Communication

bull Macros drsquoapplicationbull Structure du fichier Macro

Equipe Systegraveme Robotiseacute de Production Deacutefinition

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4679

S y nd

e xV5

Un macro-processeur est un programme qui consommeen entreacutee une chaicircne de caractegraveres (texte source) la

traite seacutequentiellement en substituant chaque sous-chaicircne qursquoil reconnaicirct (Appel de macro) par unechaicircne correspondante de substitution ( Deacutefinition de

macro) qursquoil traite agrave nouveau jusqursquoagrave ce qursquoil nrsquo y ait plus de substitution possible et qui produit en sortie lachaicircne de caractegraveres traiteacutee

Equipe Systegraveme Robotiseacute de Productionypes e macrosL diffeacute t di ti t d d

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4779

S y nd

e xV5

Les diffeacuterents macros se distinguent en deux grandes

classes bull Macros geacuteneacuteriques

en geacuteneacuteral ceux sont des macros non destineacutes agraveecirctre utiliser directement par lrsquointerface syndexmais plutocirct utiliseacutees pour la programmation

drsquoautres macros (macros MPC555)bull Macros utilisateurs

macros utiliseacutes directement par syndex ils sontspeacutecifiques agrave lrsquoapplication (macros decommunication macros speacutecifiques robosoft

macros speacutecifiques agrave lrsquoapplication)

Equipe Systegraveme Robotiseacute de ProductionCarte Robosoft MPC555La carte Robosoft MPC555 est conccedilue pour la commande de robot de veacutehicule

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4879

S y nd

e xV5

(1) Connecteur du chip MPC555(2) Alimentation continue(3) Interface BDM (Basic Debug Interface)(4) Entreacute Analogique (Joystickhellip)(5) EntreacuteSortie logiques(6) Ligne seacuterie Synchrone (Codeur absolu)(7) Ligne seacuterie Asynchrone (Port 0)

(8) Ligne seacuterie Asynchrone (Port 1)(9) Connecteur du bus CAN (Port 0)(10) Connecteur du bus CAN (Port 1)(11) Axe 1(13) Axe 2(14) Axe 3(15) Axe 4

La carte Robosoft MPC555 est conccedilue pour la commande de robot de veacutehiculeeacutelectrique ou toute autre machine Elle permet de commander un axe gracircce agrave

lrsquoajout drsquoune carte fille le controcircle srsquoeacutetend jusqursquoagrave 4 axesCette carte est baseacutee sur le microcontrocircleur MPC555 32-bit de MotorolaElle peut opeacuterer agrave une freacutequence

de 40 MHz Divers signauxlogique et analogique peuventecirctre utiliser pour lrsquoacquisition deet la commande de mateacuteriel Les

sorties disponibles peuvent ecirctreanalogique ou PWMOn y trouve

Equipe Systegraveme Robotiseacute de ProductionArchitecture du MPC555

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4979

S y nd

e xV5

Equipe Systegraveme Robotiseacute de Productionaract r st ques u

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5079

S y nd

e xV5

Equipe Systegraveme Robotiseacute de Productionacros n r quesbull GPIO (General-Purpose InputOutput)

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5179

S y nd

e xV5

GPIO (General Purpose InputOutput)ce macro utilise le module USIU qui lui fourni 64 pins pour desentreacuteessorties numeacuteriques ordinaires (IO de la carte Robosoft lirelrsquoeacutetat de la pince envoi de commande agrave la pince lire les alarmes)

bull QADC (Queued Analog to Digital Converter)en utilisant le module QADC ce macro permet la conversion drsquounsignal analogique en entreacutee en un signal numeacuterique multi-niveaux(lire les donneacutees du capteur drsquoeacuteffort du joystick)

bull MIOS (Modular InputOutput System)Le module MIOS fourni 16 pins drsquoES numeacuteriques Sur la carte deRobosoft tous les pins sont en sortie Les 16 pins sont reacutepartiscomme suit

utilisateurs reacuteserveacutes

les pins de 0 agrave 11 sont reacuteserveacutes car ils sont preacutevus agrave ecirctre utiliseacutes pour unmateacuteriel particulier Mais si ce mateacuteriel nrsquoest pas utiliseacute lrsquoutilisateur peut lesutiliser librement

15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

Equipe Systegraveme Robotiseacute de ProductionMacros Geacuteneacuter ques MPC55

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5279

S y nd

e xV5

bull PWM (Pulse width Modulation)utilise le module MIOS (pins de 4-7 pour la direction des moteurset de 8-11 pour la validation) pour la commande des actionneursnumeacuteriques en PWM

bull TPU (Time Processor Units)les macros lieacutes agrave ce module permettent la lecture des encodeurs

increacutementauxbull QSPI (Queued Serial Peripheral Interface)

ce module fait partie du module QSMCM et les macros lieacutes servent

agrave son initialisation pour une communication avec du mateacuterielsexternes via le bus seacuterie synchrone

Equipe Systegraveme Robotiseacute de ProductionMacros Geacuteneacuter ques MPC55

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5379

S y nd

e x

V5 bull Serial port support (Polling implementation)

le MPC555 comprend dans le module QSMCM une interface decommunication seacuterie SCI qui permet la communication avec dumateacuteriels externes via un bus seacuterie asynchrone Plusieurs macros

sont lieacutes agrave cette interface pour initialiser et eacutetablir la communicationbull Serial port support (interrupt handling implementation)

pour la mecircme interface SCI du module QSMCM pour cette

meacutethode drsquoimpleacutementation les macros lieacutes initialisent et eacutetablissentla communication en mode par interruption ce qui permet dedeacutetecter lrsquoarriveacutee des donneacutees sur le port seacuterie au lieu de le scruter

en permanence

tous ces macros on les retrouvent dans le fichier 555m4x

Equipe Systegraveme Robotiseacute de ProductionMacros Speacutec ques Ro oso tles macros suivants sont deacutedieacutes agrave la carte de Robosoft MPC555

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5479

S y nd

e x

V5

bull Initialisation de la carte Robosoftmain_ini_() macro ne doit pas ecirctre utiliser par les programmateursdu fait qursquoelle sert qursquoagrave initialiser la carte robosoft Macro interne agrave

syndex dont lrsquoappel est automatique lors de geacuteneacuteration drsquoexeacutecutifMPC555

bull DAC (Digital to Analog Converter)

macro permet lrsquoutilisation du convertisseur de carte robosoft via lemodule MIOs en utilisant les pins de 0 agrave 2

bull LED (on-bord LED interface)

macro permet la gestion de la LED de la carte robosoft connecteacuteeau module QSPI (pin PCS1)

bull SPI absolute encoder

macro permet lrsquoutilisation lrsquointerface du codeur absolu de la carterobosoft connecteacute au module QSPI

Equipe Systegraveme Robotiseacute de ProductionMacros Speacutec ques Ro oso tbull Motor amplifier direction

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5579

S y nd

e x

V5

Motor amplifier directionmacro qui permet de geacuterer la direction des moteurs

bull Motor power amplifier validationles moteurs embarqueacutes sur les robots sont eacutequipeacutes de freins

eacutelectriquement commandable Ce macro permet drsquoenvoyer unsignal drsquoinhibition pour deacutebloquer les freins

bull Watch dog

pour des raisons de seacutecuriteacute un meacutecanisme mateacuteriel que robosofta ajouteacute sur la carte Ce watch-dog vise agrave stopper lrsquoactiviteacute dumoteur en cas ougrave le programme plante Le watch est impleacutementeacute

comme un time-out mateacuteriel Srsquoil nrsquoest pas rafraicircchi peacuteriodiquement il transmet un signal de sortie ce qui enlegraveve lavalidation de lrsquoamplificateur de puissance donc lrsquoarrecirct dumouvement

ces macros se trouvent dans le fichier RSBm4x

Equipe Systegraveme Robotiseacute de Production

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5679

S y nd

e x

V5

Macros de Communicationchaque meacutedia de communication (bus CAN ) est une ressourceseacutequentielle ougrave les transferts de donneacutees entre processeurs doiventsuivre un certain ordre Donc ce macro de communication sert agravedeacutefinir cet ordre et agrave identifier le protocole de communication lecodagedeacutecodage de lrsquoinformation et la synchronisation

on trouve ces macros dans le fichier CANm4x

Macros drsquoapplicationce genre de macros sont speacutecifique au mateacuteriel en question et aussiagrave lrsquoapplication en particulier Ce sont des macros utilisateurs

on trouve ces macros dans le fichier Application_namem4x

Equipe Systegraveme Robotiseacute de Production

section include (pour inclure drsquoautres fichiers macro agrave utiliseStructure du fichier macr

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5779

S y nd

e x

V5

section define (pour tous les macros utilisateurs)MGC lsquoINITrsquo (MGC Macro Generation Context variable)

divert (declaration) (deacutebut du macro)

(deacuteclaration des variables des meacutemoires et des csts

divert (o)

MGC lsquolooprsquocode en assembleur code en C

dnl (commentaires)

MGC lsquoENDrsquo dnl (fin de la macros)divert lsquo lsquo dnl

macros MPC555meacutemoire MPC555

constante MPC555

macros RTAImeacutemoire RTAI

constante RTAI

Equipe Systegraveme Robotiseacute de Production Plan

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5879

S y nd

e x

V5

bull Introduction

bull Meacutethodologie AAA

bull Installationbull Utilisation du logiciel Syndex

bull Macrosbull LinuxIO un interface CC++ avec SynDEx

bull Exemple drsquoapplication Robuter-ULM

Equipe Systegraveme Robotiseacute de Production

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5979

S y nd

e x

V5

LinuxIO LinuxIO une interface une interface

CC++ avecCC++ avec SynDExSynDEx

bull Principe de basebull Utilisation de linuxIO_ par syndex

bull Utilisation de linuxIO_ par un programmeCC++

Equipe Systegraveme Robotiseacute de ProductionPrincipe de baseSyndex fourni une interface graphique pour la conception

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6079

S y nd

e x

V5

Syndex fourni une interface graphique pour la conception

drsquoapplications Par contre des fois nous avons besoin drsquoautresfonctionnaliteacutes non disponibles donc il faut les creacuteer Cependantgeacuteneacuterer des macros pour syndex srsquoavegravere difficile pour certains du

fait qursquoil faut avoir une bonne connaissance de la programmation bas niveau Dans ce cas lrsquoutilisation de linux_IO trouve sa placedans un contexte particulier interfacer des applications CC++utilisateurs avec des applications embarqueacutees temps reacuteeldeacuteveloppeacutees sous syndex

Par rapport agrave ce contexte de programmation lrsquoorganisation du

deacuteveloppement des applications est structureacutee en deux parties 1 Application haut niveau

2 Application bas niveau

Equipe Systegraveme Robotiseacute de ProductionPrincipe de base

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6179

S y nd

e x

V5

En reacutesumeacute lrsquoapplicationutilisateur contient une

partie haut niveau enCC++ et une partie basniveau sous syndex avecun eacutechange de donneacuteesentre les deux partie en

utilisant la couche RTAIde linux

Equipe Systegraveme Robotiseacute de Production pp cat on aut n veauOn entend application haut

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6279

S y nd

e x

V5

niveau tout programmecomme la planification detrajectoires strateacutegies de

navigation etc hellipLrsquoeacutechange de donneacutees sefait par le biais desmeacutemoires partageacutees quifont parti du noyau RTAI

et de lrsquoespace utilisateursde Linux

Toute ressource preacutesente sur la carte Robosoft peutecirctre partageacutee sans aune restriction

Equipe Systegraveme Robotiseacute de Production pp cat on as n veauUne application bas niveau

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6379

S y nd

e x

V5

Une application bas niveau

est un programme conccedilusous syndex comme lacommande des moteurs la

lecture des capteurs etc hellipLes ressources mateacuteriellessont controcircler par plusieurs

cartes MPC555 Ces cartessrsquoeacutechangent des donneacuteesvia le bus CAN Donc ES

est prise en charge par lasource logicielle deacutedieacutee quisrsquoexeacutecute dans les cartes MPC555 puis la couche RTAI

est utiliseacute pour la mise agrave jour de meacutemoires partageacutees pour lrsquoespace utilisateurs linux drsquoeacutechange de donneacutees

Equipe Systegraveme Robotiseacute de ProductionUtilisation de linux_IO par syndex

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6479

S y nd

e x

V5

Equipe Systegraveme Robotiseacute de ProductionUtilisation de linux_IO par syndex

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6579

S y nd

e x

V5

Equipe Systegraveme Robotiseacute de Production

5

Utilisation de linux_IO par syndex

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6679

S y nd

e x

V5

Degraves que la conception de lrsquoapplication sous syndex esttermineacutee et apregraves compilation (AdequationDo it +GenExec) un fichier drsquoentecircte sous le nom de linioh est

automatiquement geacuteneacutereacute Ce fichier contient lesinformations neacutecessaires pour acceacuteder aux entreacutees enlecture et aux sorties en eacutecriture des opeacuterations linuxIO_

inseacutereacutees dans le graphe drsquoalgorithme Le contenu de cefichier est organiseacute en plusieurs parties une pour chaqueopeacuteration linux_IO preacutesente dans le graphe

Equipe Systegraveme Robotiseacute de Production

5

Utilisation de linux_IO par syndex linioh auto-generated C users API frontend

C i h b f 2001 i i i b f f

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6779

S y nd

e x

V5 Copyright Robosoft 2001 Pierre Pomiers ltpierrerobosoftfrgt

LINUX IO shared memory data segments

define SEG0_BASE 0x10000typedef struct

int js_spd_o0

int js_str_o0

int enc_R_o0int enc_L_o0

double odo_X_o0

double odo_Y_o0

double odo_T_o0int spd_R_o0

int spd_L_o0

int time

unsigned char sem shm_seg0_def

Nom du segment de meacutemoire partageacutee pour notre opeacuteration linuxIO_

7 signaux drsquoentreacutees Ces valeurs sonten lecture et sont peacuteriodiquementrafraicircchies par RTAI

2 signaux de sorties Ces valeurs sonten eacutecriture et sont peacuteriodiquementrafraicircchies par RTAI

Equipe Systegraveme Robotiseacute de Production

5

Crsquoest une eacutetape tregraves facile il suffit drsquoinclure le fichier drsquoentecirctelinio h dans le code du fichier en CC++ comme suit

Utilisation de linuxIO_ par un programme CC+

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6879

S y nd

e x

V5 linioh dans le code du fichier en CC++ comme suit

include linioh

include ltrtai_shmhgt

static shm_seg0_def seg0

shm_seg0_def robot

seg0 = rtai_malloc (SEG0_BASE sizeof (shm_seg0_def))

if (seg0-gtsem = 0) bcopy (seg0 amprobot sizeof (shm_seg0_def))helliphelliphellip

helliphelliphellip bcopy (amprobot seg0 sizeof (shm_seg0_def))helliphelliphelliphelliphelliphellip

rtai_free (SEG0_BASE seg0)

fichier drsquoentecircte de la meacutemoire partageacutee fourni dans la couche RTAI de linux

Initialisation du segment SEG0_BASE Allocation de lameacutemoire pointeacutee

par seg0

Lecture des donneacutees provenant du bas

niveau

Mise agrave jours du segment de meacutemoire partageacutee

Libeacuterer le segment de meacutemoire alloueacute

Equipe Systegraveme Robotiseacute de Production

5

Plan

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6979

S y nd e x

V5

bull Introductionbull Meacutethodologie AAA

bull Installationbull Utilisation du logiciel Syndex

bull Macrosbull LinuxIO un interface CC++ avec SynDEx

bull Exemple drsquoapplication Robuter-ULM

Equipe Systegraveme Robotiseacute de Production

V5

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7079

S y nd e x

V5

Exemple dapplication Exemple dapplication Robuter Robuter--ULM ULM

Equipe Systegraveme Robotiseacute de Production

V5

Description Robuter-ULMbull Base mobile (2-RM 2-RF)

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7179

S y nd e x

V

bull Bras ultra-leacuteger 6 axesbull Ceinture 24 capteurs US

bull Capteur drsquoefforts 6 axes

bull Cameacutera CCD monochromeavec carte drsquoacquisition

bull PC embarqueacute MMX 233

bull OS linux redhat 61 avecRTAI V-13

bull 3 bouton drsquoarrecirct drsquourgence

bull 4 batteries 48 VDC 4 X12V 60 Ah

bull Entreacutee Joystick

bull Liaison Ethernet sans fil

Le manipulateur mobile Robuter-ULM comprend

Equipe Systegraveme Robotiseacute de Production

V5

Base Mobilebull dimension

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7279

S y nd e x

V

1025 mm de longueur 680 mm de largueur et 44 cm de hauteurbull Poids environ 150 kg avec les batteriesbull charge jusqursquoagrave 120 kg

bull vitesse de 5cms agrave 125 msbull Moteurs 2 X 300 W DC 48 VDCbull orientation par diffeacuterence de vitesse

bull Preacutecision Position par encodeurs optiquesbull Deux roues motrices diffeacuterentielles et de deux roues follesbull Drsquoune ceinture de 24 capteurs Ultrasons

bull Une carte MPC555 de Robosoft pour le controcircle des deuxmoteurs DC des 2 rouesbull Un systegraveme drsquoodomeacutetrie qui donne la position relative du robot

par rapport agrave son repegravere

Equipe Systegraveme Robotiseacute de Production

V5

bull dimension Faute de documentation

Bras U tra- eacuteger

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7379

S y nd e x

V Faute de documentation

bull Poids moins de 20 kgbull charge 2 kgbull Moteurs 6 moteurs DC

bull gripper pince eacutelectrique 2 doigtsbull Reacutepeacutetabiliteacute +- 1mmbull 3 carte MPC555 de Robosoft lrsquoune pour le capteur drsquoeffort et les

deux autres pour les 6 moteurs + moteur de la pincebull Position encodeur increacutemental

1 2 3 4 5 6Axisrange

plusmn90deg 0-90deg plusmn80deg plusmn100deg plusmn90deg plusmn110deg

vitesse 180degs 180degs 180degs 180degs 180degs 180degs

Equipe Systegraveme Robotiseacute de Production

V5

rc tecture ar ware

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7479

S y nd e x

V

Equipe Systegraveme Robotiseacute de Production

V5

Pro eacutemat quePlusieurs applications peuvent ecirctre impleacutementeacutees sur le robot

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7579

S y nd e x

V

Cependant il faut faire la diffeacuterence entre les applications quidemande lrsquoutilisation de syndex et les applications qui neneacutecessite qursquoune programmation en CC++ Agrave titre drsquoexemple

bull Localisationbull Commande en position

bull Commande en forcebull Navigation

bull Geacuteneacuteration de trajectoire

bull Vision

Equipe Systegraveme Robotiseacute de Production

V5 bull Pince eacutelectrique (TOR)

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7679

S y nd e x

Vq ( )

bull Pince possegravede des ES Logiques

Notre application consiste agrave

bull Recevoir lrsquoeacutetat de la pince (fermeacutee ouverte )

bull Envoyer une commande vers la pince

Capture

drsquoinformation

Open

Close

CommandeMeacutemoire

Partageacutee

Actionneur

Pince Prise de deacutecision Pince

Equipe Systegraveme Robotiseacute de Production

V5

Sc eacutema eacute ectr que

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7779

S y nd e x

Equipe Systegraveme Robotiseacute de Production

V5

Conclusion

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7879

S y nd e x bull Introduction

bull Meacutethodologie AAA

bull Installationbull Utilisation du logiciel Syndex

bull Macrosbull LinuxIO un interface CC++ avec SynDEx

bull Exemple drsquoapplication Robuter-ULM

Equipe Systegraveme Robotiseacute de Production

V5

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7979

S y nd e x

Questions

Page 5: Cours Syndex

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 579

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV5

Pla

bull Introduction

bull Meacutethodologie AAA

bull Installation

bull Utilisation du logiciel Syndex

bull Macros

bull LinuxIO un interface CC++ avec SynDEx

bull Exemple drsquoapplication Robuter-ULM

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 679

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV5

M M eacuteeacute thodologie thodologie AAA AAA

bull Systegraveme reacuteactifs temps reacuteel embarqueacuteesbull Algorithme

bull Architecturebull Adeacutequation

bull Impleacutementation

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 779

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV5

Systegravemes reacuteactifs temps reacuteel embarqueacutee

Les systegravemes informatiques eacutetant numeacuteriques les signauxdrsquoES sont discreacutetises aussi bien dans lespace des valeursque dans le temps La preacutecision de la commande deacutepend

de la reacutesolution de cette discreacutetisation

Une analyse matheacutematique utilisant la theacuteorie de la

commande permet de deacuteterminer dune part une bornesupeacuterieure sur le deacutelai qui seacutecoule entre deux eacutechantillons(cadence) et dautre part une borne supeacuterieure sur la dureacutee

du calcul (latence) entre une deacutetection de variation deacutetatde lenvironnement (stimulus) et la variation induite de lacommande (reacuteaction) Cest en ce sens quon parle de

systegravemes reacuteactifs

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 879

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 979

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV5

Meacutethodologie AA

Le but de la meacutethodologie AAA est de trouver lameilleure mise en correspondance entre unalgorithme speacutecifiant les fonctions de

lapplication agrave effectuer et une architecturemulti-composants tout en satisfaisant les

contraintes dembarquabiliteacute et de temps reacuteel dusystegraveme

Il est donc neacutecessaire de preacuteciser le sens que londonnera par la suite aux notions dalgorithmedarchitecture dadeacutequation et dimpleacutementation

Al i h

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 1079

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV5

Algorithme

Un algorithme est connu comme eacutetant une

seacutequence finie dopeacuterations (reacutealisables

en un temps fini et avec un support

mateacuteriel fini) Dans cette meacutethode cette

notion est eacutetendue pour prendre encompte dune part laspect infiniment

reacutepeacutetitif des applications reacuteactives et

dautre part laspect parallegravele neacutecessaire

a leur impleacutementation distribueacutee

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 1179

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV5

Op1

Op2

Op3 Op5

Op4

Op6

Capteur

Actionneur

Nœuds Opeacuteration

Arcs Transfert de donneacutees

Modegravele drsquoalgorithme

A hi

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 1279

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV5

Architecture

Larchitecture correspond auxcaracteacuteristiques structurelles du

calculateur exhibant un paralleacutelismedisponible en geacuteneacuteral moindre que leparalleacutelisme potentiel de lalgorithmePar abus de langage le termearchitecture sera ici souvent utilise dans

son sens geacuteneacuterique pour signifier agrave lafois le calculateur lui-mecircme ainsi queses caracteacuteristiques structurelles

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 1379

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV5

Meacutedia

Pr3

Pr1 Pr2

Pr123 Processeur

Meacutedia Moyen de communication

Arcs Transfert de donneacutees Modegravele drsquoarchitecture

Adeacute ti

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 1479

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

ladeacutequation consiste a mettre en correspondance de

maniegravere efficace lalgorithme et larchitecture pour reacutealiserune impleacutementation optimiseacutee

Adeacutequation

Instruction 1Instruction 2

hellip

hellip

Instruction N

Algorithme

Processeur Seacutequenceur

Architecture MonoprocesseurMeacutedia

Proc 1Seacuteq 1

Proc 2

Seacuteq 2Proc M

Seacuteq M

Architecture Multiprocesseurs

Inst 1

Inst 2

hellip

Inst N

Algorithme

Inst 1

Inst 2

hellip

Inst N

Inst 1

Inst 2

hellip

Inst N

hellip

hellip

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 1579

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Pour permettre une exploitation plus efficace du paralleacutelisme

disponible de larchitecture il faut eacutetendre lordre totaldexeacutecution des instructions du programme seacutequentielmonoprocesseur a un ordre partiel extrait par une analyse de

deacutependances de donneacutees entre instructions exhibant le paralleacutelisme potentiel de lalgorithme et permettant unedistribution et un ordonnancement

bull la distribution consiste agrave effectuer une Partition du graphe delrsquoalgorithme initial en autant drsquoeacuteleacutements de partition qursquoil y adrsquoopeacuterateur dans le graphe de lrsquoarchitecture

bull Lordonnancement consiste pour chaque eacuteleacutement de partition a lineacuteariser (rendre total) lordre partielcorrespondant au sous-graphe associe Cette phase estneacutecessaire car lopeacuterateur auquel on affecte un sous-graphe du

graphe de lalgorithme initial est geacutereacute par une seacutequenceurdrsquoinstruction

I leacute t ti

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 1679

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Impleacutementation

Limpleacutementation consiste a mettre en oeuvre

lalgorithme sur larchitecture cest- a-dire aallouer les ressources mateacuterielles de larchitectureaux opeacuterations de lalgorithme puis a compilercharger puis lancer lexeacutecution du programmecorrespondant sur le calculateur

Pl

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 1779

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Pla

bull Introduction

bull Meacutethodologie AAA

bull Installation

bull Utilisation du logiciel Syndex

bull Macros

bull LinuxIO un interface CC++ avec SynDEx

bull Exemple drsquoapplication Robuter-ULM

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 1879

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Installation Installation

bull Exigences mateacuteriellesbull Exigences logicielles

bull Installation de syndex V5bull Arborescence des reacutepertoires

Exigences mateacuteriels

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 1979

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Exigences mateacuteriels

bull Un PC avec un processeur de la famille Intel(80386 au minimum) ou un AMD

bull Une Carte de bus CAN (celle qui est installeacuteecrsquoest NuDACQ PCI-7841 baseacutee sur un chipPhilips SJA1000)

Ces deux speacutecifications sont suffisants pour ledeacuteveloppement drsquoune application RTAI

bull Pour les robots acquis il faut rajouter les cartes decontrocircle baseacutees sur le microcontrocircleur MPC555

Exigences logicielle

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 2079

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Exigences logiciellebull Un environnement sous Linux (quelle que soit la

distribution)bull Un module RTAI (Real-Time Applications

implementations)bull GNU gcc (outil de compilation)bull GNU binutils (outil pour assembler et eacutediter les liens

bull Le Logiciel Syndex V5bull Les macros de syndex pour

- carte de controcircle Robosoft- microcontrocircleur MPC555 de Motorola- PC sous LinuxRTAI

- Bus CAN

Installation de Syndex V

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 2179

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Installation de Syndex V

bull Creacuteation du reacutepertoire de destinationbull Copier le fichier avec la commande

cp syndex-xxx-linuxtgz rep_desbull Se mettre sous le reacutepertoire de destination puisdeacutecompresser le fichier avec la commande

tar zxvf syndex-xxx-linuxtgzCeci creacuteera sous le reacute pertoire de destination un sou

reacutepertoire de syndex contenant tout les fichiersDans le fichier syndexbat il faut mettre agrave jour lechemin du reacutepertoire de syndex

Arborescences des Reacutepertoire

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 2279

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Arborescences des Reacutepertoire

Apregraves lrsquoinstallation il est impeacuteratif drsquoorganiser lesreacutepertoires pour que lors de lrsquoeacutedition des liens le

fichier makefiles deacutepend de cette organisationLrsquoorganisation qui existe actuellement est comme

suit bull Apps applications deacuteveloppeacutees sous syndexbull Macros macros deacuteveloppeacutes pour syndex V5bull Rtai module rtai ou un lien symbolique qui point vers le reacutepertoire drsquoinstallation

Pla

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 2379

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Pla

bull Introduction

bull Meacutethodologie AAA

bull Installation

bull Utilisation du logiciel Syndex

bull Macros

bull LinuxIO un interface CC++ avec SynDEx

bull Exemple drsquoapplication Robuter-ULM

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 2479

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Utilisation du logicielUtilisation du logicielSyndexSyndex V5V5

bull Utilisation de lrsquointerface

bull Algorithme

bull Architecture

bull Caracteacuteristiques

bull Contraintes

bull Adeacutequation

bull Geacuteneacuteration du code exeacutecutif

SynDE

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 2579

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

SynDESynDEx est un logiciel graphique qui impleacutemente lameacutethodologie AAA et qui offre plusieurs fonctionnaliteacutes

bull Speacutecification drsquoun algorithme drsquoapplication saisi sousforme drsquoun graphe

bull Speacutecification drsquoun graphe drsquoarchitecture multi-composant

bull Heuristique pour la distribution et lrsquoordonnancement delrsquoalgorithme drsquoapplication sur lrsquoarchitecture avecoptimisation du temps de reacuteponse

bull Geacuteneacuteration des exeacutecutifs distribueacutes temps reacuteel

Utilisation de lrsquointerface

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 2679

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Utilisation de l interface

Utilisation de lrsquointerface

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 2779

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Utilisation de l interface

Utilisation de lrsquointerface

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 2879

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Utilisation de l interface

Algorithm

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 2979

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Algorithm

Lrsquoalgorithme est speacutecifieacute comme un graphe orienteacute ougravebull chaque sommet est une opeacuteration qui calcule les sorties

des entreacutees agrave chaque opeacuteration doit correspondre uneseacutequence drsquoinstructions compileacutee seacutepareacutement

bull Chaque arc est une deacutependance de donneacutees entre deux

opeacuterations (ou plus dans le cas de diffusion) c-a-d lasortie drsquoune opeacuteration est lrsquoentreacutee de lrsquoautre opeacuteration(ou de plusieurs autres opeacuterations) une entreacutee peut ecirctreconnecteacutee seulement agrave une sortie de mecircme type dedonneacutees

gor t m

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3079

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

gor t mon distingue 4 types de sommets

Algorithm

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3179

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Algorithmbull Le sommet function possegravede au moins une entreacutee et

une sortie crsquoest une opeacuteration agrave libre effet qui calculeses sorties uniquement agrave partir de ses entreacutees (c-a-d niagrave partir des variables globales ni agrave partir des

preacuteceacutedentes valeurs de ces entreacutees)bull Le sommet extio permet lrsquoacquisitionlrsquoeacutecriture des

entreacuteessorties on distingue trois cas

1 Capteur sans entreacutee agrave chaque reacuteaction sa sortierepreacutesente la valeur lue du capteur

2 Actionneur sans sortie agrave chaque reacuteaction ilenvoi son entreacutee agrave lrsquoactionneur

3 Linux_IO ces des meacutemoires partageacutees qui

permettent le transfert de donneacutees entre syndexet un langage eacutevolueacute

E i S egrave R b i eacute d P d i Algorithm

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3279

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Algorithm

bull Le sommet memory possegravede uniquement uneentreacutee et une sortie crsquoest une opeacuteration agrave effetunique qui met la sortie degraves la premiegravere reacuteaction

agrave une valeur initiale calculeacutee auparavant et puisla sortie de la prochaine reacuteaction nrsquoest que

lrsquoentreacutee de la preacuteceacutedente reacuteactionbull Le sommet constant ne possegravede aucune entreacutee

il calcule sa sortie une seule fois avant la premiegravere reacuteaction puis la sortie demeure la mecircme pour chaque reacuteaction

E i S tegrave R b ti eacute d P d ti Algorithm

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3379

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

AlgorithmPour lrsquoalgorithme chaque sommet est caracteacuteriseacute par

bull Son type geacuteneacuterique (function extio memory constant)bull Un nom unique (tout les sommets doivent avoir des

noms diffeacuterents)bull Son type identifiant sa seacutequence drsquoinstructionsassocieacute

bull Sa liste drsquoarguments ougrave chaque argument est speacutecifieacute par bull Le nombre drsquoentreacuteesortiebull Le type de donneacuteesbull Le nom (tout les arguments doivent avoir des noms

diffeacuterents)

Equipe Systegraveme Robotiseacute de Production Architecture

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3479

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

ArchitectureLrsquoarchitecture est speacutecifieacutee comme un graphe non orienteacute

ougrave bullChaque sommet est une ressource seacutequentielle il y adeux types de sommets

bull processeur crsquoest une ressource de calcul enmesure drsquoexeacutecuter seacutequentiellement les opeacuterationsdrsquoun algorithme il pourrait ecirctre un processeur ou

un circuit inteacutegreacute speacutecialiseacutebull meacutedia crsquoest une ressource de communicationen mesure drsquoexeacutecuter seacutequentiellement un transfertde donneacutees entre les meacutemoires des processeurs quilui sont connecteacutes

bull chaque arc est une connexion bidirectionnelle entreun processeur et un meacutedia

Equipe Systegraveme Robotiseacute de Production Architecture

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3579

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

ArchitecturePour lrsquoarchitecture chaque sommet est caracteacuteriseacute par

bull Un nom uniquebullSon type (processeur or meacutedia)bull Son type identifiant caracteacuteristiques mateacuterielles

bull Sa liste de connecteurs ougrave chaque connecteur est speacutecifieacute par bull son type identifiant le type de meacutedia agrave qui il peut ecirctreconnecteacute

bullUn nom

Equipe Systegraveme Robotiseacute de ProductionCaracteacuter st que

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3679

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Caracteacuter st que Nous distinguons deux cateacutegories de caracteacuteristiques lrsquoune relative

aux opeacuterations et lrsquoune agrave la communication 1 Comment speacutecifier les caracteacuteristiques des opeacuterations sous le menu AdequationAlOp_ArOp on obtient une boite

de dialogue avec

une liste de toutles types de

processeurs et

pour chaque processeur uneliste de tout les

types drsquoopeacuterationsqui peut lesexeacutecuter avec ladureacutee drsquoexeacutecutioncorrespondante

Equipe Systegraveme Robotiseacute de ProductionCaracteacuteristique

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3779

q p y

S y nd

e xV

5

q2 Comment speacutecifier les caracteacuteristiques de communication

sous le menu AdequationAlIO_ArIO on obtient une boitede dialogue avec une liste de tout les types de meacutedia et

pour chaque meacutedia une liste de tout les types de donneacutees

qui peut transfeacuterer avec la dureacutee de transfertcorrespondante

Equipe Systegraveme Robotiseacute de Production Contraintes

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3879

S y nd

e xV

5

Pour contraindre une opeacuteration agrave srsquoexeacutecuter sur un processeur donneacutee

1Seacutelectionner le(s) opeacuteration(s) agrave contraindre2 Seacutelectionner la commande AlgorithmSetConstraint3 Seacutelectionner le processeur qui doit exeacutecute les opeacuterationsseacutelectionneacutees

Pour enlever les contraintes seacutelectionner lrsquoopeacuteration puis exeacutecuterla commande AlgorithmDeleteConstraint

Pour voir sur quel processeur une opeacuteration est y contrainteseacutelectionner lrsquoopeacuteration puis exeacutecuter la commandeAlgorithmShowConstraint le processeur correspondant y sera

seacutelectionneacutePour voir toute les opeacuterations qui sont contraintes sur un processeurseacutelectionner le processeur puis exeacutecuter la commande

ArchitectureShowConstrained du menu les opeacuterationscorrespondantes y seront seacutelectionneacutees

Equipe Systegraveme Robotiseacute de Production A eacutequat o

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3979

S y nd

e xV

5

q

Pour construire le planificateur des opeacuterations dugraphe drsquoalgorithme sur les processeurs du graphedrsquoarchitecture qui effectue automatiquement le routage

des deacutependances de donneacutees inter-processeurs et lacreacuteation et la planification des opeacuterations decommunication sur le meacutedia du graphe drsquoarchitectureon utilise la commande AdequationDoIt

Cette commande creacutee un heuristique qui cherche agraveminimiser le chemin critique du graphe drsquoalgorithme

Equipe Systegraveme Robotiseacute de ProductionGeacuteneacuteration du code exeacutecuti

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4079

S y nd

e xV

5Le code exeacutecutif est la partie qui gegravere les ressources

mateacuterielles pour les allouer aux besoins de lrsquoalgorithmedrsquoapplication Les ressources agrave allouer sont

1 Les espaces meacutemoires des processeurs2 Le temps des seacutequences drsquoinstructions3 Le temps des meacutedia de communication

Gracircce agrave la meacutethodologie AAA et le logiciel Syndexlrsquoutilisateur est exempte drsquoeacutecrire du code pour geacuterer ces

ressources Donc par simple exeacutecution de la commandeAdequationGenExec un code distribueacute pour chaque processeur est automatiquement geacuteneacutereacute Ce code est en

fait un exeacutecutif geacuteneacutereacute sur mesure pour lrsquoalgorithme etlrsquoarchitecture

Equipe Systegraveme Robotiseacute de ProductionGeacuteneacuteration du code exeacutecuti

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4179

S y nd

e xV5

Pour chaque processeur de lrsquoarchitecture un fichier

source macro-exeacutecutif m4 avec le mecircme nom estgeacuteneacutereacute plus un macro-makefile ayant le mecircme nom quecelui de lrsquoapplication Chacun de ces fichiers doit ecirctre

transcrit par le macro-processeur GNU M4 (assembleurC) Cette transcription deacutepend de plusieurs fichiers

1 Fichier syndexm4x qui deacutefini les macrosgeacuteneacuteriques de syndex2 Fichier processorTypem4x qui deacutefini les macros

de bas niveau du processeur3 Fichier applicationNamem4x qui deacutefini les macros

speacutecifiques agrave lrsquoapplication

4 Fichier mediaTypem4x qui deacutefini les macros decommunication de bas niveau du type de media

Equipe Systegraveme Robotiseacute de ProductionCreacuteat on rsquoapp cat on

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4279

S y nd

e xV5 Arborescence des reacutepertoires Rep_travail

Applicationmacros

~rtai

Eacutevolution de lrsquoapplication

Phase 1

Edition des macros(C ou Assembleur)

+GNUmakefile

Phase 2

Edition du graphe

(Algorithme amp

Architecteure)

Phase 3

Compilation amp Exeacutecution

Equipe Systegraveme Robotiseacute de ProductionSeacutequence de compilation de Synde

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4379

S y nd

e xV5

Equipe Systegraveme Robotiseacute de Production Plan

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4479

S y nd

e xV5

bull Introduction

bull Meacutethodologie AAA

bull Installation

bull Utilisation du logiciel Syndex

bull Macros

bull LinuxIO un interface CC++ avec SynDEx

bull Exemple drsquoapplication Robuter-ULM

Equipe Systegraveme Robotiseacute de Production

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4579

S y nd

e xV5

Macros Macros

bull Deacutefinition

bull Types de macros

bull Carte Robosoft MPC555

bull Macros Geacuteneacuterique MPC555

bull Macros speacutecifique Robosoftbull Macros de Communication

bull Macros drsquoapplicationbull Structure du fichier Macro

Equipe Systegraveme Robotiseacute de Production Deacutefinition

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4679

S y nd

e xV5

Un macro-processeur est un programme qui consommeen entreacutee une chaicircne de caractegraveres (texte source) la

traite seacutequentiellement en substituant chaque sous-chaicircne qursquoil reconnaicirct (Appel de macro) par unechaicircne correspondante de substitution ( Deacutefinition de

macro) qursquoil traite agrave nouveau jusqursquoagrave ce qursquoil nrsquo y ait plus de substitution possible et qui produit en sortie lachaicircne de caractegraveres traiteacutee

Equipe Systegraveme Robotiseacute de Productionypes e macrosL diffeacute t di ti t d d

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4779

S y nd

e xV5

Les diffeacuterents macros se distinguent en deux grandes

classes bull Macros geacuteneacuteriques

en geacuteneacuteral ceux sont des macros non destineacutes agraveecirctre utiliser directement par lrsquointerface syndexmais plutocirct utiliseacutees pour la programmation

drsquoautres macros (macros MPC555)bull Macros utilisateurs

macros utiliseacutes directement par syndex ils sontspeacutecifiques agrave lrsquoapplication (macros decommunication macros speacutecifiques robosoft

macros speacutecifiques agrave lrsquoapplication)

Equipe Systegraveme Robotiseacute de ProductionCarte Robosoft MPC555La carte Robosoft MPC555 est conccedilue pour la commande de robot de veacutehicule

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4879

S y nd

e xV5

(1) Connecteur du chip MPC555(2) Alimentation continue(3) Interface BDM (Basic Debug Interface)(4) Entreacute Analogique (Joystickhellip)(5) EntreacuteSortie logiques(6) Ligne seacuterie Synchrone (Codeur absolu)(7) Ligne seacuterie Asynchrone (Port 0)

(8) Ligne seacuterie Asynchrone (Port 1)(9) Connecteur du bus CAN (Port 0)(10) Connecteur du bus CAN (Port 1)(11) Axe 1(13) Axe 2(14) Axe 3(15) Axe 4

La carte Robosoft MPC555 est conccedilue pour la commande de robot de veacutehiculeeacutelectrique ou toute autre machine Elle permet de commander un axe gracircce agrave

lrsquoajout drsquoune carte fille le controcircle srsquoeacutetend jusqursquoagrave 4 axesCette carte est baseacutee sur le microcontrocircleur MPC555 32-bit de MotorolaElle peut opeacuterer agrave une freacutequence

de 40 MHz Divers signauxlogique et analogique peuventecirctre utiliser pour lrsquoacquisition deet la commande de mateacuteriel Les

sorties disponibles peuvent ecirctreanalogique ou PWMOn y trouve

Equipe Systegraveme Robotiseacute de ProductionArchitecture du MPC555

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4979

S y nd

e xV5

Equipe Systegraveme Robotiseacute de Productionaract r st ques u

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5079

S y nd

e xV5

Equipe Systegraveme Robotiseacute de Productionacros n r quesbull GPIO (General-Purpose InputOutput)

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5179

S y nd

e xV5

GPIO (General Purpose InputOutput)ce macro utilise le module USIU qui lui fourni 64 pins pour desentreacuteessorties numeacuteriques ordinaires (IO de la carte Robosoft lirelrsquoeacutetat de la pince envoi de commande agrave la pince lire les alarmes)

bull QADC (Queued Analog to Digital Converter)en utilisant le module QADC ce macro permet la conversion drsquounsignal analogique en entreacutee en un signal numeacuterique multi-niveaux(lire les donneacutees du capteur drsquoeacuteffort du joystick)

bull MIOS (Modular InputOutput System)Le module MIOS fourni 16 pins drsquoES numeacuteriques Sur la carte deRobosoft tous les pins sont en sortie Les 16 pins sont reacutepartiscomme suit

utilisateurs reacuteserveacutes

les pins de 0 agrave 11 sont reacuteserveacutes car ils sont preacutevus agrave ecirctre utiliseacutes pour unmateacuteriel particulier Mais si ce mateacuteriel nrsquoest pas utiliseacute lrsquoutilisateur peut lesutiliser librement

15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

Equipe Systegraveme Robotiseacute de ProductionMacros Geacuteneacuter ques MPC55

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5279

S y nd

e xV5

bull PWM (Pulse width Modulation)utilise le module MIOS (pins de 4-7 pour la direction des moteurset de 8-11 pour la validation) pour la commande des actionneursnumeacuteriques en PWM

bull TPU (Time Processor Units)les macros lieacutes agrave ce module permettent la lecture des encodeurs

increacutementauxbull QSPI (Queued Serial Peripheral Interface)

ce module fait partie du module QSMCM et les macros lieacutes servent

agrave son initialisation pour une communication avec du mateacuterielsexternes via le bus seacuterie synchrone

Equipe Systegraveme Robotiseacute de ProductionMacros Geacuteneacuter ques MPC55

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5379

S y nd

e x

V5 bull Serial port support (Polling implementation)

le MPC555 comprend dans le module QSMCM une interface decommunication seacuterie SCI qui permet la communication avec dumateacuteriels externes via un bus seacuterie asynchrone Plusieurs macros

sont lieacutes agrave cette interface pour initialiser et eacutetablir la communicationbull Serial port support (interrupt handling implementation)

pour la mecircme interface SCI du module QSMCM pour cette

meacutethode drsquoimpleacutementation les macros lieacutes initialisent et eacutetablissentla communication en mode par interruption ce qui permet dedeacutetecter lrsquoarriveacutee des donneacutees sur le port seacuterie au lieu de le scruter

en permanence

tous ces macros on les retrouvent dans le fichier 555m4x

Equipe Systegraveme Robotiseacute de ProductionMacros Speacutec ques Ro oso tles macros suivants sont deacutedieacutes agrave la carte de Robosoft MPC555

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5479

S y nd

e x

V5

bull Initialisation de la carte Robosoftmain_ini_() macro ne doit pas ecirctre utiliser par les programmateursdu fait qursquoelle sert qursquoagrave initialiser la carte robosoft Macro interne agrave

syndex dont lrsquoappel est automatique lors de geacuteneacuteration drsquoexeacutecutifMPC555

bull DAC (Digital to Analog Converter)

macro permet lrsquoutilisation du convertisseur de carte robosoft via lemodule MIOs en utilisant les pins de 0 agrave 2

bull LED (on-bord LED interface)

macro permet la gestion de la LED de la carte robosoft connecteacuteeau module QSPI (pin PCS1)

bull SPI absolute encoder

macro permet lrsquoutilisation lrsquointerface du codeur absolu de la carterobosoft connecteacute au module QSPI

Equipe Systegraveme Robotiseacute de ProductionMacros Speacutec ques Ro oso tbull Motor amplifier direction

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5579

S y nd

e x

V5

Motor amplifier directionmacro qui permet de geacuterer la direction des moteurs

bull Motor power amplifier validationles moteurs embarqueacutes sur les robots sont eacutequipeacutes de freins

eacutelectriquement commandable Ce macro permet drsquoenvoyer unsignal drsquoinhibition pour deacutebloquer les freins

bull Watch dog

pour des raisons de seacutecuriteacute un meacutecanisme mateacuteriel que robosofta ajouteacute sur la carte Ce watch-dog vise agrave stopper lrsquoactiviteacute dumoteur en cas ougrave le programme plante Le watch est impleacutementeacute

comme un time-out mateacuteriel Srsquoil nrsquoest pas rafraicircchi peacuteriodiquement il transmet un signal de sortie ce qui enlegraveve lavalidation de lrsquoamplificateur de puissance donc lrsquoarrecirct dumouvement

ces macros se trouvent dans le fichier RSBm4x

Equipe Systegraveme Robotiseacute de Production

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5679

S y nd

e x

V5

Macros de Communicationchaque meacutedia de communication (bus CAN ) est une ressourceseacutequentielle ougrave les transferts de donneacutees entre processeurs doiventsuivre un certain ordre Donc ce macro de communication sert agravedeacutefinir cet ordre et agrave identifier le protocole de communication lecodagedeacutecodage de lrsquoinformation et la synchronisation

on trouve ces macros dans le fichier CANm4x

Macros drsquoapplicationce genre de macros sont speacutecifique au mateacuteriel en question et aussiagrave lrsquoapplication en particulier Ce sont des macros utilisateurs

on trouve ces macros dans le fichier Application_namem4x

Equipe Systegraveme Robotiseacute de Production

section include (pour inclure drsquoautres fichiers macro agrave utiliseStructure du fichier macr

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5779

S y nd

e x

V5

section define (pour tous les macros utilisateurs)MGC lsquoINITrsquo (MGC Macro Generation Context variable)

divert (declaration) (deacutebut du macro)

(deacuteclaration des variables des meacutemoires et des csts

divert (o)

MGC lsquolooprsquocode en assembleur code en C

dnl (commentaires)

MGC lsquoENDrsquo dnl (fin de la macros)divert lsquo lsquo dnl

macros MPC555meacutemoire MPC555

constante MPC555

macros RTAImeacutemoire RTAI

constante RTAI

Equipe Systegraveme Robotiseacute de Production Plan

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5879

S y nd

e x

V5

bull Introduction

bull Meacutethodologie AAA

bull Installationbull Utilisation du logiciel Syndex

bull Macrosbull LinuxIO un interface CC++ avec SynDEx

bull Exemple drsquoapplication Robuter-ULM

Equipe Systegraveme Robotiseacute de Production

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5979

S y nd

e x

V5

LinuxIO LinuxIO une interface une interface

CC++ avecCC++ avec SynDExSynDEx

bull Principe de basebull Utilisation de linuxIO_ par syndex

bull Utilisation de linuxIO_ par un programmeCC++

Equipe Systegraveme Robotiseacute de ProductionPrincipe de baseSyndex fourni une interface graphique pour la conception

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6079

S y nd

e x

V5

Syndex fourni une interface graphique pour la conception

drsquoapplications Par contre des fois nous avons besoin drsquoautresfonctionnaliteacutes non disponibles donc il faut les creacuteer Cependantgeacuteneacuterer des macros pour syndex srsquoavegravere difficile pour certains du

fait qursquoil faut avoir une bonne connaissance de la programmation bas niveau Dans ce cas lrsquoutilisation de linux_IO trouve sa placedans un contexte particulier interfacer des applications CC++utilisateurs avec des applications embarqueacutees temps reacuteeldeacuteveloppeacutees sous syndex

Par rapport agrave ce contexte de programmation lrsquoorganisation du

deacuteveloppement des applications est structureacutee en deux parties 1 Application haut niveau

2 Application bas niveau

Equipe Systegraveme Robotiseacute de ProductionPrincipe de base

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6179

S y nd

e x

V5

En reacutesumeacute lrsquoapplicationutilisateur contient une

partie haut niveau enCC++ et une partie basniveau sous syndex avecun eacutechange de donneacuteesentre les deux partie en

utilisant la couche RTAIde linux

Equipe Systegraveme Robotiseacute de Production pp cat on aut n veauOn entend application haut

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6279

S y nd

e x

V5

niveau tout programmecomme la planification detrajectoires strateacutegies de

navigation etc hellipLrsquoeacutechange de donneacutees sefait par le biais desmeacutemoires partageacutees quifont parti du noyau RTAI

et de lrsquoespace utilisateursde Linux

Toute ressource preacutesente sur la carte Robosoft peutecirctre partageacutee sans aune restriction

Equipe Systegraveme Robotiseacute de Production pp cat on as n veauUne application bas niveau

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6379

S y nd

e x

V5

Une application bas niveau

est un programme conccedilusous syndex comme lacommande des moteurs la

lecture des capteurs etc hellipLes ressources mateacuteriellessont controcircler par plusieurs

cartes MPC555 Ces cartessrsquoeacutechangent des donneacuteesvia le bus CAN Donc ES

est prise en charge par lasource logicielle deacutedieacutee quisrsquoexeacutecute dans les cartes MPC555 puis la couche RTAI

est utiliseacute pour la mise agrave jour de meacutemoires partageacutees pour lrsquoespace utilisateurs linux drsquoeacutechange de donneacutees

Equipe Systegraveme Robotiseacute de ProductionUtilisation de linux_IO par syndex

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6479

S y nd

e x

V5

Equipe Systegraveme Robotiseacute de ProductionUtilisation de linux_IO par syndex

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6579

S y nd

e x

V5

Equipe Systegraveme Robotiseacute de Production

5

Utilisation de linux_IO par syndex

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6679

S y nd

e x

V5

Degraves que la conception de lrsquoapplication sous syndex esttermineacutee et apregraves compilation (AdequationDo it +GenExec) un fichier drsquoentecircte sous le nom de linioh est

automatiquement geacuteneacutereacute Ce fichier contient lesinformations neacutecessaires pour acceacuteder aux entreacutees enlecture et aux sorties en eacutecriture des opeacuterations linuxIO_

inseacutereacutees dans le graphe drsquoalgorithme Le contenu de cefichier est organiseacute en plusieurs parties une pour chaqueopeacuteration linux_IO preacutesente dans le graphe

Equipe Systegraveme Robotiseacute de Production

5

Utilisation de linux_IO par syndex linioh auto-generated C users API frontend

C i h b f 2001 i i i b f f

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6779

S y nd

e x

V5 Copyright Robosoft 2001 Pierre Pomiers ltpierrerobosoftfrgt

LINUX IO shared memory data segments

define SEG0_BASE 0x10000typedef struct

int js_spd_o0

int js_str_o0

int enc_R_o0int enc_L_o0

double odo_X_o0

double odo_Y_o0

double odo_T_o0int spd_R_o0

int spd_L_o0

int time

unsigned char sem shm_seg0_def

Nom du segment de meacutemoire partageacutee pour notre opeacuteration linuxIO_

7 signaux drsquoentreacutees Ces valeurs sonten lecture et sont peacuteriodiquementrafraicircchies par RTAI

2 signaux de sorties Ces valeurs sonten eacutecriture et sont peacuteriodiquementrafraicircchies par RTAI

Equipe Systegraveme Robotiseacute de Production

5

Crsquoest une eacutetape tregraves facile il suffit drsquoinclure le fichier drsquoentecirctelinio h dans le code du fichier en CC++ comme suit

Utilisation de linuxIO_ par un programme CC+

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6879

S y nd

e x

V5 linioh dans le code du fichier en CC++ comme suit

include linioh

include ltrtai_shmhgt

static shm_seg0_def seg0

shm_seg0_def robot

seg0 = rtai_malloc (SEG0_BASE sizeof (shm_seg0_def))

if (seg0-gtsem = 0) bcopy (seg0 amprobot sizeof (shm_seg0_def))helliphelliphellip

helliphelliphellip bcopy (amprobot seg0 sizeof (shm_seg0_def))helliphelliphelliphelliphelliphellip

rtai_free (SEG0_BASE seg0)

fichier drsquoentecircte de la meacutemoire partageacutee fourni dans la couche RTAI de linux

Initialisation du segment SEG0_BASE Allocation de lameacutemoire pointeacutee

par seg0

Lecture des donneacutees provenant du bas

niveau

Mise agrave jours du segment de meacutemoire partageacutee

Libeacuterer le segment de meacutemoire alloueacute

Equipe Systegraveme Robotiseacute de Production

5

Plan

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6979

S y nd e x

V5

bull Introductionbull Meacutethodologie AAA

bull Installationbull Utilisation du logiciel Syndex

bull Macrosbull LinuxIO un interface CC++ avec SynDEx

bull Exemple drsquoapplication Robuter-ULM

Equipe Systegraveme Robotiseacute de Production

V5

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7079

S y nd e x

V5

Exemple dapplication Exemple dapplication Robuter Robuter--ULM ULM

Equipe Systegraveme Robotiseacute de Production

V5

Description Robuter-ULMbull Base mobile (2-RM 2-RF)

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7179

S y nd e x

V

bull Bras ultra-leacuteger 6 axesbull Ceinture 24 capteurs US

bull Capteur drsquoefforts 6 axes

bull Cameacutera CCD monochromeavec carte drsquoacquisition

bull PC embarqueacute MMX 233

bull OS linux redhat 61 avecRTAI V-13

bull 3 bouton drsquoarrecirct drsquourgence

bull 4 batteries 48 VDC 4 X12V 60 Ah

bull Entreacutee Joystick

bull Liaison Ethernet sans fil

Le manipulateur mobile Robuter-ULM comprend

Equipe Systegraveme Robotiseacute de Production

V5

Base Mobilebull dimension

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7279

S y nd e x

V

1025 mm de longueur 680 mm de largueur et 44 cm de hauteurbull Poids environ 150 kg avec les batteriesbull charge jusqursquoagrave 120 kg

bull vitesse de 5cms agrave 125 msbull Moteurs 2 X 300 W DC 48 VDCbull orientation par diffeacuterence de vitesse

bull Preacutecision Position par encodeurs optiquesbull Deux roues motrices diffeacuterentielles et de deux roues follesbull Drsquoune ceinture de 24 capteurs Ultrasons

bull Une carte MPC555 de Robosoft pour le controcircle des deuxmoteurs DC des 2 rouesbull Un systegraveme drsquoodomeacutetrie qui donne la position relative du robot

par rapport agrave son repegravere

Equipe Systegraveme Robotiseacute de Production

V5

bull dimension Faute de documentation

Bras U tra- eacuteger

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7379

S y nd e x

V Faute de documentation

bull Poids moins de 20 kgbull charge 2 kgbull Moteurs 6 moteurs DC

bull gripper pince eacutelectrique 2 doigtsbull Reacutepeacutetabiliteacute +- 1mmbull 3 carte MPC555 de Robosoft lrsquoune pour le capteur drsquoeffort et les

deux autres pour les 6 moteurs + moteur de la pincebull Position encodeur increacutemental

1 2 3 4 5 6Axisrange

plusmn90deg 0-90deg plusmn80deg plusmn100deg plusmn90deg plusmn110deg

vitesse 180degs 180degs 180degs 180degs 180degs 180degs

Equipe Systegraveme Robotiseacute de Production

V5

rc tecture ar ware

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7479

S y nd e x

V

Equipe Systegraveme Robotiseacute de Production

V5

Pro eacutemat quePlusieurs applications peuvent ecirctre impleacutementeacutees sur le robot

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7579

S y nd e x

V

Cependant il faut faire la diffeacuterence entre les applications quidemande lrsquoutilisation de syndex et les applications qui neneacutecessite qursquoune programmation en CC++ Agrave titre drsquoexemple

bull Localisationbull Commande en position

bull Commande en forcebull Navigation

bull Geacuteneacuteration de trajectoire

bull Vision

Equipe Systegraveme Robotiseacute de Production

V5 bull Pince eacutelectrique (TOR)

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7679

S y nd e x

Vq ( )

bull Pince possegravede des ES Logiques

Notre application consiste agrave

bull Recevoir lrsquoeacutetat de la pince (fermeacutee ouverte )

bull Envoyer une commande vers la pince

Capture

drsquoinformation

Open

Close

CommandeMeacutemoire

Partageacutee

Actionneur

Pince Prise de deacutecision Pince

Equipe Systegraveme Robotiseacute de Production

V5

Sc eacutema eacute ectr que

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7779

S y nd e x

Equipe Systegraveme Robotiseacute de Production

V5

Conclusion

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7879

S y nd e x bull Introduction

bull Meacutethodologie AAA

bull Installationbull Utilisation du logiciel Syndex

bull Macrosbull LinuxIO un interface CC++ avec SynDEx

bull Exemple drsquoapplication Robuter-ULM

Equipe Systegraveme Robotiseacute de Production

V5

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7979

S y nd e x

Questions

Page 6: Cours Syndex

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 679

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV5

M M eacuteeacute thodologie thodologie AAA AAA

bull Systegraveme reacuteactifs temps reacuteel embarqueacuteesbull Algorithme

bull Architecturebull Adeacutequation

bull Impleacutementation

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 779

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV5

Systegravemes reacuteactifs temps reacuteel embarqueacutee

Les systegravemes informatiques eacutetant numeacuteriques les signauxdrsquoES sont discreacutetises aussi bien dans lespace des valeursque dans le temps La preacutecision de la commande deacutepend

de la reacutesolution de cette discreacutetisation

Une analyse matheacutematique utilisant la theacuteorie de la

commande permet de deacuteterminer dune part une bornesupeacuterieure sur le deacutelai qui seacutecoule entre deux eacutechantillons(cadence) et dautre part une borne supeacuterieure sur la dureacutee

du calcul (latence) entre une deacutetection de variation deacutetatde lenvironnement (stimulus) et la variation induite de lacommande (reacuteaction) Cest en ce sens quon parle de

systegravemes reacuteactifs

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 879

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 979

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV5

Meacutethodologie AA

Le but de la meacutethodologie AAA est de trouver lameilleure mise en correspondance entre unalgorithme speacutecifiant les fonctions de

lapplication agrave effectuer et une architecturemulti-composants tout en satisfaisant les

contraintes dembarquabiliteacute et de temps reacuteel dusystegraveme

Il est donc neacutecessaire de preacuteciser le sens que londonnera par la suite aux notions dalgorithmedarchitecture dadeacutequation et dimpleacutementation

Al i h

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 1079

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV5

Algorithme

Un algorithme est connu comme eacutetant une

seacutequence finie dopeacuterations (reacutealisables

en un temps fini et avec un support

mateacuteriel fini) Dans cette meacutethode cette

notion est eacutetendue pour prendre encompte dune part laspect infiniment

reacutepeacutetitif des applications reacuteactives et

dautre part laspect parallegravele neacutecessaire

a leur impleacutementation distribueacutee

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 1179

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV5

Op1

Op2

Op3 Op5

Op4

Op6

Capteur

Actionneur

Nœuds Opeacuteration

Arcs Transfert de donneacutees

Modegravele drsquoalgorithme

A hi

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 1279

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV5

Architecture

Larchitecture correspond auxcaracteacuteristiques structurelles du

calculateur exhibant un paralleacutelismedisponible en geacuteneacuteral moindre que leparalleacutelisme potentiel de lalgorithmePar abus de langage le termearchitecture sera ici souvent utilise dans

son sens geacuteneacuterique pour signifier agrave lafois le calculateur lui-mecircme ainsi queses caracteacuteristiques structurelles

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 1379

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV5

Meacutedia

Pr3

Pr1 Pr2

Pr123 Processeur

Meacutedia Moyen de communication

Arcs Transfert de donneacutees Modegravele drsquoarchitecture

Adeacute ti

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 1479

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

ladeacutequation consiste a mettre en correspondance de

maniegravere efficace lalgorithme et larchitecture pour reacutealiserune impleacutementation optimiseacutee

Adeacutequation

Instruction 1Instruction 2

hellip

hellip

Instruction N

Algorithme

Processeur Seacutequenceur

Architecture MonoprocesseurMeacutedia

Proc 1Seacuteq 1

Proc 2

Seacuteq 2Proc M

Seacuteq M

Architecture Multiprocesseurs

Inst 1

Inst 2

hellip

Inst N

Algorithme

Inst 1

Inst 2

hellip

Inst N

Inst 1

Inst 2

hellip

Inst N

hellip

hellip

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 1579

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Pour permettre une exploitation plus efficace du paralleacutelisme

disponible de larchitecture il faut eacutetendre lordre totaldexeacutecution des instructions du programme seacutequentielmonoprocesseur a un ordre partiel extrait par une analyse de

deacutependances de donneacutees entre instructions exhibant le paralleacutelisme potentiel de lalgorithme et permettant unedistribution et un ordonnancement

bull la distribution consiste agrave effectuer une Partition du graphe delrsquoalgorithme initial en autant drsquoeacuteleacutements de partition qursquoil y adrsquoopeacuterateur dans le graphe de lrsquoarchitecture

bull Lordonnancement consiste pour chaque eacuteleacutement de partition a lineacuteariser (rendre total) lordre partielcorrespondant au sous-graphe associe Cette phase estneacutecessaire car lopeacuterateur auquel on affecte un sous-graphe du

graphe de lalgorithme initial est geacutereacute par une seacutequenceurdrsquoinstruction

I leacute t ti

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 1679

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Impleacutementation

Limpleacutementation consiste a mettre en oeuvre

lalgorithme sur larchitecture cest- a-dire aallouer les ressources mateacuterielles de larchitectureaux opeacuterations de lalgorithme puis a compilercharger puis lancer lexeacutecution du programmecorrespondant sur le calculateur

Pl

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 1779

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Pla

bull Introduction

bull Meacutethodologie AAA

bull Installation

bull Utilisation du logiciel Syndex

bull Macros

bull LinuxIO un interface CC++ avec SynDEx

bull Exemple drsquoapplication Robuter-ULM

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 1879

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Installation Installation

bull Exigences mateacuteriellesbull Exigences logicielles

bull Installation de syndex V5bull Arborescence des reacutepertoires

Exigences mateacuteriels

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 1979

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Exigences mateacuteriels

bull Un PC avec un processeur de la famille Intel(80386 au minimum) ou un AMD

bull Une Carte de bus CAN (celle qui est installeacuteecrsquoest NuDACQ PCI-7841 baseacutee sur un chipPhilips SJA1000)

Ces deux speacutecifications sont suffisants pour ledeacuteveloppement drsquoune application RTAI

bull Pour les robots acquis il faut rajouter les cartes decontrocircle baseacutees sur le microcontrocircleur MPC555

Exigences logicielle

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 2079

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Exigences logiciellebull Un environnement sous Linux (quelle que soit la

distribution)bull Un module RTAI (Real-Time Applications

implementations)bull GNU gcc (outil de compilation)bull GNU binutils (outil pour assembler et eacutediter les liens

bull Le Logiciel Syndex V5bull Les macros de syndex pour

- carte de controcircle Robosoft- microcontrocircleur MPC555 de Motorola- PC sous LinuxRTAI

- Bus CAN

Installation de Syndex V

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 2179

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Installation de Syndex V

bull Creacuteation du reacutepertoire de destinationbull Copier le fichier avec la commande

cp syndex-xxx-linuxtgz rep_desbull Se mettre sous le reacutepertoire de destination puisdeacutecompresser le fichier avec la commande

tar zxvf syndex-xxx-linuxtgzCeci creacuteera sous le reacute pertoire de destination un sou

reacutepertoire de syndex contenant tout les fichiersDans le fichier syndexbat il faut mettre agrave jour lechemin du reacutepertoire de syndex

Arborescences des Reacutepertoire

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 2279

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Arborescences des Reacutepertoire

Apregraves lrsquoinstallation il est impeacuteratif drsquoorganiser lesreacutepertoires pour que lors de lrsquoeacutedition des liens le

fichier makefiles deacutepend de cette organisationLrsquoorganisation qui existe actuellement est comme

suit bull Apps applications deacuteveloppeacutees sous syndexbull Macros macros deacuteveloppeacutes pour syndex V5bull Rtai module rtai ou un lien symbolique qui point vers le reacutepertoire drsquoinstallation

Pla

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 2379

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Pla

bull Introduction

bull Meacutethodologie AAA

bull Installation

bull Utilisation du logiciel Syndex

bull Macros

bull LinuxIO un interface CC++ avec SynDEx

bull Exemple drsquoapplication Robuter-ULM

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 2479

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Utilisation du logicielUtilisation du logicielSyndexSyndex V5V5

bull Utilisation de lrsquointerface

bull Algorithme

bull Architecture

bull Caracteacuteristiques

bull Contraintes

bull Adeacutequation

bull Geacuteneacuteration du code exeacutecutif

SynDE

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 2579

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

SynDESynDEx est un logiciel graphique qui impleacutemente lameacutethodologie AAA et qui offre plusieurs fonctionnaliteacutes

bull Speacutecification drsquoun algorithme drsquoapplication saisi sousforme drsquoun graphe

bull Speacutecification drsquoun graphe drsquoarchitecture multi-composant

bull Heuristique pour la distribution et lrsquoordonnancement delrsquoalgorithme drsquoapplication sur lrsquoarchitecture avecoptimisation du temps de reacuteponse

bull Geacuteneacuteration des exeacutecutifs distribueacutes temps reacuteel

Utilisation de lrsquointerface

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 2679

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Utilisation de l interface

Utilisation de lrsquointerface

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 2779

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Utilisation de l interface

Utilisation de lrsquointerface

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 2879

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Utilisation de l interface

Algorithm

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 2979

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Algorithm

Lrsquoalgorithme est speacutecifieacute comme un graphe orienteacute ougravebull chaque sommet est une opeacuteration qui calcule les sorties

des entreacutees agrave chaque opeacuteration doit correspondre uneseacutequence drsquoinstructions compileacutee seacutepareacutement

bull Chaque arc est une deacutependance de donneacutees entre deux

opeacuterations (ou plus dans le cas de diffusion) c-a-d lasortie drsquoune opeacuteration est lrsquoentreacutee de lrsquoautre opeacuteration(ou de plusieurs autres opeacuterations) une entreacutee peut ecirctreconnecteacutee seulement agrave une sortie de mecircme type dedonneacutees

gor t m

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3079

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

gor t mon distingue 4 types de sommets

Algorithm

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3179

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Algorithmbull Le sommet function possegravede au moins une entreacutee et

une sortie crsquoest une opeacuteration agrave libre effet qui calculeses sorties uniquement agrave partir de ses entreacutees (c-a-d niagrave partir des variables globales ni agrave partir des

preacuteceacutedentes valeurs de ces entreacutees)bull Le sommet extio permet lrsquoacquisitionlrsquoeacutecriture des

entreacuteessorties on distingue trois cas

1 Capteur sans entreacutee agrave chaque reacuteaction sa sortierepreacutesente la valeur lue du capteur

2 Actionneur sans sortie agrave chaque reacuteaction ilenvoi son entreacutee agrave lrsquoactionneur

3 Linux_IO ces des meacutemoires partageacutees qui

permettent le transfert de donneacutees entre syndexet un langage eacutevolueacute

E i S egrave R b i eacute d P d i Algorithm

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3279

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Algorithm

bull Le sommet memory possegravede uniquement uneentreacutee et une sortie crsquoest une opeacuteration agrave effetunique qui met la sortie degraves la premiegravere reacuteaction

agrave une valeur initiale calculeacutee auparavant et puisla sortie de la prochaine reacuteaction nrsquoest que

lrsquoentreacutee de la preacuteceacutedente reacuteactionbull Le sommet constant ne possegravede aucune entreacutee

il calcule sa sortie une seule fois avant la premiegravere reacuteaction puis la sortie demeure la mecircme pour chaque reacuteaction

E i S tegrave R b ti eacute d P d ti Algorithm

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3379

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

AlgorithmPour lrsquoalgorithme chaque sommet est caracteacuteriseacute par

bull Son type geacuteneacuterique (function extio memory constant)bull Un nom unique (tout les sommets doivent avoir des

noms diffeacuterents)bull Son type identifiant sa seacutequence drsquoinstructionsassocieacute

bull Sa liste drsquoarguments ougrave chaque argument est speacutecifieacute par bull Le nombre drsquoentreacuteesortiebull Le type de donneacuteesbull Le nom (tout les arguments doivent avoir des noms

diffeacuterents)

Equipe Systegraveme Robotiseacute de Production Architecture

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3479

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

ArchitectureLrsquoarchitecture est speacutecifieacutee comme un graphe non orienteacute

ougrave bullChaque sommet est une ressource seacutequentielle il y adeux types de sommets

bull processeur crsquoest une ressource de calcul enmesure drsquoexeacutecuter seacutequentiellement les opeacuterationsdrsquoun algorithme il pourrait ecirctre un processeur ou

un circuit inteacutegreacute speacutecialiseacutebull meacutedia crsquoest une ressource de communicationen mesure drsquoexeacutecuter seacutequentiellement un transfertde donneacutees entre les meacutemoires des processeurs quilui sont connecteacutes

bull chaque arc est une connexion bidirectionnelle entreun processeur et un meacutedia

Equipe Systegraveme Robotiseacute de Production Architecture

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3579

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

ArchitecturePour lrsquoarchitecture chaque sommet est caracteacuteriseacute par

bull Un nom uniquebullSon type (processeur or meacutedia)bull Son type identifiant caracteacuteristiques mateacuterielles

bull Sa liste de connecteurs ougrave chaque connecteur est speacutecifieacute par bull son type identifiant le type de meacutedia agrave qui il peut ecirctreconnecteacute

bullUn nom

Equipe Systegraveme Robotiseacute de ProductionCaracteacuter st que

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3679

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Caracteacuter st que Nous distinguons deux cateacutegories de caracteacuteristiques lrsquoune relative

aux opeacuterations et lrsquoune agrave la communication 1 Comment speacutecifier les caracteacuteristiques des opeacuterations sous le menu AdequationAlOp_ArOp on obtient une boite

de dialogue avec

une liste de toutles types de

processeurs et

pour chaque processeur uneliste de tout les

types drsquoopeacuterationsqui peut lesexeacutecuter avec ladureacutee drsquoexeacutecutioncorrespondante

Equipe Systegraveme Robotiseacute de ProductionCaracteacuteristique

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3779

q p y

S y nd

e xV

5

q2 Comment speacutecifier les caracteacuteristiques de communication

sous le menu AdequationAlIO_ArIO on obtient une boitede dialogue avec une liste de tout les types de meacutedia et

pour chaque meacutedia une liste de tout les types de donneacutees

qui peut transfeacuterer avec la dureacutee de transfertcorrespondante

Equipe Systegraveme Robotiseacute de Production Contraintes

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3879

S y nd

e xV

5

Pour contraindre une opeacuteration agrave srsquoexeacutecuter sur un processeur donneacutee

1Seacutelectionner le(s) opeacuteration(s) agrave contraindre2 Seacutelectionner la commande AlgorithmSetConstraint3 Seacutelectionner le processeur qui doit exeacutecute les opeacuterationsseacutelectionneacutees

Pour enlever les contraintes seacutelectionner lrsquoopeacuteration puis exeacutecuterla commande AlgorithmDeleteConstraint

Pour voir sur quel processeur une opeacuteration est y contrainteseacutelectionner lrsquoopeacuteration puis exeacutecuter la commandeAlgorithmShowConstraint le processeur correspondant y sera

seacutelectionneacutePour voir toute les opeacuterations qui sont contraintes sur un processeurseacutelectionner le processeur puis exeacutecuter la commande

ArchitectureShowConstrained du menu les opeacuterationscorrespondantes y seront seacutelectionneacutees

Equipe Systegraveme Robotiseacute de Production A eacutequat o

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3979

S y nd

e xV

5

q

Pour construire le planificateur des opeacuterations dugraphe drsquoalgorithme sur les processeurs du graphedrsquoarchitecture qui effectue automatiquement le routage

des deacutependances de donneacutees inter-processeurs et lacreacuteation et la planification des opeacuterations decommunication sur le meacutedia du graphe drsquoarchitectureon utilise la commande AdequationDoIt

Cette commande creacutee un heuristique qui cherche agraveminimiser le chemin critique du graphe drsquoalgorithme

Equipe Systegraveme Robotiseacute de ProductionGeacuteneacuteration du code exeacutecuti

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4079

S y nd

e xV

5Le code exeacutecutif est la partie qui gegravere les ressources

mateacuterielles pour les allouer aux besoins de lrsquoalgorithmedrsquoapplication Les ressources agrave allouer sont

1 Les espaces meacutemoires des processeurs2 Le temps des seacutequences drsquoinstructions3 Le temps des meacutedia de communication

Gracircce agrave la meacutethodologie AAA et le logiciel Syndexlrsquoutilisateur est exempte drsquoeacutecrire du code pour geacuterer ces

ressources Donc par simple exeacutecution de la commandeAdequationGenExec un code distribueacute pour chaque processeur est automatiquement geacuteneacutereacute Ce code est en

fait un exeacutecutif geacuteneacutereacute sur mesure pour lrsquoalgorithme etlrsquoarchitecture

Equipe Systegraveme Robotiseacute de ProductionGeacuteneacuteration du code exeacutecuti

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4179

S y nd

e xV5

Pour chaque processeur de lrsquoarchitecture un fichier

source macro-exeacutecutif m4 avec le mecircme nom estgeacuteneacutereacute plus un macro-makefile ayant le mecircme nom quecelui de lrsquoapplication Chacun de ces fichiers doit ecirctre

transcrit par le macro-processeur GNU M4 (assembleurC) Cette transcription deacutepend de plusieurs fichiers

1 Fichier syndexm4x qui deacutefini les macrosgeacuteneacuteriques de syndex2 Fichier processorTypem4x qui deacutefini les macros

de bas niveau du processeur3 Fichier applicationNamem4x qui deacutefini les macros

speacutecifiques agrave lrsquoapplication

4 Fichier mediaTypem4x qui deacutefini les macros decommunication de bas niveau du type de media

Equipe Systegraveme Robotiseacute de ProductionCreacuteat on rsquoapp cat on

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4279

S y nd

e xV5 Arborescence des reacutepertoires Rep_travail

Applicationmacros

~rtai

Eacutevolution de lrsquoapplication

Phase 1

Edition des macros(C ou Assembleur)

+GNUmakefile

Phase 2

Edition du graphe

(Algorithme amp

Architecteure)

Phase 3

Compilation amp Exeacutecution

Equipe Systegraveme Robotiseacute de ProductionSeacutequence de compilation de Synde

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4379

S y nd

e xV5

Equipe Systegraveme Robotiseacute de Production Plan

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4479

S y nd

e xV5

bull Introduction

bull Meacutethodologie AAA

bull Installation

bull Utilisation du logiciel Syndex

bull Macros

bull LinuxIO un interface CC++ avec SynDEx

bull Exemple drsquoapplication Robuter-ULM

Equipe Systegraveme Robotiseacute de Production

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4579

S y nd

e xV5

Macros Macros

bull Deacutefinition

bull Types de macros

bull Carte Robosoft MPC555

bull Macros Geacuteneacuterique MPC555

bull Macros speacutecifique Robosoftbull Macros de Communication

bull Macros drsquoapplicationbull Structure du fichier Macro

Equipe Systegraveme Robotiseacute de Production Deacutefinition

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4679

S y nd

e xV5

Un macro-processeur est un programme qui consommeen entreacutee une chaicircne de caractegraveres (texte source) la

traite seacutequentiellement en substituant chaque sous-chaicircne qursquoil reconnaicirct (Appel de macro) par unechaicircne correspondante de substitution ( Deacutefinition de

macro) qursquoil traite agrave nouveau jusqursquoagrave ce qursquoil nrsquo y ait plus de substitution possible et qui produit en sortie lachaicircne de caractegraveres traiteacutee

Equipe Systegraveme Robotiseacute de Productionypes e macrosL diffeacute t di ti t d d

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4779

S y nd

e xV5

Les diffeacuterents macros se distinguent en deux grandes

classes bull Macros geacuteneacuteriques

en geacuteneacuteral ceux sont des macros non destineacutes agraveecirctre utiliser directement par lrsquointerface syndexmais plutocirct utiliseacutees pour la programmation

drsquoautres macros (macros MPC555)bull Macros utilisateurs

macros utiliseacutes directement par syndex ils sontspeacutecifiques agrave lrsquoapplication (macros decommunication macros speacutecifiques robosoft

macros speacutecifiques agrave lrsquoapplication)

Equipe Systegraveme Robotiseacute de ProductionCarte Robosoft MPC555La carte Robosoft MPC555 est conccedilue pour la commande de robot de veacutehicule

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4879

S y nd

e xV5

(1) Connecteur du chip MPC555(2) Alimentation continue(3) Interface BDM (Basic Debug Interface)(4) Entreacute Analogique (Joystickhellip)(5) EntreacuteSortie logiques(6) Ligne seacuterie Synchrone (Codeur absolu)(7) Ligne seacuterie Asynchrone (Port 0)

(8) Ligne seacuterie Asynchrone (Port 1)(9) Connecteur du bus CAN (Port 0)(10) Connecteur du bus CAN (Port 1)(11) Axe 1(13) Axe 2(14) Axe 3(15) Axe 4

La carte Robosoft MPC555 est conccedilue pour la commande de robot de veacutehiculeeacutelectrique ou toute autre machine Elle permet de commander un axe gracircce agrave

lrsquoajout drsquoune carte fille le controcircle srsquoeacutetend jusqursquoagrave 4 axesCette carte est baseacutee sur le microcontrocircleur MPC555 32-bit de MotorolaElle peut opeacuterer agrave une freacutequence

de 40 MHz Divers signauxlogique et analogique peuventecirctre utiliser pour lrsquoacquisition deet la commande de mateacuteriel Les

sorties disponibles peuvent ecirctreanalogique ou PWMOn y trouve

Equipe Systegraveme Robotiseacute de ProductionArchitecture du MPC555

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4979

S y nd

e xV5

Equipe Systegraveme Robotiseacute de Productionaract r st ques u

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5079

S y nd

e xV5

Equipe Systegraveme Robotiseacute de Productionacros n r quesbull GPIO (General-Purpose InputOutput)

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5179

S y nd

e xV5

GPIO (General Purpose InputOutput)ce macro utilise le module USIU qui lui fourni 64 pins pour desentreacuteessorties numeacuteriques ordinaires (IO de la carte Robosoft lirelrsquoeacutetat de la pince envoi de commande agrave la pince lire les alarmes)

bull QADC (Queued Analog to Digital Converter)en utilisant le module QADC ce macro permet la conversion drsquounsignal analogique en entreacutee en un signal numeacuterique multi-niveaux(lire les donneacutees du capteur drsquoeacuteffort du joystick)

bull MIOS (Modular InputOutput System)Le module MIOS fourni 16 pins drsquoES numeacuteriques Sur la carte deRobosoft tous les pins sont en sortie Les 16 pins sont reacutepartiscomme suit

utilisateurs reacuteserveacutes

les pins de 0 agrave 11 sont reacuteserveacutes car ils sont preacutevus agrave ecirctre utiliseacutes pour unmateacuteriel particulier Mais si ce mateacuteriel nrsquoest pas utiliseacute lrsquoutilisateur peut lesutiliser librement

15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

Equipe Systegraveme Robotiseacute de ProductionMacros Geacuteneacuter ques MPC55

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5279

S y nd

e xV5

bull PWM (Pulse width Modulation)utilise le module MIOS (pins de 4-7 pour la direction des moteurset de 8-11 pour la validation) pour la commande des actionneursnumeacuteriques en PWM

bull TPU (Time Processor Units)les macros lieacutes agrave ce module permettent la lecture des encodeurs

increacutementauxbull QSPI (Queued Serial Peripheral Interface)

ce module fait partie du module QSMCM et les macros lieacutes servent

agrave son initialisation pour une communication avec du mateacuterielsexternes via le bus seacuterie synchrone

Equipe Systegraveme Robotiseacute de ProductionMacros Geacuteneacuter ques MPC55

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5379

S y nd

e x

V5 bull Serial port support (Polling implementation)

le MPC555 comprend dans le module QSMCM une interface decommunication seacuterie SCI qui permet la communication avec dumateacuteriels externes via un bus seacuterie asynchrone Plusieurs macros

sont lieacutes agrave cette interface pour initialiser et eacutetablir la communicationbull Serial port support (interrupt handling implementation)

pour la mecircme interface SCI du module QSMCM pour cette

meacutethode drsquoimpleacutementation les macros lieacutes initialisent et eacutetablissentla communication en mode par interruption ce qui permet dedeacutetecter lrsquoarriveacutee des donneacutees sur le port seacuterie au lieu de le scruter

en permanence

tous ces macros on les retrouvent dans le fichier 555m4x

Equipe Systegraveme Robotiseacute de ProductionMacros Speacutec ques Ro oso tles macros suivants sont deacutedieacutes agrave la carte de Robosoft MPC555

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5479

S y nd

e x

V5

bull Initialisation de la carte Robosoftmain_ini_() macro ne doit pas ecirctre utiliser par les programmateursdu fait qursquoelle sert qursquoagrave initialiser la carte robosoft Macro interne agrave

syndex dont lrsquoappel est automatique lors de geacuteneacuteration drsquoexeacutecutifMPC555

bull DAC (Digital to Analog Converter)

macro permet lrsquoutilisation du convertisseur de carte robosoft via lemodule MIOs en utilisant les pins de 0 agrave 2

bull LED (on-bord LED interface)

macro permet la gestion de la LED de la carte robosoft connecteacuteeau module QSPI (pin PCS1)

bull SPI absolute encoder

macro permet lrsquoutilisation lrsquointerface du codeur absolu de la carterobosoft connecteacute au module QSPI

Equipe Systegraveme Robotiseacute de ProductionMacros Speacutec ques Ro oso tbull Motor amplifier direction

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5579

S y nd

e x

V5

Motor amplifier directionmacro qui permet de geacuterer la direction des moteurs

bull Motor power amplifier validationles moteurs embarqueacutes sur les robots sont eacutequipeacutes de freins

eacutelectriquement commandable Ce macro permet drsquoenvoyer unsignal drsquoinhibition pour deacutebloquer les freins

bull Watch dog

pour des raisons de seacutecuriteacute un meacutecanisme mateacuteriel que robosofta ajouteacute sur la carte Ce watch-dog vise agrave stopper lrsquoactiviteacute dumoteur en cas ougrave le programme plante Le watch est impleacutementeacute

comme un time-out mateacuteriel Srsquoil nrsquoest pas rafraicircchi peacuteriodiquement il transmet un signal de sortie ce qui enlegraveve lavalidation de lrsquoamplificateur de puissance donc lrsquoarrecirct dumouvement

ces macros se trouvent dans le fichier RSBm4x

Equipe Systegraveme Robotiseacute de Production

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5679

S y nd

e x

V5

Macros de Communicationchaque meacutedia de communication (bus CAN ) est une ressourceseacutequentielle ougrave les transferts de donneacutees entre processeurs doiventsuivre un certain ordre Donc ce macro de communication sert agravedeacutefinir cet ordre et agrave identifier le protocole de communication lecodagedeacutecodage de lrsquoinformation et la synchronisation

on trouve ces macros dans le fichier CANm4x

Macros drsquoapplicationce genre de macros sont speacutecifique au mateacuteriel en question et aussiagrave lrsquoapplication en particulier Ce sont des macros utilisateurs

on trouve ces macros dans le fichier Application_namem4x

Equipe Systegraveme Robotiseacute de Production

section include (pour inclure drsquoautres fichiers macro agrave utiliseStructure du fichier macr

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5779

S y nd

e x

V5

section define (pour tous les macros utilisateurs)MGC lsquoINITrsquo (MGC Macro Generation Context variable)

divert (declaration) (deacutebut du macro)

(deacuteclaration des variables des meacutemoires et des csts

divert (o)

MGC lsquolooprsquocode en assembleur code en C

dnl (commentaires)

MGC lsquoENDrsquo dnl (fin de la macros)divert lsquo lsquo dnl

macros MPC555meacutemoire MPC555

constante MPC555

macros RTAImeacutemoire RTAI

constante RTAI

Equipe Systegraveme Robotiseacute de Production Plan

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5879

S y nd

e x

V5

bull Introduction

bull Meacutethodologie AAA

bull Installationbull Utilisation du logiciel Syndex

bull Macrosbull LinuxIO un interface CC++ avec SynDEx

bull Exemple drsquoapplication Robuter-ULM

Equipe Systegraveme Robotiseacute de Production

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5979

S y nd

e x

V5

LinuxIO LinuxIO une interface une interface

CC++ avecCC++ avec SynDExSynDEx

bull Principe de basebull Utilisation de linuxIO_ par syndex

bull Utilisation de linuxIO_ par un programmeCC++

Equipe Systegraveme Robotiseacute de ProductionPrincipe de baseSyndex fourni une interface graphique pour la conception

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6079

S y nd

e x

V5

Syndex fourni une interface graphique pour la conception

drsquoapplications Par contre des fois nous avons besoin drsquoautresfonctionnaliteacutes non disponibles donc il faut les creacuteer Cependantgeacuteneacuterer des macros pour syndex srsquoavegravere difficile pour certains du

fait qursquoil faut avoir une bonne connaissance de la programmation bas niveau Dans ce cas lrsquoutilisation de linux_IO trouve sa placedans un contexte particulier interfacer des applications CC++utilisateurs avec des applications embarqueacutees temps reacuteeldeacuteveloppeacutees sous syndex

Par rapport agrave ce contexte de programmation lrsquoorganisation du

deacuteveloppement des applications est structureacutee en deux parties 1 Application haut niveau

2 Application bas niveau

Equipe Systegraveme Robotiseacute de ProductionPrincipe de base

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6179

S y nd

e x

V5

En reacutesumeacute lrsquoapplicationutilisateur contient une

partie haut niveau enCC++ et une partie basniveau sous syndex avecun eacutechange de donneacuteesentre les deux partie en

utilisant la couche RTAIde linux

Equipe Systegraveme Robotiseacute de Production pp cat on aut n veauOn entend application haut

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6279

S y nd

e x

V5

niveau tout programmecomme la planification detrajectoires strateacutegies de

navigation etc hellipLrsquoeacutechange de donneacutees sefait par le biais desmeacutemoires partageacutees quifont parti du noyau RTAI

et de lrsquoespace utilisateursde Linux

Toute ressource preacutesente sur la carte Robosoft peutecirctre partageacutee sans aune restriction

Equipe Systegraveme Robotiseacute de Production pp cat on as n veauUne application bas niveau

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6379

S y nd

e x

V5

Une application bas niveau

est un programme conccedilusous syndex comme lacommande des moteurs la

lecture des capteurs etc hellipLes ressources mateacuteriellessont controcircler par plusieurs

cartes MPC555 Ces cartessrsquoeacutechangent des donneacuteesvia le bus CAN Donc ES

est prise en charge par lasource logicielle deacutedieacutee quisrsquoexeacutecute dans les cartes MPC555 puis la couche RTAI

est utiliseacute pour la mise agrave jour de meacutemoires partageacutees pour lrsquoespace utilisateurs linux drsquoeacutechange de donneacutees

Equipe Systegraveme Robotiseacute de ProductionUtilisation de linux_IO par syndex

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6479

S y nd

e x

V5

Equipe Systegraveme Robotiseacute de ProductionUtilisation de linux_IO par syndex

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6579

S y nd

e x

V5

Equipe Systegraveme Robotiseacute de Production

5

Utilisation de linux_IO par syndex

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6679

S y nd

e x

V5

Degraves que la conception de lrsquoapplication sous syndex esttermineacutee et apregraves compilation (AdequationDo it +GenExec) un fichier drsquoentecircte sous le nom de linioh est

automatiquement geacuteneacutereacute Ce fichier contient lesinformations neacutecessaires pour acceacuteder aux entreacutees enlecture et aux sorties en eacutecriture des opeacuterations linuxIO_

inseacutereacutees dans le graphe drsquoalgorithme Le contenu de cefichier est organiseacute en plusieurs parties une pour chaqueopeacuteration linux_IO preacutesente dans le graphe

Equipe Systegraveme Robotiseacute de Production

5

Utilisation de linux_IO par syndex linioh auto-generated C users API frontend

C i h b f 2001 i i i b f f

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6779

S y nd

e x

V5 Copyright Robosoft 2001 Pierre Pomiers ltpierrerobosoftfrgt

LINUX IO shared memory data segments

define SEG0_BASE 0x10000typedef struct

int js_spd_o0

int js_str_o0

int enc_R_o0int enc_L_o0

double odo_X_o0

double odo_Y_o0

double odo_T_o0int spd_R_o0

int spd_L_o0

int time

unsigned char sem shm_seg0_def

Nom du segment de meacutemoire partageacutee pour notre opeacuteration linuxIO_

7 signaux drsquoentreacutees Ces valeurs sonten lecture et sont peacuteriodiquementrafraicircchies par RTAI

2 signaux de sorties Ces valeurs sonten eacutecriture et sont peacuteriodiquementrafraicircchies par RTAI

Equipe Systegraveme Robotiseacute de Production

5

Crsquoest une eacutetape tregraves facile il suffit drsquoinclure le fichier drsquoentecirctelinio h dans le code du fichier en CC++ comme suit

Utilisation de linuxIO_ par un programme CC+

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6879

S y nd

e x

V5 linioh dans le code du fichier en CC++ comme suit

include linioh

include ltrtai_shmhgt

static shm_seg0_def seg0

shm_seg0_def robot

seg0 = rtai_malloc (SEG0_BASE sizeof (shm_seg0_def))

if (seg0-gtsem = 0) bcopy (seg0 amprobot sizeof (shm_seg0_def))helliphelliphellip

helliphelliphellip bcopy (amprobot seg0 sizeof (shm_seg0_def))helliphelliphelliphelliphelliphellip

rtai_free (SEG0_BASE seg0)

fichier drsquoentecircte de la meacutemoire partageacutee fourni dans la couche RTAI de linux

Initialisation du segment SEG0_BASE Allocation de lameacutemoire pointeacutee

par seg0

Lecture des donneacutees provenant du bas

niveau

Mise agrave jours du segment de meacutemoire partageacutee

Libeacuterer le segment de meacutemoire alloueacute

Equipe Systegraveme Robotiseacute de Production

5

Plan

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6979

S y nd e x

V5

bull Introductionbull Meacutethodologie AAA

bull Installationbull Utilisation du logiciel Syndex

bull Macrosbull LinuxIO un interface CC++ avec SynDEx

bull Exemple drsquoapplication Robuter-ULM

Equipe Systegraveme Robotiseacute de Production

V5

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7079

S y nd e x

V5

Exemple dapplication Exemple dapplication Robuter Robuter--ULM ULM

Equipe Systegraveme Robotiseacute de Production

V5

Description Robuter-ULMbull Base mobile (2-RM 2-RF)

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7179

S y nd e x

V

bull Bras ultra-leacuteger 6 axesbull Ceinture 24 capteurs US

bull Capteur drsquoefforts 6 axes

bull Cameacutera CCD monochromeavec carte drsquoacquisition

bull PC embarqueacute MMX 233

bull OS linux redhat 61 avecRTAI V-13

bull 3 bouton drsquoarrecirct drsquourgence

bull 4 batteries 48 VDC 4 X12V 60 Ah

bull Entreacutee Joystick

bull Liaison Ethernet sans fil

Le manipulateur mobile Robuter-ULM comprend

Equipe Systegraveme Robotiseacute de Production

V5

Base Mobilebull dimension

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7279

S y nd e x

V

1025 mm de longueur 680 mm de largueur et 44 cm de hauteurbull Poids environ 150 kg avec les batteriesbull charge jusqursquoagrave 120 kg

bull vitesse de 5cms agrave 125 msbull Moteurs 2 X 300 W DC 48 VDCbull orientation par diffeacuterence de vitesse

bull Preacutecision Position par encodeurs optiquesbull Deux roues motrices diffeacuterentielles et de deux roues follesbull Drsquoune ceinture de 24 capteurs Ultrasons

bull Une carte MPC555 de Robosoft pour le controcircle des deuxmoteurs DC des 2 rouesbull Un systegraveme drsquoodomeacutetrie qui donne la position relative du robot

par rapport agrave son repegravere

Equipe Systegraveme Robotiseacute de Production

V5

bull dimension Faute de documentation

Bras U tra- eacuteger

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7379

S y nd e x

V Faute de documentation

bull Poids moins de 20 kgbull charge 2 kgbull Moteurs 6 moteurs DC

bull gripper pince eacutelectrique 2 doigtsbull Reacutepeacutetabiliteacute +- 1mmbull 3 carte MPC555 de Robosoft lrsquoune pour le capteur drsquoeffort et les

deux autres pour les 6 moteurs + moteur de la pincebull Position encodeur increacutemental

1 2 3 4 5 6Axisrange

plusmn90deg 0-90deg plusmn80deg plusmn100deg plusmn90deg plusmn110deg

vitesse 180degs 180degs 180degs 180degs 180degs 180degs

Equipe Systegraveme Robotiseacute de Production

V5

rc tecture ar ware

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7479

S y nd e x

V

Equipe Systegraveme Robotiseacute de Production

V5

Pro eacutemat quePlusieurs applications peuvent ecirctre impleacutementeacutees sur le robot

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7579

S y nd e x

V

Cependant il faut faire la diffeacuterence entre les applications quidemande lrsquoutilisation de syndex et les applications qui neneacutecessite qursquoune programmation en CC++ Agrave titre drsquoexemple

bull Localisationbull Commande en position

bull Commande en forcebull Navigation

bull Geacuteneacuteration de trajectoire

bull Vision

Equipe Systegraveme Robotiseacute de Production

V5 bull Pince eacutelectrique (TOR)

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7679

S y nd e x

Vq ( )

bull Pince possegravede des ES Logiques

Notre application consiste agrave

bull Recevoir lrsquoeacutetat de la pince (fermeacutee ouverte )

bull Envoyer une commande vers la pince

Capture

drsquoinformation

Open

Close

CommandeMeacutemoire

Partageacutee

Actionneur

Pince Prise de deacutecision Pince

Equipe Systegraveme Robotiseacute de Production

V5

Sc eacutema eacute ectr que

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7779

S y nd e x

Equipe Systegraveme Robotiseacute de Production

V5

Conclusion

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7879

S y nd e x bull Introduction

bull Meacutethodologie AAA

bull Installationbull Utilisation du logiciel Syndex

bull Macrosbull LinuxIO un interface CC++ avec SynDEx

bull Exemple drsquoapplication Robuter-ULM

Equipe Systegraveme Robotiseacute de Production

V5

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7979

S y nd e x

Questions

Page 7: Cours Syndex

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 779

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV5

Systegravemes reacuteactifs temps reacuteel embarqueacutee

Les systegravemes informatiques eacutetant numeacuteriques les signauxdrsquoES sont discreacutetises aussi bien dans lespace des valeursque dans le temps La preacutecision de la commande deacutepend

de la reacutesolution de cette discreacutetisation

Une analyse matheacutematique utilisant la theacuteorie de la

commande permet de deacuteterminer dune part une bornesupeacuterieure sur le deacutelai qui seacutecoule entre deux eacutechantillons(cadence) et dautre part une borne supeacuterieure sur la dureacutee

du calcul (latence) entre une deacutetection de variation deacutetatde lenvironnement (stimulus) et la variation induite de lacommande (reacuteaction) Cest en ce sens quon parle de

systegravemes reacuteactifs

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 879

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 979

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV5

Meacutethodologie AA

Le but de la meacutethodologie AAA est de trouver lameilleure mise en correspondance entre unalgorithme speacutecifiant les fonctions de

lapplication agrave effectuer et une architecturemulti-composants tout en satisfaisant les

contraintes dembarquabiliteacute et de temps reacuteel dusystegraveme

Il est donc neacutecessaire de preacuteciser le sens que londonnera par la suite aux notions dalgorithmedarchitecture dadeacutequation et dimpleacutementation

Al i h

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 1079

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV5

Algorithme

Un algorithme est connu comme eacutetant une

seacutequence finie dopeacuterations (reacutealisables

en un temps fini et avec un support

mateacuteriel fini) Dans cette meacutethode cette

notion est eacutetendue pour prendre encompte dune part laspect infiniment

reacutepeacutetitif des applications reacuteactives et

dautre part laspect parallegravele neacutecessaire

a leur impleacutementation distribueacutee

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 1179

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV5

Op1

Op2

Op3 Op5

Op4

Op6

Capteur

Actionneur

Nœuds Opeacuteration

Arcs Transfert de donneacutees

Modegravele drsquoalgorithme

A hi

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 1279

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV5

Architecture

Larchitecture correspond auxcaracteacuteristiques structurelles du

calculateur exhibant un paralleacutelismedisponible en geacuteneacuteral moindre que leparalleacutelisme potentiel de lalgorithmePar abus de langage le termearchitecture sera ici souvent utilise dans

son sens geacuteneacuterique pour signifier agrave lafois le calculateur lui-mecircme ainsi queses caracteacuteristiques structurelles

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 1379

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV5

Meacutedia

Pr3

Pr1 Pr2

Pr123 Processeur

Meacutedia Moyen de communication

Arcs Transfert de donneacutees Modegravele drsquoarchitecture

Adeacute ti

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 1479

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

ladeacutequation consiste a mettre en correspondance de

maniegravere efficace lalgorithme et larchitecture pour reacutealiserune impleacutementation optimiseacutee

Adeacutequation

Instruction 1Instruction 2

hellip

hellip

Instruction N

Algorithme

Processeur Seacutequenceur

Architecture MonoprocesseurMeacutedia

Proc 1Seacuteq 1

Proc 2

Seacuteq 2Proc M

Seacuteq M

Architecture Multiprocesseurs

Inst 1

Inst 2

hellip

Inst N

Algorithme

Inst 1

Inst 2

hellip

Inst N

Inst 1

Inst 2

hellip

Inst N

hellip

hellip

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 1579

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Pour permettre une exploitation plus efficace du paralleacutelisme

disponible de larchitecture il faut eacutetendre lordre totaldexeacutecution des instructions du programme seacutequentielmonoprocesseur a un ordre partiel extrait par une analyse de

deacutependances de donneacutees entre instructions exhibant le paralleacutelisme potentiel de lalgorithme et permettant unedistribution et un ordonnancement

bull la distribution consiste agrave effectuer une Partition du graphe delrsquoalgorithme initial en autant drsquoeacuteleacutements de partition qursquoil y adrsquoopeacuterateur dans le graphe de lrsquoarchitecture

bull Lordonnancement consiste pour chaque eacuteleacutement de partition a lineacuteariser (rendre total) lordre partielcorrespondant au sous-graphe associe Cette phase estneacutecessaire car lopeacuterateur auquel on affecte un sous-graphe du

graphe de lalgorithme initial est geacutereacute par une seacutequenceurdrsquoinstruction

I leacute t ti

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 1679

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Impleacutementation

Limpleacutementation consiste a mettre en oeuvre

lalgorithme sur larchitecture cest- a-dire aallouer les ressources mateacuterielles de larchitectureaux opeacuterations de lalgorithme puis a compilercharger puis lancer lexeacutecution du programmecorrespondant sur le calculateur

Pl

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 1779

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Pla

bull Introduction

bull Meacutethodologie AAA

bull Installation

bull Utilisation du logiciel Syndex

bull Macros

bull LinuxIO un interface CC++ avec SynDEx

bull Exemple drsquoapplication Robuter-ULM

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 1879

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Installation Installation

bull Exigences mateacuteriellesbull Exigences logicielles

bull Installation de syndex V5bull Arborescence des reacutepertoires

Exigences mateacuteriels

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 1979

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Exigences mateacuteriels

bull Un PC avec un processeur de la famille Intel(80386 au minimum) ou un AMD

bull Une Carte de bus CAN (celle qui est installeacuteecrsquoest NuDACQ PCI-7841 baseacutee sur un chipPhilips SJA1000)

Ces deux speacutecifications sont suffisants pour ledeacuteveloppement drsquoune application RTAI

bull Pour les robots acquis il faut rajouter les cartes decontrocircle baseacutees sur le microcontrocircleur MPC555

Exigences logicielle

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 2079

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Exigences logiciellebull Un environnement sous Linux (quelle que soit la

distribution)bull Un module RTAI (Real-Time Applications

implementations)bull GNU gcc (outil de compilation)bull GNU binutils (outil pour assembler et eacutediter les liens

bull Le Logiciel Syndex V5bull Les macros de syndex pour

- carte de controcircle Robosoft- microcontrocircleur MPC555 de Motorola- PC sous LinuxRTAI

- Bus CAN

Installation de Syndex V

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 2179

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Installation de Syndex V

bull Creacuteation du reacutepertoire de destinationbull Copier le fichier avec la commande

cp syndex-xxx-linuxtgz rep_desbull Se mettre sous le reacutepertoire de destination puisdeacutecompresser le fichier avec la commande

tar zxvf syndex-xxx-linuxtgzCeci creacuteera sous le reacute pertoire de destination un sou

reacutepertoire de syndex contenant tout les fichiersDans le fichier syndexbat il faut mettre agrave jour lechemin du reacutepertoire de syndex

Arborescences des Reacutepertoire

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 2279

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Arborescences des Reacutepertoire

Apregraves lrsquoinstallation il est impeacuteratif drsquoorganiser lesreacutepertoires pour que lors de lrsquoeacutedition des liens le

fichier makefiles deacutepend de cette organisationLrsquoorganisation qui existe actuellement est comme

suit bull Apps applications deacuteveloppeacutees sous syndexbull Macros macros deacuteveloppeacutes pour syndex V5bull Rtai module rtai ou un lien symbolique qui point vers le reacutepertoire drsquoinstallation

Pla

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 2379

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Pla

bull Introduction

bull Meacutethodologie AAA

bull Installation

bull Utilisation du logiciel Syndex

bull Macros

bull LinuxIO un interface CC++ avec SynDEx

bull Exemple drsquoapplication Robuter-ULM

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 2479

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Utilisation du logicielUtilisation du logicielSyndexSyndex V5V5

bull Utilisation de lrsquointerface

bull Algorithme

bull Architecture

bull Caracteacuteristiques

bull Contraintes

bull Adeacutequation

bull Geacuteneacuteration du code exeacutecutif

SynDE

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 2579

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

SynDESynDEx est un logiciel graphique qui impleacutemente lameacutethodologie AAA et qui offre plusieurs fonctionnaliteacutes

bull Speacutecification drsquoun algorithme drsquoapplication saisi sousforme drsquoun graphe

bull Speacutecification drsquoun graphe drsquoarchitecture multi-composant

bull Heuristique pour la distribution et lrsquoordonnancement delrsquoalgorithme drsquoapplication sur lrsquoarchitecture avecoptimisation du temps de reacuteponse

bull Geacuteneacuteration des exeacutecutifs distribueacutes temps reacuteel

Utilisation de lrsquointerface

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 2679

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Utilisation de l interface

Utilisation de lrsquointerface

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 2779

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Utilisation de l interface

Utilisation de lrsquointerface

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 2879

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Utilisation de l interface

Algorithm

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 2979

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Algorithm

Lrsquoalgorithme est speacutecifieacute comme un graphe orienteacute ougravebull chaque sommet est une opeacuteration qui calcule les sorties

des entreacutees agrave chaque opeacuteration doit correspondre uneseacutequence drsquoinstructions compileacutee seacutepareacutement

bull Chaque arc est une deacutependance de donneacutees entre deux

opeacuterations (ou plus dans le cas de diffusion) c-a-d lasortie drsquoune opeacuteration est lrsquoentreacutee de lrsquoautre opeacuteration(ou de plusieurs autres opeacuterations) une entreacutee peut ecirctreconnecteacutee seulement agrave une sortie de mecircme type dedonneacutees

gor t m

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3079

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

gor t mon distingue 4 types de sommets

Algorithm

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3179

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Algorithmbull Le sommet function possegravede au moins une entreacutee et

une sortie crsquoest une opeacuteration agrave libre effet qui calculeses sorties uniquement agrave partir de ses entreacutees (c-a-d niagrave partir des variables globales ni agrave partir des

preacuteceacutedentes valeurs de ces entreacutees)bull Le sommet extio permet lrsquoacquisitionlrsquoeacutecriture des

entreacuteessorties on distingue trois cas

1 Capteur sans entreacutee agrave chaque reacuteaction sa sortierepreacutesente la valeur lue du capteur

2 Actionneur sans sortie agrave chaque reacuteaction ilenvoi son entreacutee agrave lrsquoactionneur

3 Linux_IO ces des meacutemoires partageacutees qui

permettent le transfert de donneacutees entre syndexet un langage eacutevolueacute

E i S egrave R b i eacute d P d i Algorithm

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3279

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Algorithm

bull Le sommet memory possegravede uniquement uneentreacutee et une sortie crsquoest une opeacuteration agrave effetunique qui met la sortie degraves la premiegravere reacuteaction

agrave une valeur initiale calculeacutee auparavant et puisla sortie de la prochaine reacuteaction nrsquoest que

lrsquoentreacutee de la preacuteceacutedente reacuteactionbull Le sommet constant ne possegravede aucune entreacutee

il calcule sa sortie une seule fois avant la premiegravere reacuteaction puis la sortie demeure la mecircme pour chaque reacuteaction

E i S tegrave R b ti eacute d P d ti Algorithm

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3379

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

AlgorithmPour lrsquoalgorithme chaque sommet est caracteacuteriseacute par

bull Son type geacuteneacuterique (function extio memory constant)bull Un nom unique (tout les sommets doivent avoir des

noms diffeacuterents)bull Son type identifiant sa seacutequence drsquoinstructionsassocieacute

bull Sa liste drsquoarguments ougrave chaque argument est speacutecifieacute par bull Le nombre drsquoentreacuteesortiebull Le type de donneacuteesbull Le nom (tout les arguments doivent avoir des noms

diffeacuterents)

Equipe Systegraveme Robotiseacute de Production Architecture

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3479

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

ArchitectureLrsquoarchitecture est speacutecifieacutee comme un graphe non orienteacute

ougrave bullChaque sommet est une ressource seacutequentielle il y adeux types de sommets

bull processeur crsquoest une ressource de calcul enmesure drsquoexeacutecuter seacutequentiellement les opeacuterationsdrsquoun algorithme il pourrait ecirctre un processeur ou

un circuit inteacutegreacute speacutecialiseacutebull meacutedia crsquoest une ressource de communicationen mesure drsquoexeacutecuter seacutequentiellement un transfertde donneacutees entre les meacutemoires des processeurs quilui sont connecteacutes

bull chaque arc est une connexion bidirectionnelle entreun processeur et un meacutedia

Equipe Systegraveme Robotiseacute de Production Architecture

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3579

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

ArchitecturePour lrsquoarchitecture chaque sommet est caracteacuteriseacute par

bull Un nom uniquebullSon type (processeur or meacutedia)bull Son type identifiant caracteacuteristiques mateacuterielles

bull Sa liste de connecteurs ougrave chaque connecteur est speacutecifieacute par bull son type identifiant le type de meacutedia agrave qui il peut ecirctreconnecteacute

bullUn nom

Equipe Systegraveme Robotiseacute de ProductionCaracteacuter st que

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3679

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Caracteacuter st que Nous distinguons deux cateacutegories de caracteacuteristiques lrsquoune relative

aux opeacuterations et lrsquoune agrave la communication 1 Comment speacutecifier les caracteacuteristiques des opeacuterations sous le menu AdequationAlOp_ArOp on obtient une boite

de dialogue avec

une liste de toutles types de

processeurs et

pour chaque processeur uneliste de tout les

types drsquoopeacuterationsqui peut lesexeacutecuter avec ladureacutee drsquoexeacutecutioncorrespondante

Equipe Systegraveme Robotiseacute de ProductionCaracteacuteristique

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3779

q p y

S y nd

e xV

5

q2 Comment speacutecifier les caracteacuteristiques de communication

sous le menu AdequationAlIO_ArIO on obtient une boitede dialogue avec une liste de tout les types de meacutedia et

pour chaque meacutedia une liste de tout les types de donneacutees

qui peut transfeacuterer avec la dureacutee de transfertcorrespondante

Equipe Systegraveme Robotiseacute de Production Contraintes

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3879

S y nd

e xV

5

Pour contraindre une opeacuteration agrave srsquoexeacutecuter sur un processeur donneacutee

1Seacutelectionner le(s) opeacuteration(s) agrave contraindre2 Seacutelectionner la commande AlgorithmSetConstraint3 Seacutelectionner le processeur qui doit exeacutecute les opeacuterationsseacutelectionneacutees

Pour enlever les contraintes seacutelectionner lrsquoopeacuteration puis exeacutecuterla commande AlgorithmDeleteConstraint

Pour voir sur quel processeur une opeacuteration est y contrainteseacutelectionner lrsquoopeacuteration puis exeacutecuter la commandeAlgorithmShowConstraint le processeur correspondant y sera

seacutelectionneacutePour voir toute les opeacuterations qui sont contraintes sur un processeurseacutelectionner le processeur puis exeacutecuter la commande

ArchitectureShowConstrained du menu les opeacuterationscorrespondantes y seront seacutelectionneacutees

Equipe Systegraveme Robotiseacute de Production A eacutequat o

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3979

S y nd

e xV

5

q

Pour construire le planificateur des opeacuterations dugraphe drsquoalgorithme sur les processeurs du graphedrsquoarchitecture qui effectue automatiquement le routage

des deacutependances de donneacutees inter-processeurs et lacreacuteation et la planification des opeacuterations decommunication sur le meacutedia du graphe drsquoarchitectureon utilise la commande AdequationDoIt

Cette commande creacutee un heuristique qui cherche agraveminimiser le chemin critique du graphe drsquoalgorithme

Equipe Systegraveme Robotiseacute de ProductionGeacuteneacuteration du code exeacutecuti

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4079

S y nd

e xV

5Le code exeacutecutif est la partie qui gegravere les ressources

mateacuterielles pour les allouer aux besoins de lrsquoalgorithmedrsquoapplication Les ressources agrave allouer sont

1 Les espaces meacutemoires des processeurs2 Le temps des seacutequences drsquoinstructions3 Le temps des meacutedia de communication

Gracircce agrave la meacutethodologie AAA et le logiciel Syndexlrsquoutilisateur est exempte drsquoeacutecrire du code pour geacuterer ces

ressources Donc par simple exeacutecution de la commandeAdequationGenExec un code distribueacute pour chaque processeur est automatiquement geacuteneacutereacute Ce code est en

fait un exeacutecutif geacuteneacutereacute sur mesure pour lrsquoalgorithme etlrsquoarchitecture

Equipe Systegraveme Robotiseacute de ProductionGeacuteneacuteration du code exeacutecuti

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4179

S y nd

e xV5

Pour chaque processeur de lrsquoarchitecture un fichier

source macro-exeacutecutif m4 avec le mecircme nom estgeacuteneacutereacute plus un macro-makefile ayant le mecircme nom quecelui de lrsquoapplication Chacun de ces fichiers doit ecirctre

transcrit par le macro-processeur GNU M4 (assembleurC) Cette transcription deacutepend de plusieurs fichiers

1 Fichier syndexm4x qui deacutefini les macrosgeacuteneacuteriques de syndex2 Fichier processorTypem4x qui deacutefini les macros

de bas niveau du processeur3 Fichier applicationNamem4x qui deacutefini les macros

speacutecifiques agrave lrsquoapplication

4 Fichier mediaTypem4x qui deacutefini les macros decommunication de bas niveau du type de media

Equipe Systegraveme Robotiseacute de ProductionCreacuteat on rsquoapp cat on

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4279

S y nd

e xV5 Arborescence des reacutepertoires Rep_travail

Applicationmacros

~rtai

Eacutevolution de lrsquoapplication

Phase 1

Edition des macros(C ou Assembleur)

+GNUmakefile

Phase 2

Edition du graphe

(Algorithme amp

Architecteure)

Phase 3

Compilation amp Exeacutecution

Equipe Systegraveme Robotiseacute de ProductionSeacutequence de compilation de Synde

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4379

S y nd

e xV5

Equipe Systegraveme Robotiseacute de Production Plan

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4479

S y nd

e xV5

bull Introduction

bull Meacutethodologie AAA

bull Installation

bull Utilisation du logiciel Syndex

bull Macros

bull LinuxIO un interface CC++ avec SynDEx

bull Exemple drsquoapplication Robuter-ULM

Equipe Systegraveme Robotiseacute de Production

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4579

S y nd

e xV5

Macros Macros

bull Deacutefinition

bull Types de macros

bull Carte Robosoft MPC555

bull Macros Geacuteneacuterique MPC555

bull Macros speacutecifique Robosoftbull Macros de Communication

bull Macros drsquoapplicationbull Structure du fichier Macro

Equipe Systegraveme Robotiseacute de Production Deacutefinition

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4679

S y nd

e xV5

Un macro-processeur est un programme qui consommeen entreacutee une chaicircne de caractegraveres (texte source) la

traite seacutequentiellement en substituant chaque sous-chaicircne qursquoil reconnaicirct (Appel de macro) par unechaicircne correspondante de substitution ( Deacutefinition de

macro) qursquoil traite agrave nouveau jusqursquoagrave ce qursquoil nrsquo y ait plus de substitution possible et qui produit en sortie lachaicircne de caractegraveres traiteacutee

Equipe Systegraveme Robotiseacute de Productionypes e macrosL diffeacute t di ti t d d

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4779

S y nd

e xV5

Les diffeacuterents macros se distinguent en deux grandes

classes bull Macros geacuteneacuteriques

en geacuteneacuteral ceux sont des macros non destineacutes agraveecirctre utiliser directement par lrsquointerface syndexmais plutocirct utiliseacutees pour la programmation

drsquoautres macros (macros MPC555)bull Macros utilisateurs

macros utiliseacutes directement par syndex ils sontspeacutecifiques agrave lrsquoapplication (macros decommunication macros speacutecifiques robosoft

macros speacutecifiques agrave lrsquoapplication)

Equipe Systegraveme Robotiseacute de ProductionCarte Robosoft MPC555La carte Robosoft MPC555 est conccedilue pour la commande de robot de veacutehicule

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4879

S y nd

e xV5

(1) Connecteur du chip MPC555(2) Alimentation continue(3) Interface BDM (Basic Debug Interface)(4) Entreacute Analogique (Joystickhellip)(5) EntreacuteSortie logiques(6) Ligne seacuterie Synchrone (Codeur absolu)(7) Ligne seacuterie Asynchrone (Port 0)

(8) Ligne seacuterie Asynchrone (Port 1)(9) Connecteur du bus CAN (Port 0)(10) Connecteur du bus CAN (Port 1)(11) Axe 1(13) Axe 2(14) Axe 3(15) Axe 4

La carte Robosoft MPC555 est conccedilue pour la commande de robot de veacutehiculeeacutelectrique ou toute autre machine Elle permet de commander un axe gracircce agrave

lrsquoajout drsquoune carte fille le controcircle srsquoeacutetend jusqursquoagrave 4 axesCette carte est baseacutee sur le microcontrocircleur MPC555 32-bit de MotorolaElle peut opeacuterer agrave une freacutequence

de 40 MHz Divers signauxlogique et analogique peuventecirctre utiliser pour lrsquoacquisition deet la commande de mateacuteriel Les

sorties disponibles peuvent ecirctreanalogique ou PWMOn y trouve

Equipe Systegraveme Robotiseacute de ProductionArchitecture du MPC555

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4979

S y nd

e xV5

Equipe Systegraveme Robotiseacute de Productionaract r st ques u

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5079

S y nd

e xV5

Equipe Systegraveme Robotiseacute de Productionacros n r quesbull GPIO (General-Purpose InputOutput)

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5179

S y nd

e xV5

GPIO (General Purpose InputOutput)ce macro utilise le module USIU qui lui fourni 64 pins pour desentreacuteessorties numeacuteriques ordinaires (IO de la carte Robosoft lirelrsquoeacutetat de la pince envoi de commande agrave la pince lire les alarmes)

bull QADC (Queued Analog to Digital Converter)en utilisant le module QADC ce macro permet la conversion drsquounsignal analogique en entreacutee en un signal numeacuterique multi-niveaux(lire les donneacutees du capteur drsquoeacuteffort du joystick)

bull MIOS (Modular InputOutput System)Le module MIOS fourni 16 pins drsquoES numeacuteriques Sur la carte deRobosoft tous les pins sont en sortie Les 16 pins sont reacutepartiscomme suit

utilisateurs reacuteserveacutes

les pins de 0 agrave 11 sont reacuteserveacutes car ils sont preacutevus agrave ecirctre utiliseacutes pour unmateacuteriel particulier Mais si ce mateacuteriel nrsquoest pas utiliseacute lrsquoutilisateur peut lesutiliser librement

15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

Equipe Systegraveme Robotiseacute de ProductionMacros Geacuteneacuter ques MPC55

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5279

S y nd

e xV5

bull PWM (Pulse width Modulation)utilise le module MIOS (pins de 4-7 pour la direction des moteurset de 8-11 pour la validation) pour la commande des actionneursnumeacuteriques en PWM

bull TPU (Time Processor Units)les macros lieacutes agrave ce module permettent la lecture des encodeurs

increacutementauxbull QSPI (Queued Serial Peripheral Interface)

ce module fait partie du module QSMCM et les macros lieacutes servent

agrave son initialisation pour une communication avec du mateacuterielsexternes via le bus seacuterie synchrone

Equipe Systegraveme Robotiseacute de ProductionMacros Geacuteneacuter ques MPC55

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5379

S y nd

e x

V5 bull Serial port support (Polling implementation)

le MPC555 comprend dans le module QSMCM une interface decommunication seacuterie SCI qui permet la communication avec dumateacuteriels externes via un bus seacuterie asynchrone Plusieurs macros

sont lieacutes agrave cette interface pour initialiser et eacutetablir la communicationbull Serial port support (interrupt handling implementation)

pour la mecircme interface SCI du module QSMCM pour cette

meacutethode drsquoimpleacutementation les macros lieacutes initialisent et eacutetablissentla communication en mode par interruption ce qui permet dedeacutetecter lrsquoarriveacutee des donneacutees sur le port seacuterie au lieu de le scruter

en permanence

tous ces macros on les retrouvent dans le fichier 555m4x

Equipe Systegraveme Robotiseacute de ProductionMacros Speacutec ques Ro oso tles macros suivants sont deacutedieacutes agrave la carte de Robosoft MPC555

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5479

S y nd

e x

V5

bull Initialisation de la carte Robosoftmain_ini_() macro ne doit pas ecirctre utiliser par les programmateursdu fait qursquoelle sert qursquoagrave initialiser la carte robosoft Macro interne agrave

syndex dont lrsquoappel est automatique lors de geacuteneacuteration drsquoexeacutecutifMPC555

bull DAC (Digital to Analog Converter)

macro permet lrsquoutilisation du convertisseur de carte robosoft via lemodule MIOs en utilisant les pins de 0 agrave 2

bull LED (on-bord LED interface)

macro permet la gestion de la LED de la carte robosoft connecteacuteeau module QSPI (pin PCS1)

bull SPI absolute encoder

macro permet lrsquoutilisation lrsquointerface du codeur absolu de la carterobosoft connecteacute au module QSPI

Equipe Systegraveme Robotiseacute de ProductionMacros Speacutec ques Ro oso tbull Motor amplifier direction

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5579

S y nd

e x

V5

Motor amplifier directionmacro qui permet de geacuterer la direction des moteurs

bull Motor power amplifier validationles moteurs embarqueacutes sur les robots sont eacutequipeacutes de freins

eacutelectriquement commandable Ce macro permet drsquoenvoyer unsignal drsquoinhibition pour deacutebloquer les freins

bull Watch dog

pour des raisons de seacutecuriteacute un meacutecanisme mateacuteriel que robosofta ajouteacute sur la carte Ce watch-dog vise agrave stopper lrsquoactiviteacute dumoteur en cas ougrave le programme plante Le watch est impleacutementeacute

comme un time-out mateacuteriel Srsquoil nrsquoest pas rafraicircchi peacuteriodiquement il transmet un signal de sortie ce qui enlegraveve lavalidation de lrsquoamplificateur de puissance donc lrsquoarrecirct dumouvement

ces macros se trouvent dans le fichier RSBm4x

Equipe Systegraveme Robotiseacute de Production

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5679

S y nd

e x

V5

Macros de Communicationchaque meacutedia de communication (bus CAN ) est une ressourceseacutequentielle ougrave les transferts de donneacutees entre processeurs doiventsuivre un certain ordre Donc ce macro de communication sert agravedeacutefinir cet ordre et agrave identifier le protocole de communication lecodagedeacutecodage de lrsquoinformation et la synchronisation

on trouve ces macros dans le fichier CANm4x

Macros drsquoapplicationce genre de macros sont speacutecifique au mateacuteriel en question et aussiagrave lrsquoapplication en particulier Ce sont des macros utilisateurs

on trouve ces macros dans le fichier Application_namem4x

Equipe Systegraveme Robotiseacute de Production

section include (pour inclure drsquoautres fichiers macro agrave utiliseStructure du fichier macr

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5779

S y nd

e x

V5

section define (pour tous les macros utilisateurs)MGC lsquoINITrsquo (MGC Macro Generation Context variable)

divert (declaration) (deacutebut du macro)

(deacuteclaration des variables des meacutemoires et des csts

divert (o)

MGC lsquolooprsquocode en assembleur code en C

dnl (commentaires)

MGC lsquoENDrsquo dnl (fin de la macros)divert lsquo lsquo dnl

macros MPC555meacutemoire MPC555

constante MPC555

macros RTAImeacutemoire RTAI

constante RTAI

Equipe Systegraveme Robotiseacute de Production Plan

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5879

S y nd

e x

V5

bull Introduction

bull Meacutethodologie AAA

bull Installationbull Utilisation du logiciel Syndex

bull Macrosbull LinuxIO un interface CC++ avec SynDEx

bull Exemple drsquoapplication Robuter-ULM

Equipe Systegraveme Robotiseacute de Production

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5979

S y nd

e x

V5

LinuxIO LinuxIO une interface une interface

CC++ avecCC++ avec SynDExSynDEx

bull Principe de basebull Utilisation de linuxIO_ par syndex

bull Utilisation de linuxIO_ par un programmeCC++

Equipe Systegraveme Robotiseacute de ProductionPrincipe de baseSyndex fourni une interface graphique pour la conception

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6079

S y nd

e x

V5

Syndex fourni une interface graphique pour la conception

drsquoapplications Par contre des fois nous avons besoin drsquoautresfonctionnaliteacutes non disponibles donc il faut les creacuteer Cependantgeacuteneacuterer des macros pour syndex srsquoavegravere difficile pour certains du

fait qursquoil faut avoir une bonne connaissance de la programmation bas niveau Dans ce cas lrsquoutilisation de linux_IO trouve sa placedans un contexte particulier interfacer des applications CC++utilisateurs avec des applications embarqueacutees temps reacuteeldeacuteveloppeacutees sous syndex

Par rapport agrave ce contexte de programmation lrsquoorganisation du

deacuteveloppement des applications est structureacutee en deux parties 1 Application haut niveau

2 Application bas niveau

Equipe Systegraveme Robotiseacute de ProductionPrincipe de base

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6179

S y nd

e x

V5

En reacutesumeacute lrsquoapplicationutilisateur contient une

partie haut niveau enCC++ et une partie basniveau sous syndex avecun eacutechange de donneacuteesentre les deux partie en

utilisant la couche RTAIde linux

Equipe Systegraveme Robotiseacute de Production pp cat on aut n veauOn entend application haut

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6279

S y nd

e x

V5

niveau tout programmecomme la planification detrajectoires strateacutegies de

navigation etc hellipLrsquoeacutechange de donneacutees sefait par le biais desmeacutemoires partageacutees quifont parti du noyau RTAI

et de lrsquoespace utilisateursde Linux

Toute ressource preacutesente sur la carte Robosoft peutecirctre partageacutee sans aune restriction

Equipe Systegraveme Robotiseacute de Production pp cat on as n veauUne application bas niveau

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6379

S y nd

e x

V5

Une application bas niveau

est un programme conccedilusous syndex comme lacommande des moteurs la

lecture des capteurs etc hellipLes ressources mateacuteriellessont controcircler par plusieurs

cartes MPC555 Ces cartessrsquoeacutechangent des donneacuteesvia le bus CAN Donc ES

est prise en charge par lasource logicielle deacutedieacutee quisrsquoexeacutecute dans les cartes MPC555 puis la couche RTAI

est utiliseacute pour la mise agrave jour de meacutemoires partageacutees pour lrsquoespace utilisateurs linux drsquoeacutechange de donneacutees

Equipe Systegraveme Robotiseacute de ProductionUtilisation de linux_IO par syndex

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6479

S y nd

e x

V5

Equipe Systegraveme Robotiseacute de ProductionUtilisation de linux_IO par syndex

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6579

S y nd

e x

V5

Equipe Systegraveme Robotiseacute de Production

5

Utilisation de linux_IO par syndex

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6679

S y nd

e x

V5

Degraves que la conception de lrsquoapplication sous syndex esttermineacutee et apregraves compilation (AdequationDo it +GenExec) un fichier drsquoentecircte sous le nom de linioh est

automatiquement geacuteneacutereacute Ce fichier contient lesinformations neacutecessaires pour acceacuteder aux entreacutees enlecture et aux sorties en eacutecriture des opeacuterations linuxIO_

inseacutereacutees dans le graphe drsquoalgorithme Le contenu de cefichier est organiseacute en plusieurs parties une pour chaqueopeacuteration linux_IO preacutesente dans le graphe

Equipe Systegraveme Robotiseacute de Production

5

Utilisation de linux_IO par syndex linioh auto-generated C users API frontend

C i h b f 2001 i i i b f f

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6779

S y nd

e x

V5 Copyright Robosoft 2001 Pierre Pomiers ltpierrerobosoftfrgt

LINUX IO shared memory data segments

define SEG0_BASE 0x10000typedef struct

int js_spd_o0

int js_str_o0

int enc_R_o0int enc_L_o0

double odo_X_o0

double odo_Y_o0

double odo_T_o0int spd_R_o0

int spd_L_o0

int time

unsigned char sem shm_seg0_def

Nom du segment de meacutemoire partageacutee pour notre opeacuteration linuxIO_

7 signaux drsquoentreacutees Ces valeurs sonten lecture et sont peacuteriodiquementrafraicircchies par RTAI

2 signaux de sorties Ces valeurs sonten eacutecriture et sont peacuteriodiquementrafraicircchies par RTAI

Equipe Systegraveme Robotiseacute de Production

5

Crsquoest une eacutetape tregraves facile il suffit drsquoinclure le fichier drsquoentecirctelinio h dans le code du fichier en CC++ comme suit

Utilisation de linuxIO_ par un programme CC+

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6879

S y nd

e x

V5 linioh dans le code du fichier en CC++ comme suit

include linioh

include ltrtai_shmhgt

static shm_seg0_def seg0

shm_seg0_def robot

seg0 = rtai_malloc (SEG0_BASE sizeof (shm_seg0_def))

if (seg0-gtsem = 0) bcopy (seg0 amprobot sizeof (shm_seg0_def))helliphelliphellip

helliphelliphellip bcopy (amprobot seg0 sizeof (shm_seg0_def))helliphelliphelliphelliphelliphellip

rtai_free (SEG0_BASE seg0)

fichier drsquoentecircte de la meacutemoire partageacutee fourni dans la couche RTAI de linux

Initialisation du segment SEG0_BASE Allocation de lameacutemoire pointeacutee

par seg0

Lecture des donneacutees provenant du bas

niveau

Mise agrave jours du segment de meacutemoire partageacutee

Libeacuterer le segment de meacutemoire alloueacute

Equipe Systegraveme Robotiseacute de Production

5

Plan

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6979

S y nd e x

V5

bull Introductionbull Meacutethodologie AAA

bull Installationbull Utilisation du logiciel Syndex

bull Macrosbull LinuxIO un interface CC++ avec SynDEx

bull Exemple drsquoapplication Robuter-ULM

Equipe Systegraveme Robotiseacute de Production

V5

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7079

S y nd e x

V5

Exemple dapplication Exemple dapplication Robuter Robuter--ULM ULM

Equipe Systegraveme Robotiseacute de Production

V5

Description Robuter-ULMbull Base mobile (2-RM 2-RF)

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7179

S y nd e x

V

bull Bras ultra-leacuteger 6 axesbull Ceinture 24 capteurs US

bull Capteur drsquoefforts 6 axes

bull Cameacutera CCD monochromeavec carte drsquoacquisition

bull PC embarqueacute MMX 233

bull OS linux redhat 61 avecRTAI V-13

bull 3 bouton drsquoarrecirct drsquourgence

bull 4 batteries 48 VDC 4 X12V 60 Ah

bull Entreacutee Joystick

bull Liaison Ethernet sans fil

Le manipulateur mobile Robuter-ULM comprend

Equipe Systegraveme Robotiseacute de Production

V5

Base Mobilebull dimension

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7279

S y nd e x

V

1025 mm de longueur 680 mm de largueur et 44 cm de hauteurbull Poids environ 150 kg avec les batteriesbull charge jusqursquoagrave 120 kg

bull vitesse de 5cms agrave 125 msbull Moteurs 2 X 300 W DC 48 VDCbull orientation par diffeacuterence de vitesse

bull Preacutecision Position par encodeurs optiquesbull Deux roues motrices diffeacuterentielles et de deux roues follesbull Drsquoune ceinture de 24 capteurs Ultrasons

bull Une carte MPC555 de Robosoft pour le controcircle des deuxmoteurs DC des 2 rouesbull Un systegraveme drsquoodomeacutetrie qui donne la position relative du robot

par rapport agrave son repegravere

Equipe Systegraveme Robotiseacute de Production

V5

bull dimension Faute de documentation

Bras U tra- eacuteger

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7379

S y nd e x

V Faute de documentation

bull Poids moins de 20 kgbull charge 2 kgbull Moteurs 6 moteurs DC

bull gripper pince eacutelectrique 2 doigtsbull Reacutepeacutetabiliteacute +- 1mmbull 3 carte MPC555 de Robosoft lrsquoune pour le capteur drsquoeffort et les

deux autres pour les 6 moteurs + moteur de la pincebull Position encodeur increacutemental

1 2 3 4 5 6Axisrange

plusmn90deg 0-90deg plusmn80deg plusmn100deg plusmn90deg plusmn110deg

vitesse 180degs 180degs 180degs 180degs 180degs 180degs

Equipe Systegraveme Robotiseacute de Production

V5

rc tecture ar ware

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7479

S y nd e x

V

Equipe Systegraveme Robotiseacute de Production

V5

Pro eacutemat quePlusieurs applications peuvent ecirctre impleacutementeacutees sur le robot

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7579

S y nd e x

V

Cependant il faut faire la diffeacuterence entre les applications quidemande lrsquoutilisation de syndex et les applications qui neneacutecessite qursquoune programmation en CC++ Agrave titre drsquoexemple

bull Localisationbull Commande en position

bull Commande en forcebull Navigation

bull Geacuteneacuteration de trajectoire

bull Vision

Equipe Systegraveme Robotiseacute de Production

V5 bull Pince eacutelectrique (TOR)

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7679

S y nd e x

Vq ( )

bull Pince possegravede des ES Logiques

Notre application consiste agrave

bull Recevoir lrsquoeacutetat de la pince (fermeacutee ouverte )

bull Envoyer une commande vers la pince

Capture

drsquoinformation

Open

Close

CommandeMeacutemoire

Partageacutee

Actionneur

Pince Prise de deacutecision Pince

Equipe Systegraveme Robotiseacute de Production

V5

Sc eacutema eacute ectr que

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7779

S y nd e x

Equipe Systegraveme Robotiseacute de Production

V5

Conclusion

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7879

S y nd e x bull Introduction

bull Meacutethodologie AAA

bull Installationbull Utilisation du logiciel Syndex

bull Macrosbull LinuxIO un interface CC++ avec SynDEx

bull Exemple drsquoapplication Robuter-ULM

Equipe Systegraveme Robotiseacute de Production

V5

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7979

S y nd e x

Questions

Page 8: Cours Syndex

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 879

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 979

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV5

Meacutethodologie AA

Le but de la meacutethodologie AAA est de trouver lameilleure mise en correspondance entre unalgorithme speacutecifiant les fonctions de

lapplication agrave effectuer et une architecturemulti-composants tout en satisfaisant les

contraintes dembarquabiliteacute et de temps reacuteel dusystegraveme

Il est donc neacutecessaire de preacuteciser le sens que londonnera par la suite aux notions dalgorithmedarchitecture dadeacutequation et dimpleacutementation

Al i h

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 1079

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV5

Algorithme

Un algorithme est connu comme eacutetant une

seacutequence finie dopeacuterations (reacutealisables

en un temps fini et avec un support

mateacuteriel fini) Dans cette meacutethode cette

notion est eacutetendue pour prendre encompte dune part laspect infiniment

reacutepeacutetitif des applications reacuteactives et

dautre part laspect parallegravele neacutecessaire

a leur impleacutementation distribueacutee

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 1179

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV5

Op1

Op2

Op3 Op5

Op4

Op6

Capteur

Actionneur

Nœuds Opeacuteration

Arcs Transfert de donneacutees

Modegravele drsquoalgorithme

A hi

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 1279

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV5

Architecture

Larchitecture correspond auxcaracteacuteristiques structurelles du

calculateur exhibant un paralleacutelismedisponible en geacuteneacuteral moindre que leparalleacutelisme potentiel de lalgorithmePar abus de langage le termearchitecture sera ici souvent utilise dans

son sens geacuteneacuterique pour signifier agrave lafois le calculateur lui-mecircme ainsi queses caracteacuteristiques structurelles

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 1379

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV5

Meacutedia

Pr3

Pr1 Pr2

Pr123 Processeur

Meacutedia Moyen de communication

Arcs Transfert de donneacutees Modegravele drsquoarchitecture

Adeacute ti

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 1479

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

ladeacutequation consiste a mettre en correspondance de

maniegravere efficace lalgorithme et larchitecture pour reacutealiserune impleacutementation optimiseacutee

Adeacutequation

Instruction 1Instruction 2

hellip

hellip

Instruction N

Algorithme

Processeur Seacutequenceur

Architecture MonoprocesseurMeacutedia

Proc 1Seacuteq 1

Proc 2

Seacuteq 2Proc M

Seacuteq M

Architecture Multiprocesseurs

Inst 1

Inst 2

hellip

Inst N

Algorithme

Inst 1

Inst 2

hellip

Inst N

Inst 1

Inst 2

hellip

Inst N

hellip

hellip

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 1579

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Pour permettre une exploitation plus efficace du paralleacutelisme

disponible de larchitecture il faut eacutetendre lordre totaldexeacutecution des instructions du programme seacutequentielmonoprocesseur a un ordre partiel extrait par une analyse de

deacutependances de donneacutees entre instructions exhibant le paralleacutelisme potentiel de lalgorithme et permettant unedistribution et un ordonnancement

bull la distribution consiste agrave effectuer une Partition du graphe delrsquoalgorithme initial en autant drsquoeacuteleacutements de partition qursquoil y adrsquoopeacuterateur dans le graphe de lrsquoarchitecture

bull Lordonnancement consiste pour chaque eacuteleacutement de partition a lineacuteariser (rendre total) lordre partielcorrespondant au sous-graphe associe Cette phase estneacutecessaire car lopeacuterateur auquel on affecte un sous-graphe du

graphe de lalgorithme initial est geacutereacute par une seacutequenceurdrsquoinstruction

I leacute t ti

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 1679

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Impleacutementation

Limpleacutementation consiste a mettre en oeuvre

lalgorithme sur larchitecture cest- a-dire aallouer les ressources mateacuterielles de larchitectureaux opeacuterations de lalgorithme puis a compilercharger puis lancer lexeacutecution du programmecorrespondant sur le calculateur

Pl

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 1779

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Pla

bull Introduction

bull Meacutethodologie AAA

bull Installation

bull Utilisation du logiciel Syndex

bull Macros

bull LinuxIO un interface CC++ avec SynDEx

bull Exemple drsquoapplication Robuter-ULM

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 1879

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Installation Installation

bull Exigences mateacuteriellesbull Exigences logicielles

bull Installation de syndex V5bull Arborescence des reacutepertoires

Exigences mateacuteriels

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 1979

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Exigences mateacuteriels

bull Un PC avec un processeur de la famille Intel(80386 au minimum) ou un AMD

bull Une Carte de bus CAN (celle qui est installeacuteecrsquoest NuDACQ PCI-7841 baseacutee sur un chipPhilips SJA1000)

Ces deux speacutecifications sont suffisants pour ledeacuteveloppement drsquoune application RTAI

bull Pour les robots acquis il faut rajouter les cartes decontrocircle baseacutees sur le microcontrocircleur MPC555

Exigences logicielle

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 2079

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Exigences logiciellebull Un environnement sous Linux (quelle que soit la

distribution)bull Un module RTAI (Real-Time Applications

implementations)bull GNU gcc (outil de compilation)bull GNU binutils (outil pour assembler et eacutediter les liens

bull Le Logiciel Syndex V5bull Les macros de syndex pour

- carte de controcircle Robosoft- microcontrocircleur MPC555 de Motorola- PC sous LinuxRTAI

- Bus CAN

Installation de Syndex V

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 2179

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Installation de Syndex V

bull Creacuteation du reacutepertoire de destinationbull Copier le fichier avec la commande

cp syndex-xxx-linuxtgz rep_desbull Se mettre sous le reacutepertoire de destination puisdeacutecompresser le fichier avec la commande

tar zxvf syndex-xxx-linuxtgzCeci creacuteera sous le reacute pertoire de destination un sou

reacutepertoire de syndex contenant tout les fichiersDans le fichier syndexbat il faut mettre agrave jour lechemin du reacutepertoire de syndex

Arborescences des Reacutepertoire

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 2279

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Arborescences des Reacutepertoire

Apregraves lrsquoinstallation il est impeacuteratif drsquoorganiser lesreacutepertoires pour que lors de lrsquoeacutedition des liens le

fichier makefiles deacutepend de cette organisationLrsquoorganisation qui existe actuellement est comme

suit bull Apps applications deacuteveloppeacutees sous syndexbull Macros macros deacuteveloppeacutes pour syndex V5bull Rtai module rtai ou un lien symbolique qui point vers le reacutepertoire drsquoinstallation

Pla

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 2379

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Pla

bull Introduction

bull Meacutethodologie AAA

bull Installation

bull Utilisation du logiciel Syndex

bull Macros

bull LinuxIO un interface CC++ avec SynDEx

bull Exemple drsquoapplication Robuter-ULM

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 2479

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Utilisation du logicielUtilisation du logicielSyndexSyndex V5V5

bull Utilisation de lrsquointerface

bull Algorithme

bull Architecture

bull Caracteacuteristiques

bull Contraintes

bull Adeacutequation

bull Geacuteneacuteration du code exeacutecutif

SynDE

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 2579

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

SynDESynDEx est un logiciel graphique qui impleacutemente lameacutethodologie AAA et qui offre plusieurs fonctionnaliteacutes

bull Speacutecification drsquoun algorithme drsquoapplication saisi sousforme drsquoun graphe

bull Speacutecification drsquoun graphe drsquoarchitecture multi-composant

bull Heuristique pour la distribution et lrsquoordonnancement delrsquoalgorithme drsquoapplication sur lrsquoarchitecture avecoptimisation du temps de reacuteponse

bull Geacuteneacuteration des exeacutecutifs distribueacutes temps reacuteel

Utilisation de lrsquointerface

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 2679

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Utilisation de l interface

Utilisation de lrsquointerface

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 2779

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Utilisation de l interface

Utilisation de lrsquointerface

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 2879

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Utilisation de l interface

Algorithm

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 2979

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Algorithm

Lrsquoalgorithme est speacutecifieacute comme un graphe orienteacute ougravebull chaque sommet est une opeacuteration qui calcule les sorties

des entreacutees agrave chaque opeacuteration doit correspondre uneseacutequence drsquoinstructions compileacutee seacutepareacutement

bull Chaque arc est une deacutependance de donneacutees entre deux

opeacuterations (ou plus dans le cas de diffusion) c-a-d lasortie drsquoune opeacuteration est lrsquoentreacutee de lrsquoautre opeacuteration(ou de plusieurs autres opeacuterations) une entreacutee peut ecirctreconnecteacutee seulement agrave une sortie de mecircme type dedonneacutees

gor t m

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3079

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

gor t mon distingue 4 types de sommets

Algorithm

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3179

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Algorithmbull Le sommet function possegravede au moins une entreacutee et

une sortie crsquoest une opeacuteration agrave libre effet qui calculeses sorties uniquement agrave partir de ses entreacutees (c-a-d niagrave partir des variables globales ni agrave partir des

preacuteceacutedentes valeurs de ces entreacutees)bull Le sommet extio permet lrsquoacquisitionlrsquoeacutecriture des

entreacuteessorties on distingue trois cas

1 Capteur sans entreacutee agrave chaque reacuteaction sa sortierepreacutesente la valeur lue du capteur

2 Actionneur sans sortie agrave chaque reacuteaction ilenvoi son entreacutee agrave lrsquoactionneur

3 Linux_IO ces des meacutemoires partageacutees qui

permettent le transfert de donneacutees entre syndexet un langage eacutevolueacute

E i S egrave R b i eacute d P d i Algorithm

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3279

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Algorithm

bull Le sommet memory possegravede uniquement uneentreacutee et une sortie crsquoest une opeacuteration agrave effetunique qui met la sortie degraves la premiegravere reacuteaction

agrave une valeur initiale calculeacutee auparavant et puisla sortie de la prochaine reacuteaction nrsquoest que

lrsquoentreacutee de la preacuteceacutedente reacuteactionbull Le sommet constant ne possegravede aucune entreacutee

il calcule sa sortie une seule fois avant la premiegravere reacuteaction puis la sortie demeure la mecircme pour chaque reacuteaction

E i S tegrave R b ti eacute d P d ti Algorithm

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3379

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

AlgorithmPour lrsquoalgorithme chaque sommet est caracteacuteriseacute par

bull Son type geacuteneacuterique (function extio memory constant)bull Un nom unique (tout les sommets doivent avoir des

noms diffeacuterents)bull Son type identifiant sa seacutequence drsquoinstructionsassocieacute

bull Sa liste drsquoarguments ougrave chaque argument est speacutecifieacute par bull Le nombre drsquoentreacuteesortiebull Le type de donneacuteesbull Le nom (tout les arguments doivent avoir des noms

diffeacuterents)

Equipe Systegraveme Robotiseacute de Production Architecture

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3479

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

ArchitectureLrsquoarchitecture est speacutecifieacutee comme un graphe non orienteacute

ougrave bullChaque sommet est une ressource seacutequentielle il y adeux types de sommets

bull processeur crsquoest une ressource de calcul enmesure drsquoexeacutecuter seacutequentiellement les opeacuterationsdrsquoun algorithme il pourrait ecirctre un processeur ou

un circuit inteacutegreacute speacutecialiseacutebull meacutedia crsquoest une ressource de communicationen mesure drsquoexeacutecuter seacutequentiellement un transfertde donneacutees entre les meacutemoires des processeurs quilui sont connecteacutes

bull chaque arc est une connexion bidirectionnelle entreun processeur et un meacutedia

Equipe Systegraveme Robotiseacute de Production Architecture

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3579

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

ArchitecturePour lrsquoarchitecture chaque sommet est caracteacuteriseacute par

bull Un nom uniquebullSon type (processeur or meacutedia)bull Son type identifiant caracteacuteristiques mateacuterielles

bull Sa liste de connecteurs ougrave chaque connecteur est speacutecifieacute par bull son type identifiant le type de meacutedia agrave qui il peut ecirctreconnecteacute

bullUn nom

Equipe Systegraveme Robotiseacute de ProductionCaracteacuter st que

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3679

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Caracteacuter st que Nous distinguons deux cateacutegories de caracteacuteristiques lrsquoune relative

aux opeacuterations et lrsquoune agrave la communication 1 Comment speacutecifier les caracteacuteristiques des opeacuterations sous le menu AdequationAlOp_ArOp on obtient une boite

de dialogue avec

une liste de toutles types de

processeurs et

pour chaque processeur uneliste de tout les

types drsquoopeacuterationsqui peut lesexeacutecuter avec ladureacutee drsquoexeacutecutioncorrespondante

Equipe Systegraveme Robotiseacute de ProductionCaracteacuteristique

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3779

q p y

S y nd

e xV

5

q2 Comment speacutecifier les caracteacuteristiques de communication

sous le menu AdequationAlIO_ArIO on obtient une boitede dialogue avec une liste de tout les types de meacutedia et

pour chaque meacutedia une liste de tout les types de donneacutees

qui peut transfeacuterer avec la dureacutee de transfertcorrespondante

Equipe Systegraveme Robotiseacute de Production Contraintes

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3879

S y nd

e xV

5

Pour contraindre une opeacuteration agrave srsquoexeacutecuter sur un processeur donneacutee

1Seacutelectionner le(s) opeacuteration(s) agrave contraindre2 Seacutelectionner la commande AlgorithmSetConstraint3 Seacutelectionner le processeur qui doit exeacutecute les opeacuterationsseacutelectionneacutees

Pour enlever les contraintes seacutelectionner lrsquoopeacuteration puis exeacutecuterla commande AlgorithmDeleteConstraint

Pour voir sur quel processeur une opeacuteration est y contrainteseacutelectionner lrsquoopeacuteration puis exeacutecuter la commandeAlgorithmShowConstraint le processeur correspondant y sera

seacutelectionneacutePour voir toute les opeacuterations qui sont contraintes sur un processeurseacutelectionner le processeur puis exeacutecuter la commande

ArchitectureShowConstrained du menu les opeacuterationscorrespondantes y seront seacutelectionneacutees

Equipe Systegraveme Robotiseacute de Production A eacutequat o

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3979

S y nd

e xV

5

q

Pour construire le planificateur des opeacuterations dugraphe drsquoalgorithme sur les processeurs du graphedrsquoarchitecture qui effectue automatiquement le routage

des deacutependances de donneacutees inter-processeurs et lacreacuteation et la planification des opeacuterations decommunication sur le meacutedia du graphe drsquoarchitectureon utilise la commande AdequationDoIt

Cette commande creacutee un heuristique qui cherche agraveminimiser le chemin critique du graphe drsquoalgorithme

Equipe Systegraveme Robotiseacute de ProductionGeacuteneacuteration du code exeacutecuti

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4079

S y nd

e xV

5Le code exeacutecutif est la partie qui gegravere les ressources

mateacuterielles pour les allouer aux besoins de lrsquoalgorithmedrsquoapplication Les ressources agrave allouer sont

1 Les espaces meacutemoires des processeurs2 Le temps des seacutequences drsquoinstructions3 Le temps des meacutedia de communication

Gracircce agrave la meacutethodologie AAA et le logiciel Syndexlrsquoutilisateur est exempte drsquoeacutecrire du code pour geacuterer ces

ressources Donc par simple exeacutecution de la commandeAdequationGenExec un code distribueacute pour chaque processeur est automatiquement geacuteneacutereacute Ce code est en

fait un exeacutecutif geacuteneacutereacute sur mesure pour lrsquoalgorithme etlrsquoarchitecture

Equipe Systegraveme Robotiseacute de ProductionGeacuteneacuteration du code exeacutecuti

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4179

S y nd

e xV5

Pour chaque processeur de lrsquoarchitecture un fichier

source macro-exeacutecutif m4 avec le mecircme nom estgeacuteneacutereacute plus un macro-makefile ayant le mecircme nom quecelui de lrsquoapplication Chacun de ces fichiers doit ecirctre

transcrit par le macro-processeur GNU M4 (assembleurC) Cette transcription deacutepend de plusieurs fichiers

1 Fichier syndexm4x qui deacutefini les macrosgeacuteneacuteriques de syndex2 Fichier processorTypem4x qui deacutefini les macros

de bas niveau du processeur3 Fichier applicationNamem4x qui deacutefini les macros

speacutecifiques agrave lrsquoapplication

4 Fichier mediaTypem4x qui deacutefini les macros decommunication de bas niveau du type de media

Equipe Systegraveme Robotiseacute de ProductionCreacuteat on rsquoapp cat on

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4279

S y nd

e xV5 Arborescence des reacutepertoires Rep_travail

Applicationmacros

~rtai

Eacutevolution de lrsquoapplication

Phase 1

Edition des macros(C ou Assembleur)

+GNUmakefile

Phase 2

Edition du graphe

(Algorithme amp

Architecteure)

Phase 3

Compilation amp Exeacutecution

Equipe Systegraveme Robotiseacute de ProductionSeacutequence de compilation de Synde

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4379

S y nd

e xV5

Equipe Systegraveme Robotiseacute de Production Plan

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4479

S y nd

e xV5

bull Introduction

bull Meacutethodologie AAA

bull Installation

bull Utilisation du logiciel Syndex

bull Macros

bull LinuxIO un interface CC++ avec SynDEx

bull Exemple drsquoapplication Robuter-ULM

Equipe Systegraveme Robotiseacute de Production

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4579

S y nd

e xV5

Macros Macros

bull Deacutefinition

bull Types de macros

bull Carte Robosoft MPC555

bull Macros Geacuteneacuterique MPC555

bull Macros speacutecifique Robosoftbull Macros de Communication

bull Macros drsquoapplicationbull Structure du fichier Macro

Equipe Systegraveme Robotiseacute de Production Deacutefinition

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4679

S y nd

e xV5

Un macro-processeur est un programme qui consommeen entreacutee une chaicircne de caractegraveres (texte source) la

traite seacutequentiellement en substituant chaque sous-chaicircne qursquoil reconnaicirct (Appel de macro) par unechaicircne correspondante de substitution ( Deacutefinition de

macro) qursquoil traite agrave nouveau jusqursquoagrave ce qursquoil nrsquo y ait plus de substitution possible et qui produit en sortie lachaicircne de caractegraveres traiteacutee

Equipe Systegraveme Robotiseacute de Productionypes e macrosL diffeacute t di ti t d d

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4779

S y nd

e xV5

Les diffeacuterents macros se distinguent en deux grandes

classes bull Macros geacuteneacuteriques

en geacuteneacuteral ceux sont des macros non destineacutes agraveecirctre utiliser directement par lrsquointerface syndexmais plutocirct utiliseacutees pour la programmation

drsquoautres macros (macros MPC555)bull Macros utilisateurs

macros utiliseacutes directement par syndex ils sontspeacutecifiques agrave lrsquoapplication (macros decommunication macros speacutecifiques robosoft

macros speacutecifiques agrave lrsquoapplication)

Equipe Systegraveme Robotiseacute de ProductionCarte Robosoft MPC555La carte Robosoft MPC555 est conccedilue pour la commande de robot de veacutehicule

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4879

S y nd

e xV5

(1) Connecteur du chip MPC555(2) Alimentation continue(3) Interface BDM (Basic Debug Interface)(4) Entreacute Analogique (Joystickhellip)(5) EntreacuteSortie logiques(6) Ligne seacuterie Synchrone (Codeur absolu)(7) Ligne seacuterie Asynchrone (Port 0)

(8) Ligne seacuterie Asynchrone (Port 1)(9) Connecteur du bus CAN (Port 0)(10) Connecteur du bus CAN (Port 1)(11) Axe 1(13) Axe 2(14) Axe 3(15) Axe 4

La carte Robosoft MPC555 est conccedilue pour la commande de robot de veacutehiculeeacutelectrique ou toute autre machine Elle permet de commander un axe gracircce agrave

lrsquoajout drsquoune carte fille le controcircle srsquoeacutetend jusqursquoagrave 4 axesCette carte est baseacutee sur le microcontrocircleur MPC555 32-bit de MotorolaElle peut opeacuterer agrave une freacutequence

de 40 MHz Divers signauxlogique et analogique peuventecirctre utiliser pour lrsquoacquisition deet la commande de mateacuteriel Les

sorties disponibles peuvent ecirctreanalogique ou PWMOn y trouve

Equipe Systegraveme Robotiseacute de ProductionArchitecture du MPC555

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4979

S y nd

e xV5

Equipe Systegraveme Robotiseacute de Productionaract r st ques u

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5079

S y nd

e xV5

Equipe Systegraveme Robotiseacute de Productionacros n r quesbull GPIO (General-Purpose InputOutput)

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5179

S y nd

e xV5

GPIO (General Purpose InputOutput)ce macro utilise le module USIU qui lui fourni 64 pins pour desentreacuteessorties numeacuteriques ordinaires (IO de la carte Robosoft lirelrsquoeacutetat de la pince envoi de commande agrave la pince lire les alarmes)

bull QADC (Queued Analog to Digital Converter)en utilisant le module QADC ce macro permet la conversion drsquounsignal analogique en entreacutee en un signal numeacuterique multi-niveaux(lire les donneacutees du capteur drsquoeacuteffort du joystick)

bull MIOS (Modular InputOutput System)Le module MIOS fourni 16 pins drsquoES numeacuteriques Sur la carte deRobosoft tous les pins sont en sortie Les 16 pins sont reacutepartiscomme suit

utilisateurs reacuteserveacutes

les pins de 0 agrave 11 sont reacuteserveacutes car ils sont preacutevus agrave ecirctre utiliseacutes pour unmateacuteriel particulier Mais si ce mateacuteriel nrsquoest pas utiliseacute lrsquoutilisateur peut lesutiliser librement

15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

Equipe Systegraveme Robotiseacute de ProductionMacros Geacuteneacuter ques MPC55

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5279

S y nd

e xV5

bull PWM (Pulse width Modulation)utilise le module MIOS (pins de 4-7 pour la direction des moteurset de 8-11 pour la validation) pour la commande des actionneursnumeacuteriques en PWM

bull TPU (Time Processor Units)les macros lieacutes agrave ce module permettent la lecture des encodeurs

increacutementauxbull QSPI (Queued Serial Peripheral Interface)

ce module fait partie du module QSMCM et les macros lieacutes servent

agrave son initialisation pour une communication avec du mateacuterielsexternes via le bus seacuterie synchrone

Equipe Systegraveme Robotiseacute de ProductionMacros Geacuteneacuter ques MPC55

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5379

S y nd

e x

V5 bull Serial port support (Polling implementation)

le MPC555 comprend dans le module QSMCM une interface decommunication seacuterie SCI qui permet la communication avec dumateacuteriels externes via un bus seacuterie asynchrone Plusieurs macros

sont lieacutes agrave cette interface pour initialiser et eacutetablir la communicationbull Serial port support (interrupt handling implementation)

pour la mecircme interface SCI du module QSMCM pour cette

meacutethode drsquoimpleacutementation les macros lieacutes initialisent et eacutetablissentla communication en mode par interruption ce qui permet dedeacutetecter lrsquoarriveacutee des donneacutees sur le port seacuterie au lieu de le scruter

en permanence

tous ces macros on les retrouvent dans le fichier 555m4x

Equipe Systegraveme Robotiseacute de ProductionMacros Speacutec ques Ro oso tles macros suivants sont deacutedieacutes agrave la carte de Robosoft MPC555

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5479

S y nd

e x

V5

bull Initialisation de la carte Robosoftmain_ini_() macro ne doit pas ecirctre utiliser par les programmateursdu fait qursquoelle sert qursquoagrave initialiser la carte robosoft Macro interne agrave

syndex dont lrsquoappel est automatique lors de geacuteneacuteration drsquoexeacutecutifMPC555

bull DAC (Digital to Analog Converter)

macro permet lrsquoutilisation du convertisseur de carte robosoft via lemodule MIOs en utilisant les pins de 0 agrave 2

bull LED (on-bord LED interface)

macro permet la gestion de la LED de la carte robosoft connecteacuteeau module QSPI (pin PCS1)

bull SPI absolute encoder

macro permet lrsquoutilisation lrsquointerface du codeur absolu de la carterobosoft connecteacute au module QSPI

Equipe Systegraveme Robotiseacute de ProductionMacros Speacutec ques Ro oso tbull Motor amplifier direction

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5579

S y nd

e x

V5

Motor amplifier directionmacro qui permet de geacuterer la direction des moteurs

bull Motor power amplifier validationles moteurs embarqueacutes sur les robots sont eacutequipeacutes de freins

eacutelectriquement commandable Ce macro permet drsquoenvoyer unsignal drsquoinhibition pour deacutebloquer les freins

bull Watch dog

pour des raisons de seacutecuriteacute un meacutecanisme mateacuteriel que robosofta ajouteacute sur la carte Ce watch-dog vise agrave stopper lrsquoactiviteacute dumoteur en cas ougrave le programme plante Le watch est impleacutementeacute

comme un time-out mateacuteriel Srsquoil nrsquoest pas rafraicircchi peacuteriodiquement il transmet un signal de sortie ce qui enlegraveve lavalidation de lrsquoamplificateur de puissance donc lrsquoarrecirct dumouvement

ces macros se trouvent dans le fichier RSBm4x

Equipe Systegraveme Robotiseacute de Production

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5679

S y nd

e x

V5

Macros de Communicationchaque meacutedia de communication (bus CAN ) est une ressourceseacutequentielle ougrave les transferts de donneacutees entre processeurs doiventsuivre un certain ordre Donc ce macro de communication sert agravedeacutefinir cet ordre et agrave identifier le protocole de communication lecodagedeacutecodage de lrsquoinformation et la synchronisation

on trouve ces macros dans le fichier CANm4x

Macros drsquoapplicationce genre de macros sont speacutecifique au mateacuteriel en question et aussiagrave lrsquoapplication en particulier Ce sont des macros utilisateurs

on trouve ces macros dans le fichier Application_namem4x

Equipe Systegraveme Robotiseacute de Production

section include (pour inclure drsquoautres fichiers macro agrave utiliseStructure du fichier macr

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5779

S y nd

e x

V5

section define (pour tous les macros utilisateurs)MGC lsquoINITrsquo (MGC Macro Generation Context variable)

divert (declaration) (deacutebut du macro)

(deacuteclaration des variables des meacutemoires et des csts

divert (o)

MGC lsquolooprsquocode en assembleur code en C

dnl (commentaires)

MGC lsquoENDrsquo dnl (fin de la macros)divert lsquo lsquo dnl

macros MPC555meacutemoire MPC555

constante MPC555

macros RTAImeacutemoire RTAI

constante RTAI

Equipe Systegraveme Robotiseacute de Production Plan

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5879

S y nd

e x

V5

bull Introduction

bull Meacutethodologie AAA

bull Installationbull Utilisation du logiciel Syndex

bull Macrosbull LinuxIO un interface CC++ avec SynDEx

bull Exemple drsquoapplication Robuter-ULM

Equipe Systegraveme Robotiseacute de Production

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5979

S y nd

e x

V5

LinuxIO LinuxIO une interface une interface

CC++ avecCC++ avec SynDExSynDEx

bull Principe de basebull Utilisation de linuxIO_ par syndex

bull Utilisation de linuxIO_ par un programmeCC++

Equipe Systegraveme Robotiseacute de ProductionPrincipe de baseSyndex fourni une interface graphique pour la conception

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6079

S y nd

e x

V5

Syndex fourni une interface graphique pour la conception

drsquoapplications Par contre des fois nous avons besoin drsquoautresfonctionnaliteacutes non disponibles donc il faut les creacuteer Cependantgeacuteneacuterer des macros pour syndex srsquoavegravere difficile pour certains du

fait qursquoil faut avoir une bonne connaissance de la programmation bas niveau Dans ce cas lrsquoutilisation de linux_IO trouve sa placedans un contexte particulier interfacer des applications CC++utilisateurs avec des applications embarqueacutees temps reacuteeldeacuteveloppeacutees sous syndex

Par rapport agrave ce contexte de programmation lrsquoorganisation du

deacuteveloppement des applications est structureacutee en deux parties 1 Application haut niveau

2 Application bas niveau

Equipe Systegraveme Robotiseacute de ProductionPrincipe de base

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6179

S y nd

e x

V5

En reacutesumeacute lrsquoapplicationutilisateur contient une

partie haut niveau enCC++ et une partie basniveau sous syndex avecun eacutechange de donneacuteesentre les deux partie en

utilisant la couche RTAIde linux

Equipe Systegraveme Robotiseacute de Production pp cat on aut n veauOn entend application haut

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6279

S y nd

e x

V5

niveau tout programmecomme la planification detrajectoires strateacutegies de

navigation etc hellipLrsquoeacutechange de donneacutees sefait par le biais desmeacutemoires partageacutees quifont parti du noyau RTAI

et de lrsquoespace utilisateursde Linux

Toute ressource preacutesente sur la carte Robosoft peutecirctre partageacutee sans aune restriction

Equipe Systegraveme Robotiseacute de Production pp cat on as n veauUne application bas niveau

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6379

S y nd

e x

V5

Une application bas niveau

est un programme conccedilusous syndex comme lacommande des moteurs la

lecture des capteurs etc hellipLes ressources mateacuteriellessont controcircler par plusieurs

cartes MPC555 Ces cartessrsquoeacutechangent des donneacuteesvia le bus CAN Donc ES

est prise en charge par lasource logicielle deacutedieacutee quisrsquoexeacutecute dans les cartes MPC555 puis la couche RTAI

est utiliseacute pour la mise agrave jour de meacutemoires partageacutees pour lrsquoespace utilisateurs linux drsquoeacutechange de donneacutees

Equipe Systegraveme Robotiseacute de ProductionUtilisation de linux_IO par syndex

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6479

S y nd

e x

V5

Equipe Systegraveme Robotiseacute de ProductionUtilisation de linux_IO par syndex

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6579

S y nd

e x

V5

Equipe Systegraveme Robotiseacute de Production

5

Utilisation de linux_IO par syndex

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6679

S y nd

e x

V5

Degraves que la conception de lrsquoapplication sous syndex esttermineacutee et apregraves compilation (AdequationDo it +GenExec) un fichier drsquoentecircte sous le nom de linioh est

automatiquement geacuteneacutereacute Ce fichier contient lesinformations neacutecessaires pour acceacuteder aux entreacutees enlecture et aux sorties en eacutecriture des opeacuterations linuxIO_

inseacutereacutees dans le graphe drsquoalgorithme Le contenu de cefichier est organiseacute en plusieurs parties une pour chaqueopeacuteration linux_IO preacutesente dans le graphe

Equipe Systegraveme Robotiseacute de Production

5

Utilisation de linux_IO par syndex linioh auto-generated C users API frontend

C i h b f 2001 i i i b f f

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6779

S y nd

e x

V5 Copyright Robosoft 2001 Pierre Pomiers ltpierrerobosoftfrgt

LINUX IO shared memory data segments

define SEG0_BASE 0x10000typedef struct

int js_spd_o0

int js_str_o0

int enc_R_o0int enc_L_o0

double odo_X_o0

double odo_Y_o0

double odo_T_o0int spd_R_o0

int spd_L_o0

int time

unsigned char sem shm_seg0_def

Nom du segment de meacutemoire partageacutee pour notre opeacuteration linuxIO_

7 signaux drsquoentreacutees Ces valeurs sonten lecture et sont peacuteriodiquementrafraicircchies par RTAI

2 signaux de sorties Ces valeurs sonten eacutecriture et sont peacuteriodiquementrafraicircchies par RTAI

Equipe Systegraveme Robotiseacute de Production

5

Crsquoest une eacutetape tregraves facile il suffit drsquoinclure le fichier drsquoentecirctelinio h dans le code du fichier en CC++ comme suit

Utilisation de linuxIO_ par un programme CC+

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6879

S y nd

e x

V5 linioh dans le code du fichier en CC++ comme suit

include linioh

include ltrtai_shmhgt

static shm_seg0_def seg0

shm_seg0_def robot

seg0 = rtai_malloc (SEG0_BASE sizeof (shm_seg0_def))

if (seg0-gtsem = 0) bcopy (seg0 amprobot sizeof (shm_seg0_def))helliphelliphellip

helliphelliphellip bcopy (amprobot seg0 sizeof (shm_seg0_def))helliphelliphelliphelliphelliphellip

rtai_free (SEG0_BASE seg0)

fichier drsquoentecircte de la meacutemoire partageacutee fourni dans la couche RTAI de linux

Initialisation du segment SEG0_BASE Allocation de lameacutemoire pointeacutee

par seg0

Lecture des donneacutees provenant du bas

niveau

Mise agrave jours du segment de meacutemoire partageacutee

Libeacuterer le segment de meacutemoire alloueacute

Equipe Systegraveme Robotiseacute de Production

5

Plan

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6979

S y nd e x

V5

bull Introductionbull Meacutethodologie AAA

bull Installationbull Utilisation du logiciel Syndex

bull Macrosbull LinuxIO un interface CC++ avec SynDEx

bull Exemple drsquoapplication Robuter-ULM

Equipe Systegraveme Robotiseacute de Production

V5

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7079

S y nd e x

V5

Exemple dapplication Exemple dapplication Robuter Robuter--ULM ULM

Equipe Systegraveme Robotiseacute de Production

V5

Description Robuter-ULMbull Base mobile (2-RM 2-RF)

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7179

S y nd e x

V

bull Bras ultra-leacuteger 6 axesbull Ceinture 24 capteurs US

bull Capteur drsquoefforts 6 axes

bull Cameacutera CCD monochromeavec carte drsquoacquisition

bull PC embarqueacute MMX 233

bull OS linux redhat 61 avecRTAI V-13

bull 3 bouton drsquoarrecirct drsquourgence

bull 4 batteries 48 VDC 4 X12V 60 Ah

bull Entreacutee Joystick

bull Liaison Ethernet sans fil

Le manipulateur mobile Robuter-ULM comprend

Equipe Systegraveme Robotiseacute de Production

V5

Base Mobilebull dimension

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7279

S y nd e x

V

1025 mm de longueur 680 mm de largueur et 44 cm de hauteurbull Poids environ 150 kg avec les batteriesbull charge jusqursquoagrave 120 kg

bull vitesse de 5cms agrave 125 msbull Moteurs 2 X 300 W DC 48 VDCbull orientation par diffeacuterence de vitesse

bull Preacutecision Position par encodeurs optiquesbull Deux roues motrices diffeacuterentielles et de deux roues follesbull Drsquoune ceinture de 24 capteurs Ultrasons

bull Une carte MPC555 de Robosoft pour le controcircle des deuxmoteurs DC des 2 rouesbull Un systegraveme drsquoodomeacutetrie qui donne la position relative du robot

par rapport agrave son repegravere

Equipe Systegraveme Robotiseacute de Production

V5

bull dimension Faute de documentation

Bras U tra- eacuteger

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7379

S y nd e x

V Faute de documentation

bull Poids moins de 20 kgbull charge 2 kgbull Moteurs 6 moteurs DC

bull gripper pince eacutelectrique 2 doigtsbull Reacutepeacutetabiliteacute +- 1mmbull 3 carte MPC555 de Robosoft lrsquoune pour le capteur drsquoeffort et les

deux autres pour les 6 moteurs + moteur de la pincebull Position encodeur increacutemental

1 2 3 4 5 6Axisrange

plusmn90deg 0-90deg plusmn80deg plusmn100deg plusmn90deg plusmn110deg

vitesse 180degs 180degs 180degs 180degs 180degs 180degs

Equipe Systegraveme Robotiseacute de Production

V5

rc tecture ar ware

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7479

S y nd e x

V

Equipe Systegraveme Robotiseacute de Production

V5

Pro eacutemat quePlusieurs applications peuvent ecirctre impleacutementeacutees sur le robot

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7579

S y nd e x

V

Cependant il faut faire la diffeacuterence entre les applications quidemande lrsquoutilisation de syndex et les applications qui neneacutecessite qursquoune programmation en CC++ Agrave titre drsquoexemple

bull Localisationbull Commande en position

bull Commande en forcebull Navigation

bull Geacuteneacuteration de trajectoire

bull Vision

Equipe Systegraveme Robotiseacute de Production

V5 bull Pince eacutelectrique (TOR)

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7679

S y nd e x

Vq ( )

bull Pince possegravede des ES Logiques

Notre application consiste agrave

bull Recevoir lrsquoeacutetat de la pince (fermeacutee ouverte )

bull Envoyer une commande vers la pince

Capture

drsquoinformation

Open

Close

CommandeMeacutemoire

Partageacutee

Actionneur

Pince Prise de deacutecision Pince

Equipe Systegraveme Robotiseacute de Production

V5

Sc eacutema eacute ectr que

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7779

S y nd e x

Equipe Systegraveme Robotiseacute de Production

V5

Conclusion

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7879

S y nd e x bull Introduction

bull Meacutethodologie AAA

bull Installationbull Utilisation du logiciel Syndex

bull Macrosbull LinuxIO un interface CC++ avec SynDEx

bull Exemple drsquoapplication Robuter-ULM

Equipe Systegraveme Robotiseacute de Production

V5

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7979

S y nd e x

Questions

Page 9: Cours Syndex

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 979

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV5

Meacutethodologie AA

Le but de la meacutethodologie AAA est de trouver lameilleure mise en correspondance entre unalgorithme speacutecifiant les fonctions de

lapplication agrave effectuer et une architecturemulti-composants tout en satisfaisant les

contraintes dembarquabiliteacute et de temps reacuteel dusystegraveme

Il est donc neacutecessaire de preacuteciser le sens que londonnera par la suite aux notions dalgorithmedarchitecture dadeacutequation et dimpleacutementation

Al i h

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 1079

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV5

Algorithme

Un algorithme est connu comme eacutetant une

seacutequence finie dopeacuterations (reacutealisables

en un temps fini et avec un support

mateacuteriel fini) Dans cette meacutethode cette

notion est eacutetendue pour prendre encompte dune part laspect infiniment

reacutepeacutetitif des applications reacuteactives et

dautre part laspect parallegravele neacutecessaire

a leur impleacutementation distribueacutee

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 1179

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV5

Op1

Op2

Op3 Op5

Op4

Op6

Capteur

Actionneur

Nœuds Opeacuteration

Arcs Transfert de donneacutees

Modegravele drsquoalgorithme

A hi

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 1279

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV5

Architecture

Larchitecture correspond auxcaracteacuteristiques structurelles du

calculateur exhibant un paralleacutelismedisponible en geacuteneacuteral moindre que leparalleacutelisme potentiel de lalgorithmePar abus de langage le termearchitecture sera ici souvent utilise dans

son sens geacuteneacuterique pour signifier agrave lafois le calculateur lui-mecircme ainsi queses caracteacuteristiques structurelles

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 1379

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV5

Meacutedia

Pr3

Pr1 Pr2

Pr123 Processeur

Meacutedia Moyen de communication

Arcs Transfert de donneacutees Modegravele drsquoarchitecture

Adeacute ti

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 1479

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

ladeacutequation consiste a mettre en correspondance de

maniegravere efficace lalgorithme et larchitecture pour reacutealiserune impleacutementation optimiseacutee

Adeacutequation

Instruction 1Instruction 2

hellip

hellip

Instruction N

Algorithme

Processeur Seacutequenceur

Architecture MonoprocesseurMeacutedia

Proc 1Seacuteq 1

Proc 2

Seacuteq 2Proc M

Seacuteq M

Architecture Multiprocesseurs

Inst 1

Inst 2

hellip

Inst N

Algorithme

Inst 1

Inst 2

hellip

Inst N

Inst 1

Inst 2

hellip

Inst N

hellip

hellip

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 1579

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Pour permettre une exploitation plus efficace du paralleacutelisme

disponible de larchitecture il faut eacutetendre lordre totaldexeacutecution des instructions du programme seacutequentielmonoprocesseur a un ordre partiel extrait par une analyse de

deacutependances de donneacutees entre instructions exhibant le paralleacutelisme potentiel de lalgorithme et permettant unedistribution et un ordonnancement

bull la distribution consiste agrave effectuer une Partition du graphe delrsquoalgorithme initial en autant drsquoeacuteleacutements de partition qursquoil y adrsquoopeacuterateur dans le graphe de lrsquoarchitecture

bull Lordonnancement consiste pour chaque eacuteleacutement de partition a lineacuteariser (rendre total) lordre partielcorrespondant au sous-graphe associe Cette phase estneacutecessaire car lopeacuterateur auquel on affecte un sous-graphe du

graphe de lalgorithme initial est geacutereacute par une seacutequenceurdrsquoinstruction

I leacute t ti

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 1679

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Impleacutementation

Limpleacutementation consiste a mettre en oeuvre

lalgorithme sur larchitecture cest- a-dire aallouer les ressources mateacuterielles de larchitectureaux opeacuterations de lalgorithme puis a compilercharger puis lancer lexeacutecution du programmecorrespondant sur le calculateur

Pl

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 1779

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Pla

bull Introduction

bull Meacutethodologie AAA

bull Installation

bull Utilisation du logiciel Syndex

bull Macros

bull LinuxIO un interface CC++ avec SynDEx

bull Exemple drsquoapplication Robuter-ULM

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 1879

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Installation Installation

bull Exigences mateacuteriellesbull Exigences logicielles

bull Installation de syndex V5bull Arborescence des reacutepertoires

Exigences mateacuteriels

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 1979

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Exigences mateacuteriels

bull Un PC avec un processeur de la famille Intel(80386 au minimum) ou un AMD

bull Une Carte de bus CAN (celle qui est installeacuteecrsquoest NuDACQ PCI-7841 baseacutee sur un chipPhilips SJA1000)

Ces deux speacutecifications sont suffisants pour ledeacuteveloppement drsquoune application RTAI

bull Pour les robots acquis il faut rajouter les cartes decontrocircle baseacutees sur le microcontrocircleur MPC555

Exigences logicielle

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 2079

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Exigences logiciellebull Un environnement sous Linux (quelle que soit la

distribution)bull Un module RTAI (Real-Time Applications

implementations)bull GNU gcc (outil de compilation)bull GNU binutils (outil pour assembler et eacutediter les liens

bull Le Logiciel Syndex V5bull Les macros de syndex pour

- carte de controcircle Robosoft- microcontrocircleur MPC555 de Motorola- PC sous LinuxRTAI

- Bus CAN

Installation de Syndex V

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 2179

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Installation de Syndex V

bull Creacuteation du reacutepertoire de destinationbull Copier le fichier avec la commande

cp syndex-xxx-linuxtgz rep_desbull Se mettre sous le reacutepertoire de destination puisdeacutecompresser le fichier avec la commande

tar zxvf syndex-xxx-linuxtgzCeci creacuteera sous le reacute pertoire de destination un sou

reacutepertoire de syndex contenant tout les fichiersDans le fichier syndexbat il faut mettre agrave jour lechemin du reacutepertoire de syndex

Arborescences des Reacutepertoire

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 2279

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Arborescences des Reacutepertoire

Apregraves lrsquoinstallation il est impeacuteratif drsquoorganiser lesreacutepertoires pour que lors de lrsquoeacutedition des liens le

fichier makefiles deacutepend de cette organisationLrsquoorganisation qui existe actuellement est comme

suit bull Apps applications deacuteveloppeacutees sous syndexbull Macros macros deacuteveloppeacutes pour syndex V5bull Rtai module rtai ou un lien symbolique qui point vers le reacutepertoire drsquoinstallation

Pla

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 2379

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Pla

bull Introduction

bull Meacutethodologie AAA

bull Installation

bull Utilisation du logiciel Syndex

bull Macros

bull LinuxIO un interface CC++ avec SynDEx

bull Exemple drsquoapplication Robuter-ULM

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 2479

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Utilisation du logicielUtilisation du logicielSyndexSyndex V5V5

bull Utilisation de lrsquointerface

bull Algorithme

bull Architecture

bull Caracteacuteristiques

bull Contraintes

bull Adeacutequation

bull Geacuteneacuteration du code exeacutecutif

SynDE

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 2579

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

SynDESynDEx est un logiciel graphique qui impleacutemente lameacutethodologie AAA et qui offre plusieurs fonctionnaliteacutes

bull Speacutecification drsquoun algorithme drsquoapplication saisi sousforme drsquoun graphe

bull Speacutecification drsquoun graphe drsquoarchitecture multi-composant

bull Heuristique pour la distribution et lrsquoordonnancement delrsquoalgorithme drsquoapplication sur lrsquoarchitecture avecoptimisation du temps de reacuteponse

bull Geacuteneacuteration des exeacutecutifs distribueacutes temps reacuteel

Utilisation de lrsquointerface

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 2679

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Utilisation de l interface

Utilisation de lrsquointerface

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 2779

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Utilisation de l interface

Utilisation de lrsquointerface

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 2879

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Utilisation de l interface

Algorithm

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 2979

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Algorithm

Lrsquoalgorithme est speacutecifieacute comme un graphe orienteacute ougravebull chaque sommet est une opeacuteration qui calcule les sorties

des entreacutees agrave chaque opeacuteration doit correspondre uneseacutequence drsquoinstructions compileacutee seacutepareacutement

bull Chaque arc est une deacutependance de donneacutees entre deux

opeacuterations (ou plus dans le cas de diffusion) c-a-d lasortie drsquoune opeacuteration est lrsquoentreacutee de lrsquoautre opeacuteration(ou de plusieurs autres opeacuterations) une entreacutee peut ecirctreconnecteacutee seulement agrave une sortie de mecircme type dedonneacutees

gor t m

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3079

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

gor t mon distingue 4 types de sommets

Algorithm

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3179

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Algorithmbull Le sommet function possegravede au moins une entreacutee et

une sortie crsquoest une opeacuteration agrave libre effet qui calculeses sorties uniquement agrave partir de ses entreacutees (c-a-d niagrave partir des variables globales ni agrave partir des

preacuteceacutedentes valeurs de ces entreacutees)bull Le sommet extio permet lrsquoacquisitionlrsquoeacutecriture des

entreacuteessorties on distingue trois cas

1 Capteur sans entreacutee agrave chaque reacuteaction sa sortierepreacutesente la valeur lue du capteur

2 Actionneur sans sortie agrave chaque reacuteaction ilenvoi son entreacutee agrave lrsquoactionneur

3 Linux_IO ces des meacutemoires partageacutees qui

permettent le transfert de donneacutees entre syndexet un langage eacutevolueacute

E i S egrave R b i eacute d P d i Algorithm

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3279

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Algorithm

bull Le sommet memory possegravede uniquement uneentreacutee et une sortie crsquoest une opeacuteration agrave effetunique qui met la sortie degraves la premiegravere reacuteaction

agrave une valeur initiale calculeacutee auparavant et puisla sortie de la prochaine reacuteaction nrsquoest que

lrsquoentreacutee de la preacuteceacutedente reacuteactionbull Le sommet constant ne possegravede aucune entreacutee

il calcule sa sortie une seule fois avant la premiegravere reacuteaction puis la sortie demeure la mecircme pour chaque reacuteaction

E i S tegrave R b ti eacute d P d ti Algorithm

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3379

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

AlgorithmPour lrsquoalgorithme chaque sommet est caracteacuteriseacute par

bull Son type geacuteneacuterique (function extio memory constant)bull Un nom unique (tout les sommets doivent avoir des

noms diffeacuterents)bull Son type identifiant sa seacutequence drsquoinstructionsassocieacute

bull Sa liste drsquoarguments ougrave chaque argument est speacutecifieacute par bull Le nombre drsquoentreacuteesortiebull Le type de donneacuteesbull Le nom (tout les arguments doivent avoir des noms

diffeacuterents)

Equipe Systegraveme Robotiseacute de Production Architecture

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3479

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

ArchitectureLrsquoarchitecture est speacutecifieacutee comme un graphe non orienteacute

ougrave bullChaque sommet est une ressource seacutequentielle il y adeux types de sommets

bull processeur crsquoest une ressource de calcul enmesure drsquoexeacutecuter seacutequentiellement les opeacuterationsdrsquoun algorithme il pourrait ecirctre un processeur ou

un circuit inteacutegreacute speacutecialiseacutebull meacutedia crsquoest une ressource de communicationen mesure drsquoexeacutecuter seacutequentiellement un transfertde donneacutees entre les meacutemoires des processeurs quilui sont connecteacutes

bull chaque arc est une connexion bidirectionnelle entreun processeur et un meacutedia

Equipe Systegraveme Robotiseacute de Production Architecture

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3579

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

ArchitecturePour lrsquoarchitecture chaque sommet est caracteacuteriseacute par

bull Un nom uniquebullSon type (processeur or meacutedia)bull Son type identifiant caracteacuteristiques mateacuterielles

bull Sa liste de connecteurs ougrave chaque connecteur est speacutecifieacute par bull son type identifiant le type de meacutedia agrave qui il peut ecirctreconnecteacute

bullUn nom

Equipe Systegraveme Robotiseacute de ProductionCaracteacuter st que

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3679

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Caracteacuter st que Nous distinguons deux cateacutegories de caracteacuteristiques lrsquoune relative

aux opeacuterations et lrsquoune agrave la communication 1 Comment speacutecifier les caracteacuteristiques des opeacuterations sous le menu AdequationAlOp_ArOp on obtient une boite

de dialogue avec

une liste de toutles types de

processeurs et

pour chaque processeur uneliste de tout les

types drsquoopeacuterationsqui peut lesexeacutecuter avec ladureacutee drsquoexeacutecutioncorrespondante

Equipe Systegraveme Robotiseacute de ProductionCaracteacuteristique

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3779

q p y

S y nd

e xV

5

q2 Comment speacutecifier les caracteacuteristiques de communication

sous le menu AdequationAlIO_ArIO on obtient une boitede dialogue avec une liste de tout les types de meacutedia et

pour chaque meacutedia une liste de tout les types de donneacutees

qui peut transfeacuterer avec la dureacutee de transfertcorrespondante

Equipe Systegraveme Robotiseacute de Production Contraintes

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3879

S y nd

e xV

5

Pour contraindre une opeacuteration agrave srsquoexeacutecuter sur un processeur donneacutee

1Seacutelectionner le(s) opeacuteration(s) agrave contraindre2 Seacutelectionner la commande AlgorithmSetConstraint3 Seacutelectionner le processeur qui doit exeacutecute les opeacuterationsseacutelectionneacutees

Pour enlever les contraintes seacutelectionner lrsquoopeacuteration puis exeacutecuterla commande AlgorithmDeleteConstraint

Pour voir sur quel processeur une opeacuteration est y contrainteseacutelectionner lrsquoopeacuteration puis exeacutecuter la commandeAlgorithmShowConstraint le processeur correspondant y sera

seacutelectionneacutePour voir toute les opeacuterations qui sont contraintes sur un processeurseacutelectionner le processeur puis exeacutecuter la commande

ArchitectureShowConstrained du menu les opeacuterationscorrespondantes y seront seacutelectionneacutees

Equipe Systegraveme Robotiseacute de Production A eacutequat o

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3979

S y nd

e xV

5

q

Pour construire le planificateur des opeacuterations dugraphe drsquoalgorithme sur les processeurs du graphedrsquoarchitecture qui effectue automatiquement le routage

des deacutependances de donneacutees inter-processeurs et lacreacuteation et la planification des opeacuterations decommunication sur le meacutedia du graphe drsquoarchitectureon utilise la commande AdequationDoIt

Cette commande creacutee un heuristique qui cherche agraveminimiser le chemin critique du graphe drsquoalgorithme

Equipe Systegraveme Robotiseacute de ProductionGeacuteneacuteration du code exeacutecuti

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4079

S y nd

e xV

5Le code exeacutecutif est la partie qui gegravere les ressources

mateacuterielles pour les allouer aux besoins de lrsquoalgorithmedrsquoapplication Les ressources agrave allouer sont

1 Les espaces meacutemoires des processeurs2 Le temps des seacutequences drsquoinstructions3 Le temps des meacutedia de communication

Gracircce agrave la meacutethodologie AAA et le logiciel Syndexlrsquoutilisateur est exempte drsquoeacutecrire du code pour geacuterer ces

ressources Donc par simple exeacutecution de la commandeAdequationGenExec un code distribueacute pour chaque processeur est automatiquement geacuteneacutereacute Ce code est en

fait un exeacutecutif geacuteneacutereacute sur mesure pour lrsquoalgorithme etlrsquoarchitecture

Equipe Systegraveme Robotiseacute de ProductionGeacuteneacuteration du code exeacutecuti

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4179

S y nd

e xV5

Pour chaque processeur de lrsquoarchitecture un fichier

source macro-exeacutecutif m4 avec le mecircme nom estgeacuteneacutereacute plus un macro-makefile ayant le mecircme nom quecelui de lrsquoapplication Chacun de ces fichiers doit ecirctre

transcrit par le macro-processeur GNU M4 (assembleurC) Cette transcription deacutepend de plusieurs fichiers

1 Fichier syndexm4x qui deacutefini les macrosgeacuteneacuteriques de syndex2 Fichier processorTypem4x qui deacutefini les macros

de bas niveau du processeur3 Fichier applicationNamem4x qui deacutefini les macros

speacutecifiques agrave lrsquoapplication

4 Fichier mediaTypem4x qui deacutefini les macros decommunication de bas niveau du type de media

Equipe Systegraveme Robotiseacute de ProductionCreacuteat on rsquoapp cat on

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4279

S y nd

e xV5 Arborescence des reacutepertoires Rep_travail

Applicationmacros

~rtai

Eacutevolution de lrsquoapplication

Phase 1

Edition des macros(C ou Assembleur)

+GNUmakefile

Phase 2

Edition du graphe

(Algorithme amp

Architecteure)

Phase 3

Compilation amp Exeacutecution

Equipe Systegraveme Robotiseacute de ProductionSeacutequence de compilation de Synde

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4379

S y nd

e xV5

Equipe Systegraveme Robotiseacute de Production Plan

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4479

S y nd

e xV5

bull Introduction

bull Meacutethodologie AAA

bull Installation

bull Utilisation du logiciel Syndex

bull Macros

bull LinuxIO un interface CC++ avec SynDEx

bull Exemple drsquoapplication Robuter-ULM

Equipe Systegraveme Robotiseacute de Production

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4579

S y nd

e xV5

Macros Macros

bull Deacutefinition

bull Types de macros

bull Carte Robosoft MPC555

bull Macros Geacuteneacuterique MPC555

bull Macros speacutecifique Robosoftbull Macros de Communication

bull Macros drsquoapplicationbull Structure du fichier Macro

Equipe Systegraveme Robotiseacute de Production Deacutefinition

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4679

S y nd

e xV5

Un macro-processeur est un programme qui consommeen entreacutee une chaicircne de caractegraveres (texte source) la

traite seacutequentiellement en substituant chaque sous-chaicircne qursquoil reconnaicirct (Appel de macro) par unechaicircne correspondante de substitution ( Deacutefinition de

macro) qursquoil traite agrave nouveau jusqursquoagrave ce qursquoil nrsquo y ait plus de substitution possible et qui produit en sortie lachaicircne de caractegraveres traiteacutee

Equipe Systegraveme Robotiseacute de Productionypes e macrosL diffeacute t di ti t d d

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4779

S y nd

e xV5

Les diffeacuterents macros se distinguent en deux grandes

classes bull Macros geacuteneacuteriques

en geacuteneacuteral ceux sont des macros non destineacutes agraveecirctre utiliser directement par lrsquointerface syndexmais plutocirct utiliseacutees pour la programmation

drsquoautres macros (macros MPC555)bull Macros utilisateurs

macros utiliseacutes directement par syndex ils sontspeacutecifiques agrave lrsquoapplication (macros decommunication macros speacutecifiques robosoft

macros speacutecifiques agrave lrsquoapplication)

Equipe Systegraveme Robotiseacute de ProductionCarte Robosoft MPC555La carte Robosoft MPC555 est conccedilue pour la commande de robot de veacutehicule

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4879

S y nd

e xV5

(1) Connecteur du chip MPC555(2) Alimentation continue(3) Interface BDM (Basic Debug Interface)(4) Entreacute Analogique (Joystickhellip)(5) EntreacuteSortie logiques(6) Ligne seacuterie Synchrone (Codeur absolu)(7) Ligne seacuterie Asynchrone (Port 0)

(8) Ligne seacuterie Asynchrone (Port 1)(9) Connecteur du bus CAN (Port 0)(10) Connecteur du bus CAN (Port 1)(11) Axe 1(13) Axe 2(14) Axe 3(15) Axe 4

La carte Robosoft MPC555 est conccedilue pour la commande de robot de veacutehiculeeacutelectrique ou toute autre machine Elle permet de commander un axe gracircce agrave

lrsquoajout drsquoune carte fille le controcircle srsquoeacutetend jusqursquoagrave 4 axesCette carte est baseacutee sur le microcontrocircleur MPC555 32-bit de MotorolaElle peut opeacuterer agrave une freacutequence

de 40 MHz Divers signauxlogique et analogique peuventecirctre utiliser pour lrsquoacquisition deet la commande de mateacuteriel Les

sorties disponibles peuvent ecirctreanalogique ou PWMOn y trouve

Equipe Systegraveme Robotiseacute de ProductionArchitecture du MPC555

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4979

S y nd

e xV5

Equipe Systegraveme Robotiseacute de Productionaract r st ques u

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5079

S y nd

e xV5

Equipe Systegraveme Robotiseacute de Productionacros n r quesbull GPIO (General-Purpose InputOutput)

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5179

S y nd

e xV5

GPIO (General Purpose InputOutput)ce macro utilise le module USIU qui lui fourni 64 pins pour desentreacuteessorties numeacuteriques ordinaires (IO de la carte Robosoft lirelrsquoeacutetat de la pince envoi de commande agrave la pince lire les alarmes)

bull QADC (Queued Analog to Digital Converter)en utilisant le module QADC ce macro permet la conversion drsquounsignal analogique en entreacutee en un signal numeacuterique multi-niveaux(lire les donneacutees du capteur drsquoeacuteffort du joystick)

bull MIOS (Modular InputOutput System)Le module MIOS fourni 16 pins drsquoES numeacuteriques Sur la carte deRobosoft tous les pins sont en sortie Les 16 pins sont reacutepartiscomme suit

utilisateurs reacuteserveacutes

les pins de 0 agrave 11 sont reacuteserveacutes car ils sont preacutevus agrave ecirctre utiliseacutes pour unmateacuteriel particulier Mais si ce mateacuteriel nrsquoest pas utiliseacute lrsquoutilisateur peut lesutiliser librement

15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

Equipe Systegraveme Robotiseacute de ProductionMacros Geacuteneacuter ques MPC55

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5279

S y nd

e xV5

bull PWM (Pulse width Modulation)utilise le module MIOS (pins de 4-7 pour la direction des moteurset de 8-11 pour la validation) pour la commande des actionneursnumeacuteriques en PWM

bull TPU (Time Processor Units)les macros lieacutes agrave ce module permettent la lecture des encodeurs

increacutementauxbull QSPI (Queued Serial Peripheral Interface)

ce module fait partie du module QSMCM et les macros lieacutes servent

agrave son initialisation pour une communication avec du mateacuterielsexternes via le bus seacuterie synchrone

Equipe Systegraveme Robotiseacute de ProductionMacros Geacuteneacuter ques MPC55

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5379

S y nd

e x

V5 bull Serial port support (Polling implementation)

le MPC555 comprend dans le module QSMCM une interface decommunication seacuterie SCI qui permet la communication avec dumateacuteriels externes via un bus seacuterie asynchrone Plusieurs macros

sont lieacutes agrave cette interface pour initialiser et eacutetablir la communicationbull Serial port support (interrupt handling implementation)

pour la mecircme interface SCI du module QSMCM pour cette

meacutethode drsquoimpleacutementation les macros lieacutes initialisent et eacutetablissentla communication en mode par interruption ce qui permet dedeacutetecter lrsquoarriveacutee des donneacutees sur le port seacuterie au lieu de le scruter

en permanence

tous ces macros on les retrouvent dans le fichier 555m4x

Equipe Systegraveme Robotiseacute de ProductionMacros Speacutec ques Ro oso tles macros suivants sont deacutedieacutes agrave la carte de Robosoft MPC555

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5479

S y nd

e x

V5

bull Initialisation de la carte Robosoftmain_ini_() macro ne doit pas ecirctre utiliser par les programmateursdu fait qursquoelle sert qursquoagrave initialiser la carte robosoft Macro interne agrave

syndex dont lrsquoappel est automatique lors de geacuteneacuteration drsquoexeacutecutifMPC555

bull DAC (Digital to Analog Converter)

macro permet lrsquoutilisation du convertisseur de carte robosoft via lemodule MIOs en utilisant les pins de 0 agrave 2

bull LED (on-bord LED interface)

macro permet la gestion de la LED de la carte robosoft connecteacuteeau module QSPI (pin PCS1)

bull SPI absolute encoder

macro permet lrsquoutilisation lrsquointerface du codeur absolu de la carterobosoft connecteacute au module QSPI

Equipe Systegraveme Robotiseacute de ProductionMacros Speacutec ques Ro oso tbull Motor amplifier direction

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5579

S y nd

e x

V5

Motor amplifier directionmacro qui permet de geacuterer la direction des moteurs

bull Motor power amplifier validationles moteurs embarqueacutes sur les robots sont eacutequipeacutes de freins

eacutelectriquement commandable Ce macro permet drsquoenvoyer unsignal drsquoinhibition pour deacutebloquer les freins

bull Watch dog

pour des raisons de seacutecuriteacute un meacutecanisme mateacuteriel que robosofta ajouteacute sur la carte Ce watch-dog vise agrave stopper lrsquoactiviteacute dumoteur en cas ougrave le programme plante Le watch est impleacutementeacute

comme un time-out mateacuteriel Srsquoil nrsquoest pas rafraicircchi peacuteriodiquement il transmet un signal de sortie ce qui enlegraveve lavalidation de lrsquoamplificateur de puissance donc lrsquoarrecirct dumouvement

ces macros se trouvent dans le fichier RSBm4x

Equipe Systegraveme Robotiseacute de Production

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5679

S y nd

e x

V5

Macros de Communicationchaque meacutedia de communication (bus CAN ) est une ressourceseacutequentielle ougrave les transferts de donneacutees entre processeurs doiventsuivre un certain ordre Donc ce macro de communication sert agravedeacutefinir cet ordre et agrave identifier le protocole de communication lecodagedeacutecodage de lrsquoinformation et la synchronisation

on trouve ces macros dans le fichier CANm4x

Macros drsquoapplicationce genre de macros sont speacutecifique au mateacuteriel en question et aussiagrave lrsquoapplication en particulier Ce sont des macros utilisateurs

on trouve ces macros dans le fichier Application_namem4x

Equipe Systegraveme Robotiseacute de Production

section include (pour inclure drsquoautres fichiers macro agrave utiliseStructure du fichier macr

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5779

S y nd

e x

V5

section define (pour tous les macros utilisateurs)MGC lsquoINITrsquo (MGC Macro Generation Context variable)

divert (declaration) (deacutebut du macro)

(deacuteclaration des variables des meacutemoires et des csts

divert (o)

MGC lsquolooprsquocode en assembleur code en C

dnl (commentaires)

MGC lsquoENDrsquo dnl (fin de la macros)divert lsquo lsquo dnl

macros MPC555meacutemoire MPC555

constante MPC555

macros RTAImeacutemoire RTAI

constante RTAI

Equipe Systegraveme Robotiseacute de Production Plan

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5879

S y nd

e x

V5

bull Introduction

bull Meacutethodologie AAA

bull Installationbull Utilisation du logiciel Syndex

bull Macrosbull LinuxIO un interface CC++ avec SynDEx

bull Exemple drsquoapplication Robuter-ULM

Equipe Systegraveme Robotiseacute de Production

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5979

S y nd

e x

V5

LinuxIO LinuxIO une interface une interface

CC++ avecCC++ avec SynDExSynDEx

bull Principe de basebull Utilisation de linuxIO_ par syndex

bull Utilisation de linuxIO_ par un programmeCC++

Equipe Systegraveme Robotiseacute de ProductionPrincipe de baseSyndex fourni une interface graphique pour la conception

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6079

S y nd

e x

V5

Syndex fourni une interface graphique pour la conception

drsquoapplications Par contre des fois nous avons besoin drsquoautresfonctionnaliteacutes non disponibles donc il faut les creacuteer Cependantgeacuteneacuterer des macros pour syndex srsquoavegravere difficile pour certains du

fait qursquoil faut avoir une bonne connaissance de la programmation bas niveau Dans ce cas lrsquoutilisation de linux_IO trouve sa placedans un contexte particulier interfacer des applications CC++utilisateurs avec des applications embarqueacutees temps reacuteeldeacuteveloppeacutees sous syndex

Par rapport agrave ce contexte de programmation lrsquoorganisation du

deacuteveloppement des applications est structureacutee en deux parties 1 Application haut niveau

2 Application bas niveau

Equipe Systegraveme Robotiseacute de ProductionPrincipe de base

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6179

S y nd

e x

V5

En reacutesumeacute lrsquoapplicationutilisateur contient une

partie haut niveau enCC++ et une partie basniveau sous syndex avecun eacutechange de donneacuteesentre les deux partie en

utilisant la couche RTAIde linux

Equipe Systegraveme Robotiseacute de Production pp cat on aut n veauOn entend application haut

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6279

S y nd

e x

V5

niveau tout programmecomme la planification detrajectoires strateacutegies de

navigation etc hellipLrsquoeacutechange de donneacutees sefait par le biais desmeacutemoires partageacutees quifont parti du noyau RTAI

et de lrsquoespace utilisateursde Linux

Toute ressource preacutesente sur la carte Robosoft peutecirctre partageacutee sans aune restriction

Equipe Systegraveme Robotiseacute de Production pp cat on as n veauUne application bas niveau

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6379

S y nd

e x

V5

Une application bas niveau

est un programme conccedilusous syndex comme lacommande des moteurs la

lecture des capteurs etc hellipLes ressources mateacuteriellessont controcircler par plusieurs

cartes MPC555 Ces cartessrsquoeacutechangent des donneacuteesvia le bus CAN Donc ES

est prise en charge par lasource logicielle deacutedieacutee quisrsquoexeacutecute dans les cartes MPC555 puis la couche RTAI

est utiliseacute pour la mise agrave jour de meacutemoires partageacutees pour lrsquoespace utilisateurs linux drsquoeacutechange de donneacutees

Equipe Systegraveme Robotiseacute de ProductionUtilisation de linux_IO par syndex

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6479

S y nd

e x

V5

Equipe Systegraveme Robotiseacute de ProductionUtilisation de linux_IO par syndex

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6579

S y nd

e x

V5

Equipe Systegraveme Robotiseacute de Production

5

Utilisation de linux_IO par syndex

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6679

S y nd

e x

V5

Degraves que la conception de lrsquoapplication sous syndex esttermineacutee et apregraves compilation (AdequationDo it +GenExec) un fichier drsquoentecircte sous le nom de linioh est

automatiquement geacuteneacutereacute Ce fichier contient lesinformations neacutecessaires pour acceacuteder aux entreacutees enlecture et aux sorties en eacutecriture des opeacuterations linuxIO_

inseacutereacutees dans le graphe drsquoalgorithme Le contenu de cefichier est organiseacute en plusieurs parties une pour chaqueopeacuteration linux_IO preacutesente dans le graphe

Equipe Systegraveme Robotiseacute de Production

5

Utilisation de linux_IO par syndex linioh auto-generated C users API frontend

C i h b f 2001 i i i b f f

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6779

S y nd

e x

V5 Copyright Robosoft 2001 Pierre Pomiers ltpierrerobosoftfrgt

LINUX IO shared memory data segments

define SEG0_BASE 0x10000typedef struct

int js_spd_o0

int js_str_o0

int enc_R_o0int enc_L_o0

double odo_X_o0

double odo_Y_o0

double odo_T_o0int spd_R_o0

int spd_L_o0

int time

unsigned char sem shm_seg0_def

Nom du segment de meacutemoire partageacutee pour notre opeacuteration linuxIO_

7 signaux drsquoentreacutees Ces valeurs sonten lecture et sont peacuteriodiquementrafraicircchies par RTAI

2 signaux de sorties Ces valeurs sonten eacutecriture et sont peacuteriodiquementrafraicircchies par RTAI

Equipe Systegraveme Robotiseacute de Production

5

Crsquoest une eacutetape tregraves facile il suffit drsquoinclure le fichier drsquoentecirctelinio h dans le code du fichier en CC++ comme suit

Utilisation de linuxIO_ par un programme CC+

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6879

S y nd

e x

V5 linioh dans le code du fichier en CC++ comme suit

include linioh

include ltrtai_shmhgt

static shm_seg0_def seg0

shm_seg0_def robot

seg0 = rtai_malloc (SEG0_BASE sizeof (shm_seg0_def))

if (seg0-gtsem = 0) bcopy (seg0 amprobot sizeof (shm_seg0_def))helliphelliphellip

helliphelliphellip bcopy (amprobot seg0 sizeof (shm_seg0_def))helliphelliphelliphelliphelliphellip

rtai_free (SEG0_BASE seg0)

fichier drsquoentecircte de la meacutemoire partageacutee fourni dans la couche RTAI de linux

Initialisation du segment SEG0_BASE Allocation de lameacutemoire pointeacutee

par seg0

Lecture des donneacutees provenant du bas

niveau

Mise agrave jours du segment de meacutemoire partageacutee

Libeacuterer le segment de meacutemoire alloueacute

Equipe Systegraveme Robotiseacute de Production

5

Plan

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6979

S y nd e x

V5

bull Introductionbull Meacutethodologie AAA

bull Installationbull Utilisation du logiciel Syndex

bull Macrosbull LinuxIO un interface CC++ avec SynDEx

bull Exemple drsquoapplication Robuter-ULM

Equipe Systegraveme Robotiseacute de Production

V5

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7079

S y nd e x

V5

Exemple dapplication Exemple dapplication Robuter Robuter--ULM ULM

Equipe Systegraveme Robotiseacute de Production

V5

Description Robuter-ULMbull Base mobile (2-RM 2-RF)

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7179

S y nd e x

V

bull Bras ultra-leacuteger 6 axesbull Ceinture 24 capteurs US

bull Capteur drsquoefforts 6 axes

bull Cameacutera CCD monochromeavec carte drsquoacquisition

bull PC embarqueacute MMX 233

bull OS linux redhat 61 avecRTAI V-13

bull 3 bouton drsquoarrecirct drsquourgence

bull 4 batteries 48 VDC 4 X12V 60 Ah

bull Entreacutee Joystick

bull Liaison Ethernet sans fil

Le manipulateur mobile Robuter-ULM comprend

Equipe Systegraveme Robotiseacute de Production

V5

Base Mobilebull dimension

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7279

S y nd e x

V

1025 mm de longueur 680 mm de largueur et 44 cm de hauteurbull Poids environ 150 kg avec les batteriesbull charge jusqursquoagrave 120 kg

bull vitesse de 5cms agrave 125 msbull Moteurs 2 X 300 W DC 48 VDCbull orientation par diffeacuterence de vitesse

bull Preacutecision Position par encodeurs optiquesbull Deux roues motrices diffeacuterentielles et de deux roues follesbull Drsquoune ceinture de 24 capteurs Ultrasons

bull Une carte MPC555 de Robosoft pour le controcircle des deuxmoteurs DC des 2 rouesbull Un systegraveme drsquoodomeacutetrie qui donne la position relative du robot

par rapport agrave son repegravere

Equipe Systegraveme Robotiseacute de Production

V5

bull dimension Faute de documentation

Bras U tra- eacuteger

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7379

S y nd e x

V Faute de documentation

bull Poids moins de 20 kgbull charge 2 kgbull Moteurs 6 moteurs DC

bull gripper pince eacutelectrique 2 doigtsbull Reacutepeacutetabiliteacute +- 1mmbull 3 carte MPC555 de Robosoft lrsquoune pour le capteur drsquoeffort et les

deux autres pour les 6 moteurs + moteur de la pincebull Position encodeur increacutemental

1 2 3 4 5 6Axisrange

plusmn90deg 0-90deg plusmn80deg plusmn100deg plusmn90deg plusmn110deg

vitesse 180degs 180degs 180degs 180degs 180degs 180degs

Equipe Systegraveme Robotiseacute de Production

V5

rc tecture ar ware

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7479

S y nd e x

V

Equipe Systegraveme Robotiseacute de Production

V5

Pro eacutemat quePlusieurs applications peuvent ecirctre impleacutementeacutees sur le robot

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7579

S y nd e x

V

Cependant il faut faire la diffeacuterence entre les applications quidemande lrsquoutilisation de syndex et les applications qui neneacutecessite qursquoune programmation en CC++ Agrave titre drsquoexemple

bull Localisationbull Commande en position

bull Commande en forcebull Navigation

bull Geacuteneacuteration de trajectoire

bull Vision

Equipe Systegraveme Robotiseacute de Production

V5 bull Pince eacutelectrique (TOR)

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7679

S y nd e x

Vq ( )

bull Pince possegravede des ES Logiques

Notre application consiste agrave

bull Recevoir lrsquoeacutetat de la pince (fermeacutee ouverte )

bull Envoyer une commande vers la pince

Capture

drsquoinformation

Open

Close

CommandeMeacutemoire

Partageacutee

Actionneur

Pince Prise de deacutecision Pince

Equipe Systegraveme Robotiseacute de Production

V5

Sc eacutema eacute ectr que

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7779

S y nd e x

Equipe Systegraveme Robotiseacute de Production

V5

Conclusion

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7879

S y nd e x bull Introduction

bull Meacutethodologie AAA

bull Installationbull Utilisation du logiciel Syndex

bull Macrosbull LinuxIO un interface CC++ avec SynDEx

bull Exemple drsquoapplication Robuter-ULM

Equipe Systegraveme Robotiseacute de Production

V5

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7979

S y nd e x

Questions

Page 10: Cours Syndex

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 1079

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV5

Algorithme

Un algorithme est connu comme eacutetant une

seacutequence finie dopeacuterations (reacutealisables

en un temps fini et avec un support

mateacuteriel fini) Dans cette meacutethode cette

notion est eacutetendue pour prendre encompte dune part laspect infiniment

reacutepeacutetitif des applications reacuteactives et

dautre part laspect parallegravele neacutecessaire

a leur impleacutementation distribueacutee

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 1179

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV5

Op1

Op2

Op3 Op5

Op4

Op6

Capteur

Actionneur

Nœuds Opeacuteration

Arcs Transfert de donneacutees

Modegravele drsquoalgorithme

A hi

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 1279

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV5

Architecture

Larchitecture correspond auxcaracteacuteristiques structurelles du

calculateur exhibant un paralleacutelismedisponible en geacuteneacuteral moindre que leparalleacutelisme potentiel de lalgorithmePar abus de langage le termearchitecture sera ici souvent utilise dans

son sens geacuteneacuterique pour signifier agrave lafois le calculateur lui-mecircme ainsi queses caracteacuteristiques structurelles

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 1379

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV5

Meacutedia

Pr3

Pr1 Pr2

Pr123 Processeur

Meacutedia Moyen de communication

Arcs Transfert de donneacutees Modegravele drsquoarchitecture

Adeacute ti

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 1479

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

ladeacutequation consiste a mettre en correspondance de

maniegravere efficace lalgorithme et larchitecture pour reacutealiserune impleacutementation optimiseacutee

Adeacutequation

Instruction 1Instruction 2

hellip

hellip

Instruction N

Algorithme

Processeur Seacutequenceur

Architecture MonoprocesseurMeacutedia

Proc 1Seacuteq 1

Proc 2

Seacuteq 2Proc M

Seacuteq M

Architecture Multiprocesseurs

Inst 1

Inst 2

hellip

Inst N

Algorithme

Inst 1

Inst 2

hellip

Inst N

Inst 1

Inst 2

hellip

Inst N

hellip

hellip

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 1579

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Pour permettre une exploitation plus efficace du paralleacutelisme

disponible de larchitecture il faut eacutetendre lordre totaldexeacutecution des instructions du programme seacutequentielmonoprocesseur a un ordre partiel extrait par une analyse de

deacutependances de donneacutees entre instructions exhibant le paralleacutelisme potentiel de lalgorithme et permettant unedistribution et un ordonnancement

bull la distribution consiste agrave effectuer une Partition du graphe delrsquoalgorithme initial en autant drsquoeacuteleacutements de partition qursquoil y adrsquoopeacuterateur dans le graphe de lrsquoarchitecture

bull Lordonnancement consiste pour chaque eacuteleacutement de partition a lineacuteariser (rendre total) lordre partielcorrespondant au sous-graphe associe Cette phase estneacutecessaire car lopeacuterateur auquel on affecte un sous-graphe du

graphe de lalgorithme initial est geacutereacute par une seacutequenceurdrsquoinstruction

I leacute t ti

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 1679

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Impleacutementation

Limpleacutementation consiste a mettre en oeuvre

lalgorithme sur larchitecture cest- a-dire aallouer les ressources mateacuterielles de larchitectureaux opeacuterations de lalgorithme puis a compilercharger puis lancer lexeacutecution du programmecorrespondant sur le calculateur

Pl

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 1779

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Pla

bull Introduction

bull Meacutethodologie AAA

bull Installation

bull Utilisation du logiciel Syndex

bull Macros

bull LinuxIO un interface CC++ avec SynDEx

bull Exemple drsquoapplication Robuter-ULM

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 1879

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Installation Installation

bull Exigences mateacuteriellesbull Exigences logicielles

bull Installation de syndex V5bull Arborescence des reacutepertoires

Exigences mateacuteriels

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 1979

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Exigences mateacuteriels

bull Un PC avec un processeur de la famille Intel(80386 au minimum) ou un AMD

bull Une Carte de bus CAN (celle qui est installeacuteecrsquoest NuDACQ PCI-7841 baseacutee sur un chipPhilips SJA1000)

Ces deux speacutecifications sont suffisants pour ledeacuteveloppement drsquoune application RTAI

bull Pour les robots acquis il faut rajouter les cartes decontrocircle baseacutees sur le microcontrocircleur MPC555

Exigences logicielle

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 2079

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Exigences logiciellebull Un environnement sous Linux (quelle que soit la

distribution)bull Un module RTAI (Real-Time Applications

implementations)bull GNU gcc (outil de compilation)bull GNU binutils (outil pour assembler et eacutediter les liens

bull Le Logiciel Syndex V5bull Les macros de syndex pour

- carte de controcircle Robosoft- microcontrocircleur MPC555 de Motorola- PC sous LinuxRTAI

- Bus CAN

Installation de Syndex V

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 2179

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Installation de Syndex V

bull Creacuteation du reacutepertoire de destinationbull Copier le fichier avec la commande

cp syndex-xxx-linuxtgz rep_desbull Se mettre sous le reacutepertoire de destination puisdeacutecompresser le fichier avec la commande

tar zxvf syndex-xxx-linuxtgzCeci creacuteera sous le reacute pertoire de destination un sou

reacutepertoire de syndex contenant tout les fichiersDans le fichier syndexbat il faut mettre agrave jour lechemin du reacutepertoire de syndex

Arborescences des Reacutepertoire

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 2279

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Arborescences des Reacutepertoire

Apregraves lrsquoinstallation il est impeacuteratif drsquoorganiser lesreacutepertoires pour que lors de lrsquoeacutedition des liens le

fichier makefiles deacutepend de cette organisationLrsquoorganisation qui existe actuellement est comme

suit bull Apps applications deacuteveloppeacutees sous syndexbull Macros macros deacuteveloppeacutes pour syndex V5bull Rtai module rtai ou un lien symbolique qui point vers le reacutepertoire drsquoinstallation

Pla

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 2379

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Pla

bull Introduction

bull Meacutethodologie AAA

bull Installation

bull Utilisation du logiciel Syndex

bull Macros

bull LinuxIO un interface CC++ avec SynDEx

bull Exemple drsquoapplication Robuter-ULM

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 2479

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Utilisation du logicielUtilisation du logicielSyndexSyndex V5V5

bull Utilisation de lrsquointerface

bull Algorithme

bull Architecture

bull Caracteacuteristiques

bull Contraintes

bull Adeacutequation

bull Geacuteneacuteration du code exeacutecutif

SynDE

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 2579

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

SynDESynDEx est un logiciel graphique qui impleacutemente lameacutethodologie AAA et qui offre plusieurs fonctionnaliteacutes

bull Speacutecification drsquoun algorithme drsquoapplication saisi sousforme drsquoun graphe

bull Speacutecification drsquoun graphe drsquoarchitecture multi-composant

bull Heuristique pour la distribution et lrsquoordonnancement delrsquoalgorithme drsquoapplication sur lrsquoarchitecture avecoptimisation du temps de reacuteponse

bull Geacuteneacuteration des exeacutecutifs distribueacutes temps reacuteel

Utilisation de lrsquointerface

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 2679

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Utilisation de l interface

Utilisation de lrsquointerface

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 2779

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Utilisation de l interface

Utilisation de lrsquointerface

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 2879

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Utilisation de l interface

Algorithm

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 2979

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Algorithm

Lrsquoalgorithme est speacutecifieacute comme un graphe orienteacute ougravebull chaque sommet est une opeacuteration qui calcule les sorties

des entreacutees agrave chaque opeacuteration doit correspondre uneseacutequence drsquoinstructions compileacutee seacutepareacutement

bull Chaque arc est une deacutependance de donneacutees entre deux

opeacuterations (ou plus dans le cas de diffusion) c-a-d lasortie drsquoune opeacuteration est lrsquoentreacutee de lrsquoautre opeacuteration(ou de plusieurs autres opeacuterations) une entreacutee peut ecirctreconnecteacutee seulement agrave une sortie de mecircme type dedonneacutees

gor t m

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3079

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

gor t mon distingue 4 types de sommets

Algorithm

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3179

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Algorithmbull Le sommet function possegravede au moins une entreacutee et

une sortie crsquoest une opeacuteration agrave libre effet qui calculeses sorties uniquement agrave partir de ses entreacutees (c-a-d niagrave partir des variables globales ni agrave partir des

preacuteceacutedentes valeurs de ces entreacutees)bull Le sommet extio permet lrsquoacquisitionlrsquoeacutecriture des

entreacuteessorties on distingue trois cas

1 Capteur sans entreacutee agrave chaque reacuteaction sa sortierepreacutesente la valeur lue du capteur

2 Actionneur sans sortie agrave chaque reacuteaction ilenvoi son entreacutee agrave lrsquoactionneur

3 Linux_IO ces des meacutemoires partageacutees qui

permettent le transfert de donneacutees entre syndexet un langage eacutevolueacute

E i S egrave R b i eacute d P d i Algorithm

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3279

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Algorithm

bull Le sommet memory possegravede uniquement uneentreacutee et une sortie crsquoest une opeacuteration agrave effetunique qui met la sortie degraves la premiegravere reacuteaction

agrave une valeur initiale calculeacutee auparavant et puisla sortie de la prochaine reacuteaction nrsquoest que

lrsquoentreacutee de la preacuteceacutedente reacuteactionbull Le sommet constant ne possegravede aucune entreacutee

il calcule sa sortie une seule fois avant la premiegravere reacuteaction puis la sortie demeure la mecircme pour chaque reacuteaction

E i S tegrave R b ti eacute d P d ti Algorithm

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3379

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

AlgorithmPour lrsquoalgorithme chaque sommet est caracteacuteriseacute par

bull Son type geacuteneacuterique (function extio memory constant)bull Un nom unique (tout les sommets doivent avoir des

noms diffeacuterents)bull Son type identifiant sa seacutequence drsquoinstructionsassocieacute

bull Sa liste drsquoarguments ougrave chaque argument est speacutecifieacute par bull Le nombre drsquoentreacuteesortiebull Le type de donneacuteesbull Le nom (tout les arguments doivent avoir des noms

diffeacuterents)

Equipe Systegraveme Robotiseacute de Production Architecture

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3479

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

ArchitectureLrsquoarchitecture est speacutecifieacutee comme un graphe non orienteacute

ougrave bullChaque sommet est une ressource seacutequentielle il y adeux types de sommets

bull processeur crsquoest une ressource de calcul enmesure drsquoexeacutecuter seacutequentiellement les opeacuterationsdrsquoun algorithme il pourrait ecirctre un processeur ou

un circuit inteacutegreacute speacutecialiseacutebull meacutedia crsquoest une ressource de communicationen mesure drsquoexeacutecuter seacutequentiellement un transfertde donneacutees entre les meacutemoires des processeurs quilui sont connecteacutes

bull chaque arc est une connexion bidirectionnelle entreun processeur et un meacutedia

Equipe Systegraveme Robotiseacute de Production Architecture

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3579

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

ArchitecturePour lrsquoarchitecture chaque sommet est caracteacuteriseacute par

bull Un nom uniquebullSon type (processeur or meacutedia)bull Son type identifiant caracteacuteristiques mateacuterielles

bull Sa liste de connecteurs ougrave chaque connecteur est speacutecifieacute par bull son type identifiant le type de meacutedia agrave qui il peut ecirctreconnecteacute

bullUn nom

Equipe Systegraveme Robotiseacute de ProductionCaracteacuter st que

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3679

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Caracteacuter st que Nous distinguons deux cateacutegories de caracteacuteristiques lrsquoune relative

aux opeacuterations et lrsquoune agrave la communication 1 Comment speacutecifier les caracteacuteristiques des opeacuterations sous le menu AdequationAlOp_ArOp on obtient une boite

de dialogue avec

une liste de toutles types de

processeurs et

pour chaque processeur uneliste de tout les

types drsquoopeacuterationsqui peut lesexeacutecuter avec ladureacutee drsquoexeacutecutioncorrespondante

Equipe Systegraveme Robotiseacute de ProductionCaracteacuteristique

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3779

q p y

S y nd

e xV

5

q2 Comment speacutecifier les caracteacuteristiques de communication

sous le menu AdequationAlIO_ArIO on obtient une boitede dialogue avec une liste de tout les types de meacutedia et

pour chaque meacutedia une liste de tout les types de donneacutees

qui peut transfeacuterer avec la dureacutee de transfertcorrespondante

Equipe Systegraveme Robotiseacute de Production Contraintes

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3879

S y nd

e xV

5

Pour contraindre une opeacuteration agrave srsquoexeacutecuter sur un processeur donneacutee

1Seacutelectionner le(s) opeacuteration(s) agrave contraindre2 Seacutelectionner la commande AlgorithmSetConstraint3 Seacutelectionner le processeur qui doit exeacutecute les opeacuterationsseacutelectionneacutees

Pour enlever les contraintes seacutelectionner lrsquoopeacuteration puis exeacutecuterla commande AlgorithmDeleteConstraint

Pour voir sur quel processeur une opeacuteration est y contrainteseacutelectionner lrsquoopeacuteration puis exeacutecuter la commandeAlgorithmShowConstraint le processeur correspondant y sera

seacutelectionneacutePour voir toute les opeacuterations qui sont contraintes sur un processeurseacutelectionner le processeur puis exeacutecuter la commande

ArchitectureShowConstrained du menu les opeacuterationscorrespondantes y seront seacutelectionneacutees

Equipe Systegraveme Robotiseacute de Production A eacutequat o

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3979

S y nd

e xV

5

q

Pour construire le planificateur des opeacuterations dugraphe drsquoalgorithme sur les processeurs du graphedrsquoarchitecture qui effectue automatiquement le routage

des deacutependances de donneacutees inter-processeurs et lacreacuteation et la planification des opeacuterations decommunication sur le meacutedia du graphe drsquoarchitectureon utilise la commande AdequationDoIt

Cette commande creacutee un heuristique qui cherche agraveminimiser le chemin critique du graphe drsquoalgorithme

Equipe Systegraveme Robotiseacute de ProductionGeacuteneacuteration du code exeacutecuti

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4079

S y nd

e xV

5Le code exeacutecutif est la partie qui gegravere les ressources

mateacuterielles pour les allouer aux besoins de lrsquoalgorithmedrsquoapplication Les ressources agrave allouer sont

1 Les espaces meacutemoires des processeurs2 Le temps des seacutequences drsquoinstructions3 Le temps des meacutedia de communication

Gracircce agrave la meacutethodologie AAA et le logiciel Syndexlrsquoutilisateur est exempte drsquoeacutecrire du code pour geacuterer ces

ressources Donc par simple exeacutecution de la commandeAdequationGenExec un code distribueacute pour chaque processeur est automatiquement geacuteneacutereacute Ce code est en

fait un exeacutecutif geacuteneacutereacute sur mesure pour lrsquoalgorithme etlrsquoarchitecture

Equipe Systegraveme Robotiseacute de ProductionGeacuteneacuteration du code exeacutecuti

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4179

S y nd

e xV5

Pour chaque processeur de lrsquoarchitecture un fichier

source macro-exeacutecutif m4 avec le mecircme nom estgeacuteneacutereacute plus un macro-makefile ayant le mecircme nom quecelui de lrsquoapplication Chacun de ces fichiers doit ecirctre

transcrit par le macro-processeur GNU M4 (assembleurC) Cette transcription deacutepend de plusieurs fichiers

1 Fichier syndexm4x qui deacutefini les macrosgeacuteneacuteriques de syndex2 Fichier processorTypem4x qui deacutefini les macros

de bas niveau du processeur3 Fichier applicationNamem4x qui deacutefini les macros

speacutecifiques agrave lrsquoapplication

4 Fichier mediaTypem4x qui deacutefini les macros decommunication de bas niveau du type de media

Equipe Systegraveme Robotiseacute de ProductionCreacuteat on rsquoapp cat on

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4279

S y nd

e xV5 Arborescence des reacutepertoires Rep_travail

Applicationmacros

~rtai

Eacutevolution de lrsquoapplication

Phase 1

Edition des macros(C ou Assembleur)

+GNUmakefile

Phase 2

Edition du graphe

(Algorithme amp

Architecteure)

Phase 3

Compilation amp Exeacutecution

Equipe Systegraveme Robotiseacute de ProductionSeacutequence de compilation de Synde

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4379

S y nd

e xV5

Equipe Systegraveme Robotiseacute de Production Plan

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4479

S y nd

e xV5

bull Introduction

bull Meacutethodologie AAA

bull Installation

bull Utilisation du logiciel Syndex

bull Macros

bull LinuxIO un interface CC++ avec SynDEx

bull Exemple drsquoapplication Robuter-ULM

Equipe Systegraveme Robotiseacute de Production

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4579

S y nd

e xV5

Macros Macros

bull Deacutefinition

bull Types de macros

bull Carte Robosoft MPC555

bull Macros Geacuteneacuterique MPC555

bull Macros speacutecifique Robosoftbull Macros de Communication

bull Macros drsquoapplicationbull Structure du fichier Macro

Equipe Systegraveme Robotiseacute de Production Deacutefinition

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4679

S y nd

e xV5

Un macro-processeur est un programme qui consommeen entreacutee une chaicircne de caractegraveres (texte source) la

traite seacutequentiellement en substituant chaque sous-chaicircne qursquoil reconnaicirct (Appel de macro) par unechaicircne correspondante de substitution ( Deacutefinition de

macro) qursquoil traite agrave nouveau jusqursquoagrave ce qursquoil nrsquo y ait plus de substitution possible et qui produit en sortie lachaicircne de caractegraveres traiteacutee

Equipe Systegraveme Robotiseacute de Productionypes e macrosL diffeacute t di ti t d d

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4779

S y nd

e xV5

Les diffeacuterents macros se distinguent en deux grandes

classes bull Macros geacuteneacuteriques

en geacuteneacuteral ceux sont des macros non destineacutes agraveecirctre utiliser directement par lrsquointerface syndexmais plutocirct utiliseacutees pour la programmation

drsquoautres macros (macros MPC555)bull Macros utilisateurs

macros utiliseacutes directement par syndex ils sontspeacutecifiques agrave lrsquoapplication (macros decommunication macros speacutecifiques robosoft

macros speacutecifiques agrave lrsquoapplication)

Equipe Systegraveme Robotiseacute de ProductionCarte Robosoft MPC555La carte Robosoft MPC555 est conccedilue pour la commande de robot de veacutehicule

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4879

S y nd

e xV5

(1) Connecteur du chip MPC555(2) Alimentation continue(3) Interface BDM (Basic Debug Interface)(4) Entreacute Analogique (Joystickhellip)(5) EntreacuteSortie logiques(6) Ligne seacuterie Synchrone (Codeur absolu)(7) Ligne seacuterie Asynchrone (Port 0)

(8) Ligne seacuterie Asynchrone (Port 1)(9) Connecteur du bus CAN (Port 0)(10) Connecteur du bus CAN (Port 1)(11) Axe 1(13) Axe 2(14) Axe 3(15) Axe 4

La carte Robosoft MPC555 est conccedilue pour la commande de robot de veacutehiculeeacutelectrique ou toute autre machine Elle permet de commander un axe gracircce agrave

lrsquoajout drsquoune carte fille le controcircle srsquoeacutetend jusqursquoagrave 4 axesCette carte est baseacutee sur le microcontrocircleur MPC555 32-bit de MotorolaElle peut opeacuterer agrave une freacutequence

de 40 MHz Divers signauxlogique et analogique peuventecirctre utiliser pour lrsquoacquisition deet la commande de mateacuteriel Les

sorties disponibles peuvent ecirctreanalogique ou PWMOn y trouve

Equipe Systegraveme Robotiseacute de ProductionArchitecture du MPC555

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4979

S y nd

e xV5

Equipe Systegraveme Robotiseacute de Productionaract r st ques u

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5079

S y nd

e xV5

Equipe Systegraveme Robotiseacute de Productionacros n r quesbull GPIO (General-Purpose InputOutput)

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5179

S y nd

e xV5

GPIO (General Purpose InputOutput)ce macro utilise le module USIU qui lui fourni 64 pins pour desentreacuteessorties numeacuteriques ordinaires (IO de la carte Robosoft lirelrsquoeacutetat de la pince envoi de commande agrave la pince lire les alarmes)

bull QADC (Queued Analog to Digital Converter)en utilisant le module QADC ce macro permet la conversion drsquounsignal analogique en entreacutee en un signal numeacuterique multi-niveaux(lire les donneacutees du capteur drsquoeacuteffort du joystick)

bull MIOS (Modular InputOutput System)Le module MIOS fourni 16 pins drsquoES numeacuteriques Sur la carte deRobosoft tous les pins sont en sortie Les 16 pins sont reacutepartiscomme suit

utilisateurs reacuteserveacutes

les pins de 0 agrave 11 sont reacuteserveacutes car ils sont preacutevus agrave ecirctre utiliseacutes pour unmateacuteriel particulier Mais si ce mateacuteriel nrsquoest pas utiliseacute lrsquoutilisateur peut lesutiliser librement

15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

Equipe Systegraveme Robotiseacute de ProductionMacros Geacuteneacuter ques MPC55

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5279

S y nd

e xV5

bull PWM (Pulse width Modulation)utilise le module MIOS (pins de 4-7 pour la direction des moteurset de 8-11 pour la validation) pour la commande des actionneursnumeacuteriques en PWM

bull TPU (Time Processor Units)les macros lieacutes agrave ce module permettent la lecture des encodeurs

increacutementauxbull QSPI (Queued Serial Peripheral Interface)

ce module fait partie du module QSMCM et les macros lieacutes servent

agrave son initialisation pour une communication avec du mateacuterielsexternes via le bus seacuterie synchrone

Equipe Systegraveme Robotiseacute de ProductionMacros Geacuteneacuter ques MPC55

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5379

S y nd

e x

V5 bull Serial port support (Polling implementation)

le MPC555 comprend dans le module QSMCM une interface decommunication seacuterie SCI qui permet la communication avec dumateacuteriels externes via un bus seacuterie asynchrone Plusieurs macros

sont lieacutes agrave cette interface pour initialiser et eacutetablir la communicationbull Serial port support (interrupt handling implementation)

pour la mecircme interface SCI du module QSMCM pour cette

meacutethode drsquoimpleacutementation les macros lieacutes initialisent et eacutetablissentla communication en mode par interruption ce qui permet dedeacutetecter lrsquoarriveacutee des donneacutees sur le port seacuterie au lieu de le scruter

en permanence

tous ces macros on les retrouvent dans le fichier 555m4x

Equipe Systegraveme Robotiseacute de ProductionMacros Speacutec ques Ro oso tles macros suivants sont deacutedieacutes agrave la carte de Robosoft MPC555

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5479

S y nd

e x

V5

bull Initialisation de la carte Robosoftmain_ini_() macro ne doit pas ecirctre utiliser par les programmateursdu fait qursquoelle sert qursquoagrave initialiser la carte robosoft Macro interne agrave

syndex dont lrsquoappel est automatique lors de geacuteneacuteration drsquoexeacutecutifMPC555

bull DAC (Digital to Analog Converter)

macro permet lrsquoutilisation du convertisseur de carte robosoft via lemodule MIOs en utilisant les pins de 0 agrave 2

bull LED (on-bord LED interface)

macro permet la gestion de la LED de la carte robosoft connecteacuteeau module QSPI (pin PCS1)

bull SPI absolute encoder

macro permet lrsquoutilisation lrsquointerface du codeur absolu de la carterobosoft connecteacute au module QSPI

Equipe Systegraveme Robotiseacute de ProductionMacros Speacutec ques Ro oso tbull Motor amplifier direction

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5579

S y nd

e x

V5

Motor amplifier directionmacro qui permet de geacuterer la direction des moteurs

bull Motor power amplifier validationles moteurs embarqueacutes sur les robots sont eacutequipeacutes de freins

eacutelectriquement commandable Ce macro permet drsquoenvoyer unsignal drsquoinhibition pour deacutebloquer les freins

bull Watch dog

pour des raisons de seacutecuriteacute un meacutecanisme mateacuteriel que robosofta ajouteacute sur la carte Ce watch-dog vise agrave stopper lrsquoactiviteacute dumoteur en cas ougrave le programme plante Le watch est impleacutementeacute

comme un time-out mateacuteriel Srsquoil nrsquoest pas rafraicircchi peacuteriodiquement il transmet un signal de sortie ce qui enlegraveve lavalidation de lrsquoamplificateur de puissance donc lrsquoarrecirct dumouvement

ces macros se trouvent dans le fichier RSBm4x

Equipe Systegraveme Robotiseacute de Production

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5679

S y nd

e x

V5

Macros de Communicationchaque meacutedia de communication (bus CAN ) est une ressourceseacutequentielle ougrave les transferts de donneacutees entre processeurs doiventsuivre un certain ordre Donc ce macro de communication sert agravedeacutefinir cet ordre et agrave identifier le protocole de communication lecodagedeacutecodage de lrsquoinformation et la synchronisation

on trouve ces macros dans le fichier CANm4x

Macros drsquoapplicationce genre de macros sont speacutecifique au mateacuteriel en question et aussiagrave lrsquoapplication en particulier Ce sont des macros utilisateurs

on trouve ces macros dans le fichier Application_namem4x

Equipe Systegraveme Robotiseacute de Production

section include (pour inclure drsquoautres fichiers macro agrave utiliseStructure du fichier macr

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5779

S y nd

e x

V5

section define (pour tous les macros utilisateurs)MGC lsquoINITrsquo (MGC Macro Generation Context variable)

divert (declaration) (deacutebut du macro)

(deacuteclaration des variables des meacutemoires et des csts

divert (o)

MGC lsquolooprsquocode en assembleur code en C

dnl (commentaires)

MGC lsquoENDrsquo dnl (fin de la macros)divert lsquo lsquo dnl

macros MPC555meacutemoire MPC555

constante MPC555

macros RTAImeacutemoire RTAI

constante RTAI

Equipe Systegraveme Robotiseacute de Production Plan

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5879

S y nd

e x

V5

bull Introduction

bull Meacutethodologie AAA

bull Installationbull Utilisation du logiciel Syndex

bull Macrosbull LinuxIO un interface CC++ avec SynDEx

bull Exemple drsquoapplication Robuter-ULM

Equipe Systegraveme Robotiseacute de Production

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5979

S y nd

e x

V5

LinuxIO LinuxIO une interface une interface

CC++ avecCC++ avec SynDExSynDEx

bull Principe de basebull Utilisation de linuxIO_ par syndex

bull Utilisation de linuxIO_ par un programmeCC++

Equipe Systegraveme Robotiseacute de ProductionPrincipe de baseSyndex fourni une interface graphique pour la conception

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6079

S y nd

e x

V5

Syndex fourni une interface graphique pour la conception

drsquoapplications Par contre des fois nous avons besoin drsquoautresfonctionnaliteacutes non disponibles donc il faut les creacuteer Cependantgeacuteneacuterer des macros pour syndex srsquoavegravere difficile pour certains du

fait qursquoil faut avoir une bonne connaissance de la programmation bas niveau Dans ce cas lrsquoutilisation de linux_IO trouve sa placedans un contexte particulier interfacer des applications CC++utilisateurs avec des applications embarqueacutees temps reacuteeldeacuteveloppeacutees sous syndex

Par rapport agrave ce contexte de programmation lrsquoorganisation du

deacuteveloppement des applications est structureacutee en deux parties 1 Application haut niveau

2 Application bas niveau

Equipe Systegraveme Robotiseacute de ProductionPrincipe de base

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6179

S y nd

e x

V5

En reacutesumeacute lrsquoapplicationutilisateur contient une

partie haut niveau enCC++ et une partie basniveau sous syndex avecun eacutechange de donneacuteesentre les deux partie en

utilisant la couche RTAIde linux

Equipe Systegraveme Robotiseacute de Production pp cat on aut n veauOn entend application haut

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6279

S y nd

e x

V5

niveau tout programmecomme la planification detrajectoires strateacutegies de

navigation etc hellipLrsquoeacutechange de donneacutees sefait par le biais desmeacutemoires partageacutees quifont parti du noyau RTAI

et de lrsquoespace utilisateursde Linux

Toute ressource preacutesente sur la carte Robosoft peutecirctre partageacutee sans aune restriction

Equipe Systegraveme Robotiseacute de Production pp cat on as n veauUne application bas niveau

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6379

S y nd

e x

V5

Une application bas niveau

est un programme conccedilusous syndex comme lacommande des moteurs la

lecture des capteurs etc hellipLes ressources mateacuteriellessont controcircler par plusieurs

cartes MPC555 Ces cartessrsquoeacutechangent des donneacuteesvia le bus CAN Donc ES

est prise en charge par lasource logicielle deacutedieacutee quisrsquoexeacutecute dans les cartes MPC555 puis la couche RTAI

est utiliseacute pour la mise agrave jour de meacutemoires partageacutees pour lrsquoespace utilisateurs linux drsquoeacutechange de donneacutees

Equipe Systegraveme Robotiseacute de ProductionUtilisation de linux_IO par syndex

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6479

S y nd

e x

V5

Equipe Systegraveme Robotiseacute de ProductionUtilisation de linux_IO par syndex

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6579

S y nd

e x

V5

Equipe Systegraveme Robotiseacute de Production

5

Utilisation de linux_IO par syndex

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6679

S y nd

e x

V5

Degraves que la conception de lrsquoapplication sous syndex esttermineacutee et apregraves compilation (AdequationDo it +GenExec) un fichier drsquoentecircte sous le nom de linioh est

automatiquement geacuteneacutereacute Ce fichier contient lesinformations neacutecessaires pour acceacuteder aux entreacutees enlecture et aux sorties en eacutecriture des opeacuterations linuxIO_

inseacutereacutees dans le graphe drsquoalgorithme Le contenu de cefichier est organiseacute en plusieurs parties une pour chaqueopeacuteration linux_IO preacutesente dans le graphe

Equipe Systegraveme Robotiseacute de Production

5

Utilisation de linux_IO par syndex linioh auto-generated C users API frontend

C i h b f 2001 i i i b f f

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6779

S y nd

e x

V5 Copyright Robosoft 2001 Pierre Pomiers ltpierrerobosoftfrgt

LINUX IO shared memory data segments

define SEG0_BASE 0x10000typedef struct

int js_spd_o0

int js_str_o0

int enc_R_o0int enc_L_o0

double odo_X_o0

double odo_Y_o0

double odo_T_o0int spd_R_o0

int spd_L_o0

int time

unsigned char sem shm_seg0_def

Nom du segment de meacutemoire partageacutee pour notre opeacuteration linuxIO_

7 signaux drsquoentreacutees Ces valeurs sonten lecture et sont peacuteriodiquementrafraicircchies par RTAI

2 signaux de sorties Ces valeurs sonten eacutecriture et sont peacuteriodiquementrafraicircchies par RTAI

Equipe Systegraveme Robotiseacute de Production

5

Crsquoest une eacutetape tregraves facile il suffit drsquoinclure le fichier drsquoentecirctelinio h dans le code du fichier en CC++ comme suit

Utilisation de linuxIO_ par un programme CC+

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6879

S y nd

e x

V5 linioh dans le code du fichier en CC++ comme suit

include linioh

include ltrtai_shmhgt

static shm_seg0_def seg0

shm_seg0_def robot

seg0 = rtai_malloc (SEG0_BASE sizeof (shm_seg0_def))

if (seg0-gtsem = 0) bcopy (seg0 amprobot sizeof (shm_seg0_def))helliphelliphellip

helliphelliphellip bcopy (amprobot seg0 sizeof (shm_seg0_def))helliphelliphelliphelliphelliphellip

rtai_free (SEG0_BASE seg0)

fichier drsquoentecircte de la meacutemoire partageacutee fourni dans la couche RTAI de linux

Initialisation du segment SEG0_BASE Allocation de lameacutemoire pointeacutee

par seg0

Lecture des donneacutees provenant du bas

niveau

Mise agrave jours du segment de meacutemoire partageacutee

Libeacuterer le segment de meacutemoire alloueacute

Equipe Systegraveme Robotiseacute de Production

5

Plan

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6979

S y nd e x

V5

bull Introductionbull Meacutethodologie AAA

bull Installationbull Utilisation du logiciel Syndex

bull Macrosbull LinuxIO un interface CC++ avec SynDEx

bull Exemple drsquoapplication Robuter-ULM

Equipe Systegraveme Robotiseacute de Production

V5

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7079

S y nd e x

V5

Exemple dapplication Exemple dapplication Robuter Robuter--ULM ULM

Equipe Systegraveme Robotiseacute de Production

V5

Description Robuter-ULMbull Base mobile (2-RM 2-RF)

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7179

S y nd e x

V

bull Bras ultra-leacuteger 6 axesbull Ceinture 24 capteurs US

bull Capteur drsquoefforts 6 axes

bull Cameacutera CCD monochromeavec carte drsquoacquisition

bull PC embarqueacute MMX 233

bull OS linux redhat 61 avecRTAI V-13

bull 3 bouton drsquoarrecirct drsquourgence

bull 4 batteries 48 VDC 4 X12V 60 Ah

bull Entreacutee Joystick

bull Liaison Ethernet sans fil

Le manipulateur mobile Robuter-ULM comprend

Equipe Systegraveme Robotiseacute de Production

V5

Base Mobilebull dimension

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7279

S y nd e x

V

1025 mm de longueur 680 mm de largueur et 44 cm de hauteurbull Poids environ 150 kg avec les batteriesbull charge jusqursquoagrave 120 kg

bull vitesse de 5cms agrave 125 msbull Moteurs 2 X 300 W DC 48 VDCbull orientation par diffeacuterence de vitesse

bull Preacutecision Position par encodeurs optiquesbull Deux roues motrices diffeacuterentielles et de deux roues follesbull Drsquoune ceinture de 24 capteurs Ultrasons

bull Une carte MPC555 de Robosoft pour le controcircle des deuxmoteurs DC des 2 rouesbull Un systegraveme drsquoodomeacutetrie qui donne la position relative du robot

par rapport agrave son repegravere

Equipe Systegraveme Robotiseacute de Production

V5

bull dimension Faute de documentation

Bras U tra- eacuteger

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7379

S y nd e x

V Faute de documentation

bull Poids moins de 20 kgbull charge 2 kgbull Moteurs 6 moteurs DC

bull gripper pince eacutelectrique 2 doigtsbull Reacutepeacutetabiliteacute +- 1mmbull 3 carte MPC555 de Robosoft lrsquoune pour le capteur drsquoeffort et les

deux autres pour les 6 moteurs + moteur de la pincebull Position encodeur increacutemental

1 2 3 4 5 6Axisrange

plusmn90deg 0-90deg plusmn80deg plusmn100deg plusmn90deg plusmn110deg

vitesse 180degs 180degs 180degs 180degs 180degs 180degs

Equipe Systegraveme Robotiseacute de Production

V5

rc tecture ar ware

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7479

S y nd e x

V

Equipe Systegraveme Robotiseacute de Production

V5

Pro eacutemat quePlusieurs applications peuvent ecirctre impleacutementeacutees sur le robot

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7579

S y nd e x

V

Cependant il faut faire la diffeacuterence entre les applications quidemande lrsquoutilisation de syndex et les applications qui neneacutecessite qursquoune programmation en CC++ Agrave titre drsquoexemple

bull Localisationbull Commande en position

bull Commande en forcebull Navigation

bull Geacuteneacuteration de trajectoire

bull Vision

Equipe Systegraveme Robotiseacute de Production

V5 bull Pince eacutelectrique (TOR)

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7679

S y nd e x

Vq ( )

bull Pince possegravede des ES Logiques

Notre application consiste agrave

bull Recevoir lrsquoeacutetat de la pince (fermeacutee ouverte )

bull Envoyer une commande vers la pince

Capture

drsquoinformation

Open

Close

CommandeMeacutemoire

Partageacutee

Actionneur

Pince Prise de deacutecision Pince

Equipe Systegraveme Robotiseacute de Production

V5

Sc eacutema eacute ectr que

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7779

S y nd e x

Equipe Systegraveme Robotiseacute de Production

V5

Conclusion

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7879

S y nd e x bull Introduction

bull Meacutethodologie AAA

bull Installationbull Utilisation du logiciel Syndex

bull Macrosbull LinuxIO un interface CC++ avec SynDEx

bull Exemple drsquoapplication Robuter-ULM

Equipe Systegraveme Robotiseacute de Production

V5

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7979

S y nd e x

Questions

Page 11: Cours Syndex

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 1179

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV5

Op1

Op2

Op3 Op5

Op4

Op6

Capteur

Actionneur

Nœuds Opeacuteration

Arcs Transfert de donneacutees

Modegravele drsquoalgorithme

A hi

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 1279

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV5

Architecture

Larchitecture correspond auxcaracteacuteristiques structurelles du

calculateur exhibant un paralleacutelismedisponible en geacuteneacuteral moindre que leparalleacutelisme potentiel de lalgorithmePar abus de langage le termearchitecture sera ici souvent utilise dans

son sens geacuteneacuterique pour signifier agrave lafois le calculateur lui-mecircme ainsi queses caracteacuteristiques structurelles

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 1379

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV5

Meacutedia

Pr3

Pr1 Pr2

Pr123 Processeur

Meacutedia Moyen de communication

Arcs Transfert de donneacutees Modegravele drsquoarchitecture

Adeacute ti

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 1479

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

ladeacutequation consiste a mettre en correspondance de

maniegravere efficace lalgorithme et larchitecture pour reacutealiserune impleacutementation optimiseacutee

Adeacutequation

Instruction 1Instruction 2

hellip

hellip

Instruction N

Algorithme

Processeur Seacutequenceur

Architecture MonoprocesseurMeacutedia

Proc 1Seacuteq 1

Proc 2

Seacuteq 2Proc M

Seacuteq M

Architecture Multiprocesseurs

Inst 1

Inst 2

hellip

Inst N

Algorithme

Inst 1

Inst 2

hellip

Inst N

Inst 1

Inst 2

hellip

Inst N

hellip

hellip

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 1579

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Pour permettre une exploitation plus efficace du paralleacutelisme

disponible de larchitecture il faut eacutetendre lordre totaldexeacutecution des instructions du programme seacutequentielmonoprocesseur a un ordre partiel extrait par une analyse de

deacutependances de donneacutees entre instructions exhibant le paralleacutelisme potentiel de lalgorithme et permettant unedistribution et un ordonnancement

bull la distribution consiste agrave effectuer une Partition du graphe delrsquoalgorithme initial en autant drsquoeacuteleacutements de partition qursquoil y adrsquoopeacuterateur dans le graphe de lrsquoarchitecture

bull Lordonnancement consiste pour chaque eacuteleacutement de partition a lineacuteariser (rendre total) lordre partielcorrespondant au sous-graphe associe Cette phase estneacutecessaire car lopeacuterateur auquel on affecte un sous-graphe du

graphe de lalgorithme initial est geacutereacute par une seacutequenceurdrsquoinstruction

I leacute t ti

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 1679

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Impleacutementation

Limpleacutementation consiste a mettre en oeuvre

lalgorithme sur larchitecture cest- a-dire aallouer les ressources mateacuterielles de larchitectureaux opeacuterations de lalgorithme puis a compilercharger puis lancer lexeacutecution du programmecorrespondant sur le calculateur

Pl

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 1779

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Pla

bull Introduction

bull Meacutethodologie AAA

bull Installation

bull Utilisation du logiciel Syndex

bull Macros

bull LinuxIO un interface CC++ avec SynDEx

bull Exemple drsquoapplication Robuter-ULM

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 1879

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Installation Installation

bull Exigences mateacuteriellesbull Exigences logicielles

bull Installation de syndex V5bull Arborescence des reacutepertoires

Exigences mateacuteriels

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 1979

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Exigences mateacuteriels

bull Un PC avec un processeur de la famille Intel(80386 au minimum) ou un AMD

bull Une Carte de bus CAN (celle qui est installeacuteecrsquoest NuDACQ PCI-7841 baseacutee sur un chipPhilips SJA1000)

Ces deux speacutecifications sont suffisants pour ledeacuteveloppement drsquoune application RTAI

bull Pour les robots acquis il faut rajouter les cartes decontrocircle baseacutees sur le microcontrocircleur MPC555

Exigences logicielle

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 2079

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Exigences logiciellebull Un environnement sous Linux (quelle que soit la

distribution)bull Un module RTAI (Real-Time Applications

implementations)bull GNU gcc (outil de compilation)bull GNU binutils (outil pour assembler et eacutediter les liens

bull Le Logiciel Syndex V5bull Les macros de syndex pour

- carte de controcircle Robosoft- microcontrocircleur MPC555 de Motorola- PC sous LinuxRTAI

- Bus CAN

Installation de Syndex V

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 2179

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Installation de Syndex V

bull Creacuteation du reacutepertoire de destinationbull Copier le fichier avec la commande

cp syndex-xxx-linuxtgz rep_desbull Se mettre sous le reacutepertoire de destination puisdeacutecompresser le fichier avec la commande

tar zxvf syndex-xxx-linuxtgzCeci creacuteera sous le reacute pertoire de destination un sou

reacutepertoire de syndex contenant tout les fichiersDans le fichier syndexbat il faut mettre agrave jour lechemin du reacutepertoire de syndex

Arborescences des Reacutepertoire

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 2279

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Arborescences des Reacutepertoire

Apregraves lrsquoinstallation il est impeacuteratif drsquoorganiser lesreacutepertoires pour que lors de lrsquoeacutedition des liens le

fichier makefiles deacutepend de cette organisationLrsquoorganisation qui existe actuellement est comme

suit bull Apps applications deacuteveloppeacutees sous syndexbull Macros macros deacuteveloppeacutes pour syndex V5bull Rtai module rtai ou un lien symbolique qui point vers le reacutepertoire drsquoinstallation

Pla

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 2379

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Pla

bull Introduction

bull Meacutethodologie AAA

bull Installation

bull Utilisation du logiciel Syndex

bull Macros

bull LinuxIO un interface CC++ avec SynDEx

bull Exemple drsquoapplication Robuter-ULM

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 2479

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Utilisation du logicielUtilisation du logicielSyndexSyndex V5V5

bull Utilisation de lrsquointerface

bull Algorithme

bull Architecture

bull Caracteacuteristiques

bull Contraintes

bull Adeacutequation

bull Geacuteneacuteration du code exeacutecutif

SynDE

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 2579

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

SynDESynDEx est un logiciel graphique qui impleacutemente lameacutethodologie AAA et qui offre plusieurs fonctionnaliteacutes

bull Speacutecification drsquoun algorithme drsquoapplication saisi sousforme drsquoun graphe

bull Speacutecification drsquoun graphe drsquoarchitecture multi-composant

bull Heuristique pour la distribution et lrsquoordonnancement delrsquoalgorithme drsquoapplication sur lrsquoarchitecture avecoptimisation du temps de reacuteponse

bull Geacuteneacuteration des exeacutecutifs distribueacutes temps reacuteel

Utilisation de lrsquointerface

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 2679

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Utilisation de l interface

Utilisation de lrsquointerface

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 2779

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Utilisation de l interface

Utilisation de lrsquointerface

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 2879

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Utilisation de l interface

Algorithm

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 2979

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Algorithm

Lrsquoalgorithme est speacutecifieacute comme un graphe orienteacute ougravebull chaque sommet est une opeacuteration qui calcule les sorties

des entreacutees agrave chaque opeacuteration doit correspondre uneseacutequence drsquoinstructions compileacutee seacutepareacutement

bull Chaque arc est une deacutependance de donneacutees entre deux

opeacuterations (ou plus dans le cas de diffusion) c-a-d lasortie drsquoune opeacuteration est lrsquoentreacutee de lrsquoautre opeacuteration(ou de plusieurs autres opeacuterations) une entreacutee peut ecirctreconnecteacutee seulement agrave une sortie de mecircme type dedonneacutees

gor t m

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3079

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

gor t mon distingue 4 types de sommets

Algorithm

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3179

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Algorithmbull Le sommet function possegravede au moins une entreacutee et

une sortie crsquoest une opeacuteration agrave libre effet qui calculeses sorties uniquement agrave partir de ses entreacutees (c-a-d niagrave partir des variables globales ni agrave partir des

preacuteceacutedentes valeurs de ces entreacutees)bull Le sommet extio permet lrsquoacquisitionlrsquoeacutecriture des

entreacuteessorties on distingue trois cas

1 Capteur sans entreacutee agrave chaque reacuteaction sa sortierepreacutesente la valeur lue du capteur

2 Actionneur sans sortie agrave chaque reacuteaction ilenvoi son entreacutee agrave lrsquoactionneur

3 Linux_IO ces des meacutemoires partageacutees qui

permettent le transfert de donneacutees entre syndexet un langage eacutevolueacute

E i S egrave R b i eacute d P d i Algorithm

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3279

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Algorithm

bull Le sommet memory possegravede uniquement uneentreacutee et une sortie crsquoest une opeacuteration agrave effetunique qui met la sortie degraves la premiegravere reacuteaction

agrave une valeur initiale calculeacutee auparavant et puisla sortie de la prochaine reacuteaction nrsquoest que

lrsquoentreacutee de la preacuteceacutedente reacuteactionbull Le sommet constant ne possegravede aucune entreacutee

il calcule sa sortie une seule fois avant la premiegravere reacuteaction puis la sortie demeure la mecircme pour chaque reacuteaction

E i S tegrave R b ti eacute d P d ti Algorithm

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3379

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

AlgorithmPour lrsquoalgorithme chaque sommet est caracteacuteriseacute par

bull Son type geacuteneacuterique (function extio memory constant)bull Un nom unique (tout les sommets doivent avoir des

noms diffeacuterents)bull Son type identifiant sa seacutequence drsquoinstructionsassocieacute

bull Sa liste drsquoarguments ougrave chaque argument est speacutecifieacute par bull Le nombre drsquoentreacuteesortiebull Le type de donneacuteesbull Le nom (tout les arguments doivent avoir des noms

diffeacuterents)

Equipe Systegraveme Robotiseacute de Production Architecture

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3479

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

ArchitectureLrsquoarchitecture est speacutecifieacutee comme un graphe non orienteacute

ougrave bullChaque sommet est une ressource seacutequentielle il y adeux types de sommets

bull processeur crsquoest une ressource de calcul enmesure drsquoexeacutecuter seacutequentiellement les opeacuterationsdrsquoun algorithme il pourrait ecirctre un processeur ou

un circuit inteacutegreacute speacutecialiseacutebull meacutedia crsquoest une ressource de communicationen mesure drsquoexeacutecuter seacutequentiellement un transfertde donneacutees entre les meacutemoires des processeurs quilui sont connecteacutes

bull chaque arc est une connexion bidirectionnelle entreun processeur et un meacutedia

Equipe Systegraveme Robotiseacute de Production Architecture

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3579

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

ArchitecturePour lrsquoarchitecture chaque sommet est caracteacuteriseacute par

bull Un nom uniquebullSon type (processeur or meacutedia)bull Son type identifiant caracteacuteristiques mateacuterielles

bull Sa liste de connecteurs ougrave chaque connecteur est speacutecifieacute par bull son type identifiant le type de meacutedia agrave qui il peut ecirctreconnecteacute

bullUn nom

Equipe Systegraveme Robotiseacute de ProductionCaracteacuter st que

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3679

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Caracteacuter st que Nous distinguons deux cateacutegories de caracteacuteristiques lrsquoune relative

aux opeacuterations et lrsquoune agrave la communication 1 Comment speacutecifier les caracteacuteristiques des opeacuterations sous le menu AdequationAlOp_ArOp on obtient une boite

de dialogue avec

une liste de toutles types de

processeurs et

pour chaque processeur uneliste de tout les

types drsquoopeacuterationsqui peut lesexeacutecuter avec ladureacutee drsquoexeacutecutioncorrespondante

Equipe Systegraveme Robotiseacute de ProductionCaracteacuteristique

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3779

q p y

S y nd

e xV

5

q2 Comment speacutecifier les caracteacuteristiques de communication

sous le menu AdequationAlIO_ArIO on obtient une boitede dialogue avec une liste de tout les types de meacutedia et

pour chaque meacutedia une liste de tout les types de donneacutees

qui peut transfeacuterer avec la dureacutee de transfertcorrespondante

Equipe Systegraveme Robotiseacute de Production Contraintes

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3879

S y nd

e xV

5

Pour contraindre une opeacuteration agrave srsquoexeacutecuter sur un processeur donneacutee

1Seacutelectionner le(s) opeacuteration(s) agrave contraindre2 Seacutelectionner la commande AlgorithmSetConstraint3 Seacutelectionner le processeur qui doit exeacutecute les opeacuterationsseacutelectionneacutees

Pour enlever les contraintes seacutelectionner lrsquoopeacuteration puis exeacutecuterla commande AlgorithmDeleteConstraint

Pour voir sur quel processeur une opeacuteration est y contrainteseacutelectionner lrsquoopeacuteration puis exeacutecuter la commandeAlgorithmShowConstraint le processeur correspondant y sera

seacutelectionneacutePour voir toute les opeacuterations qui sont contraintes sur un processeurseacutelectionner le processeur puis exeacutecuter la commande

ArchitectureShowConstrained du menu les opeacuterationscorrespondantes y seront seacutelectionneacutees

Equipe Systegraveme Robotiseacute de Production A eacutequat o

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3979

S y nd

e xV

5

q

Pour construire le planificateur des opeacuterations dugraphe drsquoalgorithme sur les processeurs du graphedrsquoarchitecture qui effectue automatiquement le routage

des deacutependances de donneacutees inter-processeurs et lacreacuteation et la planification des opeacuterations decommunication sur le meacutedia du graphe drsquoarchitectureon utilise la commande AdequationDoIt

Cette commande creacutee un heuristique qui cherche agraveminimiser le chemin critique du graphe drsquoalgorithme

Equipe Systegraveme Robotiseacute de ProductionGeacuteneacuteration du code exeacutecuti

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4079

S y nd

e xV

5Le code exeacutecutif est la partie qui gegravere les ressources

mateacuterielles pour les allouer aux besoins de lrsquoalgorithmedrsquoapplication Les ressources agrave allouer sont

1 Les espaces meacutemoires des processeurs2 Le temps des seacutequences drsquoinstructions3 Le temps des meacutedia de communication

Gracircce agrave la meacutethodologie AAA et le logiciel Syndexlrsquoutilisateur est exempte drsquoeacutecrire du code pour geacuterer ces

ressources Donc par simple exeacutecution de la commandeAdequationGenExec un code distribueacute pour chaque processeur est automatiquement geacuteneacutereacute Ce code est en

fait un exeacutecutif geacuteneacutereacute sur mesure pour lrsquoalgorithme etlrsquoarchitecture

Equipe Systegraveme Robotiseacute de ProductionGeacuteneacuteration du code exeacutecuti

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4179

S y nd

e xV5

Pour chaque processeur de lrsquoarchitecture un fichier

source macro-exeacutecutif m4 avec le mecircme nom estgeacuteneacutereacute plus un macro-makefile ayant le mecircme nom quecelui de lrsquoapplication Chacun de ces fichiers doit ecirctre

transcrit par le macro-processeur GNU M4 (assembleurC) Cette transcription deacutepend de plusieurs fichiers

1 Fichier syndexm4x qui deacutefini les macrosgeacuteneacuteriques de syndex2 Fichier processorTypem4x qui deacutefini les macros

de bas niveau du processeur3 Fichier applicationNamem4x qui deacutefini les macros

speacutecifiques agrave lrsquoapplication

4 Fichier mediaTypem4x qui deacutefini les macros decommunication de bas niveau du type de media

Equipe Systegraveme Robotiseacute de ProductionCreacuteat on rsquoapp cat on

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4279

S y nd

e xV5 Arborescence des reacutepertoires Rep_travail

Applicationmacros

~rtai

Eacutevolution de lrsquoapplication

Phase 1

Edition des macros(C ou Assembleur)

+GNUmakefile

Phase 2

Edition du graphe

(Algorithme amp

Architecteure)

Phase 3

Compilation amp Exeacutecution

Equipe Systegraveme Robotiseacute de ProductionSeacutequence de compilation de Synde

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4379

S y nd

e xV5

Equipe Systegraveme Robotiseacute de Production Plan

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4479

S y nd

e xV5

bull Introduction

bull Meacutethodologie AAA

bull Installation

bull Utilisation du logiciel Syndex

bull Macros

bull LinuxIO un interface CC++ avec SynDEx

bull Exemple drsquoapplication Robuter-ULM

Equipe Systegraveme Robotiseacute de Production

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4579

S y nd

e xV5

Macros Macros

bull Deacutefinition

bull Types de macros

bull Carte Robosoft MPC555

bull Macros Geacuteneacuterique MPC555

bull Macros speacutecifique Robosoftbull Macros de Communication

bull Macros drsquoapplicationbull Structure du fichier Macro

Equipe Systegraveme Robotiseacute de Production Deacutefinition

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4679

S y nd

e xV5

Un macro-processeur est un programme qui consommeen entreacutee une chaicircne de caractegraveres (texte source) la

traite seacutequentiellement en substituant chaque sous-chaicircne qursquoil reconnaicirct (Appel de macro) par unechaicircne correspondante de substitution ( Deacutefinition de

macro) qursquoil traite agrave nouveau jusqursquoagrave ce qursquoil nrsquo y ait plus de substitution possible et qui produit en sortie lachaicircne de caractegraveres traiteacutee

Equipe Systegraveme Robotiseacute de Productionypes e macrosL diffeacute t di ti t d d

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4779

S y nd

e xV5

Les diffeacuterents macros se distinguent en deux grandes

classes bull Macros geacuteneacuteriques

en geacuteneacuteral ceux sont des macros non destineacutes agraveecirctre utiliser directement par lrsquointerface syndexmais plutocirct utiliseacutees pour la programmation

drsquoautres macros (macros MPC555)bull Macros utilisateurs

macros utiliseacutes directement par syndex ils sontspeacutecifiques agrave lrsquoapplication (macros decommunication macros speacutecifiques robosoft

macros speacutecifiques agrave lrsquoapplication)

Equipe Systegraveme Robotiseacute de ProductionCarte Robosoft MPC555La carte Robosoft MPC555 est conccedilue pour la commande de robot de veacutehicule

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4879

S y nd

e xV5

(1) Connecteur du chip MPC555(2) Alimentation continue(3) Interface BDM (Basic Debug Interface)(4) Entreacute Analogique (Joystickhellip)(5) EntreacuteSortie logiques(6) Ligne seacuterie Synchrone (Codeur absolu)(7) Ligne seacuterie Asynchrone (Port 0)

(8) Ligne seacuterie Asynchrone (Port 1)(9) Connecteur du bus CAN (Port 0)(10) Connecteur du bus CAN (Port 1)(11) Axe 1(13) Axe 2(14) Axe 3(15) Axe 4

La carte Robosoft MPC555 est conccedilue pour la commande de robot de veacutehiculeeacutelectrique ou toute autre machine Elle permet de commander un axe gracircce agrave

lrsquoajout drsquoune carte fille le controcircle srsquoeacutetend jusqursquoagrave 4 axesCette carte est baseacutee sur le microcontrocircleur MPC555 32-bit de MotorolaElle peut opeacuterer agrave une freacutequence

de 40 MHz Divers signauxlogique et analogique peuventecirctre utiliser pour lrsquoacquisition deet la commande de mateacuteriel Les

sorties disponibles peuvent ecirctreanalogique ou PWMOn y trouve

Equipe Systegraveme Robotiseacute de ProductionArchitecture du MPC555

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4979

S y nd

e xV5

Equipe Systegraveme Robotiseacute de Productionaract r st ques u

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5079

S y nd

e xV5

Equipe Systegraveme Robotiseacute de Productionacros n r quesbull GPIO (General-Purpose InputOutput)

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5179

S y nd

e xV5

GPIO (General Purpose InputOutput)ce macro utilise le module USIU qui lui fourni 64 pins pour desentreacuteessorties numeacuteriques ordinaires (IO de la carte Robosoft lirelrsquoeacutetat de la pince envoi de commande agrave la pince lire les alarmes)

bull QADC (Queued Analog to Digital Converter)en utilisant le module QADC ce macro permet la conversion drsquounsignal analogique en entreacutee en un signal numeacuterique multi-niveaux(lire les donneacutees du capteur drsquoeacuteffort du joystick)

bull MIOS (Modular InputOutput System)Le module MIOS fourni 16 pins drsquoES numeacuteriques Sur la carte deRobosoft tous les pins sont en sortie Les 16 pins sont reacutepartiscomme suit

utilisateurs reacuteserveacutes

les pins de 0 agrave 11 sont reacuteserveacutes car ils sont preacutevus agrave ecirctre utiliseacutes pour unmateacuteriel particulier Mais si ce mateacuteriel nrsquoest pas utiliseacute lrsquoutilisateur peut lesutiliser librement

15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

Equipe Systegraveme Robotiseacute de ProductionMacros Geacuteneacuter ques MPC55

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5279

S y nd

e xV5

bull PWM (Pulse width Modulation)utilise le module MIOS (pins de 4-7 pour la direction des moteurset de 8-11 pour la validation) pour la commande des actionneursnumeacuteriques en PWM

bull TPU (Time Processor Units)les macros lieacutes agrave ce module permettent la lecture des encodeurs

increacutementauxbull QSPI (Queued Serial Peripheral Interface)

ce module fait partie du module QSMCM et les macros lieacutes servent

agrave son initialisation pour une communication avec du mateacuterielsexternes via le bus seacuterie synchrone

Equipe Systegraveme Robotiseacute de ProductionMacros Geacuteneacuter ques MPC55

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5379

S y nd

e x

V5 bull Serial port support (Polling implementation)

le MPC555 comprend dans le module QSMCM une interface decommunication seacuterie SCI qui permet la communication avec dumateacuteriels externes via un bus seacuterie asynchrone Plusieurs macros

sont lieacutes agrave cette interface pour initialiser et eacutetablir la communicationbull Serial port support (interrupt handling implementation)

pour la mecircme interface SCI du module QSMCM pour cette

meacutethode drsquoimpleacutementation les macros lieacutes initialisent et eacutetablissentla communication en mode par interruption ce qui permet dedeacutetecter lrsquoarriveacutee des donneacutees sur le port seacuterie au lieu de le scruter

en permanence

tous ces macros on les retrouvent dans le fichier 555m4x

Equipe Systegraveme Robotiseacute de ProductionMacros Speacutec ques Ro oso tles macros suivants sont deacutedieacutes agrave la carte de Robosoft MPC555

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5479

S y nd

e x

V5

bull Initialisation de la carte Robosoftmain_ini_() macro ne doit pas ecirctre utiliser par les programmateursdu fait qursquoelle sert qursquoagrave initialiser la carte robosoft Macro interne agrave

syndex dont lrsquoappel est automatique lors de geacuteneacuteration drsquoexeacutecutifMPC555

bull DAC (Digital to Analog Converter)

macro permet lrsquoutilisation du convertisseur de carte robosoft via lemodule MIOs en utilisant les pins de 0 agrave 2

bull LED (on-bord LED interface)

macro permet la gestion de la LED de la carte robosoft connecteacuteeau module QSPI (pin PCS1)

bull SPI absolute encoder

macro permet lrsquoutilisation lrsquointerface du codeur absolu de la carterobosoft connecteacute au module QSPI

Equipe Systegraveme Robotiseacute de ProductionMacros Speacutec ques Ro oso tbull Motor amplifier direction

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5579

S y nd

e x

V5

Motor amplifier directionmacro qui permet de geacuterer la direction des moteurs

bull Motor power amplifier validationles moteurs embarqueacutes sur les robots sont eacutequipeacutes de freins

eacutelectriquement commandable Ce macro permet drsquoenvoyer unsignal drsquoinhibition pour deacutebloquer les freins

bull Watch dog

pour des raisons de seacutecuriteacute un meacutecanisme mateacuteriel que robosofta ajouteacute sur la carte Ce watch-dog vise agrave stopper lrsquoactiviteacute dumoteur en cas ougrave le programme plante Le watch est impleacutementeacute

comme un time-out mateacuteriel Srsquoil nrsquoest pas rafraicircchi peacuteriodiquement il transmet un signal de sortie ce qui enlegraveve lavalidation de lrsquoamplificateur de puissance donc lrsquoarrecirct dumouvement

ces macros se trouvent dans le fichier RSBm4x

Equipe Systegraveme Robotiseacute de Production

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5679

S y nd

e x

V5

Macros de Communicationchaque meacutedia de communication (bus CAN ) est une ressourceseacutequentielle ougrave les transferts de donneacutees entre processeurs doiventsuivre un certain ordre Donc ce macro de communication sert agravedeacutefinir cet ordre et agrave identifier le protocole de communication lecodagedeacutecodage de lrsquoinformation et la synchronisation

on trouve ces macros dans le fichier CANm4x

Macros drsquoapplicationce genre de macros sont speacutecifique au mateacuteriel en question et aussiagrave lrsquoapplication en particulier Ce sont des macros utilisateurs

on trouve ces macros dans le fichier Application_namem4x

Equipe Systegraveme Robotiseacute de Production

section include (pour inclure drsquoautres fichiers macro agrave utiliseStructure du fichier macr

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5779

S y nd

e x

V5

section define (pour tous les macros utilisateurs)MGC lsquoINITrsquo (MGC Macro Generation Context variable)

divert (declaration) (deacutebut du macro)

(deacuteclaration des variables des meacutemoires et des csts

divert (o)

MGC lsquolooprsquocode en assembleur code en C

dnl (commentaires)

MGC lsquoENDrsquo dnl (fin de la macros)divert lsquo lsquo dnl

macros MPC555meacutemoire MPC555

constante MPC555

macros RTAImeacutemoire RTAI

constante RTAI

Equipe Systegraveme Robotiseacute de Production Plan

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5879

S y nd

e x

V5

bull Introduction

bull Meacutethodologie AAA

bull Installationbull Utilisation du logiciel Syndex

bull Macrosbull LinuxIO un interface CC++ avec SynDEx

bull Exemple drsquoapplication Robuter-ULM

Equipe Systegraveme Robotiseacute de Production

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5979

S y nd

e x

V5

LinuxIO LinuxIO une interface une interface

CC++ avecCC++ avec SynDExSynDEx

bull Principe de basebull Utilisation de linuxIO_ par syndex

bull Utilisation de linuxIO_ par un programmeCC++

Equipe Systegraveme Robotiseacute de ProductionPrincipe de baseSyndex fourni une interface graphique pour la conception

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6079

S y nd

e x

V5

Syndex fourni une interface graphique pour la conception

drsquoapplications Par contre des fois nous avons besoin drsquoautresfonctionnaliteacutes non disponibles donc il faut les creacuteer Cependantgeacuteneacuterer des macros pour syndex srsquoavegravere difficile pour certains du

fait qursquoil faut avoir une bonne connaissance de la programmation bas niveau Dans ce cas lrsquoutilisation de linux_IO trouve sa placedans un contexte particulier interfacer des applications CC++utilisateurs avec des applications embarqueacutees temps reacuteeldeacuteveloppeacutees sous syndex

Par rapport agrave ce contexte de programmation lrsquoorganisation du

deacuteveloppement des applications est structureacutee en deux parties 1 Application haut niveau

2 Application bas niveau

Equipe Systegraveme Robotiseacute de ProductionPrincipe de base

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6179

S y nd

e x

V5

En reacutesumeacute lrsquoapplicationutilisateur contient une

partie haut niveau enCC++ et une partie basniveau sous syndex avecun eacutechange de donneacuteesentre les deux partie en

utilisant la couche RTAIde linux

Equipe Systegraveme Robotiseacute de Production pp cat on aut n veauOn entend application haut

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6279

S y nd

e x

V5

niveau tout programmecomme la planification detrajectoires strateacutegies de

navigation etc hellipLrsquoeacutechange de donneacutees sefait par le biais desmeacutemoires partageacutees quifont parti du noyau RTAI

et de lrsquoespace utilisateursde Linux

Toute ressource preacutesente sur la carte Robosoft peutecirctre partageacutee sans aune restriction

Equipe Systegraveme Robotiseacute de Production pp cat on as n veauUne application bas niveau

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6379

S y nd

e x

V5

Une application bas niveau

est un programme conccedilusous syndex comme lacommande des moteurs la

lecture des capteurs etc hellipLes ressources mateacuteriellessont controcircler par plusieurs

cartes MPC555 Ces cartessrsquoeacutechangent des donneacuteesvia le bus CAN Donc ES

est prise en charge par lasource logicielle deacutedieacutee quisrsquoexeacutecute dans les cartes MPC555 puis la couche RTAI

est utiliseacute pour la mise agrave jour de meacutemoires partageacutees pour lrsquoespace utilisateurs linux drsquoeacutechange de donneacutees

Equipe Systegraveme Robotiseacute de ProductionUtilisation de linux_IO par syndex

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6479

S y nd

e x

V5

Equipe Systegraveme Robotiseacute de ProductionUtilisation de linux_IO par syndex

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6579

S y nd

e x

V5

Equipe Systegraveme Robotiseacute de Production

5

Utilisation de linux_IO par syndex

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6679

S y nd

e x

V5

Degraves que la conception de lrsquoapplication sous syndex esttermineacutee et apregraves compilation (AdequationDo it +GenExec) un fichier drsquoentecircte sous le nom de linioh est

automatiquement geacuteneacutereacute Ce fichier contient lesinformations neacutecessaires pour acceacuteder aux entreacutees enlecture et aux sorties en eacutecriture des opeacuterations linuxIO_

inseacutereacutees dans le graphe drsquoalgorithme Le contenu de cefichier est organiseacute en plusieurs parties une pour chaqueopeacuteration linux_IO preacutesente dans le graphe

Equipe Systegraveme Robotiseacute de Production

5

Utilisation de linux_IO par syndex linioh auto-generated C users API frontend

C i h b f 2001 i i i b f f

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6779

S y nd

e x

V5 Copyright Robosoft 2001 Pierre Pomiers ltpierrerobosoftfrgt

LINUX IO shared memory data segments

define SEG0_BASE 0x10000typedef struct

int js_spd_o0

int js_str_o0

int enc_R_o0int enc_L_o0

double odo_X_o0

double odo_Y_o0

double odo_T_o0int spd_R_o0

int spd_L_o0

int time

unsigned char sem shm_seg0_def

Nom du segment de meacutemoire partageacutee pour notre opeacuteration linuxIO_

7 signaux drsquoentreacutees Ces valeurs sonten lecture et sont peacuteriodiquementrafraicircchies par RTAI

2 signaux de sorties Ces valeurs sonten eacutecriture et sont peacuteriodiquementrafraicircchies par RTAI

Equipe Systegraveme Robotiseacute de Production

5

Crsquoest une eacutetape tregraves facile il suffit drsquoinclure le fichier drsquoentecirctelinio h dans le code du fichier en CC++ comme suit

Utilisation de linuxIO_ par un programme CC+

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6879

S y nd

e x

V5 linioh dans le code du fichier en CC++ comme suit

include linioh

include ltrtai_shmhgt

static shm_seg0_def seg0

shm_seg0_def robot

seg0 = rtai_malloc (SEG0_BASE sizeof (shm_seg0_def))

if (seg0-gtsem = 0) bcopy (seg0 amprobot sizeof (shm_seg0_def))helliphelliphellip

helliphelliphellip bcopy (amprobot seg0 sizeof (shm_seg0_def))helliphelliphelliphelliphelliphellip

rtai_free (SEG0_BASE seg0)

fichier drsquoentecircte de la meacutemoire partageacutee fourni dans la couche RTAI de linux

Initialisation du segment SEG0_BASE Allocation de lameacutemoire pointeacutee

par seg0

Lecture des donneacutees provenant du bas

niveau

Mise agrave jours du segment de meacutemoire partageacutee

Libeacuterer le segment de meacutemoire alloueacute

Equipe Systegraveme Robotiseacute de Production

5

Plan

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6979

S y nd e x

V5

bull Introductionbull Meacutethodologie AAA

bull Installationbull Utilisation du logiciel Syndex

bull Macrosbull LinuxIO un interface CC++ avec SynDEx

bull Exemple drsquoapplication Robuter-ULM

Equipe Systegraveme Robotiseacute de Production

V5

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7079

S y nd e x

V5

Exemple dapplication Exemple dapplication Robuter Robuter--ULM ULM

Equipe Systegraveme Robotiseacute de Production

V5

Description Robuter-ULMbull Base mobile (2-RM 2-RF)

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7179

S y nd e x

V

bull Bras ultra-leacuteger 6 axesbull Ceinture 24 capteurs US

bull Capteur drsquoefforts 6 axes

bull Cameacutera CCD monochromeavec carte drsquoacquisition

bull PC embarqueacute MMX 233

bull OS linux redhat 61 avecRTAI V-13

bull 3 bouton drsquoarrecirct drsquourgence

bull 4 batteries 48 VDC 4 X12V 60 Ah

bull Entreacutee Joystick

bull Liaison Ethernet sans fil

Le manipulateur mobile Robuter-ULM comprend

Equipe Systegraveme Robotiseacute de Production

V5

Base Mobilebull dimension

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7279

S y nd e x

V

1025 mm de longueur 680 mm de largueur et 44 cm de hauteurbull Poids environ 150 kg avec les batteriesbull charge jusqursquoagrave 120 kg

bull vitesse de 5cms agrave 125 msbull Moteurs 2 X 300 W DC 48 VDCbull orientation par diffeacuterence de vitesse

bull Preacutecision Position par encodeurs optiquesbull Deux roues motrices diffeacuterentielles et de deux roues follesbull Drsquoune ceinture de 24 capteurs Ultrasons

bull Une carte MPC555 de Robosoft pour le controcircle des deuxmoteurs DC des 2 rouesbull Un systegraveme drsquoodomeacutetrie qui donne la position relative du robot

par rapport agrave son repegravere

Equipe Systegraveme Robotiseacute de Production

V5

bull dimension Faute de documentation

Bras U tra- eacuteger

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7379

S y nd e x

V Faute de documentation

bull Poids moins de 20 kgbull charge 2 kgbull Moteurs 6 moteurs DC

bull gripper pince eacutelectrique 2 doigtsbull Reacutepeacutetabiliteacute +- 1mmbull 3 carte MPC555 de Robosoft lrsquoune pour le capteur drsquoeffort et les

deux autres pour les 6 moteurs + moteur de la pincebull Position encodeur increacutemental

1 2 3 4 5 6Axisrange

plusmn90deg 0-90deg plusmn80deg plusmn100deg plusmn90deg plusmn110deg

vitesse 180degs 180degs 180degs 180degs 180degs 180degs

Equipe Systegraveme Robotiseacute de Production

V5

rc tecture ar ware

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7479

S y nd e x

V

Equipe Systegraveme Robotiseacute de Production

V5

Pro eacutemat quePlusieurs applications peuvent ecirctre impleacutementeacutees sur le robot

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7579

S y nd e x

V

Cependant il faut faire la diffeacuterence entre les applications quidemande lrsquoutilisation de syndex et les applications qui neneacutecessite qursquoune programmation en CC++ Agrave titre drsquoexemple

bull Localisationbull Commande en position

bull Commande en forcebull Navigation

bull Geacuteneacuteration de trajectoire

bull Vision

Equipe Systegraveme Robotiseacute de Production

V5 bull Pince eacutelectrique (TOR)

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7679

S y nd e x

Vq ( )

bull Pince possegravede des ES Logiques

Notre application consiste agrave

bull Recevoir lrsquoeacutetat de la pince (fermeacutee ouverte )

bull Envoyer une commande vers la pince

Capture

drsquoinformation

Open

Close

CommandeMeacutemoire

Partageacutee

Actionneur

Pince Prise de deacutecision Pince

Equipe Systegraveme Robotiseacute de Production

V5

Sc eacutema eacute ectr que

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7779

S y nd e x

Equipe Systegraveme Robotiseacute de Production

V5

Conclusion

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7879

S y nd e x bull Introduction

bull Meacutethodologie AAA

bull Installationbull Utilisation du logiciel Syndex

bull Macrosbull LinuxIO un interface CC++ avec SynDEx

bull Exemple drsquoapplication Robuter-ULM

Equipe Systegraveme Robotiseacute de Production

V5

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7979

S y nd e x

Questions

Page 12: Cours Syndex

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 1279

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV5

Architecture

Larchitecture correspond auxcaracteacuteristiques structurelles du

calculateur exhibant un paralleacutelismedisponible en geacuteneacuteral moindre que leparalleacutelisme potentiel de lalgorithmePar abus de langage le termearchitecture sera ici souvent utilise dans

son sens geacuteneacuterique pour signifier agrave lafois le calculateur lui-mecircme ainsi queses caracteacuteristiques structurelles

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 1379

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV5

Meacutedia

Pr3

Pr1 Pr2

Pr123 Processeur

Meacutedia Moyen de communication

Arcs Transfert de donneacutees Modegravele drsquoarchitecture

Adeacute ti

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 1479

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

ladeacutequation consiste a mettre en correspondance de

maniegravere efficace lalgorithme et larchitecture pour reacutealiserune impleacutementation optimiseacutee

Adeacutequation

Instruction 1Instruction 2

hellip

hellip

Instruction N

Algorithme

Processeur Seacutequenceur

Architecture MonoprocesseurMeacutedia

Proc 1Seacuteq 1

Proc 2

Seacuteq 2Proc M

Seacuteq M

Architecture Multiprocesseurs

Inst 1

Inst 2

hellip

Inst N

Algorithme

Inst 1

Inst 2

hellip

Inst N

Inst 1

Inst 2

hellip

Inst N

hellip

hellip

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 1579

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Pour permettre une exploitation plus efficace du paralleacutelisme

disponible de larchitecture il faut eacutetendre lordre totaldexeacutecution des instructions du programme seacutequentielmonoprocesseur a un ordre partiel extrait par une analyse de

deacutependances de donneacutees entre instructions exhibant le paralleacutelisme potentiel de lalgorithme et permettant unedistribution et un ordonnancement

bull la distribution consiste agrave effectuer une Partition du graphe delrsquoalgorithme initial en autant drsquoeacuteleacutements de partition qursquoil y adrsquoopeacuterateur dans le graphe de lrsquoarchitecture

bull Lordonnancement consiste pour chaque eacuteleacutement de partition a lineacuteariser (rendre total) lordre partielcorrespondant au sous-graphe associe Cette phase estneacutecessaire car lopeacuterateur auquel on affecte un sous-graphe du

graphe de lalgorithme initial est geacutereacute par une seacutequenceurdrsquoinstruction

I leacute t ti

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 1679

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Impleacutementation

Limpleacutementation consiste a mettre en oeuvre

lalgorithme sur larchitecture cest- a-dire aallouer les ressources mateacuterielles de larchitectureaux opeacuterations de lalgorithme puis a compilercharger puis lancer lexeacutecution du programmecorrespondant sur le calculateur

Pl

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 1779

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Pla

bull Introduction

bull Meacutethodologie AAA

bull Installation

bull Utilisation du logiciel Syndex

bull Macros

bull LinuxIO un interface CC++ avec SynDEx

bull Exemple drsquoapplication Robuter-ULM

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 1879

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Installation Installation

bull Exigences mateacuteriellesbull Exigences logicielles

bull Installation de syndex V5bull Arborescence des reacutepertoires

Exigences mateacuteriels

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 1979

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Exigences mateacuteriels

bull Un PC avec un processeur de la famille Intel(80386 au minimum) ou un AMD

bull Une Carte de bus CAN (celle qui est installeacuteecrsquoest NuDACQ PCI-7841 baseacutee sur un chipPhilips SJA1000)

Ces deux speacutecifications sont suffisants pour ledeacuteveloppement drsquoune application RTAI

bull Pour les robots acquis il faut rajouter les cartes decontrocircle baseacutees sur le microcontrocircleur MPC555

Exigences logicielle

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 2079

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Exigences logiciellebull Un environnement sous Linux (quelle que soit la

distribution)bull Un module RTAI (Real-Time Applications

implementations)bull GNU gcc (outil de compilation)bull GNU binutils (outil pour assembler et eacutediter les liens

bull Le Logiciel Syndex V5bull Les macros de syndex pour

- carte de controcircle Robosoft- microcontrocircleur MPC555 de Motorola- PC sous LinuxRTAI

- Bus CAN

Installation de Syndex V

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 2179

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Installation de Syndex V

bull Creacuteation du reacutepertoire de destinationbull Copier le fichier avec la commande

cp syndex-xxx-linuxtgz rep_desbull Se mettre sous le reacutepertoire de destination puisdeacutecompresser le fichier avec la commande

tar zxvf syndex-xxx-linuxtgzCeci creacuteera sous le reacute pertoire de destination un sou

reacutepertoire de syndex contenant tout les fichiersDans le fichier syndexbat il faut mettre agrave jour lechemin du reacutepertoire de syndex

Arborescences des Reacutepertoire

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 2279

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Arborescences des Reacutepertoire

Apregraves lrsquoinstallation il est impeacuteratif drsquoorganiser lesreacutepertoires pour que lors de lrsquoeacutedition des liens le

fichier makefiles deacutepend de cette organisationLrsquoorganisation qui existe actuellement est comme

suit bull Apps applications deacuteveloppeacutees sous syndexbull Macros macros deacuteveloppeacutes pour syndex V5bull Rtai module rtai ou un lien symbolique qui point vers le reacutepertoire drsquoinstallation

Pla

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 2379

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Pla

bull Introduction

bull Meacutethodologie AAA

bull Installation

bull Utilisation du logiciel Syndex

bull Macros

bull LinuxIO un interface CC++ avec SynDEx

bull Exemple drsquoapplication Robuter-ULM

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 2479

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Utilisation du logicielUtilisation du logicielSyndexSyndex V5V5

bull Utilisation de lrsquointerface

bull Algorithme

bull Architecture

bull Caracteacuteristiques

bull Contraintes

bull Adeacutequation

bull Geacuteneacuteration du code exeacutecutif

SynDE

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 2579

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

SynDESynDEx est un logiciel graphique qui impleacutemente lameacutethodologie AAA et qui offre plusieurs fonctionnaliteacutes

bull Speacutecification drsquoun algorithme drsquoapplication saisi sousforme drsquoun graphe

bull Speacutecification drsquoun graphe drsquoarchitecture multi-composant

bull Heuristique pour la distribution et lrsquoordonnancement delrsquoalgorithme drsquoapplication sur lrsquoarchitecture avecoptimisation du temps de reacuteponse

bull Geacuteneacuteration des exeacutecutifs distribueacutes temps reacuteel

Utilisation de lrsquointerface

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 2679

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Utilisation de l interface

Utilisation de lrsquointerface

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 2779

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Utilisation de l interface

Utilisation de lrsquointerface

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 2879

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Utilisation de l interface

Algorithm

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 2979

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Algorithm

Lrsquoalgorithme est speacutecifieacute comme un graphe orienteacute ougravebull chaque sommet est une opeacuteration qui calcule les sorties

des entreacutees agrave chaque opeacuteration doit correspondre uneseacutequence drsquoinstructions compileacutee seacutepareacutement

bull Chaque arc est une deacutependance de donneacutees entre deux

opeacuterations (ou plus dans le cas de diffusion) c-a-d lasortie drsquoune opeacuteration est lrsquoentreacutee de lrsquoautre opeacuteration(ou de plusieurs autres opeacuterations) une entreacutee peut ecirctreconnecteacutee seulement agrave une sortie de mecircme type dedonneacutees

gor t m

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3079

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

gor t mon distingue 4 types de sommets

Algorithm

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3179

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Algorithmbull Le sommet function possegravede au moins une entreacutee et

une sortie crsquoest une opeacuteration agrave libre effet qui calculeses sorties uniquement agrave partir de ses entreacutees (c-a-d niagrave partir des variables globales ni agrave partir des

preacuteceacutedentes valeurs de ces entreacutees)bull Le sommet extio permet lrsquoacquisitionlrsquoeacutecriture des

entreacuteessorties on distingue trois cas

1 Capteur sans entreacutee agrave chaque reacuteaction sa sortierepreacutesente la valeur lue du capteur

2 Actionneur sans sortie agrave chaque reacuteaction ilenvoi son entreacutee agrave lrsquoactionneur

3 Linux_IO ces des meacutemoires partageacutees qui

permettent le transfert de donneacutees entre syndexet un langage eacutevolueacute

E i S egrave R b i eacute d P d i Algorithm

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3279

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Algorithm

bull Le sommet memory possegravede uniquement uneentreacutee et une sortie crsquoest une opeacuteration agrave effetunique qui met la sortie degraves la premiegravere reacuteaction

agrave une valeur initiale calculeacutee auparavant et puisla sortie de la prochaine reacuteaction nrsquoest que

lrsquoentreacutee de la preacuteceacutedente reacuteactionbull Le sommet constant ne possegravede aucune entreacutee

il calcule sa sortie une seule fois avant la premiegravere reacuteaction puis la sortie demeure la mecircme pour chaque reacuteaction

E i S tegrave R b ti eacute d P d ti Algorithm

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3379

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

AlgorithmPour lrsquoalgorithme chaque sommet est caracteacuteriseacute par

bull Son type geacuteneacuterique (function extio memory constant)bull Un nom unique (tout les sommets doivent avoir des

noms diffeacuterents)bull Son type identifiant sa seacutequence drsquoinstructionsassocieacute

bull Sa liste drsquoarguments ougrave chaque argument est speacutecifieacute par bull Le nombre drsquoentreacuteesortiebull Le type de donneacuteesbull Le nom (tout les arguments doivent avoir des noms

diffeacuterents)

Equipe Systegraveme Robotiseacute de Production Architecture

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3479

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

ArchitectureLrsquoarchitecture est speacutecifieacutee comme un graphe non orienteacute

ougrave bullChaque sommet est une ressource seacutequentielle il y adeux types de sommets

bull processeur crsquoest une ressource de calcul enmesure drsquoexeacutecuter seacutequentiellement les opeacuterationsdrsquoun algorithme il pourrait ecirctre un processeur ou

un circuit inteacutegreacute speacutecialiseacutebull meacutedia crsquoest une ressource de communicationen mesure drsquoexeacutecuter seacutequentiellement un transfertde donneacutees entre les meacutemoires des processeurs quilui sont connecteacutes

bull chaque arc est une connexion bidirectionnelle entreun processeur et un meacutedia

Equipe Systegraveme Robotiseacute de Production Architecture

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3579

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

ArchitecturePour lrsquoarchitecture chaque sommet est caracteacuteriseacute par

bull Un nom uniquebullSon type (processeur or meacutedia)bull Son type identifiant caracteacuteristiques mateacuterielles

bull Sa liste de connecteurs ougrave chaque connecteur est speacutecifieacute par bull son type identifiant le type de meacutedia agrave qui il peut ecirctreconnecteacute

bullUn nom

Equipe Systegraveme Robotiseacute de ProductionCaracteacuter st que

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3679

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Caracteacuter st que Nous distinguons deux cateacutegories de caracteacuteristiques lrsquoune relative

aux opeacuterations et lrsquoune agrave la communication 1 Comment speacutecifier les caracteacuteristiques des opeacuterations sous le menu AdequationAlOp_ArOp on obtient une boite

de dialogue avec

une liste de toutles types de

processeurs et

pour chaque processeur uneliste de tout les

types drsquoopeacuterationsqui peut lesexeacutecuter avec ladureacutee drsquoexeacutecutioncorrespondante

Equipe Systegraveme Robotiseacute de ProductionCaracteacuteristique

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3779

q p y

S y nd

e xV

5

q2 Comment speacutecifier les caracteacuteristiques de communication

sous le menu AdequationAlIO_ArIO on obtient une boitede dialogue avec une liste de tout les types de meacutedia et

pour chaque meacutedia une liste de tout les types de donneacutees

qui peut transfeacuterer avec la dureacutee de transfertcorrespondante

Equipe Systegraveme Robotiseacute de Production Contraintes

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3879

S y nd

e xV

5

Pour contraindre une opeacuteration agrave srsquoexeacutecuter sur un processeur donneacutee

1Seacutelectionner le(s) opeacuteration(s) agrave contraindre2 Seacutelectionner la commande AlgorithmSetConstraint3 Seacutelectionner le processeur qui doit exeacutecute les opeacuterationsseacutelectionneacutees

Pour enlever les contraintes seacutelectionner lrsquoopeacuteration puis exeacutecuterla commande AlgorithmDeleteConstraint

Pour voir sur quel processeur une opeacuteration est y contrainteseacutelectionner lrsquoopeacuteration puis exeacutecuter la commandeAlgorithmShowConstraint le processeur correspondant y sera

seacutelectionneacutePour voir toute les opeacuterations qui sont contraintes sur un processeurseacutelectionner le processeur puis exeacutecuter la commande

ArchitectureShowConstrained du menu les opeacuterationscorrespondantes y seront seacutelectionneacutees

Equipe Systegraveme Robotiseacute de Production A eacutequat o

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3979

S y nd

e xV

5

q

Pour construire le planificateur des opeacuterations dugraphe drsquoalgorithme sur les processeurs du graphedrsquoarchitecture qui effectue automatiquement le routage

des deacutependances de donneacutees inter-processeurs et lacreacuteation et la planification des opeacuterations decommunication sur le meacutedia du graphe drsquoarchitectureon utilise la commande AdequationDoIt

Cette commande creacutee un heuristique qui cherche agraveminimiser le chemin critique du graphe drsquoalgorithme

Equipe Systegraveme Robotiseacute de ProductionGeacuteneacuteration du code exeacutecuti

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4079

S y nd

e xV

5Le code exeacutecutif est la partie qui gegravere les ressources

mateacuterielles pour les allouer aux besoins de lrsquoalgorithmedrsquoapplication Les ressources agrave allouer sont

1 Les espaces meacutemoires des processeurs2 Le temps des seacutequences drsquoinstructions3 Le temps des meacutedia de communication

Gracircce agrave la meacutethodologie AAA et le logiciel Syndexlrsquoutilisateur est exempte drsquoeacutecrire du code pour geacuterer ces

ressources Donc par simple exeacutecution de la commandeAdequationGenExec un code distribueacute pour chaque processeur est automatiquement geacuteneacutereacute Ce code est en

fait un exeacutecutif geacuteneacutereacute sur mesure pour lrsquoalgorithme etlrsquoarchitecture

Equipe Systegraveme Robotiseacute de ProductionGeacuteneacuteration du code exeacutecuti

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4179

S y nd

e xV5

Pour chaque processeur de lrsquoarchitecture un fichier

source macro-exeacutecutif m4 avec le mecircme nom estgeacuteneacutereacute plus un macro-makefile ayant le mecircme nom quecelui de lrsquoapplication Chacun de ces fichiers doit ecirctre

transcrit par le macro-processeur GNU M4 (assembleurC) Cette transcription deacutepend de plusieurs fichiers

1 Fichier syndexm4x qui deacutefini les macrosgeacuteneacuteriques de syndex2 Fichier processorTypem4x qui deacutefini les macros

de bas niveau du processeur3 Fichier applicationNamem4x qui deacutefini les macros

speacutecifiques agrave lrsquoapplication

4 Fichier mediaTypem4x qui deacutefini les macros decommunication de bas niveau du type de media

Equipe Systegraveme Robotiseacute de ProductionCreacuteat on rsquoapp cat on

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4279

S y nd

e xV5 Arborescence des reacutepertoires Rep_travail

Applicationmacros

~rtai

Eacutevolution de lrsquoapplication

Phase 1

Edition des macros(C ou Assembleur)

+GNUmakefile

Phase 2

Edition du graphe

(Algorithme amp

Architecteure)

Phase 3

Compilation amp Exeacutecution

Equipe Systegraveme Robotiseacute de ProductionSeacutequence de compilation de Synde

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4379

S y nd

e xV5

Equipe Systegraveme Robotiseacute de Production Plan

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4479

S y nd

e xV5

bull Introduction

bull Meacutethodologie AAA

bull Installation

bull Utilisation du logiciel Syndex

bull Macros

bull LinuxIO un interface CC++ avec SynDEx

bull Exemple drsquoapplication Robuter-ULM

Equipe Systegraveme Robotiseacute de Production

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4579

S y nd

e xV5

Macros Macros

bull Deacutefinition

bull Types de macros

bull Carte Robosoft MPC555

bull Macros Geacuteneacuterique MPC555

bull Macros speacutecifique Robosoftbull Macros de Communication

bull Macros drsquoapplicationbull Structure du fichier Macro

Equipe Systegraveme Robotiseacute de Production Deacutefinition

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4679

S y nd

e xV5

Un macro-processeur est un programme qui consommeen entreacutee une chaicircne de caractegraveres (texte source) la

traite seacutequentiellement en substituant chaque sous-chaicircne qursquoil reconnaicirct (Appel de macro) par unechaicircne correspondante de substitution ( Deacutefinition de

macro) qursquoil traite agrave nouveau jusqursquoagrave ce qursquoil nrsquo y ait plus de substitution possible et qui produit en sortie lachaicircne de caractegraveres traiteacutee

Equipe Systegraveme Robotiseacute de Productionypes e macrosL diffeacute t di ti t d d

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4779

S y nd

e xV5

Les diffeacuterents macros se distinguent en deux grandes

classes bull Macros geacuteneacuteriques

en geacuteneacuteral ceux sont des macros non destineacutes agraveecirctre utiliser directement par lrsquointerface syndexmais plutocirct utiliseacutees pour la programmation

drsquoautres macros (macros MPC555)bull Macros utilisateurs

macros utiliseacutes directement par syndex ils sontspeacutecifiques agrave lrsquoapplication (macros decommunication macros speacutecifiques robosoft

macros speacutecifiques agrave lrsquoapplication)

Equipe Systegraveme Robotiseacute de ProductionCarte Robosoft MPC555La carte Robosoft MPC555 est conccedilue pour la commande de robot de veacutehicule

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4879

S y nd

e xV5

(1) Connecteur du chip MPC555(2) Alimentation continue(3) Interface BDM (Basic Debug Interface)(4) Entreacute Analogique (Joystickhellip)(5) EntreacuteSortie logiques(6) Ligne seacuterie Synchrone (Codeur absolu)(7) Ligne seacuterie Asynchrone (Port 0)

(8) Ligne seacuterie Asynchrone (Port 1)(9) Connecteur du bus CAN (Port 0)(10) Connecteur du bus CAN (Port 1)(11) Axe 1(13) Axe 2(14) Axe 3(15) Axe 4

La carte Robosoft MPC555 est conccedilue pour la commande de robot de veacutehiculeeacutelectrique ou toute autre machine Elle permet de commander un axe gracircce agrave

lrsquoajout drsquoune carte fille le controcircle srsquoeacutetend jusqursquoagrave 4 axesCette carte est baseacutee sur le microcontrocircleur MPC555 32-bit de MotorolaElle peut opeacuterer agrave une freacutequence

de 40 MHz Divers signauxlogique et analogique peuventecirctre utiliser pour lrsquoacquisition deet la commande de mateacuteriel Les

sorties disponibles peuvent ecirctreanalogique ou PWMOn y trouve

Equipe Systegraveme Robotiseacute de ProductionArchitecture du MPC555

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4979

S y nd

e xV5

Equipe Systegraveme Robotiseacute de Productionaract r st ques u

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5079

S y nd

e xV5

Equipe Systegraveme Robotiseacute de Productionacros n r quesbull GPIO (General-Purpose InputOutput)

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5179

S y nd

e xV5

GPIO (General Purpose InputOutput)ce macro utilise le module USIU qui lui fourni 64 pins pour desentreacuteessorties numeacuteriques ordinaires (IO de la carte Robosoft lirelrsquoeacutetat de la pince envoi de commande agrave la pince lire les alarmes)

bull QADC (Queued Analog to Digital Converter)en utilisant le module QADC ce macro permet la conversion drsquounsignal analogique en entreacutee en un signal numeacuterique multi-niveaux(lire les donneacutees du capteur drsquoeacuteffort du joystick)

bull MIOS (Modular InputOutput System)Le module MIOS fourni 16 pins drsquoES numeacuteriques Sur la carte deRobosoft tous les pins sont en sortie Les 16 pins sont reacutepartiscomme suit

utilisateurs reacuteserveacutes

les pins de 0 agrave 11 sont reacuteserveacutes car ils sont preacutevus agrave ecirctre utiliseacutes pour unmateacuteriel particulier Mais si ce mateacuteriel nrsquoest pas utiliseacute lrsquoutilisateur peut lesutiliser librement

15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

Equipe Systegraveme Robotiseacute de ProductionMacros Geacuteneacuter ques MPC55

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5279

S y nd

e xV5

bull PWM (Pulse width Modulation)utilise le module MIOS (pins de 4-7 pour la direction des moteurset de 8-11 pour la validation) pour la commande des actionneursnumeacuteriques en PWM

bull TPU (Time Processor Units)les macros lieacutes agrave ce module permettent la lecture des encodeurs

increacutementauxbull QSPI (Queued Serial Peripheral Interface)

ce module fait partie du module QSMCM et les macros lieacutes servent

agrave son initialisation pour une communication avec du mateacuterielsexternes via le bus seacuterie synchrone

Equipe Systegraveme Robotiseacute de ProductionMacros Geacuteneacuter ques MPC55

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5379

S y nd

e x

V5 bull Serial port support (Polling implementation)

le MPC555 comprend dans le module QSMCM une interface decommunication seacuterie SCI qui permet la communication avec dumateacuteriels externes via un bus seacuterie asynchrone Plusieurs macros

sont lieacutes agrave cette interface pour initialiser et eacutetablir la communicationbull Serial port support (interrupt handling implementation)

pour la mecircme interface SCI du module QSMCM pour cette

meacutethode drsquoimpleacutementation les macros lieacutes initialisent et eacutetablissentla communication en mode par interruption ce qui permet dedeacutetecter lrsquoarriveacutee des donneacutees sur le port seacuterie au lieu de le scruter

en permanence

tous ces macros on les retrouvent dans le fichier 555m4x

Equipe Systegraveme Robotiseacute de ProductionMacros Speacutec ques Ro oso tles macros suivants sont deacutedieacutes agrave la carte de Robosoft MPC555

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5479

S y nd

e x

V5

bull Initialisation de la carte Robosoftmain_ini_() macro ne doit pas ecirctre utiliser par les programmateursdu fait qursquoelle sert qursquoagrave initialiser la carte robosoft Macro interne agrave

syndex dont lrsquoappel est automatique lors de geacuteneacuteration drsquoexeacutecutifMPC555

bull DAC (Digital to Analog Converter)

macro permet lrsquoutilisation du convertisseur de carte robosoft via lemodule MIOs en utilisant les pins de 0 agrave 2

bull LED (on-bord LED interface)

macro permet la gestion de la LED de la carte robosoft connecteacuteeau module QSPI (pin PCS1)

bull SPI absolute encoder

macro permet lrsquoutilisation lrsquointerface du codeur absolu de la carterobosoft connecteacute au module QSPI

Equipe Systegraveme Robotiseacute de ProductionMacros Speacutec ques Ro oso tbull Motor amplifier direction

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5579

S y nd

e x

V5

Motor amplifier directionmacro qui permet de geacuterer la direction des moteurs

bull Motor power amplifier validationles moteurs embarqueacutes sur les robots sont eacutequipeacutes de freins

eacutelectriquement commandable Ce macro permet drsquoenvoyer unsignal drsquoinhibition pour deacutebloquer les freins

bull Watch dog

pour des raisons de seacutecuriteacute un meacutecanisme mateacuteriel que robosofta ajouteacute sur la carte Ce watch-dog vise agrave stopper lrsquoactiviteacute dumoteur en cas ougrave le programme plante Le watch est impleacutementeacute

comme un time-out mateacuteriel Srsquoil nrsquoest pas rafraicircchi peacuteriodiquement il transmet un signal de sortie ce qui enlegraveve lavalidation de lrsquoamplificateur de puissance donc lrsquoarrecirct dumouvement

ces macros se trouvent dans le fichier RSBm4x

Equipe Systegraveme Robotiseacute de Production

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5679

S y nd

e x

V5

Macros de Communicationchaque meacutedia de communication (bus CAN ) est une ressourceseacutequentielle ougrave les transferts de donneacutees entre processeurs doiventsuivre un certain ordre Donc ce macro de communication sert agravedeacutefinir cet ordre et agrave identifier le protocole de communication lecodagedeacutecodage de lrsquoinformation et la synchronisation

on trouve ces macros dans le fichier CANm4x

Macros drsquoapplicationce genre de macros sont speacutecifique au mateacuteriel en question et aussiagrave lrsquoapplication en particulier Ce sont des macros utilisateurs

on trouve ces macros dans le fichier Application_namem4x

Equipe Systegraveme Robotiseacute de Production

section include (pour inclure drsquoautres fichiers macro agrave utiliseStructure du fichier macr

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5779

S y nd

e x

V5

section define (pour tous les macros utilisateurs)MGC lsquoINITrsquo (MGC Macro Generation Context variable)

divert (declaration) (deacutebut du macro)

(deacuteclaration des variables des meacutemoires et des csts

divert (o)

MGC lsquolooprsquocode en assembleur code en C

dnl (commentaires)

MGC lsquoENDrsquo dnl (fin de la macros)divert lsquo lsquo dnl

macros MPC555meacutemoire MPC555

constante MPC555

macros RTAImeacutemoire RTAI

constante RTAI

Equipe Systegraveme Robotiseacute de Production Plan

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5879

S y nd

e x

V5

bull Introduction

bull Meacutethodologie AAA

bull Installationbull Utilisation du logiciel Syndex

bull Macrosbull LinuxIO un interface CC++ avec SynDEx

bull Exemple drsquoapplication Robuter-ULM

Equipe Systegraveme Robotiseacute de Production

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5979

S y nd

e x

V5

LinuxIO LinuxIO une interface une interface

CC++ avecCC++ avec SynDExSynDEx

bull Principe de basebull Utilisation de linuxIO_ par syndex

bull Utilisation de linuxIO_ par un programmeCC++

Equipe Systegraveme Robotiseacute de ProductionPrincipe de baseSyndex fourni une interface graphique pour la conception

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6079

S y nd

e x

V5

Syndex fourni une interface graphique pour la conception

drsquoapplications Par contre des fois nous avons besoin drsquoautresfonctionnaliteacutes non disponibles donc il faut les creacuteer Cependantgeacuteneacuterer des macros pour syndex srsquoavegravere difficile pour certains du

fait qursquoil faut avoir une bonne connaissance de la programmation bas niveau Dans ce cas lrsquoutilisation de linux_IO trouve sa placedans un contexte particulier interfacer des applications CC++utilisateurs avec des applications embarqueacutees temps reacuteeldeacuteveloppeacutees sous syndex

Par rapport agrave ce contexte de programmation lrsquoorganisation du

deacuteveloppement des applications est structureacutee en deux parties 1 Application haut niveau

2 Application bas niveau

Equipe Systegraveme Robotiseacute de ProductionPrincipe de base

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6179

S y nd

e x

V5

En reacutesumeacute lrsquoapplicationutilisateur contient une

partie haut niveau enCC++ et une partie basniveau sous syndex avecun eacutechange de donneacuteesentre les deux partie en

utilisant la couche RTAIde linux

Equipe Systegraveme Robotiseacute de Production pp cat on aut n veauOn entend application haut

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6279

S y nd

e x

V5

niveau tout programmecomme la planification detrajectoires strateacutegies de

navigation etc hellipLrsquoeacutechange de donneacutees sefait par le biais desmeacutemoires partageacutees quifont parti du noyau RTAI

et de lrsquoespace utilisateursde Linux

Toute ressource preacutesente sur la carte Robosoft peutecirctre partageacutee sans aune restriction

Equipe Systegraveme Robotiseacute de Production pp cat on as n veauUne application bas niveau

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6379

S y nd

e x

V5

Une application bas niveau

est un programme conccedilusous syndex comme lacommande des moteurs la

lecture des capteurs etc hellipLes ressources mateacuteriellessont controcircler par plusieurs

cartes MPC555 Ces cartessrsquoeacutechangent des donneacuteesvia le bus CAN Donc ES

est prise en charge par lasource logicielle deacutedieacutee quisrsquoexeacutecute dans les cartes MPC555 puis la couche RTAI

est utiliseacute pour la mise agrave jour de meacutemoires partageacutees pour lrsquoespace utilisateurs linux drsquoeacutechange de donneacutees

Equipe Systegraveme Robotiseacute de ProductionUtilisation de linux_IO par syndex

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6479

S y nd

e x

V5

Equipe Systegraveme Robotiseacute de ProductionUtilisation de linux_IO par syndex

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6579

S y nd

e x

V5

Equipe Systegraveme Robotiseacute de Production

5

Utilisation de linux_IO par syndex

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6679

S y nd

e x

V5

Degraves que la conception de lrsquoapplication sous syndex esttermineacutee et apregraves compilation (AdequationDo it +GenExec) un fichier drsquoentecircte sous le nom de linioh est

automatiquement geacuteneacutereacute Ce fichier contient lesinformations neacutecessaires pour acceacuteder aux entreacutees enlecture et aux sorties en eacutecriture des opeacuterations linuxIO_

inseacutereacutees dans le graphe drsquoalgorithme Le contenu de cefichier est organiseacute en plusieurs parties une pour chaqueopeacuteration linux_IO preacutesente dans le graphe

Equipe Systegraveme Robotiseacute de Production

5

Utilisation de linux_IO par syndex linioh auto-generated C users API frontend

C i h b f 2001 i i i b f f

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6779

S y nd

e x

V5 Copyright Robosoft 2001 Pierre Pomiers ltpierrerobosoftfrgt

LINUX IO shared memory data segments

define SEG0_BASE 0x10000typedef struct

int js_spd_o0

int js_str_o0

int enc_R_o0int enc_L_o0

double odo_X_o0

double odo_Y_o0

double odo_T_o0int spd_R_o0

int spd_L_o0

int time

unsigned char sem shm_seg0_def

Nom du segment de meacutemoire partageacutee pour notre opeacuteration linuxIO_

7 signaux drsquoentreacutees Ces valeurs sonten lecture et sont peacuteriodiquementrafraicircchies par RTAI

2 signaux de sorties Ces valeurs sonten eacutecriture et sont peacuteriodiquementrafraicircchies par RTAI

Equipe Systegraveme Robotiseacute de Production

5

Crsquoest une eacutetape tregraves facile il suffit drsquoinclure le fichier drsquoentecirctelinio h dans le code du fichier en CC++ comme suit

Utilisation de linuxIO_ par un programme CC+

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6879

S y nd

e x

V5 linioh dans le code du fichier en CC++ comme suit

include linioh

include ltrtai_shmhgt

static shm_seg0_def seg0

shm_seg0_def robot

seg0 = rtai_malloc (SEG0_BASE sizeof (shm_seg0_def))

if (seg0-gtsem = 0) bcopy (seg0 amprobot sizeof (shm_seg0_def))helliphelliphellip

helliphelliphellip bcopy (amprobot seg0 sizeof (shm_seg0_def))helliphelliphelliphelliphelliphellip

rtai_free (SEG0_BASE seg0)

fichier drsquoentecircte de la meacutemoire partageacutee fourni dans la couche RTAI de linux

Initialisation du segment SEG0_BASE Allocation de lameacutemoire pointeacutee

par seg0

Lecture des donneacutees provenant du bas

niveau

Mise agrave jours du segment de meacutemoire partageacutee

Libeacuterer le segment de meacutemoire alloueacute

Equipe Systegraveme Robotiseacute de Production

5

Plan

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6979

S y nd e x

V5

bull Introductionbull Meacutethodologie AAA

bull Installationbull Utilisation du logiciel Syndex

bull Macrosbull LinuxIO un interface CC++ avec SynDEx

bull Exemple drsquoapplication Robuter-ULM

Equipe Systegraveme Robotiseacute de Production

V5

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7079

S y nd e x

V5

Exemple dapplication Exemple dapplication Robuter Robuter--ULM ULM

Equipe Systegraveme Robotiseacute de Production

V5

Description Robuter-ULMbull Base mobile (2-RM 2-RF)

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7179

S y nd e x

V

bull Bras ultra-leacuteger 6 axesbull Ceinture 24 capteurs US

bull Capteur drsquoefforts 6 axes

bull Cameacutera CCD monochromeavec carte drsquoacquisition

bull PC embarqueacute MMX 233

bull OS linux redhat 61 avecRTAI V-13

bull 3 bouton drsquoarrecirct drsquourgence

bull 4 batteries 48 VDC 4 X12V 60 Ah

bull Entreacutee Joystick

bull Liaison Ethernet sans fil

Le manipulateur mobile Robuter-ULM comprend

Equipe Systegraveme Robotiseacute de Production

V5

Base Mobilebull dimension

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7279

S y nd e x

V

1025 mm de longueur 680 mm de largueur et 44 cm de hauteurbull Poids environ 150 kg avec les batteriesbull charge jusqursquoagrave 120 kg

bull vitesse de 5cms agrave 125 msbull Moteurs 2 X 300 W DC 48 VDCbull orientation par diffeacuterence de vitesse

bull Preacutecision Position par encodeurs optiquesbull Deux roues motrices diffeacuterentielles et de deux roues follesbull Drsquoune ceinture de 24 capteurs Ultrasons

bull Une carte MPC555 de Robosoft pour le controcircle des deuxmoteurs DC des 2 rouesbull Un systegraveme drsquoodomeacutetrie qui donne la position relative du robot

par rapport agrave son repegravere

Equipe Systegraveme Robotiseacute de Production

V5

bull dimension Faute de documentation

Bras U tra- eacuteger

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7379

S y nd e x

V Faute de documentation

bull Poids moins de 20 kgbull charge 2 kgbull Moteurs 6 moteurs DC

bull gripper pince eacutelectrique 2 doigtsbull Reacutepeacutetabiliteacute +- 1mmbull 3 carte MPC555 de Robosoft lrsquoune pour le capteur drsquoeffort et les

deux autres pour les 6 moteurs + moteur de la pincebull Position encodeur increacutemental

1 2 3 4 5 6Axisrange

plusmn90deg 0-90deg plusmn80deg plusmn100deg plusmn90deg plusmn110deg

vitesse 180degs 180degs 180degs 180degs 180degs 180degs

Equipe Systegraveme Robotiseacute de Production

V5

rc tecture ar ware

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7479

S y nd e x

V

Equipe Systegraveme Robotiseacute de Production

V5

Pro eacutemat quePlusieurs applications peuvent ecirctre impleacutementeacutees sur le robot

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7579

S y nd e x

V

Cependant il faut faire la diffeacuterence entre les applications quidemande lrsquoutilisation de syndex et les applications qui neneacutecessite qursquoune programmation en CC++ Agrave titre drsquoexemple

bull Localisationbull Commande en position

bull Commande en forcebull Navigation

bull Geacuteneacuteration de trajectoire

bull Vision

Equipe Systegraveme Robotiseacute de Production

V5 bull Pince eacutelectrique (TOR)

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7679

S y nd e x

Vq ( )

bull Pince possegravede des ES Logiques

Notre application consiste agrave

bull Recevoir lrsquoeacutetat de la pince (fermeacutee ouverte )

bull Envoyer une commande vers la pince

Capture

drsquoinformation

Open

Close

CommandeMeacutemoire

Partageacutee

Actionneur

Pince Prise de deacutecision Pince

Equipe Systegraveme Robotiseacute de Production

V5

Sc eacutema eacute ectr que

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7779

S y nd e x

Equipe Systegraveme Robotiseacute de Production

V5

Conclusion

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7879

S y nd e x bull Introduction

bull Meacutethodologie AAA

bull Installationbull Utilisation du logiciel Syndex

bull Macrosbull LinuxIO un interface CC++ avec SynDEx

bull Exemple drsquoapplication Robuter-ULM

Equipe Systegraveme Robotiseacute de Production

V5

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7979

S y nd e x

Questions

Page 13: Cours Syndex

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 1379

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV5

Meacutedia

Pr3

Pr1 Pr2

Pr123 Processeur

Meacutedia Moyen de communication

Arcs Transfert de donneacutees Modegravele drsquoarchitecture

Adeacute ti

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 1479

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

ladeacutequation consiste a mettre en correspondance de

maniegravere efficace lalgorithme et larchitecture pour reacutealiserune impleacutementation optimiseacutee

Adeacutequation

Instruction 1Instruction 2

hellip

hellip

Instruction N

Algorithme

Processeur Seacutequenceur

Architecture MonoprocesseurMeacutedia

Proc 1Seacuteq 1

Proc 2

Seacuteq 2Proc M

Seacuteq M

Architecture Multiprocesseurs

Inst 1

Inst 2

hellip

Inst N

Algorithme

Inst 1

Inst 2

hellip

Inst N

Inst 1

Inst 2

hellip

Inst N

hellip

hellip

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 1579

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Pour permettre une exploitation plus efficace du paralleacutelisme

disponible de larchitecture il faut eacutetendre lordre totaldexeacutecution des instructions du programme seacutequentielmonoprocesseur a un ordre partiel extrait par une analyse de

deacutependances de donneacutees entre instructions exhibant le paralleacutelisme potentiel de lalgorithme et permettant unedistribution et un ordonnancement

bull la distribution consiste agrave effectuer une Partition du graphe delrsquoalgorithme initial en autant drsquoeacuteleacutements de partition qursquoil y adrsquoopeacuterateur dans le graphe de lrsquoarchitecture

bull Lordonnancement consiste pour chaque eacuteleacutement de partition a lineacuteariser (rendre total) lordre partielcorrespondant au sous-graphe associe Cette phase estneacutecessaire car lopeacuterateur auquel on affecte un sous-graphe du

graphe de lalgorithme initial est geacutereacute par une seacutequenceurdrsquoinstruction

I leacute t ti

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 1679

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Impleacutementation

Limpleacutementation consiste a mettre en oeuvre

lalgorithme sur larchitecture cest- a-dire aallouer les ressources mateacuterielles de larchitectureaux opeacuterations de lalgorithme puis a compilercharger puis lancer lexeacutecution du programmecorrespondant sur le calculateur

Pl

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 1779

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Pla

bull Introduction

bull Meacutethodologie AAA

bull Installation

bull Utilisation du logiciel Syndex

bull Macros

bull LinuxIO un interface CC++ avec SynDEx

bull Exemple drsquoapplication Robuter-ULM

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 1879

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Installation Installation

bull Exigences mateacuteriellesbull Exigences logicielles

bull Installation de syndex V5bull Arborescence des reacutepertoires

Exigences mateacuteriels

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 1979

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Exigences mateacuteriels

bull Un PC avec un processeur de la famille Intel(80386 au minimum) ou un AMD

bull Une Carte de bus CAN (celle qui est installeacuteecrsquoest NuDACQ PCI-7841 baseacutee sur un chipPhilips SJA1000)

Ces deux speacutecifications sont suffisants pour ledeacuteveloppement drsquoune application RTAI

bull Pour les robots acquis il faut rajouter les cartes decontrocircle baseacutees sur le microcontrocircleur MPC555

Exigences logicielle

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 2079

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Exigences logiciellebull Un environnement sous Linux (quelle que soit la

distribution)bull Un module RTAI (Real-Time Applications

implementations)bull GNU gcc (outil de compilation)bull GNU binutils (outil pour assembler et eacutediter les liens

bull Le Logiciel Syndex V5bull Les macros de syndex pour

- carte de controcircle Robosoft- microcontrocircleur MPC555 de Motorola- PC sous LinuxRTAI

- Bus CAN

Installation de Syndex V

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 2179

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Installation de Syndex V

bull Creacuteation du reacutepertoire de destinationbull Copier le fichier avec la commande

cp syndex-xxx-linuxtgz rep_desbull Se mettre sous le reacutepertoire de destination puisdeacutecompresser le fichier avec la commande

tar zxvf syndex-xxx-linuxtgzCeci creacuteera sous le reacute pertoire de destination un sou

reacutepertoire de syndex contenant tout les fichiersDans le fichier syndexbat il faut mettre agrave jour lechemin du reacutepertoire de syndex

Arborescences des Reacutepertoire

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 2279

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Arborescences des Reacutepertoire

Apregraves lrsquoinstallation il est impeacuteratif drsquoorganiser lesreacutepertoires pour que lors de lrsquoeacutedition des liens le

fichier makefiles deacutepend de cette organisationLrsquoorganisation qui existe actuellement est comme

suit bull Apps applications deacuteveloppeacutees sous syndexbull Macros macros deacuteveloppeacutes pour syndex V5bull Rtai module rtai ou un lien symbolique qui point vers le reacutepertoire drsquoinstallation

Pla

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 2379

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Pla

bull Introduction

bull Meacutethodologie AAA

bull Installation

bull Utilisation du logiciel Syndex

bull Macros

bull LinuxIO un interface CC++ avec SynDEx

bull Exemple drsquoapplication Robuter-ULM

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 2479

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Utilisation du logicielUtilisation du logicielSyndexSyndex V5V5

bull Utilisation de lrsquointerface

bull Algorithme

bull Architecture

bull Caracteacuteristiques

bull Contraintes

bull Adeacutequation

bull Geacuteneacuteration du code exeacutecutif

SynDE

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 2579

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

SynDESynDEx est un logiciel graphique qui impleacutemente lameacutethodologie AAA et qui offre plusieurs fonctionnaliteacutes

bull Speacutecification drsquoun algorithme drsquoapplication saisi sousforme drsquoun graphe

bull Speacutecification drsquoun graphe drsquoarchitecture multi-composant

bull Heuristique pour la distribution et lrsquoordonnancement delrsquoalgorithme drsquoapplication sur lrsquoarchitecture avecoptimisation du temps de reacuteponse

bull Geacuteneacuteration des exeacutecutifs distribueacutes temps reacuteel

Utilisation de lrsquointerface

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 2679

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Utilisation de l interface

Utilisation de lrsquointerface

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 2779

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Utilisation de l interface

Utilisation de lrsquointerface

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 2879

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Utilisation de l interface

Algorithm

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 2979

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Algorithm

Lrsquoalgorithme est speacutecifieacute comme un graphe orienteacute ougravebull chaque sommet est une opeacuteration qui calcule les sorties

des entreacutees agrave chaque opeacuteration doit correspondre uneseacutequence drsquoinstructions compileacutee seacutepareacutement

bull Chaque arc est une deacutependance de donneacutees entre deux

opeacuterations (ou plus dans le cas de diffusion) c-a-d lasortie drsquoune opeacuteration est lrsquoentreacutee de lrsquoautre opeacuteration(ou de plusieurs autres opeacuterations) une entreacutee peut ecirctreconnecteacutee seulement agrave une sortie de mecircme type dedonneacutees

gor t m

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3079

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

gor t mon distingue 4 types de sommets

Algorithm

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3179

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Algorithmbull Le sommet function possegravede au moins une entreacutee et

une sortie crsquoest une opeacuteration agrave libre effet qui calculeses sorties uniquement agrave partir de ses entreacutees (c-a-d niagrave partir des variables globales ni agrave partir des

preacuteceacutedentes valeurs de ces entreacutees)bull Le sommet extio permet lrsquoacquisitionlrsquoeacutecriture des

entreacuteessorties on distingue trois cas

1 Capteur sans entreacutee agrave chaque reacuteaction sa sortierepreacutesente la valeur lue du capteur

2 Actionneur sans sortie agrave chaque reacuteaction ilenvoi son entreacutee agrave lrsquoactionneur

3 Linux_IO ces des meacutemoires partageacutees qui

permettent le transfert de donneacutees entre syndexet un langage eacutevolueacute

E i S egrave R b i eacute d P d i Algorithm

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3279

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Algorithm

bull Le sommet memory possegravede uniquement uneentreacutee et une sortie crsquoest une opeacuteration agrave effetunique qui met la sortie degraves la premiegravere reacuteaction

agrave une valeur initiale calculeacutee auparavant et puisla sortie de la prochaine reacuteaction nrsquoest que

lrsquoentreacutee de la preacuteceacutedente reacuteactionbull Le sommet constant ne possegravede aucune entreacutee

il calcule sa sortie une seule fois avant la premiegravere reacuteaction puis la sortie demeure la mecircme pour chaque reacuteaction

E i S tegrave R b ti eacute d P d ti Algorithm

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3379

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

AlgorithmPour lrsquoalgorithme chaque sommet est caracteacuteriseacute par

bull Son type geacuteneacuterique (function extio memory constant)bull Un nom unique (tout les sommets doivent avoir des

noms diffeacuterents)bull Son type identifiant sa seacutequence drsquoinstructionsassocieacute

bull Sa liste drsquoarguments ougrave chaque argument est speacutecifieacute par bull Le nombre drsquoentreacuteesortiebull Le type de donneacuteesbull Le nom (tout les arguments doivent avoir des noms

diffeacuterents)

Equipe Systegraveme Robotiseacute de Production Architecture

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3479

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

ArchitectureLrsquoarchitecture est speacutecifieacutee comme un graphe non orienteacute

ougrave bullChaque sommet est une ressource seacutequentielle il y adeux types de sommets

bull processeur crsquoest une ressource de calcul enmesure drsquoexeacutecuter seacutequentiellement les opeacuterationsdrsquoun algorithme il pourrait ecirctre un processeur ou

un circuit inteacutegreacute speacutecialiseacutebull meacutedia crsquoest une ressource de communicationen mesure drsquoexeacutecuter seacutequentiellement un transfertde donneacutees entre les meacutemoires des processeurs quilui sont connecteacutes

bull chaque arc est une connexion bidirectionnelle entreun processeur et un meacutedia

Equipe Systegraveme Robotiseacute de Production Architecture

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3579

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

ArchitecturePour lrsquoarchitecture chaque sommet est caracteacuteriseacute par

bull Un nom uniquebullSon type (processeur or meacutedia)bull Son type identifiant caracteacuteristiques mateacuterielles

bull Sa liste de connecteurs ougrave chaque connecteur est speacutecifieacute par bull son type identifiant le type de meacutedia agrave qui il peut ecirctreconnecteacute

bullUn nom

Equipe Systegraveme Robotiseacute de ProductionCaracteacuter st que

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3679

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Caracteacuter st que Nous distinguons deux cateacutegories de caracteacuteristiques lrsquoune relative

aux opeacuterations et lrsquoune agrave la communication 1 Comment speacutecifier les caracteacuteristiques des opeacuterations sous le menu AdequationAlOp_ArOp on obtient une boite

de dialogue avec

une liste de toutles types de

processeurs et

pour chaque processeur uneliste de tout les

types drsquoopeacuterationsqui peut lesexeacutecuter avec ladureacutee drsquoexeacutecutioncorrespondante

Equipe Systegraveme Robotiseacute de ProductionCaracteacuteristique

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3779

q p y

S y nd

e xV

5

q2 Comment speacutecifier les caracteacuteristiques de communication

sous le menu AdequationAlIO_ArIO on obtient une boitede dialogue avec une liste de tout les types de meacutedia et

pour chaque meacutedia une liste de tout les types de donneacutees

qui peut transfeacuterer avec la dureacutee de transfertcorrespondante

Equipe Systegraveme Robotiseacute de Production Contraintes

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3879

S y nd

e xV

5

Pour contraindre une opeacuteration agrave srsquoexeacutecuter sur un processeur donneacutee

1Seacutelectionner le(s) opeacuteration(s) agrave contraindre2 Seacutelectionner la commande AlgorithmSetConstraint3 Seacutelectionner le processeur qui doit exeacutecute les opeacuterationsseacutelectionneacutees

Pour enlever les contraintes seacutelectionner lrsquoopeacuteration puis exeacutecuterla commande AlgorithmDeleteConstraint

Pour voir sur quel processeur une opeacuteration est y contrainteseacutelectionner lrsquoopeacuteration puis exeacutecuter la commandeAlgorithmShowConstraint le processeur correspondant y sera

seacutelectionneacutePour voir toute les opeacuterations qui sont contraintes sur un processeurseacutelectionner le processeur puis exeacutecuter la commande

ArchitectureShowConstrained du menu les opeacuterationscorrespondantes y seront seacutelectionneacutees

Equipe Systegraveme Robotiseacute de Production A eacutequat o

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3979

S y nd

e xV

5

q

Pour construire le planificateur des opeacuterations dugraphe drsquoalgorithme sur les processeurs du graphedrsquoarchitecture qui effectue automatiquement le routage

des deacutependances de donneacutees inter-processeurs et lacreacuteation et la planification des opeacuterations decommunication sur le meacutedia du graphe drsquoarchitectureon utilise la commande AdequationDoIt

Cette commande creacutee un heuristique qui cherche agraveminimiser le chemin critique du graphe drsquoalgorithme

Equipe Systegraveme Robotiseacute de ProductionGeacuteneacuteration du code exeacutecuti

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4079

S y nd

e xV

5Le code exeacutecutif est la partie qui gegravere les ressources

mateacuterielles pour les allouer aux besoins de lrsquoalgorithmedrsquoapplication Les ressources agrave allouer sont

1 Les espaces meacutemoires des processeurs2 Le temps des seacutequences drsquoinstructions3 Le temps des meacutedia de communication

Gracircce agrave la meacutethodologie AAA et le logiciel Syndexlrsquoutilisateur est exempte drsquoeacutecrire du code pour geacuterer ces

ressources Donc par simple exeacutecution de la commandeAdequationGenExec un code distribueacute pour chaque processeur est automatiquement geacuteneacutereacute Ce code est en

fait un exeacutecutif geacuteneacutereacute sur mesure pour lrsquoalgorithme etlrsquoarchitecture

Equipe Systegraveme Robotiseacute de ProductionGeacuteneacuteration du code exeacutecuti

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4179

S y nd

e xV5

Pour chaque processeur de lrsquoarchitecture un fichier

source macro-exeacutecutif m4 avec le mecircme nom estgeacuteneacutereacute plus un macro-makefile ayant le mecircme nom quecelui de lrsquoapplication Chacun de ces fichiers doit ecirctre

transcrit par le macro-processeur GNU M4 (assembleurC) Cette transcription deacutepend de plusieurs fichiers

1 Fichier syndexm4x qui deacutefini les macrosgeacuteneacuteriques de syndex2 Fichier processorTypem4x qui deacutefini les macros

de bas niveau du processeur3 Fichier applicationNamem4x qui deacutefini les macros

speacutecifiques agrave lrsquoapplication

4 Fichier mediaTypem4x qui deacutefini les macros decommunication de bas niveau du type de media

Equipe Systegraveme Robotiseacute de ProductionCreacuteat on rsquoapp cat on

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4279

S y nd

e xV5 Arborescence des reacutepertoires Rep_travail

Applicationmacros

~rtai

Eacutevolution de lrsquoapplication

Phase 1

Edition des macros(C ou Assembleur)

+GNUmakefile

Phase 2

Edition du graphe

(Algorithme amp

Architecteure)

Phase 3

Compilation amp Exeacutecution

Equipe Systegraveme Robotiseacute de ProductionSeacutequence de compilation de Synde

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4379

S y nd

e xV5

Equipe Systegraveme Robotiseacute de Production Plan

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4479

S y nd

e xV5

bull Introduction

bull Meacutethodologie AAA

bull Installation

bull Utilisation du logiciel Syndex

bull Macros

bull LinuxIO un interface CC++ avec SynDEx

bull Exemple drsquoapplication Robuter-ULM

Equipe Systegraveme Robotiseacute de Production

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4579

S y nd

e xV5

Macros Macros

bull Deacutefinition

bull Types de macros

bull Carte Robosoft MPC555

bull Macros Geacuteneacuterique MPC555

bull Macros speacutecifique Robosoftbull Macros de Communication

bull Macros drsquoapplicationbull Structure du fichier Macro

Equipe Systegraveme Robotiseacute de Production Deacutefinition

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4679

S y nd

e xV5

Un macro-processeur est un programme qui consommeen entreacutee une chaicircne de caractegraveres (texte source) la

traite seacutequentiellement en substituant chaque sous-chaicircne qursquoil reconnaicirct (Appel de macro) par unechaicircne correspondante de substitution ( Deacutefinition de

macro) qursquoil traite agrave nouveau jusqursquoagrave ce qursquoil nrsquo y ait plus de substitution possible et qui produit en sortie lachaicircne de caractegraveres traiteacutee

Equipe Systegraveme Robotiseacute de Productionypes e macrosL diffeacute t di ti t d d

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4779

S y nd

e xV5

Les diffeacuterents macros se distinguent en deux grandes

classes bull Macros geacuteneacuteriques

en geacuteneacuteral ceux sont des macros non destineacutes agraveecirctre utiliser directement par lrsquointerface syndexmais plutocirct utiliseacutees pour la programmation

drsquoautres macros (macros MPC555)bull Macros utilisateurs

macros utiliseacutes directement par syndex ils sontspeacutecifiques agrave lrsquoapplication (macros decommunication macros speacutecifiques robosoft

macros speacutecifiques agrave lrsquoapplication)

Equipe Systegraveme Robotiseacute de ProductionCarte Robosoft MPC555La carte Robosoft MPC555 est conccedilue pour la commande de robot de veacutehicule

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4879

S y nd

e xV5

(1) Connecteur du chip MPC555(2) Alimentation continue(3) Interface BDM (Basic Debug Interface)(4) Entreacute Analogique (Joystickhellip)(5) EntreacuteSortie logiques(6) Ligne seacuterie Synchrone (Codeur absolu)(7) Ligne seacuterie Asynchrone (Port 0)

(8) Ligne seacuterie Asynchrone (Port 1)(9) Connecteur du bus CAN (Port 0)(10) Connecteur du bus CAN (Port 1)(11) Axe 1(13) Axe 2(14) Axe 3(15) Axe 4

La carte Robosoft MPC555 est conccedilue pour la commande de robot de veacutehiculeeacutelectrique ou toute autre machine Elle permet de commander un axe gracircce agrave

lrsquoajout drsquoune carte fille le controcircle srsquoeacutetend jusqursquoagrave 4 axesCette carte est baseacutee sur le microcontrocircleur MPC555 32-bit de MotorolaElle peut opeacuterer agrave une freacutequence

de 40 MHz Divers signauxlogique et analogique peuventecirctre utiliser pour lrsquoacquisition deet la commande de mateacuteriel Les

sorties disponibles peuvent ecirctreanalogique ou PWMOn y trouve

Equipe Systegraveme Robotiseacute de ProductionArchitecture du MPC555

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4979

S y nd

e xV5

Equipe Systegraveme Robotiseacute de Productionaract r st ques u

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5079

S y nd

e xV5

Equipe Systegraveme Robotiseacute de Productionacros n r quesbull GPIO (General-Purpose InputOutput)

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5179

S y nd

e xV5

GPIO (General Purpose InputOutput)ce macro utilise le module USIU qui lui fourni 64 pins pour desentreacuteessorties numeacuteriques ordinaires (IO de la carte Robosoft lirelrsquoeacutetat de la pince envoi de commande agrave la pince lire les alarmes)

bull QADC (Queued Analog to Digital Converter)en utilisant le module QADC ce macro permet la conversion drsquounsignal analogique en entreacutee en un signal numeacuterique multi-niveaux(lire les donneacutees du capteur drsquoeacuteffort du joystick)

bull MIOS (Modular InputOutput System)Le module MIOS fourni 16 pins drsquoES numeacuteriques Sur la carte deRobosoft tous les pins sont en sortie Les 16 pins sont reacutepartiscomme suit

utilisateurs reacuteserveacutes

les pins de 0 agrave 11 sont reacuteserveacutes car ils sont preacutevus agrave ecirctre utiliseacutes pour unmateacuteriel particulier Mais si ce mateacuteriel nrsquoest pas utiliseacute lrsquoutilisateur peut lesutiliser librement

15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

Equipe Systegraveme Robotiseacute de ProductionMacros Geacuteneacuter ques MPC55

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5279

S y nd

e xV5

bull PWM (Pulse width Modulation)utilise le module MIOS (pins de 4-7 pour la direction des moteurset de 8-11 pour la validation) pour la commande des actionneursnumeacuteriques en PWM

bull TPU (Time Processor Units)les macros lieacutes agrave ce module permettent la lecture des encodeurs

increacutementauxbull QSPI (Queued Serial Peripheral Interface)

ce module fait partie du module QSMCM et les macros lieacutes servent

agrave son initialisation pour une communication avec du mateacuterielsexternes via le bus seacuterie synchrone

Equipe Systegraveme Robotiseacute de ProductionMacros Geacuteneacuter ques MPC55

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5379

S y nd

e x

V5 bull Serial port support (Polling implementation)

le MPC555 comprend dans le module QSMCM une interface decommunication seacuterie SCI qui permet la communication avec dumateacuteriels externes via un bus seacuterie asynchrone Plusieurs macros

sont lieacutes agrave cette interface pour initialiser et eacutetablir la communicationbull Serial port support (interrupt handling implementation)

pour la mecircme interface SCI du module QSMCM pour cette

meacutethode drsquoimpleacutementation les macros lieacutes initialisent et eacutetablissentla communication en mode par interruption ce qui permet dedeacutetecter lrsquoarriveacutee des donneacutees sur le port seacuterie au lieu de le scruter

en permanence

tous ces macros on les retrouvent dans le fichier 555m4x

Equipe Systegraveme Robotiseacute de ProductionMacros Speacutec ques Ro oso tles macros suivants sont deacutedieacutes agrave la carte de Robosoft MPC555

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5479

S y nd

e x

V5

bull Initialisation de la carte Robosoftmain_ini_() macro ne doit pas ecirctre utiliser par les programmateursdu fait qursquoelle sert qursquoagrave initialiser la carte robosoft Macro interne agrave

syndex dont lrsquoappel est automatique lors de geacuteneacuteration drsquoexeacutecutifMPC555

bull DAC (Digital to Analog Converter)

macro permet lrsquoutilisation du convertisseur de carte robosoft via lemodule MIOs en utilisant les pins de 0 agrave 2

bull LED (on-bord LED interface)

macro permet la gestion de la LED de la carte robosoft connecteacuteeau module QSPI (pin PCS1)

bull SPI absolute encoder

macro permet lrsquoutilisation lrsquointerface du codeur absolu de la carterobosoft connecteacute au module QSPI

Equipe Systegraveme Robotiseacute de ProductionMacros Speacutec ques Ro oso tbull Motor amplifier direction

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5579

S y nd

e x

V5

Motor amplifier directionmacro qui permet de geacuterer la direction des moteurs

bull Motor power amplifier validationles moteurs embarqueacutes sur les robots sont eacutequipeacutes de freins

eacutelectriquement commandable Ce macro permet drsquoenvoyer unsignal drsquoinhibition pour deacutebloquer les freins

bull Watch dog

pour des raisons de seacutecuriteacute un meacutecanisme mateacuteriel que robosofta ajouteacute sur la carte Ce watch-dog vise agrave stopper lrsquoactiviteacute dumoteur en cas ougrave le programme plante Le watch est impleacutementeacute

comme un time-out mateacuteriel Srsquoil nrsquoest pas rafraicircchi peacuteriodiquement il transmet un signal de sortie ce qui enlegraveve lavalidation de lrsquoamplificateur de puissance donc lrsquoarrecirct dumouvement

ces macros se trouvent dans le fichier RSBm4x

Equipe Systegraveme Robotiseacute de Production

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5679

S y nd

e x

V5

Macros de Communicationchaque meacutedia de communication (bus CAN ) est une ressourceseacutequentielle ougrave les transferts de donneacutees entre processeurs doiventsuivre un certain ordre Donc ce macro de communication sert agravedeacutefinir cet ordre et agrave identifier le protocole de communication lecodagedeacutecodage de lrsquoinformation et la synchronisation

on trouve ces macros dans le fichier CANm4x

Macros drsquoapplicationce genre de macros sont speacutecifique au mateacuteriel en question et aussiagrave lrsquoapplication en particulier Ce sont des macros utilisateurs

on trouve ces macros dans le fichier Application_namem4x

Equipe Systegraveme Robotiseacute de Production

section include (pour inclure drsquoautres fichiers macro agrave utiliseStructure du fichier macr

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5779

S y nd

e x

V5

section define (pour tous les macros utilisateurs)MGC lsquoINITrsquo (MGC Macro Generation Context variable)

divert (declaration) (deacutebut du macro)

(deacuteclaration des variables des meacutemoires et des csts

divert (o)

MGC lsquolooprsquocode en assembleur code en C

dnl (commentaires)

MGC lsquoENDrsquo dnl (fin de la macros)divert lsquo lsquo dnl

macros MPC555meacutemoire MPC555

constante MPC555

macros RTAImeacutemoire RTAI

constante RTAI

Equipe Systegraveme Robotiseacute de Production Plan

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5879

S y nd

e x

V5

bull Introduction

bull Meacutethodologie AAA

bull Installationbull Utilisation du logiciel Syndex

bull Macrosbull LinuxIO un interface CC++ avec SynDEx

bull Exemple drsquoapplication Robuter-ULM

Equipe Systegraveme Robotiseacute de Production

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5979

S y nd

e x

V5

LinuxIO LinuxIO une interface une interface

CC++ avecCC++ avec SynDExSynDEx

bull Principe de basebull Utilisation de linuxIO_ par syndex

bull Utilisation de linuxIO_ par un programmeCC++

Equipe Systegraveme Robotiseacute de ProductionPrincipe de baseSyndex fourni une interface graphique pour la conception

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6079

S y nd

e x

V5

Syndex fourni une interface graphique pour la conception

drsquoapplications Par contre des fois nous avons besoin drsquoautresfonctionnaliteacutes non disponibles donc il faut les creacuteer Cependantgeacuteneacuterer des macros pour syndex srsquoavegravere difficile pour certains du

fait qursquoil faut avoir une bonne connaissance de la programmation bas niveau Dans ce cas lrsquoutilisation de linux_IO trouve sa placedans un contexte particulier interfacer des applications CC++utilisateurs avec des applications embarqueacutees temps reacuteeldeacuteveloppeacutees sous syndex

Par rapport agrave ce contexte de programmation lrsquoorganisation du

deacuteveloppement des applications est structureacutee en deux parties 1 Application haut niveau

2 Application bas niveau

Equipe Systegraveme Robotiseacute de ProductionPrincipe de base

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6179

S y nd

e x

V5

En reacutesumeacute lrsquoapplicationutilisateur contient une

partie haut niveau enCC++ et une partie basniveau sous syndex avecun eacutechange de donneacuteesentre les deux partie en

utilisant la couche RTAIde linux

Equipe Systegraveme Robotiseacute de Production pp cat on aut n veauOn entend application haut

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6279

S y nd

e x

V5

niveau tout programmecomme la planification detrajectoires strateacutegies de

navigation etc hellipLrsquoeacutechange de donneacutees sefait par le biais desmeacutemoires partageacutees quifont parti du noyau RTAI

et de lrsquoespace utilisateursde Linux

Toute ressource preacutesente sur la carte Robosoft peutecirctre partageacutee sans aune restriction

Equipe Systegraveme Robotiseacute de Production pp cat on as n veauUne application bas niveau

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6379

S y nd

e x

V5

Une application bas niveau

est un programme conccedilusous syndex comme lacommande des moteurs la

lecture des capteurs etc hellipLes ressources mateacuteriellessont controcircler par plusieurs

cartes MPC555 Ces cartessrsquoeacutechangent des donneacuteesvia le bus CAN Donc ES

est prise en charge par lasource logicielle deacutedieacutee quisrsquoexeacutecute dans les cartes MPC555 puis la couche RTAI

est utiliseacute pour la mise agrave jour de meacutemoires partageacutees pour lrsquoespace utilisateurs linux drsquoeacutechange de donneacutees

Equipe Systegraveme Robotiseacute de ProductionUtilisation de linux_IO par syndex

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6479

S y nd

e x

V5

Equipe Systegraveme Robotiseacute de ProductionUtilisation de linux_IO par syndex

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6579

S y nd

e x

V5

Equipe Systegraveme Robotiseacute de Production

5

Utilisation de linux_IO par syndex

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6679

S y nd

e x

V5

Degraves que la conception de lrsquoapplication sous syndex esttermineacutee et apregraves compilation (AdequationDo it +GenExec) un fichier drsquoentecircte sous le nom de linioh est

automatiquement geacuteneacutereacute Ce fichier contient lesinformations neacutecessaires pour acceacuteder aux entreacutees enlecture et aux sorties en eacutecriture des opeacuterations linuxIO_

inseacutereacutees dans le graphe drsquoalgorithme Le contenu de cefichier est organiseacute en plusieurs parties une pour chaqueopeacuteration linux_IO preacutesente dans le graphe

Equipe Systegraveme Robotiseacute de Production

5

Utilisation de linux_IO par syndex linioh auto-generated C users API frontend

C i h b f 2001 i i i b f f

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6779

S y nd

e x

V5 Copyright Robosoft 2001 Pierre Pomiers ltpierrerobosoftfrgt

LINUX IO shared memory data segments

define SEG0_BASE 0x10000typedef struct

int js_spd_o0

int js_str_o0

int enc_R_o0int enc_L_o0

double odo_X_o0

double odo_Y_o0

double odo_T_o0int spd_R_o0

int spd_L_o0

int time

unsigned char sem shm_seg0_def

Nom du segment de meacutemoire partageacutee pour notre opeacuteration linuxIO_

7 signaux drsquoentreacutees Ces valeurs sonten lecture et sont peacuteriodiquementrafraicircchies par RTAI

2 signaux de sorties Ces valeurs sonten eacutecriture et sont peacuteriodiquementrafraicircchies par RTAI

Equipe Systegraveme Robotiseacute de Production

5

Crsquoest une eacutetape tregraves facile il suffit drsquoinclure le fichier drsquoentecirctelinio h dans le code du fichier en CC++ comme suit

Utilisation de linuxIO_ par un programme CC+

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6879

S y nd

e x

V5 linioh dans le code du fichier en CC++ comme suit

include linioh

include ltrtai_shmhgt

static shm_seg0_def seg0

shm_seg0_def robot

seg0 = rtai_malloc (SEG0_BASE sizeof (shm_seg0_def))

if (seg0-gtsem = 0) bcopy (seg0 amprobot sizeof (shm_seg0_def))helliphelliphellip

helliphelliphellip bcopy (amprobot seg0 sizeof (shm_seg0_def))helliphelliphelliphelliphelliphellip

rtai_free (SEG0_BASE seg0)

fichier drsquoentecircte de la meacutemoire partageacutee fourni dans la couche RTAI de linux

Initialisation du segment SEG0_BASE Allocation de lameacutemoire pointeacutee

par seg0

Lecture des donneacutees provenant du bas

niveau

Mise agrave jours du segment de meacutemoire partageacutee

Libeacuterer le segment de meacutemoire alloueacute

Equipe Systegraveme Robotiseacute de Production

5

Plan

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6979

S y nd e x

V5

bull Introductionbull Meacutethodologie AAA

bull Installationbull Utilisation du logiciel Syndex

bull Macrosbull LinuxIO un interface CC++ avec SynDEx

bull Exemple drsquoapplication Robuter-ULM

Equipe Systegraveme Robotiseacute de Production

V5

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7079

S y nd e x

V5

Exemple dapplication Exemple dapplication Robuter Robuter--ULM ULM

Equipe Systegraveme Robotiseacute de Production

V5

Description Robuter-ULMbull Base mobile (2-RM 2-RF)

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7179

S y nd e x

V

bull Bras ultra-leacuteger 6 axesbull Ceinture 24 capteurs US

bull Capteur drsquoefforts 6 axes

bull Cameacutera CCD monochromeavec carte drsquoacquisition

bull PC embarqueacute MMX 233

bull OS linux redhat 61 avecRTAI V-13

bull 3 bouton drsquoarrecirct drsquourgence

bull 4 batteries 48 VDC 4 X12V 60 Ah

bull Entreacutee Joystick

bull Liaison Ethernet sans fil

Le manipulateur mobile Robuter-ULM comprend

Equipe Systegraveme Robotiseacute de Production

V5

Base Mobilebull dimension

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7279

S y nd e x

V

1025 mm de longueur 680 mm de largueur et 44 cm de hauteurbull Poids environ 150 kg avec les batteriesbull charge jusqursquoagrave 120 kg

bull vitesse de 5cms agrave 125 msbull Moteurs 2 X 300 W DC 48 VDCbull orientation par diffeacuterence de vitesse

bull Preacutecision Position par encodeurs optiquesbull Deux roues motrices diffeacuterentielles et de deux roues follesbull Drsquoune ceinture de 24 capteurs Ultrasons

bull Une carte MPC555 de Robosoft pour le controcircle des deuxmoteurs DC des 2 rouesbull Un systegraveme drsquoodomeacutetrie qui donne la position relative du robot

par rapport agrave son repegravere

Equipe Systegraveme Robotiseacute de Production

V5

bull dimension Faute de documentation

Bras U tra- eacuteger

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7379

S y nd e x

V Faute de documentation

bull Poids moins de 20 kgbull charge 2 kgbull Moteurs 6 moteurs DC

bull gripper pince eacutelectrique 2 doigtsbull Reacutepeacutetabiliteacute +- 1mmbull 3 carte MPC555 de Robosoft lrsquoune pour le capteur drsquoeffort et les

deux autres pour les 6 moteurs + moteur de la pincebull Position encodeur increacutemental

1 2 3 4 5 6Axisrange

plusmn90deg 0-90deg plusmn80deg plusmn100deg plusmn90deg plusmn110deg

vitesse 180degs 180degs 180degs 180degs 180degs 180degs

Equipe Systegraveme Robotiseacute de Production

V5

rc tecture ar ware

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7479

S y nd e x

V

Equipe Systegraveme Robotiseacute de Production

V5

Pro eacutemat quePlusieurs applications peuvent ecirctre impleacutementeacutees sur le robot

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7579

S y nd e x

V

Cependant il faut faire la diffeacuterence entre les applications quidemande lrsquoutilisation de syndex et les applications qui neneacutecessite qursquoune programmation en CC++ Agrave titre drsquoexemple

bull Localisationbull Commande en position

bull Commande en forcebull Navigation

bull Geacuteneacuteration de trajectoire

bull Vision

Equipe Systegraveme Robotiseacute de Production

V5 bull Pince eacutelectrique (TOR)

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7679

S y nd e x

Vq ( )

bull Pince possegravede des ES Logiques

Notre application consiste agrave

bull Recevoir lrsquoeacutetat de la pince (fermeacutee ouverte )

bull Envoyer une commande vers la pince

Capture

drsquoinformation

Open

Close

CommandeMeacutemoire

Partageacutee

Actionneur

Pince Prise de deacutecision Pince

Equipe Systegraveme Robotiseacute de Production

V5

Sc eacutema eacute ectr que

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7779

S y nd e x

Equipe Systegraveme Robotiseacute de Production

V5

Conclusion

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7879

S y nd e x bull Introduction

bull Meacutethodologie AAA

bull Installationbull Utilisation du logiciel Syndex

bull Macrosbull LinuxIO un interface CC++ avec SynDEx

bull Exemple drsquoapplication Robuter-ULM

Equipe Systegraveme Robotiseacute de Production

V5

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7979

S y nd e x

Questions

Page 14: Cours Syndex

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 1479

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

ladeacutequation consiste a mettre en correspondance de

maniegravere efficace lalgorithme et larchitecture pour reacutealiserune impleacutementation optimiseacutee

Adeacutequation

Instruction 1Instruction 2

hellip

hellip

Instruction N

Algorithme

Processeur Seacutequenceur

Architecture MonoprocesseurMeacutedia

Proc 1Seacuteq 1

Proc 2

Seacuteq 2Proc M

Seacuteq M

Architecture Multiprocesseurs

Inst 1

Inst 2

hellip

Inst N

Algorithme

Inst 1

Inst 2

hellip

Inst N

Inst 1

Inst 2

hellip

Inst N

hellip

hellip

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 1579

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Pour permettre une exploitation plus efficace du paralleacutelisme

disponible de larchitecture il faut eacutetendre lordre totaldexeacutecution des instructions du programme seacutequentielmonoprocesseur a un ordre partiel extrait par une analyse de

deacutependances de donneacutees entre instructions exhibant le paralleacutelisme potentiel de lalgorithme et permettant unedistribution et un ordonnancement

bull la distribution consiste agrave effectuer une Partition du graphe delrsquoalgorithme initial en autant drsquoeacuteleacutements de partition qursquoil y adrsquoopeacuterateur dans le graphe de lrsquoarchitecture

bull Lordonnancement consiste pour chaque eacuteleacutement de partition a lineacuteariser (rendre total) lordre partielcorrespondant au sous-graphe associe Cette phase estneacutecessaire car lopeacuterateur auquel on affecte un sous-graphe du

graphe de lalgorithme initial est geacutereacute par une seacutequenceurdrsquoinstruction

I leacute t ti

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 1679

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Impleacutementation

Limpleacutementation consiste a mettre en oeuvre

lalgorithme sur larchitecture cest- a-dire aallouer les ressources mateacuterielles de larchitectureaux opeacuterations de lalgorithme puis a compilercharger puis lancer lexeacutecution du programmecorrespondant sur le calculateur

Pl

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 1779

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Pla

bull Introduction

bull Meacutethodologie AAA

bull Installation

bull Utilisation du logiciel Syndex

bull Macros

bull LinuxIO un interface CC++ avec SynDEx

bull Exemple drsquoapplication Robuter-ULM

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 1879

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Installation Installation

bull Exigences mateacuteriellesbull Exigences logicielles

bull Installation de syndex V5bull Arborescence des reacutepertoires

Exigences mateacuteriels

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 1979

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Exigences mateacuteriels

bull Un PC avec un processeur de la famille Intel(80386 au minimum) ou un AMD

bull Une Carte de bus CAN (celle qui est installeacuteecrsquoest NuDACQ PCI-7841 baseacutee sur un chipPhilips SJA1000)

Ces deux speacutecifications sont suffisants pour ledeacuteveloppement drsquoune application RTAI

bull Pour les robots acquis il faut rajouter les cartes decontrocircle baseacutees sur le microcontrocircleur MPC555

Exigences logicielle

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 2079

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Exigences logiciellebull Un environnement sous Linux (quelle que soit la

distribution)bull Un module RTAI (Real-Time Applications

implementations)bull GNU gcc (outil de compilation)bull GNU binutils (outil pour assembler et eacutediter les liens

bull Le Logiciel Syndex V5bull Les macros de syndex pour

- carte de controcircle Robosoft- microcontrocircleur MPC555 de Motorola- PC sous LinuxRTAI

- Bus CAN

Installation de Syndex V

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 2179

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Installation de Syndex V

bull Creacuteation du reacutepertoire de destinationbull Copier le fichier avec la commande

cp syndex-xxx-linuxtgz rep_desbull Se mettre sous le reacutepertoire de destination puisdeacutecompresser le fichier avec la commande

tar zxvf syndex-xxx-linuxtgzCeci creacuteera sous le reacute pertoire de destination un sou

reacutepertoire de syndex contenant tout les fichiersDans le fichier syndexbat il faut mettre agrave jour lechemin du reacutepertoire de syndex

Arborescences des Reacutepertoire

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 2279

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Arborescences des Reacutepertoire

Apregraves lrsquoinstallation il est impeacuteratif drsquoorganiser lesreacutepertoires pour que lors de lrsquoeacutedition des liens le

fichier makefiles deacutepend de cette organisationLrsquoorganisation qui existe actuellement est comme

suit bull Apps applications deacuteveloppeacutees sous syndexbull Macros macros deacuteveloppeacutes pour syndex V5bull Rtai module rtai ou un lien symbolique qui point vers le reacutepertoire drsquoinstallation

Pla

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 2379

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Pla

bull Introduction

bull Meacutethodologie AAA

bull Installation

bull Utilisation du logiciel Syndex

bull Macros

bull LinuxIO un interface CC++ avec SynDEx

bull Exemple drsquoapplication Robuter-ULM

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 2479

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Utilisation du logicielUtilisation du logicielSyndexSyndex V5V5

bull Utilisation de lrsquointerface

bull Algorithme

bull Architecture

bull Caracteacuteristiques

bull Contraintes

bull Adeacutequation

bull Geacuteneacuteration du code exeacutecutif

SynDE

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 2579

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

SynDESynDEx est un logiciel graphique qui impleacutemente lameacutethodologie AAA et qui offre plusieurs fonctionnaliteacutes

bull Speacutecification drsquoun algorithme drsquoapplication saisi sousforme drsquoun graphe

bull Speacutecification drsquoun graphe drsquoarchitecture multi-composant

bull Heuristique pour la distribution et lrsquoordonnancement delrsquoalgorithme drsquoapplication sur lrsquoarchitecture avecoptimisation du temps de reacuteponse

bull Geacuteneacuteration des exeacutecutifs distribueacutes temps reacuteel

Utilisation de lrsquointerface

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 2679

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Utilisation de l interface

Utilisation de lrsquointerface

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 2779

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Utilisation de l interface

Utilisation de lrsquointerface

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 2879

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Utilisation de l interface

Algorithm

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 2979

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Algorithm

Lrsquoalgorithme est speacutecifieacute comme un graphe orienteacute ougravebull chaque sommet est une opeacuteration qui calcule les sorties

des entreacutees agrave chaque opeacuteration doit correspondre uneseacutequence drsquoinstructions compileacutee seacutepareacutement

bull Chaque arc est une deacutependance de donneacutees entre deux

opeacuterations (ou plus dans le cas de diffusion) c-a-d lasortie drsquoune opeacuteration est lrsquoentreacutee de lrsquoautre opeacuteration(ou de plusieurs autres opeacuterations) une entreacutee peut ecirctreconnecteacutee seulement agrave une sortie de mecircme type dedonneacutees

gor t m

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3079

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

gor t mon distingue 4 types de sommets

Algorithm

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3179

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Algorithmbull Le sommet function possegravede au moins une entreacutee et

une sortie crsquoest une opeacuteration agrave libre effet qui calculeses sorties uniquement agrave partir de ses entreacutees (c-a-d niagrave partir des variables globales ni agrave partir des

preacuteceacutedentes valeurs de ces entreacutees)bull Le sommet extio permet lrsquoacquisitionlrsquoeacutecriture des

entreacuteessorties on distingue trois cas

1 Capteur sans entreacutee agrave chaque reacuteaction sa sortierepreacutesente la valeur lue du capteur

2 Actionneur sans sortie agrave chaque reacuteaction ilenvoi son entreacutee agrave lrsquoactionneur

3 Linux_IO ces des meacutemoires partageacutees qui

permettent le transfert de donneacutees entre syndexet un langage eacutevolueacute

E i S egrave R b i eacute d P d i Algorithm

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3279

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Algorithm

bull Le sommet memory possegravede uniquement uneentreacutee et une sortie crsquoest une opeacuteration agrave effetunique qui met la sortie degraves la premiegravere reacuteaction

agrave une valeur initiale calculeacutee auparavant et puisla sortie de la prochaine reacuteaction nrsquoest que

lrsquoentreacutee de la preacuteceacutedente reacuteactionbull Le sommet constant ne possegravede aucune entreacutee

il calcule sa sortie une seule fois avant la premiegravere reacuteaction puis la sortie demeure la mecircme pour chaque reacuteaction

E i S tegrave R b ti eacute d P d ti Algorithm

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3379

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

AlgorithmPour lrsquoalgorithme chaque sommet est caracteacuteriseacute par

bull Son type geacuteneacuterique (function extio memory constant)bull Un nom unique (tout les sommets doivent avoir des

noms diffeacuterents)bull Son type identifiant sa seacutequence drsquoinstructionsassocieacute

bull Sa liste drsquoarguments ougrave chaque argument est speacutecifieacute par bull Le nombre drsquoentreacuteesortiebull Le type de donneacuteesbull Le nom (tout les arguments doivent avoir des noms

diffeacuterents)

Equipe Systegraveme Robotiseacute de Production Architecture

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3479

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

ArchitectureLrsquoarchitecture est speacutecifieacutee comme un graphe non orienteacute

ougrave bullChaque sommet est une ressource seacutequentielle il y adeux types de sommets

bull processeur crsquoest une ressource de calcul enmesure drsquoexeacutecuter seacutequentiellement les opeacuterationsdrsquoun algorithme il pourrait ecirctre un processeur ou

un circuit inteacutegreacute speacutecialiseacutebull meacutedia crsquoest une ressource de communicationen mesure drsquoexeacutecuter seacutequentiellement un transfertde donneacutees entre les meacutemoires des processeurs quilui sont connecteacutes

bull chaque arc est une connexion bidirectionnelle entreun processeur et un meacutedia

Equipe Systegraveme Robotiseacute de Production Architecture

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3579

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

ArchitecturePour lrsquoarchitecture chaque sommet est caracteacuteriseacute par

bull Un nom uniquebullSon type (processeur or meacutedia)bull Son type identifiant caracteacuteristiques mateacuterielles

bull Sa liste de connecteurs ougrave chaque connecteur est speacutecifieacute par bull son type identifiant le type de meacutedia agrave qui il peut ecirctreconnecteacute

bullUn nom

Equipe Systegraveme Robotiseacute de ProductionCaracteacuter st que

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3679

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Caracteacuter st que Nous distinguons deux cateacutegories de caracteacuteristiques lrsquoune relative

aux opeacuterations et lrsquoune agrave la communication 1 Comment speacutecifier les caracteacuteristiques des opeacuterations sous le menu AdequationAlOp_ArOp on obtient une boite

de dialogue avec

une liste de toutles types de

processeurs et

pour chaque processeur uneliste de tout les

types drsquoopeacuterationsqui peut lesexeacutecuter avec ladureacutee drsquoexeacutecutioncorrespondante

Equipe Systegraveme Robotiseacute de ProductionCaracteacuteristique

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3779

q p y

S y nd

e xV

5

q2 Comment speacutecifier les caracteacuteristiques de communication

sous le menu AdequationAlIO_ArIO on obtient une boitede dialogue avec une liste de tout les types de meacutedia et

pour chaque meacutedia une liste de tout les types de donneacutees

qui peut transfeacuterer avec la dureacutee de transfertcorrespondante

Equipe Systegraveme Robotiseacute de Production Contraintes

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3879

S y nd

e xV

5

Pour contraindre une opeacuteration agrave srsquoexeacutecuter sur un processeur donneacutee

1Seacutelectionner le(s) opeacuteration(s) agrave contraindre2 Seacutelectionner la commande AlgorithmSetConstraint3 Seacutelectionner le processeur qui doit exeacutecute les opeacuterationsseacutelectionneacutees

Pour enlever les contraintes seacutelectionner lrsquoopeacuteration puis exeacutecuterla commande AlgorithmDeleteConstraint

Pour voir sur quel processeur une opeacuteration est y contrainteseacutelectionner lrsquoopeacuteration puis exeacutecuter la commandeAlgorithmShowConstraint le processeur correspondant y sera

seacutelectionneacutePour voir toute les opeacuterations qui sont contraintes sur un processeurseacutelectionner le processeur puis exeacutecuter la commande

ArchitectureShowConstrained du menu les opeacuterationscorrespondantes y seront seacutelectionneacutees

Equipe Systegraveme Robotiseacute de Production A eacutequat o

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3979

S y nd

e xV

5

q

Pour construire le planificateur des opeacuterations dugraphe drsquoalgorithme sur les processeurs du graphedrsquoarchitecture qui effectue automatiquement le routage

des deacutependances de donneacutees inter-processeurs et lacreacuteation et la planification des opeacuterations decommunication sur le meacutedia du graphe drsquoarchitectureon utilise la commande AdequationDoIt

Cette commande creacutee un heuristique qui cherche agraveminimiser le chemin critique du graphe drsquoalgorithme

Equipe Systegraveme Robotiseacute de ProductionGeacuteneacuteration du code exeacutecuti

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4079

S y nd

e xV

5Le code exeacutecutif est la partie qui gegravere les ressources

mateacuterielles pour les allouer aux besoins de lrsquoalgorithmedrsquoapplication Les ressources agrave allouer sont

1 Les espaces meacutemoires des processeurs2 Le temps des seacutequences drsquoinstructions3 Le temps des meacutedia de communication

Gracircce agrave la meacutethodologie AAA et le logiciel Syndexlrsquoutilisateur est exempte drsquoeacutecrire du code pour geacuterer ces

ressources Donc par simple exeacutecution de la commandeAdequationGenExec un code distribueacute pour chaque processeur est automatiquement geacuteneacutereacute Ce code est en

fait un exeacutecutif geacuteneacutereacute sur mesure pour lrsquoalgorithme etlrsquoarchitecture

Equipe Systegraveme Robotiseacute de ProductionGeacuteneacuteration du code exeacutecuti

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4179

S y nd

e xV5

Pour chaque processeur de lrsquoarchitecture un fichier

source macro-exeacutecutif m4 avec le mecircme nom estgeacuteneacutereacute plus un macro-makefile ayant le mecircme nom quecelui de lrsquoapplication Chacun de ces fichiers doit ecirctre

transcrit par le macro-processeur GNU M4 (assembleurC) Cette transcription deacutepend de plusieurs fichiers

1 Fichier syndexm4x qui deacutefini les macrosgeacuteneacuteriques de syndex2 Fichier processorTypem4x qui deacutefini les macros

de bas niveau du processeur3 Fichier applicationNamem4x qui deacutefini les macros

speacutecifiques agrave lrsquoapplication

4 Fichier mediaTypem4x qui deacutefini les macros decommunication de bas niveau du type de media

Equipe Systegraveme Robotiseacute de ProductionCreacuteat on rsquoapp cat on

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4279

S y nd

e xV5 Arborescence des reacutepertoires Rep_travail

Applicationmacros

~rtai

Eacutevolution de lrsquoapplication

Phase 1

Edition des macros(C ou Assembleur)

+GNUmakefile

Phase 2

Edition du graphe

(Algorithme amp

Architecteure)

Phase 3

Compilation amp Exeacutecution

Equipe Systegraveme Robotiseacute de ProductionSeacutequence de compilation de Synde

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4379

S y nd

e xV5

Equipe Systegraveme Robotiseacute de Production Plan

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4479

S y nd

e xV5

bull Introduction

bull Meacutethodologie AAA

bull Installation

bull Utilisation du logiciel Syndex

bull Macros

bull LinuxIO un interface CC++ avec SynDEx

bull Exemple drsquoapplication Robuter-ULM

Equipe Systegraveme Robotiseacute de Production

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4579

S y nd

e xV5

Macros Macros

bull Deacutefinition

bull Types de macros

bull Carte Robosoft MPC555

bull Macros Geacuteneacuterique MPC555

bull Macros speacutecifique Robosoftbull Macros de Communication

bull Macros drsquoapplicationbull Structure du fichier Macro

Equipe Systegraveme Robotiseacute de Production Deacutefinition

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4679

S y nd

e xV5

Un macro-processeur est un programme qui consommeen entreacutee une chaicircne de caractegraveres (texte source) la

traite seacutequentiellement en substituant chaque sous-chaicircne qursquoil reconnaicirct (Appel de macro) par unechaicircne correspondante de substitution ( Deacutefinition de

macro) qursquoil traite agrave nouveau jusqursquoagrave ce qursquoil nrsquo y ait plus de substitution possible et qui produit en sortie lachaicircne de caractegraveres traiteacutee

Equipe Systegraveme Robotiseacute de Productionypes e macrosL diffeacute t di ti t d d

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4779

S y nd

e xV5

Les diffeacuterents macros se distinguent en deux grandes

classes bull Macros geacuteneacuteriques

en geacuteneacuteral ceux sont des macros non destineacutes agraveecirctre utiliser directement par lrsquointerface syndexmais plutocirct utiliseacutees pour la programmation

drsquoautres macros (macros MPC555)bull Macros utilisateurs

macros utiliseacutes directement par syndex ils sontspeacutecifiques agrave lrsquoapplication (macros decommunication macros speacutecifiques robosoft

macros speacutecifiques agrave lrsquoapplication)

Equipe Systegraveme Robotiseacute de ProductionCarte Robosoft MPC555La carte Robosoft MPC555 est conccedilue pour la commande de robot de veacutehicule

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4879

S y nd

e xV5

(1) Connecteur du chip MPC555(2) Alimentation continue(3) Interface BDM (Basic Debug Interface)(4) Entreacute Analogique (Joystickhellip)(5) EntreacuteSortie logiques(6) Ligne seacuterie Synchrone (Codeur absolu)(7) Ligne seacuterie Asynchrone (Port 0)

(8) Ligne seacuterie Asynchrone (Port 1)(9) Connecteur du bus CAN (Port 0)(10) Connecteur du bus CAN (Port 1)(11) Axe 1(13) Axe 2(14) Axe 3(15) Axe 4

La carte Robosoft MPC555 est conccedilue pour la commande de robot de veacutehiculeeacutelectrique ou toute autre machine Elle permet de commander un axe gracircce agrave

lrsquoajout drsquoune carte fille le controcircle srsquoeacutetend jusqursquoagrave 4 axesCette carte est baseacutee sur le microcontrocircleur MPC555 32-bit de MotorolaElle peut opeacuterer agrave une freacutequence

de 40 MHz Divers signauxlogique et analogique peuventecirctre utiliser pour lrsquoacquisition deet la commande de mateacuteriel Les

sorties disponibles peuvent ecirctreanalogique ou PWMOn y trouve

Equipe Systegraveme Robotiseacute de ProductionArchitecture du MPC555

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4979

S y nd

e xV5

Equipe Systegraveme Robotiseacute de Productionaract r st ques u

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5079

S y nd

e xV5

Equipe Systegraveme Robotiseacute de Productionacros n r quesbull GPIO (General-Purpose InputOutput)

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5179

S y nd

e xV5

GPIO (General Purpose InputOutput)ce macro utilise le module USIU qui lui fourni 64 pins pour desentreacuteessorties numeacuteriques ordinaires (IO de la carte Robosoft lirelrsquoeacutetat de la pince envoi de commande agrave la pince lire les alarmes)

bull QADC (Queued Analog to Digital Converter)en utilisant le module QADC ce macro permet la conversion drsquounsignal analogique en entreacutee en un signal numeacuterique multi-niveaux(lire les donneacutees du capteur drsquoeacuteffort du joystick)

bull MIOS (Modular InputOutput System)Le module MIOS fourni 16 pins drsquoES numeacuteriques Sur la carte deRobosoft tous les pins sont en sortie Les 16 pins sont reacutepartiscomme suit

utilisateurs reacuteserveacutes

les pins de 0 agrave 11 sont reacuteserveacutes car ils sont preacutevus agrave ecirctre utiliseacutes pour unmateacuteriel particulier Mais si ce mateacuteriel nrsquoest pas utiliseacute lrsquoutilisateur peut lesutiliser librement

15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

Equipe Systegraveme Robotiseacute de ProductionMacros Geacuteneacuter ques MPC55

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5279

S y nd

e xV5

bull PWM (Pulse width Modulation)utilise le module MIOS (pins de 4-7 pour la direction des moteurset de 8-11 pour la validation) pour la commande des actionneursnumeacuteriques en PWM

bull TPU (Time Processor Units)les macros lieacutes agrave ce module permettent la lecture des encodeurs

increacutementauxbull QSPI (Queued Serial Peripheral Interface)

ce module fait partie du module QSMCM et les macros lieacutes servent

agrave son initialisation pour une communication avec du mateacuterielsexternes via le bus seacuterie synchrone

Equipe Systegraveme Robotiseacute de ProductionMacros Geacuteneacuter ques MPC55

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5379

S y nd

e x

V5 bull Serial port support (Polling implementation)

le MPC555 comprend dans le module QSMCM une interface decommunication seacuterie SCI qui permet la communication avec dumateacuteriels externes via un bus seacuterie asynchrone Plusieurs macros

sont lieacutes agrave cette interface pour initialiser et eacutetablir la communicationbull Serial port support (interrupt handling implementation)

pour la mecircme interface SCI du module QSMCM pour cette

meacutethode drsquoimpleacutementation les macros lieacutes initialisent et eacutetablissentla communication en mode par interruption ce qui permet dedeacutetecter lrsquoarriveacutee des donneacutees sur le port seacuterie au lieu de le scruter

en permanence

tous ces macros on les retrouvent dans le fichier 555m4x

Equipe Systegraveme Robotiseacute de ProductionMacros Speacutec ques Ro oso tles macros suivants sont deacutedieacutes agrave la carte de Robosoft MPC555

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5479

S y nd

e x

V5

bull Initialisation de la carte Robosoftmain_ini_() macro ne doit pas ecirctre utiliser par les programmateursdu fait qursquoelle sert qursquoagrave initialiser la carte robosoft Macro interne agrave

syndex dont lrsquoappel est automatique lors de geacuteneacuteration drsquoexeacutecutifMPC555

bull DAC (Digital to Analog Converter)

macro permet lrsquoutilisation du convertisseur de carte robosoft via lemodule MIOs en utilisant les pins de 0 agrave 2

bull LED (on-bord LED interface)

macro permet la gestion de la LED de la carte robosoft connecteacuteeau module QSPI (pin PCS1)

bull SPI absolute encoder

macro permet lrsquoutilisation lrsquointerface du codeur absolu de la carterobosoft connecteacute au module QSPI

Equipe Systegraveme Robotiseacute de ProductionMacros Speacutec ques Ro oso tbull Motor amplifier direction

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5579

S y nd

e x

V5

Motor amplifier directionmacro qui permet de geacuterer la direction des moteurs

bull Motor power amplifier validationles moteurs embarqueacutes sur les robots sont eacutequipeacutes de freins

eacutelectriquement commandable Ce macro permet drsquoenvoyer unsignal drsquoinhibition pour deacutebloquer les freins

bull Watch dog

pour des raisons de seacutecuriteacute un meacutecanisme mateacuteriel que robosofta ajouteacute sur la carte Ce watch-dog vise agrave stopper lrsquoactiviteacute dumoteur en cas ougrave le programme plante Le watch est impleacutementeacute

comme un time-out mateacuteriel Srsquoil nrsquoest pas rafraicircchi peacuteriodiquement il transmet un signal de sortie ce qui enlegraveve lavalidation de lrsquoamplificateur de puissance donc lrsquoarrecirct dumouvement

ces macros se trouvent dans le fichier RSBm4x

Equipe Systegraveme Robotiseacute de Production

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5679

S y nd

e x

V5

Macros de Communicationchaque meacutedia de communication (bus CAN ) est une ressourceseacutequentielle ougrave les transferts de donneacutees entre processeurs doiventsuivre un certain ordre Donc ce macro de communication sert agravedeacutefinir cet ordre et agrave identifier le protocole de communication lecodagedeacutecodage de lrsquoinformation et la synchronisation

on trouve ces macros dans le fichier CANm4x

Macros drsquoapplicationce genre de macros sont speacutecifique au mateacuteriel en question et aussiagrave lrsquoapplication en particulier Ce sont des macros utilisateurs

on trouve ces macros dans le fichier Application_namem4x

Equipe Systegraveme Robotiseacute de Production

section include (pour inclure drsquoautres fichiers macro agrave utiliseStructure du fichier macr

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5779

S y nd

e x

V5

section define (pour tous les macros utilisateurs)MGC lsquoINITrsquo (MGC Macro Generation Context variable)

divert (declaration) (deacutebut du macro)

(deacuteclaration des variables des meacutemoires et des csts

divert (o)

MGC lsquolooprsquocode en assembleur code en C

dnl (commentaires)

MGC lsquoENDrsquo dnl (fin de la macros)divert lsquo lsquo dnl

macros MPC555meacutemoire MPC555

constante MPC555

macros RTAImeacutemoire RTAI

constante RTAI

Equipe Systegraveme Robotiseacute de Production Plan

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5879

S y nd

e x

V5

bull Introduction

bull Meacutethodologie AAA

bull Installationbull Utilisation du logiciel Syndex

bull Macrosbull LinuxIO un interface CC++ avec SynDEx

bull Exemple drsquoapplication Robuter-ULM

Equipe Systegraveme Robotiseacute de Production

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5979

S y nd

e x

V5

LinuxIO LinuxIO une interface une interface

CC++ avecCC++ avec SynDExSynDEx

bull Principe de basebull Utilisation de linuxIO_ par syndex

bull Utilisation de linuxIO_ par un programmeCC++

Equipe Systegraveme Robotiseacute de ProductionPrincipe de baseSyndex fourni une interface graphique pour la conception

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6079

S y nd

e x

V5

Syndex fourni une interface graphique pour la conception

drsquoapplications Par contre des fois nous avons besoin drsquoautresfonctionnaliteacutes non disponibles donc il faut les creacuteer Cependantgeacuteneacuterer des macros pour syndex srsquoavegravere difficile pour certains du

fait qursquoil faut avoir une bonne connaissance de la programmation bas niveau Dans ce cas lrsquoutilisation de linux_IO trouve sa placedans un contexte particulier interfacer des applications CC++utilisateurs avec des applications embarqueacutees temps reacuteeldeacuteveloppeacutees sous syndex

Par rapport agrave ce contexte de programmation lrsquoorganisation du

deacuteveloppement des applications est structureacutee en deux parties 1 Application haut niveau

2 Application bas niveau

Equipe Systegraveme Robotiseacute de ProductionPrincipe de base

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6179

S y nd

e x

V5

En reacutesumeacute lrsquoapplicationutilisateur contient une

partie haut niveau enCC++ et une partie basniveau sous syndex avecun eacutechange de donneacuteesentre les deux partie en

utilisant la couche RTAIde linux

Equipe Systegraveme Robotiseacute de Production pp cat on aut n veauOn entend application haut

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6279

S y nd

e x

V5

niveau tout programmecomme la planification detrajectoires strateacutegies de

navigation etc hellipLrsquoeacutechange de donneacutees sefait par le biais desmeacutemoires partageacutees quifont parti du noyau RTAI

et de lrsquoespace utilisateursde Linux

Toute ressource preacutesente sur la carte Robosoft peutecirctre partageacutee sans aune restriction

Equipe Systegraveme Robotiseacute de Production pp cat on as n veauUne application bas niveau

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6379

S y nd

e x

V5

Une application bas niveau

est un programme conccedilusous syndex comme lacommande des moteurs la

lecture des capteurs etc hellipLes ressources mateacuteriellessont controcircler par plusieurs

cartes MPC555 Ces cartessrsquoeacutechangent des donneacuteesvia le bus CAN Donc ES

est prise en charge par lasource logicielle deacutedieacutee quisrsquoexeacutecute dans les cartes MPC555 puis la couche RTAI

est utiliseacute pour la mise agrave jour de meacutemoires partageacutees pour lrsquoespace utilisateurs linux drsquoeacutechange de donneacutees

Equipe Systegraveme Robotiseacute de ProductionUtilisation de linux_IO par syndex

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6479

S y nd

e x

V5

Equipe Systegraveme Robotiseacute de ProductionUtilisation de linux_IO par syndex

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6579

S y nd

e x

V5

Equipe Systegraveme Robotiseacute de Production

5

Utilisation de linux_IO par syndex

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6679

S y nd

e x

V5

Degraves que la conception de lrsquoapplication sous syndex esttermineacutee et apregraves compilation (AdequationDo it +GenExec) un fichier drsquoentecircte sous le nom de linioh est

automatiquement geacuteneacutereacute Ce fichier contient lesinformations neacutecessaires pour acceacuteder aux entreacutees enlecture et aux sorties en eacutecriture des opeacuterations linuxIO_

inseacutereacutees dans le graphe drsquoalgorithme Le contenu de cefichier est organiseacute en plusieurs parties une pour chaqueopeacuteration linux_IO preacutesente dans le graphe

Equipe Systegraveme Robotiseacute de Production

5

Utilisation de linux_IO par syndex linioh auto-generated C users API frontend

C i h b f 2001 i i i b f f

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6779

S y nd

e x

V5 Copyright Robosoft 2001 Pierre Pomiers ltpierrerobosoftfrgt

LINUX IO shared memory data segments

define SEG0_BASE 0x10000typedef struct

int js_spd_o0

int js_str_o0

int enc_R_o0int enc_L_o0

double odo_X_o0

double odo_Y_o0

double odo_T_o0int spd_R_o0

int spd_L_o0

int time

unsigned char sem shm_seg0_def

Nom du segment de meacutemoire partageacutee pour notre opeacuteration linuxIO_

7 signaux drsquoentreacutees Ces valeurs sonten lecture et sont peacuteriodiquementrafraicircchies par RTAI

2 signaux de sorties Ces valeurs sonten eacutecriture et sont peacuteriodiquementrafraicircchies par RTAI

Equipe Systegraveme Robotiseacute de Production

5

Crsquoest une eacutetape tregraves facile il suffit drsquoinclure le fichier drsquoentecirctelinio h dans le code du fichier en CC++ comme suit

Utilisation de linuxIO_ par un programme CC+

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6879

S y nd

e x

V5 linioh dans le code du fichier en CC++ comme suit

include linioh

include ltrtai_shmhgt

static shm_seg0_def seg0

shm_seg0_def robot

seg0 = rtai_malloc (SEG0_BASE sizeof (shm_seg0_def))

if (seg0-gtsem = 0) bcopy (seg0 amprobot sizeof (shm_seg0_def))helliphelliphellip

helliphelliphellip bcopy (amprobot seg0 sizeof (shm_seg0_def))helliphelliphelliphelliphelliphellip

rtai_free (SEG0_BASE seg0)

fichier drsquoentecircte de la meacutemoire partageacutee fourni dans la couche RTAI de linux

Initialisation du segment SEG0_BASE Allocation de lameacutemoire pointeacutee

par seg0

Lecture des donneacutees provenant du bas

niveau

Mise agrave jours du segment de meacutemoire partageacutee

Libeacuterer le segment de meacutemoire alloueacute

Equipe Systegraveme Robotiseacute de Production

5

Plan

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6979

S y nd e x

V5

bull Introductionbull Meacutethodologie AAA

bull Installationbull Utilisation du logiciel Syndex

bull Macrosbull LinuxIO un interface CC++ avec SynDEx

bull Exemple drsquoapplication Robuter-ULM

Equipe Systegraveme Robotiseacute de Production

V5

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7079

S y nd e x

V5

Exemple dapplication Exemple dapplication Robuter Robuter--ULM ULM

Equipe Systegraveme Robotiseacute de Production

V5

Description Robuter-ULMbull Base mobile (2-RM 2-RF)

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7179

S y nd e x

V

bull Bras ultra-leacuteger 6 axesbull Ceinture 24 capteurs US

bull Capteur drsquoefforts 6 axes

bull Cameacutera CCD monochromeavec carte drsquoacquisition

bull PC embarqueacute MMX 233

bull OS linux redhat 61 avecRTAI V-13

bull 3 bouton drsquoarrecirct drsquourgence

bull 4 batteries 48 VDC 4 X12V 60 Ah

bull Entreacutee Joystick

bull Liaison Ethernet sans fil

Le manipulateur mobile Robuter-ULM comprend

Equipe Systegraveme Robotiseacute de Production

V5

Base Mobilebull dimension

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7279

S y nd e x

V

1025 mm de longueur 680 mm de largueur et 44 cm de hauteurbull Poids environ 150 kg avec les batteriesbull charge jusqursquoagrave 120 kg

bull vitesse de 5cms agrave 125 msbull Moteurs 2 X 300 W DC 48 VDCbull orientation par diffeacuterence de vitesse

bull Preacutecision Position par encodeurs optiquesbull Deux roues motrices diffeacuterentielles et de deux roues follesbull Drsquoune ceinture de 24 capteurs Ultrasons

bull Une carte MPC555 de Robosoft pour le controcircle des deuxmoteurs DC des 2 rouesbull Un systegraveme drsquoodomeacutetrie qui donne la position relative du robot

par rapport agrave son repegravere

Equipe Systegraveme Robotiseacute de Production

V5

bull dimension Faute de documentation

Bras U tra- eacuteger

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7379

S y nd e x

V Faute de documentation

bull Poids moins de 20 kgbull charge 2 kgbull Moteurs 6 moteurs DC

bull gripper pince eacutelectrique 2 doigtsbull Reacutepeacutetabiliteacute +- 1mmbull 3 carte MPC555 de Robosoft lrsquoune pour le capteur drsquoeffort et les

deux autres pour les 6 moteurs + moteur de la pincebull Position encodeur increacutemental

1 2 3 4 5 6Axisrange

plusmn90deg 0-90deg plusmn80deg plusmn100deg plusmn90deg plusmn110deg

vitesse 180degs 180degs 180degs 180degs 180degs 180degs

Equipe Systegraveme Robotiseacute de Production

V5

rc tecture ar ware

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7479

S y nd e x

V

Equipe Systegraveme Robotiseacute de Production

V5

Pro eacutemat quePlusieurs applications peuvent ecirctre impleacutementeacutees sur le robot

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7579

S y nd e x

V

Cependant il faut faire la diffeacuterence entre les applications quidemande lrsquoutilisation de syndex et les applications qui neneacutecessite qursquoune programmation en CC++ Agrave titre drsquoexemple

bull Localisationbull Commande en position

bull Commande en forcebull Navigation

bull Geacuteneacuteration de trajectoire

bull Vision

Equipe Systegraveme Robotiseacute de Production

V5 bull Pince eacutelectrique (TOR)

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7679

S y nd e x

Vq ( )

bull Pince possegravede des ES Logiques

Notre application consiste agrave

bull Recevoir lrsquoeacutetat de la pince (fermeacutee ouverte )

bull Envoyer une commande vers la pince

Capture

drsquoinformation

Open

Close

CommandeMeacutemoire

Partageacutee

Actionneur

Pince Prise de deacutecision Pince

Equipe Systegraveme Robotiseacute de Production

V5

Sc eacutema eacute ectr que

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7779

S y nd e x

Equipe Systegraveme Robotiseacute de Production

V5

Conclusion

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7879

S y nd e x bull Introduction

bull Meacutethodologie AAA

bull Installationbull Utilisation du logiciel Syndex

bull Macrosbull LinuxIO un interface CC++ avec SynDEx

bull Exemple drsquoapplication Robuter-ULM

Equipe Systegraveme Robotiseacute de Production

V5

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7979

S y nd e x

Questions

Page 15: Cours Syndex

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 1579

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Pour permettre une exploitation plus efficace du paralleacutelisme

disponible de larchitecture il faut eacutetendre lordre totaldexeacutecution des instructions du programme seacutequentielmonoprocesseur a un ordre partiel extrait par une analyse de

deacutependances de donneacutees entre instructions exhibant le paralleacutelisme potentiel de lalgorithme et permettant unedistribution et un ordonnancement

bull la distribution consiste agrave effectuer une Partition du graphe delrsquoalgorithme initial en autant drsquoeacuteleacutements de partition qursquoil y adrsquoopeacuterateur dans le graphe de lrsquoarchitecture

bull Lordonnancement consiste pour chaque eacuteleacutement de partition a lineacuteariser (rendre total) lordre partielcorrespondant au sous-graphe associe Cette phase estneacutecessaire car lopeacuterateur auquel on affecte un sous-graphe du

graphe de lalgorithme initial est geacutereacute par une seacutequenceurdrsquoinstruction

I leacute t ti

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 1679

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Impleacutementation

Limpleacutementation consiste a mettre en oeuvre

lalgorithme sur larchitecture cest- a-dire aallouer les ressources mateacuterielles de larchitectureaux opeacuterations de lalgorithme puis a compilercharger puis lancer lexeacutecution du programmecorrespondant sur le calculateur

Pl

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 1779

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Pla

bull Introduction

bull Meacutethodologie AAA

bull Installation

bull Utilisation du logiciel Syndex

bull Macros

bull LinuxIO un interface CC++ avec SynDEx

bull Exemple drsquoapplication Robuter-ULM

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 1879

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Installation Installation

bull Exigences mateacuteriellesbull Exigences logicielles

bull Installation de syndex V5bull Arborescence des reacutepertoires

Exigences mateacuteriels

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 1979

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Exigences mateacuteriels

bull Un PC avec un processeur de la famille Intel(80386 au minimum) ou un AMD

bull Une Carte de bus CAN (celle qui est installeacuteecrsquoest NuDACQ PCI-7841 baseacutee sur un chipPhilips SJA1000)

Ces deux speacutecifications sont suffisants pour ledeacuteveloppement drsquoune application RTAI

bull Pour les robots acquis il faut rajouter les cartes decontrocircle baseacutees sur le microcontrocircleur MPC555

Exigences logicielle

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 2079

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Exigences logiciellebull Un environnement sous Linux (quelle que soit la

distribution)bull Un module RTAI (Real-Time Applications

implementations)bull GNU gcc (outil de compilation)bull GNU binutils (outil pour assembler et eacutediter les liens

bull Le Logiciel Syndex V5bull Les macros de syndex pour

- carte de controcircle Robosoft- microcontrocircleur MPC555 de Motorola- PC sous LinuxRTAI

- Bus CAN

Installation de Syndex V

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 2179

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Installation de Syndex V

bull Creacuteation du reacutepertoire de destinationbull Copier le fichier avec la commande

cp syndex-xxx-linuxtgz rep_desbull Se mettre sous le reacutepertoire de destination puisdeacutecompresser le fichier avec la commande

tar zxvf syndex-xxx-linuxtgzCeci creacuteera sous le reacute pertoire de destination un sou

reacutepertoire de syndex contenant tout les fichiersDans le fichier syndexbat il faut mettre agrave jour lechemin du reacutepertoire de syndex

Arborescences des Reacutepertoire

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 2279

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Arborescences des Reacutepertoire

Apregraves lrsquoinstallation il est impeacuteratif drsquoorganiser lesreacutepertoires pour que lors de lrsquoeacutedition des liens le

fichier makefiles deacutepend de cette organisationLrsquoorganisation qui existe actuellement est comme

suit bull Apps applications deacuteveloppeacutees sous syndexbull Macros macros deacuteveloppeacutes pour syndex V5bull Rtai module rtai ou un lien symbolique qui point vers le reacutepertoire drsquoinstallation

Pla

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 2379

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Pla

bull Introduction

bull Meacutethodologie AAA

bull Installation

bull Utilisation du logiciel Syndex

bull Macros

bull LinuxIO un interface CC++ avec SynDEx

bull Exemple drsquoapplication Robuter-ULM

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 2479

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Utilisation du logicielUtilisation du logicielSyndexSyndex V5V5

bull Utilisation de lrsquointerface

bull Algorithme

bull Architecture

bull Caracteacuteristiques

bull Contraintes

bull Adeacutequation

bull Geacuteneacuteration du code exeacutecutif

SynDE

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 2579

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

SynDESynDEx est un logiciel graphique qui impleacutemente lameacutethodologie AAA et qui offre plusieurs fonctionnaliteacutes

bull Speacutecification drsquoun algorithme drsquoapplication saisi sousforme drsquoun graphe

bull Speacutecification drsquoun graphe drsquoarchitecture multi-composant

bull Heuristique pour la distribution et lrsquoordonnancement delrsquoalgorithme drsquoapplication sur lrsquoarchitecture avecoptimisation du temps de reacuteponse

bull Geacuteneacuteration des exeacutecutifs distribueacutes temps reacuteel

Utilisation de lrsquointerface

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 2679

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Utilisation de l interface

Utilisation de lrsquointerface

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 2779

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Utilisation de l interface

Utilisation de lrsquointerface

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 2879

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Utilisation de l interface

Algorithm

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 2979

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Algorithm

Lrsquoalgorithme est speacutecifieacute comme un graphe orienteacute ougravebull chaque sommet est une opeacuteration qui calcule les sorties

des entreacutees agrave chaque opeacuteration doit correspondre uneseacutequence drsquoinstructions compileacutee seacutepareacutement

bull Chaque arc est une deacutependance de donneacutees entre deux

opeacuterations (ou plus dans le cas de diffusion) c-a-d lasortie drsquoune opeacuteration est lrsquoentreacutee de lrsquoautre opeacuteration(ou de plusieurs autres opeacuterations) une entreacutee peut ecirctreconnecteacutee seulement agrave une sortie de mecircme type dedonneacutees

gor t m

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3079

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

gor t mon distingue 4 types de sommets

Algorithm

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3179

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Algorithmbull Le sommet function possegravede au moins une entreacutee et

une sortie crsquoest une opeacuteration agrave libre effet qui calculeses sorties uniquement agrave partir de ses entreacutees (c-a-d niagrave partir des variables globales ni agrave partir des

preacuteceacutedentes valeurs de ces entreacutees)bull Le sommet extio permet lrsquoacquisitionlrsquoeacutecriture des

entreacuteessorties on distingue trois cas

1 Capteur sans entreacutee agrave chaque reacuteaction sa sortierepreacutesente la valeur lue du capteur

2 Actionneur sans sortie agrave chaque reacuteaction ilenvoi son entreacutee agrave lrsquoactionneur

3 Linux_IO ces des meacutemoires partageacutees qui

permettent le transfert de donneacutees entre syndexet un langage eacutevolueacute

E i S egrave R b i eacute d P d i Algorithm

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3279

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Algorithm

bull Le sommet memory possegravede uniquement uneentreacutee et une sortie crsquoest une opeacuteration agrave effetunique qui met la sortie degraves la premiegravere reacuteaction

agrave une valeur initiale calculeacutee auparavant et puisla sortie de la prochaine reacuteaction nrsquoest que

lrsquoentreacutee de la preacuteceacutedente reacuteactionbull Le sommet constant ne possegravede aucune entreacutee

il calcule sa sortie une seule fois avant la premiegravere reacuteaction puis la sortie demeure la mecircme pour chaque reacuteaction

E i S tegrave R b ti eacute d P d ti Algorithm

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3379

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

AlgorithmPour lrsquoalgorithme chaque sommet est caracteacuteriseacute par

bull Son type geacuteneacuterique (function extio memory constant)bull Un nom unique (tout les sommets doivent avoir des

noms diffeacuterents)bull Son type identifiant sa seacutequence drsquoinstructionsassocieacute

bull Sa liste drsquoarguments ougrave chaque argument est speacutecifieacute par bull Le nombre drsquoentreacuteesortiebull Le type de donneacuteesbull Le nom (tout les arguments doivent avoir des noms

diffeacuterents)

Equipe Systegraveme Robotiseacute de Production Architecture

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3479

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

ArchitectureLrsquoarchitecture est speacutecifieacutee comme un graphe non orienteacute

ougrave bullChaque sommet est une ressource seacutequentielle il y adeux types de sommets

bull processeur crsquoest une ressource de calcul enmesure drsquoexeacutecuter seacutequentiellement les opeacuterationsdrsquoun algorithme il pourrait ecirctre un processeur ou

un circuit inteacutegreacute speacutecialiseacutebull meacutedia crsquoest une ressource de communicationen mesure drsquoexeacutecuter seacutequentiellement un transfertde donneacutees entre les meacutemoires des processeurs quilui sont connecteacutes

bull chaque arc est une connexion bidirectionnelle entreun processeur et un meacutedia

Equipe Systegraveme Robotiseacute de Production Architecture

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3579

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

ArchitecturePour lrsquoarchitecture chaque sommet est caracteacuteriseacute par

bull Un nom uniquebullSon type (processeur or meacutedia)bull Son type identifiant caracteacuteristiques mateacuterielles

bull Sa liste de connecteurs ougrave chaque connecteur est speacutecifieacute par bull son type identifiant le type de meacutedia agrave qui il peut ecirctreconnecteacute

bullUn nom

Equipe Systegraveme Robotiseacute de ProductionCaracteacuter st que

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3679

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Caracteacuter st que Nous distinguons deux cateacutegories de caracteacuteristiques lrsquoune relative

aux opeacuterations et lrsquoune agrave la communication 1 Comment speacutecifier les caracteacuteristiques des opeacuterations sous le menu AdequationAlOp_ArOp on obtient une boite

de dialogue avec

une liste de toutles types de

processeurs et

pour chaque processeur uneliste de tout les

types drsquoopeacuterationsqui peut lesexeacutecuter avec ladureacutee drsquoexeacutecutioncorrespondante

Equipe Systegraveme Robotiseacute de ProductionCaracteacuteristique

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3779

q p y

S y nd

e xV

5

q2 Comment speacutecifier les caracteacuteristiques de communication

sous le menu AdequationAlIO_ArIO on obtient une boitede dialogue avec une liste de tout les types de meacutedia et

pour chaque meacutedia une liste de tout les types de donneacutees

qui peut transfeacuterer avec la dureacutee de transfertcorrespondante

Equipe Systegraveme Robotiseacute de Production Contraintes

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3879

S y nd

e xV

5

Pour contraindre une opeacuteration agrave srsquoexeacutecuter sur un processeur donneacutee

1Seacutelectionner le(s) opeacuteration(s) agrave contraindre2 Seacutelectionner la commande AlgorithmSetConstraint3 Seacutelectionner le processeur qui doit exeacutecute les opeacuterationsseacutelectionneacutees

Pour enlever les contraintes seacutelectionner lrsquoopeacuteration puis exeacutecuterla commande AlgorithmDeleteConstraint

Pour voir sur quel processeur une opeacuteration est y contrainteseacutelectionner lrsquoopeacuteration puis exeacutecuter la commandeAlgorithmShowConstraint le processeur correspondant y sera

seacutelectionneacutePour voir toute les opeacuterations qui sont contraintes sur un processeurseacutelectionner le processeur puis exeacutecuter la commande

ArchitectureShowConstrained du menu les opeacuterationscorrespondantes y seront seacutelectionneacutees

Equipe Systegraveme Robotiseacute de Production A eacutequat o

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3979

S y nd

e xV

5

q

Pour construire le planificateur des opeacuterations dugraphe drsquoalgorithme sur les processeurs du graphedrsquoarchitecture qui effectue automatiquement le routage

des deacutependances de donneacutees inter-processeurs et lacreacuteation et la planification des opeacuterations decommunication sur le meacutedia du graphe drsquoarchitectureon utilise la commande AdequationDoIt

Cette commande creacutee un heuristique qui cherche agraveminimiser le chemin critique du graphe drsquoalgorithme

Equipe Systegraveme Robotiseacute de ProductionGeacuteneacuteration du code exeacutecuti

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4079

S y nd

e xV

5Le code exeacutecutif est la partie qui gegravere les ressources

mateacuterielles pour les allouer aux besoins de lrsquoalgorithmedrsquoapplication Les ressources agrave allouer sont

1 Les espaces meacutemoires des processeurs2 Le temps des seacutequences drsquoinstructions3 Le temps des meacutedia de communication

Gracircce agrave la meacutethodologie AAA et le logiciel Syndexlrsquoutilisateur est exempte drsquoeacutecrire du code pour geacuterer ces

ressources Donc par simple exeacutecution de la commandeAdequationGenExec un code distribueacute pour chaque processeur est automatiquement geacuteneacutereacute Ce code est en

fait un exeacutecutif geacuteneacutereacute sur mesure pour lrsquoalgorithme etlrsquoarchitecture

Equipe Systegraveme Robotiseacute de ProductionGeacuteneacuteration du code exeacutecuti

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4179

S y nd

e xV5

Pour chaque processeur de lrsquoarchitecture un fichier

source macro-exeacutecutif m4 avec le mecircme nom estgeacuteneacutereacute plus un macro-makefile ayant le mecircme nom quecelui de lrsquoapplication Chacun de ces fichiers doit ecirctre

transcrit par le macro-processeur GNU M4 (assembleurC) Cette transcription deacutepend de plusieurs fichiers

1 Fichier syndexm4x qui deacutefini les macrosgeacuteneacuteriques de syndex2 Fichier processorTypem4x qui deacutefini les macros

de bas niveau du processeur3 Fichier applicationNamem4x qui deacutefini les macros

speacutecifiques agrave lrsquoapplication

4 Fichier mediaTypem4x qui deacutefini les macros decommunication de bas niveau du type de media

Equipe Systegraveme Robotiseacute de ProductionCreacuteat on rsquoapp cat on

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4279

S y nd

e xV5 Arborescence des reacutepertoires Rep_travail

Applicationmacros

~rtai

Eacutevolution de lrsquoapplication

Phase 1

Edition des macros(C ou Assembleur)

+GNUmakefile

Phase 2

Edition du graphe

(Algorithme amp

Architecteure)

Phase 3

Compilation amp Exeacutecution

Equipe Systegraveme Robotiseacute de ProductionSeacutequence de compilation de Synde

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4379

S y nd

e xV5

Equipe Systegraveme Robotiseacute de Production Plan

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4479

S y nd

e xV5

bull Introduction

bull Meacutethodologie AAA

bull Installation

bull Utilisation du logiciel Syndex

bull Macros

bull LinuxIO un interface CC++ avec SynDEx

bull Exemple drsquoapplication Robuter-ULM

Equipe Systegraveme Robotiseacute de Production

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4579

S y nd

e xV5

Macros Macros

bull Deacutefinition

bull Types de macros

bull Carte Robosoft MPC555

bull Macros Geacuteneacuterique MPC555

bull Macros speacutecifique Robosoftbull Macros de Communication

bull Macros drsquoapplicationbull Structure du fichier Macro

Equipe Systegraveme Robotiseacute de Production Deacutefinition

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4679

S y nd

e xV5

Un macro-processeur est un programme qui consommeen entreacutee une chaicircne de caractegraveres (texte source) la

traite seacutequentiellement en substituant chaque sous-chaicircne qursquoil reconnaicirct (Appel de macro) par unechaicircne correspondante de substitution ( Deacutefinition de

macro) qursquoil traite agrave nouveau jusqursquoagrave ce qursquoil nrsquo y ait plus de substitution possible et qui produit en sortie lachaicircne de caractegraveres traiteacutee

Equipe Systegraveme Robotiseacute de Productionypes e macrosL diffeacute t di ti t d d

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4779

S y nd

e xV5

Les diffeacuterents macros se distinguent en deux grandes

classes bull Macros geacuteneacuteriques

en geacuteneacuteral ceux sont des macros non destineacutes agraveecirctre utiliser directement par lrsquointerface syndexmais plutocirct utiliseacutees pour la programmation

drsquoautres macros (macros MPC555)bull Macros utilisateurs

macros utiliseacutes directement par syndex ils sontspeacutecifiques agrave lrsquoapplication (macros decommunication macros speacutecifiques robosoft

macros speacutecifiques agrave lrsquoapplication)

Equipe Systegraveme Robotiseacute de ProductionCarte Robosoft MPC555La carte Robosoft MPC555 est conccedilue pour la commande de robot de veacutehicule

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4879

S y nd

e xV5

(1) Connecteur du chip MPC555(2) Alimentation continue(3) Interface BDM (Basic Debug Interface)(4) Entreacute Analogique (Joystickhellip)(5) EntreacuteSortie logiques(6) Ligne seacuterie Synchrone (Codeur absolu)(7) Ligne seacuterie Asynchrone (Port 0)

(8) Ligne seacuterie Asynchrone (Port 1)(9) Connecteur du bus CAN (Port 0)(10) Connecteur du bus CAN (Port 1)(11) Axe 1(13) Axe 2(14) Axe 3(15) Axe 4

La carte Robosoft MPC555 est conccedilue pour la commande de robot de veacutehiculeeacutelectrique ou toute autre machine Elle permet de commander un axe gracircce agrave

lrsquoajout drsquoune carte fille le controcircle srsquoeacutetend jusqursquoagrave 4 axesCette carte est baseacutee sur le microcontrocircleur MPC555 32-bit de MotorolaElle peut opeacuterer agrave une freacutequence

de 40 MHz Divers signauxlogique et analogique peuventecirctre utiliser pour lrsquoacquisition deet la commande de mateacuteriel Les

sorties disponibles peuvent ecirctreanalogique ou PWMOn y trouve

Equipe Systegraveme Robotiseacute de ProductionArchitecture du MPC555

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4979

S y nd

e xV5

Equipe Systegraveme Robotiseacute de Productionaract r st ques u

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5079

S y nd

e xV5

Equipe Systegraveme Robotiseacute de Productionacros n r quesbull GPIO (General-Purpose InputOutput)

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5179

S y nd

e xV5

GPIO (General Purpose InputOutput)ce macro utilise le module USIU qui lui fourni 64 pins pour desentreacuteessorties numeacuteriques ordinaires (IO de la carte Robosoft lirelrsquoeacutetat de la pince envoi de commande agrave la pince lire les alarmes)

bull QADC (Queued Analog to Digital Converter)en utilisant le module QADC ce macro permet la conversion drsquounsignal analogique en entreacutee en un signal numeacuterique multi-niveaux(lire les donneacutees du capteur drsquoeacuteffort du joystick)

bull MIOS (Modular InputOutput System)Le module MIOS fourni 16 pins drsquoES numeacuteriques Sur la carte deRobosoft tous les pins sont en sortie Les 16 pins sont reacutepartiscomme suit

utilisateurs reacuteserveacutes

les pins de 0 agrave 11 sont reacuteserveacutes car ils sont preacutevus agrave ecirctre utiliseacutes pour unmateacuteriel particulier Mais si ce mateacuteriel nrsquoest pas utiliseacute lrsquoutilisateur peut lesutiliser librement

15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

Equipe Systegraveme Robotiseacute de ProductionMacros Geacuteneacuter ques MPC55

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5279

S y nd

e xV5

bull PWM (Pulse width Modulation)utilise le module MIOS (pins de 4-7 pour la direction des moteurset de 8-11 pour la validation) pour la commande des actionneursnumeacuteriques en PWM

bull TPU (Time Processor Units)les macros lieacutes agrave ce module permettent la lecture des encodeurs

increacutementauxbull QSPI (Queued Serial Peripheral Interface)

ce module fait partie du module QSMCM et les macros lieacutes servent

agrave son initialisation pour une communication avec du mateacuterielsexternes via le bus seacuterie synchrone

Equipe Systegraveme Robotiseacute de ProductionMacros Geacuteneacuter ques MPC55

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5379

S y nd

e x

V5 bull Serial port support (Polling implementation)

le MPC555 comprend dans le module QSMCM une interface decommunication seacuterie SCI qui permet la communication avec dumateacuteriels externes via un bus seacuterie asynchrone Plusieurs macros

sont lieacutes agrave cette interface pour initialiser et eacutetablir la communicationbull Serial port support (interrupt handling implementation)

pour la mecircme interface SCI du module QSMCM pour cette

meacutethode drsquoimpleacutementation les macros lieacutes initialisent et eacutetablissentla communication en mode par interruption ce qui permet dedeacutetecter lrsquoarriveacutee des donneacutees sur le port seacuterie au lieu de le scruter

en permanence

tous ces macros on les retrouvent dans le fichier 555m4x

Equipe Systegraveme Robotiseacute de ProductionMacros Speacutec ques Ro oso tles macros suivants sont deacutedieacutes agrave la carte de Robosoft MPC555

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5479

S y nd

e x

V5

bull Initialisation de la carte Robosoftmain_ini_() macro ne doit pas ecirctre utiliser par les programmateursdu fait qursquoelle sert qursquoagrave initialiser la carte robosoft Macro interne agrave

syndex dont lrsquoappel est automatique lors de geacuteneacuteration drsquoexeacutecutifMPC555

bull DAC (Digital to Analog Converter)

macro permet lrsquoutilisation du convertisseur de carte robosoft via lemodule MIOs en utilisant les pins de 0 agrave 2

bull LED (on-bord LED interface)

macro permet la gestion de la LED de la carte robosoft connecteacuteeau module QSPI (pin PCS1)

bull SPI absolute encoder

macro permet lrsquoutilisation lrsquointerface du codeur absolu de la carterobosoft connecteacute au module QSPI

Equipe Systegraveme Robotiseacute de ProductionMacros Speacutec ques Ro oso tbull Motor amplifier direction

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5579

S y nd

e x

V5

Motor amplifier directionmacro qui permet de geacuterer la direction des moteurs

bull Motor power amplifier validationles moteurs embarqueacutes sur les robots sont eacutequipeacutes de freins

eacutelectriquement commandable Ce macro permet drsquoenvoyer unsignal drsquoinhibition pour deacutebloquer les freins

bull Watch dog

pour des raisons de seacutecuriteacute un meacutecanisme mateacuteriel que robosofta ajouteacute sur la carte Ce watch-dog vise agrave stopper lrsquoactiviteacute dumoteur en cas ougrave le programme plante Le watch est impleacutementeacute

comme un time-out mateacuteriel Srsquoil nrsquoest pas rafraicircchi peacuteriodiquement il transmet un signal de sortie ce qui enlegraveve lavalidation de lrsquoamplificateur de puissance donc lrsquoarrecirct dumouvement

ces macros se trouvent dans le fichier RSBm4x

Equipe Systegraveme Robotiseacute de Production

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5679

S y nd

e x

V5

Macros de Communicationchaque meacutedia de communication (bus CAN ) est une ressourceseacutequentielle ougrave les transferts de donneacutees entre processeurs doiventsuivre un certain ordre Donc ce macro de communication sert agravedeacutefinir cet ordre et agrave identifier le protocole de communication lecodagedeacutecodage de lrsquoinformation et la synchronisation

on trouve ces macros dans le fichier CANm4x

Macros drsquoapplicationce genre de macros sont speacutecifique au mateacuteriel en question et aussiagrave lrsquoapplication en particulier Ce sont des macros utilisateurs

on trouve ces macros dans le fichier Application_namem4x

Equipe Systegraveme Robotiseacute de Production

section include (pour inclure drsquoautres fichiers macro agrave utiliseStructure du fichier macr

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5779

S y nd

e x

V5

section define (pour tous les macros utilisateurs)MGC lsquoINITrsquo (MGC Macro Generation Context variable)

divert (declaration) (deacutebut du macro)

(deacuteclaration des variables des meacutemoires et des csts

divert (o)

MGC lsquolooprsquocode en assembleur code en C

dnl (commentaires)

MGC lsquoENDrsquo dnl (fin de la macros)divert lsquo lsquo dnl

macros MPC555meacutemoire MPC555

constante MPC555

macros RTAImeacutemoire RTAI

constante RTAI

Equipe Systegraveme Robotiseacute de Production Plan

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5879

S y nd

e x

V5

bull Introduction

bull Meacutethodologie AAA

bull Installationbull Utilisation du logiciel Syndex

bull Macrosbull LinuxIO un interface CC++ avec SynDEx

bull Exemple drsquoapplication Robuter-ULM

Equipe Systegraveme Robotiseacute de Production

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5979

S y nd

e x

V5

LinuxIO LinuxIO une interface une interface

CC++ avecCC++ avec SynDExSynDEx

bull Principe de basebull Utilisation de linuxIO_ par syndex

bull Utilisation de linuxIO_ par un programmeCC++

Equipe Systegraveme Robotiseacute de ProductionPrincipe de baseSyndex fourni une interface graphique pour la conception

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6079

S y nd

e x

V5

Syndex fourni une interface graphique pour la conception

drsquoapplications Par contre des fois nous avons besoin drsquoautresfonctionnaliteacutes non disponibles donc il faut les creacuteer Cependantgeacuteneacuterer des macros pour syndex srsquoavegravere difficile pour certains du

fait qursquoil faut avoir une bonne connaissance de la programmation bas niveau Dans ce cas lrsquoutilisation de linux_IO trouve sa placedans un contexte particulier interfacer des applications CC++utilisateurs avec des applications embarqueacutees temps reacuteeldeacuteveloppeacutees sous syndex

Par rapport agrave ce contexte de programmation lrsquoorganisation du

deacuteveloppement des applications est structureacutee en deux parties 1 Application haut niveau

2 Application bas niveau

Equipe Systegraveme Robotiseacute de ProductionPrincipe de base

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6179

S y nd

e x

V5

En reacutesumeacute lrsquoapplicationutilisateur contient une

partie haut niveau enCC++ et une partie basniveau sous syndex avecun eacutechange de donneacuteesentre les deux partie en

utilisant la couche RTAIde linux

Equipe Systegraveme Robotiseacute de Production pp cat on aut n veauOn entend application haut

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6279

S y nd

e x

V5

niveau tout programmecomme la planification detrajectoires strateacutegies de

navigation etc hellipLrsquoeacutechange de donneacutees sefait par le biais desmeacutemoires partageacutees quifont parti du noyau RTAI

et de lrsquoespace utilisateursde Linux

Toute ressource preacutesente sur la carte Robosoft peutecirctre partageacutee sans aune restriction

Equipe Systegraveme Robotiseacute de Production pp cat on as n veauUne application bas niveau

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6379

S y nd

e x

V5

Une application bas niveau

est un programme conccedilusous syndex comme lacommande des moteurs la

lecture des capteurs etc hellipLes ressources mateacuteriellessont controcircler par plusieurs

cartes MPC555 Ces cartessrsquoeacutechangent des donneacuteesvia le bus CAN Donc ES

est prise en charge par lasource logicielle deacutedieacutee quisrsquoexeacutecute dans les cartes MPC555 puis la couche RTAI

est utiliseacute pour la mise agrave jour de meacutemoires partageacutees pour lrsquoespace utilisateurs linux drsquoeacutechange de donneacutees

Equipe Systegraveme Robotiseacute de ProductionUtilisation de linux_IO par syndex

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6479

S y nd

e x

V5

Equipe Systegraveme Robotiseacute de ProductionUtilisation de linux_IO par syndex

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6579

S y nd

e x

V5

Equipe Systegraveme Robotiseacute de Production

5

Utilisation de linux_IO par syndex

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6679

S y nd

e x

V5

Degraves que la conception de lrsquoapplication sous syndex esttermineacutee et apregraves compilation (AdequationDo it +GenExec) un fichier drsquoentecircte sous le nom de linioh est

automatiquement geacuteneacutereacute Ce fichier contient lesinformations neacutecessaires pour acceacuteder aux entreacutees enlecture et aux sorties en eacutecriture des opeacuterations linuxIO_

inseacutereacutees dans le graphe drsquoalgorithme Le contenu de cefichier est organiseacute en plusieurs parties une pour chaqueopeacuteration linux_IO preacutesente dans le graphe

Equipe Systegraveme Robotiseacute de Production

5

Utilisation de linux_IO par syndex linioh auto-generated C users API frontend

C i h b f 2001 i i i b f f

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6779

S y nd

e x

V5 Copyright Robosoft 2001 Pierre Pomiers ltpierrerobosoftfrgt

LINUX IO shared memory data segments

define SEG0_BASE 0x10000typedef struct

int js_spd_o0

int js_str_o0

int enc_R_o0int enc_L_o0

double odo_X_o0

double odo_Y_o0

double odo_T_o0int spd_R_o0

int spd_L_o0

int time

unsigned char sem shm_seg0_def

Nom du segment de meacutemoire partageacutee pour notre opeacuteration linuxIO_

7 signaux drsquoentreacutees Ces valeurs sonten lecture et sont peacuteriodiquementrafraicircchies par RTAI

2 signaux de sorties Ces valeurs sonten eacutecriture et sont peacuteriodiquementrafraicircchies par RTAI

Equipe Systegraveme Robotiseacute de Production

5

Crsquoest une eacutetape tregraves facile il suffit drsquoinclure le fichier drsquoentecirctelinio h dans le code du fichier en CC++ comme suit

Utilisation de linuxIO_ par un programme CC+

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6879

S y nd

e x

V5 linioh dans le code du fichier en CC++ comme suit

include linioh

include ltrtai_shmhgt

static shm_seg0_def seg0

shm_seg0_def robot

seg0 = rtai_malloc (SEG0_BASE sizeof (shm_seg0_def))

if (seg0-gtsem = 0) bcopy (seg0 amprobot sizeof (shm_seg0_def))helliphelliphellip

helliphelliphellip bcopy (amprobot seg0 sizeof (shm_seg0_def))helliphelliphelliphelliphelliphellip

rtai_free (SEG0_BASE seg0)

fichier drsquoentecircte de la meacutemoire partageacutee fourni dans la couche RTAI de linux

Initialisation du segment SEG0_BASE Allocation de lameacutemoire pointeacutee

par seg0

Lecture des donneacutees provenant du bas

niveau

Mise agrave jours du segment de meacutemoire partageacutee

Libeacuterer le segment de meacutemoire alloueacute

Equipe Systegraveme Robotiseacute de Production

5

Plan

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6979

S y nd e x

V5

bull Introductionbull Meacutethodologie AAA

bull Installationbull Utilisation du logiciel Syndex

bull Macrosbull LinuxIO un interface CC++ avec SynDEx

bull Exemple drsquoapplication Robuter-ULM

Equipe Systegraveme Robotiseacute de Production

V5

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7079

S y nd e x

V5

Exemple dapplication Exemple dapplication Robuter Robuter--ULM ULM

Equipe Systegraveme Robotiseacute de Production

V5

Description Robuter-ULMbull Base mobile (2-RM 2-RF)

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7179

S y nd e x

V

bull Bras ultra-leacuteger 6 axesbull Ceinture 24 capteurs US

bull Capteur drsquoefforts 6 axes

bull Cameacutera CCD monochromeavec carte drsquoacquisition

bull PC embarqueacute MMX 233

bull OS linux redhat 61 avecRTAI V-13

bull 3 bouton drsquoarrecirct drsquourgence

bull 4 batteries 48 VDC 4 X12V 60 Ah

bull Entreacutee Joystick

bull Liaison Ethernet sans fil

Le manipulateur mobile Robuter-ULM comprend

Equipe Systegraveme Robotiseacute de Production

V5

Base Mobilebull dimension

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7279

S y nd e x

V

1025 mm de longueur 680 mm de largueur et 44 cm de hauteurbull Poids environ 150 kg avec les batteriesbull charge jusqursquoagrave 120 kg

bull vitesse de 5cms agrave 125 msbull Moteurs 2 X 300 W DC 48 VDCbull orientation par diffeacuterence de vitesse

bull Preacutecision Position par encodeurs optiquesbull Deux roues motrices diffeacuterentielles et de deux roues follesbull Drsquoune ceinture de 24 capteurs Ultrasons

bull Une carte MPC555 de Robosoft pour le controcircle des deuxmoteurs DC des 2 rouesbull Un systegraveme drsquoodomeacutetrie qui donne la position relative du robot

par rapport agrave son repegravere

Equipe Systegraveme Robotiseacute de Production

V5

bull dimension Faute de documentation

Bras U tra- eacuteger

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7379

S y nd e x

V Faute de documentation

bull Poids moins de 20 kgbull charge 2 kgbull Moteurs 6 moteurs DC

bull gripper pince eacutelectrique 2 doigtsbull Reacutepeacutetabiliteacute +- 1mmbull 3 carte MPC555 de Robosoft lrsquoune pour le capteur drsquoeffort et les

deux autres pour les 6 moteurs + moteur de la pincebull Position encodeur increacutemental

1 2 3 4 5 6Axisrange

plusmn90deg 0-90deg plusmn80deg plusmn100deg plusmn90deg plusmn110deg

vitesse 180degs 180degs 180degs 180degs 180degs 180degs

Equipe Systegraveme Robotiseacute de Production

V5

rc tecture ar ware

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7479

S y nd e x

V

Equipe Systegraveme Robotiseacute de Production

V5

Pro eacutemat quePlusieurs applications peuvent ecirctre impleacutementeacutees sur le robot

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7579

S y nd e x

V

Cependant il faut faire la diffeacuterence entre les applications quidemande lrsquoutilisation de syndex et les applications qui neneacutecessite qursquoune programmation en CC++ Agrave titre drsquoexemple

bull Localisationbull Commande en position

bull Commande en forcebull Navigation

bull Geacuteneacuteration de trajectoire

bull Vision

Equipe Systegraveme Robotiseacute de Production

V5 bull Pince eacutelectrique (TOR)

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7679

S y nd e x

Vq ( )

bull Pince possegravede des ES Logiques

Notre application consiste agrave

bull Recevoir lrsquoeacutetat de la pince (fermeacutee ouverte )

bull Envoyer une commande vers la pince

Capture

drsquoinformation

Open

Close

CommandeMeacutemoire

Partageacutee

Actionneur

Pince Prise de deacutecision Pince

Equipe Systegraveme Robotiseacute de Production

V5

Sc eacutema eacute ectr que

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7779

S y nd e x

Equipe Systegraveme Robotiseacute de Production

V5

Conclusion

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7879

S y nd e x bull Introduction

bull Meacutethodologie AAA

bull Installationbull Utilisation du logiciel Syndex

bull Macrosbull LinuxIO un interface CC++ avec SynDEx

bull Exemple drsquoapplication Robuter-ULM

Equipe Systegraveme Robotiseacute de Production

V5

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7979

S y nd e x

Questions

Page 16: Cours Syndex

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 1679

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Impleacutementation

Limpleacutementation consiste a mettre en oeuvre

lalgorithme sur larchitecture cest- a-dire aallouer les ressources mateacuterielles de larchitectureaux opeacuterations de lalgorithme puis a compilercharger puis lancer lexeacutecution du programmecorrespondant sur le calculateur

Pl

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 1779

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Pla

bull Introduction

bull Meacutethodologie AAA

bull Installation

bull Utilisation du logiciel Syndex

bull Macros

bull LinuxIO un interface CC++ avec SynDEx

bull Exemple drsquoapplication Robuter-ULM

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 1879

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Installation Installation

bull Exigences mateacuteriellesbull Exigences logicielles

bull Installation de syndex V5bull Arborescence des reacutepertoires

Exigences mateacuteriels

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 1979

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Exigences mateacuteriels

bull Un PC avec un processeur de la famille Intel(80386 au minimum) ou un AMD

bull Une Carte de bus CAN (celle qui est installeacuteecrsquoest NuDACQ PCI-7841 baseacutee sur un chipPhilips SJA1000)

Ces deux speacutecifications sont suffisants pour ledeacuteveloppement drsquoune application RTAI

bull Pour les robots acquis il faut rajouter les cartes decontrocircle baseacutees sur le microcontrocircleur MPC555

Exigences logicielle

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 2079

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Exigences logiciellebull Un environnement sous Linux (quelle que soit la

distribution)bull Un module RTAI (Real-Time Applications

implementations)bull GNU gcc (outil de compilation)bull GNU binutils (outil pour assembler et eacutediter les liens

bull Le Logiciel Syndex V5bull Les macros de syndex pour

- carte de controcircle Robosoft- microcontrocircleur MPC555 de Motorola- PC sous LinuxRTAI

- Bus CAN

Installation de Syndex V

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 2179

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Installation de Syndex V

bull Creacuteation du reacutepertoire de destinationbull Copier le fichier avec la commande

cp syndex-xxx-linuxtgz rep_desbull Se mettre sous le reacutepertoire de destination puisdeacutecompresser le fichier avec la commande

tar zxvf syndex-xxx-linuxtgzCeci creacuteera sous le reacute pertoire de destination un sou

reacutepertoire de syndex contenant tout les fichiersDans le fichier syndexbat il faut mettre agrave jour lechemin du reacutepertoire de syndex

Arborescences des Reacutepertoire

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 2279

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Arborescences des Reacutepertoire

Apregraves lrsquoinstallation il est impeacuteratif drsquoorganiser lesreacutepertoires pour que lors de lrsquoeacutedition des liens le

fichier makefiles deacutepend de cette organisationLrsquoorganisation qui existe actuellement est comme

suit bull Apps applications deacuteveloppeacutees sous syndexbull Macros macros deacuteveloppeacutes pour syndex V5bull Rtai module rtai ou un lien symbolique qui point vers le reacutepertoire drsquoinstallation

Pla

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 2379

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Pla

bull Introduction

bull Meacutethodologie AAA

bull Installation

bull Utilisation du logiciel Syndex

bull Macros

bull LinuxIO un interface CC++ avec SynDEx

bull Exemple drsquoapplication Robuter-ULM

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 2479

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Utilisation du logicielUtilisation du logicielSyndexSyndex V5V5

bull Utilisation de lrsquointerface

bull Algorithme

bull Architecture

bull Caracteacuteristiques

bull Contraintes

bull Adeacutequation

bull Geacuteneacuteration du code exeacutecutif

SynDE

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 2579

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

SynDESynDEx est un logiciel graphique qui impleacutemente lameacutethodologie AAA et qui offre plusieurs fonctionnaliteacutes

bull Speacutecification drsquoun algorithme drsquoapplication saisi sousforme drsquoun graphe

bull Speacutecification drsquoun graphe drsquoarchitecture multi-composant

bull Heuristique pour la distribution et lrsquoordonnancement delrsquoalgorithme drsquoapplication sur lrsquoarchitecture avecoptimisation du temps de reacuteponse

bull Geacuteneacuteration des exeacutecutifs distribueacutes temps reacuteel

Utilisation de lrsquointerface

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 2679

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Utilisation de l interface

Utilisation de lrsquointerface

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 2779

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Utilisation de l interface

Utilisation de lrsquointerface

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 2879

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Utilisation de l interface

Algorithm

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 2979

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Algorithm

Lrsquoalgorithme est speacutecifieacute comme un graphe orienteacute ougravebull chaque sommet est une opeacuteration qui calcule les sorties

des entreacutees agrave chaque opeacuteration doit correspondre uneseacutequence drsquoinstructions compileacutee seacutepareacutement

bull Chaque arc est une deacutependance de donneacutees entre deux

opeacuterations (ou plus dans le cas de diffusion) c-a-d lasortie drsquoune opeacuteration est lrsquoentreacutee de lrsquoautre opeacuteration(ou de plusieurs autres opeacuterations) une entreacutee peut ecirctreconnecteacutee seulement agrave une sortie de mecircme type dedonneacutees

gor t m

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3079

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

gor t mon distingue 4 types de sommets

Algorithm

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3179

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Algorithmbull Le sommet function possegravede au moins une entreacutee et

une sortie crsquoest une opeacuteration agrave libre effet qui calculeses sorties uniquement agrave partir de ses entreacutees (c-a-d niagrave partir des variables globales ni agrave partir des

preacuteceacutedentes valeurs de ces entreacutees)bull Le sommet extio permet lrsquoacquisitionlrsquoeacutecriture des

entreacuteessorties on distingue trois cas

1 Capteur sans entreacutee agrave chaque reacuteaction sa sortierepreacutesente la valeur lue du capteur

2 Actionneur sans sortie agrave chaque reacuteaction ilenvoi son entreacutee agrave lrsquoactionneur

3 Linux_IO ces des meacutemoires partageacutees qui

permettent le transfert de donneacutees entre syndexet un langage eacutevolueacute

E i S egrave R b i eacute d P d i Algorithm

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3279

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Algorithm

bull Le sommet memory possegravede uniquement uneentreacutee et une sortie crsquoest une opeacuteration agrave effetunique qui met la sortie degraves la premiegravere reacuteaction

agrave une valeur initiale calculeacutee auparavant et puisla sortie de la prochaine reacuteaction nrsquoest que

lrsquoentreacutee de la preacuteceacutedente reacuteactionbull Le sommet constant ne possegravede aucune entreacutee

il calcule sa sortie une seule fois avant la premiegravere reacuteaction puis la sortie demeure la mecircme pour chaque reacuteaction

E i S tegrave R b ti eacute d P d ti Algorithm

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3379

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

AlgorithmPour lrsquoalgorithme chaque sommet est caracteacuteriseacute par

bull Son type geacuteneacuterique (function extio memory constant)bull Un nom unique (tout les sommets doivent avoir des

noms diffeacuterents)bull Son type identifiant sa seacutequence drsquoinstructionsassocieacute

bull Sa liste drsquoarguments ougrave chaque argument est speacutecifieacute par bull Le nombre drsquoentreacuteesortiebull Le type de donneacuteesbull Le nom (tout les arguments doivent avoir des noms

diffeacuterents)

Equipe Systegraveme Robotiseacute de Production Architecture

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3479

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

ArchitectureLrsquoarchitecture est speacutecifieacutee comme un graphe non orienteacute

ougrave bullChaque sommet est une ressource seacutequentielle il y adeux types de sommets

bull processeur crsquoest une ressource de calcul enmesure drsquoexeacutecuter seacutequentiellement les opeacuterationsdrsquoun algorithme il pourrait ecirctre un processeur ou

un circuit inteacutegreacute speacutecialiseacutebull meacutedia crsquoest une ressource de communicationen mesure drsquoexeacutecuter seacutequentiellement un transfertde donneacutees entre les meacutemoires des processeurs quilui sont connecteacutes

bull chaque arc est une connexion bidirectionnelle entreun processeur et un meacutedia

Equipe Systegraveme Robotiseacute de Production Architecture

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3579

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

ArchitecturePour lrsquoarchitecture chaque sommet est caracteacuteriseacute par

bull Un nom uniquebullSon type (processeur or meacutedia)bull Son type identifiant caracteacuteristiques mateacuterielles

bull Sa liste de connecteurs ougrave chaque connecteur est speacutecifieacute par bull son type identifiant le type de meacutedia agrave qui il peut ecirctreconnecteacute

bullUn nom

Equipe Systegraveme Robotiseacute de ProductionCaracteacuter st que

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3679

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Caracteacuter st que Nous distinguons deux cateacutegories de caracteacuteristiques lrsquoune relative

aux opeacuterations et lrsquoune agrave la communication 1 Comment speacutecifier les caracteacuteristiques des opeacuterations sous le menu AdequationAlOp_ArOp on obtient une boite

de dialogue avec

une liste de toutles types de

processeurs et

pour chaque processeur uneliste de tout les

types drsquoopeacuterationsqui peut lesexeacutecuter avec ladureacutee drsquoexeacutecutioncorrespondante

Equipe Systegraveme Robotiseacute de ProductionCaracteacuteristique

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3779

q p y

S y nd

e xV

5

q2 Comment speacutecifier les caracteacuteristiques de communication

sous le menu AdequationAlIO_ArIO on obtient une boitede dialogue avec une liste de tout les types de meacutedia et

pour chaque meacutedia une liste de tout les types de donneacutees

qui peut transfeacuterer avec la dureacutee de transfertcorrespondante

Equipe Systegraveme Robotiseacute de Production Contraintes

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3879

S y nd

e xV

5

Pour contraindre une opeacuteration agrave srsquoexeacutecuter sur un processeur donneacutee

1Seacutelectionner le(s) opeacuteration(s) agrave contraindre2 Seacutelectionner la commande AlgorithmSetConstraint3 Seacutelectionner le processeur qui doit exeacutecute les opeacuterationsseacutelectionneacutees

Pour enlever les contraintes seacutelectionner lrsquoopeacuteration puis exeacutecuterla commande AlgorithmDeleteConstraint

Pour voir sur quel processeur une opeacuteration est y contrainteseacutelectionner lrsquoopeacuteration puis exeacutecuter la commandeAlgorithmShowConstraint le processeur correspondant y sera

seacutelectionneacutePour voir toute les opeacuterations qui sont contraintes sur un processeurseacutelectionner le processeur puis exeacutecuter la commande

ArchitectureShowConstrained du menu les opeacuterationscorrespondantes y seront seacutelectionneacutees

Equipe Systegraveme Robotiseacute de Production A eacutequat o

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3979

S y nd

e xV

5

q

Pour construire le planificateur des opeacuterations dugraphe drsquoalgorithme sur les processeurs du graphedrsquoarchitecture qui effectue automatiquement le routage

des deacutependances de donneacutees inter-processeurs et lacreacuteation et la planification des opeacuterations decommunication sur le meacutedia du graphe drsquoarchitectureon utilise la commande AdequationDoIt

Cette commande creacutee un heuristique qui cherche agraveminimiser le chemin critique du graphe drsquoalgorithme

Equipe Systegraveme Robotiseacute de ProductionGeacuteneacuteration du code exeacutecuti

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4079

S y nd

e xV

5Le code exeacutecutif est la partie qui gegravere les ressources

mateacuterielles pour les allouer aux besoins de lrsquoalgorithmedrsquoapplication Les ressources agrave allouer sont

1 Les espaces meacutemoires des processeurs2 Le temps des seacutequences drsquoinstructions3 Le temps des meacutedia de communication

Gracircce agrave la meacutethodologie AAA et le logiciel Syndexlrsquoutilisateur est exempte drsquoeacutecrire du code pour geacuterer ces

ressources Donc par simple exeacutecution de la commandeAdequationGenExec un code distribueacute pour chaque processeur est automatiquement geacuteneacutereacute Ce code est en

fait un exeacutecutif geacuteneacutereacute sur mesure pour lrsquoalgorithme etlrsquoarchitecture

Equipe Systegraveme Robotiseacute de ProductionGeacuteneacuteration du code exeacutecuti

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4179

S y nd

e xV5

Pour chaque processeur de lrsquoarchitecture un fichier

source macro-exeacutecutif m4 avec le mecircme nom estgeacuteneacutereacute plus un macro-makefile ayant le mecircme nom quecelui de lrsquoapplication Chacun de ces fichiers doit ecirctre

transcrit par le macro-processeur GNU M4 (assembleurC) Cette transcription deacutepend de plusieurs fichiers

1 Fichier syndexm4x qui deacutefini les macrosgeacuteneacuteriques de syndex2 Fichier processorTypem4x qui deacutefini les macros

de bas niveau du processeur3 Fichier applicationNamem4x qui deacutefini les macros

speacutecifiques agrave lrsquoapplication

4 Fichier mediaTypem4x qui deacutefini les macros decommunication de bas niveau du type de media

Equipe Systegraveme Robotiseacute de ProductionCreacuteat on rsquoapp cat on

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4279

S y nd

e xV5 Arborescence des reacutepertoires Rep_travail

Applicationmacros

~rtai

Eacutevolution de lrsquoapplication

Phase 1

Edition des macros(C ou Assembleur)

+GNUmakefile

Phase 2

Edition du graphe

(Algorithme amp

Architecteure)

Phase 3

Compilation amp Exeacutecution

Equipe Systegraveme Robotiseacute de ProductionSeacutequence de compilation de Synde

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4379

S y nd

e xV5

Equipe Systegraveme Robotiseacute de Production Plan

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4479

S y nd

e xV5

bull Introduction

bull Meacutethodologie AAA

bull Installation

bull Utilisation du logiciel Syndex

bull Macros

bull LinuxIO un interface CC++ avec SynDEx

bull Exemple drsquoapplication Robuter-ULM

Equipe Systegraveme Robotiseacute de Production

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4579

S y nd

e xV5

Macros Macros

bull Deacutefinition

bull Types de macros

bull Carte Robosoft MPC555

bull Macros Geacuteneacuterique MPC555

bull Macros speacutecifique Robosoftbull Macros de Communication

bull Macros drsquoapplicationbull Structure du fichier Macro

Equipe Systegraveme Robotiseacute de Production Deacutefinition

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4679

S y nd

e xV5

Un macro-processeur est un programme qui consommeen entreacutee une chaicircne de caractegraveres (texte source) la

traite seacutequentiellement en substituant chaque sous-chaicircne qursquoil reconnaicirct (Appel de macro) par unechaicircne correspondante de substitution ( Deacutefinition de

macro) qursquoil traite agrave nouveau jusqursquoagrave ce qursquoil nrsquo y ait plus de substitution possible et qui produit en sortie lachaicircne de caractegraveres traiteacutee

Equipe Systegraveme Robotiseacute de Productionypes e macrosL diffeacute t di ti t d d

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4779

S y nd

e xV5

Les diffeacuterents macros se distinguent en deux grandes

classes bull Macros geacuteneacuteriques

en geacuteneacuteral ceux sont des macros non destineacutes agraveecirctre utiliser directement par lrsquointerface syndexmais plutocirct utiliseacutees pour la programmation

drsquoautres macros (macros MPC555)bull Macros utilisateurs

macros utiliseacutes directement par syndex ils sontspeacutecifiques agrave lrsquoapplication (macros decommunication macros speacutecifiques robosoft

macros speacutecifiques agrave lrsquoapplication)

Equipe Systegraveme Robotiseacute de ProductionCarte Robosoft MPC555La carte Robosoft MPC555 est conccedilue pour la commande de robot de veacutehicule

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4879

S y nd

e xV5

(1) Connecteur du chip MPC555(2) Alimentation continue(3) Interface BDM (Basic Debug Interface)(4) Entreacute Analogique (Joystickhellip)(5) EntreacuteSortie logiques(6) Ligne seacuterie Synchrone (Codeur absolu)(7) Ligne seacuterie Asynchrone (Port 0)

(8) Ligne seacuterie Asynchrone (Port 1)(9) Connecteur du bus CAN (Port 0)(10) Connecteur du bus CAN (Port 1)(11) Axe 1(13) Axe 2(14) Axe 3(15) Axe 4

La carte Robosoft MPC555 est conccedilue pour la commande de robot de veacutehiculeeacutelectrique ou toute autre machine Elle permet de commander un axe gracircce agrave

lrsquoajout drsquoune carte fille le controcircle srsquoeacutetend jusqursquoagrave 4 axesCette carte est baseacutee sur le microcontrocircleur MPC555 32-bit de MotorolaElle peut opeacuterer agrave une freacutequence

de 40 MHz Divers signauxlogique et analogique peuventecirctre utiliser pour lrsquoacquisition deet la commande de mateacuteriel Les

sorties disponibles peuvent ecirctreanalogique ou PWMOn y trouve

Equipe Systegraveme Robotiseacute de ProductionArchitecture du MPC555

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4979

S y nd

e xV5

Equipe Systegraveme Robotiseacute de Productionaract r st ques u

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5079

S y nd

e xV5

Equipe Systegraveme Robotiseacute de Productionacros n r quesbull GPIO (General-Purpose InputOutput)

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5179

S y nd

e xV5

GPIO (General Purpose InputOutput)ce macro utilise le module USIU qui lui fourni 64 pins pour desentreacuteessorties numeacuteriques ordinaires (IO de la carte Robosoft lirelrsquoeacutetat de la pince envoi de commande agrave la pince lire les alarmes)

bull QADC (Queued Analog to Digital Converter)en utilisant le module QADC ce macro permet la conversion drsquounsignal analogique en entreacutee en un signal numeacuterique multi-niveaux(lire les donneacutees du capteur drsquoeacuteffort du joystick)

bull MIOS (Modular InputOutput System)Le module MIOS fourni 16 pins drsquoES numeacuteriques Sur la carte deRobosoft tous les pins sont en sortie Les 16 pins sont reacutepartiscomme suit

utilisateurs reacuteserveacutes

les pins de 0 agrave 11 sont reacuteserveacutes car ils sont preacutevus agrave ecirctre utiliseacutes pour unmateacuteriel particulier Mais si ce mateacuteriel nrsquoest pas utiliseacute lrsquoutilisateur peut lesutiliser librement

15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

Equipe Systegraveme Robotiseacute de ProductionMacros Geacuteneacuter ques MPC55

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5279

S y nd

e xV5

bull PWM (Pulse width Modulation)utilise le module MIOS (pins de 4-7 pour la direction des moteurset de 8-11 pour la validation) pour la commande des actionneursnumeacuteriques en PWM

bull TPU (Time Processor Units)les macros lieacutes agrave ce module permettent la lecture des encodeurs

increacutementauxbull QSPI (Queued Serial Peripheral Interface)

ce module fait partie du module QSMCM et les macros lieacutes servent

agrave son initialisation pour une communication avec du mateacuterielsexternes via le bus seacuterie synchrone

Equipe Systegraveme Robotiseacute de ProductionMacros Geacuteneacuter ques MPC55

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5379

S y nd

e x

V5 bull Serial port support (Polling implementation)

le MPC555 comprend dans le module QSMCM une interface decommunication seacuterie SCI qui permet la communication avec dumateacuteriels externes via un bus seacuterie asynchrone Plusieurs macros

sont lieacutes agrave cette interface pour initialiser et eacutetablir la communicationbull Serial port support (interrupt handling implementation)

pour la mecircme interface SCI du module QSMCM pour cette

meacutethode drsquoimpleacutementation les macros lieacutes initialisent et eacutetablissentla communication en mode par interruption ce qui permet dedeacutetecter lrsquoarriveacutee des donneacutees sur le port seacuterie au lieu de le scruter

en permanence

tous ces macros on les retrouvent dans le fichier 555m4x

Equipe Systegraveme Robotiseacute de ProductionMacros Speacutec ques Ro oso tles macros suivants sont deacutedieacutes agrave la carte de Robosoft MPC555

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5479

S y nd

e x

V5

bull Initialisation de la carte Robosoftmain_ini_() macro ne doit pas ecirctre utiliser par les programmateursdu fait qursquoelle sert qursquoagrave initialiser la carte robosoft Macro interne agrave

syndex dont lrsquoappel est automatique lors de geacuteneacuteration drsquoexeacutecutifMPC555

bull DAC (Digital to Analog Converter)

macro permet lrsquoutilisation du convertisseur de carte robosoft via lemodule MIOs en utilisant les pins de 0 agrave 2

bull LED (on-bord LED interface)

macro permet la gestion de la LED de la carte robosoft connecteacuteeau module QSPI (pin PCS1)

bull SPI absolute encoder

macro permet lrsquoutilisation lrsquointerface du codeur absolu de la carterobosoft connecteacute au module QSPI

Equipe Systegraveme Robotiseacute de ProductionMacros Speacutec ques Ro oso tbull Motor amplifier direction

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5579

S y nd

e x

V5

Motor amplifier directionmacro qui permet de geacuterer la direction des moteurs

bull Motor power amplifier validationles moteurs embarqueacutes sur les robots sont eacutequipeacutes de freins

eacutelectriquement commandable Ce macro permet drsquoenvoyer unsignal drsquoinhibition pour deacutebloquer les freins

bull Watch dog

pour des raisons de seacutecuriteacute un meacutecanisme mateacuteriel que robosofta ajouteacute sur la carte Ce watch-dog vise agrave stopper lrsquoactiviteacute dumoteur en cas ougrave le programme plante Le watch est impleacutementeacute

comme un time-out mateacuteriel Srsquoil nrsquoest pas rafraicircchi peacuteriodiquement il transmet un signal de sortie ce qui enlegraveve lavalidation de lrsquoamplificateur de puissance donc lrsquoarrecirct dumouvement

ces macros se trouvent dans le fichier RSBm4x

Equipe Systegraveme Robotiseacute de Production

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5679

S y nd

e x

V5

Macros de Communicationchaque meacutedia de communication (bus CAN ) est une ressourceseacutequentielle ougrave les transferts de donneacutees entre processeurs doiventsuivre un certain ordre Donc ce macro de communication sert agravedeacutefinir cet ordre et agrave identifier le protocole de communication lecodagedeacutecodage de lrsquoinformation et la synchronisation

on trouve ces macros dans le fichier CANm4x

Macros drsquoapplicationce genre de macros sont speacutecifique au mateacuteriel en question et aussiagrave lrsquoapplication en particulier Ce sont des macros utilisateurs

on trouve ces macros dans le fichier Application_namem4x

Equipe Systegraveme Robotiseacute de Production

section include (pour inclure drsquoautres fichiers macro agrave utiliseStructure du fichier macr

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5779

S y nd

e x

V5

section define (pour tous les macros utilisateurs)MGC lsquoINITrsquo (MGC Macro Generation Context variable)

divert (declaration) (deacutebut du macro)

(deacuteclaration des variables des meacutemoires et des csts

divert (o)

MGC lsquolooprsquocode en assembleur code en C

dnl (commentaires)

MGC lsquoENDrsquo dnl (fin de la macros)divert lsquo lsquo dnl

macros MPC555meacutemoire MPC555

constante MPC555

macros RTAImeacutemoire RTAI

constante RTAI

Equipe Systegraveme Robotiseacute de Production Plan

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5879

S y nd

e x

V5

bull Introduction

bull Meacutethodologie AAA

bull Installationbull Utilisation du logiciel Syndex

bull Macrosbull LinuxIO un interface CC++ avec SynDEx

bull Exemple drsquoapplication Robuter-ULM

Equipe Systegraveme Robotiseacute de Production

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5979

S y nd

e x

V5

LinuxIO LinuxIO une interface une interface

CC++ avecCC++ avec SynDExSynDEx

bull Principe de basebull Utilisation de linuxIO_ par syndex

bull Utilisation de linuxIO_ par un programmeCC++

Equipe Systegraveme Robotiseacute de ProductionPrincipe de baseSyndex fourni une interface graphique pour la conception

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6079

S y nd

e x

V5

Syndex fourni une interface graphique pour la conception

drsquoapplications Par contre des fois nous avons besoin drsquoautresfonctionnaliteacutes non disponibles donc il faut les creacuteer Cependantgeacuteneacuterer des macros pour syndex srsquoavegravere difficile pour certains du

fait qursquoil faut avoir une bonne connaissance de la programmation bas niveau Dans ce cas lrsquoutilisation de linux_IO trouve sa placedans un contexte particulier interfacer des applications CC++utilisateurs avec des applications embarqueacutees temps reacuteeldeacuteveloppeacutees sous syndex

Par rapport agrave ce contexte de programmation lrsquoorganisation du

deacuteveloppement des applications est structureacutee en deux parties 1 Application haut niveau

2 Application bas niveau

Equipe Systegraveme Robotiseacute de ProductionPrincipe de base

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6179

S y nd

e x

V5

En reacutesumeacute lrsquoapplicationutilisateur contient une

partie haut niveau enCC++ et une partie basniveau sous syndex avecun eacutechange de donneacuteesentre les deux partie en

utilisant la couche RTAIde linux

Equipe Systegraveme Robotiseacute de Production pp cat on aut n veauOn entend application haut

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6279

S y nd

e x

V5

niveau tout programmecomme la planification detrajectoires strateacutegies de

navigation etc hellipLrsquoeacutechange de donneacutees sefait par le biais desmeacutemoires partageacutees quifont parti du noyau RTAI

et de lrsquoespace utilisateursde Linux

Toute ressource preacutesente sur la carte Robosoft peutecirctre partageacutee sans aune restriction

Equipe Systegraveme Robotiseacute de Production pp cat on as n veauUne application bas niveau

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6379

S y nd

e x

V5

Une application bas niveau

est un programme conccedilusous syndex comme lacommande des moteurs la

lecture des capteurs etc hellipLes ressources mateacuteriellessont controcircler par plusieurs

cartes MPC555 Ces cartessrsquoeacutechangent des donneacuteesvia le bus CAN Donc ES

est prise en charge par lasource logicielle deacutedieacutee quisrsquoexeacutecute dans les cartes MPC555 puis la couche RTAI

est utiliseacute pour la mise agrave jour de meacutemoires partageacutees pour lrsquoespace utilisateurs linux drsquoeacutechange de donneacutees

Equipe Systegraveme Robotiseacute de ProductionUtilisation de linux_IO par syndex

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6479

S y nd

e x

V5

Equipe Systegraveme Robotiseacute de ProductionUtilisation de linux_IO par syndex

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6579

S y nd

e x

V5

Equipe Systegraveme Robotiseacute de Production

5

Utilisation de linux_IO par syndex

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6679

S y nd

e x

V5

Degraves que la conception de lrsquoapplication sous syndex esttermineacutee et apregraves compilation (AdequationDo it +GenExec) un fichier drsquoentecircte sous le nom de linioh est

automatiquement geacuteneacutereacute Ce fichier contient lesinformations neacutecessaires pour acceacuteder aux entreacutees enlecture et aux sorties en eacutecriture des opeacuterations linuxIO_

inseacutereacutees dans le graphe drsquoalgorithme Le contenu de cefichier est organiseacute en plusieurs parties une pour chaqueopeacuteration linux_IO preacutesente dans le graphe

Equipe Systegraveme Robotiseacute de Production

5

Utilisation de linux_IO par syndex linioh auto-generated C users API frontend

C i h b f 2001 i i i b f f

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6779

S y nd

e x

V5 Copyright Robosoft 2001 Pierre Pomiers ltpierrerobosoftfrgt

LINUX IO shared memory data segments

define SEG0_BASE 0x10000typedef struct

int js_spd_o0

int js_str_o0

int enc_R_o0int enc_L_o0

double odo_X_o0

double odo_Y_o0

double odo_T_o0int spd_R_o0

int spd_L_o0

int time

unsigned char sem shm_seg0_def

Nom du segment de meacutemoire partageacutee pour notre opeacuteration linuxIO_

7 signaux drsquoentreacutees Ces valeurs sonten lecture et sont peacuteriodiquementrafraicircchies par RTAI

2 signaux de sorties Ces valeurs sonten eacutecriture et sont peacuteriodiquementrafraicircchies par RTAI

Equipe Systegraveme Robotiseacute de Production

5

Crsquoest une eacutetape tregraves facile il suffit drsquoinclure le fichier drsquoentecirctelinio h dans le code du fichier en CC++ comme suit

Utilisation de linuxIO_ par un programme CC+

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6879

S y nd

e x

V5 linioh dans le code du fichier en CC++ comme suit

include linioh

include ltrtai_shmhgt

static shm_seg0_def seg0

shm_seg0_def robot

seg0 = rtai_malloc (SEG0_BASE sizeof (shm_seg0_def))

if (seg0-gtsem = 0) bcopy (seg0 amprobot sizeof (shm_seg0_def))helliphelliphellip

helliphelliphellip bcopy (amprobot seg0 sizeof (shm_seg0_def))helliphelliphelliphelliphelliphellip

rtai_free (SEG0_BASE seg0)

fichier drsquoentecircte de la meacutemoire partageacutee fourni dans la couche RTAI de linux

Initialisation du segment SEG0_BASE Allocation de lameacutemoire pointeacutee

par seg0

Lecture des donneacutees provenant du bas

niveau

Mise agrave jours du segment de meacutemoire partageacutee

Libeacuterer le segment de meacutemoire alloueacute

Equipe Systegraveme Robotiseacute de Production

5

Plan

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6979

S y nd e x

V5

bull Introductionbull Meacutethodologie AAA

bull Installationbull Utilisation du logiciel Syndex

bull Macrosbull LinuxIO un interface CC++ avec SynDEx

bull Exemple drsquoapplication Robuter-ULM

Equipe Systegraveme Robotiseacute de Production

V5

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7079

S y nd e x

V5

Exemple dapplication Exemple dapplication Robuter Robuter--ULM ULM

Equipe Systegraveme Robotiseacute de Production

V5

Description Robuter-ULMbull Base mobile (2-RM 2-RF)

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7179

S y nd e x

V

bull Bras ultra-leacuteger 6 axesbull Ceinture 24 capteurs US

bull Capteur drsquoefforts 6 axes

bull Cameacutera CCD monochromeavec carte drsquoacquisition

bull PC embarqueacute MMX 233

bull OS linux redhat 61 avecRTAI V-13

bull 3 bouton drsquoarrecirct drsquourgence

bull 4 batteries 48 VDC 4 X12V 60 Ah

bull Entreacutee Joystick

bull Liaison Ethernet sans fil

Le manipulateur mobile Robuter-ULM comprend

Equipe Systegraveme Robotiseacute de Production

V5

Base Mobilebull dimension

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7279

S y nd e x

V

1025 mm de longueur 680 mm de largueur et 44 cm de hauteurbull Poids environ 150 kg avec les batteriesbull charge jusqursquoagrave 120 kg

bull vitesse de 5cms agrave 125 msbull Moteurs 2 X 300 W DC 48 VDCbull orientation par diffeacuterence de vitesse

bull Preacutecision Position par encodeurs optiquesbull Deux roues motrices diffeacuterentielles et de deux roues follesbull Drsquoune ceinture de 24 capteurs Ultrasons

bull Une carte MPC555 de Robosoft pour le controcircle des deuxmoteurs DC des 2 rouesbull Un systegraveme drsquoodomeacutetrie qui donne la position relative du robot

par rapport agrave son repegravere

Equipe Systegraveme Robotiseacute de Production

V5

bull dimension Faute de documentation

Bras U tra- eacuteger

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7379

S y nd e x

V Faute de documentation

bull Poids moins de 20 kgbull charge 2 kgbull Moteurs 6 moteurs DC

bull gripper pince eacutelectrique 2 doigtsbull Reacutepeacutetabiliteacute +- 1mmbull 3 carte MPC555 de Robosoft lrsquoune pour le capteur drsquoeffort et les

deux autres pour les 6 moteurs + moteur de la pincebull Position encodeur increacutemental

1 2 3 4 5 6Axisrange

plusmn90deg 0-90deg plusmn80deg plusmn100deg plusmn90deg plusmn110deg

vitesse 180degs 180degs 180degs 180degs 180degs 180degs

Equipe Systegraveme Robotiseacute de Production

V5

rc tecture ar ware

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7479

S y nd e x

V

Equipe Systegraveme Robotiseacute de Production

V5

Pro eacutemat quePlusieurs applications peuvent ecirctre impleacutementeacutees sur le robot

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7579

S y nd e x

V

Cependant il faut faire la diffeacuterence entre les applications quidemande lrsquoutilisation de syndex et les applications qui neneacutecessite qursquoune programmation en CC++ Agrave titre drsquoexemple

bull Localisationbull Commande en position

bull Commande en forcebull Navigation

bull Geacuteneacuteration de trajectoire

bull Vision

Equipe Systegraveme Robotiseacute de Production

V5 bull Pince eacutelectrique (TOR)

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7679

S y nd e x

Vq ( )

bull Pince possegravede des ES Logiques

Notre application consiste agrave

bull Recevoir lrsquoeacutetat de la pince (fermeacutee ouverte )

bull Envoyer une commande vers la pince

Capture

drsquoinformation

Open

Close

CommandeMeacutemoire

Partageacutee

Actionneur

Pince Prise de deacutecision Pince

Equipe Systegraveme Robotiseacute de Production

V5

Sc eacutema eacute ectr que

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7779

S y nd e x

Equipe Systegraveme Robotiseacute de Production

V5

Conclusion

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7879

S y nd e x bull Introduction

bull Meacutethodologie AAA

bull Installationbull Utilisation du logiciel Syndex

bull Macrosbull LinuxIO un interface CC++ avec SynDEx

bull Exemple drsquoapplication Robuter-ULM

Equipe Systegraveme Robotiseacute de Production

V5

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7979

S y nd e x

Questions

Page 17: Cours Syndex

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 1779

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Pla

bull Introduction

bull Meacutethodologie AAA

bull Installation

bull Utilisation du logiciel Syndex

bull Macros

bull LinuxIO un interface CC++ avec SynDEx

bull Exemple drsquoapplication Robuter-ULM

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 1879

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Installation Installation

bull Exigences mateacuteriellesbull Exigences logicielles

bull Installation de syndex V5bull Arborescence des reacutepertoires

Exigences mateacuteriels

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 1979

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Exigences mateacuteriels

bull Un PC avec un processeur de la famille Intel(80386 au minimum) ou un AMD

bull Une Carte de bus CAN (celle qui est installeacuteecrsquoest NuDACQ PCI-7841 baseacutee sur un chipPhilips SJA1000)

Ces deux speacutecifications sont suffisants pour ledeacuteveloppement drsquoune application RTAI

bull Pour les robots acquis il faut rajouter les cartes decontrocircle baseacutees sur le microcontrocircleur MPC555

Exigences logicielle

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 2079

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Exigences logiciellebull Un environnement sous Linux (quelle que soit la

distribution)bull Un module RTAI (Real-Time Applications

implementations)bull GNU gcc (outil de compilation)bull GNU binutils (outil pour assembler et eacutediter les liens

bull Le Logiciel Syndex V5bull Les macros de syndex pour

- carte de controcircle Robosoft- microcontrocircleur MPC555 de Motorola- PC sous LinuxRTAI

- Bus CAN

Installation de Syndex V

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 2179

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Installation de Syndex V

bull Creacuteation du reacutepertoire de destinationbull Copier le fichier avec la commande

cp syndex-xxx-linuxtgz rep_desbull Se mettre sous le reacutepertoire de destination puisdeacutecompresser le fichier avec la commande

tar zxvf syndex-xxx-linuxtgzCeci creacuteera sous le reacute pertoire de destination un sou

reacutepertoire de syndex contenant tout les fichiersDans le fichier syndexbat il faut mettre agrave jour lechemin du reacutepertoire de syndex

Arborescences des Reacutepertoire

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 2279

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Arborescences des Reacutepertoire

Apregraves lrsquoinstallation il est impeacuteratif drsquoorganiser lesreacutepertoires pour que lors de lrsquoeacutedition des liens le

fichier makefiles deacutepend de cette organisationLrsquoorganisation qui existe actuellement est comme

suit bull Apps applications deacuteveloppeacutees sous syndexbull Macros macros deacuteveloppeacutes pour syndex V5bull Rtai module rtai ou un lien symbolique qui point vers le reacutepertoire drsquoinstallation

Pla

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 2379

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Pla

bull Introduction

bull Meacutethodologie AAA

bull Installation

bull Utilisation du logiciel Syndex

bull Macros

bull LinuxIO un interface CC++ avec SynDEx

bull Exemple drsquoapplication Robuter-ULM

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 2479

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Utilisation du logicielUtilisation du logicielSyndexSyndex V5V5

bull Utilisation de lrsquointerface

bull Algorithme

bull Architecture

bull Caracteacuteristiques

bull Contraintes

bull Adeacutequation

bull Geacuteneacuteration du code exeacutecutif

SynDE

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 2579

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

SynDESynDEx est un logiciel graphique qui impleacutemente lameacutethodologie AAA et qui offre plusieurs fonctionnaliteacutes

bull Speacutecification drsquoun algorithme drsquoapplication saisi sousforme drsquoun graphe

bull Speacutecification drsquoun graphe drsquoarchitecture multi-composant

bull Heuristique pour la distribution et lrsquoordonnancement delrsquoalgorithme drsquoapplication sur lrsquoarchitecture avecoptimisation du temps de reacuteponse

bull Geacuteneacuteration des exeacutecutifs distribueacutes temps reacuteel

Utilisation de lrsquointerface

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 2679

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Utilisation de l interface

Utilisation de lrsquointerface

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 2779

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Utilisation de l interface

Utilisation de lrsquointerface

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 2879

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Utilisation de l interface

Algorithm

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 2979

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Algorithm

Lrsquoalgorithme est speacutecifieacute comme un graphe orienteacute ougravebull chaque sommet est une opeacuteration qui calcule les sorties

des entreacutees agrave chaque opeacuteration doit correspondre uneseacutequence drsquoinstructions compileacutee seacutepareacutement

bull Chaque arc est une deacutependance de donneacutees entre deux

opeacuterations (ou plus dans le cas de diffusion) c-a-d lasortie drsquoune opeacuteration est lrsquoentreacutee de lrsquoautre opeacuteration(ou de plusieurs autres opeacuterations) une entreacutee peut ecirctreconnecteacutee seulement agrave une sortie de mecircme type dedonneacutees

gor t m

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3079

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

gor t mon distingue 4 types de sommets

Algorithm

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3179

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Algorithmbull Le sommet function possegravede au moins une entreacutee et

une sortie crsquoest une opeacuteration agrave libre effet qui calculeses sorties uniquement agrave partir de ses entreacutees (c-a-d niagrave partir des variables globales ni agrave partir des

preacuteceacutedentes valeurs de ces entreacutees)bull Le sommet extio permet lrsquoacquisitionlrsquoeacutecriture des

entreacuteessorties on distingue trois cas

1 Capteur sans entreacutee agrave chaque reacuteaction sa sortierepreacutesente la valeur lue du capteur

2 Actionneur sans sortie agrave chaque reacuteaction ilenvoi son entreacutee agrave lrsquoactionneur

3 Linux_IO ces des meacutemoires partageacutees qui

permettent le transfert de donneacutees entre syndexet un langage eacutevolueacute

E i S egrave R b i eacute d P d i Algorithm

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3279

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Algorithm

bull Le sommet memory possegravede uniquement uneentreacutee et une sortie crsquoest une opeacuteration agrave effetunique qui met la sortie degraves la premiegravere reacuteaction

agrave une valeur initiale calculeacutee auparavant et puisla sortie de la prochaine reacuteaction nrsquoest que

lrsquoentreacutee de la preacuteceacutedente reacuteactionbull Le sommet constant ne possegravede aucune entreacutee

il calcule sa sortie une seule fois avant la premiegravere reacuteaction puis la sortie demeure la mecircme pour chaque reacuteaction

E i S tegrave R b ti eacute d P d ti Algorithm

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3379

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

AlgorithmPour lrsquoalgorithme chaque sommet est caracteacuteriseacute par

bull Son type geacuteneacuterique (function extio memory constant)bull Un nom unique (tout les sommets doivent avoir des

noms diffeacuterents)bull Son type identifiant sa seacutequence drsquoinstructionsassocieacute

bull Sa liste drsquoarguments ougrave chaque argument est speacutecifieacute par bull Le nombre drsquoentreacuteesortiebull Le type de donneacuteesbull Le nom (tout les arguments doivent avoir des noms

diffeacuterents)

Equipe Systegraveme Robotiseacute de Production Architecture

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3479

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

ArchitectureLrsquoarchitecture est speacutecifieacutee comme un graphe non orienteacute

ougrave bullChaque sommet est une ressource seacutequentielle il y adeux types de sommets

bull processeur crsquoest une ressource de calcul enmesure drsquoexeacutecuter seacutequentiellement les opeacuterationsdrsquoun algorithme il pourrait ecirctre un processeur ou

un circuit inteacutegreacute speacutecialiseacutebull meacutedia crsquoest une ressource de communicationen mesure drsquoexeacutecuter seacutequentiellement un transfertde donneacutees entre les meacutemoires des processeurs quilui sont connecteacutes

bull chaque arc est une connexion bidirectionnelle entreun processeur et un meacutedia

Equipe Systegraveme Robotiseacute de Production Architecture

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3579

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

ArchitecturePour lrsquoarchitecture chaque sommet est caracteacuteriseacute par

bull Un nom uniquebullSon type (processeur or meacutedia)bull Son type identifiant caracteacuteristiques mateacuterielles

bull Sa liste de connecteurs ougrave chaque connecteur est speacutecifieacute par bull son type identifiant le type de meacutedia agrave qui il peut ecirctreconnecteacute

bullUn nom

Equipe Systegraveme Robotiseacute de ProductionCaracteacuter st que

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3679

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Caracteacuter st que Nous distinguons deux cateacutegories de caracteacuteristiques lrsquoune relative

aux opeacuterations et lrsquoune agrave la communication 1 Comment speacutecifier les caracteacuteristiques des opeacuterations sous le menu AdequationAlOp_ArOp on obtient une boite

de dialogue avec

une liste de toutles types de

processeurs et

pour chaque processeur uneliste de tout les

types drsquoopeacuterationsqui peut lesexeacutecuter avec ladureacutee drsquoexeacutecutioncorrespondante

Equipe Systegraveme Robotiseacute de ProductionCaracteacuteristique

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3779

q p y

S y nd

e xV

5

q2 Comment speacutecifier les caracteacuteristiques de communication

sous le menu AdequationAlIO_ArIO on obtient une boitede dialogue avec une liste de tout les types de meacutedia et

pour chaque meacutedia une liste de tout les types de donneacutees

qui peut transfeacuterer avec la dureacutee de transfertcorrespondante

Equipe Systegraveme Robotiseacute de Production Contraintes

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3879

S y nd

e xV

5

Pour contraindre une opeacuteration agrave srsquoexeacutecuter sur un processeur donneacutee

1Seacutelectionner le(s) opeacuteration(s) agrave contraindre2 Seacutelectionner la commande AlgorithmSetConstraint3 Seacutelectionner le processeur qui doit exeacutecute les opeacuterationsseacutelectionneacutees

Pour enlever les contraintes seacutelectionner lrsquoopeacuteration puis exeacutecuterla commande AlgorithmDeleteConstraint

Pour voir sur quel processeur une opeacuteration est y contrainteseacutelectionner lrsquoopeacuteration puis exeacutecuter la commandeAlgorithmShowConstraint le processeur correspondant y sera

seacutelectionneacutePour voir toute les opeacuterations qui sont contraintes sur un processeurseacutelectionner le processeur puis exeacutecuter la commande

ArchitectureShowConstrained du menu les opeacuterationscorrespondantes y seront seacutelectionneacutees

Equipe Systegraveme Robotiseacute de Production A eacutequat o

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3979

S y nd

e xV

5

q

Pour construire le planificateur des opeacuterations dugraphe drsquoalgorithme sur les processeurs du graphedrsquoarchitecture qui effectue automatiquement le routage

des deacutependances de donneacutees inter-processeurs et lacreacuteation et la planification des opeacuterations decommunication sur le meacutedia du graphe drsquoarchitectureon utilise la commande AdequationDoIt

Cette commande creacutee un heuristique qui cherche agraveminimiser le chemin critique du graphe drsquoalgorithme

Equipe Systegraveme Robotiseacute de ProductionGeacuteneacuteration du code exeacutecuti

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4079

S y nd

e xV

5Le code exeacutecutif est la partie qui gegravere les ressources

mateacuterielles pour les allouer aux besoins de lrsquoalgorithmedrsquoapplication Les ressources agrave allouer sont

1 Les espaces meacutemoires des processeurs2 Le temps des seacutequences drsquoinstructions3 Le temps des meacutedia de communication

Gracircce agrave la meacutethodologie AAA et le logiciel Syndexlrsquoutilisateur est exempte drsquoeacutecrire du code pour geacuterer ces

ressources Donc par simple exeacutecution de la commandeAdequationGenExec un code distribueacute pour chaque processeur est automatiquement geacuteneacutereacute Ce code est en

fait un exeacutecutif geacuteneacutereacute sur mesure pour lrsquoalgorithme etlrsquoarchitecture

Equipe Systegraveme Robotiseacute de ProductionGeacuteneacuteration du code exeacutecuti

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4179

S y nd

e xV5

Pour chaque processeur de lrsquoarchitecture un fichier

source macro-exeacutecutif m4 avec le mecircme nom estgeacuteneacutereacute plus un macro-makefile ayant le mecircme nom quecelui de lrsquoapplication Chacun de ces fichiers doit ecirctre

transcrit par le macro-processeur GNU M4 (assembleurC) Cette transcription deacutepend de plusieurs fichiers

1 Fichier syndexm4x qui deacutefini les macrosgeacuteneacuteriques de syndex2 Fichier processorTypem4x qui deacutefini les macros

de bas niveau du processeur3 Fichier applicationNamem4x qui deacutefini les macros

speacutecifiques agrave lrsquoapplication

4 Fichier mediaTypem4x qui deacutefini les macros decommunication de bas niveau du type de media

Equipe Systegraveme Robotiseacute de ProductionCreacuteat on rsquoapp cat on

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4279

S y nd

e xV5 Arborescence des reacutepertoires Rep_travail

Applicationmacros

~rtai

Eacutevolution de lrsquoapplication

Phase 1

Edition des macros(C ou Assembleur)

+GNUmakefile

Phase 2

Edition du graphe

(Algorithme amp

Architecteure)

Phase 3

Compilation amp Exeacutecution

Equipe Systegraveme Robotiseacute de ProductionSeacutequence de compilation de Synde

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4379

S y nd

e xV5

Equipe Systegraveme Robotiseacute de Production Plan

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4479

S y nd

e xV5

bull Introduction

bull Meacutethodologie AAA

bull Installation

bull Utilisation du logiciel Syndex

bull Macros

bull LinuxIO un interface CC++ avec SynDEx

bull Exemple drsquoapplication Robuter-ULM

Equipe Systegraveme Robotiseacute de Production

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4579

S y nd

e xV5

Macros Macros

bull Deacutefinition

bull Types de macros

bull Carte Robosoft MPC555

bull Macros Geacuteneacuterique MPC555

bull Macros speacutecifique Robosoftbull Macros de Communication

bull Macros drsquoapplicationbull Structure du fichier Macro

Equipe Systegraveme Robotiseacute de Production Deacutefinition

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4679

S y nd

e xV5

Un macro-processeur est un programme qui consommeen entreacutee une chaicircne de caractegraveres (texte source) la

traite seacutequentiellement en substituant chaque sous-chaicircne qursquoil reconnaicirct (Appel de macro) par unechaicircne correspondante de substitution ( Deacutefinition de

macro) qursquoil traite agrave nouveau jusqursquoagrave ce qursquoil nrsquo y ait plus de substitution possible et qui produit en sortie lachaicircne de caractegraveres traiteacutee

Equipe Systegraveme Robotiseacute de Productionypes e macrosL diffeacute t di ti t d d

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4779

S y nd

e xV5

Les diffeacuterents macros se distinguent en deux grandes

classes bull Macros geacuteneacuteriques

en geacuteneacuteral ceux sont des macros non destineacutes agraveecirctre utiliser directement par lrsquointerface syndexmais plutocirct utiliseacutees pour la programmation

drsquoautres macros (macros MPC555)bull Macros utilisateurs

macros utiliseacutes directement par syndex ils sontspeacutecifiques agrave lrsquoapplication (macros decommunication macros speacutecifiques robosoft

macros speacutecifiques agrave lrsquoapplication)

Equipe Systegraveme Robotiseacute de ProductionCarte Robosoft MPC555La carte Robosoft MPC555 est conccedilue pour la commande de robot de veacutehicule

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4879

S y nd

e xV5

(1) Connecteur du chip MPC555(2) Alimentation continue(3) Interface BDM (Basic Debug Interface)(4) Entreacute Analogique (Joystickhellip)(5) EntreacuteSortie logiques(6) Ligne seacuterie Synchrone (Codeur absolu)(7) Ligne seacuterie Asynchrone (Port 0)

(8) Ligne seacuterie Asynchrone (Port 1)(9) Connecteur du bus CAN (Port 0)(10) Connecteur du bus CAN (Port 1)(11) Axe 1(13) Axe 2(14) Axe 3(15) Axe 4

La carte Robosoft MPC555 est conccedilue pour la commande de robot de veacutehiculeeacutelectrique ou toute autre machine Elle permet de commander un axe gracircce agrave

lrsquoajout drsquoune carte fille le controcircle srsquoeacutetend jusqursquoagrave 4 axesCette carte est baseacutee sur le microcontrocircleur MPC555 32-bit de MotorolaElle peut opeacuterer agrave une freacutequence

de 40 MHz Divers signauxlogique et analogique peuventecirctre utiliser pour lrsquoacquisition deet la commande de mateacuteriel Les

sorties disponibles peuvent ecirctreanalogique ou PWMOn y trouve

Equipe Systegraveme Robotiseacute de ProductionArchitecture du MPC555

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4979

S y nd

e xV5

Equipe Systegraveme Robotiseacute de Productionaract r st ques u

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5079

S y nd

e xV5

Equipe Systegraveme Robotiseacute de Productionacros n r quesbull GPIO (General-Purpose InputOutput)

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5179

S y nd

e xV5

GPIO (General Purpose InputOutput)ce macro utilise le module USIU qui lui fourni 64 pins pour desentreacuteessorties numeacuteriques ordinaires (IO de la carte Robosoft lirelrsquoeacutetat de la pince envoi de commande agrave la pince lire les alarmes)

bull QADC (Queued Analog to Digital Converter)en utilisant le module QADC ce macro permet la conversion drsquounsignal analogique en entreacutee en un signal numeacuterique multi-niveaux(lire les donneacutees du capteur drsquoeacuteffort du joystick)

bull MIOS (Modular InputOutput System)Le module MIOS fourni 16 pins drsquoES numeacuteriques Sur la carte deRobosoft tous les pins sont en sortie Les 16 pins sont reacutepartiscomme suit

utilisateurs reacuteserveacutes

les pins de 0 agrave 11 sont reacuteserveacutes car ils sont preacutevus agrave ecirctre utiliseacutes pour unmateacuteriel particulier Mais si ce mateacuteriel nrsquoest pas utiliseacute lrsquoutilisateur peut lesutiliser librement

15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

Equipe Systegraveme Robotiseacute de ProductionMacros Geacuteneacuter ques MPC55

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5279

S y nd

e xV5

bull PWM (Pulse width Modulation)utilise le module MIOS (pins de 4-7 pour la direction des moteurset de 8-11 pour la validation) pour la commande des actionneursnumeacuteriques en PWM

bull TPU (Time Processor Units)les macros lieacutes agrave ce module permettent la lecture des encodeurs

increacutementauxbull QSPI (Queued Serial Peripheral Interface)

ce module fait partie du module QSMCM et les macros lieacutes servent

agrave son initialisation pour une communication avec du mateacuterielsexternes via le bus seacuterie synchrone

Equipe Systegraveme Robotiseacute de ProductionMacros Geacuteneacuter ques MPC55

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5379

S y nd

e x

V5 bull Serial port support (Polling implementation)

le MPC555 comprend dans le module QSMCM une interface decommunication seacuterie SCI qui permet la communication avec dumateacuteriels externes via un bus seacuterie asynchrone Plusieurs macros

sont lieacutes agrave cette interface pour initialiser et eacutetablir la communicationbull Serial port support (interrupt handling implementation)

pour la mecircme interface SCI du module QSMCM pour cette

meacutethode drsquoimpleacutementation les macros lieacutes initialisent et eacutetablissentla communication en mode par interruption ce qui permet dedeacutetecter lrsquoarriveacutee des donneacutees sur le port seacuterie au lieu de le scruter

en permanence

tous ces macros on les retrouvent dans le fichier 555m4x

Equipe Systegraveme Robotiseacute de ProductionMacros Speacutec ques Ro oso tles macros suivants sont deacutedieacutes agrave la carte de Robosoft MPC555

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5479

S y nd

e x

V5

bull Initialisation de la carte Robosoftmain_ini_() macro ne doit pas ecirctre utiliser par les programmateursdu fait qursquoelle sert qursquoagrave initialiser la carte robosoft Macro interne agrave

syndex dont lrsquoappel est automatique lors de geacuteneacuteration drsquoexeacutecutifMPC555

bull DAC (Digital to Analog Converter)

macro permet lrsquoutilisation du convertisseur de carte robosoft via lemodule MIOs en utilisant les pins de 0 agrave 2

bull LED (on-bord LED interface)

macro permet la gestion de la LED de la carte robosoft connecteacuteeau module QSPI (pin PCS1)

bull SPI absolute encoder

macro permet lrsquoutilisation lrsquointerface du codeur absolu de la carterobosoft connecteacute au module QSPI

Equipe Systegraveme Robotiseacute de ProductionMacros Speacutec ques Ro oso tbull Motor amplifier direction

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5579

S y nd

e x

V5

Motor amplifier directionmacro qui permet de geacuterer la direction des moteurs

bull Motor power amplifier validationles moteurs embarqueacutes sur les robots sont eacutequipeacutes de freins

eacutelectriquement commandable Ce macro permet drsquoenvoyer unsignal drsquoinhibition pour deacutebloquer les freins

bull Watch dog

pour des raisons de seacutecuriteacute un meacutecanisme mateacuteriel que robosofta ajouteacute sur la carte Ce watch-dog vise agrave stopper lrsquoactiviteacute dumoteur en cas ougrave le programme plante Le watch est impleacutementeacute

comme un time-out mateacuteriel Srsquoil nrsquoest pas rafraicircchi peacuteriodiquement il transmet un signal de sortie ce qui enlegraveve lavalidation de lrsquoamplificateur de puissance donc lrsquoarrecirct dumouvement

ces macros se trouvent dans le fichier RSBm4x

Equipe Systegraveme Robotiseacute de Production

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5679

S y nd

e x

V5

Macros de Communicationchaque meacutedia de communication (bus CAN ) est une ressourceseacutequentielle ougrave les transferts de donneacutees entre processeurs doiventsuivre un certain ordre Donc ce macro de communication sert agravedeacutefinir cet ordre et agrave identifier le protocole de communication lecodagedeacutecodage de lrsquoinformation et la synchronisation

on trouve ces macros dans le fichier CANm4x

Macros drsquoapplicationce genre de macros sont speacutecifique au mateacuteriel en question et aussiagrave lrsquoapplication en particulier Ce sont des macros utilisateurs

on trouve ces macros dans le fichier Application_namem4x

Equipe Systegraveme Robotiseacute de Production

section include (pour inclure drsquoautres fichiers macro agrave utiliseStructure du fichier macr

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5779

S y nd

e x

V5

section define (pour tous les macros utilisateurs)MGC lsquoINITrsquo (MGC Macro Generation Context variable)

divert (declaration) (deacutebut du macro)

(deacuteclaration des variables des meacutemoires et des csts

divert (o)

MGC lsquolooprsquocode en assembleur code en C

dnl (commentaires)

MGC lsquoENDrsquo dnl (fin de la macros)divert lsquo lsquo dnl

macros MPC555meacutemoire MPC555

constante MPC555

macros RTAImeacutemoire RTAI

constante RTAI

Equipe Systegraveme Robotiseacute de Production Plan

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5879

S y nd

e x

V5

bull Introduction

bull Meacutethodologie AAA

bull Installationbull Utilisation du logiciel Syndex

bull Macrosbull LinuxIO un interface CC++ avec SynDEx

bull Exemple drsquoapplication Robuter-ULM

Equipe Systegraveme Robotiseacute de Production

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5979

S y nd

e x

V5

LinuxIO LinuxIO une interface une interface

CC++ avecCC++ avec SynDExSynDEx

bull Principe de basebull Utilisation de linuxIO_ par syndex

bull Utilisation de linuxIO_ par un programmeCC++

Equipe Systegraveme Robotiseacute de ProductionPrincipe de baseSyndex fourni une interface graphique pour la conception

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6079

S y nd

e x

V5

Syndex fourni une interface graphique pour la conception

drsquoapplications Par contre des fois nous avons besoin drsquoautresfonctionnaliteacutes non disponibles donc il faut les creacuteer Cependantgeacuteneacuterer des macros pour syndex srsquoavegravere difficile pour certains du

fait qursquoil faut avoir une bonne connaissance de la programmation bas niveau Dans ce cas lrsquoutilisation de linux_IO trouve sa placedans un contexte particulier interfacer des applications CC++utilisateurs avec des applications embarqueacutees temps reacuteeldeacuteveloppeacutees sous syndex

Par rapport agrave ce contexte de programmation lrsquoorganisation du

deacuteveloppement des applications est structureacutee en deux parties 1 Application haut niveau

2 Application bas niveau

Equipe Systegraveme Robotiseacute de ProductionPrincipe de base

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6179

S y nd

e x

V5

En reacutesumeacute lrsquoapplicationutilisateur contient une

partie haut niveau enCC++ et une partie basniveau sous syndex avecun eacutechange de donneacuteesentre les deux partie en

utilisant la couche RTAIde linux

Equipe Systegraveme Robotiseacute de Production pp cat on aut n veauOn entend application haut

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6279

S y nd

e x

V5

niveau tout programmecomme la planification detrajectoires strateacutegies de

navigation etc hellipLrsquoeacutechange de donneacutees sefait par le biais desmeacutemoires partageacutees quifont parti du noyau RTAI

et de lrsquoespace utilisateursde Linux

Toute ressource preacutesente sur la carte Robosoft peutecirctre partageacutee sans aune restriction

Equipe Systegraveme Robotiseacute de Production pp cat on as n veauUne application bas niveau

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6379

S y nd

e x

V5

Une application bas niveau

est un programme conccedilusous syndex comme lacommande des moteurs la

lecture des capteurs etc hellipLes ressources mateacuteriellessont controcircler par plusieurs

cartes MPC555 Ces cartessrsquoeacutechangent des donneacuteesvia le bus CAN Donc ES

est prise en charge par lasource logicielle deacutedieacutee quisrsquoexeacutecute dans les cartes MPC555 puis la couche RTAI

est utiliseacute pour la mise agrave jour de meacutemoires partageacutees pour lrsquoespace utilisateurs linux drsquoeacutechange de donneacutees

Equipe Systegraveme Robotiseacute de ProductionUtilisation de linux_IO par syndex

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6479

S y nd

e x

V5

Equipe Systegraveme Robotiseacute de ProductionUtilisation de linux_IO par syndex

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6579

S y nd

e x

V5

Equipe Systegraveme Robotiseacute de Production

5

Utilisation de linux_IO par syndex

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6679

S y nd

e x

V5

Degraves que la conception de lrsquoapplication sous syndex esttermineacutee et apregraves compilation (AdequationDo it +GenExec) un fichier drsquoentecircte sous le nom de linioh est

automatiquement geacuteneacutereacute Ce fichier contient lesinformations neacutecessaires pour acceacuteder aux entreacutees enlecture et aux sorties en eacutecriture des opeacuterations linuxIO_

inseacutereacutees dans le graphe drsquoalgorithme Le contenu de cefichier est organiseacute en plusieurs parties une pour chaqueopeacuteration linux_IO preacutesente dans le graphe

Equipe Systegraveme Robotiseacute de Production

5

Utilisation de linux_IO par syndex linioh auto-generated C users API frontend

C i h b f 2001 i i i b f f

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6779

S y nd

e x

V5 Copyright Robosoft 2001 Pierre Pomiers ltpierrerobosoftfrgt

LINUX IO shared memory data segments

define SEG0_BASE 0x10000typedef struct

int js_spd_o0

int js_str_o0

int enc_R_o0int enc_L_o0

double odo_X_o0

double odo_Y_o0

double odo_T_o0int spd_R_o0

int spd_L_o0

int time

unsigned char sem shm_seg0_def

Nom du segment de meacutemoire partageacutee pour notre opeacuteration linuxIO_

7 signaux drsquoentreacutees Ces valeurs sonten lecture et sont peacuteriodiquementrafraicircchies par RTAI

2 signaux de sorties Ces valeurs sonten eacutecriture et sont peacuteriodiquementrafraicircchies par RTAI

Equipe Systegraveme Robotiseacute de Production

5

Crsquoest une eacutetape tregraves facile il suffit drsquoinclure le fichier drsquoentecirctelinio h dans le code du fichier en CC++ comme suit

Utilisation de linuxIO_ par un programme CC+

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6879

S y nd

e x

V5 linioh dans le code du fichier en CC++ comme suit

include linioh

include ltrtai_shmhgt

static shm_seg0_def seg0

shm_seg0_def robot

seg0 = rtai_malloc (SEG0_BASE sizeof (shm_seg0_def))

if (seg0-gtsem = 0) bcopy (seg0 amprobot sizeof (shm_seg0_def))helliphelliphellip

helliphelliphellip bcopy (amprobot seg0 sizeof (shm_seg0_def))helliphelliphelliphelliphelliphellip

rtai_free (SEG0_BASE seg0)

fichier drsquoentecircte de la meacutemoire partageacutee fourni dans la couche RTAI de linux

Initialisation du segment SEG0_BASE Allocation de lameacutemoire pointeacutee

par seg0

Lecture des donneacutees provenant du bas

niveau

Mise agrave jours du segment de meacutemoire partageacutee

Libeacuterer le segment de meacutemoire alloueacute

Equipe Systegraveme Robotiseacute de Production

5

Plan

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6979

S y nd e x

V5

bull Introductionbull Meacutethodologie AAA

bull Installationbull Utilisation du logiciel Syndex

bull Macrosbull LinuxIO un interface CC++ avec SynDEx

bull Exemple drsquoapplication Robuter-ULM

Equipe Systegraveme Robotiseacute de Production

V5

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7079

S y nd e x

V5

Exemple dapplication Exemple dapplication Robuter Robuter--ULM ULM

Equipe Systegraveme Robotiseacute de Production

V5

Description Robuter-ULMbull Base mobile (2-RM 2-RF)

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7179

S y nd e x

V

bull Bras ultra-leacuteger 6 axesbull Ceinture 24 capteurs US

bull Capteur drsquoefforts 6 axes

bull Cameacutera CCD monochromeavec carte drsquoacquisition

bull PC embarqueacute MMX 233

bull OS linux redhat 61 avecRTAI V-13

bull 3 bouton drsquoarrecirct drsquourgence

bull 4 batteries 48 VDC 4 X12V 60 Ah

bull Entreacutee Joystick

bull Liaison Ethernet sans fil

Le manipulateur mobile Robuter-ULM comprend

Equipe Systegraveme Robotiseacute de Production

V5

Base Mobilebull dimension

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7279

S y nd e x

V

1025 mm de longueur 680 mm de largueur et 44 cm de hauteurbull Poids environ 150 kg avec les batteriesbull charge jusqursquoagrave 120 kg

bull vitesse de 5cms agrave 125 msbull Moteurs 2 X 300 W DC 48 VDCbull orientation par diffeacuterence de vitesse

bull Preacutecision Position par encodeurs optiquesbull Deux roues motrices diffeacuterentielles et de deux roues follesbull Drsquoune ceinture de 24 capteurs Ultrasons

bull Une carte MPC555 de Robosoft pour le controcircle des deuxmoteurs DC des 2 rouesbull Un systegraveme drsquoodomeacutetrie qui donne la position relative du robot

par rapport agrave son repegravere

Equipe Systegraveme Robotiseacute de Production

V5

bull dimension Faute de documentation

Bras U tra- eacuteger

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7379

S y nd e x

V Faute de documentation

bull Poids moins de 20 kgbull charge 2 kgbull Moteurs 6 moteurs DC

bull gripper pince eacutelectrique 2 doigtsbull Reacutepeacutetabiliteacute +- 1mmbull 3 carte MPC555 de Robosoft lrsquoune pour le capteur drsquoeffort et les

deux autres pour les 6 moteurs + moteur de la pincebull Position encodeur increacutemental

1 2 3 4 5 6Axisrange

plusmn90deg 0-90deg plusmn80deg plusmn100deg plusmn90deg plusmn110deg

vitesse 180degs 180degs 180degs 180degs 180degs 180degs

Equipe Systegraveme Robotiseacute de Production

V5

rc tecture ar ware

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7479

S y nd e x

V

Equipe Systegraveme Robotiseacute de Production

V5

Pro eacutemat quePlusieurs applications peuvent ecirctre impleacutementeacutees sur le robot

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7579

S y nd e x

V

Cependant il faut faire la diffeacuterence entre les applications quidemande lrsquoutilisation de syndex et les applications qui neneacutecessite qursquoune programmation en CC++ Agrave titre drsquoexemple

bull Localisationbull Commande en position

bull Commande en forcebull Navigation

bull Geacuteneacuteration de trajectoire

bull Vision

Equipe Systegraveme Robotiseacute de Production

V5 bull Pince eacutelectrique (TOR)

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7679

S y nd e x

Vq ( )

bull Pince possegravede des ES Logiques

Notre application consiste agrave

bull Recevoir lrsquoeacutetat de la pince (fermeacutee ouverte )

bull Envoyer une commande vers la pince

Capture

drsquoinformation

Open

Close

CommandeMeacutemoire

Partageacutee

Actionneur

Pince Prise de deacutecision Pince

Equipe Systegraveme Robotiseacute de Production

V5

Sc eacutema eacute ectr que

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7779

S y nd e x

Equipe Systegraveme Robotiseacute de Production

V5

Conclusion

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7879

S y nd e x bull Introduction

bull Meacutethodologie AAA

bull Installationbull Utilisation du logiciel Syndex

bull Macrosbull LinuxIO un interface CC++ avec SynDEx

bull Exemple drsquoapplication Robuter-ULM

Equipe Systegraveme Robotiseacute de Production

V5

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7979

S y nd e x

Questions

Page 18: Cours Syndex

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 1879

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Installation Installation

bull Exigences mateacuteriellesbull Exigences logicielles

bull Installation de syndex V5bull Arborescence des reacutepertoires

Exigences mateacuteriels

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 1979

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Exigences mateacuteriels

bull Un PC avec un processeur de la famille Intel(80386 au minimum) ou un AMD

bull Une Carte de bus CAN (celle qui est installeacuteecrsquoest NuDACQ PCI-7841 baseacutee sur un chipPhilips SJA1000)

Ces deux speacutecifications sont suffisants pour ledeacuteveloppement drsquoune application RTAI

bull Pour les robots acquis il faut rajouter les cartes decontrocircle baseacutees sur le microcontrocircleur MPC555

Exigences logicielle

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 2079

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Exigences logiciellebull Un environnement sous Linux (quelle que soit la

distribution)bull Un module RTAI (Real-Time Applications

implementations)bull GNU gcc (outil de compilation)bull GNU binutils (outil pour assembler et eacutediter les liens

bull Le Logiciel Syndex V5bull Les macros de syndex pour

- carte de controcircle Robosoft- microcontrocircleur MPC555 de Motorola- PC sous LinuxRTAI

- Bus CAN

Installation de Syndex V

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 2179

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Installation de Syndex V

bull Creacuteation du reacutepertoire de destinationbull Copier le fichier avec la commande

cp syndex-xxx-linuxtgz rep_desbull Se mettre sous le reacutepertoire de destination puisdeacutecompresser le fichier avec la commande

tar zxvf syndex-xxx-linuxtgzCeci creacuteera sous le reacute pertoire de destination un sou

reacutepertoire de syndex contenant tout les fichiersDans le fichier syndexbat il faut mettre agrave jour lechemin du reacutepertoire de syndex

Arborescences des Reacutepertoire

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 2279

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Arborescences des Reacutepertoire

Apregraves lrsquoinstallation il est impeacuteratif drsquoorganiser lesreacutepertoires pour que lors de lrsquoeacutedition des liens le

fichier makefiles deacutepend de cette organisationLrsquoorganisation qui existe actuellement est comme

suit bull Apps applications deacuteveloppeacutees sous syndexbull Macros macros deacuteveloppeacutes pour syndex V5bull Rtai module rtai ou un lien symbolique qui point vers le reacutepertoire drsquoinstallation

Pla

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 2379

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Pla

bull Introduction

bull Meacutethodologie AAA

bull Installation

bull Utilisation du logiciel Syndex

bull Macros

bull LinuxIO un interface CC++ avec SynDEx

bull Exemple drsquoapplication Robuter-ULM

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 2479

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Utilisation du logicielUtilisation du logicielSyndexSyndex V5V5

bull Utilisation de lrsquointerface

bull Algorithme

bull Architecture

bull Caracteacuteristiques

bull Contraintes

bull Adeacutequation

bull Geacuteneacuteration du code exeacutecutif

SynDE

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 2579

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

SynDESynDEx est un logiciel graphique qui impleacutemente lameacutethodologie AAA et qui offre plusieurs fonctionnaliteacutes

bull Speacutecification drsquoun algorithme drsquoapplication saisi sousforme drsquoun graphe

bull Speacutecification drsquoun graphe drsquoarchitecture multi-composant

bull Heuristique pour la distribution et lrsquoordonnancement delrsquoalgorithme drsquoapplication sur lrsquoarchitecture avecoptimisation du temps de reacuteponse

bull Geacuteneacuteration des exeacutecutifs distribueacutes temps reacuteel

Utilisation de lrsquointerface

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 2679

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Utilisation de l interface

Utilisation de lrsquointerface

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 2779

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Utilisation de l interface

Utilisation de lrsquointerface

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 2879

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Utilisation de l interface

Algorithm

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 2979

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Algorithm

Lrsquoalgorithme est speacutecifieacute comme un graphe orienteacute ougravebull chaque sommet est une opeacuteration qui calcule les sorties

des entreacutees agrave chaque opeacuteration doit correspondre uneseacutequence drsquoinstructions compileacutee seacutepareacutement

bull Chaque arc est une deacutependance de donneacutees entre deux

opeacuterations (ou plus dans le cas de diffusion) c-a-d lasortie drsquoune opeacuteration est lrsquoentreacutee de lrsquoautre opeacuteration(ou de plusieurs autres opeacuterations) une entreacutee peut ecirctreconnecteacutee seulement agrave une sortie de mecircme type dedonneacutees

gor t m

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3079

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

gor t mon distingue 4 types de sommets

Algorithm

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3179

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Algorithmbull Le sommet function possegravede au moins une entreacutee et

une sortie crsquoest une opeacuteration agrave libre effet qui calculeses sorties uniquement agrave partir de ses entreacutees (c-a-d niagrave partir des variables globales ni agrave partir des

preacuteceacutedentes valeurs de ces entreacutees)bull Le sommet extio permet lrsquoacquisitionlrsquoeacutecriture des

entreacuteessorties on distingue trois cas

1 Capteur sans entreacutee agrave chaque reacuteaction sa sortierepreacutesente la valeur lue du capteur

2 Actionneur sans sortie agrave chaque reacuteaction ilenvoi son entreacutee agrave lrsquoactionneur

3 Linux_IO ces des meacutemoires partageacutees qui

permettent le transfert de donneacutees entre syndexet un langage eacutevolueacute

E i S egrave R b i eacute d P d i Algorithm

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3279

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Algorithm

bull Le sommet memory possegravede uniquement uneentreacutee et une sortie crsquoest une opeacuteration agrave effetunique qui met la sortie degraves la premiegravere reacuteaction

agrave une valeur initiale calculeacutee auparavant et puisla sortie de la prochaine reacuteaction nrsquoest que

lrsquoentreacutee de la preacuteceacutedente reacuteactionbull Le sommet constant ne possegravede aucune entreacutee

il calcule sa sortie une seule fois avant la premiegravere reacuteaction puis la sortie demeure la mecircme pour chaque reacuteaction

E i S tegrave R b ti eacute d P d ti Algorithm

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3379

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

AlgorithmPour lrsquoalgorithme chaque sommet est caracteacuteriseacute par

bull Son type geacuteneacuterique (function extio memory constant)bull Un nom unique (tout les sommets doivent avoir des

noms diffeacuterents)bull Son type identifiant sa seacutequence drsquoinstructionsassocieacute

bull Sa liste drsquoarguments ougrave chaque argument est speacutecifieacute par bull Le nombre drsquoentreacuteesortiebull Le type de donneacuteesbull Le nom (tout les arguments doivent avoir des noms

diffeacuterents)

Equipe Systegraveme Robotiseacute de Production Architecture

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3479

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

ArchitectureLrsquoarchitecture est speacutecifieacutee comme un graphe non orienteacute

ougrave bullChaque sommet est une ressource seacutequentielle il y adeux types de sommets

bull processeur crsquoest une ressource de calcul enmesure drsquoexeacutecuter seacutequentiellement les opeacuterationsdrsquoun algorithme il pourrait ecirctre un processeur ou

un circuit inteacutegreacute speacutecialiseacutebull meacutedia crsquoest une ressource de communicationen mesure drsquoexeacutecuter seacutequentiellement un transfertde donneacutees entre les meacutemoires des processeurs quilui sont connecteacutes

bull chaque arc est une connexion bidirectionnelle entreun processeur et un meacutedia

Equipe Systegraveme Robotiseacute de Production Architecture

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3579

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

ArchitecturePour lrsquoarchitecture chaque sommet est caracteacuteriseacute par

bull Un nom uniquebullSon type (processeur or meacutedia)bull Son type identifiant caracteacuteristiques mateacuterielles

bull Sa liste de connecteurs ougrave chaque connecteur est speacutecifieacute par bull son type identifiant le type de meacutedia agrave qui il peut ecirctreconnecteacute

bullUn nom

Equipe Systegraveme Robotiseacute de ProductionCaracteacuter st que

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3679

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Caracteacuter st que Nous distinguons deux cateacutegories de caracteacuteristiques lrsquoune relative

aux opeacuterations et lrsquoune agrave la communication 1 Comment speacutecifier les caracteacuteristiques des opeacuterations sous le menu AdequationAlOp_ArOp on obtient une boite

de dialogue avec

une liste de toutles types de

processeurs et

pour chaque processeur uneliste de tout les

types drsquoopeacuterationsqui peut lesexeacutecuter avec ladureacutee drsquoexeacutecutioncorrespondante

Equipe Systegraveme Robotiseacute de ProductionCaracteacuteristique

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3779

q p y

S y nd

e xV

5

q2 Comment speacutecifier les caracteacuteristiques de communication

sous le menu AdequationAlIO_ArIO on obtient une boitede dialogue avec une liste de tout les types de meacutedia et

pour chaque meacutedia une liste de tout les types de donneacutees

qui peut transfeacuterer avec la dureacutee de transfertcorrespondante

Equipe Systegraveme Robotiseacute de Production Contraintes

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3879

S y nd

e xV

5

Pour contraindre une opeacuteration agrave srsquoexeacutecuter sur un processeur donneacutee

1Seacutelectionner le(s) opeacuteration(s) agrave contraindre2 Seacutelectionner la commande AlgorithmSetConstraint3 Seacutelectionner le processeur qui doit exeacutecute les opeacuterationsseacutelectionneacutees

Pour enlever les contraintes seacutelectionner lrsquoopeacuteration puis exeacutecuterla commande AlgorithmDeleteConstraint

Pour voir sur quel processeur une opeacuteration est y contrainteseacutelectionner lrsquoopeacuteration puis exeacutecuter la commandeAlgorithmShowConstraint le processeur correspondant y sera

seacutelectionneacutePour voir toute les opeacuterations qui sont contraintes sur un processeurseacutelectionner le processeur puis exeacutecuter la commande

ArchitectureShowConstrained du menu les opeacuterationscorrespondantes y seront seacutelectionneacutees

Equipe Systegraveme Robotiseacute de Production A eacutequat o

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3979

S y nd

e xV

5

q

Pour construire le planificateur des opeacuterations dugraphe drsquoalgorithme sur les processeurs du graphedrsquoarchitecture qui effectue automatiquement le routage

des deacutependances de donneacutees inter-processeurs et lacreacuteation et la planification des opeacuterations decommunication sur le meacutedia du graphe drsquoarchitectureon utilise la commande AdequationDoIt

Cette commande creacutee un heuristique qui cherche agraveminimiser le chemin critique du graphe drsquoalgorithme

Equipe Systegraveme Robotiseacute de ProductionGeacuteneacuteration du code exeacutecuti

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4079

S y nd

e xV

5Le code exeacutecutif est la partie qui gegravere les ressources

mateacuterielles pour les allouer aux besoins de lrsquoalgorithmedrsquoapplication Les ressources agrave allouer sont

1 Les espaces meacutemoires des processeurs2 Le temps des seacutequences drsquoinstructions3 Le temps des meacutedia de communication

Gracircce agrave la meacutethodologie AAA et le logiciel Syndexlrsquoutilisateur est exempte drsquoeacutecrire du code pour geacuterer ces

ressources Donc par simple exeacutecution de la commandeAdequationGenExec un code distribueacute pour chaque processeur est automatiquement geacuteneacutereacute Ce code est en

fait un exeacutecutif geacuteneacutereacute sur mesure pour lrsquoalgorithme etlrsquoarchitecture

Equipe Systegraveme Robotiseacute de ProductionGeacuteneacuteration du code exeacutecuti

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4179

S y nd

e xV5

Pour chaque processeur de lrsquoarchitecture un fichier

source macro-exeacutecutif m4 avec le mecircme nom estgeacuteneacutereacute plus un macro-makefile ayant le mecircme nom quecelui de lrsquoapplication Chacun de ces fichiers doit ecirctre

transcrit par le macro-processeur GNU M4 (assembleurC) Cette transcription deacutepend de plusieurs fichiers

1 Fichier syndexm4x qui deacutefini les macrosgeacuteneacuteriques de syndex2 Fichier processorTypem4x qui deacutefini les macros

de bas niveau du processeur3 Fichier applicationNamem4x qui deacutefini les macros

speacutecifiques agrave lrsquoapplication

4 Fichier mediaTypem4x qui deacutefini les macros decommunication de bas niveau du type de media

Equipe Systegraveme Robotiseacute de ProductionCreacuteat on rsquoapp cat on

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4279

S y nd

e xV5 Arborescence des reacutepertoires Rep_travail

Applicationmacros

~rtai

Eacutevolution de lrsquoapplication

Phase 1

Edition des macros(C ou Assembleur)

+GNUmakefile

Phase 2

Edition du graphe

(Algorithme amp

Architecteure)

Phase 3

Compilation amp Exeacutecution

Equipe Systegraveme Robotiseacute de ProductionSeacutequence de compilation de Synde

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4379

S y nd

e xV5

Equipe Systegraveme Robotiseacute de Production Plan

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4479

S y nd

e xV5

bull Introduction

bull Meacutethodologie AAA

bull Installation

bull Utilisation du logiciel Syndex

bull Macros

bull LinuxIO un interface CC++ avec SynDEx

bull Exemple drsquoapplication Robuter-ULM

Equipe Systegraveme Robotiseacute de Production

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4579

S y nd

e xV5

Macros Macros

bull Deacutefinition

bull Types de macros

bull Carte Robosoft MPC555

bull Macros Geacuteneacuterique MPC555

bull Macros speacutecifique Robosoftbull Macros de Communication

bull Macros drsquoapplicationbull Structure du fichier Macro

Equipe Systegraveme Robotiseacute de Production Deacutefinition

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4679

S y nd

e xV5

Un macro-processeur est un programme qui consommeen entreacutee une chaicircne de caractegraveres (texte source) la

traite seacutequentiellement en substituant chaque sous-chaicircne qursquoil reconnaicirct (Appel de macro) par unechaicircne correspondante de substitution ( Deacutefinition de

macro) qursquoil traite agrave nouveau jusqursquoagrave ce qursquoil nrsquo y ait plus de substitution possible et qui produit en sortie lachaicircne de caractegraveres traiteacutee

Equipe Systegraveme Robotiseacute de Productionypes e macrosL diffeacute t di ti t d d

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4779

S y nd

e xV5

Les diffeacuterents macros se distinguent en deux grandes

classes bull Macros geacuteneacuteriques

en geacuteneacuteral ceux sont des macros non destineacutes agraveecirctre utiliser directement par lrsquointerface syndexmais plutocirct utiliseacutees pour la programmation

drsquoautres macros (macros MPC555)bull Macros utilisateurs

macros utiliseacutes directement par syndex ils sontspeacutecifiques agrave lrsquoapplication (macros decommunication macros speacutecifiques robosoft

macros speacutecifiques agrave lrsquoapplication)

Equipe Systegraveme Robotiseacute de ProductionCarte Robosoft MPC555La carte Robosoft MPC555 est conccedilue pour la commande de robot de veacutehicule

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4879

S y nd

e xV5

(1) Connecteur du chip MPC555(2) Alimentation continue(3) Interface BDM (Basic Debug Interface)(4) Entreacute Analogique (Joystickhellip)(5) EntreacuteSortie logiques(6) Ligne seacuterie Synchrone (Codeur absolu)(7) Ligne seacuterie Asynchrone (Port 0)

(8) Ligne seacuterie Asynchrone (Port 1)(9) Connecteur du bus CAN (Port 0)(10) Connecteur du bus CAN (Port 1)(11) Axe 1(13) Axe 2(14) Axe 3(15) Axe 4

La carte Robosoft MPC555 est conccedilue pour la commande de robot de veacutehiculeeacutelectrique ou toute autre machine Elle permet de commander un axe gracircce agrave

lrsquoajout drsquoune carte fille le controcircle srsquoeacutetend jusqursquoagrave 4 axesCette carte est baseacutee sur le microcontrocircleur MPC555 32-bit de MotorolaElle peut opeacuterer agrave une freacutequence

de 40 MHz Divers signauxlogique et analogique peuventecirctre utiliser pour lrsquoacquisition deet la commande de mateacuteriel Les

sorties disponibles peuvent ecirctreanalogique ou PWMOn y trouve

Equipe Systegraveme Robotiseacute de ProductionArchitecture du MPC555

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4979

S y nd

e xV5

Equipe Systegraveme Robotiseacute de Productionaract r st ques u

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5079

S y nd

e xV5

Equipe Systegraveme Robotiseacute de Productionacros n r quesbull GPIO (General-Purpose InputOutput)

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5179

S y nd

e xV5

GPIO (General Purpose InputOutput)ce macro utilise le module USIU qui lui fourni 64 pins pour desentreacuteessorties numeacuteriques ordinaires (IO de la carte Robosoft lirelrsquoeacutetat de la pince envoi de commande agrave la pince lire les alarmes)

bull QADC (Queued Analog to Digital Converter)en utilisant le module QADC ce macro permet la conversion drsquounsignal analogique en entreacutee en un signal numeacuterique multi-niveaux(lire les donneacutees du capteur drsquoeacuteffort du joystick)

bull MIOS (Modular InputOutput System)Le module MIOS fourni 16 pins drsquoES numeacuteriques Sur la carte deRobosoft tous les pins sont en sortie Les 16 pins sont reacutepartiscomme suit

utilisateurs reacuteserveacutes

les pins de 0 agrave 11 sont reacuteserveacutes car ils sont preacutevus agrave ecirctre utiliseacutes pour unmateacuteriel particulier Mais si ce mateacuteriel nrsquoest pas utiliseacute lrsquoutilisateur peut lesutiliser librement

15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

Equipe Systegraveme Robotiseacute de ProductionMacros Geacuteneacuter ques MPC55

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5279

S y nd

e xV5

bull PWM (Pulse width Modulation)utilise le module MIOS (pins de 4-7 pour la direction des moteurset de 8-11 pour la validation) pour la commande des actionneursnumeacuteriques en PWM

bull TPU (Time Processor Units)les macros lieacutes agrave ce module permettent la lecture des encodeurs

increacutementauxbull QSPI (Queued Serial Peripheral Interface)

ce module fait partie du module QSMCM et les macros lieacutes servent

agrave son initialisation pour une communication avec du mateacuterielsexternes via le bus seacuterie synchrone

Equipe Systegraveme Robotiseacute de ProductionMacros Geacuteneacuter ques MPC55

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5379

S y nd

e x

V5 bull Serial port support (Polling implementation)

le MPC555 comprend dans le module QSMCM une interface decommunication seacuterie SCI qui permet la communication avec dumateacuteriels externes via un bus seacuterie asynchrone Plusieurs macros

sont lieacutes agrave cette interface pour initialiser et eacutetablir la communicationbull Serial port support (interrupt handling implementation)

pour la mecircme interface SCI du module QSMCM pour cette

meacutethode drsquoimpleacutementation les macros lieacutes initialisent et eacutetablissentla communication en mode par interruption ce qui permet dedeacutetecter lrsquoarriveacutee des donneacutees sur le port seacuterie au lieu de le scruter

en permanence

tous ces macros on les retrouvent dans le fichier 555m4x

Equipe Systegraveme Robotiseacute de ProductionMacros Speacutec ques Ro oso tles macros suivants sont deacutedieacutes agrave la carte de Robosoft MPC555

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5479

S y nd

e x

V5

bull Initialisation de la carte Robosoftmain_ini_() macro ne doit pas ecirctre utiliser par les programmateursdu fait qursquoelle sert qursquoagrave initialiser la carte robosoft Macro interne agrave

syndex dont lrsquoappel est automatique lors de geacuteneacuteration drsquoexeacutecutifMPC555

bull DAC (Digital to Analog Converter)

macro permet lrsquoutilisation du convertisseur de carte robosoft via lemodule MIOs en utilisant les pins de 0 agrave 2

bull LED (on-bord LED interface)

macro permet la gestion de la LED de la carte robosoft connecteacuteeau module QSPI (pin PCS1)

bull SPI absolute encoder

macro permet lrsquoutilisation lrsquointerface du codeur absolu de la carterobosoft connecteacute au module QSPI

Equipe Systegraveme Robotiseacute de ProductionMacros Speacutec ques Ro oso tbull Motor amplifier direction

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5579

S y nd

e x

V5

Motor amplifier directionmacro qui permet de geacuterer la direction des moteurs

bull Motor power amplifier validationles moteurs embarqueacutes sur les robots sont eacutequipeacutes de freins

eacutelectriquement commandable Ce macro permet drsquoenvoyer unsignal drsquoinhibition pour deacutebloquer les freins

bull Watch dog

pour des raisons de seacutecuriteacute un meacutecanisme mateacuteriel que robosofta ajouteacute sur la carte Ce watch-dog vise agrave stopper lrsquoactiviteacute dumoteur en cas ougrave le programme plante Le watch est impleacutementeacute

comme un time-out mateacuteriel Srsquoil nrsquoest pas rafraicircchi peacuteriodiquement il transmet un signal de sortie ce qui enlegraveve lavalidation de lrsquoamplificateur de puissance donc lrsquoarrecirct dumouvement

ces macros se trouvent dans le fichier RSBm4x

Equipe Systegraveme Robotiseacute de Production

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5679

S y nd

e x

V5

Macros de Communicationchaque meacutedia de communication (bus CAN ) est une ressourceseacutequentielle ougrave les transferts de donneacutees entre processeurs doiventsuivre un certain ordre Donc ce macro de communication sert agravedeacutefinir cet ordre et agrave identifier le protocole de communication lecodagedeacutecodage de lrsquoinformation et la synchronisation

on trouve ces macros dans le fichier CANm4x

Macros drsquoapplicationce genre de macros sont speacutecifique au mateacuteriel en question et aussiagrave lrsquoapplication en particulier Ce sont des macros utilisateurs

on trouve ces macros dans le fichier Application_namem4x

Equipe Systegraveme Robotiseacute de Production

section include (pour inclure drsquoautres fichiers macro agrave utiliseStructure du fichier macr

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5779

S y nd

e x

V5

section define (pour tous les macros utilisateurs)MGC lsquoINITrsquo (MGC Macro Generation Context variable)

divert (declaration) (deacutebut du macro)

(deacuteclaration des variables des meacutemoires et des csts

divert (o)

MGC lsquolooprsquocode en assembleur code en C

dnl (commentaires)

MGC lsquoENDrsquo dnl (fin de la macros)divert lsquo lsquo dnl

macros MPC555meacutemoire MPC555

constante MPC555

macros RTAImeacutemoire RTAI

constante RTAI

Equipe Systegraveme Robotiseacute de Production Plan

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5879

S y nd

e x

V5

bull Introduction

bull Meacutethodologie AAA

bull Installationbull Utilisation du logiciel Syndex

bull Macrosbull LinuxIO un interface CC++ avec SynDEx

bull Exemple drsquoapplication Robuter-ULM

Equipe Systegraveme Robotiseacute de Production

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5979

S y nd

e x

V5

LinuxIO LinuxIO une interface une interface

CC++ avecCC++ avec SynDExSynDEx

bull Principe de basebull Utilisation de linuxIO_ par syndex

bull Utilisation de linuxIO_ par un programmeCC++

Equipe Systegraveme Robotiseacute de ProductionPrincipe de baseSyndex fourni une interface graphique pour la conception

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6079

S y nd

e x

V5

Syndex fourni une interface graphique pour la conception

drsquoapplications Par contre des fois nous avons besoin drsquoautresfonctionnaliteacutes non disponibles donc il faut les creacuteer Cependantgeacuteneacuterer des macros pour syndex srsquoavegravere difficile pour certains du

fait qursquoil faut avoir une bonne connaissance de la programmation bas niveau Dans ce cas lrsquoutilisation de linux_IO trouve sa placedans un contexte particulier interfacer des applications CC++utilisateurs avec des applications embarqueacutees temps reacuteeldeacuteveloppeacutees sous syndex

Par rapport agrave ce contexte de programmation lrsquoorganisation du

deacuteveloppement des applications est structureacutee en deux parties 1 Application haut niveau

2 Application bas niveau

Equipe Systegraveme Robotiseacute de ProductionPrincipe de base

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6179

S y nd

e x

V5

En reacutesumeacute lrsquoapplicationutilisateur contient une

partie haut niveau enCC++ et une partie basniveau sous syndex avecun eacutechange de donneacuteesentre les deux partie en

utilisant la couche RTAIde linux

Equipe Systegraveme Robotiseacute de Production pp cat on aut n veauOn entend application haut

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6279

S y nd

e x

V5

niveau tout programmecomme la planification detrajectoires strateacutegies de

navigation etc hellipLrsquoeacutechange de donneacutees sefait par le biais desmeacutemoires partageacutees quifont parti du noyau RTAI

et de lrsquoespace utilisateursde Linux

Toute ressource preacutesente sur la carte Robosoft peutecirctre partageacutee sans aune restriction

Equipe Systegraveme Robotiseacute de Production pp cat on as n veauUne application bas niveau

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6379

S y nd

e x

V5

Une application bas niveau

est un programme conccedilusous syndex comme lacommande des moteurs la

lecture des capteurs etc hellipLes ressources mateacuteriellessont controcircler par plusieurs

cartes MPC555 Ces cartessrsquoeacutechangent des donneacuteesvia le bus CAN Donc ES

est prise en charge par lasource logicielle deacutedieacutee quisrsquoexeacutecute dans les cartes MPC555 puis la couche RTAI

est utiliseacute pour la mise agrave jour de meacutemoires partageacutees pour lrsquoespace utilisateurs linux drsquoeacutechange de donneacutees

Equipe Systegraveme Robotiseacute de ProductionUtilisation de linux_IO par syndex

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6479

S y nd

e x

V5

Equipe Systegraveme Robotiseacute de ProductionUtilisation de linux_IO par syndex

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6579

S y nd

e x

V5

Equipe Systegraveme Robotiseacute de Production

5

Utilisation de linux_IO par syndex

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6679

S y nd

e x

V5

Degraves que la conception de lrsquoapplication sous syndex esttermineacutee et apregraves compilation (AdequationDo it +GenExec) un fichier drsquoentecircte sous le nom de linioh est

automatiquement geacuteneacutereacute Ce fichier contient lesinformations neacutecessaires pour acceacuteder aux entreacutees enlecture et aux sorties en eacutecriture des opeacuterations linuxIO_

inseacutereacutees dans le graphe drsquoalgorithme Le contenu de cefichier est organiseacute en plusieurs parties une pour chaqueopeacuteration linux_IO preacutesente dans le graphe

Equipe Systegraveme Robotiseacute de Production

5

Utilisation de linux_IO par syndex linioh auto-generated C users API frontend

C i h b f 2001 i i i b f f

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6779

S y nd

e x

V5 Copyright Robosoft 2001 Pierre Pomiers ltpierrerobosoftfrgt

LINUX IO shared memory data segments

define SEG0_BASE 0x10000typedef struct

int js_spd_o0

int js_str_o0

int enc_R_o0int enc_L_o0

double odo_X_o0

double odo_Y_o0

double odo_T_o0int spd_R_o0

int spd_L_o0

int time

unsigned char sem shm_seg0_def

Nom du segment de meacutemoire partageacutee pour notre opeacuteration linuxIO_

7 signaux drsquoentreacutees Ces valeurs sonten lecture et sont peacuteriodiquementrafraicircchies par RTAI

2 signaux de sorties Ces valeurs sonten eacutecriture et sont peacuteriodiquementrafraicircchies par RTAI

Equipe Systegraveme Robotiseacute de Production

5

Crsquoest une eacutetape tregraves facile il suffit drsquoinclure le fichier drsquoentecirctelinio h dans le code du fichier en CC++ comme suit

Utilisation de linuxIO_ par un programme CC+

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6879

S y nd

e x

V5 linioh dans le code du fichier en CC++ comme suit

include linioh

include ltrtai_shmhgt

static shm_seg0_def seg0

shm_seg0_def robot

seg0 = rtai_malloc (SEG0_BASE sizeof (shm_seg0_def))

if (seg0-gtsem = 0) bcopy (seg0 amprobot sizeof (shm_seg0_def))helliphelliphellip

helliphelliphellip bcopy (amprobot seg0 sizeof (shm_seg0_def))helliphelliphelliphelliphelliphellip

rtai_free (SEG0_BASE seg0)

fichier drsquoentecircte de la meacutemoire partageacutee fourni dans la couche RTAI de linux

Initialisation du segment SEG0_BASE Allocation de lameacutemoire pointeacutee

par seg0

Lecture des donneacutees provenant du bas

niveau

Mise agrave jours du segment de meacutemoire partageacutee

Libeacuterer le segment de meacutemoire alloueacute

Equipe Systegraveme Robotiseacute de Production

5

Plan

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6979

S y nd e x

V5

bull Introductionbull Meacutethodologie AAA

bull Installationbull Utilisation du logiciel Syndex

bull Macrosbull LinuxIO un interface CC++ avec SynDEx

bull Exemple drsquoapplication Robuter-ULM

Equipe Systegraveme Robotiseacute de Production

V5

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7079

S y nd e x

V5

Exemple dapplication Exemple dapplication Robuter Robuter--ULM ULM

Equipe Systegraveme Robotiseacute de Production

V5

Description Robuter-ULMbull Base mobile (2-RM 2-RF)

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7179

S y nd e x

V

bull Bras ultra-leacuteger 6 axesbull Ceinture 24 capteurs US

bull Capteur drsquoefforts 6 axes

bull Cameacutera CCD monochromeavec carte drsquoacquisition

bull PC embarqueacute MMX 233

bull OS linux redhat 61 avecRTAI V-13

bull 3 bouton drsquoarrecirct drsquourgence

bull 4 batteries 48 VDC 4 X12V 60 Ah

bull Entreacutee Joystick

bull Liaison Ethernet sans fil

Le manipulateur mobile Robuter-ULM comprend

Equipe Systegraveme Robotiseacute de Production

V5

Base Mobilebull dimension

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7279

S y nd e x

V

1025 mm de longueur 680 mm de largueur et 44 cm de hauteurbull Poids environ 150 kg avec les batteriesbull charge jusqursquoagrave 120 kg

bull vitesse de 5cms agrave 125 msbull Moteurs 2 X 300 W DC 48 VDCbull orientation par diffeacuterence de vitesse

bull Preacutecision Position par encodeurs optiquesbull Deux roues motrices diffeacuterentielles et de deux roues follesbull Drsquoune ceinture de 24 capteurs Ultrasons

bull Une carte MPC555 de Robosoft pour le controcircle des deuxmoteurs DC des 2 rouesbull Un systegraveme drsquoodomeacutetrie qui donne la position relative du robot

par rapport agrave son repegravere

Equipe Systegraveme Robotiseacute de Production

V5

bull dimension Faute de documentation

Bras U tra- eacuteger

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7379

S y nd e x

V Faute de documentation

bull Poids moins de 20 kgbull charge 2 kgbull Moteurs 6 moteurs DC

bull gripper pince eacutelectrique 2 doigtsbull Reacutepeacutetabiliteacute +- 1mmbull 3 carte MPC555 de Robosoft lrsquoune pour le capteur drsquoeffort et les

deux autres pour les 6 moteurs + moteur de la pincebull Position encodeur increacutemental

1 2 3 4 5 6Axisrange

plusmn90deg 0-90deg plusmn80deg plusmn100deg plusmn90deg plusmn110deg

vitesse 180degs 180degs 180degs 180degs 180degs 180degs

Equipe Systegraveme Robotiseacute de Production

V5

rc tecture ar ware

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7479

S y nd e x

V

Equipe Systegraveme Robotiseacute de Production

V5

Pro eacutemat quePlusieurs applications peuvent ecirctre impleacutementeacutees sur le robot

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7579

S y nd e x

V

Cependant il faut faire la diffeacuterence entre les applications quidemande lrsquoutilisation de syndex et les applications qui neneacutecessite qursquoune programmation en CC++ Agrave titre drsquoexemple

bull Localisationbull Commande en position

bull Commande en forcebull Navigation

bull Geacuteneacuteration de trajectoire

bull Vision

Equipe Systegraveme Robotiseacute de Production

V5 bull Pince eacutelectrique (TOR)

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7679

S y nd e x

Vq ( )

bull Pince possegravede des ES Logiques

Notre application consiste agrave

bull Recevoir lrsquoeacutetat de la pince (fermeacutee ouverte )

bull Envoyer une commande vers la pince

Capture

drsquoinformation

Open

Close

CommandeMeacutemoire

Partageacutee

Actionneur

Pince Prise de deacutecision Pince

Equipe Systegraveme Robotiseacute de Production

V5

Sc eacutema eacute ectr que

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7779

S y nd e x

Equipe Systegraveme Robotiseacute de Production

V5

Conclusion

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7879

S y nd e x bull Introduction

bull Meacutethodologie AAA

bull Installationbull Utilisation du logiciel Syndex

bull Macrosbull LinuxIO un interface CC++ avec SynDEx

bull Exemple drsquoapplication Robuter-ULM

Equipe Systegraveme Robotiseacute de Production

V5

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7979

S y nd e x

Questions

Page 19: Cours Syndex

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 1979

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Exigences mateacuteriels

bull Un PC avec un processeur de la famille Intel(80386 au minimum) ou un AMD

bull Une Carte de bus CAN (celle qui est installeacuteecrsquoest NuDACQ PCI-7841 baseacutee sur un chipPhilips SJA1000)

Ces deux speacutecifications sont suffisants pour ledeacuteveloppement drsquoune application RTAI

bull Pour les robots acquis il faut rajouter les cartes decontrocircle baseacutees sur le microcontrocircleur MPC555

Exigences logicielle

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 2079

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Exigences logiciellebull Un environnement sous Linux (quelle que soit la

distribution)bull Un module RTAI (Real-Time Applications

implementations)bull GNU gcc (outil de compilation)bull GNU binutils (outil pour assembler et eacutediter les liens

bull Le Logiciel Syndex V5bull Les macros de syndex pour

- carte de controcircle Robosoft- microcontrocircleur MPC555 de Motorola- PC sous LinuxRTAI

- Bus CAN

Installation de Syndex V

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 2179

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Installation de Syndex V

bull Creacuteation du reacutepertoire de destinationbull Copier le fichier avec la commande

cp syndex-xxx-linuxtgz rep_desbull Se mettre sous le reacutepertoire de destination puisdeacutecompresser le fichier avec la commande

tar zxvf syndex-xxx-linuxtgzCeci creacuteera sous le reacute pertoire de destination un sou

reacutepertoire de syndex contenant tout les fichiersDans le fichier syndexbat il faut mettre agrave jour lechemin du reacutepertoire de syndex

Arborescences des Reacutepertoire

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 2279

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Arborescences des Reacutepertoire

Apregraves lrsquoinstallation il est impeacuteratif drsquoorganiser lesreacutepertoires pour que lors de lrsquoeacutedition des liens le

fichier makefiles deacutepend de cette organisationLrsquoorganisation qui existe actuellement est comme

suit bull Apps applications deacuteveloppeacutees sous syndexbull Macros macros deacuteveloppeacutes pour syndex V5bull Rtai module rtai ou un lien symbolique qui point vers le reacutepertoire drsquoinstallation

Pla

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 2379

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Pla

bull Introduction

bull Meacutethodologie AAA

bull Installation

bull Utilisation du logiciel Syndex

bull Macros

bull LinuxIO un interface CC++ avec SynDEx

bull Exemple drsquoapplication Robuter-ULM

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 2479

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Utilisation du logicielUtilisation du logicielSyndexSyndex V5V5

bull Utilisation de lrsquointerface

bull Algorithme

bull Architecture

bull Caracteacuteristiques

bull Contraintes

bull Adeacutequation

bull Geacuteneacuteration du code exeacutecutif

SynDE

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 2579

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

SynDESynDEx est un logiciel graphique qui impleacutemente lameacutethodologie AAA et qui offre plusieurs fonctionnaliteacutes

bull Speacutecification drsquoun algorithme drsquoapplication saisi sousforme drsquoun graphe

bull Speacutecification drsquoun graphe drsquoarchitecture multi-composant

bull Heuristique pour la distribution et lrsquoordonnancement delrsquoalgorithme drsquoapplication sur lrsquoarchitecture avecoptimisation du temps de reacuteponse

bull Geacuteneacuteration des exeacutecutifs distribueacutes temps reacuteel

Utilisation de lrsquointerface

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 2679

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Utilisation de l interface

Utilisation de lrsquointerface

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 2779

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Utilisation de l interface

Utilisation de lrsquointerface

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 2879

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Utilisation de l interface

Algorithm

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 2979

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Algorithm

Lrsquoalgorithme est speacutecifieacute comme un graphe orienteacute ougravebull chaque sommet est une opeacuteration qui calcule les sorties

des entreacutees agrave chaque opeacuteration doit correspondre uneseacutequence drsquoinstructions compileacutee seacutepareacutement

bull Chaque arc est une deacutependance de donneacutees entre deux

opeacuterations (ou plus dans le cas de diffusion) c-a-d lasortie drsquoune opeacuteration est lrsquoentreacutee de lrsquoautre opeacuteration(ou de plusieurs autres opeacuterations) une entreacutee peut ecirctreconnecteacutee seulement agrave une sortie de mecircme type dedonneacutees

gor t m

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3079

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

gor t mon distingue 4 types de sommets

Algorithm

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3179

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Algorithmbull Le sommet function possegravede au moins une entreacutee et

une sortie crsquoest une opeacuteration agrave libre effet qui calculeses sorties uniquement agrave partir de ses entreacutees (c-a-d niagrave partir des variables globales ni agrave partir des

preacuteceacutedentes valeurs de ces entreacutees)bull Le sommet extio permet lrsquoacquisitionlrsquoeacutecriture des

entreacuteessorties on distingue trois cas

1 Capteur sans entreacutee agrave chaque reacuteaction sa sortierepreacutesente la valeur lue du capteur

2 Actionneur sans sortie agrave chaque reacuteaction ilenvoi son entreacutee agrave lrsquoactionneur

3 Linux_IO ces des meacutemoires partageacutees qui

permettent le transfert de donneacutees entre syndexet un langage eacutevolueacute

E i S egrave R b i eacute d P d i Algorithm

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3279

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Algorithm

bull Le sommet memory possegravede uniquement uneentreacutee et une sortie crsquoest une opeacuteration agrave effetunique qui met la sortie degraves la premiegravere reacuteaction

agrave une valeur initiale calculeacutee auparavant et puisla sortie de la prochaine reacuteaction nrsquoest que

lrsquoentreacutee de la preacuteceacutedente reacuteactionbull Le sommet constant ne possegravede aucune entreacutee

il calcule sa sortie une seule fois avant la premiegravere reacuteaction puis la sortie demeure la mecircme pour chaque reacuteaction

E i S tegrave R b ti eacute d P d ti Algorithm

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3379

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

AlgorithmPour lrsquoalgorithme chaque sommet est caracteacuteriseacute par

bull Son type geacuteneacuterique (function extio memory constant)bull Un nom unique (tout les sommets doivent avoir des

noms diffeacuterents)bull Son type identifiant sa seacutequence drsquoinstructionsassocieacute

bull Sa liste drsquoarguments ougrave chaque argument est speacutecifieacute par bull Le nombre drsquoentreacuteesortiebull Le type de donneacuteesbull Le nom (tout les arguments doivent avoir des noms

diffeacuterents)

Equipe Systegraveme Robotiseacute de Production Architecture

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3479

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

ArchitectureLrsquoarchitecture est speacutecifieacutee comme un graphe non orienteacute

ougrave bullChaque sommet est une ressource seacutequentielle il y adeux types de sommets

bull processeur crsquoest une ressource de calcul enmesure drsquoexeacutecuter seacutequentiellement les opeacuterationsdrsquoun algorithme il pourrait ecirctre un processeur ou

un circuit inteacutegreacute speacutecialiseacutebull meacutedia crsquoest une ressource de communicationen mesure drsquoexeacutecuter seacutequentiellement un transfertde donneacutees entre les meacutemoires des processeurs quilui sont connecteacutes

bull chaque arc est une connexion bidirectionnelle entreun processeur et un meacutedia

Equipe Systegraveme Robotiseacute de Production Architecture

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3579

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

ArchitecturePour lrsquoarchitecture chaque sommet est caracteacuteriseacute par

bull Un nom uniquebullSon type (processeur or meacutedia)bull Son type identifiant caracteacuteristiques mateacuterielles

bull Sa liste de connecteurs ougrave chaque connecteur est speacutecifieacute par bull son type identifiant le type de meacutedia agrave qui il peut ecirctreconnecteacute

bullUn nom

Equipe Systegraveme Robotiseacute de ProductionCaracteacuter st que

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3679

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Caracteacuter st que Nous distinguons deux cateacutegories de caracteacuteristiques lrsquoune relative

aux opeacuterations et lrsquoune agrave la communication 1 Comment speacutecifier les caracteacuteristiques des opeacuterations sous le menu AdequationAlOp_ArOp on obtient une boite

de dialogue avec

une liste de toutles types de

processeurs et

pour chaque processeur uneliste de tout les

types drsquoopeacuterationsqui peut lesexeacutecuter avec ladureacutee drsquoexeacutecutioncorrespondante

Equipe Systegraveme Robotiseacute de ProductionCaracteacuteristique

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3779

q p y

S y nd

e xV

5

q2 Comment speacutecifier les caracteacuteristiques de communication

sous le menu AdequationAlIO_ArIO on obtient une boitede dialogue avec une liste de tout les types de meacutedia et

pour chaque meacutedia une liste de tout les types de donneacutees

qui peut transfeacuterer avec la dureacutee de transfertcorrespondante

Equipe Systegraveme Robotiseacute de Production Contraintes

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3879

S y nd

e xV

5

Pour contraindre une opeacuteration agrave srsquoexeacutecuter sur un processeur donneacutee

1Seacutelectionner le(s) opeacuteration(s) agrave contraindre2 Seacutelectionner la commande AlgorithmSetConstraint3 Seacutelectionner le processeur qui doit exeacutecute les opeacuterationsseacutelectionneacutees

Pour enlever les contraintes seacutelectionner lrsquoopeacuteration puis exeacutecuterla commande AlgorithmDeleteConstraint

Pour voir sur quel processeur une opeacuteration est y contrainteseacutelectionner lrsquoopeacuteration puis exeacutecuter la commandeAlgorithmShowConstraint le processeur correspondant y sera

seacutelectionneacutePour voir toute les opeacuterations qui sont contraintes sur un processeurseacutelectionner le processeur puis exeacutecuter la commande

ArchitectureShowConstrained du menu les opeacuterationscorrespondantes y seront seacutelectionneacutees

Equipe Systegraveme Robotiseacute de Production A eacutequat o

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3979

S y nd

e xV

5

q

Pour construire le planificateur des opeacuterations dugraphe drsquoalgorithme sur les processeurs du graphedrsquoarchitecture qui effectue automatiquement le routage

des deacutependances de donneacutees inter-processeurs et lacreacuteation et la planification des opeacuterations decommunication sur le meacutedia du graphe drsquoarchitectureon utilise la commande AdequationDoIt

Cette commande creacutee un heuristique qui cherche agraveminimiser le chemin critique du graphe drsquoalgorithme

Equipe Systegraveme Robotiseacute de ProductionGeacuteneacuteration du code exeacutecuti

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4079

S y nd

e xV

5Le code exeacutecutif est la partie qui gegravere les ressources

mateacuterielles pour les allouer aux besoins de lrsquoalgorithmedrsquoapplication Les ressources agrave allouer sont

1 Les espaces meacutemoires des processeurs2 Le temps des seacutequences drsquoinstructions3 Le temps des meacutedia de communication

Gracircce agrave la meacutethodologie AAA et le logiciel Syndexlrsquoutilisateur est exempte drsquoeacutecrire du code pour geacuterer ces

ressources Donc par simple exeacutecution de la commandeAdequationGenExec un code distribueacute pour chaque processeur est automatiquement geacuteneacutereacute Ce code est en

fait un exeacutecutif geacuteneacutereacute sur mesure pour lrsquoalgorithme etlrsquoarchitecture

Equipe Systegraveme Robotiseacute de ProductionGeacuteneacuteration du code exeacutecuti

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4179

S y nd

e xV5

Pour chaque processeur de lrsquoarchitecture un fichier

source macro-exeacutecutif m4 avec le mecircme nom estgeacuteneacutereacute plus un macro-makefile ayant le mecircme nom quecelui de lrsquoapplication Chacun de ces fichiers doit ecirctre

transcrit par le macro-processeur GNU M4 (assembleurC) Cette transcription deacutepend de plusieurs fichiers

1 Fichier syndexm4x qui deacutefini les macrosgeacuteneacuteriques de syndex2 Fichier processorTypem4x qui deacutefini les macros

de bas niveau du processeur3 Fichier applicationNamem4x qui deacutefini les macros

speacutecifiques agrave lrsquoapplication

4 Fichier mediaTypem4x qui deacutefini les macros decommunication de bas niveau du type de media

Equipe Systegraveme Robotiseacute de ProductionCreacuteat on rsquoapp cat on

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4279

S y nd

e xV5 Arborescence des reacutepertoires Rep_travail

Applicationmacros

~rtai

Eacutevolution de lrsquoapplication

Phase 1

Edition des macros(C ou Assembleur)

+GNUmakefile

Phase 2

Edition du graphe

(Algorithme amp

Architecteure)

Phase 3

Compilation amp Exeacutecution

Equipe Systegraveme Robotiseacute de ProductionSeacutequence de compilation de Synde

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4379

S y nd

e xV5

Equipe Systegraveme Robotiseacute de Production Plan

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4479

S y nd

e xV5

bull Introduction

bull Meacutethodologie AAA

bull Installation

bull Utilisation du logiciel Syndex

bull Macros

bull LinuxIO un interface CC++ avec SynDEx

bull Exemple drsquoapplication Robuter-ULM

Equipe Systegraveme Robotiseacute de Production

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4579

S y nd

e xV5

Macros Macros

bull Deacutefinition

bull Types de macros

bull Carte Robosoft MPC555

bull Macros Geacuteneacuterique MPC555

bull Macros speacutecifique Robosoftbull Macros de Communication

bull Macros drsquoapplicationbull Structure du fichier Macro

Equipe Systegraveme Robotiseacute de Production Deacutefinition

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4679

S y nd

e xV5

Un macro-processeur est un programme qui consommeen entreacutee une chaicircne de caractegraveres (texte source) la

traite seacutequentiellement en substituant chaque sous-chaicircne qursquoil reconnaicirct (Appel de macro) par unechaicircne correspondante de substitution ( Deacutefinition de

macro) qursquoil traite agrave nouveau jusqursquoagrave ce qursquoil nrsquo y ait plus de substitution possible et qui produit en sortie lachaicircne de caractegraveres traiteacutee

Equipe Systegraveme Robotiseacute de Productionypes e macrosL diffeacute t di ti t d d

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4779

S y nd

e xV5

Les diffeacuterents macros se distinguent en deux grandes

classes bull Macros geacuteneacuteriques

en geacuteneacuteral ceux sont des macros non destineacutes agraveecirctre utiliser directement par lrsquointerface syndexmais plutocirct utiliseacutees pour la programmation

drsquoautres macros (macros MPC555)bull Macros utilisateurs

macros utiliseacutes directement par syndex ils sontspeacutecifiques agrave lrsquoapplication (macros decommunication macros speacutecifiques robosoft

macros speacutecifiques agrave lrsquoapplication)

Equipe Systegraveme Robotiseacute de ProductionCarte Robosoft MPC555La carte Robosoft MPC555 est conccedilue pour la commande de robot de veacutehicule

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4879

S y nd

e xV5

(1) Connecteur du chip MPC555(2) Alimentation continue(3) Interface BDM (Basic Debug Interface)(4) Entreacute Analogique (Joystickhellip)(5) EntreacuteSortie logiques(6) Ligne seacuterie Synchrone (Codeur absolu)(7) Ligne seacuterie Asynchrone (Port 0)

(8) Ligne seacuterie Asynchrone (Port 1)(9) Connecteur du bus CAN (Port 0)(10) Connecteur du bus CAN (Port 1)(11) Axe 1(13) Axe 2(14) Axe 3(15) Axe 4

La carte Robosoft MPC555 est conccedilue pour la commande de robot de veacutehiculeeacutelectrique ou toute autre machine Elle permet de commander un axe gracircce agrave

lrsquoajout drsquoune carte fille le controcircle srsquoeacutetend jusqursquoagrave 4 axesCette carte est baseacutee sur le microcontrocircleur MPC555 32-bit de MotorolaElle peut opeacuterer agrave une freacutequence

de 40 MHz Divers signauxlogique et analogique peuventecirctre utiliser pour lrsquoacquisition deet la commande de mateacuteriel Les

sorties disponibles peuvent ecirctreanalogique ou PWMOn y trouve

Equipe Systegraveme Robotiseacute de ProductionArchitecture du MPC555

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4979

S y nd

e xV5

Equipe Systegraveme Robotiseacute de Productionaract r st ques u

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5079

S y nd

e xV5

Equipe Systegraveme Robotiseacute de Productionacros n r quesbull GPIO (General-Purpose InputOutput)

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5179

S y nd

e xV5

GPIO (General Purpose InputOutput)ce macro utilise le module USIU qui lui fourni 64 pins pour desentreacuteessorties numeacuteriques ordinaires (IO de la carte Robosoft lirelrsquoeacutetat de la pince envoi de commande agrave la pince lire les alarmes)

bull QADC (Queued Analog to Digital Converter)en utilisant le module QADC ce macro permet la conversion drsquounsignal analogique en entreacutee en un signal numeacuterique multi-niveaux(lire les donneacutees du capteur drsquoeacuteffort du joystick)

bull MIOS (Modular InputOutput System)Le module MIOS fourni 16 pins drsquoES numeacuteriques Sur la carte deRobosoft tous les pins sont en sortie Les 16 pins sont reacutepartiscomme suit

utilisateurs reacuteserveacutes

les pins de 0 agrave 11 sont reacuteserveacutes car ils sont preacutevus agrave ecirctre utiliseacutes pour unmateacuteriel particulier Mais si ce mateacuteriel nrsquoest pas utiliseacute lrsquoutilisateur peut lesutiliser librement

15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

Equipe Systegraveme Robotiseacute de ProductionMacros Geacuteneacuter ques MPC55

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5279

S y nd

e xV5

bull PWM (Pulse width Modulation)utilise le module MIOS (pins de 4-7 pour la direction des moteurset de 8-11 pour la validation) pour la commande des actionneursnumeacuteriques en PWM

bull TPU (Time Processor Units)les macros lieacutes agrave ce module permettent la lecture des encodeurs

increacutementauxbull QSPI (Queued Serial Peripheral Interface)

ce module fait partie du module QSMCM et les macros lieacutes servent

agrave son initialisation pour une communication avec du mateacuterielsexternes via le bus seacuterie synchrone

Equipe Systegraveme Robotiseacute de ProductionMacros Geacuteneacuter ques MPC55

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5379

S y nd

e x

V5 bull Serial port support (Polling implementation)

le MPC555 comprend dans le module QSMCM une interface decommunication seacuterie SCI qui permet la communication avec dumateacuteriels externes via un bus seacuterie asynchrone Plusieurs macros

sont lieacutes agrave cette interface pour initialiser et eacutetablir la communicationbull Serial port support (interrupt handling implementation)

pour la mecircme interface SCI du module QSMCM pour cette

meacutethode drsquoimpleacutementation les macros lieacutes initialisent et eacutetablissentla communication en mode par interruption ce qui permet dedeacutetecter lrsquoarriveacutee des donneacutees sur le port seacuterie au lieu de le scruter

en permanence

tous ces macros on les retrouvent dans le fichier 555m4x

Equipe Systegraveme Robotiseacute de ProductionMacros Speacutec ques Ro oso tles macros suivants sont deacutedieacutes agrave la carte de Robosoft MPC555

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5479

S y nd

e x

V5

bull Initialisation de la carte Robosoftmain_ini_() macro ne doit pas ecirctre utiliser par les programmateursdu fait qursquoelle sert qursquoagrave initialiser la carte robosoft Macro interne agrave

syndex dont lrsquoappel est automatique lors de geacuteneacuteration drsquoexeacutecutifMPC555

bull DAC (Digital to Analog Converter)

macro permet lrsquoutilisation du convertisseur de carte robosoft via lemodule MIOs en utilisant les pins de 0 agrave 2

bull LED (on-bord LED interface)

macro permet la gestion de la LED de la carte robosoft connecteacuteeau module QSPI (pin PCS1)

bull SPI absolute encoder

macro permet lrsquoutilisation lrsquointerface du codeur absolu de la carterobosoft connecteacute au module QSPI

Equipe Systegraveme Robotiseacute de ProductionMacros Speacutec ques Ro oso tbull Motor amplifier direction

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5579

S y nd

e x

V5

Motor amplifier directionmacro qui permet de geacuterer la direction des moteurs

bull Motor power amplifier validationles moteurs embarqueacutes sur les robots sont eacutequipeacutes de freins

eacutelectriquement commandable Ce macro permet drsquoenvoyer unsignal drsquoinhibition pour deacutebloquer les freins

bull Watch dog

pour des raisons de seacutecuriteacute un meacutecanisme mateacuteriel que robosofta ajouteacute sur la carte Ce watch-dog vise agrave stopper lrsquoactiviteacute dumoteur en cas ougrave le programme plante Le watch est impleacutementeacute

comme un time-out mateacuteriel Srsquoil nrsquoest pas rafraicircchi peacuteriodiquement il transmet un signal de sortie ce qui enlegraveve lavalidation de lrsquoamplificateur de puissance donc lrsquoarrecirct dumouvement

ces macros se trouvent dans le fichier RSBm4x

Equipe Systegraveme Robotiseacute de Production

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5679

S y nd

e x

V5

Macros de Communicationchaque meacutedia de communication (bus CAN ) est une ressourceseacutequentielle ougrave les transferts de donneacutees entre processeurs doiventsuivre un certain ordre Donc ce macro de communication sert agravedeacutefinir cet ordre et agrave identifier le protocole de communication lecodagedeacutecodage de lrsquoinformation et la synchronisation

on trouve ces macros dans le fichier CANm4x

Macros drsquoapplicationce genre de macros sont speacutecifique au mateacuteriel en question et aussiagrave lrsquoapplication en particulier Ce sont des macros utilisateurs

on trouve ces macros dans le fichier Application_namem4x

Equipe Systegraveme Robotiseacute de Production

section include (pour inclure drsquoautres fichiers macro agrave utiliseStructure du fichier macr

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5779

S y nd

e x

V5

section define (pour tous les macros utilisateurs)MGC lsquoINITrsquo (MGC Macro Generation Context variable)

divert (declaration) (deacutebut du macro)

(deacuteclaration des variables des meacutemoires et des csts

divert (o)

MGC lsquolooprsquocode en assembleur code en C

dnl (commentaires)

MGC lsquoENDrsquo dnl (fin de la macros)divert lsquo lsquo dnl

macros MPC555meacutemoire MPC555

constante MPC555

macros RTAImeacutemoire RTAI

constante RTAI

Equipe Systegraveme Robotiseacute de Production Plan

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5879

S y nd

e x

V5

bull Introduction

bull Meacutethodologie AAA

bull Installationbull Utilisation du logiciel Syndex

bull Macrosbull LinuxIO un interface CC++ avec SynDEx

bull Exemple drsquoapplication Robuter-ULM

Equipe Systegraveme Robotiseacute de Production

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5979

S y nd

e x

V5

LinuxIO LinuxIO une interface une interface

CC++ avecCC++ avec SynDExSynDEx

bull Principe de basebull Utilisation de linuxIO_ par syndex

bull Utilisation de linuxIO_ par un programmeCC++

Equipe Systegraveme Robotiseacute de ProductionPrincipe de baseSyndex fourni une interface graphique pour la conception

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6079

S y nd

e x

V5

Syndex fourni une interface graphique pour la conception

drsquoapplications Par contre des fois nous avons besoin drsquoautresfonctionnaliteacutes non disponibles donc il faut les creacuteer Cependantgeacuteneacuterer des macros pour syndex srsquoavegravere difficile pour certains du

fait qursquoil faut avoir une bonne connaissance de la programmation bas niveau Dans ce cas lrsquoutilisation de linux_IO trouve sa placedans un contexte particulier interfacer des applications CC++utilisateurs avec des applications embarqueacutees temps reacuteeldeacuteveloppeacutees sous syndex

Par rapport agrave ce contexte de programmation lrsquoorganisation du

deacuteveloppement des applications est structureacutee en deux parties 1 Application haut niveau

2 Application bas niveau

Equipe Systegraveme Robotiseacute de ProductionPrincipe de base

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6179

S y nd

e x

V5

En reacutesumeacute lrsquoapplicationutilisateur contient une

partie haut niveau enCC++ et une partie basniveau sous syndex avecun eacutechange de donneacuteesentre les deux partie en

utilisant la couche RTAIde linux

Equipe Systegraveme Robotiseacute de Production pp cat on aut n veauOn entend application haut

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6279

S y nd

e x

V5

niveau tout programmecomme la planification detrajectoires strateacutegies de

navigation etc hellipLrsquoeacutechange de donneacutees sefait par le biais desmeacutemoires partageacutees quifont parti du noyau RTAI

et de lrsquoespace utilisateursde Linux

Toute ressource preacutesente sur la carte Robosoft peutecirctre partageacutee sans aune restriction

Equipe Systegraveme Robotiseacute de Production pp cat on as n veauUne application bas niveau

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6379

S y nd

e x

V5

Une application bas niveau

est un programme conccedilusous syndex comme lacommande des moteurs la

lecture des capteurs etc hellipLes ressources mateacuteriellessont controcircler par plusieurs

cartes MPC555 Ces cartessrsquoeacutechangent des donneacuteesvia le bus CAN Donc ES

est prise en charge par lasource logicielle deacutedieacutee quisrsquoexeacutecute dans les cartes MPC555 puis la couche RTAI

est utiliseacute pour la mise agrave jour de meacutemoires partageacutees pour lrsquoespace utilisateurs linux drsquoeacutechange de donneacutees

Equipe Systegraveme Robotiseacute de ProductionUtilisation de linux_IO par syndex

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6479

S y nd

e x

V5

Equipe Systegraveme Robotiseacute de ProductionUtilisation de linux_IO par syndex

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6579

S y nd

e x

V5

Equipe Systegraveme Robotiseacute de Production

5

Utilisation de linux_IO par syndex

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6679

S y nd

e x

V5

Degraves que la conception de lrsquoapplication sous syndex esttermineacutee et apregraves compilation (AdequationDo it +GenExec) un fichier drsquoentecircte sous le nom de linioh est

automatiquement geacuteneacutereacute Ce fichier contient lesinformations neacutecessaires pour acceacuteder aux entreacutees enlecture et aux sorties en eacutecriture des opeacuterations linuxIO_

inseacutereacutees dans le graphe drsquoalgorithme Le contenu de cefichier est organiseacute en plusieurs parties une pour chaqueopeacuteration linux_IO preacutesente dans le graphe

Equipe Systegraveme Robotiseacute de Production

5

Utilisation de linux_IO par syndex linioh auto-generated C users API frontend

C i h b f 2001 i i i b f f

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6779

S y nd

e x

V5 Copyright Robosoft 2001 Pierre Pomiers ltpierrerobosoftfrgt

LINUX IO shared memory data segments

define SEG0_BASE 0x10000typedef struct

int js_spd_o0

int js_str_o0

int enc_R_o0int enc_L_o0

double odo_X_o0

double odo_Y_o0

double odo_T_o0int spd_R_o0

int spd_L_o0

int time

unsigned char sem shm_seg0_def

Nom du segment de meacutemoire partageacutee pour notre opeacuteration linuxIO_

7 signaux drsquoentreacutees Ces valeurs sonten lecture et sont peacuteriodiquementrafraicircchies par RTAI

2 signaux de sorties Ces valeurs sonten eacutecriture et sont peacuteriodiquementrafraicircchies par RTAI

Equipe Systegraveme Robotiseacute de Production

5

Crsquoest une eacutetape tregraves facile il suffit drsquoinclure le fichier drsquoentecirctelinio h dans le code du fichier en CC++ comme suit

Utilisation de linuxIO_ par un programme CC+

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6879

S y nd

e x

V5 linioh dans le code du fichier en CC++ comme suit

include linioh

include ltrtai_shmhgt

static shm_seg0_def seg0

shm_seg0_def robot

seg0 = rtai_malloc (SEG0_BASE sizeof (shm_seg0_def))

if (seg0-gtsem = 0) bcopy (seg0 amprobot sizeof (shm_seg0_def))helliphelliphellip

helliphelliphellip bcopy (amprobot seg0 sizeof (shm_seg0_def))helliphelliphelliphelliphelliphellip

rtai_free (SEG0_BASE seg0)

fichier drsquoentecircte de la meacutemoire partageacutee fourni dans la couche RTAI de linux

Initialisation du segment SEG0_BASE Allocation de lameacutemoire pointeacutee

par seg0

Lecture des donneacutees provenant du bas

niveau

Mise agrave jours du segment de meacutemoire partageacutee

Libeacuterer le segment de meacutemoire alloueacute

Equipe Systegraveme Robotiseacute de Production

5

Plan

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6979

S y nd e x

V5

bull Introductionbull Meacutethodologie AAA

bull Installationbull Utilisation du logiciel Syndex

bull Macrosbull LinuxIO un interface CC++ avec SynDEx

bull Exemple drsquoapplication Robuter-ULM

Equipe Systegraveme Robotiseacute de Production

V5

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7079

S y nd e x

V5

Exemple dapplication Exemple dapplication Robuter Robuter--ULM ULM

Equipe Systegraveme Robotiseacute de Production

V5

Description Robuter-ULMbull Base mobile (2-RM 2-RF)

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7179

S y nd e x

V

bull Bras ultra-leacuteger 6 axesbull Ceinture 24 capteurs US

bull Capteur drsquoefforts 6 axes

bull Cameacutera CCD monochromeavec carte drsquoacquisition

bull PC embarqueacute MMX 233

bull OS linux redhat 61 avecRTAI V-13

bull 3 bouton drsquoarrecirct drsquourgence

bull 4 batteries 48 VDC 4 X12V 60 Ah

bull Entreacutee Joystick

bull Liaison Ethernet sans fil

Le manipulateur mobile Robuter-ULM comprend

Equipe Systegraveme Robotiseacute de Production

V5

Base Mobilebull dimension

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7279

S y nd e x

V

1025 mm de longueur 680 mm de largueur et 44 cm de hauteurbull Poids environ 150 kg avec les batteriesbull charge jusqursquoagrave 120 kg

bull vitesse de 5cms agrave 125 msbull Moteurs 2 X 300 W DC 48 VDCbull orientation par diffeacuterence de vitesse

bull Preacutecision Position par encodeurs optiquesbull Deux roues motrices diffeacuterentielles et de deux roues follesbull Drsquoune ceinture de 24 capteurs Ultrasons

bull Une carte MPC555 de Robosoft pour le controcircle des deuxmoteurs DC des 2 rouesbull Un systegraveme drsquoodomeacutetrie qui donne la position relative du robot

par rapport agrave son repegravere

Equipe Systegraveme Robotiseacute de Production

V5

bull dimension Faute de documentation

Bras U tra- eacuteger

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7379

S y nd e x

V Faute de documentation

bull Poids moins de 20 kgbull charge 2 kgbull Moteurs 6 moteurs DC

bull gripper pince eacutelectrique 2 doigtsbull Reacutepeacutetabiliteacute +- 1mmbull 3 carte MPC555 de Robosoft lrsquoune pour le capteur drsquoeffort et les

deux autres pour les 6 moteurs + moteur de la pincebull Position encodeur increacutemental

1 2 3 4 5 6Axisrange

plusmn90deg 0-90deg plusmn80deg plusmn100deg plusmn90deg plusmn110deg

vitesse 180degs 180degs 180degs 180degs 180degs 180degs

Equipe Systegraveme Robotiseacute de Production

V5

rc tecture ar ware

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7479

S y nd e x

V

Equipe Systegraveme Robotiseacute de Production

V5

Pro eacutemat quePlusieurs applications peuvent ecirctre impleacutementeacutees sur le robot

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7579

S y nd e x

V

Cependant il faut faire la diffeacuterence entre les applications quidemande lrsquoutilisation de syndex et les applications qui neneacutecessite qursquoune programmation en CC++ Agrave titre drsquoexemple

bull Localisationbull Commande en position

bull Commande en forcebull Navigation

bull Geacuteneacuteration de trajectoire

bull Vision

Equipe Systegraveme Robotiseacute de Production

V5 bull Pince eacutelectrique (TOR)

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7679

S y nd e x

Vq ( )

bull Pince possegravede des ES Logiques

Notre application consiste agrave

bull Recevoir lrsquoeacutetat de la pince (fermeacutee ouverte )

bull Envoyer une commande vers la pince

Capture

drsquoinformation

Open

Close

CommandeMeacutemoire

Partageacutee

Actionneur

Pince Prise de deacutecision Pince

Equipe Systegraveme Robotiseacute de Production

V5

Sc eacutema eacute ectr que

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7779

S y nd e x

Equipe Systegraveme Robotiseacute de Production

V5

Conclusion

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7879

S y nd e x bull Introduction

bull Meacutethodologie AAA

bull Installationbull Utilisation du logiciel Syndex

bull Macrosbull LinuxIO un interface CC++ avec SynDEx

bull Exemple drsquoapplication Robuter-ULM

Equipe Systegraveme Robotiseacute de Production

V5

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7979

S y nd e x

Questions

Page 20: Cours Syndex

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 2079

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Exigences logiciellebull Un environnement sous Linux (quelle que soit la

distribution)bull Un module RTAI (Real-Time Applications

implementations)bull GNU gcc (outil de compilation)bull GNU binutils (outil pour assembler et eacutediter les liens

bull Le Logiciel Syndex V5bull Les macros de syndex pour

- carte de controcircle Robosoft- microcontrocircleur MPC555 de Motorola- PC sous LinuxRTAI

- Bus CAN

Installation de Syndex V

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 2179

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Installation de Syndex V

bull Creacuteation du reacutepertoire de destinationbull Copier le fichier avec la commande

cp syndex-xxx-linuxtgz rep_desbull Se mettre sous le reacutepertoire de destination puisdeacutecompresser le fichier avec la commande

tar zxvf syndex-xxx-linuxtgzCeci creacuteera sous le reacute pertoire de destination un sou

reacutepertoire de syndex contenant tout les fichiersDans le fichier syndexbat il faut mettre agrave jour lechemin du reacutepertoire de syndex

Arborescences des Reacutepertoire

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 2279

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Arborescences des Reacutepertoire

Apregraves lrsquoinstallation il est impeacuteratif drsquoorganiser lesreacutepertoires pour que lors de lrsquoeacutedition des liens le

fichier makefiles deacutepend de cette organisationLrsquoorganisation qui existe actuellement est comme

suit bull Apps applications deacuteveloppeacutees sous syndexbull Macros macros deacuteveloppeacutes pour syndex V5bull Rtai module rtai ou un lien symbolique qui point vers le reacutepertoire drsquoinstallation

Pla

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 2379

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Pla

bull Introduction

bull Meacutethodologie AAA

bull Installation

bull Utilisation du logiciel Syndex

bull Macros

bull LinuxIO un interface CC++ avec SynDEx

bull Exemple drsquoapplication Robuter-ULM

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 2479

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Utilisation du logicielUtilisation du logicielSyndexSyndex V5V5

bull Utilisation de lrsquointerface

bull Algorithme

bull Architecture

bull Caracteacuteristiques

bull Contraintes

bull Adeacutequation

bull Geacuteneacuteration du code exeacutecutif

SynDE

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 2579

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

SynDESynDEx est un logiciel graphique qui impleacutemente lameacutethodologie AAA et qui offre plusieurs fonctionnaliteacutes

bull Speacutecification drsquoun algorithme drsquoapplication saisi sousforme drsquoun graphe

bull Speacutecification drsquoun graphe drsquoarchitecture multi-composant

bull Heuristique pour la distribution et lrsquoordonnancement delrsquoalgorithme drsquoapplication sur lrsquoarchitecture avecoptimisation du temps de reacuteponse

bull Geacuteneacuteration des exeacutecutifs distribueacutes temps reacuteel

Utilisation de lrsquointerface

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 2679

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Utilisation de l interface

Utilisation de lrsquointerface

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 2779

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Utilisation de l interface

Utilisation de lrsquointerface

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 2879

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Utilisation de l interface

Algorithm

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 2979

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Algorithm

Lrsquoalgorithme est speacutecifieacute comme un graphe orienteacute ougravebull chaque sommet est une opeacuteration qui calcule les sorties

des entreacutees agrave chaque opeacuteration doit correspondre uneseacutequence drsquoinstructions compileacutee seacutepareacutement

bull Chaque arc est une deacutependance de donneacutees entre deux

opeacuterations (ou plus dans le cas de diffusion) c-a-d lasortie drsquoune opeacuteration est lrsquoentreacutee de lrsquoautre opeacuteration(ou de plusieurs autres opeacuterations) une entreacutee peut ecirctreconnecteacutee seulement agrave une sortie de mecircme type dedonneacutees

gor t m

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3079

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

gor t mon distingue 4 types de sommets

Algorithm

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3179

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Algorithmbull Le sommet function possegravede au moins une entreacutee et

une sortie crsquoest une opeacuteration agrave libre effet qui calculeses sorties uniquement agrave partir de ses entreacutees (c-a-d niagrave partir des variables globales ni agrave partir des

preacuteceacutedentes valeurs de ces entreacutees)bull Le sommet extio permet lrsquoacquisitionlrsquoeacutecriture des

entreacuteessorties on distingue trois cas

1 Capteur sans entreacutee agrave chaque reacuteaction sa sortierepreacutesente la valeur lue du capteur

2 Actionneur sans sortie agrave chaque reacuteaction ilenvoi son entreacutee agrave lrsquoactionneur

3 Linux_IO ces des meacutemoires partageacutees qui

permettent le transfert de donneacutees entre syndexet un langage eacutevolueacute

E i S egrave R b i eacute d P d i Algorithm

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3279

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Algorithm

bull Le sommet memory possegravede uniquement uneentreacutee et une sortie crsquoest une opeacuteration agrave effetunique qui met la sortie degraves la premiegravere reacuteaction

agrave une valeur initiale calculeacutee auparavant et puisla sortie de la prochaine reacuteaction nrsquoest que

lrsquoentreacutee de la preacuteceacutedente reacuteactionbull Le sommet constant ne possegravede aucune entreacutee

il calcule sa sortie une seule fois avant la premiegravere reacuteaction puis la sortie demeure la mecircme pour chaque reacuteaction

E i S tegrave R b ti eacute d P d ti Algorithm

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3379

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

AlgorithmPour lrsquoalgorithme chaque sommet est caracteacuteriseacute par

bull Son type geacuteneacuterique (function extio memory constant)bull Un nom unique (tout les sommets doivent avoir des

noms diffeacuterents)bull Son type identifiant sa seacutequence drsquoinstructionsassocieacute

bull Sa liste drsquoarguments ougrave chaque argument est speacutecifieacute par bull Le nombre drsquoentreacuteesortiebull Le type de donneacuteesbull Le nom (tout les arguments doivent avoir des noms

diffeacuterents)

Equipe Systegraveme Robotiseacute de Production Architecture

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3479

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

ArchitectureLrsquoarchitecture est speacutecifieacutee comme un graphe non orienteacute

ougrave bullChaque sommet est une ressource seacutequentielle il y adeux types de sommets

bull processeur crsquoest une ressource de calcul enmesure drsquoexeacutecuter seacutequentiellement les opeacuterationsdrsquoun algorithme il pourrait ecirctre un processeur ou

un circuit inteacutegreacute speacutecialiseacutebull meacutedia crsquoest une ressource de communicationen mesure drsquoexeacutecuter seacutequentiellement un transfertde donneacutees entre les meacutemoires des processeurs quilui sont connecteacutes

bull chaque arc est une connexion bidirectionnelle entreun processeur et un meacutedia

Equipe Systegraveme Robotiseacute de Production Architecture

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3579

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

ArchitecturePour lrsquoarchitecture chaque sommet est caracteacuteriseacute par

bull Un nom uniquebullSon type (processeur or meacutedia)bull Son type identifiant caracteacuteristiques mateacuterielles

bull Sa liste de connecteurs ougrave chaque connecteur est speacutecifieacute par bull son type identifiant le type de meacutedia agrave qui il peut ecirctreconnecteacute

bullUn nom

Equipe Systegraveme Robotiseacute de ProductionCaracteacuter st que

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3679

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Caracteacuter st que Nous distinguons deux cateacutegories de caracteacuteristiques lrsquoune relative

aux opeacuterations et lrsquoune agrave la communication 1 Comment speacutecifier les caracteacuteristiques des opeacuterations sous le menu AdequationAlOp_ArOp on obtient une boite

de dialogue avec

une liste de toutles types de

processeurs et

pour chaque processeur uneliste de tout les

types drsquoopeacuterationsqui peut lesexeacutecuter avec ladureacutee drsquoexeacutecutioncorrespondante

Equipe Systegraveme Robotiseacute de ProductionCaracteacuteristique

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3779

q p y

S y nd

e xV

5

q2 Comment speacutecifier les caracteacuteristiques de communication

sous le menu AdequationAlIO_ArIO on obtient une boitede dialogue avec une liste de tout les types de meacutedia et

pour chaque meacutedia une liste de tout les types de donneacutees

qui peut transfeacuterer avec la dureacutee de transfertcorrespondante

Equipe Systegraveme Robotiseacute de Production Contraintes

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3879

S y nd

e xV

5

Pour contraindre une opeacuteration agrave srsquoexeacutecuter sur un processeur donneacutee

1Seacutelectionner le(s) opeacuteration(s) agrave contraindre2 Seacutelectionner la commande AlgorithmSetConstraint3 Seacutelectionner le processeur qui doit exeacutecute les opeacuterationsseacutelectionneacutees

Pour enlever les contraintes seacutelectionner lrsquoopeacuteration puis exeacutecuterla commande AlgorithmDeleteConstraint

Pour voir sur quel processeur une opeacuteration est y contrainteseacutelectionner lrsquoopeacuteration puis exeacutecuter la commandeAlgorithmShowConstraint le processeur correspondant y sera

seacutelectionneacutePour voir toute les opeacuterations qui sont contraintes sur un processeurseacutelectionner le processeur puis exeacutecuter la commande

ArchitectureShowConstrained du menu les opeacuterationscorrespondantes y seront seacutelectionneacutees

Equipe Systegraveme Robotiseacute de Production A eacutequat o

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3979

S y nd

e xV

5

q

Pour construire le planificateur des opeacuterations dugraphe drsquoalgorithme sur les processeurs du graphedrsquoarchitecture qui effectue automatiquement le routage

des deacutependances de donneacutees inter-processeurs et lacreacuteation et la planification des opeacuterations decommunication sur le meacutedia du graphe drsquoarchitectureon utilise la commande AdequationDoIt

Cette commande creacutee un heuristique qui cherche agraveminimiser le chemin critique du graphe drsquoalgorithme

Equipe Systegraveme Robotiseacute de ProductionGeacuteneacuteration du code exeacutecuti

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4079

S y nd

e xV

5Le code exeacutecutif est la partie qui gegravere les ressources

mateacuterielles pour les allouer aux besoins de lrsquoalgorithmedrsquoapplication Les ressources agrave allouer sont

1 Les espaces meacutemoires des processeurs2 Le temps des seacutequences drsquoinstructions3 Le temps des meacutedia de communication

Gracircce agrave la meacutethodologie AAA et le logiciel Syndexlrsquoutilisateur est exempte drsquoeacutecrire du code pour geacuterer ces

ressources Donc par simple exeacutecution de la commandeAdequationGenExec un code distribueacute pour chaque processeur est automatiquement geacuteneacutereacute Ce code est en

fait un exeacutecutif geacuteneacutereacute sur mesure pour lrsquoalgorithme etlrsquoarchitecture

Equipe Systegraveme Robotiseacute de ProductionGeacuteneacuteration du code exeacutecuti

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4179

S y nd

e xV5

Pour chaque processeur de lrsquoarchitecture un fichier

source macro-exeacutecutif m4 avec le mecircme nom estgeacuteneacutereacute plus un macro-makefile ayant le mecircme nom quecelui de lrsquoapplication Chacun de ces fichiers doit ecirctre

transcrit par le macro-processeur GNU M4 (assembleurC) Cette transcription deacutepend de plusieurs fichiers

1 Fichier syndexm4x qui deacutefini les macrosgeacuteneacuteriques de syndex2 Fichier processorTypem4x qui deacutefini les macros

de bas niveau du processeur3 Fichier applicationNamem4x qui deacutefini les macros

speacutecifiques agrave lrsquoapplication

4 Fichier mediaTypem4x qui deacutefini les macros decommunication de bas niveau du type de media

Equipe Systegraveme Robotiseacute de ProductionCreacuteat on rsquoapp cat on

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4279

S y nd

e xV5 Arborescence des reacutepertoires Rep_travail

Applicationmacros

~rtai

Eacutevolution de lrsquoapplication

Phase 1

Edition des macros(C ou Assembleur)

+GNUmakefile

Phase 2

Edition du graphe

(Algorithme amp

Architecteure)

Phase 3

Compilation amp Exeacutecution

Equipe Systegraveme Robotiseacute de ProductionSeacutequence de compilation de Synde

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4379

S y nd

e xV5

Equipe Systegraveme Robotiseacute de Production Plan

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4479

S y nd

e xV5

bull Introduction

bull Meacutethodologie AAA

bull Installation

bull Utilisation du logiciel Syndex

bull Macros

bull LinuxIO un interface CC++ avec SynDEx

bull Exemple drsquoapplication Robuter-ULM

Equipe Systegraveme Robotiseacute de Production

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4579

S y nd

e xV5

Macros Macros

bull Deacutefinition

bull Types de macros

bull Carte Robosoft MPC555

bull Macros Geacuteneacuterique MPC555

bull Macros speacutecifique Robosoftbull Macros de Communication

bull Macros drsquoapplicationbull Structure du fichier Macro

Equipe Systegraveme Robotiseacute de Production Deacutefinition

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4679

S y nd

e xV5

Un macro-processeur est un programme qui consommeen entreacutee une chaicircne de caractegraveres (texte source) la

traite seacutequentiellement en substituant chaque sous-chaicircne qursquoil reconnaicirct (Appel de macro) par unechaicircne correspondante de substitution ( Deacutefinition de

macro) qursquoil traite agrave nouveau jusqursquoagrave ce qursquoil nrsquo y ait plus de substitution possible et qui produit en sortie lachaicircne de caractegraveres traiteacutee

Equipe Systegraveme Robotiseacute de Productionypes e macrosL diffeacute t di ti t d d

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4779

S y nd

e xV5

Les diffeacuterents macros se distinguent en deux grandes

classes bull Macros geacuteneacuteriques

en geacuteneacuteral ceux sont des macros non destineacutes agraveecirctre utiliser directement par lrsquointerface syndexmais plutocirct utiliseacutees pour la programmation

drsquoautres macros (macros MPC555)bull Macros utilisateurs

macros utiliseacutes directement par syndex ils sontspeacutecifiques agrave lrsquoapplication (macros decommunication macros speacutecifiques robosoft

macros speacutecifiques agrave lrsquoapplication)

Equipe Systegraveme Robotiseacute de ProductionCarte Robosoft MPC555La carte Robosoft MPC555 est conccedilue pour la commande de robot de veacutehicule

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4879

S y nd

e xV5

(1) Connecteur du chip MPC555(2) Alimentation continue(3) Interface BDM (Basic Debug Interface)(4) Entreacute Analogique (Joystickhellip)(5) EntreacuteSortie logiques(6) Ligne seacuterie Synchrone (Codeur absolu)(7) Ligne seacuterie Asynchrone (Port 0)

(8) Ligne seacuterie Asynchrone (Port 1)(9) Connecteur du bus CAN (Port 0)(10) Connecteur du bus CAN (Port 1)(11) Axe 1(13) Axe 2(14) Axe 3(15) Axe 4

La carte Robosoft MPC555 est conccedilue pour la commande de robot de veacutehiculeeacutelectrique ou toute autre machine Elle permet de commander un axe gracircce agrave

lrsquoajout drsquoune carte fille le controcircle srsquoeacutetend jusqursquoagrave 4 axesCette carte est baseacutee sur le microcontrocircleur MPC555 32-bit de MotorolaElle peut opeacuterer agrave une freacutequence

de 40 MHz Divers signauxlogique et analogique peuventecirctre utiliser pour lrsquoacquisition deet la commande de mateacuteriel Les

sorties disponibles peuvent ecirctreanalogique ou PWMOn y trouve

Equipe Systegraveme Robotiseacute de ProductionArchitecture du MPC555

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4979

S y nd

e xV5

Equipe Systegraveme Robotiseacute de Productionaract r st ques u

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5079

S y nd

e xV5

Equipe Systegraveme Robotiseacute de Productionacros n r quesbull GPIO (General-Purpose InputOutput)

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5179

S y nd

e xV5

GPIO (General Purpose InputOutput)ce macro utilise le module USIU qui lui fourni 64 pins pour desentreacuteessorties numeacuteriques ordinaires (IO de la carte Robosoft lirelrsquoeacutetat de la pince envoi de commande agrave la pince lire les alarmes)

bull QADC (Queued Analog to Digital Converter)en utilisant le module QADC ce macro permet la conversion drsquounsignal analogique en entreacutee en un signal numeacuterique multi-niveaux(lire les donneacutees du capteur drsquoeacuteffort du joystick)

bull MIOS (Modular InputOutput System)Le module MIOS fourni 16 pins drsquoES numeacuteriques Sur la carte deRobosoft tous les pins sont en sortie Les 16 pins sont reacutepartiscomme suit

utilisateurs reacuteserveacutes

les pins de 0 agrave 11 sont reacuteserveacutes car ils sont preacutevus agrave ecirctre utiliseacutes pour unmateacuteriel particulier Mais si ce mateacuteriel nrsquoest pas utiliseacute lrsquoutilisateur peut lesutiliser librement

15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

Equipe Systegraveme Robotiseacute de ProductionMacros Geacuteneacuter ques MPC55

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5279

S y nd

e xV5

bull PWM (Pulse width Modulation)utilise le module MIOS (pins de 4-7 pour la direction des moteurset de 8-11 pour la validation) pour la commande des actionneursnumeacuteriques en PWM

bull TPU (Time Processor Units)les macros lieacutes agrave ce module permettent la lecture des encodeurs

increacutementauxbull QSPI (Queued Serial Peripheral Interface)

ce module fait partie du module QSMCM et les macros lieacutes servent

agrave son initialisation pour une communication avec du mateacuterielsexternes via le bus seacuterie synchrone

Equipe Systegraveme Robotiseacute de ProductionMacros Geacuteneacuter ques MPC55

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5379

S y nd

e x

V5 bull Serial port support (Polling implementation)

le MPC555 comprend dans le module QSMCM une interface decommunication seacuterie SCI qui permet la communication avec dumateacuteriels externes via un bus seacuterie asynchrone Plusieurs macros

sont lieacutes agrave cette interface pour initialiser et eacutetablir la communicationbull Serial port support (interrupt handling implementation)

pour la mecircme interface SCI du module QSMCM pour cette

meacutethode drsquoimpleacutementation les macros lieacutes initialisent et eacutetablissentla communication en mode par interruption ce qui permet dedeacutetecter lrsquoarriveacutee des donneacutees sur le port seacuterie au lieu de le scruter

en permanence

tous ces macros on les retrouvent dans le fichier 555m4x

Equipe Systegraveme Robotiseacute de ProductionMacros Speacutec ques Ro oso tles macros suivants sont deacutedieacutes agrave la carte de Robosoft MPC555

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5479

S y nd

e x

V5

bull Initialisation de la carte Robosoftmain_ini_() macro ne doit pas ecirctre utiliser par les programmateursdu fait qursquoelle sert qursquoagrave initialiser la carte robosoft Macro interne agrave

syndex dont lrsquoappel est automatique lors de geacuteneacuteration drsquoexeacutecutifMPC555

bull DAC (Digital to Analog Converter)

macro permet lrsquoutilisation du convertisseur de carte robosoft via lemodule MIOs en utilisant les pins de 0 agrave 2

bull LED (on-bord LED interface)

macro permet la gestion de la LED de la carte robosoft connecteacuteeau module QSPI (pin PCS1)

bull SPI absolute encoder

macro permet lrsquoutilisation lrsquointerface du codeur absolu de la carterobosoft connecteacute au module QSPI

Equipe Systegraveme Robotiseacute de ProductionMacros Speacutec ques Ro oso tbull Motor amplifier direction

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5579

S y nd

e x

V5

Motor amplifier directionmacro qui permet de geacuterer la direction des moteurs

bull Motor power amplifier validationles moteurs embarqueacutes sur les robots sont eacutequipeacutes de freins

eacutelectriquement commandable Ce macro permet drsquoenvoyer unsignal drsquoinhibition pour deacutebloquer les freins

bull Watch dog

pour des raisons de seacutecuriteacute un meacutecanisme mateacuteriel que robosofta ajouteacute sur la carte Ce watch-dog vise agrave stopper lrsquoactiviteacute dumoteur en cas ougrave le programme plante Le watch est impleacutementeacute

comme un time-out mateacuteriel Srsquoil nrsquoest pas rafraicircchi peacuteriodiquement il transmet un signal de sortie ce qui enlegraveve lavalidation de lrsquoamplificateur de puissance donc lrsquoarrecirct dumouvement

ces macros se trouvent dans le fichier RSBm4x

Equipe Systegraveme Robotiseacute de Production

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5679

S y nd

e x

V5

Macros de Communicationchaque meacutedia de communication (bus CAN ) est une ressourceseacutequentielle ougrave les transferts de donneacutees entre processeurs doiventsuivre un certain ordre Donc ce macro de communication sert agravedeacutefinir cet ordre et agrave identifier le protocole de communication lecodagedeacutecodage de lrsquoinformation et la synchronisation

on trouve ces macros dans le fichier CANm4x

Macros drsquoapplicationce genre de macros sont speacutecifique au mateacuteriel en question et aussiagrave lrsquoapplication en particulier Ce sont des macros utilisateurs

on trouve ces macros dans le fichier Application_namem4x

Equipe Systegraveme Robotiseacute de Production

section include (pour inclure drsquoautres fichiers macro agrave utiliseStructure du fichier macr

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5779

S y nd

e x

V5

section define (pour tous les macros utilisateurs)MGC lsquoINITrsquo (MGC Macro Generation Context variable)

divert (declaration) (deacutebut du macro)

(deacuteclaration des variables des meacutemoires et des csts

divert (o)

MGC lsquolooprsquocode en assembleur code en C

dnl (commentaires)

MGC lsquoENDrsquo dnl (fin de la macros)divert lsquo lsquo dnl

macros MPC555meacutemoire MPC555

constante MPC555

macros RTAImeacutemoire RTAI

constante RTAI

Equipe Systegraveme Robotiseacute de Production Plan

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5879

S y nd

e x

V5

bull Introduction

bull Meacutethodologie AAA

bull Installationbull Utilisation du logiciel Syndex

bull Macrosbull LinuxIO un interface CC++ avec SynDEx

bull Exemple drsquoapplication Robuter-ULM

Equipe Systegraveme Robotiseacute de Production

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5979

S y nd

e x

V5

LinuxIO LinuxIO une interface une interface

CC++ avecCC++ avec SynDExSynDEx

bull Principe de basebull Utilisation de linuxIO_ par syndex

bull Utilisation de linuxIO_ par un programmeCC++

Equipe Systegraveme Robotiseacute de ProductionPrincipe de baseSyndex fourni une interface graphique pour la conception

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6079

S y nd

e x

V5

Syndex fourni une interface graphique pour la conception

drsquoapplications Par contre des fois nous avons besoin drsquoautresfonctionnaliteacutes non disponibles donc il faut les creacuteer Cependantgeacuteneacuterer des macros pour syndex srsquoavegravere difficile pour certains du

fait qursquoil faut avoir une bonne connaissance de la programmation bas niveau Dans ce cas lrsquoutilisation de linux_IO trouve sa placedans un contexte particulier interfacer des applications CC++utilisateurs avec des applications embarqueacutees temps reacuteeldeacuteveloppeacutees sous syndex

Par rapport agrave ce contexte de programmation lrsquoorganisation du

deacuteveloppement des applications est structureacutee en deux parties 1 Application haut niveau

2 Application bas niveau

Equipe Systegraveme Robotiseacute de ProductionPrincipe de base

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6179

S y nd

e x

V5

En reacutesumeacute lrsquoapplicationutilisateur contient une

partie haut niveau enCC++ et une partie basniveau sous syndex avecun eacutechange de donneacuteesentre les deux partie en

utilisant la couche RTAIde linux

Equipe Systegraveme Robotiseacute de Production pp cat on aut n veauOn entend application haut

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6279

S y nd

e x

V5

niveau tout programmecomme la planification detrajectoires strateacutegies de

navigation etc hellipLrsquoeacutechange de donneacutees sefait par le biais desmeacutemoires partageacutees quifont parti du noyau RTAI

et de lrsquoespace utilisateursde Linux

Toute ressource preacutesente sur la carte Robosoft peutecirctre partageacutee sans aune restriction

Equipe Systegraveme Robotiseacute de Production pp cat on as n veauUne application bas niveau

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6379

S y nd

e x

V5

Une application bas niveau

est un programme conccedilusous syndex comme lacommande des moteurs la

lecture des capteurs etc hellipLes ressources mateacuteriellessont controcircler par plusieurs

cartes MPC555 Ces cartessrsquoeacutechangent des donneacuteesvia le bus CAN Donc ES

est prise en charge par lasource logicielle deacutedieacutee quisrsquoexeacutecute dans les cartes MPC555 puis la couche RTAI

est utiliseacute pour la mise agrave jour de meacutemoires partageacutees pour lrsquoespace utilisateurs linux drsquoeacutechange de donneacutees

Equipe Systegraveme Robotiseacute de ProductionUtilisation de linux_IO par syndex

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6479

S y nd

e x

V5

Equipe Systegraveme Robotiseacute de ProductionUtilisation de linux_IO par syndex

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6579

S y nd

e x

V5

Equipe Systegraveme Robotiseacute de Production

5

Utilisation de linux_IO par syndex

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6679

S y nd

e x

V5

Degraves que la conception de lrsquoapplication sous syndex esttermineacutee et apregraves compilation (AdequationDo it +GenExec) un fichier drsquoentecircte sous le nom de linioh est

automatiquement geacuteneacutereacute Ce fichier contient lesinformations neacutecessaires pour acceacuteder aux entreacutees enlecture et aux sorties en eacutecriture des opeacuterations linuxIO_

inseacutereacutees dans le graphe drsquoalgorithme Le contenu de cefichier est organiseacute en plusieurs parties une pour chaqueopeacuteration linux_IO preacutesente dans le graphe

Equipe Systegraveme Robotiseacute de Production

5

Utilisation de linux_IO par syndex linioh auto-generated C users API frontend

C i h b f 2001 i i i b f f

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6779

S y nd

e x

V5 Copyright Robosoft 2001 Pierre Pomiers ltpierrerobosoftfrgt

LINUX IO shared memory data segments

define SEG0_BASE 0x10000typedef struct

int js_spd_o0

int js_str_o0

int enc_R_o0int enc_L_o0

double odo_X_o0

double odo_Y_o0

double odo_T_o0int spd_R_o0

int spd_L_o0

int time

unsigned char sem shm_seg0_def

Nom du segment de meacutemoire partageacutee pour notre opeacuteration linuxIO_

7 signaux drsquoentreacutees Ces valeurs sonten lecture et sont peacuteriodiquementrafraicircchies par RTAI

2 signaux de sorties Ces valeurs sonten eacutecriture et sont peacuteriodiquementrafraicircchies par RTAI

Equipe Systegraveme Robotiseacute de Production

5

Crsquoest une eacutetape tregraves facile il suffit drsquoinclure le fichier drsquoentecirctelinio h dans le code du fichier en CC++ comme suit

Utilisation de linuxIO_ par un programme CC+

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6879

S y nd

e x

V5 linioh dans le code du fichier en CC++ comme suit

include linioh

include ltrtai_shmhgt

static shm_seg0_def seg0

shm_seg0_def robot

seg0 = rtai_malloc (SEG0_BASE sizeof (shm_seg0_def))

if (seg0-gtsem = 0) bcopy (seg0 amprobot sizeof (shm_seg0_def))helliphelliphellip

helliphelliphellip bcopy (amprobot seg0 sizeof (shm_seg0_def))helliphelliphelliphelliphelliphellip

rtai_free (SEG0_BASE seg0)

fichier drsquoentecircte de la meacutemoire partageacutee fourni dans la couche RTAI de linux

Initialisation du segment SEG0_BASE Allocation de lameacutemoire pointeacutee

par seg0

Lecture des donneacutees provenant du bas

niveau

Mise agrave jours du segment de meacutemoire partageacutee

Libeacuterer le segment de meacutemoire alloueacute

Equipe Systegraveme Robotiseacute de Production

5

Plan

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6979

S y nd e x

V5

bull Introductionbull Meacutethodologie AAA

bull Installationbull Utilisation du logiciel Syndex

bull Macrosbull LinuxIO un interface CC++ avec SynDEx

bull Exemple drsquoapplication Robuter-ULM

Equipe Systegraveme Robotiseacute de Production

V5

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7079

S y nd e x

V5

Exemple dapplication Exemple dapplication Robuter Robuter--ULM ULM

Equipe Systegraveme Robotiseacute de Production

V5

Description Robuter-ULMbull Base mobile (2-RM 2-RF)

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7179

S y nd e x

V

bull Bras ultra-leacuteger 6 axesbull Ceinture 24 capteurs US

bull Capteur drsquoefforts 6 axes

bull Cameacutera CCD monochromeavec carte drsquoacquisition

bull PC embarqueacute MMX 233

bull OS linux redhat 61 avecRTAI V-13

bull 3 bouton drsquoarrecirct drsquourgence

bull 4 batteries 48 VDC 4 X12V 60 Ah

bull Entreacutee Joystick

bull Liaison Ethernet sans fil

Le manipulateur mobile Robuter-ULM comprend

Equipe Systegraveme Robotiseacute de Production

V5

Base Mobilebull dimension

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7279

S y nd e x

V

1025 mm de longueur 680 mm de largueur et 44 cm de hauteurbull Poids environ 150 kg avec les batteriesbull charge jusqursquoagrave 120 kg

bull vitesse de 5cms agrave 125 msbull Moteurs 2 X 300 W DC 48 VDCbull orientation par diffeacuterence de vitesse

bull Preacutecision Position par encodeurs optiquesbull Deux roues motrices diffeacuterentielles et de deux roues follesbull Drsquoune ceinture de 24 capteurs Ultrasons

bull Une carte MPC555 de Robosoft pour le controcircle des deuxmoteurs DC des 2 rouesbull Un systegraveme drsquoodomeacutetrie qui donne la position relative du robot

par rapport agrave son repegravere

Equipe Systegraveme Robotiseacute de Production

V5

bull dimension Faute de documentation

Bras U tra- eacuteger

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7379

S y nd e x

V Faute de documentation

bull Poids moins de 20 kgbull charge 2 kgbull Moteurs 6 moteurs DC

bull gripper pince eacutelectrique 2 doigtsbull Reacutepeacutetabiliteacute +- 1mmbull 3 carte MPC555 de Robosoft lrsquoune pour le capteur drsquoeffort et les

deux autres pour les 6 moteurs + moteur de la pincebull Position encodeur increacutemental

1 2 3 4 5 6Axisrange

plusmn90deg 0-90deg plusmn80deg plusmn100deg plusmn90deg plusmn110deg

vitesse 180degs 180degs 180degs 180degs 180degs 180degs

Equipe Systegraveme Robotiseacute de Production

V5

rc tecture ar ware

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7479

S y nd e x

V

Equipe Systegraveme Robotiseacute de Production

V5

Pro eacutemat quePlusieurs applications peuvent ecirctre impleacutementeacutees sur le robot

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7579

S y nd e x

V

Cependant il faut faire la diffeacuterence entre les applications quidemande lrsquoutilisation de syndex et les applications qui neneacutecessite qursquoune programmation en CC++ Agrave titre drsquoexemple

bull Localisationbull Commande en position

bull Commande en forcebull Navigation

bull Geacuteneacuteration de trajectoire

bull Vision

Equipe Systegraveme Robotiseacute de Production

V5 bull Pince eacutelectrique (TOR)

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7679

S y nd e x

Vq ( )

bull Pince possegravede des ES Logiques

Notre application consiste agrave

bull Recevoir lrsquoeacutetat de la pince (fermeacutee ouverte )

bull Envoyer une commande vers la pince

Capture

drsquoinformation

Open

Close

CommandeMeacutemoire

Partageacutee

Actionneur

Pince Prise de deacutecision Pince

Equipe Systegraveme Robotiseacute de Production

V5

Sc eacutema eacute ectr que

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7779

S y nd e x

Equipe Systegraveme Robotiseacute de Production

V5

Conclusion

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7879

S y nd e x bull Introduction

bull Meacutethodologie AAA

bull Installationbull Utilisation du logiciel Syndex

bull Macrosbull LinuxIO un interface CC++ avec SynDEx

bull Exemple drsquoapplication Robuter-ULM

Equipe Systegraveme Robotiseacute de Production

V5

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7979

S y nd e x

Questions

Page 21: Cours Syndex

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 2179

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Installation de Syndex V

bull Creacuteation du reacutepertoire de destinationbull Copier le fichier avec la commande

cp syndex-xxx-linuxtgz rep_desbull Se mettre sous le reacutepertoire de destination puisdeacutecompresser le fichier avec la commande

tar zxvf syndex-xxx-linuxtgzCeci creacuteera sous le reacute pertoire de destination un sou

reacutepertoire de syndex contenant tout les fichiersDans le fichier syndexbat il faut mettre agrave jour lechemin du reacutepertoire de syndex

Arborescences des Reacutepertoire

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 2279

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Arborescences des Reacutepertoire

Apregraves lrsquoinstallation il est impeacuteratif drsquoorganiser lesreacutepertoires pour que lors de lrsquoeacutedition des liens le

fichier makefiles deacutepend de cette organisationLrsquoorganisation qui existe actuellement est comme

suit bull Apps applications deacuteveloppeacutees sous syndexbull Macros macros deacuteveloppeacutes pour syndex V5bull Rtai module rtai ou un lien symbolique qui point vers le reacutepertoire drsquoinstallation

Pla

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 2379

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Pla

bull Introduction

bull Meacutethodologie AAA

bull Installation

bull Utilisation du logiciel Syndex

bull Macros

bull LinuxIO un interface CC++ avec SynDEx

bull Exemple drsquoapplication Robuter-ULM

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 2479

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Utilisation du logicielUtilisation du logicielSyndexSyndex V5V5

bull Utilisation de lrsquointerface

bull Algorithme

bull Architecture

bull Caracteacuteristiques

bull Contraintes

bull Adeacutequation

bull Geacuteneacuteration du code exeacutecutif

SynDE

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 2579

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

SynDESynDEx est un logiciel graphique qui impleacutemente lameacutethodologie AAA et qui offre plusieurs fonctionnaliteacutes

bull Speacutecification drsquoun algorithme drsquoapplication saisi sousforme drsquoun graphe

bull Speacutecification drsquoun graphe drsquoarchitecture multi-composant

bull Heuristique pour la distribution et lrsquoordonnancement delrsquoalgorithme drsquoapplication sur lrsquoarchitecture avecoptimisation du temps de reacuteponse

bull Geacuteneacuteration des exeacutecutifs distribueacutes temps reacuteel

Utilisation de lrsquointerface

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 2679

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Utilisation de l interface

Utilisation de lrsquointerface

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 2779

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Utilisation de l interface

Utilisation de lrsquointerface

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 2879

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Utilisation de l interface

Algorithm

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 2979

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Algorithm

Lrsquoalgorithme est speacutecifieacute comme un graphe orienteacute ougravebull chaque sommet est une opeacuteration qui calcule les sorties

des entreacutees agrave chaque opeacuteration doit correspondre uneseacutequence drsquoinstructions compileacutee seacutepareacutement

bull Chaque arc est une deacutependance de donneacutees entre deux

opeacuterations (ou plus dans le cas de diffusion) c-a-d lasortie drsquoune opeacuteration est lrsquoentreacutee de lrsquoautre opeacuteration(ou de plusieurs autres opeacuterations) une entreacutee peut ecirctreconnecteacutee seulement agrave une sortie de mecircme type dedonneacutees

gor t m

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3079

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

gor t mon distingue 4 types de sommets

Algorithm

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3179

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Algorithmbull Le sommet function possegravede au moins une entreacutee et

une sortie crsquoest une opeacuteration agrave libre effet qui calculeses sorties uniquement agrave partir de ses entreacutees (c-a-d niagrave partir des variables globales ni agrave partir des

preacuteceacutedentes valeurs de ces entreacutees)bull Le sommet extio permet lrsquoacquisitionlrsquoeacutecriture des

entreacuteessorties on distingue trois cas

1 Capteur sans entreacutee agrave chaque reacuteaction sa sortierepreacutesente la valeur lue du capteur

2 Actionneur sans sortie agrave chaque reacuteaction ilenvoi son entreacutee agrave lrsquoactionneur

3 Linux_IO ces des meacutemoires partageacutees qui

permettent le transfert de donneacutees entre syndexet un langage eacutevolueacute

E i S egrave R b i eacute d P d i Algorithm

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3279

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Algorithm

bull Le sommet memory possegravede uniquement uneentreacutee et une sortie crsquoest une opeacuteration agrave effetunique qui met la sortie degraves la premiegravere reacuteaction

agrave une valeur initiale calculeacutee auparavant et puisla sortie de la prochaine reacuteaction nrsquoest que

lrsquoentreacutee de la preacuteceacutedente reacuteactionbull Le sommet constant ne possegravede aucune entreacutee

il calcule sa sortie une seule fois avant la premiegravere reacuteaction puis la sortie demeure la mecircme pour chaque reacuteaction

E i S tegrave R b ti eacute d P d ti Algorithm

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3379

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

AlgorithmPour lrsquoalgorithme chaque sommet est caracteacuteriseacute par

bull Son type geacuteneacuterique (function extio memory constant)bull Un nom unique (tout les sommets doivent avoir des

noms diffeacuterents)bull Son type identifiant sa seacutequence drsquoinstructionsassocieacute

bull Sa liste drsquoarguments ougrave chaque argument est speacutecifieacute par bull Le nombre drsquoentreacuteesortiebull Le type de donneacuteesbull Le nom (tout les arguments doivent avoir des noms

diffeacuterents)

Equipe Systegraveme Robotiseacute de Production Architecture

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3479

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

ArchitectureLrsquoarchitecture est speacutecifieacutee comme un graphe non orienteacute

ougrave bullChaque sommet est une ressource seacutequentielle il y adeux types de sommets

bull processeur crsquoest une ressource de calcul enmesure drsquoexeacutecuter seacutequentiellement les opeacuterationsdrsquoun algorithme il pourrait ecirctre un processeur ou

un circuit inteacutegreacute speacutecialiseacutebull meacutedia crsquoest une ressource de communicationen mesure drsquoexeacutecuter seacutequentiellement un transfertde donneacutees entre les meacutemoires des processeurs quilui sont connecteacutes

bull chaque arc est une connexion bidirectionnelle entreun processeur et un meacutedia

Equipe Systegraveme Robotiseacute de Production Architecture

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3579

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

ArchitecturePour lrsquoarchitecture chaque sommet est caracteacuteriseacute par

bull Un nom uniquebullSon type (processeur or meacutedia)bull Son type identifiant caracteacuteristiques mateacuterielles

bull Sa liste de connecteurs ougrave chaque connecteur est speacutecifieacute par bull son type identifiant le type de meacutedia agrave qui il peut ecirctreconnecteacute

bullUn nom

Equipe Systegraveme Robotiseacute de ProductionCaracteacuter st que

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3679

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Caracteacuter st que Nous distinguons deux cateacutegories de caracteacuteristiques lrsquoune relative

aux opeacuterations et lrsquoune agrave la communication 1 Comment speacutecifier les caracteacuteristiques des opeacuterations sous le menu AdequationAlOp_ArOp on obtient une boite

de dialogue avec

une liste de toutles types de

processeurs et

pour chaque processeur uneliste de tout les

types drsquoopeacuterationsqui peut lesexeacutecuter avec ladureacutee drsquoexeacutecutioncorrespondante

Equipe Systegraveme Robotiseacute de ProductionCaracteacuteristique

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3779

q p y

S y nd

e xV

5

q2 Comment speacutecifier les caracteacuteristiques de communication

sous le menu AdequationAlIO_ArIO on obtient une boitede dialogue avec une liste de tout les types de meacutedia et

pour chaque meacutedia une liste de tout les types de donneacutees

qui peut transfeacuterer avec la dureacutee de transfertcorrespondante

Equipe Systegraveme Robotiseacute de Production Contraintes

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3879

S y nd

e xV

5

Pour contraindre une opeacuteration agrave srsquoexeacutecuter sur un processeur donneacutee

1Seacutelectionner le(s) opeacuteration(s) agrave contraindre2 Seacutelectionner la commande AlgorithmSetConstraint3 Seacutelectionner le processeur qui doit exeacutecute les opeacuterationsseacutelectionneacutees

Pour enlever les contraintes seacutelectionner lrsquoopeacuteration puis exeacutecuterla commande AlgorithmDeleteConstraint

Pour voir sur quel processeur une opeacuteration est y contrainteseacutelectionner lrsquoopeacuteration puis exeacutecuter la commandeAlgorithmShowConstraint le processeur correspondant y sera

seacutelectionneacutePour voir toute les opeacuterations qui sont contraintes sur un processeurseacutelectionner le processeur puis exeacutecuter la commande

ArchitectureShowConstrained du menu les opeacuterationscorrespondantes y seront seacutelectionneacutees

Equipe Systegraveme Robotiseacute de Production A eacutequat o

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3979

S y nd

e xV

5

q

Pour construire le planificateur des opeacuterations dugraphe drsquoalgorithme sur les processeurs du graphedrsquoarchitecture qui effectue automatiquement le routage

des deacutependances de donneacutees inter-processeurs et lacreacuteation et la planification des opeacuterations decommunication sur le meacutedia du graphe drsquoarchitectureon utilise la commande AdequationDoIt

Cette commande creacutee un heuristique qui cherche agraveminimiser le chemin critique du graphe drsquoalgorithme

Equipe Systegraveme Robotiseacute de ProductionGeacuteneacuteration du code exeacutecuti

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4079

S y nd

e xV

5Le code exeacutecutif est la partie qui gegravere les ressources

mateacuterielles pour les allouer aux besoins de lrsquoalgorithmedrsquoapplication Les ressources agrave allouer sont

1 Les espaces meacutemoires des processeurs2 Le temps des seacutequences drsquoinstructions3 Le temps des meacutedia de communication

Gracircce agrave la meacutethodologie AAA et le logiciel Syndexlrsquoutilisateur est exempte drsquoeacutecrire du code pour geacuterer ces

ressources Donc par simple exeacutecution de la commandeAdequationGenExec un code distribueacute pour chaque processeur est automatiquement geacuteneacutereacute Ce code est en

fait un exeacutecutif geacuteneacutereacute sur mesure pour lrsquoalgorithme etlrsquoarchitecture

Equipe Systegraveme Robotiseacute de ProductionGeacuteneacuteration du code exeacutecuti

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4179

S y nd

e xV5

Pour chaque processeur de lrsquoarchitecture un fichier

source macro-exeacutecutif m4 avec le mecircme nom estgeacuteneacutereacute plus un macro-makefile ayant le mecircme nom quecelui de lrsquoapplication Chacun de ces fichiers doit ecirctre

transcrit par le macro-processeur GNU M4 (assembleurC) Cette transcription deacutepend de plusieurs fichiers

1 Fichier syndexm4x qui deacutefini les macrosgeacuteneacuteriques de syndex2 Fichier processorTypem4x qui deacutefini les macros

de bas niveau du processeur3 Fichier applicationNamem4x qui deacutefini les macros

speacutecifiques agrave lrsquoapplication

4 Fichier mediaTypem4x qui deacutefini les macros decommunication de bas niveau du type de media

Equipe Systegraveme Robotiseacute de ProductionCreacuteat on rsquoapp cat on

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4279

S y nd

e xV5 Arborescence des reacutepertoires Rep_travail

Applicationmacros

~rtai

Eacutevolution de lrsquoapplication

Phase 1

Edition des macros(C ou Assembleur)

+GNUmakefile

Phase 2

Edition du graphe

(Algorithme amp

Architecteure)

Phase 3

Compilation amp Exeacutecution

Equipe Systegraveme Robotiseacute de ProductionSeacutequence de compilation de Synde

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4379

S y nd

e xV5

Equipe Systegraveme Robotiseacute de Production Plan

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4479

S y nd

e xV5

bull Introduction

bull Meacutethodologie AAA

bull Installation

bull Utilisation du logiciel Syndex

bull Macros

bull LinuxIO un interface CC++ avec SynDEx

bull Exemple drsquoapplication Robuter-ULM

Equipe Systegraveme Robotiseacute de Production

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4579

S y nd

e xV5

Macros Macros

bull Deacutefinition

bull Types de macros

bull Carte Robosoft MPC555

bull Macros Geacuteneacuterique MPC555

bull Macros speacutecifique Robosoftbull Macros de Communication

bull Macros drsquoapplicationbull Structure du fichier Macro

Equipe Systegraveme Robotiseacute de Production Deacutefinition

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4679

S y nd

e xV5

Un macro-processeur est un programme qui consommeen entreacutee une chaicircne de caractegraveres (texte source) la

traite seacutequentiellement en substituant chaque sous-chaicircne qursquoil reconnaicirct (Appel de macro) par unechaicircne correspondante de substitution ( Deacutefinition de

macro) qursquoil traite agrave nouveau jusqursquoagrave ce qursquoil nrsquo y ait plus de substitution possible et qui produit en sortie lachaicircne de caractegraveres traiteacutee

Equipe Systegraveme Robotiseacute de Productionypes e macrosL diffeacute t di ti t d d

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4779

S y nd

e xV5

Les diffeacuterents macros se distinguent en deux grandes

classes bull Macros geacuteneacuteriques

en geacuteneacuteral ceux sont des macros non destineacutes agraveecirctre utiliser directement par lrsquointerface syndexmais plutocirct utiliseacutees pour la programmation

drsquoautres macros (macros MPC555)bull Macros utilisateurs

macros utiliseacutes directement par syndex ils sontspeacutecifiques agrave lrsquoapplication (macros decommunication macros speacutecifiques robosoft

macros speacutecifiques agrave lrsquoapplication)

Equipe Systegraveme Robotiseacute de ProductionCarte Robosoft MPC555La carte Robosoft MPC555 est conccedilue pour la commande de robot de veacutehicule

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4879

S y nd

e xV5

(1) Connecteur du chip MPC555(2) Alimentation continue(3) Interface BDM (Basic Debug Interface)(4) Entreacute Analogique (Joystickhellip)(5) EntreacuteSortie logiques(6) Ligne seacuterie Synchrone (Codeur absolu)(7) Ligne seacuterie Asynchrone (Port 0)

(8) Ligne seacuterie Asynchrone (Port 1)(9) Connecteur du bus CAN (Port 0)(10) Connecteur du bus CAN (Port 1)(11) Axe 1(13) Axe 2(14) Axe 3(15) Axe 4

La carte Robosoft MPC555 est conccedilue pour la commande de robot de veacutehiculeeacutelectrique ou toute autre machine Elle permet de commander un axe gracircce agrave

lrsquoajout drsquoune carte fille le controcircle srsquoeacutetend jusqursquoagrave 4 axesCette carte est baseacutee sur le microcontrocircleur MPC555 32-bit de MotorolaElle peut opeacuterer agrave une freacutequence

de 40 MHz Divers signauxlogique et analogique peuventecirctre utiliser pour lrsquoacquisition deet la commande de mateacuteriel Les

sorties disponibles peuvent ecirctreanalogique ou PWMOn y trouve

Equipe Systegraveme Robotiseacute de ProductionArchitecture du MPC555

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4979

S y nd

e xV5

Equipe Systegraveme Robotiseacute de Productionaract r st ques u

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5079

S y nd

e xV5

Equipe Systegraveme Robotiseacute de Productionacros n r quesbull GPIO (General-Purpose InputOutput)

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5179

S y nd

e xV5

GPIO (General Purpose InputOutput)ce macro utilise le module USIU qui lui fourni 64 pins pour desentreacuteessorties numeacuteriques ordinaires (IO de la carte Robosoft lirelrsquoeacutetat de la pince envoi de commande agrave la pince lire les alarmes)

bull QADC (Queued Analog to Digital Converter)en utilisant le module QADC ce macro permet la conversion drsquounsignal analogique en entreacutee en un signal numeacuterique multi-niveaux(lire les donneacutees du capteur drsquoeacuteffort du joystick)

bull MIOS (Modular InputOutput System)Le module MIOS fourni 16 pins drsquoES numeacuteriques Sur la carte deRobosoft tous les pins sont en sortie Les 16 pins sont reacutepartiscomme suit

utilisateurs reacuteserveacutes

les pins de 0 agrave 11 sont reacuteserveacutes car ils sont preacutevus agrave ecirctre utiliseacutes pour unmateacuteriel particulier Mais si ce mateacuteriel nrsquoest pas utiliseacute lrsquoutilisateur peut lesutiliser librement

15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

Equipe Systegraveme Robotiseacute de ProductionMacros Geacuteneacuter ques MPC55

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5279

S y nd

e xV5

bull PWM (Pulse width Modulation)utilise le module MIOS (pins de 4-7 pour la direction des moteurset de 8-11 pour la validation) pour la commande des actionneursnumeacuteriques en PWM

bull TPU (Time Processor Units)les macros lieacutes agrave ce module permettent la lecture des encodeurs

increacutementauxbull QSPI (Queued Serial Peripheral Interface)

ce module fait partie du module QSMCM et les macros lieacutes servent

agrave son initialisation pour une communication avec du mateacuterielsexternes via le bus seacuterie synchrone

Equipe Systegraveme Robotiseacute de ProductionMacros Geacuteneacuter ques MPC55

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5379

S y nd

e x

V5 bull Serial port support (Polling implementation)

le MPC555 comprend dans le module QSMCM une interface decommunication seacuterie SCI qui permet la communication avec dumateacuteriels externes via un bus seacuterie asynchrone Plusieurs macros

sont lieacutes agrave cette interface pour initialiser et eacutetablir la communicationbull Serial port support (interrupt handling implementation)

pour la mecircme interface SCI du module QSMCM pour cette

meacutethode drsquoimpleacutementation les macros lieacutes initialisent et eacutetablissentla communication en mode par interruption ce qui permet dedeacutetecter lrsquoarriveacutee des donneacutees sur le port seacuterie au lieu de le scruter

en permanence

tous ces macros on les retrouvent dans le fichier 555m4x

Equipe Systegraveme Robotiseacute de ProductionMacros Speacutec ques Ro oso tles macros suivants sont deacutedieacutes agrave la carte de Robosoft MPC555

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5479

S y nd

e x

V5

bull Initialisation de la carte Robosoftmain_ini_() macro ne doit pas ecirctre utiliser par les programmateursdu fait qursquoelle sert qursquoagrave initialiser la carte robosoft Macro interne agrave

syndex dont lrsquoappel est automatique lors de geacuteneacuteration drsquoexeacutecutifMPC555

bull DAC (Digital to Analog Converter)

macro permet lrsquoutilisation du convertisseur de carte robosoft via lemodule MIOs en utilisant les pins de 0 agrave 2

bull LED (on-bord LED interface)

macro permet la gestion de la LED de la carte robosoft connecteacuteeau module QSPI (pin PCS1)

bull SPI absolute encoder

macro permet lrsquoutilisation lrsquointerface du codeur absolu de la carterobosoft connecteacute au module QSPI

Equipe Systegraveme Robotiseacute de ProductionMacros Speacutec ques Ro oso tbull Motor amplifier direction

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5579

S y nd

e x

V5

Motor amplifier directionmacro qui permet de geacuterer la direction des moteurs

bull Motor power amplifier validationles moteurs embarqueacutes sur les robots sont eacutequipeacutes de freins

eacutelectriquement commandable Ce macro permet drsquoenvoyer unsignal drsquoinhibition pour deacutebloquer les freins

bull Watch dog

pour des raisons de seacutecuriteacute un meacutecanisme mateacuteriel que robosofta ajouteacute sur la carte Ce watch-dog vise agrave stopper lrsquoactiviteacute dumoteur en cas ougrave le programme plante Le watch est impleacutementeacute

comme un time-out mateacuteriel Srsquoil nrsquoest pas rafraicircchi peacuteriodiquement il transmet un signal de sortie ce qui enlegraveve lavalidation de lrsquoamplificateur de puissance donc lrsquoarrecirct dumouvement

ces macros se trouvent dans le fichier RSBm4x

Equipe Systegraveme Robotiseacute de Production

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5679

S y nd

e x

V5

Macros de Communicationchaque meacutedia de communication (bus CAN ) est une ressourceseacutequentielle ougrave les transferts de donneacutees entre processeurs doiventsuivre un certain ordre Donc ce macro de communication sert agravedeacutefinir cet ordre et agrave identifier le protocole de communication lecodagedeacutecodage de lrsquoinformation et la synchronisation

on trouve ces macros dans le fichier CANm4x

Macros drsquoapplicationce genre de macros sont speacutecifique au mateacuteriel en question et aussiagrave lrsquoapplication en particulier Ce sont des macros utilisateurs

on trouve ces macros dans le fichier Application_namem4x

Equipe Systegraveme Robotiseacute de Production

section include (pour inclure drsquoautres fichiers macro agrave utiliseStructure du fichier macr

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5779

S y nd

e x

V5

section define (pour tous les macros utilisateurs)MGC lsquoINITrsquo (MGC Macro Generation Context variable)

divert (declaration) (deacutebut du macro)

(deacuteclaration des variables des meacutemoires et des csts

divert (o)

MGC lsquolooprsquocode en assembleur code en C

dnl (commentaires)

MGC lsquoENDrsquo dnl (fin de la macros)divert lsquo lsquo dnl

macros MPC555meacutemoire MPC555

constante MPC555

macros RTAImeacutemoire RTAI

constante RTAI

Equipe Systegraveme Robotiseacute de Production Plan

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5879

S y nd

e x

V5

bull Introduction

bull Meacutethodologie AAA

bull Installationbull Utilisation du logiciel Syndex

bull Macrosbull LinuxIO un interface CC++ avec SynDEx

bull Exemple drsquoapplication Robuter-ULM

Equipe Systegraveme Robotiseacute de Production

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5979

S y nd

e x

V5

LinuxIO LinuxIO une interface une interface

CC++ avecCC++ avec SynDExSynDEx

bull Principe de basebull Utilisation de linuxIO_ par syndex

bull Utilisation de linuxIO_ par un programmeCC++

Equipe Systegraveme Robotiseacute de ProductionPrincipe de baseSyndex fourni une interface graphique pour la conception

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6079

S y nd

e x

V5

Syndex fourni une interface graphique pour la conception

drsquoapplications Par contre des fois nous avons besoin drsquoautresfonctionnaliteacutes non disponibles donc il faut les creacuteer Cependantgeacuteneacuterer des macros pour syndex srsquoavegravere difficile pour certains du

fait qursquoil faut avoir une bonne connaissance de la programmation bas niveau Dans ce cas lrsquoutilisation de linux_IO trouve sa placedans un contexte particulier interfacer des applications CC++utilisateurs avec des applications embarqueacutees temps reacuteeldeacuteveloppeacutees sous syndex

Par rapport agrave ce contexte de programmation lrsquoorganisation du

deacuteveloppement des applications est structureacutee en deux parties 1 Application haut niveau

2 Application bas niveau

Equipe Systegraveme Robotiseacute de ProductionPrincipe de base

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6179

S y nd

e x

V5

En reacutesumeacute lrsquoapplicationutilisateur contient une

partie haut niveau enCC++ et une partie basniveau sous syndex avecun eacutechange de donneacuteesentre les deux partie en

utilisant la couche RTAIde linux

Equipe Systegraveme Robotiseacute de Production pp cat on aut n veauOn entend application haut

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6279

S y nd

e x

V5

niveau tout programmecomme la planification detrajectoires strateacutegies de

navigation etc hellipLrsquoeacutechange de donneacutees sefait par le biais desmeacutemoires partageacutees quifont parti du noyau RTAI

et de lrsquoespace utilisateursde Linux

Toute ressource preacutesente sur la carte Robosoft peutecirctre partageacutee sans aune restriction

Equipe Systegraveme Robotiseacute de Production pp cat on as n veauUne application bas niveau

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6379

S y nd

e x

V5

Une application bas niveau

est un programme conccedilusous syndex comme lacommande des moteurs la

lecture des capteurs etc hellipLes ressources mateacuteriellessont controcircler par plusieurs

cartes MPC555 Ces cartessrsquoeacutechangent des donneacuteesvia le bus CAN Donc ES

est prise en charge par lasource logicielle deacutedieacutee quisrsquoexeacutecute dans les cartes MPC555 puis la couche RTAI

est utiliseacute pour la mise agrave jour de meacutemoires partageacutees pour lrsquoespace utilisateurs linux drsquoeacutechange de donneacutees

Equipe Systegraveme Robotiseacute de ProductionUtilisation de linux_IO par syndex

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6479

S y nd

e x

V5

Equipe Systegraveme Robotiseacute de ProductionUtilisation de linux_IO par syndex

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6579

S y nd

e x

V5

Equipe Systegraveme Robotiseacute de Production

5

Utilisation de linux_IO par syndex

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6679

S y nd

e x

V5

Degraves que la conception de lrsquoapplication sous syndex esttermineacutee et apregraves compilation (AdequationDo it +GenExec) un fichier drsquoentecircte sous le nom de linioh est

automatiquement geacuteneacutereacute Ce fichier contient lesinformations neacutecessaires pour acceacuteder aux entreacutees enlecture et aux sorties en eacutecriture des opeacuterations linuxIO_

inseacutereacutees dans le graphe drsquoalgorithme Le contenu de cefichier est organiseacute en plusieurs parties une pour chaqueopeacuteration linux_IO preacutesente dans le graphe

Equipe Systegraveme Robotiseacute de Production

5

Utilisation de linux_IO par syndex linioh auto-generated C users API frontend

C i h b f 2001 i i i b f f

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6779

S y nd

e x

V5 Copyright Robosoft 2001 Pierre Pomiers ltpierrerobosoftfrgt

LINUX IO shared memory data segments

define SEG0_BASE 0x10000typedef struct

int js_spd_o0

int js_str_o0

int enc_R_o0int enc_L_o0

double odo_X_o0

double odo_Y_o0

double odo_T_o0int spd_R_o0

int spd_L_o0

int time

unsigned char sem shm_seg0_def

Nom du segment de meacutemoire partageacutee pour notre opeacuteration linuxIO_

7 signaux drsquoentreacutees Ces valeurs sonten lecture et sont peacuteriodiquementrafraicircchies par RTAI

2 signaux de sorties Ces valeurs sonten eacutecriture et sont peacuteriodiquementrafraicircchies par RTAI

Equipe Systegraveme Robotiseacute de Production

5

Crsquoest une eacutetape tregraves facile il suffit drsquoinclure le fichier drsquoentecirctelinio h dans le code du fichier en CC++ comme suit

Utilisation de linuxIO_ par un programme CC+

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6879

S y nd

e x

V5 linioh dans le code du fichier en CC++ comme suit

include linioh

include ltrtai_shmhgt

static shm_seg0_def seg0

shm_seg0_def robot

seg0 = rtai_malloc (SEG0_BASE sizeof (shm_seg0_def))

if (seg0-gtsem = 0) bcopy (seg0 amprobot sizeof (shm_seg0_def))helliphelliphellip

helliphelliphellip bcopy (amprobot seg0 sizeof (shm_seg0_def))helliphelliphelliphelliphelliphellip

rtai_free (SEG0_BASE seg0)

fichier drsquoentecircte de la meacutemoire partageacutee fourni dans la couche RTAI de linux

Initialisation du segment SEG0_BASE Allocation de lameacutemoire pointeacutee

par seg0

Lecture des donneacutees provenant du bas

niveau

Mise agrave jours du segment de meacutemoire partageacutee

Libeacuterer le segment de meacutemoire alloueacute

Equipe Systegraveme Robotiseacute de Production

5

Plan

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6979

S y nd e x

V5

bull Introductionbull Meacutethodologie AAA

bull Installationbull Utilisation du logiciel Syndex

bull Macrosbull LinuxIO un interface CC++ avec SynDEx

bull Exemple drsquoapplication Robuter-ULM

Equipe Systegraveme Robotiseacute de Production

V5

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7079

S y nd e x

V5

Exemple dapplication Exemple dapplication Robuter Robuter--ULM ULM

Equipe Systegraveme Robotiseacute de Production

V5

Description Robuter-ULMbull Base mobile (2-RM 2-RF)

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7179

S y nd e x

V

bull Bras ultra-leacuteger 6 axesbull Ceinture 24 capteurs US

bull Capteur drsquoefforts 6 axes

bull Cameacutera CCD monochromeavec carte drsquoacquisition

bull PC embarqueacute MMX 233

bull OS linux redhat 61 avecRTAI V-13

bull 3 bouton drsquoarrecirct drsquourgence

bull 4 batteries 48 VDC 4 X12V 60 Ah

bull Entreacutee Joystick

bull Liaison Ethernet sans fil

Le manipulateur mobile Robuter-ULM comprend

Equipe Systegraveme Robotiseacute de Production

V5

Base Mobilebull dimension

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7279

S y nd e x

V

1025 mm de longueur 680 mm de largueur et 44 cm de hauteurbull Poids environ 150 kg avec les batteriesbull charge jusqursquoagrave 120 kg

bull vitesse de 5cms agrave 125 msbull Moteurs 2 X 300 W DC 48 VDCbull orientation par diffeacuterence de vitesse

bull Preacutecision Position par encodeurs optiquesbull Deux roues motrices diffeacuterentielles et de deux roues follesbull Drsquoune ceinture de 24 capteurs Ultrasons

bull Une carte MPC555 de Robosoft pour le controcircle des deuxmoteurs DC des 2 rouesbull Un systegraveme drsquoodomeacutetrie qui donne la position relative du robot

par rapport agrave son repegravere

Equipe Systegraveme Robotiseacute de Production

V5

bull dimension Faute de documentation

Bras U tra- eacuteger

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7379

S y nd e x

V Faute de documentation

bull Poids moins de 20 kgbull charge 2 kgbull Moteurs 6 moteurs DC

bull gripper pince eacutelectrique 2 doigtsbull Reacutepeacutetabiliteacute +- 1mmbull 3 carte MPC555 de Robosoft lrsquoune pour le capteur drsquoeffort et les

deux autres pour les 6 moteurs + moteur de la pincebull Position encodeur increacutemental

1 2 3 4 5 6Axisrange

plusmn90deg 0-90deg plusmn80deg plusmn100deg plusmn90deg plusmn110deg

vitesse 180degs 180degs 180degs 180degs 180degs 180degs

Equipe Systegraveme Robotiseacute de Production

V5

rc tecture ar ware

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7479

S y nd e x

V

Equipe Systegraveme Robotiseacute de Production

V5

Pro eacutemat quePlusieurs applications peuvent ecirctre impleacutementeacutees sur le robot

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7579

S y nd e x

V

Cependant il faut faire la diffeacuterence entre les applications quidemande lrsquoutilisation de syndex et les applications qui neneacutecessite qursquoune programmation en CC++ Agrave titre drsquoexemple

bull Localisationbull Commande en position

bull Commande en forcebull Navigation

bull Geacuteneacuteration de trajectoire

bull Vision

Equipe Systegraveme Robotiseacute de Production

V5 bull Pince eacutelectrique (TOR)

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7679

S y nd e x

Vq ( )

bull Pince possegravede des ES Logiques

Notre application consiste agrave

bull Recevoir lrsquoeacutetat de la pince (fermeacutee ouverte )

bull Envoyer une commande vers la pince

Capture

drsquoinformation

Open

Close

CommandeMeacutemoire

Partageacutee

Actionneur

Pince Prise de deacutecision Pince

Equipe Systegraveme Robotiseacute de Production

V5

Sc eacutema eacute ectr que

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7779

S y nd e x

Equipe Systegraveme Robotiseacute de Production

V5

Conclusion

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7879

S y nd e x bull Introduction

bull Meacutethodologie AAA

bull Installationbull Utilisation du logiciel Syndex

bull Macrosbull LinuxIO un interface CC++ avec SynDEx

bull Exemple drsquoapplication Robuter-ULM

Equipe Systegraveme Robotiseacute de Production

V5

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7979

S y nd e x

Questions

Page 22: Cours Syndex

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 2279

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Arborescences des Reacutepertoire

Apregraves lrsquoinstallation il est impeacuteratif drsquoorganiser lesreacutepertoires pour que lors de lrsquoeacutedition des liens le

fichier makefiles deacutepend de cette organisationLrsquoorganisation qui existe actuellement est comme

suit bull Apps applications deacuteveloppeacutees sous syndexbull Macros macros deacuteveloppeacutes pour syndex V5bull Rtai module rtai ou un lien symbolique qui point vers le reacutepertoire drsquoinstallation

Pla

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 2379

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Pla

bull Introduction

bull Meacutethodologie AAA

bull Installation

bull Utilisation du logiciel Syndex

bull Macros

bull LinuxIO un interface CC++ avec SynDEx

bull Exemple drsquoapplication Robuter-ULM

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 2479

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Utilisation du logicielUtilisation du logicielSyndexSyndex V5V5

bull Utilisation de lrsquointerface

bull Algorithme

bull Architecture

bull Caracteacuteristiques

bull Contraintes

bull Adeacutequation

bull Geacuteneacuteration du code exeacutecutif

SynDE

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 2579

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

SynDESynDEx est un logiciel graphique qui impleacutemente lameacutethodologie AAA et qui offre plusieurs fonctionnaliteacutes

bull Speacutecification drsquoun algorithme drsquoapplication saisi sousforme drsquoun graphe

bull Speacutecification drsquoun graphe drsquoarchitecture multi-composant

bull Heuristique pour la distribution et lrsquoordonnancement delrsquoalgorithme drsquoapplication sur lrsquoarchitecture avecoptimisation du temps de reacuteponse

bull Geacuteneacuteration des exeacutecutifs distribueacutes temps reacuteel

Utilisation de lrsquointerface

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 2679

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Utilisation de l interface

Utilisation de lrsquointerface

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 2779

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Utilisation de l interface

Utilisation de lrsquointerface

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 2879

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Utilisation de l interface

Algorithm

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 2979

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Algorithm

Lrsquoalgorithme est speacutecifieacute comme un graphe orienteacute ougravebull chaque sommet est une opeacuteration qui calcule les sorties

des entreacutees agrave chaque opeacuteration doit correspondre uneseacutequence drsquoinstructions compileacutee seacutepareacutement

bull Chaque arc est une deacutependance de donneacutees entre deux

opeacuterations (ou plus dans le cas de diffusion) c-a-d lasortie drsquoune opeacuteration est lrsquoentreacutee de lrsquoautre opeacuteration(ou de plusieurs autres opeacuterations) une entreacutee peut ecirctreconnecteacutee seulement agrave une sortie de mecircme type dedonneacutees

gor t m

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3079

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

gor t mon distingue 4 types de sommets

Algorithm

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3179

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Algorithmbull Le sommet function possegravede au moins une entreacutee et

une sortie crsquoest une opeacuteration agrave libre effet qui calculeses sorties uniquement agrave partir de ses entreacutees (c-a-d niagrave partir des variables globales ni agrave partir des

preacuteceacutedentes valeurs de ces entreacutees)bull Le sommet extio permet lrsquoacquisitionlrsquoeacutecriture des

entreacuteessorties on distingue trois cas

1 Capteur sans entreacutee agrave chaque reacuteaction sa sortierepreacutesente la valeur lue du capteur

2 Actionneur sans sortie agrave chaque reacuteaction ilenvoi son entreacutee agrave lrsquoactionneur

3 Linux_IO ces des meacutemoires partageacutees qui

permettent le transfert de donneacutees entre syndexet un langage eacutevolueacute

E i S egrave R b i eacute d P d i Algorithm

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3279

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Algorithm

bull Le sommet memory possegravede uniquement uneentreacutee et une sortie crsquoest une opeacuteration agrave effetunique qui met la sortie degraves la premiegravere reacuteaction

agrave une valeur initiale calculeacutee auparavant et puisla sortie de la prochaine reacuteaction nrsquoest que

lrsquoentreacutee de la preacuteceacutedente reacuteactionbull Le sommet constant ne possegravede aucune entreacutee

il calcule sa sortie une seule fois avant la premiegravere reacuteaction puis la sortie demeure la mecircme pour chaque reacuteaction

E i S tegrave R b ti eacute d P d ti Algorithm

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3379

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

AlgorithmPour lrsquoalgorithme chaque sommet est caracteacuteriseacute par

bull Son type geacuteneacuterique (function extio memory constant)bull Un nom unique (tout les sommets doivent avoir des

noms diffeacuterents)bull Son type identifiant sa seacutequence drsquoinstructionsassocieacute

bull Sa liste drsquoarguments ougrave chaque argument est speacutecifieacute par bull Le nombre drsquoentreacuteesortiebull Le type de donneacuteesbull Le nom (tout les arguments doivent avoir des noms

diffeacuterents)

Equipe Systegraveme Robotiseacute de Production Architecture

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3479

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

ArchitectureLrsquoarchitecture est speacutecifieacutee comme un graphe non orienteacute

ougrave bullChaque sommet est une ressource seacutequentielle il y adeux types de sommets

bull processeur crsquoest une ressource de calcul enmesure drsquoexeacutecuter seacutequentiellement les opeacuterationsdrsquoun algorithme il pourrait ecirctre un processeur ou

un circuit inteacutegreacute speacutecialiseacutebull meacutedia crsquoest une ressource de communicationen mesure drsquoexeacutecuter seacutequentiellement un transfertde donneacutees entre les meacutemoires des processeurs quilui sont connecteacutes

bull chaque arc est une connexion bidirectionnelle entreun processeur et un meacutedia

Equipe Systegraveme Robotiseacute de Production Architecture

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3579

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

ArchitecturePour lrsquoarchitecture chaque sommet est caracteacuteriseacute par

bull Un nom uniquebullSon type (processeur or meacutedia)bull Son type identifiant caracteacuteristiques mateacuterielles

bull Sa liste de connecteurs ougrave chaque connecteur est speacutecifieacute par bull son type identifiant le type de meacutedia agrave qui il peut ecirctreconnecteacute

bullUn nom

Equipe Systegraveme Robotiseacute de ProductionCaracteacuter st que

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3679

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Caracteacuter st que Nous distinguons deux cateacutegories de caracteacuteristiques lrsquoune relative

aux opeacuterations et lrsquoune agrave la communication 1 Comment speacutecifier les caracteacuteristiques des opeacuterations sous le menu AdequationAlOp_ArOp on obtient une boite

de dialogue avec

une liste de toutles types de

processeurs et

pour chaque processeur uneliste de tout les

types drsquoopeacuterationsqui peut lesexeacutecuter avec ladureacutee drsquoexeacutecutioncorrespondante

Equipe Systegraveme Robotiseacute de ProductionCaracteacuteristique

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3779

q p y

S y nd

e xV

5

q2 Comment speacutecifier les caracteacuteristiques de communication

sous le menu AdequationAlIO_ArIO on obtient une boitede dialogue avec une liste de tout les types de meacutedia et

pour chaque meacutedia une liste de tout les types de donneacutees

qui peut transfeacuterer avec la dureacutee de transfertcorrespondante

Equipe Systegraveme Robotiseacute de Production Contraintes

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3879

S y nd

e xV

5

Pour contraindre une opeacuteration agrave srsquoexeacutecuter sur un processeur donneacutee

1Seacutelectionner le(s) opeacuteration(s) agrave contraindre2 Seacutelectionner la commande AlgorithmSetConstraint3 Seacutelectionner le processeur qui doit exeacutecute les opeacuterationsseacutelectionneacutees

Pour enlever les contraintes seacutelectionner lrsquoopeacuteration puis exeacutecuterla commande AlgorithmDeleteConstraint

Pour voir sur quel processeur une opeacuteration est y contrainteseacutelectionner lrsquoopeacuteration puis exeacutecuter la commandeAlgorithmShowConstraint le processeur correspondant y sera

seacutelectionneacutePour voir toute les opeacuterations qui sont contraintes sur un processeurseacutelectionner le processeur puis exeacutecuter la commande

ArchitectureShowConstrained du menu les opeacuterationscorrespondantes y seront seacutelectionneacutees

Equipe Systegraveme Robotiseacute de Production A eacutequat o

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3979

S y nd

e xV

5

q

Pour construire le planificateur des opeacuterations dugraphe drsquoalgorithme sur les processeurs du graphedrsquoarchitecture qui effectue automatiquement le routage

des deacutependances de donneacutees inter-processeurs et lacreacuteation et la planification des opeacuterations decommunication sur le meacutedia du graphe drsquoarchitectureon utilise la commande AdequationDoIt

Cette commande creacutee un heuristique qui cherche agraveminimiser le chemin critique du graphe drsquoalgorithme

Equipe Systegraveme Robotiseacute de ProductionGeacuteneacuteration du code exeacutecuti

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4079

S y nd

e xV

5Le code exeacutecutif est la partie qui gegravere les ressources

mateacuterielles pour les allouer aux besoins de lrsquoalgorithmedrsquoapplication Les ressources agrave allouer sont

1 Les espaces meacutemoires des processeurs2 Le temps des seacutequences drsquoinstructions3 Le temps des meacutedia de communication

Gracircce agrave la meacutethodologie AAA et le logiciel Syndexlrsquoutilisateur est exempte drsquoeacutecrire du code pour geacuterer ces

ressources Donc par simple exeacutecution de la commandeAdequationGenExec un code distribueacute pour chaque processeur est automatiquement geacuteneacutereacute Ce code est en

fait un exeacutecutif geacuteneacutereacute sur mesure pour lrsquoalgorithme etlrsquoarchitecture

Equipe Systegraveme Robotiseacute de ProductionGeacuteneacuteration du code exeacutecuti

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4179

S y nd

e xV5

Pour chaque processeur de lrsquoarchitecture un fichier

source macro-exeacutecutif m4 avec le mecircme nom estgeacuteneacutereacute plus un macro-makefile ayant le mecircme nom quecelui de lrsquoapplication Chacun de ces fichiers doit ecirctre

transcrit par le macro-processeur GNU M4 (assembleurC) Cette transcription deacutepend de plusieurs fichiers

1 Fichier syndexm4x qui deacutefini les macrosgeacuteneacuteriques de syndex2 Fichier processorTypem4x qui deacutefini les macros

de bas niveau du processeur3 Fichier applicationNamem4x qui deacutefini les macros

speacutecifiques agrave lrsquoapplication

4 Fichier mediaTypem4x qui deacutefini les macros decommunication de bas niveau du type de media

Equipe Systegraveme Robotiseacute de ProductionCreacuteat on rsquoapp cat on

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4279

S y nd

e xV5 Arborescence des reacutepertoires Rep_travail

Applicationmacros

~rtai

Eacutevolution de lrsquoapplication

Phase 1

Edition des macros(C ou Assembleur)

+GNUmakefile

Phase 2

Edition du graphe

(Algorithme amp

Architecteure)

Phase 3

Compilation amp Exeacutecution

Equipe Systegraveme Robotiseacute de ProductionSeacutequence de compilation de Synde

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4379

S y nd

e xV5

Equipe Systegraveme Robotiseacute de Production Plan

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4479

S y nd

e xV5

bull Introduction

bull Meacutethodologie AAA

bull Installation

bull Utilisation du logiciel Syndex

bull Macros

bull LinuxIO un interface CC++ avec SynDEx

bull Exemple drsquoapplication Robuter-ULM

Equipe Systegraveme Robotiseacute de Production

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4579

S y nd

e xV5

Macros Macros

bull Deacutefinition

bull Types de macros

bull Carte Robosoft MPC555

bull Macros Geacuteneacuterique MPC555

bull Macros speacutecifique Robosoftbull Macros de Communication

bull Macros drsquoapplicationbull Structure du fichier Macro

Equipe Systegraveme Robotiseacute de Production Deacutefinition

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4679

S y nd

e xV5

Un macro-processeur est un programme qui consommeen entreacutee une chaicircne de caractegraveres (texte source) la

traite seacutequentiellement en substituant chaque sous-chaicircne qursquoil reconnaicirct (Appel de macro) par unechaicircne correspondante de substitution ( Deacutefinition de

macro) qursquoil traite agrave nouveau jusqursquoagrave ce qursquoil nrsquo y ait plus de substitution possible et qui produit en sortie lachaicircne de caractegraveres traiteacutee

Equipe Systegraveme Robotiseacute de Productionypes e macrosL diffeacute t di ti t d d

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4779

S y nd

e xV5

Les diffeacuterents macros se distinguent en deux grandes

classes bull Macros geacuteneacuteriques

en geacuteneacuteral ceux sont des macros non destineacutes agraveecirctre utiliser directement par lrsquointerface syndexmais plutocirct utiliseacutees pour la programmation

drsquoautres macros (macros MPC555)bull Macros utilisateurs

macros utiliseacutes directement par syndex ils sontspeacutecifiques agrave lrsquoapplication (macros decommunication macros speacutecifiques robosoft

macros speacutecifiques agrave lrsquoapplication)

Equipe Systegraveme Robotiseacute de ProductionCarte Robosoft MPC555La carte Robosoft MPC555 est conccedilue pour la commande de robot de veacutehicule

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4879

S y nd

e xV5

(1) Connecteur du chip MPC555(2) Alimentation continue(3) Interface BDM (Basic Debug Interface)(4) Entreacute Analogique (Joystickhellip)(5) EntreacuteSortie logiques(6) Ligne seacuterie Synchrone (Codeur absolu)(7) Ligne seacuterie Asynchrone (Port 0)

(8) Ligne seacuterie Asynchrone (Port 1)(9) Connecteur du bus CAN (Port 0)(10) Connecteur du bus CAN (Port 1)(11) Axe 1(13) Axe 2(14) Axe 3(15) Axe 4

La carte Robosoft MPC555 est conccedilue pour la commande de robot de veacutehiculeeacutelectrique ou toute autre machine Elle permet de commander un axe gracircce agrave

lrsquoajout drsquoune carte fille le controcircle srsquoeacutetend jusqursquoagrave 4 axesCette carte est baseacutee sur le microcontrocircleur MPC555 32-bit de MotorolaElle peut opeacuterer agrave une freacutequence

de 40 MHz Divers signauxlogique et analogique peuventecirctre utiliser pour lrsquoacquisition deet la commande de mateacuteriel Les

sorties disponibles peuvent ecirctreanalogique ou PWMOn y trouve

Equipe Systegraveme Robotiseacute de ProductionArchitecture du MPC555

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4979

S y nd

e xV5

Equipe Systegraveme Robotiseacute de Productionaract r st ques u

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5079

S y nd

e xV5

Equipe Systegraveme Robotiseacute de Productionacros n r quesbull GPIO (General-Purpose InputOutput)

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5179

S y nd

e xV5

GPIO (General Purpose InputOutput)ce macro utilise le module USIU qui lui fourni 64 pins pour desentreacuteessorties numeacuteriques ordinaires (IO de la carte Robosoft lirelrsquoeacutetat de la pince envoi de commande agrave la pince lire les alarmes)

bull QADC (Queued Analog to Digital Converter)en utilisant le module QADC ce macro permet la conversion drsquounsignal analogique en entreacutee en un signal numeacuterique multi-niveaux(lire les donneacutees du capteur drsquoeacuteffort du joystick)

bull MIOS (Modular InputOutput System)Le module MIOS fourni 16 pins drsquoES numeacuteriques Sur la carte deRobosoft tous les pins sont en sortie Les 16 pins sont reacutepartiscomme suit

utilisateurs reacuteserveacutes

les pins de 0 agrave 11 sont reacuteserveacutes car ils sont preacutevus agrave ecirctre utiliseacutes pour unmateacuteriel particulier Mais si ce mateacuteriel nrsquoest pas utiliseacute lrsquoutilisateur peut lesutiliser librement

15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

Equipe Systegraveme Robotiseacute de ProductionMacros Geacuteneacuter ques MPC55

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5279

S y nd

e xV5

bull PWM (Pulse width Modulation)utilise le module MIOS (pins de 4-7 pour la direction des moteurset de 8-11 pour la validation) pour la commande des actionneursnumeacuteriques en PWM

bull TPU (Time Processor Units)les macros lieacutes agrave ce module permettent la lecture des encodeurs

increacutementauxbull QSPI (Queued Serial Peripheral Interface)

ce module fait partie du module QSMCM et les macros lieacutes servent

agrave son initialisation pour une communication avec du mateacuterielsexternes via le bus seacuterie synchrone

Equipe Systegraveme Robotiseacute de ProductionMacros Geacuteneacuter ques MPC55

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5379

S y nd

e x

V5 bull Serial port support (Polling implementation)

le MPC555 comprend dans le module QSMCM une interface decommunication seacuterie SCI qui permet la communication avec dumateacuteriels externes via un bus seacuterie asynchrone Plusieurs macros

sont lieacutes agrave cette interface pour initialiser et eacutetablir la communicationbull Serial port support (interrupt handling implementation)

pour la mecircme interface SCI du module QSMCM pour cette

meacutethode drsquoimpleacutementation les macros lieacutes initialisent et eacutetablissentla communication en mode par interruption ce qui permet dedeacutetecter lrsquoarriveacutee des donneacutees sur le port seacuterie au lieu de le scruter

en permanence

tous ces macros on les retrouvent dans le fichier 555m4x

Equipe Systegraveme Robotiseacute de ProductionMacros Speacutec ques Ro oso tles macros suivants sont deacutedieacutes agrave la carte de Robosoft MPC555

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5479

S y nd

e x

V5

bull Initialisation de la carte Robosoftmain_ini_() macro ne doit pas ecirctre utiliser par les programmateursdu fait qursquoelle sert qursquoagrave initialiser la carte robosoft Macro interne agrave

syndex dont lrsquoappel est automatique lors de geacuteneacuteration drsquoexeacutecutifMPC555

bull DAC (Digital to Analog Converter)

macro permet lrsquoutilisation du convertisseur de carte robosoft via lemodule MIOs en utilisant les pins de 0 agrave 2

bull LED (on-bord LED interface)

macro permet la gestion de la LED de la carte robosoft connecteacuteeau module QSPI (pin PCS1)

bull SPI absolute encoder

macro permet lrsquoutilisation lrsquointerface du codeur absolu de la carterobosoft connecteacute au module QSPI

Equipe Systegraveme Robotiseacute de ProductionMacros Speacutec ques Ro oso tbull Motor amplifier direction

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5579

S y nd

e x

V5

Motor amplifier directionmacro qui permet de geacuterer la direction des moteurs

bull Motor power amplifier validationles moteurs embarqueacutes sur les robots sont eacutequipeacutes de freins

eacutelectriquement commandable Ce macro permet drsquoenvoyer unsignal drsquoinhibition pour deacutebloquer les freins

bull Watch dog

pour des raisons de seacutecuriteacute un meacutecanisme mateacuteriel que robosofta ajouteacute sur la carte Ce watch-dog vise agrave stopper lrsquoactiviteacute dumoteur en cas ougrave le programme plante Le watch est impleacutementeacute

comme un time-out mateacuteriel Srsquoil nrsquoest pas rafraicircchi peacuteriodiquement il transmet un signal de sortie ce qui enlegraveve lavalidation de lrsquoamplificateur de puissance donc lrsquoarrecirct dumouvement

ces macros se trouvent dans le fichier RSBm4x

Equipe Systegraveme Robotiseacute de Production

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5679

S y nd

e x

V5

Macros de Communicationchaque meacutedia de communication (bus CAN ) est une ressourceseacutequentielle ougrave les transferts de donneacutees entre processeurs doiventsuivre un certain ordre Donc ce macro de communication sert agravedeacutefinir cet ordre et agrave identifier le protocole de communication lecodagedeacutecodage de lrsquoinformation et la synchronisation

on trouve ces macros dans le fichier CANm4x

Macros drsquoapplicationce genre de macros sont speacutecifique au mateacuteriel en question et aussiagrave lrsquoapplication en particulier Ce sont des macros utilisateurs

on trouve ces macros dans le fichier Application_namem4x

Equipe Systegraveme Robotiseacute de Production

section include (pour inclure drsquoautres fichiers macro agrave utiliseStructure du fichier macr

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5779

S y nd

e x

V5

section define (pour tous les macros utilisateurs)MGC lsquoINITrsquo (MGC Macro Generation Context variable)

divert (declaration) (deacutebut du macro)

(deacuteclaration des variables des meacutemoires et des csts

divert (o)

MGC lsquolooprsquocode en assembleur code en C

dnl (commentaires)

MGC lsquoENDrsquo dnl (fin de la macros)divert lsquo lsquo dnl

macros MPC555meacutemoire MPC555

constante MPC555

macros RTAImeacutemoire RTAI

constante RTAI

Equipe Systegraveme Robotiseacute de Production Plan

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5879

S y nd

e x

V5

bull Introduction

bull Meacutethodologie AAA

bull Installationbull Utilisation du logiciel Syndex

bull Macrosbull LinuxIO un interface CC++ avec SynDEx

bull Exemple drsquoapplication Robuter-ULM

Equipe Systegraveme Robotiseacute de Production

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5979

S y nd

e x

V5

LinuxIO LinuxIO une interface une interface

CC++ avecCC++ avec SynDExSynDEx

bull Principe de basebull Utilisation de linuxIO_ par syndex

bull Utilisation de linuxIO_ par un programmeCC++

Equipe Systegraveme Robotiseacute de ProductionPrincipe de baseSyndex fourni une interface graphique pour la conception

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6079

S y nd

e x

V5

Syndex fourni une interface graphique pour la conception

drsquoapplications Par contre des fois nous avons besoin drsquoautresfonctionnaliteacutes non disponibles donc il faut les creacuteer Cependantgeacuteneacuterer des macros pour syndex srsquoavegravere difficile pour certains du

fait qursquoil faut avoir une bonne connaissance de la programmation bas niveau Dans ce cas lrsquoutilisation de linux_IO trouve sa placedans un contexte particulier interfacer des applications CC++utilisateurs avec des applications embarqueacutees temps reacuteeldeacuteveloppeacutees sous syndex

Par rapport agrave ce contexte de programmation lrsquoorganisation du

deacuteveloppement des applications est structureacutee en deux parties 1 Application haut niveau

2 Application bas niveau

Equipe Systegraveme Robotiseacute de ProductionPrincipe de base

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6179

S y nd

e x

V5

En reacutesumeacute lrsquoapplicationutilisateur contient une

partie haut niveau enCC++ et une partie basniveau sous syndex avecun eacutechange de donneacuteesentre les deux partie en

utilisant la couche RTAIde linux

Equipe Systegraveme Robotiseacute de Production pp cat on aut n veauOn entend application haut

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6279

S y nd

e x

V5

niveau tout programmecomme la planification detrajectoires strateacutegies de

navigation etc hellipLrsquoeacutechange de donneacutees sefait par le biais desmeacutemoires partageacutees quifont parti du noyau RTAI

et de lrsquoespace utilisateursde Linux

Toute ressource preacutesente sur la carte Robosoft peutecirctre partageacutee sans aune restriction

Equipe Systegraveme Robotiseacute de Production pp cat on as n veauUne application bas niveau

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6379

S y nd

e x

V5

Une application bas niveau

est un programme conccedilusous syndex comme lacommande des moteurs la

lecture des capteurs etc hellipLes ressources mateacuteriellessont controcircler par plusieurs

cartes MPC555 Ces cartessrsquoeacutechangent des donneacuteesvia le bus CAN Donc ES

est prise en charge par lasource logicielle deacutedieacutee quisrsquoexeacutecute dans les cartes MPC555 puis la couche RTAI

est utiliseacute pour la mise agrave jour de meacutemoires partageacutees pour lrsquoespace utilisateurs linux drsquoeacutechange de donneacutees

Equipe Systegraveme Robotiseacute de ProductionUtilisation de linux_IO par syndex

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6479

S y nd

e x

V5

Equipe Systegraveme Robotiseacute de ProductionUtilisation de linux_IO par syndex

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6579

S y nd

e x

V5

Equipe Systegraveme Robotiseacute de Production

5

Utilisation de linux_IO par syndex

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6679

S y nd

e x

V5

Degraves que la conception de lrsquoapplication sous syndex esttermineacutee et apregraves compilation (AdequationDo it +GenExec) un fichier drsquoentecircte sous le nom de linioh est

automatiquement geacuteneacutereacute Ce fichier contient lesinformations neacutecessaires pour acceacuteder aux entreacutees enlecture et aux sorties en eacutecriture des opeacuterations linuxIO_

inseacutereacutees dans le graphe drsquoalgorithme Le contenu de cefichier est organiseacute en plusieurs parties une pour chaqueopeacuteration linux_IO preacutesente dans le graphe

Equipe Systegraveme Robotiseacute de Production

5

Utilisation de linux_IO par syndex linioh auto-generated C users API frontend

C i h b f 2001 i i i b f f

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6779

S y nd

e x

V5 Copyright Robosoft 2001 Pierre Pomiers ltpierrerobosoftfrgt

LINUX IO shared memory data segments

define SEG0_BASE 0x10000typedef struct

int js_spd_o0

int js_str_o0

int enc_R_o0int enc_L_o0

double odo_X_o0

double odo_Y_o0

double odo_T_o0int spd_R_o0

int spd_L_o0

int time

unsigned char sem shm_seg0_def

Nom du segment de meacutemoire partageacutee pour notre opeacuteration linuxIO_

7 signaux drsquoentreacutees Ces valeurs sonten lecture et sont peacuteriodiquementrafraicircchies par RTAI

2 signaux de sorties Ces valeurs sonten eacutecriture et sont peacuteriodiquementrafraicircchies par RTAI

Equipe Systegraveme Robotiseacute de Production

5

Crsquoest une eacutetape tregraves facile il suffit drsquoinclure le fichier drsquoentecirctelinio h dans le code du fichier en CC++ comme suit

Utilisation de linuxIO_ par un programme CC+

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6879

S y nd

e x

V5 linioh dans le code du fichier en CC++ comme suit

include linioh

include ltrtai_shmhgt

static shm_seg0_def seg0

shm_seg0_def robot

seg0 = rtai_malloc (SEG0_BASE sizeof (shm_seg0_def))

if (seg0-gtsem = 0) bcopy (seg0 amprobot sizeof (shm_seg0_def))helliphelliphellip

helliphelliphellip bcopy (amprobot seg0 sizeof (shm_seg0_def))helliphelliphelliphelliphelliphellip

rtai_free (SEG0_BASE seg0)

fichier drsquoentecircte de la meacutemoire partageacutee fourni dans la couche RTAI de linux

Initialisation du segment SEG0_BASE Allocation de lameacutemoire pointeacutee

par seg0

Lecture des donneacutees provenant du bas

niveau

Mise agrave jours du segment de meacutemoire partageacutee

Libeacuterer le segment de meacutemoire alloueacute

Equipe Systegraveme Robotiseacute de Production

5

Plan

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6979

S y nd e x

V5

bull Introductionbull Meacutethodologie AAA

bull Installationbull Utilisation du logiciel Syndex

bull Macrosbull LinuxIO un interface CC++ avec SynDEx

bull Exemple drsquoapplication Robuter-ULM

Equipe Systegraveme Robotiseacute de Production

V5

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7079

S y nd e x

V5

Exemple dapplication Exemple dapplication Robuter Robuter--ULM ULM

Equipe Systegraveme Robotiseacute de Production

V5

Description Robuter-ULMbull Base mobile (2-RM 2-RF)

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7179

S y nd e x

V

bull Bras ultra-leacuteger 6 axesbull Ceinture 24 capteurs US

bull Capteur drsquoefforts 6 axes

bull Cameacutera CCD monochromeavec carte drsquoacquisition

bull PC embarqueacute MMX 233

bull OS linux redhat 61 avecRTAI V-13

bull 3 bouton drsquoarrecirct drsquourgence

bull 4 batteries 48 VDC 4 X12V 60 Ah

bull Entreacutee Joystick

bull Liaison Ethernet sans fil

Le manipulateur mobile Robuter-ULM comprend

Equipe Systegraveme Robotiseacute de Production

V5

Base Mobilebull dimension

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7279

S y nd e x

V

1025 mm de longueur 680 mm de largueur et 44 cm de hauteurbull Poids environ 150 kg avec les batteriesbull charge jusqursquoagrave 120 kg

bull vitesse de 5cms agrave 125 msbull Moteurs 2 X 300 W DC 48 VDCbull orientation par diffeacuterence de vitesse

bull Preacutecision Position par encodeurs optiquesbull Deux roues motrices diffeacuterentielles et de deux roues follesbull Drsquoune ceinture de 24 capteurs Ultrasons

bull Une carte MPC555 de Robosoft pour le controcircle des deuxmoteurs DC des 2 rouesbull Un systegraveme drsquoodomeacutetrie qui donne la position relative du robot

par rapport agrave son repegravere

Equipe Systegraveme Robotiseacute de Production

V5

bull dimension Faute de documentation

Bras U tra- eacuteger

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7379

S y nd e x

V Faute de documentation

bull Poids moins de 20 kgbull charge 2 kgbull Moteurs 6 moteurs DC

bull gripper pince eacutelectrique 2 doigtsbull Reacutepeacutetabiliteacute +- 1mmbull 3 carte MPC555 de Robosoft lrsquoune pour le capteur drsquoeffort et les

deux autres pour les 6 moteurs + moteur de la pincebull Position encodeur increacutemental

1 2 3 4 5 6Axisrange

plusmn90deg 0-90deg plusmn80deg plusmn100deg plusmn90deg plusmn110deg

vitesse 180degs 180degs 180degs 180degs 180degs 180degs

Equipe Systegraveme Robotiseacute de Production

V5

rc tecture ar ware

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7479

S y nd e x

V

Equipe Systegraveme Robotiseacute de Production

V5

Pro eacutemat quePlusieurs applications peuvent ecirctre impleacutementeacutees sur le robot

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7579

S y nd e x

V

Cependant il faut faire la diffeacuterence entre les applications quidemande lrsquoutilisation de syndex et les applications qui neneacutecessite qursquoune programmation en CC++ Agrave titre drsquoexemple

bull Localisationbull Commande en position

bull Commande en forcebull Navigation

bull Geacuteneacuteration de trajectoire

bull Vision

Equipe Systegraveme Robotiseacute de Production

V5 bull Pince eacutelectrique (TOR)

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7679

S y nd e x

Vq ( )

bull Pince possegravede des ES Logiques

Notre application consiste agrave

bull Recevoir lrsquoeacutetat de la pince (fermeacutee ouverte )

bull Envoyer une commande vers la pince

Capture

drsquoinformation

Open

Close

CommandeMeacutemoire

Partageacutee

Actionneur

Pince Prise de deacutecision Pince

Equipe Systegraveme Robotiseacute de Production

V5

Sc eacutema eacute ectr que

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7779

S y nd e x

Equipe Systegraveme Robotiseacute de Production

V5

Conclusion

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7879

S y nd e x bull Introduction

bull Meacutethodologie AAA

bull Installationbull Utilisation du logiciel Syndex

bull Macrosbull LinuxIO un interface CC++ avec SynDEx

bull Exemple drsquoapplication Robuter-ULM

Equipe Systegraveme Robotiseacute de Production

V5

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7979

S y nd e x

Questions

Page 23: Cours Syndex

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 2379

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Pla

bull Introduction

bull Meacutethodologie AAA

bull Installation

bull Utilisation du logiciel Syndex

bull Macros

bull LinuxIO un interface CC++ avec SynDEx

bull Exemple drsquoapplication Robuter-ULM

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 2479

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Utilisation du logicielUtilisation du logicielSyndexSyndex V5V5

bull Utilisation de lrsquointerface

bull Algorithme

bull Architecture

bull Caracteacuteristiques

bull Contraintes

bull Adeacutequation

bull Geacuteneacuteration du code exeacutecutif

SynDE

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 2579

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

SynDESynDEx est un logiciel graphique qui impleacutemente lameacutethodologie AAA et qui offre plusieurs fonctionnaliteacutes

bull Speacutecification drsquoun algorithme drsquoapplication saisi sousforme drsquoun graphe

bull Speacutecification drsquoun graphe drsquoarchitecture multi-composant

bull Heuristique pour la distribution et lrsquoordonnancement delrsquoalgorithme drsquoapplication sur lrsquoarchitecture avecoptimisation du temps de reacuteponse

bull Geacuteneacuteration des exeacutecutifs distribueacutes temps reacuteel

Utilisation de lrsquointerface

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 2679

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Utilisation de l interface

Utilisation de lrsquointerface

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 2779

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Utilisation de l interface

Utilisation de lrsquointerface

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 2879

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Utilisation de l interface

Algorithm

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 2979

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Algorithm

Lrsquoalgorithme est speacutecifieacute comme un graphe orienteacute ougravebull chaque sommet est une opeacuteration qui calcule les sorties

des entreacutees agrave chaque opeacuteration doit correspondre uneseacutequence drsquoinstructions compileacutee seacutepareacutement

bull Chaque arc est une deacutependance de donneacutees entre deux

opeacuterations (ou plus dans le cas de diffusion) c-a-d lasortie drsquoune opeacuteration est lrsquoentreacutee de lrsquoautre opeacuteration(ou de plusieurs autres opeacuterations) une entreacutee peut ecirctreconnecteacutee seulement agrave une sortie de mecircme type dedonneacutees

gor t m

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3079

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

gor t mon distingue 4 types de sommets

Algorithm

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3179

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Algorithmbull Le sommet function possegravede au moins une entreacutee et

une sortie crsquoest une opeacuteration agrave libre effet qui calculeses sorties uniquement agrave partir de ses entreacutees (c-a-d niagrave partir des variables globales ni agrave partir des

preacuteceacutedentes valeurs de ces entreacutees)bull Le sommet extio permet lrsquoacquisitionlrsquoeacutecriture des

entreacuteessorties on distingue trois cas

1 Capteur sans entreacutee agrave chaque reacuteaction sa sortierepreacutesente la valeur lue du capteur

2 Actionneur sans sortie agrave chaque reacuteaction ilenvoi son entreacutee agrave lrsquoactionneur

3 Linux_IO ces des meacutemoires partageacutees qui

permettent le transfert de donneacutees entre syndexet un langage eacutevolueacute

E i S egrave R b i eacute d P d i Algorithm

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3279

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Algorithm

bull Le sommet memory possegravede uniquement uneentreacutee et une sortie crsquoest une opeacuteration agrave effetunique qui met la sortie degraves la premiegravere reacuteaction

agrave une valeur initiale calculeacutee auparavant et puisla sortie de la prochaine reacuteaction nrsquoest que

lrsquoentreacutee de la preacuteceacutedente reacuteactionbull Le sommet constant ne possegravede aucune entreacutee

il calcule sa sortie une seule fois avant la premiegravere reacuteaction puis la sortie demeure la mecircme pour chaque reacuteaction

E i S tegrave R b ti eacute d P d ti Algorithm

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3379

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

AlgorithmPour lrsquoalgorithme chaque sommet est caracteacuteriseacute par

bull Son type geacuteneacuterique (function extio memory constant)bull Un nom unique (tout les sommets doivent avoir des

noms diffeacuterents)bull Son type identifiant sa seacutequence drsquoinstructionsassocieacute

bull Sa liste drsquoarguments ougrave chaque argument est speacutecifieacute par bull Le nombre drsquoentreacuteesortiebull Le type de donneacuteesbull Le nom (tout les arguments doivent avoir des noms

diffeacuterents)

Equipe Systegraveme Robotiseacute de Production Architecture

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3479

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

ArchitectureLrsquoarchitecture est speacutecifieacutee comme un graphe non orienteacute

ougrave bullChaque sommet est une ressource seacutequentielle il y adeux types de sommets

bull processeur crsquoest une ressource de calcul enmesure drsquoexeacutecuter seacutequentiellement les opeacuterationsdrsquoun algorithme il pourrait ecirctre un processeur ou

un circuit inteacutegreacute speacutecialiseacutebull meacutedia crsquoest une ressource de communicationen mesure drsquoexeacutecuter seacutequentiellement un transfertde donneacutees entre les meacutemoires des processeurs quilui sont connecteacutes

bull chaque arc est une connexion bidirectionnelle entreun processeur et un meacutedia

Equipe Systegraveme Robotiseacute de Production Architecture

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3579

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

ArchitecturePour lrsquoarchitecture chaque sommet est caracteacuteriseacute par

bull Un nom uniquebullSon type (processeur or meacutedia)bull Son type identifiant caracteacuteristiques mateacuterielles

bull Sa liste de connecteurs ougrave chaque connecteur est speacutecifieacute par bull son type identifiant le type de meacutedia agrave qui il peut ecirctreconnecteacute

bullUn nom

Equipe Systegraveme Robotiseacute de ProductionCaracteacuter st que

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3679

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Caracteacuter st que Nous distinguons deux cateacutegories de caracteacuteristiques lrsquoune relative

aux opeacuterations et lrsquoune agrave la communication 1 Comment speacutecifier les caracteacuteristiques des opeacuterations sous le menu AdequationAlOp_ArOp on obtient une boite

de dialogue avec

une liste de toutles types de

processeurs et

pour chaque processeur uneliste de tout les

types drsquoopeacuterationsqui peut lesexeacutecuter avec ladureacutee drsquoexeacutecutioncorrespondante

Equipe Systegraveme Robotiseacute de ProductionCaracteacuteristique

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3779

q p y

S y nd

e xV

5

q2 Comment speacutecifier les caracteacuteristiques de communication

sous le menu AdequationAlIO_ArIO on obtient une boitede dialogue avec une liste de tout les types de meacutedia et

pour chaque meacutedia une liste de tout les types de donneacutees

qui peut transfeacuterer avec la dureacutee de transfertcorrespondante

Equipe Systegraveme Robotiseacute de Production Contraintes

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3879

S y nd

e xV

5

Pour contraindre une opeacuteration agrave srsquoexeacutecuter sur un processeur donneacutee

1Seacutelectionner le(s) opeacuteration(s) agrave contraindre2 Seacutelectionner la commande AlgorithmSetConstraint3 Seacutelectionner le processeur qui doit exeacutecute les opeacuterationsseacutelectionneacutees

Pour enlever les contraintes seacutelectionner lrsquoopeacuteration puis exeacutecuterla commande AlgorithmDeleteConstraint

Pour voir sur quel processeur une opeacuteration est y contrainteseacutelectionner lrsquoopeacuteration puis exeacutecuter la commandeAlgorithmShowConstraint le processeur correspondant y sera

seacutelectionneacutePour voir toute les opeacuterations qui sont contraintes sur un processeurseacutelectionner le processeur puis exeacutecuter la commande

ArchitectureShowConstrained du menu les opeacuterationscorrespondantes y seront seacutelectionneacutees

Equipe Systegraveme Robotiseacute de Production A eacutequat o

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3979

S y nd

e xV

5

q

Pour construire le planificateur des opeacuterations dugraphe drsquoalgorithme sur les processeurs du graphedrsquoarchitecture qui effectue automatiquement le routage

des deacutependances de donneacutees inter-processeurs et lacreacuteation et la planification des opeacuterations decommunication sur le meacutedia du graphe drsquoarchitectureon utilise la commande AdequationDoIt

Cette commande creacutee un heuristique qui cherche agraveminimiser le chemin critique du graphe drsquoalgorithme

Equipe Systegraveme Robotiseacute de ProductionGeacuteneacuteration du code exeacutecuti

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4079

S y nd

e xV

5Le code exeacutecutif est la partie qui gegravere les ressources

mateacuterielles pour les allouer aux besoins de lrsquoalgorithmedrsquoapplication Les ressources agrave allouer sont

1 Les espaces meacutemoires des processeurs2 Le temps des seacutequences drsquoinstructions3 Le temps des meacutedia de communication

Gracircce agrave la meacutethodologie AAA et le logiciel Syndexlrsquoutilisateur est exempte drsquoeacutecrire du code pour geacuterer ces

ressources Donc par simple exeacutecution de la commandeAdequationGenExec un code distribueacute pour chaque processeur est automatiquement geacuteneacutereacute Ce code est en

fait un exeacutecutif geacuteneacutereacute sur mesure pour lrsquoalgorithme etlrsquoarchitecture

Equipe Systegraveme Robotiseacute de ProductionGeacuteneacuteration du code exeacutecuti

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4179

S y nd

e xV5

Pour chaque processeur de lrsquoarchitecture un fichier

source macro-exeacutecutif m4 avec le mecircme nom estgeacuteneacutereacute plus un macro-makefile ayant le mecircme nom quecelui de lrsquoapplication Chacun de ces fichiers doit ecirctre

transcrit par le macro-processeur GNU M4 (assembleurC) Cette transcription deacutepend de plusieurs fichiers

1 Fichier syndexm4x qui deacutefini les macrosgeacuteneacuteriques de syndex2 Fichier processorTypem4x qui deacutefini les macros

de bas niveau du processeur3 Fichier applicationNamem4x qui deacutefini les macros

speacutecifiques agrave lrsquoapplication

4 Fichier mediaTypem4x qui deacutefini les macros decommunication de bas niveau du type de media

Equipe Systegraveme Robotiseacute de ProductionCreacuteat on rsquoapp cat on

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4279

S y nd

e xV5 Arborescence des reacutepertoires Rep_travail

Applicationmacros

~rtai

Eacutevolution de lrsquoapplication

Phase 1

Edition des macros(C ou Assembleur)

+GNUmakefile

Phase 2

Edition du graphe

(Algorithme amp

Architecteure)

Phase 3

Compilation amp Exeacutecution

Equipe Systegraveme Robotiseacute de ProductionSeacutequence de compilation de Synde

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4379

S y nd

e xV5

Equipe Systegraveme Robotiseacute de Production Plan

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4479

S y nd

e xV5

bull Introduction

bull Meacutethodologie AAA

bull Installation

bull Utilisation du logiciel Syndex

bull Macros

bull LinuxIO un interface CC++ avec SynDEx

bull Exemple drsquoapplication Robuter-ULM

Equipe Systegraveme Robotiseacute de Production

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4579

S y nd

e xV5

Macros Macros

bull Deacutefinition

bull Types de macros

bull Carte Robosoft MPC555

bull Macros Geacuteneacuterique MPC555

bull Macros speacutecifique Robosoftbull Macros de Communication

bull Macros drsquoapplicationbull Structure du fichier Macro

Equipe Systegraveme Robotiseacute de Production Deacutefinition

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4679

S y nd

e xV5

Un macro-processeur est un programme qui consommeen entreacutee une chaicircne de caractegraveres (texte source) la

traite seacutequentiellement en substituant chaque sous-chaicircne qursquoil reconnaicirct (Appel de macro) par unechaicircne correspondante de substitution ( Deacutefinition de

macro) qursquoil traite agrave nouveau jusqursquoagrave ce qursquoil nrsquo y ait plus de substitution possible et qui produit en sortie lachaicircne de caractegraveres traiteacutee

Equipe Systegraveme Robotiseacute de Productionypes e macrosL diffeacute t di ti t d d

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4779

S y nd

e xV5

Les diffeacuterents macros se distinguent en deux grandes

classes bull Macros geacuteneacuteriques

en geacuteneacuteral ceux sont des macros non destineacutes agraveecirctre utiliser directement par lrsquointerface syndexmais plutocirct utiliseacutees pour la programmation

drsquoautres macros (macros MPC555)bull Macros utilisateurs

macros utiliseacutes directement par syndex ils sontspeacutecifiques agrave lrsquoapplication (macros decommunication macros speacutecifiques robosoft

macros speacutecifiques agrave lrsquoapplication)

Equipe Systegraveme Robotiseacute de ProductionCarte Robosoft MPC555La carte Robosoft MPC555 est conccedilue pour la commande de robot de veacutehicule

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4879

S y nd

e xV5

(1) Connecteur du chip MPC555(2) Alimentation continue(3) Interface BDM (Basic Debug Interface)(4) Entreacute Analogique (Joystickhellip)(5) EntreacuteSortie logiques(6) Ligne seacuterie Synchrone (Codeur absolu)(7) Ligne seacuterie Asynchrone (Port 0)

(8) Ligne seacuterie Asynchrone (Port 1)(9) Connecteur du bus CAN (Port 0)(10) Connecteur du bus CAN (Port 1)(11) Axe 1(13) Axe 2(14) Axe 3(15) Axe 4

La carte Robosoft MPC555 est conccedilue pour la commande de robot de veacutehiculeeacutelectrique ou toute autre machine Elle permet de commander un axe gracircce agrave

lrsquoajout drsquoune carte fille le controcircle srsquoeacutetend jusqursquoagrave 4 axesCette carte est baseacutee sur le microcontrocircleur MPC555 32-bit de MotorolaElle peut opeacuterer agrave une freacutequence

de 40 MHz Divers signauxlogique et analogique peuventecirctre utiliser pour lrsquoacquisition deet la commande de mateacuteriel Les

sorties disponibles peuvent ecirctreanalogique ou PWMOn y trouve

Equipe Systegraveme Robotiseacute de ProductionArchitecture du MPC555

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4979

S y nd

e xV5

Equipe Systegraveme Robotiseacute de Productionaract r st ques u

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5079

S y nd

e xV5

Equipe Systegraveme Robotiseacute de Productionacros n r quesbull GPIO (General-Purpose InputOutput)

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5179

S y nd

e xV5

GPIO (General Purpose InputOutput)ce macro utilise le module USIU qui lui fourni 64 pins pour desentreacuteessorties numeacuteriques ordinaires (IO de la carte Robosoft lirelrsquoeacutetat de la pince envoi de commande agrave la pince lire les alarmes)

bull QADC (Queued Analog to Digital Converter)en utilisant le module QADC ce macro permet la conversion drsquounsignal analogique en entreacutee en un signal numeacuterique multi-niveaux(lire les donneacutees du capteur drsquoeacuteffort du joystick)

bull MIOS (Modular InputOutput System)Le module MIOS fourni 16 pins drsquoES numeacuteriques Sur la carte deRobosoft tous les pins sont en sortie Les 16 pins sont reacutepartiscomme suit

utilisateurs reacuteserveacutes

les pins de 0 agrave 11 sont reacuteserveacutes car ils sont preacutevus agrave ecirctre utiliseacutes pour unmateacuteriel particulier Mais si ce mateacuteriel nrsquoest pas utiliseacute lrsquoutilisateur peut lesutiliser librement

15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

Equipe Systegraveme Robotiseacute de ProductionMacros Geacuteneacuter ques MPC55

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5279

S y nd

e xV5

bull PWM (Pulse width Modulation)utilise le module MIOS (pins de 4-7 pour la direction des moteurset de 8-11 pour la validation) pour la commande des actionneursnumeacuteriques en PWM

bull TPU (Time Processor Units)les macros lieacutes agrave ce module permettent la lecture des encodeurs

increacutementauxbull QSPI (Queued Serial Peripheral Interface)

ce module fait partie du module QSMCM et les macros lieacutes servent

agrave son initialisation pour une communication avec du mateacuterielsexternes via le bus seacuterie synchrone

Equipe Systegraveme Robotiseacute de ProductionMacros Geacuteneacuter ques MPC55

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5379

S y nd

e x

V5 bull Serial port support (Polling implementation)

le MPC555 comprend dans le module QSMCM une interface decommunication seacuterie SCI qui permet la communication avec dumateacuteriels externes via un bus seacuterie asynchrone Plusieurs macros

sont lieacutes agrave cette interface pour initialiser et eacutetablir la communicationbull Serial port support (interrupt handling implementation)

pour la mecircme interface SCI du module QSMCM pour cette

meacutethode drsquoimpleacutementation les macros lieacutes initialisent et eacutetablissentla communication en mode par interruption ce qui permet dedeacutetecter lrsquoarriveacutee des donneacutees sur le port seacuterie au lieu de le scruter

en permanence

tous ces macros on les retrouvent dans le fichier 555m4x

Equipe Systegraveme Robotiseacute de ProductionMacros Speacutec ques Ro oso tles macros suivants sont deacutedieacutes agrave la carte de Robosoft MPC555

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5479

S y nd

e x

V5

bull Initialisation de la carte Robosoftmain_ini_() macro ne doit pas ecirctre utiliser par les programmateursdu fait qursquoelle sert qursquoagrave initialiser la carte robosoft Macro interne agrave

syndex dont lrsquoappel est automatique lors de geacuteneacuteration drsquoexeacutecutifMPC555

bull DAC (Digital to Analog Converter)

macro permet lrsquoutilisation du convertisseur de carte robosoft via lemodule MIOs en utilisant les pins de 0 agrave 2

bull LED (on-bord LED interface)

macro permet la gestion de la LED de la carte robosoft connecteacuteeau module QSPI (pin PCS1)

bull SPI absolute encoder

macro permet lrsquoutilisation lrsquointerface du codeur absolu de la carterobosoft connecteacute au module QSPI

Equipe Systegraveme Robotiseacute de ProductionMacros Speacutec ques Ro oso tbull Motor amplifier direction

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5579

S y nd

e x

V5

Motor amplifier directionmacro qui permet de geacuterer la direction des moteurs

bull Motor power amplifier validationles moteurs embarqueacutes sur les robots sont eacutequipeacutes de freins

eacutelectriquement commandable Ce macro permet drsquoenvoyer unsignal drsquoinhibition pour deacutebloquer les freins

bull Watch dog

pour des raisons de seacutecuriteacute un meacutecanisme mateacuteriel que robosofta ajouteacute sur la carte Ce watch-dog vise agrave stopper lrsquoactiviteacute dumoteur en cas ougrave le programme plante Le watch est impleacutementeacute

comme un time-out mateacuteriel Srsquoil nrsquoest pas rafraicircchi peacuteriodiquement il transmet un signal de sortie ce qui enlegraveve lavalidation de lrsquoamplificateur de puissance donc lrsquoarrecirct dumouvement

ces macros se trouvent dans le fichier RSBm4x

Equipe Systegraveme Robotiseacute de Production

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5679

S y nd

e x

V5

Macros de Communicationchaque meacutedia de communication (bus CAN ) est une ressourceseacutequentielle ougrave les transferts de donneacutees entre processeurs doiventsuivre un certain ordre Donc ce macro de communication sert agravedeacutefinir cet ordre et agrave identifier le protocole de communication lecodagedeacutecodage de lrsquoinformation et la synchronisation

on trouve ces macros dans le fichier CANm4x

Macros drsquoapplicationce genre de macros sont speacutecifique au mateacuteriel en question et aussiagrave lrsquoapplication en particulier Ce sont des macros utilisateurs

on trouve ces macros dans le fichier Application_namem4x

Equipe Systegraveme Robotiseacute de Production

section include (pour inclure drsquoautres fichiers macro agrave utiliseStructure du fichier macr

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5779

S y nd

e x

V5

section define (pour tous les macros utilisateurs)MGC lsquoINITrsquo (MGC Macro Generation Context variable)

divert (declaration) (deacutebut du macro)

(deacuteclaration des variables des meacutemoires et des csts

divert (o)

MGC lsquolooprsquocode en assembleur code en C

dnl (commentaires)

MGC lsquoENDrsquo dnl (fin de la macros)divert lsquo lsquo dnl

macros MPC555meacutemoire MPC555

constante MPC555

macros RTAImeacutemoire RTAI

constante RTAI

Equipe Systegraveme Robotiseacute de Production Plan

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5879

S y nd

e x

V5

bull Introduction

bull Meacutethodologie AAA

bull Installationbull Utilisation du logiciel Syndex

bull Macrosbull LinuxIO un interface CC++ avec SynDEx

bull Exemple drsquoapplication Robuter-ULM

Equipe Systegraveme Robotiseacute de Production

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5979

S y nd

e x

V5

LinuxIO LinuxIO une interface une interface

CC++ avecCC++ avec SynDExSynDEx

bull Principe de basebull Utilisation de linuxIO_ par syndex

bull Utilisation de linuxIO_ par un programmeCC++

Equipe Systegraveme Robotiseacute de ProductionPrincipe de baseSyndex fourni une interface graphique pour la conception

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6079

S y nd

e x

V5

Syndex fourni une interface graphique pour la conception

drsquoapplications Par contre des fois nous avons besoin drsquoautresfonctionnaliteacutes non disponibles donc il faut les creacuteer Cependantgeacuteneacuterer des macros pour syndex srsquoavegravere difficile pour certains du

fait qursquoil faut avoir une bonne connaissance de la programmation bas niveau Dans ce cas lrsquoutilisation de linux_IO trouve sa placedans un contexte particulier interfacer des applications CC++utilisateurs avec des applications embarqueacutees temps reacuteeldeacuteveloppeacutees sous syndex

Par rapport agrave ce contexte de programmation lrsquoorganisation du

deacuteveloppement des applications est structureacutee en deux parties 1 Application haut niveau

2 Application bas niveau

Equipe Systegraveme Robotiseacute de ProductionPrincipe de base

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6179

S y nd

e x

V5

En reacutesumeacute lrsquoapplicationutilisateur contient une

partie haut niveau enCC++ et une partie basniveau sous syndex avecun eacutechange de donneacuteesentre les deux partie en

utilisant la couche RTAIde linux

Equipe Systegraveme Robotiseacute de Production pp cat on aut n veauOn entend application haut

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6279

S y nd

e x

V5

niveau tout programmecomme la planification detrajectoires strateacutegies de

navigation etc hellipLrsquoeacutechange de donneacutees sefait par le biais desmeacutemoires partageacutees quifont parti du noyau RTAI

et de lrsquoespace utilisateursde Linux

Toute ressource preacutesente sur la carte Robosoft peutecirctre partageacutee sans aune restriction

Equipe Systegraveme Robotiseacute de Production pp cat on as n veauUne application bas niveau

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6379

S y nd

e x

V5

Une application bas niveau

est un programme conccedilusous syndex comme lacommande des moteurs la

lecture des capteurs etc hellipLes ressources mateacuteriellessont controcircler par plusieurs

cartes MPC555 Ces cartessrsquoeacutechangent des donneacuteesvia le bus CAN Donc ES

est prise en charge par lasource logicielle deacutedieacutee quisrsquoexeacutecute dans les cartes MPC555 puis la couche RTAI

est utiliseacute pour la mise agrave jour de meacutemoires partageacutees pour lrsquoespace utilisateurs linux drsquoeacutechange de donneacutees

Equipe Systegraveme Robotiseacute de ProductionUtilisation de linux_IO par syndex

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6479

S y nd

e x

V5

Equipe Systegraveme Robotiseacute de ProductionUtilisation de linux_IO par syndex

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6579

S y nd

e x

V5

Equipe Systegraveme Robotiseacute de Production

5

Utilisation de linux_IO par syndex

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6679

S y nd

e x

V5

Degraves que la conception de lrsquoapplication sous syndex esttermineacutee et apregraves compilation (AdequationDo it +GenExec) un fichier drsquoentecircte sous le nom de linioh est

automatiquement geacuteneacutereacute Ce fichier contient lesinformations neacutecessaires pour acceacuteder aux entreacutees enlecture et aux sorties en eacutecriture des opeacuterations linuxIO_

inseacutereacutees dans le graphe drsquoalgorithme Le contenu de cefichier est organiseacute en plusieurs parties une pour chaqueopeacuteration linux_IO preacutesente dans le graphe

Equipe Systegraveme Robotiseacute de Production

5

Utilisation de linux_IO par syndex linioh auto-generated C users API frontend

C i h b f 2001 i i i b f f

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6779

S y nd

e x

V5 Copyright Robosoft 2001 Pierre Pomiers ltpierrerobosoftfrgt

LINUX IO shared memory data segments

define SEG0_BASE 0x10000typedef struct

int js_spd_o0

int js_str_o0

int enc_R_o0int enc_L_o0

double odo_X_o0

double odo_Y_o0

double odo_T_o0int spd_R_o0

int spd_L_o0

int time

unsigned char sem shm_seg0_def

Nom du segment de meacutemoire partageacutee pour notre opeacuteration linuxIO_

7 signaux drsquoentreacutees Ces valeurs sonten lecture et sont peacuteriodiquementrafraicircchies par RTAI

2 signaux de sorties Ces valeurs sonten eacutecriture et sont peacuteriodiquementrafraicircchies par RTAI

Equipe Systegraveme Robotiseacute de Production

5

Crsquoest une eacutetape tregraves facile il suffit drsquoinclure le fichier drsquoentecirctelinio h dans le code du fichier en CC++ comme suit

Utilisation de linuxIO_ par un programme CC+

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6879

S y nd

e x

V5 linioh dans le code du fichier en CC++ comme suit

include linioh

include ltrtai_shmhgt

static shm_seg0_def seg0

shm_seg0_def robot

seg0 = rtai_malloc (SEG0_BASE sizeof (shm_seg0_def))

if (seg0-gtsem = 0) bcopy (seg0 amprobot sizeof (shm_seg0_def))helliphelliphellip

helliphelliphellip bcopy (amprobot seg0 sizeof (shm_seg0_def))helliphelliphelliphelliphelliphellip

rtai_free (SEG0_BASE seg0)

fichier drsquoentecircte de la meacutemoire partageacutee fourni dans la couche RTAI de linux

Initialisation du segment SEG0_BASE Allocation de lameacutemoire pointeacutee

par seg0

Lecture des donneacutees provenant du bas

niveau

Mise agrave jours du segment de meacutemoire partageacutee

Libeacuterer le segment de meacutemoire alloueacute

Equipe Systegraveme Robotiseacute de Production

5

Plan

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6979

S y nd e x

V5

bull Introductionbull Meacutethodologie AAA

bull Installationbull Utilisation du logiciel Syndex

bull Macrosbull LinuxIO un interface CC++ avec SynDEx

bull Exemple drsquoapplication Robuter-ULM

Equipe Systegraveme Robotiseacute de Production

V5

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7079

S y nd e x

V5

Exemple dapplication Exemple dapplication Robuter Robuter--ULM ULM

Equipe Systegraveme Robotiseacute de Production

V5

Description Robuter-ULMbull Base mobile (2-RM 2-RF)

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7179

S y nd e x

V

bull Bras ultra-leacuteger 6 axesbull Ceinture 24 capteurs US

bull Capteur drsquoefforts 6 axes

bull Cameacutera CCD monochromeavec carte drsquoacquisition

bull PC embarqueacute MMX 233

bull OS linux redhat 61 avecRTAI V-13

bull 3 bouton drsquoarrecirct drsquourgence

bull 4 batteries 48 VDC 4 X12V 60 Ah

bull Entreacutee Joystick

bull Liaison Ethernet sans fil

Le manipulateur mobile Robuter-ULM comprend

Equipe Systegraveme Robotiseacute de Production

V5

Base Mobilebull dimension

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7279

S y nd e x

V

1025 mm de longueur 680 mm de largueur et 44 cm de hauteurbull Poids environ 150 kg avec les batteriesbull charge jusqursquoagrave 120 kg

bull vitesse de 5cms agrave 125 msbull Moteurs 2 X 300 W DC 48 VDCbull orientation par diffeacuterence de vitesse

bull Preacutecision Position par encodeurs optiquesbull Deux roues motrices diffeacuterentielles et de deux roues follesbull Drsquoune ceinture de 24 capteurs Ultrasons

bull Une carte MPC555 de Robosoft pour le controcircle des deuxmoteurs DC des 2 rouesbull Un systegraveme drsquoodomeacutetrie qui donne la position relative du robot

par rapport agrave son repegravere

Equipe Systegraveme Robotiseacute de Production

V5

bull dimension Faute de documentation

Bras U tra- eacuteger

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7379

S y nd e x

V Faute de documentation

bull Poids moins de 20 kgbull charge 2 kgbull Moteurs 6 moteurs DC

bull gripper pince eacutelectrique 2 doigtsbull Reacutepeacutetabiliteacute +- 1mmbull 3 carte MPC555 de Robosoft lrsquoune pour le capteur drsquoeffort et les

deux autres pour les 6 moteurs + moteur de la pincebull Position encodeur increacutemental

1 2 3 4 5 6Axisrange

plusmn90deg 0-90deg plusmn80deg plusmn100deg plusmn90deg plusmn110deg

vitesse 180degs 180degs 180degs 180degs 180degs 180degs

Equipe Systegraveme Robotiseacute de Production

V5

rc tecture ar ware

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7479

S y nd e x

V

Equipe Systegraveme Robotiseacute de Production

V5

Pro eacutemat quePlusieurs applications peuvent ecirctre impleacutementeacutees sur le robot

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7579

S y nd e x

V

Cependant il faut faire la diffeacuterence entre les applications quidemande lrsquoutilisation de syndex et les applications qui neneacutecessite qursquoune programmation en CC++ Agrave titre drsquoexemple

bull Localisationbull Commande en position

bull Commande en forcebull Navigation

bull Geacuteneacuteration de trajectoire

bull Vision

Equipe Systegraveme Robotiseacute de Production

V5 bull Pince eacutelectrique (TOR)

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7679

S y nd e x

Vq ( )

bull Pince possegravede des ES Logiques

Notre application consiste agrave

bull Recevoir lrsquoeacutetat de la pince (fermeacutee ouverte )

bull Envoyer une commande vers la pince

Capture

drsquoinformation

Open

Close

CommandeMeacutemoire

Partageacutee

Actionneur

Pince Prise de deacutecision Pince

Equipe Systegraveme Robotiseacute de Production

V5

Sc eacutema eacute ectr que

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7779

S y nd e x

Equipe Systegraveme Robotiseacute de Production

V5

Conclusion

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7879

S y nd e x bull Introduction

bull Meacutethodologie AAA

bull Installationbull Utilisation du logiciel Syndex

bull Macrosbull LinuxIO un interface CC++ avec SynDEx

bull Exemple drsquoapplication Robuter-ULM

Equipe Systegraveme Robotiseacute de Production

V5

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7979

S y nd e x

Questions

Page 24: Cours Syndex

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 2479

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Utilisation du logicielUtilisation du logicielSyndexSyndex V5V5

bull Utilisation de lrsquointerface

bull Algorithme

bull Architecture

bull Caracteacuteristiques

bull Contraintes

bull Adeacutequation

bull Geacuteneacuteration du code exeacutecutif

SynDE

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 2579

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

SynDESynDEx est un logiciel graphique qui impleacutemente lameacutethodologie AAA et qui offre plusieurs fonctionnaliteacutes

bull Speacutecification drsquoun algorithme drsquoapplication saisi sousforme drsquoun graphe

bull Speacutecification drsquoun graphe drsquoarchitecture multi-composant

bull Heuristique pour la distribution et lrsquoordonnancement delrsquoalgorithme drsquoapplication sur lrsquoarchitecture avecoptimisation du temps de reacuteponse

bull Geacuteneacuteration des exeacutecutifs distribueacutes temps reacuteel

Utilisation de lrsquointerface

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 2679

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Utilisation de l interface

Utilisation de lrsquointerface

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 2779

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Utilisation de l interface

Utilisation de lrsquointerface

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 2879

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Utilisation de l interface

Algorithm

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 2979

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Algorithm

Lrsquoalgorithme est speacutecifieacute comme un graphe orienteacute ougravebull chaque sommet est une opeacuteration qui calcule les sorties

des entreacutees agrave chaque opeacuteration doit correspondre uneseacutequence drsquoinstructions compileacutee seacutepareacutement

bull Chaque arc est une deacutependance de donneacutees entre deux

opeacuterations (ou plus dans le cas de diffusion) c-a-d lasortie drsquoune opeacuteration est lrsquoentreacutee de lrsquoautre opeacuteration(ou de plusieurs autres opeacuterations) une entreacutee peut ecirctreconnecteacutee seulement agrave une sortie de mecircme type dedonneacutees

gor t m

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3079

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

gor t mon distingue 4 types de sommets

Algorithm

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3179

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Algorithmbull Le sommet function possegravede au moins une entreacutee et

une sortie crsquoest une opeacuteration agrave libre effet qui calculeses sorties uniquement agrave partir de ses entreacutees (c-a-d niagrave partir des variables globales ni agrave partir des

preacuteceacutedentes valeurs de ces entreacutees)bull Le sommet extio permet lrsquoacquisitionlrsquoeacutecriture des

entreacuteessorties on distingue trois cas

1 Capteur sans entreacutee agrave chaque reacuteaction sa sortierepreacutesente la valeur lue du capteur

2 Actionneur sans sortie agrave chaque reacuteaction ilenvoi son entreacutee agrave lrsquoactionneur

3 Linux_IO ces des meacutemoires partageacutees qui

permettent le transfert de donneacutees entre syndexet un langage eacutevolueacute

E i S egrave R b i eacute d P d i Algorithm

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3279

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Algorithm

bull Le sommet memory possegravede uniquement uneentreacutee et une sortie crsquoest une opeacuteration agrave effetunique qui met la sortie degraves la premiegravere reacuteaction

agrave une valeur initiale calculeacutee auparavant et puisla sortie de la prochaine reacuteaction nrsquoest que

lrsquoentreacutee de la preacuteceacutedente reacuteactionbull Le sommet constant ne possegravede aucune entreacutee

il calcule sa sortie une seule fois avant la premiegravere reacuteaction puis la sortie demeure la mecircme pour chaque reacuteaction

E i S tegrave R b ti eacute d P d ti Algorithm

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3379

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

AlgorithmPour lrsquoalgorithme chaque sommet est caracteacuteriseacute par

bull Son type geacuteneacuterique (function extio memory constant)bull Un nom unique (tout les sommets doivent avoir des

noms diffeacuterents)bull Son type identifiant sa seacutequence drsquoinstructionsassocieacute

bull Sa liste drsquoarguments ougrave chaque argument est speacutecifieacute par bull Le nombre drsquoentreacuteesortiebull Le type de donneacuteesbull Le nom (tout les arguments doivent avoir des noms

diffeacuterents)

Equipe Systegraveme Robotiseacute de Production Architecture

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3479

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

ArchitectureLrsquoarchitecture est speacutecifieacutee comme un graphe non orienteacute

ougrave bullChaque sommet est une ressource seacutequentielle il y adeux types de sommets

bull processeur crsquoest une ressource de calcul enmesure drsquoexeacutecuter seacutequentiellement les opeacuterationsdrsquoun algorithme il pourrait ecirctre un processeur ou

un circuit inteacutegreacute speacutecialiseacutebull meacutedia crsquoest une ressource de communicationen mesure drsquoexeacutecuter seacutequentiellement un transfertde donneacutees entre les meacutemoires des processeurs quilui sont connecteacutes

bull chaque arc est une connexion bidirectionnelle entreun processeur et un meacutedia

Equipe Systegraveme Robotiseacute de Production Architecture

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3579

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

ArchitecturePour lrsquoarchitecture chaque sommet est caracteacuteriseacute par

bull Un nom uniquebullSon type (processeur or meacutedia)bull Son type identifiant caracteacuteristiques mateacuterielles

bull Sa liste de connecteurs ougrave chaque connecteur est speacutecifieacute par bull son type identifiant le type de meacutedia agrave qui il peut ecirctreconnecteacute

bullUn nom

Equipe Systegraveme Robotiseacute de ProductionCaracteacuter st que

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3679

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Caracteacuter st que Nous distinguons deux cateacutegories de caracteacuteristiques lrsquoune relative

aux opeacuterations et lrsquoune agrave la communication 1 Comment speacutecifier les caracteacuteristiques des opeacuterations sous le menu AdequationAlOp_ArOp on obtient une boite

de dialogue avec

une liste de toutles types de

processeurs et

pour chaque processeur uneliste de tout les

types drsquoopeacuterationsqui peut lesexeacutecuter avec ladureacutee drsquoexeacutecutioncorrespondante

Equipe Systegraveme Robotiseacute de ProductionCaracteacuteristique

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3779

q p y

S y nd

e xV

5

q2 Comment speacutecifier les caracteacuteristiques de communication

sous le menu AdequationAlIO_ArIO on obtient une boitede dialogue avec une liste de tout les types de meacutedia et

pour chaque meacutedia une liste de tout les types de donneacutees

qui peut transfeacuterer avec la dureacutee de transfertcorrespondante

Equipe Systegraveme Robotiseacute de Production Contraintes

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3879

S y nd

e xV

5

Pour contraindre une opeacuteration agrave srsquoexeacutecuter sur un processeur donneacutee

1Seacutelectionner le(s) opeacuteration(s) agrave contraindre2 Seacutelectionner la commande AlgorithmSetConstraint3 Seacutelectionner le processeur qui doit exeacutecute les opeacuterationsseacutelectionneacutees

Pour enlever les contraintes seacutelectionner lrsquoopeacuteration puis exeacutecuterla commande AlgorithmDeleteConstraint

Pour voir sur quel processeur une opeacuteration est y contrainteseacutelectionner lrsquoopeacuteration puis exeacutecuter la commandeAlgorithmShowConstraint le processeur correspondant y sera

seacutelectionneacutePour voir toute les opeacuterations qui sont contraintes sur un processeurseacutelectionner le processeur puis exeacutecuter la commande

ArchitectureShowConstrained du menu les opeacuterationscorrespondantes y seront seacutelectionneacutees

Equipe Systegraveme Robotiseacute de Production A eacutequat o

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3979

S y nd

e xV

5

q

Pour construire le planificateur des opeacuterations dugraphe drsquoalgorithme sur les processeurs du graphedrsquoarchitecture qui effectue automatiquement le routage

des deacutependances de donneacutees inter-processeurs et lacreacuteation et la planification des opeacuterations decommunication sur le meacutedia du graphe drsquoarchitectureon utilise la commande AdequationDoIt

Cette commande creacutee un heuristique qui cherche agraveminimiser le chemin critique du graphe drsquoalgorithme

Equipe Systegraveme Robotiseacute de ProductionGeacuteneacuteration du code exeacutecuti

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4079

S y nd

e xV

5Le code exeacutecutif est la partie qui gegravere les ressources

mateacuterielles pour les allouer aux besoins de lrsquoalgorithmedrsquoapplication Les ressources agrave allouer sont

1 Les espaces meacutemoires des processeurs2 Le temps des seacutequences drsquoinstructions3 Le temps des meacutedia de communication

Gracircce agrave la meacutethodologie AAA et le logiciel Syndexlrsquoutilisateur est exempte drsquoeacutecrire du code pour geacuterer ces

ressources Donc par simple exeacutecution de la commandeAdequationGenExec un code distribueacute pour chaque processeur est automatiquement geacuteneacutereacute Ce code est en

fait un exeacutecutif geacuteneacutereacute sur mesure pour lrsquoalgorithme etlrsquoarchitecture

Equipe Systegraveme Robotiseacute de ProductionGeacuteneacuteration du code exeacutecuti

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4179

S y nd

e xV5

Pour chaque processeur de lrsquoarchitecture un fichier

source macro-exeacutecutif m4 avec le mecircme nom estgeacuteneacutereacute plus un macro-makefile ayant le mecircme nom quecelui de lrsquoapplication Chacun de ces fichiers doit ecirctre

transcrit par le macro-processeur GNU M4 (assembleurC) Cette transcription deacutepend de plusieurs fichiers

1 Fichier syndexm4x qui deacutefini les macrosgeacuteneacuteriques de syndex2 Fichier processorTypem4x qui deacutefini les macros

de bas niveau du processeur3 Fichier applicationNamem4x qui deacutefini les macros

speacutecifiques agrave lrsquoapplication

4 Fichier mediaTypem4x qui deacutefini les macros decommunication de bas niveau du type de media

Equipe Systegraveme Robotiseacute de ProductionCreacuteat on rsquoapp cat on

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4279

S y nd

e xV5 Arborescence des reacutepertoires Rep_travail

Applicationmacros

~rtai

Eacutevolution de lrsquoapplication

Phase 1

Edition des macros(C ou Assembleur)

+GNUmakefile

Phase 2

Edition du graphe

(Algorithme amp

Architecteure)

Phase 3

Compilation amp Exeacutecution

Equipe Systegraveme Robotiseacute de ProductionSeacutequence de compilation de Synde

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4379

S y nd

e xV5

Equipe Systegraveme Robotiseacute de Production Plan

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4479

S y nd

e xV5

bull Introduction

bull Meacutethodologie AAA

bull Installation

bull Utilisation du logiciel Syndex

bull Macros

bull LinuxIO un interface CC++ avec SynDEx

bull Exemple drsquoapplication Robuter-ULM

Equipe Systegraveme Robotiseacute de Production

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4579

S y nd

e xV5

Macros Macros

bull Deacutefinition

bull Types de macros

bull Carte Robosoft MPC555

bull Macros Geacuteneacuterique MPC555

bull Macros speacutecifique Robosoftbull Macros de Communication

bull Macros drsquoapplicationbull Structure du fichier Macro

Equipe Systegraveme Robotiseacute de Production Deacutefinition

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4679

S y nd

e xV5

Un macro-processeur est un programme qui consommeen entreacutee une chaicircne de caractegraveres (texte source) la

traite seacutequentiellement en substituant chaque sous-chaicircne qursquoil reconnaicirct (Appel de macro) par unechaicircne correspondante de substitution ( Deacutefinition de

macro) qursquoil traite agrave nouveau jusqursquoagrave ce qursquoil nrsquo y ait plus de substitution possible et qui produit en sortie lachaicircne de caractegraveres traiteacutee

Equipe Systegraveme Robotiseacute de Productionypes e macrosL diffeacute t di ti t d d

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4779

S y nd

e xV5

Les diffeacuterents macros se distinguent en deux grandes

classes bull Macros geacuteneacuteriques

en geacuteneacuteral ceux sont des macros non destineacutes agraveecirctre utiliser directement par lrsquointerface syndexmais plutocirct utiliseacutees pour la programmation

drsquoautres macros (macros MPC555)bull Macros utilisateurs

macros utiliseacutes directement par syndex ils sontspeacutecifiques agrave lrsquoapplication (macros decommunication macros speacutecifiques robosoft

macros speacutecifiques agrave lrsquoapplication)

Equipe Systegraveme Robotiseacute de ProductionCarte Robosoft MPC555La carte Robosoft MPC555 est conccedilue pour la commande de robot de veacutehicule

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4879

S y nd

e xV5

(1) Connecteur du chip MPC555(2) Alimentation continue(3) Interface BDM (Basic Debug Interface)(4) Entreacute Analogique (Joystickhellip)(5) EntreacuteSortie logiques(6) Ligne seacuterie Synchrone (Codeur absolu)(7) Ligne seacuterie Asynchrone (Port 0)

(8) Ligne seacuterie Asynchrone (Port 1)(9) Connecteur du bus CAN (Port 0)(10) Connecteur du bus CAN (Port 1)(11) Axe 1(13) Axe 2(14) Axe 3(15) Axe 4

La carte Robosoft MPC555 est conccedilue pour la commande de robot de veacutehiculeeacutelectrique ou toute autre machine Elle permet de commander un axe gracircce agrave

lrsquoajout drsquoune carte fille le controcircle srsquoeacutetend jusqursquoagrave 4 axesCette carte est baseacutee sur le microcontrocircleur MPC555 32-bit de MotorolaElle peut opeacuterer agrave une freacutequence

de 40 MHz Divers signauxlogique et analogique peuventecirctre utiliser pour lrsquoacquisition deet la commande de mateacuteriel Les

sorties disponibles peuvent ecirctreanalogique ou PWMOn y trouve

Equipe Systegraveme Robotiseacute de ProductionArchitecture du MPC555

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4979

S y nd

e xV5

Equipe Systegraveme Robotiseacute de Productionaract r st ques u

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5079

S y nd

e xV5

Equipe Systegraveme Robotiseacute de Productionacros n r quesbull GPIO (General-Purpose InputOutput)

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5179

S y nd

e xV5

GPIO (General Purpose InputOutput)ce macro utilise le module USIU qui lui fourni 64 pins pour desentreacuteessorties numeacuteriques ordinaires (IO de la carte Robosoft lirelrsquoeacutetat de la pince envoi de commande agrave la pince lire les alarmes)

bull QADC (Queued Analog to Digital Converter)en utilisant le module QADC ce macro permet la conversion drsquounsignal analogique en entreacutee en un signal numeacuterique multi-niveaux(lire les donneacutees du capteur drsquoeacuteffort du joystick)

bull MIOS (Modular InputOutput System)Le module MIOS fourni 16 pins drsquoES numeacuteriques Sur la carte deRobosoft tous les pins sont en sortie Les 16 pins sont reacutepartiscomme suit

utilisateurs reacuteserveacutes

les pins de 0 agrave 11 sont reacuteserveacutes car ils sont preacutevus agrave ecirctre utiliseacutes pour unmateacuteriel particulier Mais si ce mateacuteriel nrsquoest pas utiliseacute lrsquoutilisateur peut lesutiliser librement

15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

Equipe Systegraveme Robotiseacute de ProductionMacros Geacuteneacuter ques MPC55

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5279

S y nd

e xV5

bull PWM (Pulse width Modulation)utilise le module MIOS (pins de 4-7 pour la direction des moteurset de 8-11 pour la validation) pour la commande des actionneursnumeacuteriques en PWM

bull TPU (Time Processor Units)les macros lieacutes agrave ce module permettent la lecture des encodeurs

increacutementauxbull QSPI (Queued Serial Peripheral Interface)

ce module fait partie du module QSMCM et les macros lieacutes servent

agrave son initialisation pour une communication avec du mateacuterielsexternes via le bus seacuterie synchrone

Equipe Systegraveme Robotiseacute de ProductionMacros Geacuteneacuter ques MPC55

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5379

S y nd

e x

V5 bull Serial port support (Polling implementation)

le MPC555 comprend dans le module QSMCM une interface decommunication seacuterie SCI qui permet la communication avec dumateacuteriels externes via un bus seacuterie asynchrone Plusieurs macros

sont lieacutes agrave cette interface pour initialiser et eacutetablir la communicationbull Serial port support (interrupt handling implementation)

pour la mecircme interface SCI du module QSMCM pour cette

meacutethode drsquoimpleacutementation les macros lieacutes initialisent et eacutetablissentla communication en mode par interruption ce qui permet dedeacutetecter lrsquoarriveacutee des donneacutees sur le port seacuterie au lieu de le scruter

en permanence

tous ces macros on les retrouvent dans le fichier 555m4x

Equipe Systegraveme Robotiseacute de ProductionMacros Speacutec ques Ro oso tles macros suivants sont deacutedieacutes agrave la carte de Robosoft MPC555

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5479

S y nd

e x

V5

bull Initialisation de la carte Robosoftmain_ini_() macro ne doit pas ecirctre utiliser par les programmateursdu fait qursquoelle sert qursquoagrave initialiser la carte robosoft Macro interne agrave

syndex dont lrsquoappel est automatique lors de geacuteneacuteration drsquoexeacutecutifMPC555

bull DAC (Digital to Analog Converter)

macro permet lrsquoutilisation du convertisseur de carte robosoft via lemodule MIOs en utilisant les pins de 0 agrave 2

bull LED (on-bord LED interface)

macro permet la gestion de la LED de la carte robosoft connecteacuteeau module QSPI (pin PCS1)

bull SPI absolute encoder

macro permet lrsquoutilisation lrsquointerface du codeur absolu de la carterobosoft connecteacute au module QSPI

Equipe Systegraveme Robotiseacute de ProductionMacros Speacutec ques Ro oso tbull Motor amplifier direction

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5579

S y nd

e x

V5

Motor amplifier directionmacro qui permet de geacuterer la direction des moteurs

bull Motor power amplifier validationles moteurs embarqueacutes sur les robots sont eacutequipeacutes de freins

eacutelectriquement commandable Ce macro permet drsquoenvoyer unsignal drsquoinhibition pour deacutebloquer les freins

bull Watch dog

pour des raisons de seacutecuriteacute un meacutecanisme mateacuteriel que robosofta ajouteacute sur la carte Ce watch-dog vise agrave stopper lrsquoactiviteacute dumoteur en cas ougrave le programme plante Le watch est impleacutementeacute

comme un time-out mateacuteriel Srsquoil nrsquoest pas rafraicircchi peacuteriodiquement il transmet un signal de sortie ce qui enlegraveve lavalidation de lrsquoamplificateur de puissance donc lrsquoarrecirct dumouvement

ces macros se trouvent dans le fichier RSBm4x

Equipe Systegraveme Robotiseacute de Production

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5679

S y nd

e x

V5

Macros de Communicationchaque meacutedia de communication (bus CAN ) est une ressourceseacutequentielle ougrave les transferts de donneacutees entre processeurs doiventsuivre un certain ordre Donc ce macro de communication sert agravedeacutefinir cet ordre et agrave identifier le protocole de communication lecodagedeacutecodage de lrsquoinformation et la synchronisation

on trouve ces macros dans le fichier CANm4x

Macros drsquoapplicationce genre de macros sont speacutecifique au mateacuteriel en question et aussiagrave lrsquoapplication en particulier Ce sont des macros utilisateurs

on trouve ces macros dans le fichier Application_namem4x

Equipe Systegraveme Robotiseacute de Production

section include (pour inclure drsquoautres fichiers macro agrave utiliseStructure du fichier macr

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5779

S y nd

e x

V5

section define (pour tous les macros utilisateurs)MGC lsquoINITrsquo (MGC Macro Generation Context variable)

divert (declaration) (deacutebut du macro)

(deacuteclaration des variables des meacutemoires et des csts

divert (o)

MGC lsquolooprsquocode en assembleur code en C

dnl (commentaires)

MGC lsquoENDrsquo dnl (fin de la macros)divert lsquo lsquo dnl

macros MPC555meacutemoire MPC555

constante MPC555

macros RTAImeacutemoire RTAI

constante RTAI

Equipe Systegraveme Robotiseacute de Production Plan

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5879

S y nd

e x

V5

bull Introduction

bull Meacutethodologie AAA

bull Installationbull Utilisation du logiciel Syndex

bull Macrosbull LinuxIO un interface CC++ avec SynDEx

bull Exemple drsquoapplication Robuter-ULM

Equipe Systegraveme Robotiseacute de Production

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5979

S y nd

e x

V5

LinuxIO LinuxIO une interface une interface

CC++ avecCC++ avec SynDExSynDEx

bull Principe de basebull Utilisation de linuxIO_ par syndex

bull Utilisation de linuxIO_ par un programmeCC++

Equipe Systegraveme Robotiseacute de ProductionPrincipe de baseSyndex fourni une interface graphique pour la conception

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6079

S y nd

e x

V5

Syndex fourni une interface graphique pour la conception

drsquoapplications Par contre des fois nous avons besoin drsquoautresfonctionnaliteacutes non disponibles donc il faut les creacuteer Cependantgeacuteneacuterer des macros pour syndex srsquoavegravere difficile pour certains du

fait qursquoil faut avoir une bonne connaissance de la programmation bas niveau Dans ce cas lrsquoutilisation de linux_IO trouve sa placedans un contexte particulier interfacer des applications CC++utilisateurs avec des applications embarqueacutees temps reacuteeldeacuteveloppeacutees sous syndex

Par rapport agrave ce contexte de programmation lrsquoorganisation du

deacuteveloppement des applications est structureacutee en deux parties 1 Application haut niveau

2 Application bas niveau

Equipe Systegraveme Robotiseacute de ProductionPrincipe de base

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6179

S y nd

e x

V5

En reacutesumeacute lrsquoapplicationutilisateur contient une

partie haut niveau enCC++ et une partie basniveau sous syndex avecun eacutechange de donneacuteesentre les deux partie en

utilisant la couche RTAIde linux

Equipe Systegraveme Robotiseacute de Production pp cat on aut n veauOn entend application haut

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6279

S y nd

e x

V5

niveau tout programmecomme la planification detrajectoires strateacutegies de

navigation etc hellipLrsquoeacutechange de donneacutees sefait par le biais desmeacutemoires partageacutees quifont parti du noyau RTAI

et de lrsquoespace utilisateursde Linux

Toute ressource preacutesente sur la carte Robosoft peutecirctre partageacutee sans aune restriction

Equipe Systegraveme Robotiseacute de Production pp cat on as n veauUne application bas niveau

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6379

S y nd

e x

V5

Une application bas niveau

est un programme conccedilusous syndex comme lacommande des moteurs la

lecture des capteurs etc hellipLes ressources mateacuteriellessont controcircler par plusieurs

cartes MPC555 Ces cartessrsquoeacutechangent des donneacuteesvia le bus CAN Donc ES

est prise en charge par lasource logicielle deacutedieacutee quisrsquoexeacutecute dans les cartes MPC555 puis la couche RTAI

est utiliseacute pour la mise agrave jour de meacutemoires partageacutees pour lrsquoespace utilisateurs linux drsquoeacutechange de donneacutees

Equipe Systegraveme Robotiseacute de ProductionUtilisation de linux_IO par syndex

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6479

S y nd

e x

V5

Equipe Systegraveme Robotiseacute de ProductionUtilisation de linux_IO par syndex

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6579

S y nd

e x

V5

Equipe Systegraveme Robotiseacute de Production

5

Utilisation de linux_IO par syndex

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6679

S y nd

e x

V5

Degraves que la conception de lrsquoapplication sous syndex esttermineacutee et apregraves compilation (AdequationDo it +GenExec) un fichier drsquoentecircte sous le nom de linioh est

automatiquement geacuteneacutereacute Ce fichier contient lesinformations neacutecessaires pour acceacuteder aux entreacutees enlecture et aux sorties en eacutecriture des opeacuterations linuxIO_

inseacutereacutees dans le graphe drsquoalgorithme Le contenu de cefichier est organiseacute en plusieurs parties une pour chaqueopeacuteration linux_IO preacutesente dans le graphe

Equipe Systegraveme Robotiseacute de Production

5

Utilisation de linux_IO par syndex linioh auto-generated C users API frontend

C i h b f 2001 i i i b f f

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6779

S y nd

e x

V5 Copyright Robosoft 2001 Pierre Pomiers ltpierrerobosoftfrgt

LINUX IO shared memory data segments

define SEG0_BASE 0x10000typedef struct

int js_spd_o0

int js_str_o0

int enc_R_o0int enc_L_o0

double odo_X_o0

double odo_Y_o0

double odo_T_o0int spd_R_o0

int spd_L_o0

int time

unsigned char sem shm_seg0_def

Nom du segment de meacutemoire partageacutee pour notre opeacuteration linuxIO_

7 signaux drsquoentreacutees Ces valeurs sonten lecture et sont peacuteriodiquementrafraicircchies par RTAI

2 signaux de sorties Ces valeurs sonten eacutecriture et sont peacuteriodiquementrafraicircchies par RTAI

Equipe Systegraveme Robotiseacute de Production

5

Crsquoest une eacutetape tregraves facile il suffit drsquoinclure le fichier drsquoentecirctelinio h dans le code du fichier en CC++ comme suit

Utilisation de linuxIO_ par un programme CC+

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6879

S y nd

e x

V5 linioh dans le code du fichier en CC++ comme suit

include linioh

include ltrtai_shmhgt

static shm_seg0_def seg0

shm_seg0_def robot

seg0 = rtai_malloc (SEG0_BASE sizeof (shm_seg0_def))

if (seg0-gtsem = 0) bcopy (seg0 amprobot sizeof (shm_seg0_def))helliphelliphellip

helliphelliphellip bcopy (amprobot seg0 sizeof (shm_seg0_def))helliphelliphelliphelliphelliphellip

rtai_free (SEG0_BASE seg0)

fichier drsquoentecircte de la meacutemoire partageacutee fourni dans la couche RTAI de linux

Initialisation du segment SEG0_BASE Allocation de lameacutemoire pointeacutee

par seg0

Lecture des donneacutees provenant du bas

niveau

Mise agrave jours du segment de meacutemoire partageacutee

Libeacuterer le segment de meacutemoire alloueacute

Equipe Systegraveme Robotiseacute de Production

5

Plan

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6979

S y nd e x

V5

bull Introductionbull Meacutethodologie AAA

bull Installationbull Utilisation du logiciel Syndex

bull Macrosbull LinuxIO un interface CC++ avec SynDEx

bull Exemple drsquoapplication Robuter-ULM

Equipe Systegraveme Robotiseacute de Production

V5

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7079

S y nd e x

V5

Exemple dapplication Exemple dapplication Robuter Robuter--ULM ULM

Equipe Systegraveme Robotiseacute de Production

V5

Description Robuter-ULMbull Base mobile (2-RM 2-RF)

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7179

S y nd e x

V

bull Bras ultra-leacuteger 6 axesbull Ceinture 24 capteurs US

bull Capteur drsquoefforts 6 axes

bull Cameacutera CCD monochromeavec carte drsquoacquisition

bull PC embarqueacute MMX 233

bull OS linux redhat 61 avecRTAI V-13

bull 3 bouton drsquoarrecirct drsquourgence

bull 4 batteries 48 VDC 4 X12V 60 Ah

bull Entreacutee Joystick

bull Liaison Ethernet sans fil

Le manipulateur mobile Robuter-ULM comprend

Equipe Systegraveme Robotiseacute de Production

V5

Base Mobilebull dimension

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7279

S y nd e x

V

1025 mm de longueur 680 mm de largueur et 44 cm de hauteurbull Poids environ 150 kg avec les batteriesbull charge jusqursquoagrave 120 kg

bull vitesse de 5cms agrave 125 msbull Moteurs 2 X 300 W DC 48 VDCbull orientation par diffeacuterence de vitesse

bull Preacutecision Position par encodeurs optiquesbull Deux roues motrices diffeacuterentielles et de deux roues follesbull Drsquoune ceinture de 24 capteurs Ultrasons

bull Une carte MPC555 de Robosoft pour le controcircle des deuxmoteurs DC des 2 rouesbull Un systegraveme drsquoodomeacutetrie qui donne la position relative du robot

par rapport agrave son repegravere

Equipe Systegraveme Robotiseacute de Production

V5

bull dimension Faute de documentation

Bras U tra- eacuteger

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7379

S y nd e x

V Faute de documentation

bull Poids moins de 20 kgbull charge 2 kgbull Moteurs 6 moteurs DC

bull gripper pince eacutelectrique 2 doigtsbull Reacutepeacutetabiliteacute +- 1mmbull 3 carte MPC555 de Robosoft lrsquoune pour le capteur drsquoeffort et les

deux autres pour les 6 moteurs + moteur de la pincebull Position encodeur increacutemental

1 2 3 4 5 6Axisrange

plusmn90deg 0-90deg plusmn80deg plusmn100deg plusmn90deg plusmn110deg

vitesse 180degs 180degs 180degs 180degs 180degs 180degs

Equipe Systegraveme Robotiseacute de Production

V5

rc tecture ar ware

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7479

S y nd e x

V

Equipe Systegraveme Robotiseacute de Production

V5

Pro eacutemat quePlusieurs applications peuvent ecirctre impleacutementeacutees sur le robot

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7579

S y nd e x

V

Cependant il faut faire la diffeacuterence entre les applications quidemande lrsquoutilisation de syndex et les applications qui neneacutecessite qursquoune programmation en CC++ Agrave titre drsquoexemple

bull Localisationbull Commande en position

bull Commande en forcebull Navigation

bull Geacuteneacuteration de trajectoire

bull Vision

Equipe Systegraveme Robotiseacute de Production

V5 bull Pince eacutelectrique (TOR)

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7679

S y nd e x

Vq ( )

bull Pince possegravede des ES Logiques

Notre application consiste agrave

bull Recevoir lrsquoeacutetat de la pince (fermeacutee ouverte )

bull Envoyer une commande vers la pince

Capture

drsquoinformation

Open

Close

CommandeMeacutemoire

Partageacutee

Actionneur

Pince Prise de deacutecision Pince

Equipe Systegraveme Robotiseacute de Production

V5

Sc eacutema eacute ectr que

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7779

S y nd e x

Equipe Systegraveme Robotiseacute de Production

V5

Conclusion

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7879

S y nd e x bull Introduction

bull Meacutethodologie AAA

bull Installationbull Utilisation du logiciel Syndex

bull Macrosbull LinuxIO un interface CC++ avec SynDEx

bull Exemple drsquoapplication Robuter-ULM

Equipe Systegraveme Robotiseacute de Production

V5

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7979

S y nd e x

Questions

Page 25: Cours Syndex

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 2579

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

SynDESynDEx est un logiciel graphique qui impleacutemente lameacutethodologie AAA et qui offre plusieurs fonctionnaliteacutes

bull Speacutecification drsquoun algorithme drsquoapplication saisi sousforme drsquoun graphe

bull Speacutecification drsquoun graphe drsquoarchitecture multi-composant

bull Heuristique pour la distribution et lrsquoordonnancement delrsquoalgorithme drsquoapplication sur lrsquoarchitecture avecoptimisation du temps de reacuteponse

bull Geacuteneacuteration des exeacutecutifs distribueacutes temps reacuteel

Utilisation de lrsquointerface

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 2679

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Utilisation de l interface

Utilisation de lrsquointerface

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 2779

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Utilisation de l interface

Utilisation de lrsquointerface

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 2879

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Utilisation de l interface

Algorithm

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 2979

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Algorithm

Lrsquoalgorithme est speacutecifieacute comme un graphe orienteacute ougravebull chaque sommet est une opeacuteration qui calcule les sorties

des entreacutees agrave chaque opeacuteration doit correspondre uneseacutequence drsquoinstructions compileacutee seacutepareacutement

bull Chaque arc est une deacutependance de donneacutees entre deux

opeacuterations (ou plus dans le cas de diffusion) c-a-d lasortie drsquoune opeacuteration est lrsquoentreacutee de lrsquoautre opeacuteration(ou de plusieurs autres opeacuterations) une entreacutee peut ecirctreconnecteacutee seulement agrave une sortie de mecircme type dedonneacutees

gor t m

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3079

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

gor t mon distingue 4 types de sommets

Algorithm

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3179

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Algorithmbull Le sommet function possegravede au moins une entreacutee et

une sortie crsquoest une opeacuteration agrave libre effet qui calculeses sorties uniquement agrave partir de ses entreacutees (c-a-d niagrave partir des variables globales ni agrave partir des

preacuteceacutedentes valeurs de ces entreacutees)bull Le sommet extio permet lrsquoacquisitionlrsquoeacutecriture des

entreacuteessorties on distingue trois cas

1 Capteur sans entreacutee agrave chaque reacuteaction sa sortierepreacutesente la valeur lue du capteur

2 Actionneur sans sortie agrave chaque reacuteaction ilenvoi son entreacutee agrave lrsquoactionneur

3 Linux_IO ces des meacutemoires partageacutees qui

permettent le transfert de donneacutees entre syndexet un langage eacutevolueacute

E i S egrave R b i eacute d P d i Algorithm

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3279

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Algorithm

bull Le sommet memory possegravede uniquement uneentreacutee et une sortie crsquoest une opeacuteration agrave effetunique qui met la sortie degraves la premiegravere reacuteaction

agrave une valeur initiale calculeacutee auparavant et puisla sortie de la prochaine reacuteaction nrsquoest que

lrsquoentreacutee de la preacuteceacutedente reacuteactionbull Le sommet constant ne possegravede aucune entreacutee

il calcule sa sortie une seule fois avant la premiegravere reacuteaction puis la sortie demeure la mecircme pour chaque reacuteaction

E i S tegrave R b ti eacute d P d ti Algorithm

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3379

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

AlgorithmPour lrsquoalgorithme chaque sommet est caracteacuteriseacute par

bull Son type geacuteneacuterique (function extio memory constant)bull Un nom unique (tout les sommets doivent avoir des

noms diffeacuterents)bull Son type identifiant sa seacutequence drsquoinstructionsassocieacute

bull Sa liste drsquoarguments ougrave chaque argument est speacutecifieacute par bull Le nombre drsquoentreacuteesortiebull Le type de donneacuteesbull Le nom (tout les arguments doivent avoir des noms

diffeacuterents)

Equipe Systegraveme Robotiseacute de Production Architecture

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3479

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

ArchitectureLrsquoarchitecture est speacutecifieacutee comme un graphe non orienteacute

ougrave bullChaque sommet est une ressource seacutequentielle il y adeux types de sommets

bull processeur crsquoest une ressource de calcul enmesure drsquoexeacutecuter seacutequentiellement les opeacuterationsdrsquoun algorithme il pourrait ecirctre un processeur ou

un circuit inteacutegreacute speacutecialiseacutebull meacutedia crsquoest une ressource de communicationen mesure drsquoexeacutecuter seacutequentiellement un transfertde donneacutees entre les meacutemoires des processeurs quilui sont connecteacutes

bull chaque arc est une connexion bidirectionnelle entreun processeur et un meacutedia

Equipe Systegraveme Robotiseacute de Production Architecture

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3579

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

ArchitecturePour lrsquoarchitecture chaque sommet est caracteacuteriseacute par

bull Un nom uniquebullSon type (processeur or meacutedia)bull Son type identifiant caracteacuteristiques mateacuterielles

bull Sa liste de connecteurs ougrave chaque connecteur est speacutecifieacute par bull son type identifiant le type de meacutedia agrave qui il peut ecirctreconnecteacute

bullUn nom

Equipe Systegraveme Robotiseacute de ProductionCaracteacuter st que

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3679

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Caracteacuter st que Nous distinguons deux cateacutegories de caracteacuteristiques lrsquoune relative

aux opeacuterations et lrsquoune agrave la communication 1 Comment speacutecifier les caracteacuteristiques des opeacuterations sous le menu AdequationAlOp_ArOp on obtient une boite

de dialogue avec

une liste de toutles types de

processeurs et

pour chaque processeur uneliste de tout les

types drsquoopeacuterationsqui peut lesexeacutecuter avec ladureacutee drsquoexeacutecutioncorrespondante

Equipe Systegraveme Robotiseacute de ProductionCaracteacuteristique

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3779

q p y

S y nd

e xV

5

q2 Comment speacutecifier les caracteacuteristiques de communication

sous le menu AdequationAlIO_ArIO on obtient une boitede dialogue avec une liste de tout les types de meacutedia et

pour chaque meacutedia une liste de tout les types de donneacutees

qui peut transfeacuterer avec la dureacutee de transfertcorrespondante

Equipe Systegraveme Robotiseacute de Production Contraintes

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3879

S y nd

e xV

5

Pour contraindre une opeacuteration agrave srsquoexeacutecuter sur un processeur donneacutee

1Seacutelectionner le(s) opeacuteration(s) agrave contraindre2 Seacutelectionner la commande AlgorithmSetConstraint3 Seacutelectionner le processeur qui doit exeacutecute les opeacuterationsseacutelectionneacutees

Pour enlever les contraintes seacutelectionner lrsquoopeacuteration puis exeacutecuterla commande AlgorithmDeleteConstraint

Pour voir sur quel processeur une opeacuteration est y contrainteseacutelectionner lrsquoopeacuteration puis exeacutecuter la commandeAlgorithmShowConstraint le processeur correspondant y sera

seacutelectionneacutePour voir toute les opeacuterations qui sont contraintes sur un processeurseacutelectionner le processeur puis exeacutecuter la commande

ArchitectureShowConstrained du menu les opeacuterationscorrespondantes y seront seacutelectionneacutees

Equipe Systegraveme Robotiseacute de Production A eacutequat o

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3979

S y nd

e xV

5

q

Pour construire le planificateur des opeacuterations dugraphe drsquoalgorithme sur les processeurs du graphedrsquoarchitecture qui effectue automatiquement le routage

des deacutependances de donneacutees inter-processeurs et lacreacuteation et la planification des opeacuterations decommunication sur le meacutedia du graphe drsquoarchitectureon utilise la commande AdequationDoIt

Cette commande creacutee un heuristique qui cherche agraveminimiser le chemin critique du graphe drsquoalgorithme

Equipe Systegraveme Robotiseacute de ProductionGeacuteneacuteration du code exeacutecuti

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4079

S y nd

e xV

5Le code exeacutecutif est la partie qui gegravere les ressources

mateacuterielles pour les allouer aux besoins de lrsquoalgorithmedrsquoapplication Les ressources agrave allouer sont

1 Les espaces meacutemoires des processeurs2 Le temps des seacutequences drsquoinstructions3 Le temps des meacutedia de communication

Gracircce agrave la meacutethodologie AAA et le logiciel Syndexlrsquoutilisateur est exempte drsquoeacutecrire du code pour geacuterer ces

ressources Donc par simple exeacutecution de la commandeAdequationGenExec un code distribueacute pour chaque processeur est automatiquement geacuteneacutereacute Ce code est en

fait un exeacutecutif geacuteneacutereacute sur mesure pour lrsquoalgorithme etlrsquoarchitecture

Equipe Systegraveme Robotiseacute de ProductionGeacuteneacuteration du code exeacutecuti

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4179

S y nd

e xV5

Pour chaque processeur de lrsquoarchitecture un fichier

source macro-exeacutecutif m4 avec le mecircme nom estgeacuteneacutereacute plus un macro-makefile ayant le mecircme nom quecelui de lrsquoapplication Chacun de ces fichiers doit ecirctre

transcrit par le macro-processeur GNU M4 (assembleurC) Cette transcription deacutepend de plusieurs fichiers

1 Fichier syndexm4x qui deacutefini les macrosgeacuteneacuteriques de syndex2 Fichier processorTypem4x qui deacutefini les macros

de bas niveau du processeur3 Fichier applicationNamem4x qui deacutefini les macros

speacutecifiques agrave lrsquoapplication

4 Fichier mediaTypem4x qui deacutefini les macros decommunication de bas niveau du type de media

Equipe Systegraveme Robotiseacute de ProductionCreacuteat on rsquoapp cat on

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4279

S y nd

e xV5 Arborescence des reacutepertoires Rep_travail

Applicationmacros

~rtai

Eacutevolution de lrsquoapplication

Phase 1

Edition des macros(C ou Assembleur)

+GNUmakefile

Phase 2

Edition du graphe

(Algorithme amp

Architecteure)

Phase 3

Compilation amp Exeacutecution

Equipe Systegraveme Robotiseacute de ProductionSeacutequence de compilation de Synde

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4379

S y nd

e xV5

Equipe Systegraveme Robotiseacute de Production Plan

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4479

S y nd

e xV5

bull Introduction

bull Meacutethodologie AAA

bull Installation

bull Utilisation du logiciel Syndex

bull Macros

bull LinuxIO un interface CC++ avec SynDEx

bull Exemple drsquoapplication Robuter-ULM

Equipe Systegraveme Robotiseacute de Production

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4579

S y nd

e xV5

Macros Macros

bull Deacutefinition

bull Types de macros

bull Carte Robosoft MPC555

bull Macros Geacuteneacuterique MPC555

bull Macros speacutecifique Robosoftbull Macros de Communication

bull Macros drsquoapplicationbull Structure du fichier Macro

Equipe Systegraveme Robotiseacute de Production Deacutefinition

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4679

S y nd

e xV5

Un macro-processeur est un programme qui consommeen entreacutee une chaicircne de caractegraveres (texte source) la

traite seacutequentiellement en substituant chaque sous-chaicircne qursquoil reconnaicirct (Appel de macro) par unechaicircne correspondante de substitution ( Deacutefinition de

macro) qursquoil traite agrave nouveau jusqursquoagrave ce qursquoil nrsquo y ait plus de substitution possible et qui produit en sortie lachaicircne de caractegraveres traiteacutee

Equipe Systegraveme Robotiseacute de Productionypes e macrosL diffeacute t di ti t d d

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4779

S y nd

e xV5

Les diffeacuterents macros se distinguent en deux grandes

classes bull Macros geacuteneacuteriques

en geacuteneacuteral ceux sont des macros non destineacutes agraveecirctre utiliser directement par lrsquointerface syndexmais plutocirct utiliseacutees pour la programmation

drsquoautres macros (macros MPC555)bull Macros utilisateurs

macros utiliseacutes directement par syndex ils sontspeacutecifiques agrave lrsquoapplication (macros decommunication macros speacutecifiques robosoft

macros speacutecifiques agrave lrsquoapplication)

Equipe Systegraveme Robotiseacute de ProductionCarte Robosoft MPC555La carte Robosoft MPC555 est conccedilue pour la commande de robot de veacutehicule

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4879

S y nd

e xV5

(1) Connecteur du chip MPC555(2) Alimentation continue(3) Interface BDM (Basic Debug Interface)(4) Entreacute Analogique (Joystickhellip)(5) EntreacuteSortie logiques(6) Ligne seacuterie Synchrone (Codeur absolu)(7) Ligne seacuterie Asynchrone (Port 0)

(8) Ligne seacuterie Asynchrone (Port 1)(9) Connecteur du bus CAN (Port 0)(10) Connecteur du bus CAN (Port 1)(11) Axe 1(13) Axe 2(14) Axe 3(15) Axe 4

La carte Robosoft MPC555 est conccedilue pour la commande de robot de veacutehiculeeacutelectrique ou toute autre machine Elle permet de commander un axe gracircce agrave

lrsquoajout drsquoune carte fille le controcircle srsquoeacutetend jusqursquoagrave 4 axesCette carte est baseacutee sur le microcontrocircleur MPC555 32-bit de MotorolaElle peut opeacuterer agrave une freacutequence

de 40 MHz Divers signauxlogique et analogique peuventecirctre utiliser pour lrsquoacquisition deet la commande de mateacuteriel Les

sorties disponibles peuvent ecirctreanalogique ou PWMOn y trouve

Equipe Systegraveme Robotiseacute de ProductionArchitecture du MPC555

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4979

S y nd

e xV5

Equipe Systegraveme Robotiseacute de Productionaract r st ques u

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5079

S y nd

e xV5

Equipe Systegraveme Robotiseacute de Productionacros n r quesbull GPIO (General-Purpose InputOutput)

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5179

S y nd

e xV5

GPIO (General Purpose InputOutput)ce macro utilise le module USIU qui lui fourni 64 pins pour desentreacuteessorties numeacuteriques ordinaires (IO de la carte Robosoft lirelrsquoeacutetat de la pince envoi de commande agrave la pince lire les alarmes)

bull QADC (Queued Analog to Digital Converter)en utilisant le module QADC ce macro permet la conversion drsquounsignal analogique en entreacutee en un signal numeacuterique multi-niveaux(lire les donneacutees du capteur drsquoeacuteffort du joystick)

bull MIOS (Modular InputOutput System)Le module MIOS fourni 16 pins drsquoES numeacuteriques Sur la carte deRobosoft tous les pins sont en sortie Les 16 pins sont reacutepartiscomme suit

utilisateurs reacuteserveacutes

les pins de 0 agrave 11 sont reacuteserveacutes car ils sont preacutevus agrave ecirctre utiliseacutes pour unmateacuteriel particulier Mais si ce mateacuteriel nrsquoest pas utiliseacute lrsquoutilisateur peut lesutiliser librement

15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

Equipe Systegraveme Robotiseacute de ProductionMacros Geacuteneacuter ques MPC55

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5279

S y nd

e xV5

bull PWM (Pulse width Modulation)utilise le module MIOS (pins de 4-7 pour la direction des moteurset de 8-11 pour la validation) pour la commande des actionneursnumeacuteriques en PWM

bull TPU (Time Processor Units)les macros lieacutes agrave ce module permettent la lecture des encodeurs

increacutementauxbull QSPI (Queued Serial Peripheral Interface)

ce module fait partie du module QSMCM et les macros lieacutes servent

agrave son initialisation pour une communication avec du mateacuterielsexternes via le bus seacuterie synchrone

Equipe Systegraveme Robotiseacute de ProductionMacros Geacuteneacuter ques MPC55

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5379

S y nd

e x

V5 bull Serial port support (Polling implementation)

le MPC555 comprend dans le module QSMCM une interface decommunication seacuterie SCI qui permet la communication avec dumateacuteriels externes via un bus seacuterie asynchrone Plusieurs macros

sont lieacutes agrave cette interface pour initialiser et eacutetablir la communicationbull Serial port support (interrupt handling implementation)

pour la mecircme interface SCI du module QSMCM pour cette

meacutethode drsquoimpleacutementation les macros lieacutes initialisent et eacutetablissentla communication en mode par interruption ce qui permet dedeacutetecter lrsquoarriveacutee des donneacutees sur le port seacuterie au lieu de le scruter

en permanence

tous ces macros on les retrouvent dans le fichier 555m4x

Equipe Systegraveme Robotiseacute de ProductionMacros Speacutec ques Ro oso tles macros suivants sont deacutedieacutes agrave la carte de Robosoft MPC555

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5479

S y nd

e x

V5

bull Initialisation de la carte Robosoftmain_ini_() macro ne doit pas ecirctre utiliser par les programmateursdu fait qursquoelle sert qursquoagrave initialiser la carte robosoft Macro interne agrave

syndex dont lrsquoappel est automatique lors de geacuteneacuteration drsquoexeacutecutifMPC555

bull DAC (Digital to Analog Converter)

macro permet lrsquoutilisation du convertisseur de carte robosoft via lemodule MIOs en utilisant les pins de 0 agrave 2

bull LED (on-bord LED interface)

macro permet la gestion de la LED de la carte robosoft connecteacuteeau module QSPI (pin PCS1)

bull SPI absolute encoder

macro permet lrsquoutilisation lrsquointerface du codeur absolu de la carterobosoft connecteacute au module QSPI

Equipe Systegraveme Robotiseacute de ProductionMacros Speacutec ques Ro oso tbull Motor amplifier direction

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5579

S y nd

e x

V5

Motor amplifier directionmacro qui permet de geacuterer la direction des moteurs

bull Motor power amplifier validationles moteurs embarqueacutes sur les robots sont eacutequipeacutes de freins

eacutelectriquement commandable Ce macro permet drsquoenvoyer unsignal drsquoinhibition pour deacutebloquer les freins

bull Watch dog

pour des raisons de seacutecuriteacute un meacutecanisme mateacuteriel que robosofta ajouteacute sur la carte Ce watch-dog vise agrave stopper lrsquoactiviteacute dumoteur en cas ougrave le programme plante Le watch est impleacutementeacute

comme un time-out mateacuteriel Srsquoil nrsquoest pas rafraicircchi peacuteriodiquement il transmet un signal de sortie ce qui enlegraveve lavalidation de lrsquoamplificateur de puissance donc lrsquoarrecirct dumouvement

ces macros se trouvent dans le fichier RSBm4x

Equipe Systegraveme Robotiseacute de Production

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5679

S y nd

e x

V5

Macros de Communicationchaque meacutedia de communication (bus CAN ) est une ressourceseacutequentielle ougrave les transferts de donneacutees entre processeurs doiventsuivre un certain ordre Donc ce macro de communication sert agravedeacutefinir cet ordre et agrave identifier le protocole de communication lecodagedeacutecodage de lrsquoinformation et la synchronisation

on trouve ces macros dans le fichier CANm4x

Macros drsquoapplicationce genre de macros sont speacutecifique au mateacuteriel en question et aussiagrave lrsquoapplication en particulier Ce sont des macros utilisateurs

on trouve ces macros dans le fichier Application_namem4x

Equipe Systegraveme Robotiseacute de Production

section include (pour inclure drsquoautres fichiers macro agrave utiliseStructure du fichier macr

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5779

S y nd

e x

V5

section define (pour tous les macros utilisateurs)MGC lsquoINITrsquo (MGC Macro Generation Context variable)

divert (declaration) (deacutebut du macro)

(deacuteclaration des variables des meacutemoires et des csts

divert (o)

MGC lsquolooprsquocode en assembleur code en C

dnl (commentaires)

MGC lsquoENDrsquo dnl (fin de la macros)divert lsquo lsquo dnl

macros MPC555meacutemoire MPC555

constante MPC555

macros RTAImeacutemoire RTAI

constante RTAI

Equipe Systegraveme Robotiseacute de Production Plan

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5879

S y nd

e x

V5

bull Introduction

bull Meacutethodologie AAA

bull Installationbull Utilisation du logiciel Syndex

bull Macrosbull LinuxIO un interface CC++ avec SynDEx

bull Exemple drsquoapplication Robuter-ULM

Equipe Systegraveme Robotiseacute de Production

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5979

S y nd

e x

V5

LinuxIO LinuxIO une interface une interface

CC++ avecCC++ avec SynDExSynDEx

bull Principe de basebull Utilisation de linuxIO_ par syndex

bull Utilisation de linuxIO_ par un programmeCC++

Equipe Systegraveme Robotiseacute de ProductionPrincipe de baseSyndex fourni une interface graphique pour la conception

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6079

S y nd

e x

V5

Syndex fourni une interface graphique pour la conception

drsquoapplications Par contre des fois nous avons besoin drsquoautresfonctionnaliteacutes non disponibles donc il faut les creacuteer Cependantgeacuteneacuterer des macros pour syndex srsquoavegravere difficile pour certains du

fait qursquoil faut avoir une bonne connaissance de la programmation bas niveau Dans ce cas lrsquoutilisation de linux_IO trouve sa placedans un contexte particulier interfacer des applications CC++utilisateurs avec des applications embarqueacutees temps reacuteeldeacuteveloppeacutees sous syndex

Par rapport agrave ce contexte de programmation lrsquoorganisation du

deacuteveloppement des applications est structureacutee en deux parties 1 Application haut niveau

2 Application bas niveau

Equipe Systegraveme Robotiseacute de ProductionPrincipe de base

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6179

S y nd

e x

V5

En reacutesumeacute lrsquoapplicationutilisateur contient une

partie haut niveau enCC++ et une partie basniveau sous syndex avecun eacutechange de donneacuteesentre les deux partie en

utilisant la couche RTAIde linux

Equipe Systegraveme Robotiseacute de Production pp cat on aut n veauOn entend application haut

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6279

S y nd

e x

V5

niveau tout programmecomme la planification detrajectoires strateacutegies de

navigation etc hellipLrsquoeacutechange de donneacutees sefait par le biais desmeacutemoires partageacutees quifont parti du noyau RTAI

et de lrsquoespace utilisateursde Linux

Toute ressource preacutesente sur la carte Robosoft peutecirctre partageacutee sans aune restriction

Equipe Systegraveme Robotiseacute de Production pp cat on as n veauUne application bas niveau

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6379

S y nd

e x

V5

Une application bas niveau

est un programme conccedilusous syndex comme lacommande des moteurs la

lecture des capteurs etc hellipLes ressources mateacuteriellessont controcircler par plusieurs

cartes MPC555 Ces cartessrsquoeacutechangent des donneacuteesvia le bus CAN Donc ES

est prise en charge par lasource logicielle deacutedieacutee quisrsquoexeacutecute dans les cartes MPC555 puis la couche RTAI

est utiliseacute pour la mise agrave jour de meacutemoires partageacutees pour lrsquoespace utilisateurs linux drsquoeacutechange de donneacutees

Equipe Systegraveme Robotiseacute de ProductionUtilisation de linux_IO par syndex

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6479

S y nd

e x

V5

Equipe Systegraveme Robotiseacute de ProductionUtilisation de linux_IO par syndex

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6579

S y nd

e x

V5

Equipe Systegraveme Robotiseacute de Production

5

Utilisation de linux_IO par syndex

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6679

S y nd

e x

V5

Degraves que la conception de lrsquoapplication sous syndex esttermineacutee et apregraves compilation (AdequationDo it +GenExec) un fichier drsquoentecircte sous le nom de linioh est

automatiquement geacuteneacutereacute Ce fichier contient lesinformations neacutecessaires pour acceacuteder aux entreacutees enlecture et aux sorties en eacutecriture des opeacuterations linuxIO_

inseacutereacutees dans le graphe drsquoalgorithme Le contenu de cefichier est organiseacute en plusieurs parties une pour chaqueopeacuteration linux_IO preacutesente dans le graphe

Equipe Systegraveme Robotiseacute de Production

5

Utilisation de linux_IO par syndex linioh auto-generated C users API frontend

C i h b f 2001 i i i b f f

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6779

S y nd

e x

V5 Copyright Robosoft 2001 Pierre Pomiers ltpierrerobosoftfrgt

LINUX IO shared memory data segments

define SEG0_BASE 0x10000typedef struct

int js_spd_o0

int js_str_o0

int enc_R_o0int enc_L_o0

double odo_X_o0

double odo_Y_o0

double odo_T_o0int spd_R_o0

int spd_L_o0

int time

unsigned char sem shm_seg0_def

Nom du segment de meacutemoire partageacutee pour notre opeacuteration linuxIO_

7 signaux drsquoentreacutees Ces valeurs sonten lecture et sont peacuteriodiquementrafraicircchies par RTAI

2 signaux de sorties Ces valeurs sonten eacutecriture et sont peacuteriodiquementrafraicircchies par RTAI

Equipe Systegraveme Robotiseacute de Production

5

Crsquoest une eacutetape tregraves facile il suffit drsquoinclure le fichier drsquoentecirctelinio h dans le code du fichier en CC++ comme suit

Utilisation de linuxIO_ par un programme CC+

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6879

S y nd

e x

V5 linioh dans le code du fichier en CC++ comme suit

include linioh

include ltrtai_shmhgt

static shm_seg0_def seg0

shm_seg0_def robot

seg0 = rtai_malloc (SEG0_BASE sizeof (shm_seg0_def))

if (seg0-gtsem = 0) bcopy (seg0 amprobot sizeof (shm_seg0_def))helliphelliphellip

helliphelliphellip bcopy (amprobot seg0 sizeof (shm_seg0_def))helliphelliphelliphelliphelliphellip

rtai_free (SEG0_BASE seg0)

fichier drsquoentecircte de la meacutemoire partageacutee fourni dans la couche RTAI de linux

Initialisation du segment SEG0_BASE Allocation de lameacutemoire pointeacutee

par seg0

Lecture des donneacutees provenant du bas

niveau

Mise agrave jours du segment de meacutemoire partageacutee

Libeacuterer le segment de meacutemoire alloueacute

Equipe Systegraveme Robotiseacute de Production

5

Plan

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6979

S y nd e x

V5

bull Introductionbull Meacutethodologie AAA

bull Installationbull Utilisation du logiciel Syndex

bull Macrosbull LinuxIO un interface CC++ avec SynDEx

bull Exemple drsquoapplication Robuter-ULM

Equipe Systegraveme Robotiseacute de Production

V5

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7079

S y nd e x

V5

Exemple dapplication Exemple dapplication Robuter Robuter--ULM ULM

Equipe Systegraveme Robotiseacute de Production

V5

Description Robuter-ULMbull Base mobile (2-RM 2-RF)

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7179

S y nd e x

V

bull Bras ultra-leacuteger 6 axesbull Ceinture 24 capteurs US

bull Capteur drsquoefforts 6 axes

bull Cameacutera CCD monochromeavec carte drsquoacquisition

bull PC embarqueacute MMX 233

bull OS linux redhat 61 avecRTAI V-13

bull 3 bouton drsquoarrecirct drsquourgence

bull 4 batteries 48 VDC 4 X12V 60 Ah

bull Entreacutee Joystick

bull Liaison Ethernet sans fil

Le manipulateur mobile Robuter-ULM comprend

Equipe Systegraveme Robotiseacute de Production

V5

Base Mobilebull dimension

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7279

S y nd e x

V

1025 mm de longueur 680 mm de largueur et 44 cm de hauteurbull Poids environ 150 kg avec les batteriesbull charge jusqursquoagrave 120 kg

bull vitesse de 5cms agrave 125 msbull Moteurs 2 X 300 W DC 48 VDCbull orientation par diffeacuterence de vitesse

bull Preacutecision Position par encodeurs optiquesbull Deux roues motrices diffeacuterentielles et de deux roues follesbull Drsquoune ceinture de 24 capteurs Ultrasons

bull Une carte MPC555 de Robosoft pour le controcircle des deuxmoteurs DC des 2 rouesbull Un systegraveme drsquoodomeacutetrie qui donne la position relative du robot

par rapport agrave son repegravere

Equipe Systegraveme Robotiseacute de Production

V5

bull dimension Faute de documentation

Bras U tra- eacuteger

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7379

S y nd e x

V Faute de documentation

bull Poids moins de 20 kgbull charge 2 kgbull Moteurs 6 moteurs DC

bull gripper pince eacutelectrique 2 doigtsbull Reacutepeacutetabiliteacute +- 1mmbull 3 carte MPC555 de Robosoft lrsquoune pour le capteur drsquoeffort et les

deux autres pour les 6 moteurs + moteur de la pincebull Position encodeur increacutemental

1 2 3 4 5 6Axisrange

plusmn90deg 0-90deg plusmn80deg plusmn100deg plusmn90deg plusmn110deg

vitesse 180degs 180degs 180degs 180degs 180degs 180degs

Equipe Systegraveme Robotiseacute de Production

V5

rc tecture ar ware

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7479

S y nd e x

V

Equipe Systegraveme Robotiseacute de Production

V5

Pro eacutemat quePlusieurs applications peuvent ecirctre impleacutementeacutees sur le robot

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7579

S y nd e x

V

Cependant il faut faire la diffeacuterence entre les applications quidemande lrsquoutilisation de syndex et les applications qui neneacutecessite qursquoune programmation en CC++ Agrave titre drsquoexemple

bull Localisationbull Commande en position

bull Commande en forcebull Navigation

bull Geacuteneacuteration de trajectoire

bull Vision

Equipe Systegraveme Robotiseacute de Production

V5 bull Pince eacutelectrique (TOR)

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7679

S y nd e x

Vq ( )

bull Pince possegravede des ES Logiques

Notre application consiste agrave

bull Recevoir lrsquoeacutetat de la pince (fermeacutee ouverte )

bull Envoyer une commande vers la pince

Capture

drsquoinformation

Open

Close

CommandeMeacutemoire

Partageacutee

Actionneur

Pince Prise de deacutecision Pince

Equipe Systegraveme Robotiseacute de Production

V5

Sc eacutema eacute ectr que

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7779

S y nd e x

Equipe Systegraveme Robotiseacute de Production

V5

Conclusion

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7879

S y nd e x bull Introduction

bull Meacutethodologie AAA

bull Installationbull Utilisation du logiciel Syndex

bull Macrosbull LinuxIO un interface CC++ avec SynDEx

bull Exemple drsquoapplication Robuter-ULM

Equipe Systegraveme Robotiseacute de Production

V5

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7979

S y nd e x

Questions

Page 26: Cours Syndex

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 2679

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Utilisation de l interface

Utilisation de lrsquointerface

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 2779

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Utilisation de l interface

Utilisation de lrsquointerface

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 2879

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Utilisation de l interface

Algorithm

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 2979

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Algorithm

Lrsquoalgorithme est speacutecifieacute comme un graphe orienteacute ougravebull chaque sommet est une opeacuteration qui calcule les sorties

des entreacutees agrave chaque opeacuteration doit correspondre uneseacutequence drsquoinstructions compileacutee seacutepareacutement

bull Chaque arc est une deacutependance de donneacutees entre deux

opeacuterations (ou plus dans le cas de diffusion) c-a-d lasortie drsquoune opeacuteration est lrsquoentreacutee de lrsquoautre opeacuteration(ou de plusieurs autres opeacuterations) une entreacutee peut ecirctreconnecteacutee seulement agrave une sortie de mecircme type dedonneacutees

gor t m

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3079

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

gor t mon distingue 4 types de sommets

Algorithm

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3179

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Algorithmbull Le sommet function possegravede au moins une entreacutee et

une sortie crsquoest une opeacuteration agrave libre effet qui calculeses sorties uniquement agrave partir de ses entreacutees (c-a-d niagrave partir des variables globales ni agrave partir des

preacuteceacutedentes valeurs de ces entreacutees)bull Le sommet extio permet lrsquoacquisitionlrsquoeacutecriture des

entreacuteessorties on distingue trois cas

1 Capteur sans entreacutee agrave chaque reacuteaction sa sortierepreacutesente la valeur lue du capteur

2 Actionneur sans sortie agrave chaque reacuteaction ilenvoi son entreacutee agrave lrsquoactionneur

3 Linux_IO ces des meacutemoires partageacutees qui

permettent le transfert de donneacutees entre syndexet un langage eacutevolueacute

E i S egrave R b i eacute d P d i Algorithm

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3279

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Algorithm

bull Le sommet memory possegravede uniquement uneentreacutee et une sortie crsquoest une opeacuteration agrave effetunique qui met la sortie degraves la premiegravere reacuteaction

agrave une valeur initiale calculeacutee auparavant et puisla sortie de la prochaine reacuteaction nrsquoest que

lrsquoentreacutee de la preacuteceacutedente reacuteactionbull Le sommet constant ne possegravede aucune entreacutee

il calcule sa sortie une seule fois avant la premiegravere reacuteaction puis la sortie demeure la mecircme pour chaque reacuteaction

E i S tegrave R b ti eacute d P d ti Algorithm

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3379

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

AlgorithmPour lrsquoalgorithme chaque sommet est caracteacuteriseacute par

bull Son type geacuteneacuterique (function extio memory constant)bull Un nom unique (tout les sommets doivent avoir des

noms diffeacuterents)bull Son type identifiant sa seacutequence drsquoinstructionsassocieacute

bull Sa liste drsquoarguments ougrave chaque argument est speacutecifieacute par bull Le nombre drsquoentreacuteesortiebull Le type de donneacuteesbull Le nom (tout les arguments doivent avoir des noms

diffeacuterents)

Equipe Systegraveme Robotiseacute de Production Architecture

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3479

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

ArchitectureLrsquoarchitecture est speacutecifieacutee comme un graphe non orienteacute

ougrave bullChaque sommet est une ressource seacutequentielle il y adeux types de sommets

bull processeur crsquoest une ressource de calcul enmesure drsquoexeacutecuter seacutequentiellement les opeacuterationsdrsquoun algorithme il pourrait ecirctre un processeur ou

un circuit inteacutegreacute speacutecialiseacutebull meacutedia crsquoest une ressource de communicationen mesure drsquoexeacutecuter seacutequentiellement un transfertde donneacutees entre les meacutemoires des processeurs quilui sont connecteacutes

bull chaque arc est une connexion bidirectionnelle entreun processeur et un meacutedia

Equipe Systegraveme Robotiseacute de Production Architecture

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3579

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

ArchitecturePour lrsquoarchitecture chaque sommet est caracteacuteriseacute par

bull Un nom uniquebullSon type (processeur or meacutedia)bull Son type identifiant caracteacuteristiques mateacuterielles

bull Sa liste de connecteurs ougrave chaque connecteur est speacutecifieacute par bull son type identifiant le type de meacutedia agrave qui il peut ecirctreconnecteacute

bullUn nom

Equipe Systegraveme Robotiseacute de ProductionCaracteacuter st que

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3679

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Caracteacuter st que Nous distinguons deux cateacutegories de caracteacuteristiques lrsquoune relative

aux opeacuterations et lrsquoune agrave la communication 1 Comment speacutecifier les caracteacuteristiques des opeacuterations sous le menu AdequationAlOp_ArOp on obtient une boite

de dialogue avec

une liste de toutles types de

processeurs et

pour chaque processeur uneliste de tout les

types drsquoopeacuterationsqui peut lesexeacutecuter avec ladureacutee drsquoexeacutecutioncorrespondante

Equipe Systegraveme Robotiseacute de ProductionCaracteacuteristique

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3779

q p y

S y nd

e xV

5

q2 Comment speacutecifier les caracteacuteristiques de communication

sous le menu AdequationAlIO_ArIO on obtient une boitede dialogue avec une liste de tout les types de meacutedia et

pour chaque meacutedia une liste de tout les types de donneacutees

qui peut transfeacuterer avec la dureacutee de transfertcorrespondante

Equipe Systegraveme Robotiseacute de Production Contraintes

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3879

S y nd

e xV

5

Pour contraindre une opeacuteration agrave srsquoexeacutecuter sur un processeur donneacutee

1Seacutelectionner le(s) opeacuteration(s) agrave contraindre2 Seacutelectionner la commande AlgorithmSetConstraint3 Seacutelectionner le processeur qui doit exeacutecute les opeacuterationsseacutelectionneacutees

Pour enlever les contraintes seacutelectionner lrsquoopeacuteration puis exeacutecuterla commande AlgorithmDeleteConstraint

Pour voir sur quel processeur une opeacuteration est y contrainteseacutelectionner lrsquoopeacuteration puis exeacutecuter la commandeAlgorithmShowConstraint le processeur correspondant y sera

seacutelectionneacutePour voir toute les opeacuterations qui sont contraintes sur un processeurseacutelectionner le processeur puis exeacutecuter la commande

ArchitectureShowConstrained du menu les opeacuterationscorrespondantes y seront seacutelectionneacutees

Equipe Systegraveme Robotiseacute de Production A eacutequat o

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3979

S y nd

e xV

5

q

Pour construire le planificateur des opeacuterations dugraphe drsquoalgorithme sur les processeurs du graphedrsquoarchitecture qui effectue automatiquement le routage

des deacutependances de donneacutees inter-processeurs et lacreacuteation et la planification des opeacuterations decommunication sur le meacutedia du graphe drsquoarchitectureon utilise la commande AdequationDoIt

Cette commande creacutee un heuristique qui cherche agraveminimiser le chemin critique du graphe drsquoalgorithme

Equipe Systegraveme Robotiseacute de ProductionGeacuteneacuteration du code exeacutecuti

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4079

S y nd

e xV

5Le code exeacutecutif est la partie qui gegravere les ressources

mateacuterielles pour les allouer aux besoins de lrsquoalgorithmedrsquoapplication Les ressources agrave allouer sont

1 Les espaces meacutemoires des processeurs2 Le temps des seacutequences drsquoinstructions3 Le temps des meacutedia de communication

Gracircce agrave la meacutethodologie AAA et le logiciel Syndexlrsquoutilisateur est exempte drsquoeacutecrire du code pour geacuterer ces

ressources Donc par simple exeacutecution de la commandeAdequationGenExec un code distribueacute pour chaque processeur est automatiquement geacuteneacutereacute Ce code est en

fait un exeacutecutif geacuteneacutereacute sur mesure pour lrsquoalgorithme etlrsquoarchitecture

Equipe Systegraveme Robotiseacute de ProductionGeacuteneacuteration du code exeacutecuti

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4179

S y nd

e xV5

Pour chaque processeur de lrsquoarchitecture un fichier

source macro-exeacutecutif m4 avec le mecircme nom estgeacuteneacutereacute plus un macro-makefile ayant le mecircme nom quecelui de lrsquoapplication Chacun de ces fichiers doit ecirctre

transcrit par le macro-processeur GNU M4 (assembleurC) Cette transcription deacutepend de plusieurs fichiers

1 Fichier syndexm4x qui deacutefini les macrosgeacuteneacuteriques de syndex2 Fichier processorTypem4x qui deacutefini les macros

de bas niveau du processeur3 Fichier applicationNamem4x qui deacutefini les macros

speacutecifiques agrave lrsquoapplication

4 Fichier mediaTypem4x qui deacutefini les macros decommunication de bas niveau du type de media

Equipe Systegraveme Robotiseacute de ProductionCreacuteat on rsquoapp cat on

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4279

S y nd

e xV5 Arborescence des reacutepertoires Rep_travail

Applicationmacros

~rtai

Eacutevolution de lrsquoapplication

Phase 1

Edition des macros(C ou Assembleur)

+GNUmakefile

Phase 2

Edition du graphe

(Algorithme amp

Architecteure)

Phase 3

Compilation amp Exeacutecution

Equipe Systegraveme Robotiseacute de ProductionSeacutequence de compilation de Synde

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4379

S y nd

e xV5

Equipe Systegraveme Robotiseacute de Production Plan

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4479

S y nd

e xV5

bull Introduction

bull Meacutethodologie AAA

bull Installation

bull Utilisation du logiciel Syndex

bull Macros

bull LinuxIO un interface CC++ avec SynDEx

bull Exemple drsquoapplication Robuter-ULM

Equipe Systegraveme Robotiseacute de Production

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4579

S y nd

e xV5

Macros Macros

bull Deacutefinition

bull Types de macros

bull Carte Robosoft MPC555

bull Macros Geacuteneacuterique MPC555

bull Macros speacutecifique Robosoftbull Macros de Communication

bull Macros drsquoapplicationbull Structure du fichier Macro

Equipe Systegraveme Robotiseacute de Production Deacutefinition

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4679

S y nd

e xV5

Un macro-processeur est un programme qui consommeen entreacutee une chaicircne de caractegraveres (texte source) la

traite seacutequentiellement en substituant chaque sous-chaicircne qursquoil reconnaicirct (Appel de macro) par unechaicircne correspondante de substitution ( Deacutefinition de

macro) qursquoil traite agrave nouveau jusqursquoagrave ce qursquoil nrsquo y ait plus de substitution possible et qui produit en sortie lachaicircne de caractegraveres traiteacutee

Equipe Systegraveme Robotiseacute de Productionypes e macrosL diffeacute t di ti t d d

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4779

S y nd

e xV5

Les diffeacuterents macros se distinguent en deux grandes

classes bull Macros geacuteneacuteriques

en geacuteneacuteral ceux sont des macros non destineacutes agraveecirctre utiliser directement par lrsquointerface syndexmais plutocirct utiliseacutees pour la programmation

drsquoautres macros (macros MPC555)bull Macros utilisateurs

macros utiliseacutes directement par syndex ils sontspeacutecifiques agrave lrsquoapplication (macros decommunication macros speacutecifiques robosoft

macros speacutecifiques agrave lrsquoapplication)

Equipe Systegraveme Robotiseacute de ProductionCarte Robosoft MPC555La carte Robosoft MPC555 est conccedilue pour la commande de robot de veacutehicule

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4879

S y nd

e xV5

(1) Connecteur du chip MPC555(2) Alimentation continue(3) Interface BDM (Basic Debug Interface)(4) Entreacute Analogique (Joystickhellip)(5) EntreacuteSortie logiques(6) Ligne seacuterie Synchrone (Codeur absolu)(7) Ligne seacuterie Asynchrone (Port 0)

(8) Ligne seacuterie Asynchrone (Port 1)(9) Connecteur du bus CAN (Port 0)(10) Connecteur du bus CAN (Port 1)(11) Axe 1(13) Axe 2(14) Axe 3(15) Axe 4

La carte Robosoft MPC555 est conccedilue pour la commande de robot de veacutehiculeeacutelectrique ou toute autre machine Elle permet de commander un axe gracircce agrave

lrsquoajout drsquoune carte fille le controcircle srsquoeacutetend jusqursquoagrave 4 axesCette carte est baseacutee sur le microcontrocircleur MPC555 32-bit de MotorolaElle peut opeacuterer agrave une freacutequence

de 40 MHz Divers signauxlogique et analogique peuventecirctre utiliser pour lrsquoacquisition deet la commande de mateacuteriel Les

sorties disponibles peuvent ecirctreanalogique ou PWMOn y trouve

Equipe Systegraveme Robotiseacute de ProductionArchitecture du MPC555

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4979

S y nd

e xV5

Equipe Systegraveme Robotiseacute de Productionaract r st ques u

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5079

S y nd

e xV5

Equipe Systegraveme Robotiseacute de Productionacros n r quesbull GPIO (General-Purpose InputOutput)

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5179

S y nd

e xV5

GPIO (General Purpose InputOutput)ce macro utilise le module USIU qui lui fourni 64 pins pour desentreacuteessorties numeacuteriques ordinaires (IO de la carte Robosoft lirelrsquoeacutetat de la pince envoi de commande agrave la pince lire les alarmes)

bull QADC (Queued Analog to Digital Converter)en utilisant le module QADC ce macro permet la conversion drsquounsignal analogique en entreacutee en un signal numeacuterique multi-niveaux(lire les donneacutees du capteur drsquoeacuteffort du joystick)

bull MIOS (Modular InputOutput System)Le module MIOS fourni 16 pins drsquoES numeacuteriques Sur la carte deRobosoft tous les pins sont en sortie Les 16 pins sont reacutepartiscomme suit

utilisateurs reacuteserveacutes

les pins de 0 agrave 11 sont reacuteserveacutes car ils sont preacutevus agrave ecirctre utiliseacutes pour unmateacuteriel particulier Mais si ce mateacuteriel nrsquoest pas utiliseacute lrsquoutilisateur peut lesutiliser librement

15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

Equipe Systegraveme Robotiseacute de ProductionMacros Geacuteneacuter ques MPC55

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5279

S y nd

e xV5

bull PWM (Pulse width Modulation)utilise le module MIOS (pins de 4-7 pour la direction des moteurset de 8-11 pour la validation) pour la commande des actionneursnumeacuteriques en PWM

bull TPU (Time Processor Units)les macros lieacutes agrave ce module permettent la lecture des encodeurs

increacutementauxbull QSPI (Queued Serial Peripheral Interface)

ce module fait partie du module QSMCM et les macros lieacutes servent

agrave son initialisation pour une communication avec du mateacuterielsexternes via le bus seacuterie synchrone

Equipe Systegraveme Robotiseacute de ProductionMacros Geacuteneacuter ques MPC55

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5379

S y nd

e x

V5 bull Serial port support (Polling implementation)

le MPC555 comprend dans le module QSMCM une interface decommunication seacuterie SCI qui permet la communication avec dumateacuteriels externes via un bus seacuterie asynchrone Plusieurs macros

sont lieacutes agrave cette interface pour initialiser et eacutetablir la communicationbull Serial port support (interrupt handling implementation)

pour la mecircme interface SCI du module QSMCM pour cette

meacutethode drsquoimpleacutementation les macros lieacutes initialisent et eacutetablissentla communication en mode par interruption ce qui permet dedeacutetecter lrsquoarriveacutee des donneacutees sur le port seacuterie au lieu de le scruter

en permanence

tous ces macros on les retrouvent dans le fichier 555m4x

Equipe Systegraveme Robotiseacute de ProductionMacros Speacutec ques Ro oso tles macros suivants sont deacutedieacutes agrave la carte de Robosoft MPC555

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5479

S y nd

e x

V5

bull Initialisation de la carte Robosoftmain_ini_() macro ne doit pas ecirctre utiliser par les programmateursdu fait qursquoelle sert qursquoagrave initialiser la carte robosoft Macro interne agrave

syndex dont lrsquoappel est automatique lors de geacuteneacuteration drsquoexeacutecutifMPC555

bull DAC (Digital to Analog Converter)

macro permet lrsquoutilisation du convertisseur de carte robosoft via lemodule MIOs en utilisant les pins de 0 agrave 2

bull LED (on-bord LED interface)

macro permet la gestion de la LED de la carte robosoft connecteacuteeau module QSPI (pin PCS1)

bull SPI absolute encoder

macro permet lrsquoutilisation lrsquointerface du codeur absolu de la carterobosoft connecteacute au module QSPI

Equipe Systegraveme Robotiseacute de ProductionMacros Speacutec ques Ro oso tbull Motor amplifier direction

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5579

S y nd

e x

V5

Motor amplifier directionmacro qui permet de geacuterer la direction des moteurs

bull Motor power amplifier validationles moteurs embarqueacutes sur les robots sont eacutequipeacutes de freins

eacutelectriquement commandable Ce macro permet drsquoenvoyer unsignal drsquoinhibition pour deacutebloquer les freins

bull Watch dog

pour des raisons de seacutecuriteacute un meacutecanisme mateacuteriel que robosofta ajouteacute sur la carte Ce watch-dog vise agrave stopper lrsquoactiviteacute dumoteur en cas ougrave le programme plante Le watch est impleacutementeacute

comme un time-out mateacuteriel Srsquoil nrsquoest pas rafraicircchi peacuteriodiquement il transmet un signal de sortie ce qui enlegraveve lavalidation de lrsquoamplificateur de puissance donc lrsquoarrecirct dumouvement

ces macros se trouvent dans le fichier RSBm4x

Equipe Systegraveme Robotiseacute de Production

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5679

S y nd

e x

V5

Macros de Communicationchaque meacutedia de communication (bus CAN ) est une ressourceseacutequentielle ougrave les transferts de donneacutees entre processeurs doiventsuivre un certain ordre Donc ce macro de communication sert agravedeacutefinir cet ordre et agrave identifier le protocole de communication lecodagedeacutecodage de lrsquoinformation et la synchronisation

on trouve ces macros dans le fichier CANm4x

Macros drsquoapplicationce genre de macros sont speacutecifique au mateacuteriel en question et aussiagrave lrsquoapplication en particulier Ce sont des macros utilisateurs

on trouve ces macros dans le fichier Application_namem4x

Equipe Systegraveme Robotiseacute de Production

section include (pour inclure drsquoautres fichiers macro agrave utiliseStructure du fichier macr

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5779

S y nd

e x

V5

section define (pour tous les macros utilisateurs)MGC lsquoINITrsquo (MGC Macro Generation Context variable)

divert (declaration) (deacutebut du macro)

(deacuteclaration des variables des meacutemoires et des csts

divert (o)

MGC lsquolooprsquocode en assembleur code en C

dnl (commentaires)

MGC lsquoENDrsquo dnl (fin de la macros)divert lsquo lsquo dnl

macros MPC555meacutemoire MPC555

constante MPC555

macros RTAImeacutemoire RTAI

constante RTAI

Equipe Systegraveme Robotiseacute de Production Plan

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5879

S y nd

e x

V5

bull Introduction

bull Meacutethodologie AAA

bull Installationbull Utilisation du logiciel Syndex

bull Macrosbull LinuxIO un interface CC++ avec SynDEx

bull Exemple drsquoapplication Robuter-ULM

Equipe Systegraveme Robotiseacute de Production

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5979

S y nd

e x

V5

LinuxIO LinuxIO une interface une interface

CC++ avecCC++ avec SynDExSynDEx

bull Principe de basebull Utilisation de linuxIO_ par syndex

bull Utilisation de linuxIO_ par un programmeCC++

Equipe Systegraveme Robotiseacute de ProductionPrincipe de baseSyndex fourni une interface graphique pour la conception

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6079

S y nd

e x

V5

Syndex fourni une interface graphique pour la conception

drsquoapplications Par contre des fois nous avons besoin drsquoautresfonctionnaliteacutes non disponibles donc il faut les creacuteer Cependantgeacuteneacuterer des macros pour syndex srsquoavegravere difficile pour certains du

fait qursquoil faut avoir une bonne connaissance de la programmation bas niveau Dans ce cas lrsquoutilisation de linux_IO trouve sa placedans un contexte particulier interfacer des applications CC++utilisateurs avec des applications embarqueacutees temps reacuteeldeacuteveloppeacutees sous syndex

Par rapport agrave ce contexte de programmation lrsquoorganisation du

deacuteveloppement des applications est structureacutee en deux parties 1 Application haut niveau

2 Application bas niveau

Equipe Systegraveme Robotiseacute de ProductionPrincipe de base

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6179

S y nd

e x

V5

En reacutesumeacute lrsquoapplicationutilisateur contient une

partie haut niveau enCC++ et une partie basniveau sous syndex avecun eacutechange de donneacuteesentre les deux partie en

utilisant la couche RTAIde linux

Equipe Systegraveme Robotiseacute de Production pp cat on aut n veauOn entend application haut

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6279

S y nd

e x

V5

niveau tout programmecomme la planification detrajectoires strateacutegies de

navigation etc hellipLrsquoeacutechange de donneacutees sefait par le biais desmeacutemoires partageacutees quifont parti du noyau RTAI

et de lrsquoespace utilisateursde Linux

Toute ressource preacutesente sur la carte Robosoft peutecirctre partageacutee sans aune restriction

Equipe Systegraveme Robotiseacute de Production pp cat on as n veauUne application bas niveau

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6379

S y nd

e x

V5

Une application bas niveau

est un programme conccedilusous syndex comme lacommande des moteurs la

lecture des capteurs etc hellipLes ressources mateacuteriellessont controcircler par plusieurs

cartes MPC555 Ces cartessrsquoeacutechangent des donneacuteesvia le bus CAN Donc ES

est prise en charge par lasource logicielle deacutedieacutee quisrsquoexeacutecute dans les cartes MPC555 puis la couche RTAI

est utiliseacute pour la mise agrave jour de meacutemoires partageacutees pour lrsquoespace utilisateurs linux drsquoeacutechange de donneacutees

Equipe Systegraveme Robotiseacute de ProductionUtilisation de linux_IO par syndex

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6479

S y nd

e x

V5

Equipe Systegraveme Robotiseacute de ProductionUtilisation de linux_IO par syndex

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6579

S y nd

e x

V5

Equipe Systegraveme Robotiseacute de Production

5

Utilisation de linux_IO par syndex

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6679

S y nd

e x

V5

Degraves que la conception de lrsquoapplication sous syndex esttermineacutee et apregraves compilation (AdequationDo it +GenExec) un fichier drsquoentecircte sous le nom de linioh est

automatiquement geacuteneacutereacute Ce fichier contient lesinformations neacutecessaires pour acceacuteder aux entreacutees enlecture et aux sorties en eacutecriture des opeacuterations linuxIO_

inseacutereacutees dans le graphe drsquoalgorithme Le contenu de cefichier est organiseacute en plusieurs parties une pour chaqueopeacuteration linux_IO preacutesente dans le graphe

Equipe Systegraveme Robotiseacute de Production

5

Utilisation de linux_IO par syndex linioh auto-generated C users API frontend

C i h b f 2001 i i i b f f

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6779

S y nd

e x

V5 Copyright Robosoft 2001 Pierre Pomiers ltpierrerobosoftfrgt

LINUX IO shared memory data segments

define SEG0_BASE 0x10000typedef struct

int js_spd_o0

int js_str_o0

int enc_R_o0int enc_L_o0

double odo_X_o0

double odo_Y_o0

double odo_T_o0int spd_R_o0

int spd_L_o0

int time

unsigned char sem shm_seg0_def

Nom du segment de meacutemoire partageacutee pour notre opeacuteration linuxIO_

7 signaux drsquoentreacutees Ces valeurs sonten lecture et sont peacuteriodiquementrafraicircchies par RTAI

2 signaux de sorties Ces valeurs sonten eacutecriture et sont peacuteriodiquementrafraicircchies par RTAI

Equipe Systegraveme Robotiseacute de Production

5

Crsquoest une eacutetape tregraves facile il suffit drsquoinclure le fichier drsquoentecirctelinio h dans le code du fichier en CC++ comme suit

Utilisation de linuxIO_ par un programme CC+

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6879

S y nd

e x

V5 linioh dans le code du fichier en CC++ comme suit

include linioh

include ltrtai_shmhgt

static shm_seg0_def seg0

shm_seg0_def robot

seg0 = rtai_malloc (SEG0_BASE sizeof (shm_seg0_def))

if (seg0-gtsem = 0) bcopy (seg0 amprobot sizeof (shm_seg0_def))helliphelliphellip

helliphelliphellip bcopy (amprobot seg0 sizeof (shm_seg0_def))helliphelliphelliphelliphelliphellip

rtai_free (SEG0_BASE seg0)

fichier drsquoentecircte de la meacutemoire partageacutee fourni dans la couche RTAI de linux

Initialisation du segment SEG0_BASE Allocation de lameacutemoire pointeacutee

par seg0

Lecture des donneacutees provenant du bas

niveau

Mise agrave jours du segment de meacutemoire partageacutee

Libeacuterer le segment de meacutemoire alloueacute

Equipe Systegraveme Robotiseacute de Production

5

Plan

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6979

S y nd e x

V5

bull Introductionbull Meacutethodologie AAA

bull Installationbull Utilisation du logiciel Syndex

bull Macrosbull LinuxIO un interface CC++ avec SynDEx

bull Exemple drsquoapplication Robuter-ULM

Equipe Systegraveme Robotiseacute de Production

V5

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7079

S y nd e x

V5

Exemple dapplication Exemple dapplication Robuter Robuter--ULM ULM

Equipe Systegraveme Robotiseacute de Production

V5

Description Robuter-ULMbull Base mobile (2-RM 2-RF)

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7179

S y nd e x

V

bull Bras ultra-leacuteger 6 axesbull Ceinture 24 capteurs US

bull Capteur drsquoefforts 6 axes

bull Cameacutera CCD monochromeavec carte drsquoacquisition

bull PC embarqueacute MMX 233

bull OS linux redhat 61 avecRTAI V-13

bull 3 bouton drsquoarrecirct drsquourgence

bull 4 batteries 48 VDC 4 X12V 60 Ah

bull Entreacutee Joystick

bull Liaison Ethernet sans fil

Le manipulateur mobile Robuter-ULM comprend

Equipe Systegraveme Robotiseacute de Production

V5

Base Mobilebull dimension

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7279

S y nd e x

V

1025 mm de longueur 680 mm de largueur et 44 cm de hauteurbull Poids environ 150 kg avec les batteriesbull charge jusqursquoagrave 120 kg

bull vitesse de 5cms agrave 125 msbull Moteurs 2 X 300 W DC 48 VDCbull orientation par diffeacuterence de vitesse

bull Preacutecision Position par encodeurs optiquesbull Deux roues motrices diffeacuterentielles et de deux roues follesbull Drsquoune ceinture de 24 capteurs Ultrasons

bull Une carte MPC555 de Robosoft pour le controcircle des deuxmoteurs DC des 2 rouesbull Un systegraveme drsquoodomeacutetrie qui donne la position relative du robot

par rapport agrave son repegravere

Equipe Systegraveme Robotiseacute de Production

V5

bull dimension Faute de documentation

Bras U tra- eacuteger

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7379

S y nd e x

V Faute de documentation

bull Poids moins de 20 kgbull charge 2 kgbull Moteurs 6 moteurs DC

bull gripper pince eacutelectrique 2 doigtsbull Reacutepeacutetabiliteacute +- 1mmbull 3 carte MPC555 de Robosoft lrsquoune pour le capteur drsquoeffort et les

deux autres pour les 6 moteurs + moteur de la pincebull Position encodeur increacutemental

1 2 3 4 5 6Axisrange

plusmn90deg 0-90deg plusmn80deg plusmn100deg plusmn90deg plusmn110deg

vitesse 180degs 180degs 180degs 180degs 180degs 180degs

Equipe Systegraveme Robotiseacute de Production

V5

rc tecture ar ware

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7479

S y nd e x

V

Equipe Systegraveme Robotiseacute de Production

V5

Pro eacutemat quePlusieurs applications peuvent ecirctre impleacutementeacutees sur le robot

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7579

S y nd e x

V

Cependant il faut faire la diffeacuterence entre les applications quidemande lrsquoutilisation de syndex et les applications qui neneacutecessite qursquoune programmation en CC++ Agrave titre drsquoexemple

bull Localisationbull Commande en position

bull Commande en forcebull Navigation

bull Geacuteneacuteration de trajectoire

bull Vision

Equipe Systegraveme Robotiseacute de Production

V5 bull Pince eacutelectrique (TOR)

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7679

S y nd e x

Vq ( )

bull Pince possegravede des ES Logiques

Notre application consiste agrave

bull Recevoir lrsquoeacutetat de la pince (fermeacutee ouverte )

bull Envoyer une commande vers la pince

Capture

drsquoinformation

Open

Close

CommandeMeacutemoire

Partageacutee

Actionneur

Pince Prise de deacutecision Pince

Equipe Systegraveme Robotiseacute de Production

V5

Sc eacutema eacute ectr que

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7779

S y nd e x

Equipe Systegraveme Robotiseacute de Production

V5

Conclusion

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7879

S y nd e x bull Introduction

bull Meacutethodologie AAA

bull Installationbull Utilisation du logiciel Syndex

bull Macrosbull LinuxIO un interface CC++ avec SynDEx

bull Exemple drsquoapplication Robuter-ULM

Equipe Systegraveme Robotiseacute de Production

V5

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7979

S y nd e x

Questions

Page 27: Cours Syndex

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 2779

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Utilisation de l interface

Utilisation de lrsquointerface

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 2879

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Utilisation de l interface

Algorithm

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 2979

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Algorithm

Lrsquoalgorithme est speacutecifieacute comme un graphe orienteacute ougravebull chaque sommet est une opeacuteration qui calcule les sorties

des entreacutees agrave chaque opeacuteration doit correspondre uneseacutequence drsquoinstructions compileacutee seacutepareacutement

bull Chaque arc est une deacutependance de donneacutees entre deux

opeacuterations (ou plus dans le cas de diffusion) c-a-d lasortie drsquoune opeacuteration est lrsquoentreacutee de lrsquoautre opeacuteration(ou de plusieurs autres opeacuterations) une entreacutee peut ecirctreconnecteacutee seulement agrave une sortie de mecircme type dedonneacutees

gor t m

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3079

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

gor t mon distingue 4 types de sommets

Algorithm

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3179

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Algorithmbull Le sommet function possegravede au moins une entreacutee et

une sortie crsquoest une opeacuteration agrave libre effet qui calculeses sorties uniquement agrave partir de ses entreacutees (c-a-d niagrave partir des variables globales ni agrave partir des

preacuteceacutedentes valeurs de ces entreacutees)bull Le sommet extio permet lrsquoacquisitionlrsquoeacutecriture des

entreacuteessorties on distingue trois cas

1 Capteur sans entreacutee agrave chaque reacuteaction sa sortierepreacutesente la valeur lue du capteur

2 Actionneur sans sortie agrave chaque reacuteaction ilenvoi son entreacutee agrave lrsquoactionneur

3 Linux_IO ces des meacutemoires partageacutees qui

permettent le transfert de donneacutees entre syndexet un langage eacutevolueacute

E i S egrave R b i eacute d P d i Algorithm

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3279

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Algorithm

bull Le sommet memory possegravede uniquement uneentreacutee et une sortie crsquoest une opeacuteration agrave effetunique qui met la sortie degraves la premiegravere reacuteaction

agrave une valeur initiale calculeacutee auparavant et puisla sortie de la prochaine reacuteaction nrsquoest que

lrsquoentreacutee de la preacuteceacutedente reacuteactionbull Le sommet constant ne possegravede aucune entreacutee

il calcule sa sortie une seule fois avant la premiegravere reacuteaction puis la sortie demeure la mecircme pour chaque reacuteaction

E i S tegrave R b ti eacute d P d ti Algorithm

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3379

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

AlgorithmPour lrsquoalgorithme chaque sommet est caracteacuteriseacute par

bull Son type geacuteneacuterique (function extio memory constant)bull Un nom unique (tout les sommets doivent avoir des

noms diffeacuterents)bull Son type identifiant sa seacutequence drsquoinstructionsassocieacute

bull Sa liste drsquoarguments ougrave chaque argument est speacutecifieacute par bull Le nombre drsquoentreacuteesortiebull Le type de donneacuteesbull Le nom (tout les arguments doivent avoir des noms

diffeacuterents)

Equipe Systegraveme Robotiseacute de Production Architecture

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3479

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

ArchitectureLrsquoarchitecture est speacutecifieacutee comme un graphe non orienteacute

ougrave bullChaque sommet est une ressource seacutequentielle il y adeux types de sommets

bull processeur crsquoest une ressource de calcul enmesure drsquoexeacutecuter seacutequentiellement les opeacuterationsdrsquoun algorithme il pourrait ecirctre un processeur ou

un circuit inteacutegreacute speacutecialiseacutebull meacutedia crsquoest une ressource de communicationen mesure drsquoexeacutecuter seacutequentiellement un transfertde donneacutees entre les meacutemoires des processeurs quilui sont connecteacutes

bull chaque arc est une connexion bidirectionnelle entreun processeur et un meacutedia

Equipe Systegraveme Robotiseacute de Production Architecture

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3579

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

ArchitecturePour lrsquoarchitecture chaque sommet est caracteacuteriseacute par

bull Un nom uniquebullSon type (processeur or meacutedia)bull Son type identifiant caracteacuteristiques mateacuterielles

bull Sa liste de connecteurs ougrave chaque connecteur est speacutecifieacute par bull son type identifiant le type de meacutedia agrave qui il peut ecirctreconnecteacute

bullUn nom

Equipe Systegraveme Robotiseacute de ProductionCaracteacuter st que

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3679

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Caracteacuter st que Nous distinguons deux cateacutegories de caracteacuteristiques lrsquoune relative

aux opeacuterations et lrsquoune agrave la communication 1 Comment speacutecifier les caracteacuteristiques des opeacuterations sous le menu AdequationAlOp_ArOp on obtient une boite

de dialogue avec

une liste de toutles types de

processeurs et

pour chaque processeur uneliste de tout les

types drsquoopeacuterationsqui peut lesexeacutecuter avec ladureacutee drsquoexeacutecutioncorrespondante

Equipe Systegraveme Robotiseacute de ProductionCaracteacuteristique

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3779

q p y

S y nd

e xV

5

q2 Comment speacutecifier les caracteacuteristiques de communication

sous le menu AdequationAlIO_ArIO on obtient une boitede dialogue avec une liste de tout les types de meacutedia et

pour chaque meacutedia une liste de tout les types de donneacutees

qui peut transfeacuterer avec la dureacutee de transfertcorrespondante

Equipe Systegraveme Robotiseacute de Production Contraintes

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3879

S y nd

e xV

5

Pour contraindre une opeacuteration agrave srsquoexeacutecuter sur un processeur donneacutee

1Seacutelectionner le(s) opeacuteration(s) agrave contraindre2 Seacutelectionner la commande AlgorithmSetConstraint3 Seacutelectionner le processeur qui doit exeacutecute les opeacuterationsseacutelectionneacutees

Pour enlever les contraintes seacutelectionner lrsquoopeacuteration puis exeacutecuterla commande AlgorithmDeleteConstraint

Pour voir sur quel processeur une opeacuteration est y contrainteseacutelectionner lrsquoopeacuteration puis exeacutecuter la commandeAlgorithmShowConstraint le processeur correspondant y sera

seacutelectionneacutePour voir toute les opeacuterations qui sont contraintes sur un processeurseacutelectionner le processeur puis exeacutecuter la commande

ArchitectureShowConstrained du menu les opeacuterationscorrespondantes y seront seacutelectionneacutees

Equipe Systegraveme Robotiseacute de Production A eacutequat o

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3979

S y nd

e xV

5

q

Pour construire le planificateur des opeacuterations dugraphe drsquoalgorithme sur les processeurs du graphedrsquoarchitecture qui effectue automatiquement le routage

des deacutependances de donneacutees inter-processeurs et lacreacuteation et la planification des opeacuterations decommunication sur le meacutedia du graphe drsquoarchitectureon utilise la commande AdequationDoIt

Cette commande creacutee un heuristique qui cherche agraveminimiser le chemin critique du graphe drsquoalgorithme

Equipe Systegraveme Robotiseacute de ProductionGeacuteneacuteration du code exeacutecuti

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4079

S y nd

e xV

5Le code exeacutecutif est la partie qui gegravere les ressources

mateacuterielles pour les allouer aux besoins de lrsquoalgorithmedrsquoapplication Les ressources agrave allouer sont

1 Les espaces meacutemoires des processeurs2 Le temps des seacutequences drsquoinstructions3 Le temps des meacutedia de communication

Gracircce agrave la meacutethodologie AAA et le logiciel Syndexlrsquoutilisateur est exempte drsquoeacutecrire du code pour geacuterer ces

ressources Donc par simple exeacutecution de la commandeAdequationGenExec un code distribueacute pour chaque processeur est automatiquement geacuteneacutereacute Ce code est en

fait un exeacutecutif geacuteneacutereacute sur mesure pour lrsquoalgorithme etlrsquoarchitecture

Equipe Systegraveme Robotiseacute de ProductionGeacuteneacuteration du code exeacutecuti

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4179

S y nd

e xV5

Pour chaque processeur de lrsquoarchitecture un fichier

source macro-exeacutecutif m4 avec le mecircme nom estgeacuteneacutereacute plus un macro-makefile ayant le mecircme nom quecelui de lrsquoapplication Chacun de ces fichiers doit ecirctre

transcrit par le macro-processeur GNU M4 (assembleurC) Cette transcription deacutepend de plusieurs fichiers

1 Fichier syndexm4x qui deacutefini les macrosgeacuteneacuteriques de syndex2 Fichier processorTypem4x qui deacutefini les macros

de bas niveau du processeur3 Fichier applicationNamem4x qui deacutefini les macros

speacutecifiques agrave lrsquoapplication

4 Fichier mediaTypem4x qui deacutefini les macros decommunication de bas niveau du type de media

Equipe Systegraveme Robotiseacute de ProductionCreacuteat on rsquoapp cat on

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4279

S y nd

e xV5 Arborescence des reacutepertoires Rep_travail

Applicationmacros

~rtai

Eacutevolution de lrsquoapplication

Phase 1

Edition des macros(C ou Assembleur)

+GNUmakefile

Phase 2

Edition du graphe

(Algorithme amp

Architecteure)

Phase 3

Compilation amp Exeacutecution

Equipe Systegraveme Robotiseacute de ProductionSeacutequence de compilation de Synde

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4379

S y nd

e xV5

Equipe Systegraveme Robotiseacute de Production Plan

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4479

S y nd

e xV5

bull Introduction

bull Meacutethodologie AAA

bull Installation

bull Utilisation du logiciel Syndex

bull Macros

bull LinuxIO un interface CC++ avec SynDEx

bull Exemple drsquoapplication Robuter-ULM

Equipe Systegraveme Robotiseacute de Production

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4579

S y nd

e xV5

Macros Macros

bull Deacutefinition

bull Types de macros

bull Carte Robosoft MPC555

bull Macros Geacuteneacuterique MPC555

bull Macros speacutecifique Robosoftbull Macros de Communication

bull Macros drsquoapplicationbull Structure du fichier Macro

Equipe Systegraveme Robotiseacute de Production Deacutefinition

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4679

S y nd

e xV5

Un macro-processeur est un programme qui consommeen entreacutee une chaicircne de caractegraveres (texte source) la

traite seacutequentiellement en substituant chaque sous-chaicircne qursquoil reconnaicirct (Appel de macro) par unechaicircne correspondante de substitution ( Deacutefinition de

macro) qursquoil traite agrave nouveau jusqursquoagrave ce qursquoil nrsquo y ait plus de substitution possible et qui produit en sortie lachaicircne de caractegraveres traiteacutee

Equipe Systegraveme Robotiseacute de Productionypes e macrosL diffeacute t di ti t d d

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4779

S y nd

e xV5

Les diffeacuterents macros se distinguent en deux grandes

classes bull Macros geacuteneacuteriques

en geacuteneacuteral ceux sont des macros non destineacutes agraveecirctre utiliser directement par lrsquointerface syndexmais plutocirct utiliseacutees pour la programmation

drsquoautres macros (macros MPC555)bull Macros utilisateurs

macros utiliseacutes directement par syndex ils sontspeacutecifiques agrave lrsquoapplication (macros decommunication macros speacutecifiques robosoft

macros speacutecifiques agrave lrsquoapplication)

Equipe Systegraveme Robotiseacute de ProductionCarte Robosoft MPC555La carte Robosoft MPC555 est conccedilue pour la commande de robot de veacutehicule

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4879

S y nd

e xV5

(1) Connecteur du chip MPC555(2) Alimentation continue(3) Interface BDM (Basic Debug Interface)(4) Entreacute Analogique (Joystickhellip)(5) EntreacuteSortie logiques(6) Ligne seacuterie Synchrone (Codeur absolu)(7) Ligne seacuterie Asynchrone (Port 0)

(8) Ligne seacuterie Asynchrone (Port 1)(9) Connecteur du bus CAN (Port 0)(10) Connecteur du bus CAN (Port 1)(11) Axe 1(13) Axe 2(14) Axe 3(15) Axe 4

La carte Robosoft MPC555 est conccedilue pour la commande de robot de veacutehiculeeacutelectrique ou toute autre machine Elle permet de commander un axe gracircce agrave

lrsquoajout drsquoune carte fille le controcircle srsquoeacutetend jusqursquoagrave 4 axesCette carte est baseacutee sur le microcontrocircleur MPC555 32-bit de MotorolaElle peut opeacuterer agrave une freacutequence

de 40 MHz Divers signauxlogique et analogique peuventecirctre utiliser pour lrsquoacquisition deet la commande de mateacuteriel Les

sorties disponibles peuvent ecirctreanalogique ou PWMOn y trouve

Equipe Systegraveme Robotiseacute de ProductionArchitecture du MPC555

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4979

S y nd

e xV5

Equipe Systegraveme Robotiseacute de Productionaract r st ques u

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5079

S y nd

e xV5

Equipe Systegraveme Robotiseacute de Productionacros n r quesbull GPIO (General-Purpose InputOutput)

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5179

S y nd

e xV5

GPIO (General Purpose InputOutput)ce macro utilise le module USIU qui lui fourni 64 pins pour desentreacuteessorties numeacuteriques ordinaires (IO de la carte Robosoft lirelrsquoeacutetat de la pince envoi de commande agrave la pince lire les alarmes)

bull QADC (Queued Analog to Digital Converter)en utilisant le module QADC ce macro permet la conversion drsquounsignal analogique en entreacutee en un signal numeacuterique multi-niveaux(lire les donneacutees du capteur drsquoeacuteffort du joystick)

bull MIOS (Modular InputOutput System)Le module MIOS fourni 16 pins drsquoES numeacuteriques Sur la carte deRobosoft tous les pins sont en sortie Les 16 pins sont reacutepartiscomme suit

utilisateurs reacuteserveacutes

les pins de 0 agrave 11 sont reacuteserveacutes car ils sont preacutevus agrave ecirctre utiliseacutes pour unmateacuteriel particulier Mais si ce mateacuteriel nrsquoest pas utiliseacute lrsquoutilisateur peut lesutiliser librement

15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

Equipe Systegraveme Robotiseacute de ProductionMacros Geacuteneacuter ques MPC55

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5279

S y nd

e xV5

bull PWM (Pulse width Modulation)utilise le module MIOS (pins de 4-7 pour la direction des moteurset de 8-11 pour la validation) pour la commande des actionneursnumeacuteriques en PWM

bull TPU (Time Processor Units)les macros lieacutes agrave ce module permettent la lecture des encodeurs

increacutementauxbull QSPI (Queued Serial Peripheral Interface)

ce module fait partie du module QSMCM et les macros lieacutes servent

agrave son initialisation pour une communication avec du mateacuterielsexternes via le bus seacuterie synchrone

Equipe Systegraveme Robotiseacute de ProductionMacros Geacuteneacuter ques MPC55

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5379

S y nd

e x

V5 bull Serial port support (Polling implementation)

le MPC555 comprend dans le module QSMCM une interface decommunication seacuterie SCI qui permet la communication avec dumateacuteriels externes via un bus seacuterie asynchrone Plusieurs macros

sont lieacutes agrave cette interface pour initialiser et eacutetablir la communicationbull Serial port support (interrupt handling implementation)

pour la mecircme interface SCI du module QSMCM pour cette

meacutethode drsquoimpleacutementation les macros lieacutes initialisent et eacutetablissentla communication en mode par interruption ce qui permet dedeacutetecter lrsquoarriveacutee des donneacutees sur le port seacuterie au lieu de le scruter

en permanence

tous ces macros on les retrouvent dans le fichier 555m4x

Equipe Systegraveme Robotiseacute de ProductionMacros Speacutec ques Ro oso tles macros suivants sont deacutedieacutes agrave la carte de Robosoft MPC555

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5479

S y nd

e x

V5

bull Initialisation de la carte Robosoftmain_ini_() macro ne doit pas ecirctre utiliser par les programmateursdu fait qursquoelle sert qursquoagrave initialiser la carte robosoft Macro interne agrave

syndex dont lrsquoappel est automatique lors de geacuteneacuteration drsquoexeacutecutifMPC555

bull DAC (Digital to Analog Converter)

macro permet lrsquoutilisation du convertisseur de carte robosoft via lemodule MIOs en utilisant les pins de 0 agrave 2

bull LED (on-bord LED interface)

macro permet la gestion de la LED de la carte robosoft connecteacuteeau module QSPI (pin PCS1)

bull SPI absolute encoder

macro permet lrsquoutilisation lrsquointerface du codeur absolu de la carterobosoft connecteacute au module QSPI

Equipe Systegraveme Robotiseacute de ProductionMacros Speacutec ques Ro oso tbull Motor amplifier direction

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5579

S y nd

e x

V5

Motor amplifier directionmacro qui permet de geacuterer la direction des moteurs

bull Motor power amplifier validationles moteurs embarqueacutes sur les robots sont eacutequipeacutes de freins

eacutelectriquement commandable Ce macro permet drsquoenvoyer unsignal drsquoinhibition pour deacutebloquer les freins

bull Watch dog

pour des raisons de seacutecuriteacute un meacutecanisme mateacuteriel que robosofta ajouteacute sur la carte Ce watch-dog vise agrave stopper lrsquoactiviteacute dumoteur en cas ougrave le programme plante Le watch est impleacutementeacute

comme un time-out mateacuteriel Srsquoil nrsquoest pas rafraicircchi peacuteriodiquement il transmet un signal de sortie ce qui enlegraveve lavalidation de lrsquoamplificateur de puissance donc lrsquoarrecirct dumouvement

ces macros se trouvent dans le fichier RSBm4x

Equipe Systegraveme Robotiseacute de Production

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5679

S y nd

e x

V5

Macros de Communicationchaque meacutedia de communication (bus CAN ) est une ressourceseacutequentielle ougrave les transferts de donneacutees entre processeurs doiventsuivre un certain ordre Donc ce macro de communication sert agravedeacutefinir cet ordre et agrave identifier le protocole de communication lecodagedeacutecodage de lrsquoinformation et la synchronisation

on trouve ces macros dans le fichier CANm4x

Macros drsquoapplicationce genre de macros sont speacutecifique au mateacuteriel en question et aussiagrave lrsquoapplication en particulier Ce sont des macros utilisateurs

on trouve ces macros dans le fichier Application_namem4x

Equipe Systegraveme Robotiseacute de Production

section include (pour inclure drsquoautres fichiers macro agrave utiliseStructure du fichier macr

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5779

S y nd

e x

V5

section define (pour tous les macros utilisateurs)MGC lsquoINITrsquo (MGC Macro Generation Context variable)

divert (declaration) (deacutebut du macro)

(deacuteclaration des variables des meacutemoires et des csts

divert (o)

MGC lsquolooprsquocode en assembleur code en C

dnl (commentaires)

MGC lsquoENDrsquo dnl (fin de la macros)divert lsquo lsquo dnl

macros MPC555meacutemoire MPC555

constante MPC555

macros RTAImeacutemoire RTAI

constante RTAI

Equipe Systegraveme Robotiseacute de Production Plan

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5879

S y nd

e x

V5

bull Introduction

bull Meacutethodologie AAA

bull Installationbull Utilisation du logiciel Syndex

bull Macrosbull LinuxIO un interface CC++ avec SynDEx

bull Exemple drsquoapplication Robuter-ULM

Equipe Systegraveme Robotiseacute de Production

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5979

S y nd

e x

V5

LinuxIO LinuxIO une interface une interface

CC++ avecCC++ avec SynDExSynDEx

bull Principe de basebull Utilisation de linuxIO_ par syndex

bull Utilisation de linuxIO_ par un programmeCC++

Equipe Systegraveme Robotiseacute de ProductionPrincipe de baseSyndex fourni une interface graphique pour la conception

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6079

S y nd

e x

V5

Syndex fourni une interface graphique pour la conception

drsquoapplications Par contre des fois nous avons besoin drsquoautresfonctionnaliteacutes non disponibles donc il faut les creacuteer Cependantgeacuteneacuterer des macros pour syndex srsquoavegravere difficile pour certains du

fait qursquoil faut avoir une bonne connaissance de la programmation bas niveau Dans ce cas lrsquoutilisation de linux_IO trouve sa placedans un contexte particulier interfacer des applications CC++utilisateurs avec des applications embarqueacutees temps reacuteeldeacuteveloppeacutees sous syndex

Par rapport agrave ce contexte de programmation lrsquoorganisation du

deacuteveloppement des applications est structureacutee en deux parties 1 Application haut niveau

2 Application bas niveau

Equipe Systegraveme Robotiseacute de ProductionPrincipe de base

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6179

S y nd

e x

V5

En reacutesumeacute lrsquoapplicationutilisateur contient une

partie haut niveau enCC++ et une partie basniveau sous syndex avecun eacutechange de donneacuteesentre les deux partie en

utilisant la couche RTAIde linux

Equipe Systegraveme Robotiseacute de Production pp cat on aut n veauOn entend application haut

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6279

S y nd

e x

V5

niveau tout programmecomme la planification detrajectoires strateacutegies de

navigation etc hellipLrsquoeacutechange de donneacutees sefait par le biais desmeacutemoires partageacutees quifont parti du noyau RTAI

et de lrsquoespace utilisateursde Linux

Toute ressource preacutesente sur la carte Robosoft peutecirctre partageacutee sans aune restriction

Equipe Systegraveme Robotiseacute de Production pp cat on as n veauUne application bas niveau

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6379

S y nd

e x

V5

Une application bas niveau

est un programme conccedilusous syndex comme lacommande des moteurs la

lecture des capteurs etc hellipLes ressources mateacuteriellessont controcircler par plusieurs

cartes MPC555 Ces cartessrsquoeacutechangent des donneacuteesvia le bus CAN Donc ES

est prise en charge par lasource logicielle deacutedieacutee quisrsquoexeacutecute dans les cartes MPC555 puis la couche RTAI

est utiliseacute pour la mise agrave jour de meacutemoires partageacutees pour lrsquoespace utilisateurs linux drsquoeacutechange de donneacutees

Equipe Systegraveme Robotiseacute de ProductionUtilisation de linux_IO par syndex

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6479

S y nd

e x

V5

Equipe Systegraveme Robotiseacute de ProductionUtilisation de linux_IO par syndex

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6579

S y nd

e x

V5

Equipe Systegraveme Robotiseacute de Production

5

Utilisation de linux_IO par syndex

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6679

S y nd

e x

V5

Degraves que la conception de lrsquoapplication sous syndex esttermineacutee et apregraves compilation (AdequationDo it +GenExec) un fichier drsquoentecircte sous le nom de linioh est

automatiquement geacuteneacutereacute Ce fichier contient lesinformations neacutecessaires pour acceacuteder aux entreacutees enlecture et aux sorties en eacutecriture des opeacuterations linuxIO_

inseacutereacutees dans le graphe drsquoalgorithme Le contenu de cefichier est organiseacute en plusieurs parties une pour chaqueopeacuteration linux_IO preacutesente dans le graphe

Equipe Systegraveme Robotiseacute de Production

5

Utilisation de linux_IO par syndex linioh auto-generated C users API frontend

C i h b f 2001 i i i b f f

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6779

S y nd

e x

V5 Copyright Robosoft 2001 Pierre Pomiers ltpierrerobosoftfrgt

LINUX IO shared memory data segments

define SEG0_BASE 0x10000typedef struct

int js_spd_o0

int js_str_o0

int enc_R_o0int enc_L_o0

double odo_X_o0

double odo_Y_o0

double odo_T_o0int spd_R_o0

int spd_L_o0

int time

unsigned char sem shm_seg0_def

Nom du segment de meacutemoire partageacutee pour notre opeacuteration linuxIO_

7 signaux drsquoentreacutees Ces valeurs sonten lecture et sont peacuteriodiquementrafraicircchies par RTAI

2 signaux de sorties Ces valeurs sonten eacutecriture et sont peacuteriodiquementrafraicircchies par RTAI

Equipe Systegraveme Robotiseacute de Production

5

Crsquoest une eacutetape tregraves facile il suffit drsquoinclure le fichier drsquoentecirctelinio h dans le code du fichier en CC++ comme suit

Utilisation de linuxIO_ par un programme CC+

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6879

S y nd

e x

V5 linioh dans le code du fichier en CC++ comme suit

include linioh

include ltrtai_shmhgt

static shm_seg0_def seg0

shm_seg0_def robot

seg0 = rtai_malloc (SEG0_BASE sizeof (shm_seg0_def))

if (seg0-gtsem = 0) bcopy (seg0 amprobot sizeof (shm_seg0_def))helliphelliphellip

helliphelliphellip bcopy (amprobot seg0 sizeof (shm_seg0_def))helliphelliphelliphelliphelliphellip

rtai_free (SEG0_BASE seg0)

fichier drsquoentecircte de la meacutemoire partageacutee fourni dans la couche RTAI de linux

Initialisation du segment SEG0_BASE Allocation de lameacutemoire pointeacutee

par seg0

Lecture des donneacutees provenant du bas

niveau

Mise agrave jours du segment de meacutemoire partageacutee

Libeacuterer le segment de meacutemoire alloueacute

Equipe Systegraveme Robotiseacute de Production

5

Plan

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6979

S y nd e x

V5

bull Introductionbull Meacutethodologie AAA

bull Installationbull Utilisation du logiciel Syndex

bull Macrosbull LinuxIO un interface CC++ avec SynDEx

bull Exemple drsquoapplication Robuter-ULM

Equipe Systegraveme Robotiseacute de Production

V5

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7079

S y nd e x

V5

Exemple dapplication Exemple dapplication Robuter Robuter--ULM ULM

Equipe Systegraveme Robotiseacute de Production

V5

Description Robuter-ULMbull Base mobile (2-RM 2-RF)

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7179

S y nd e x

V

bull Bras ultra-leacuteger 6 axesbull Ceinture 24 capteurs US

bull Capteur drsquoefforts 6 axes

bull Cameacutera CCD monochromeavec carte drsquoacquisition

bull PC embarqueacute MMX 233

bull OS linux redhat 61 avecRTAI V-13

bull 3 bouton drsquoarrecirct drsquourgence

bull 4 batteries 48 VDC 4 X12V 60 Ah

bull Entreacutee Joystick

bull Liaison Ethernet sans fil

Le manipulateur mobile Robuter-ULM comprend

Equipe Systegraveme Robotiseacute de Production

V5

Base Mobilebull dimension

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7279

S y nd e x

V

1025 mm de longueur 680 mm de largueur et 44 cm de hauteurbull Poids environ 150 kg avec les batteriesbull charge jusqursquoagrave 120 kg

bull vitesse de 5cms agrave 125 msbull Moteurs 2 X 300 W DC 48 VDCbull orientation par diffeacuterence de vitesse

bull Preacutecision Position par encodeurs optiquesbull Deux roues motrices diffeacuterentielles et de deux roues follesbull Drsquoune ceinture de 24 capteurs Ultrasons

bull Une carte MPC555 de Robosoft pour le controcircle des deuxmoteurs DC des 2 rouesbull Un systegraveme drsquoodomeacutetrie qui donne la position relative du robot

par rapport agrave son repegravere

Equipe Systegraveme Robotiseacute de Production

V5

bull dimension Faute de documentation

Bras U tra- eacuteger

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7379

S y nd e x

V Faute de documentation

bull Poids moins de 20 kgbull charge 2 kgbull Moteurs 6 moteurs DC

bull gripper pince eacutelectrique 2 doigtsbull Reacutepeacutetabiliteacute +- 1mmbull 3 carte MPC555 de Robosoft lrsquoune pour le capteur drsquoeffort et les

deux autres pour les 6 moteurs + moteur de la pincebull Position encodeur increacutemental

1 2 3 4 5 6Axisrange

plusmn90deg 0-90deg plusmn80deg plusmn100deg plusmn90deg plusmn110deg

vitesse 180degs 180degs 180degs 180degs 180degs 180degs

Equipe Systegraveme Robotiseacute de Production

V5

rc tecture ar ware

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7479

S y nd e x

V

Equipe Systegraveme Robotiseacute de Production

V5

Pro eacutemat quePlusieurs applications peuvent ecirctre impleacutementeacutees sur le robot

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7579

S y nd e x

V

Cependant il faut faire la diffeacuterence entre les applications quidemande lrsquoutilisation de syndex et les applications qui neneacutecessite qursquoune programmation en CC++ Agrave titre drsquoexemple

bull Localisationbull Commande en position

bull Commande en forcebull Navigation

bull Geacuteneacuteration de trajectoire

bull Vision

Equipe Systegraveme Robotiseacute de Production

V5 bull Pince eacutelectrique (TOR)

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7679

S y nd e x

Vq ( )

bull Pince possegravede des ES Logiques

Notre application consiste agrave

bull Recevoir lrsquoeacutetat de la pince (fermeacutee ouverte )

bull Envoyer une commande vers la pince

Capture

drsquoinformation

Open

Close

CommandeMeacutemoire

Partageacutee

Actionneur

Pince Prise de deacutecision Pince

Equipe Systegraveme Robotiseacute de Production

V5

Sc eacutema eacute ectr que

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7779

S y nd e x

Equipe Systegraveme Robotiseacute de Production

V5

Conclusion

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7879

S y nd e x bull Introduction

bull Meacutethodologie AAA

bull Installationbull Utilisation du logiciel Syndex

bull Macrosbull LinuxIO un interface CC++ avec SynDEx

bull Exemple drsquoapplication Robuter-ULM

Equipe Systegraveme Robotiseacute de Production

V5

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7979

S y nd e x

Questions

Page 28: Cours Syndex

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 2879

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Utilisation de l interface

Algorithm

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 2979

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Algorithm

Lrsquoalgorithme est speacutecifieacute comme un graphe orienteacute ougravebull chaque sommet est une opeacuteration qui calcule les sorties

des entreacutees agrave chaque opeacuteration doit correspondre uneseacutequence drsquoinstructions compileacutee seacutepareacutement

bull Chaque arc est une deacutependance de donneacutees entre deux

opeacuterations (ou plus dans le cas de diffusion) c-a-d lasortie drsquoune opeacuteration est lrsquoentreacutee de lrsquoautre opeacuteration(ou de plusieurs autres opeacuterations) une entreacutee peut ecirctreconnecteacutee seulement agrave une sortie de mecircme type dedonneacutees

gor t m

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3079

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

gor t mon distingue 4 types de sommets

Algorithm

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3179

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Algorithmbull Le sommet function possegravede au moins une entreacutee et

une sortie crsquoest une opeacuteration agrave libre effet qui calculeses sorties uniquement agrave partir de ses entreacutees (c-a-d niagrave partir des variables globales ni agrave partir des

preacuteceacutedentes valeurs de ces entreacutees)bull Le sommet extio permet lrsquoacquisitionlrsquoeacutecriture des

entreacuteessorties on distingue trois cas

1 Capteur sans entreacutee agrave chaque reacuteaction sa sortierepreacutesente la valeur lue du capteur

2 Actionneur sans sortie agrave chaque reacuteaction ilenvoi son entreacutee agrave lrsquoactionneur

3 Linux_IO ces des meacutemoires partageacutees qui

permettent le transfert de donneacutees entre syndexet un langage eacutevolueacute

E i S egrave R b i eacute d P d i Algorithm

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3279

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Algorithm

bull Le sommet memory possegravede uniquement uneentreacutee et une sortie crsquoest une opeacuteration agrave effetunique qui met la sortie degraves la premiegravere reacuteaction

agrave une valeur initiale calculeacutee auparavant et puisla sortie de la prochaine reacuteaction nrsquoest que

lrsquoentreacutee de la preacuteceacutedente reacuteactionbull Le sommet constant ne possegravede aucune entreacutee

il calcule sa sortie une seule fois avant la premiegravere reacuteaction puis la sortie demeure la mecircme pour chaque reacuteaction

E i S tegrave R b ti eacute d P d ti Algorithm

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3379

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

AlgorithmPour lrsquoalgorithme chaque sommet est caracteacuteriseacute par

bull Son type geacuteneacuterique (function extio memory constant)bull Un nom unique (tout les sommets doivent avoir des

noms diffeacuterents)bull Son type identifiant sa seacutequence drsquoinstructionsassocieacute

bull Sa liste drsquoarguments ougrave chaque argument est speacutecifieacute par bull Le nombre drsquoentreacuteesortiebull Le type de donneacuteesbull Le nom (tout les arguments doivent avoir des noms

diffeacuterents)

Equipe Systegraveme Robotiseacute de Production Architecture

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3479

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

ArchitectureLrsquoarchitecture est speacutecifieacutee comme un graphe non orienteacute

ougrave bullChaque sommet est une ressource seacutequentielle il y adeux types de sommets

bull processeur crsquoest une ressource de calcul enmesure drsquoexeacutecuter seacutequentiellement les opeacuterationsdrsquoun algorithme il pourrait ecirctre un processeur ou

un circuit inteacutegreacute speacutecialiseacutebull meacutedia crsquoest une ressource de communicationen mesure drsquoexeacutecuter seacutequentiellement un transfertde donneacutees entre les meacutemoires des processeurs quilui sont connecteacutes

bull chaque arc est une connexion bidirectionnelle entreun processeur et un meacutedia

Equipe Systegraveme Robotiseacute de Production Architecture

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3579

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

ArchitecturePour lrsquoarchitecture chaque sommet est caracteacuteriseacute par

bull Un nom uniquebullSon type (processeur or meacutedia)bull Son type identifiant caracteacuteristiques mateacuterielles

bull Sa liste de connecteurs ougrave chaque connecteur est speacutecifieacute par bull son type identifiant le type de meacutedia agrave qui il peut ecirctreconnecteacute

bullUn nom

Equipe Systegraveme Robotiseacute de ProductionCaracteacuter st que

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3679

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Caracteacuter st que Nous distinguons deux cateacutegories de caracteacuteristiques lrsquoune relative

aux opeacuterations et lrsquoune agrave la communication 1 Comment speacutecifier les caracteacuteristiques des opeacuterations sous le menu AdequationAlOp_ArOp on obtient une boite

de dialogue avec

une liste de toutles types de

processeurs et

pour chaque processeur uneliste de tout les

types drsquoopeacuterationsqui peut lesexeacutecuter avec ladureacutee drsquoexeacutecutioncorrespondante

Equipe Systegraveme Robotiseacute de ProductionCaracteacuteristique

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3779

q p y

S y nd

e xV

5

q2 Comment speacutecifier les caracteacuteristiques de communication

sous le menu AdequationAlIO_ArIO on obtient une boitede dialogue avec une liste de tout les types de meacutedia et

pour chaque meacutedia une liste de tout les types de donneacutees

qui peut transfeacuterer avec la dureacutee de transfertcorrespondante

Equipe Systegraveme Robotiseacute de Production Contraintes

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3879

S y nd

e xV

5

Pour contraindre une opeacuteration agrave srsquoexeacutecuter sur un processeur donneacutee

1Seacutelectionner le(s) opeacuteration(s) agrave contraindre2 Seacutelectionner la commande AlgorithmSetConstraint3 Seacutelectionner le processeur qui doit exeacutecute les opeacuterationsseacutelectionneacutees

Pour enlever les contraintes seacutelectionner lrsquoopeacuteration puis exeacutecuterla commande AlgorithmDeleteConstraint

Pour voir sur quel processeur une opeacuteration est y contrainteseacutelectionner lrsquoopeacuteration puis exeacutecuter la commandeAlgorithmShowConstraint le processeur correspondant y sera

seacutelectionneacutePour voir toute les opeacuterations qui sont contraintes sur un processeurseacutelectionner le processeur puis exeacutecuter la commande

ArchitectureShowConstrained du menu les opeacuterationscorrespondantes y seront seacutelectionneacutees

Equipe Systegraveme Robotiseacute de Production A eacutequat o

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3979

S y nd

e xV

5

q

Pour construire le planificateur des opeacuterations dugraphe drsquoalgorithme sur les processeurs du graphedrsquoarchitecture qui effectue automatiquement le routage

des deacutependances de donneacutees inter-processeurs et lacreacuteation et la planification des opeacuterations decommunication sur le meacutedia du graphe drsquoarchitectureon utilise la commande AdequationDoIt

Cette commande creacutee un heuristique qui cherche agraveminimiser le chemin critique du graphe drsquoalgorithme

Equipe Systegraveme Robotiseacute de ProductionGeacuteneacuteration du code exeacutecuti

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4079

S y nd

e xV

5Le code exeacutecutif est la partie qui gegravere les ressources

mateacuterielles pour les allouer aux besoins de lrsquoalgorithmedrsquoapplication Les ressources agrave allouer sont

1 Les espaces meacutemoires des processeurs2 Le temps des seacutequences drsquoinstructions3 Le temps des meacutedia de communication

Gracircce agrave la meacutethodologie AAA et le logiciel Syndexlrsquoutilisateur est exempte drsquoeacutecrire du code pour geacuterer ces

ressources Donc par simple exeacutecution de la commandeAdequationGenExec un code distribueacute pour chaque processeur est automatiquement geacuteneacutereacute Ce code est en

fait un exeacutecutif geacuteneacutereacute sur mesure pour lrsquoalgorithme etlrsquoarchitecture

Equipe Systegraveme Robotiseacute de ProductionGeacuteneacuteration du code exeacutecuti

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4179

S y nd

e xV5

Pour chaque processeur de lrsquoarchitecture un fichier

source macro-exeacutecutif m4 avec le mecircme nom estgeacuteneacutereacute plus un macro-makefile ayant le mecircme nom quecelui de lrsquoapplication Chacun de ces fichiers doit ecirctre

transcrit par le macro-processeur GNU M4 (assembleurC) Cette transcription deacutepend de plusieurs fichiers

1 Fichier syndexm4x qui deacutefini les macrosgeacuteneacuteriques de syndex2 Fichier processorTypem4x qui deacutefini les macros

de bas niveau du processeur3 Fichier applicationNamem4x qui deacutefini les macros

speacutecifiques agrave lrsquoapplication

4 Fichier mediaTypem4x qui deacutefini les macros decommunication de bas niveau du type de media

Equipe Systegraveme Robotiseacute de ProductionCreacuteat on rsquoapp cat on

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4279

S y nd

e xV5 Arborescence des reacutepertoires Rep_travail

Applicationmacros

~rtai

Eacutevolution de lrsquoapplication

Phase 1

Edition des macros(C ou Assembleur)

+GNUmakefile

Phase 2

Edition du graphe

(Algorithme amp

Architecteure)

Phase 3

Compilation amp Exeacutecution

Equipe Systegraveme Robotiseacute de ProductionSeacutequence de compilation de Synde

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4379

S y nd

e xV5

Equipe Systegraveme Robotiseacute de Production Plan

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4479

S y nd

e xV5

bull Introduction

bull Meacutethodologie AAA

bull Installation

bull Utilisation du logiciel Syndex

bull Macros

bull LinuxIO un interface CC++ avec SynDEx

bull Exemple drsquoapplication Robuter-ULM

Equipe Systegraveme Robotiseacute de Production

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4579

S y nd

e xV5

Macros Macros

bull Deacutefinition

bull Types de macros

bull Carte Robosoft MPC555

bull Macros Geacuteneacuterique MPC555

bull Macros speacutecifique Robosoftbull Macros de Communication

bull Macros drsquoapplicationbull Structure du fichier Macro

Equipe Systegraveme Robotiseacute de Production Deacutefinition

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4679

S y nd

e xV5

Un macro-processeur est un programme qui consommeen entreacutee une chaicircne de caractegraveres (texte source) la

traite seacutequentiellement en substituant chaque sous-chaicircne qursquoil reconnaicirct (Appel de macro) par unechaicircne correspondante de substitution ( Deacutefinition de

macro) qursquoil traite agrave nouveau jusqursquoagrave ce qursquoil nrsquo y ait plus de substitution possible et qui produit en sortie lachaicircne de caractegraveres traiteacutee

Equipe Systegraveme Robotiseacute de Productionypes e macrosL diffeacute t di ti t d d

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4779

S y nd

e xV5

Les diffeacuterents macros se distinguent en deux grandes

classes bull Macros geacuteneacuteriques

en geacuteneacuteral ceux sont des macros non destineacutes agraveecirctre utiliser directement par lrsquointerface syndexmais plutocirct utiliseacutees pour la programmation

drsquoautres macros (macros MPC555)bull Macros utilisateurs

macros utiliseacutes directement par syndex ils sontspeacutecifiques agrave lrsquoapplication (macros decommunication macros speacutecifiques robosoft

macros speacutecifiques agrave lrsquoapplication)

Equipe Systegraveme Robotiseacute de ProductionCarte Robosoft MPC555La carte Robosoft MPC555 est conccedilue pour la commande de robot de veacutehicule

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4879

S y nd

e xV5

(1) Connecteur du chip MPC555(2) Alimentation continue(3) Interface BDM (Basic Debug Interface)(4) Entreacute Analogique (Joystickhellip)(5) EntreacuteSortie logiques(6) Ligne seacuterie Synchrone (Codeur absolu)(7) Ligne seacuterie Asynchrone (Port 0)

(8) Ligne seacuterie Asynchrone (Port 1)(9) Connecteur du bus CAN (Port 0)(10) Connecteur du bus CAN (Port 1)(11) Axe 1(13) Axe 2(14) Axe 3(15) Axe 4

La carte Robosoft MPC555 est conccedilue pour la commande de robot de veacutehiculeeacutelectrique ou toute autre machine Elle permet de commander un axe gracircce agrave

lrsquoajout drsquoune carte fille le controcircle srsquoeacutetend jusqursquoagrave 4 axesCette carte est baseacutee sur le microcontrocircleur MPC555 32-bit de MotorolaElle peut opeacuterer agrave une freacutequence

de 40 MHz Divers signauxlogique et analogique peuventecirctre utiliser pour lrsquoacquisition deet la commande de mateacuteriel Les

sorties disponibles peuvent ecirctreanalogique ou PWMOn y trouve

Equipe Systegraveme Robotiseacute de ProductionArchitecture du MPC555

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4979

S y nd

e xV5

Equipe Systegraveme Robotiseacute de Productionaract r st ques u

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5079

S y nd

e xV5

Equipe Systegraveme Robotiseacute de Productionacros n r quesbull GPIO (General-Purpose InputOutput)

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5179

S y nd

e xV5

GPIO (General Purpose InputOutput)ce macro utilise le module USIU qui lui fourni 64 pins pour desentreacuteessorties numeacuteriques ordinaires (IO de la carte Robosoft lirelrsquoeacutetat de la pince envoi de commande agrave la pince lire les alarmes)

bull QADC (Queued Analog to Digital Converter)en utilisant le module QADC ce macro permet la conversion drsquounsignal analogique en entreacutee en un signal numeacuterique multi-niveaux(lire les donneacutees du capteur drsquoeacuteffort du joystick)

bull MIOS (Modular InputOutput System)Le module MIOS fourni 16 pins drsquoES numeacuteriques Sur la carte deRobosoft tous les pins sont en sortie Les 16 pins sont reacutepartiscomme suit

utilisateurs reacuteserveacutes

les pins de 0 agrave 11 sont reacuteserveacutes car ils sont preacutevus agrave ecirctre utiliseacutes pour unmateacuteriel particulier Mais si ce mateacuteriel nrsquoest pas utiliseacute lrsquoutilisateur peut lesutiliser librement

15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

Equipe Systegraveme Robotiseacute de ProductionMacros Geacuteneacuter ques MPC55

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5279

S y nd

e xV5

bull PWM (Pulse width Modulation)utilise le module MIOS (pins de 4-7 pour la direction des moteurset de 8-11 pour la validation) pour la commande des actionneursnumeacuteriques en PWM

bull TPU (Time Processor Units)les macros lieacutes agrave ce module permettent la lecture des encodeurs

increacutementauxbull QSPI (Queued Serial Peripheral Interface)

ce module fait partie du module QSMCM et les macros lieacutes servent

agrave son initialisation pour une communication avec du mateacuterielsexternes via le bus seacuterie synchrone

Equipe Systegraveme Robotiseacute de ProductionMacros Geacuteneacuter ques MPC55

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5379

S y nd

e x

V5 bull Serial port support (Polling implementation)

le MPC555 comprend dans le module QSMCM une interface decommunication seacuterie SCI qui permet la communication avec dumateacuteriels externes via un bus seacuterie asynchrone Plusieurs macros

sont lieacutes agrave cette interface pour initialiser et eacutetablir la communicationbull Serial port support (interrupt handling implementation)

pour la mecircme interface SCI du module QSMCM pour cette

meacutethode drsquoimpleacutementation les macros lieacutes initialisent et eacutetablissentla communication en mode par interruption ce qui permet dedeacutetecter lrsquoarriveacutee des donneacutees sur le port seacuterie au lieu de le scruter

en permanence

tous ces macros on les retrouvent dans le fichier 555m4x

Equipe Systegraveme Robotiseacute de ProductionMacros Speacutec ques Ro oso tles macros suivants sont deacutedieacutes agrave la carte de Robosoft MPC555

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5479

S y nd

e x

V5

bull Initialisation de la carte Robosoftmain_ini_() macro ne doit pas ecirctre utiliser par les programmateursdu fait qursquoelle sert qursquoagrave initialiser la carte robosoft Macro interne agrave

syndex dont lrsquoappel est automatique lors de geacuteneacuteration drsquoexeacutecutifMPC555

bull DAC (Digital to Analog Converter)

macro permet lrsquoutilisation du convertisseur de carte robosoft via lemodule MIOs en utilisant les pins de 0 agrave 2

bull LED (on-bord LED interface)

macro permet la gestion de la LED de la carte robosoft connecteacuteeau module QSPI (pin PCS1)

bull SPI absolute encoder

macro permet lrsquoutilisation lrsquointerface du codeur absolu de la carterobosoft connecteacute au module QSPI

Equipe Systegraveme Robotiseacute de ProductionMacros Speacutec ques Ro oso tbull Motor amplifier direction

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5579

S y nd

e x

V5

Motor amplifier directionmacro qui permet de geacuterer la direction des moteurs

bull Motor power amplifier validationles moteurs embarqueacutes sur les robots sont eacutequipeacutes de freins

eacutelectriquement commandable Ce macro permet drsquoenvoyer unsignal drsquoinhibition pour deacutebloquer les freins

bull Watch dog

pour des raisons de seacutecuriteacute un meacutecanisme mateacuteriel que robosofta ajouteacute sur la carte Ce watch-dog vise agrave stopper lrsquoactiviteacute dumoteur en cas ougrave le programme plante Le watch est impleacutementeacute

comme un time-out mateacuteriel Srsquoil nrsquoest pas rafraicircchi peacuteriodiquement il transmet un signal de sortie ce qui enlegraveve lavalidation de lrsquoamplificateur de puissance donc lrsquoarrecirct dumouvement

ces macros se trouvent dans le fichier RSBm4x

Equipe Systegraveme Robotiseacute de Production

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5679

S y nd

e x

V5

Macros de Communicationchaque meacutedia de communication (bus CAN ) est une ressourceseacutequentielle ougrave les transferts de donneacutees entre processeurs doiventsuivre un certain ordre Donc ce macro de communication sert agravedeacutefinir cet ordre et agrave identifier le protocole de communication lecodagedeacutecodage de lrsquoinformation et la synchronisation

on trouve ces macros dans le fichier CANm4x

Macros drsquoapplicationce genre de macros sont speacutecifique au mateacuteriel en question et aussiagrave lrsquoapplication en particulier Ce sont des macros utilisateurs

on trouve ces macros dans le fichier Application_namem4x

Equipe Systegraveme Robotiseacute de Production

section include (pour inclure drsquoautres fichiers macro agrave utiliseStructure du fichier macr

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5779

S y nd

e x

V5

section define (pour tous les macros utilisateurs)MGC lsquoINITrsquo (MGC Macro Generation Context variable)

divert (declaration) (deacutebut du macro)

(deacuteclaration des variables des meacutemoires et des csts

divert (o)

MGC lsquolooprsquocode en assembleur code en C

dnl (commentaires)

MGC lsquoENDrsquo dnl (fin de la macros)divert lsquo lsquo dnl

macros MPC555meacutemoire MPC555

constante MPC555

macros RTAImeacutemoire RTAI

constante RTAI

Equipe Systegraveme Robotiseacute de Production Plan

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5879

S y nd

e x

V5

bull Introduction

bull Meacutethodologie AAA

bull Installationbull Utilisation du logiciel Syndex

bull Macrosbull LinuxIO un interface CC++ avec SynDEx

bull Exemple drsquoapplication Robuter-ULM

Equipe Systegraveme Robotiseacute de Production

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5979

S y nd

e x

V5

LinuxIO LinuxIO une interface une interface

CC++ avecCC++ avec SynDExSynDEx

bull Principe de basebull Utilisation de linuxIO_ par syndex

bull Utilisation de linuxIO_ par un programmeCC++

Equipe Systegraveme Robotiseacute de ProductionPrincipe de baseSyndex fourni une interface graphique pour la conception

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6079

S y nd

e x

V5

Syndex fourni une interface graphique pour la conception

drsquoapplications Par contre des fois nous avons besoin drsquoautresfonctionnaliteacutes non disponibles donc il faut les creacuteer Cependantgeacuteneacuterer des macros pour syndex srsquoavegravere difficile pour certains du

fait qursquoil faut avoir une bonne connaissance de la programmation bas niveau Dans ce cas lrsquoutilisation de linux_IO trouve sa placedans un contexte particulier interfacer des applications CC++utilisateurs avec des applications embarqueacutees temps reacuteeldeacuteveloppeacutees sous syndex

Par rapport agrave ce contexte de programmation lrsquoorganisation du

deacuteveloppement des applications est structureacutee en deux parties 1 Application haut niveau

2 Application bas niveau

Equipe Systegraveme Robotiseacute de ProductionPrincipe de base

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6179

S y nd

e x

V5

En reacutesumeacute lrsquoapplicationutilisateur contient une

partie haut niveau enCC++ et une partie basniveau sous syndex avecun eacutechange de donneacuteesentre les deux partie en

utilisant la couche RTAIde linux

Equipe Systegraveme Robotiseacute de Production pp cat on aut n veauOn entend application haut

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6279

S y nd

e x

V5

niveau tout programmecomme la planification detrajectoires strateacutegies de

navigation etc hellipLrsquoeacutechange de donneacutees sefait par le biais desmeacutemoires partageacutees quifont parti du noyau RTAI

et de lrsquoespace utilisateursde Linux

Toute ressource preacutesente sur la carte Robosoft peutecirctre partageacutee sans aune restriction

Equipe Systegraveme Robotiseacute de Production pp cat on as n veauUne application bas niveau

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6379

S y nd

e x

V5

Une application bas niveau

est un programme conccedilusous syndex comme lacommande des moteurs la

lecture des capteurs etc hellipLes ressources mateacuteriellessont controcircler par plusieurs

cartes MPC555 Ces cartessrsquoeacutechangent des donneacuteesvia le bus CAN Donc ES

est prise en charge par lasource logicielle deacutedieacutee quisrsquoexeacutecute dans les cartes MPC555 puis la couche RTAI

est utiliseacute pour la mise agrave jour de meacutemoires partageacutees pour lrsquoespace utilisateurs linux drsquoeacutechange de donneacutees

Equipe Systegraveme Robotiseacute de ProductionUtilisation de linux_IO par syndex

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6479

S y nd

e x

V5

Equipe Systegraveme Robotiseacute de ProductionUtilisation de linux_IO par syndex

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6579

S y nd

e x

V5

Equipe Systegraveme Robotiseacute de Production

5

Utilisation de linux_IO par syndex

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6679

S y nd

e x

V5

Degraves que la conception de lrsquoapplication sous syndex esttermineacutee et apregraves compilation (AdequationDo it +GenExec) un fichier drsquoentecircte sous le nom de linioh est

automatiquement geacuteneacutereacute Ce fichier contient lesinformations neacutecessaires pour acceacuteder aux entreacutees enlecture et aux sorties en eacutecriture des opeacuterations linuxIO_

inseacutereacutees dans le graphe drsquoalgorithme Le contenu de cefichier est organiseacute en plusieurs parties une pour chaqueopeacuteration linux_IO preacutesente dans le graphe

Equipe Systegraveme Robotiseacute de Production

5

Utilisation de linux_IO par syndex linioh auto-generated C users API frontend

C i h b f 2001 i i i b f f

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6779

S y nd

e x

V5 Copyright Robosoft 2001 Pierre Pomiers ltpierrerobosoftfrgt

LINUX IO shared memory data segments

define SEG0_BASE 0x10000typedef struct

int js_spd_o0

int js_str_o0

int enc_R_o0int enc_L_o0

double odo_X_o0

double odo_Y_o0

double odo_T_o0int spd_R_o0

int spd_L_o0

int time

unsigned char sem shm_seg0_def

Nom du segment de meacutemoire partageacutee pour notre opeacuteration linuxIO_

7 signaux drsquoentreacutees Ces valeurs sonten lecture et sont peacuteriodiquementrafraicircchies par RTAI

2 signaux de sorties Ces valeurs sonten eacutecriture et sont peacuteriodiquementrafraicircchies par RTAI

Equipe Systegraveme Robotiseacute de Production

5

Crsquoest une eacutetape tregraves facile il suffit drsquoinclure le fichier drsquoentecirctelinio h dans le code du fichier en CC++ comme suit

Utilisation de linuxIO_ par un programme CC+

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6879

S y nd

e x

V5 linioh dans le code du fichier en CC++ comme suit

include linioh

include ltrtai_shmhgt

static shm_seg0_def seg0

shm_seg0_def robot

seg0 = rtai_malloc (SEG0_BASE sizeof (shm_seg0_def))

if (seg0-gtsem = 0) bcopy (seg0 amprobot sizeof (shm_seg0_def))helliphelliphellip

helliphelliphellip bcopy (amprobot seg0 sizeof (shm_seg0_def))helliphelliphelliphelliphelliphellip

rtai_free (SEG0_BASE seg0)

fichier drsquoentecircte de la meacutemoire partageacutee fourni dans la couche RTAI de linux

Initialisation du segment SEG0_BASE Allocation de lameacutemoire pointeacutee

par seg0

Lecture des donneacutees provenant du bas

niveau

Mise agrave jours du segment de meacutemoire partageacutee

Libeacuterer le segment de meacutemoire alloueacute

Equipe Systegraveme Robotiseacute de Production

5

Plan

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6979

S y nd e x

V5

bull Introductionbull Meacutethodologie AAA

bull Installationbull Utilisation du logiciel Syndex

bull Macrosbull LinuxIO un interface CC++ avec SynDEx

bull Exemple drsquoapplication Robuter-ULM

Equipe Systegraveme Robotiseacute de Production

V5

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7079

S y nd e x

V5

Exemple dapplication Exemple dapplication Robuter Robuter--ULM ULM

Equipe Systegraveme Robotiseacute de Production

V5

Description Robuter-ULMbull Base mobile (2-RM 2-RF)

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7179

S y nd e x

V

bull Bras ultra-leacuteger 6 axesbull Ceinture 24 capteurs US

bull Capteur drsquoefforts 6 axes

bull Cameacutera CCD monochromeavec carte drsquoacquisition

bull PC embarqueacute MMX 233

bull OS linux redhat 61 avecRTAI V-13

bull 3 bouton drsquoarrecirct drsquourgence

bull 4 batteries 48 VDC 4 X12V 60 Ah

bull Entreacutee Joystick

bull Liaison Ethernet sans fil

Le manipulateur mobile Robuter-ULM comprend

Equipe Systegraveme Robotiseacute de Production

V5

Base Mobilebull dimension

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7279

S y nd e x

V

1025 mm de longueur 680 mm de largueur et 44 cm de hauteurbull Poids environ 150 kg avec les batteriesbull charge jusqursquoagrave 120 kg

bull vitesse de 5cms agrave 125 msbull Moteurs 2 X 300 W DC 48 VDCbull orientation par diffeacuterence de vitesse

bull Preacutecision Position par encodeurs optiquesbull Deux roues motrices diffeacuterentielles et de deux roues follesbull Drsquoune ceinture de 24 capteurs Ultrasons

bull Une carte MPC555 de Robosoft pour le controcircle des deuxmoteurs DC des 2 rouesbull Un systegraveme drsquoodomeacutetrie qui donne la position relative du robot

par rapport agrave son repegravere

Equipe Systegraveme Robotiseacute de Production

V5

bull dimension Faute de documentation

Bras U tra- eacuteger

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7379

S y nd e x

V Faute de documentation

bull Poids moins de 20 kgbull charge 2 kgbull Moteurs 6 moteurs DC

bull gripper pince eacutelectrique 2 doigtsbull Reacutepeacutetabiliteacute +- 1mmbull 3 carte MPC555 de Robosoft lrsquoune pour le capteur drsquoeffort et les

deux autres pour les 6 moteurs + moteur de la pincebull Position encodeur increacutemental

1 2 3 4 5 6Axisrange

plusmn90deg 0-90deg plusmn80deg plusmn100deg plusmn90deg plusmn110deg

vitesse 180degs 180degs 180degs 180degs 180degs 180degs

Equipe Systegraveme Robotiseacute de Production

V5

rc tecture ar ware

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7479

S y nd e x

V

Equipe Systegraveme Robotiseacute de Production

V5

Pro eacutemat quePlusieurs applications peuvent ecirctre impleacutementeacutees sur le robot

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7579

S y nd e x

V

Cependant il faut faire la diffeacuterence entre les applications quidemande lrsquoutilisation de syndex et les applications qui neneacutecessite qursquoune programmation en CC++ Agrave titre drsquoexemple

bull Localisationbull Commande en position

bull Commande en forcebull Navigation

bull Geacuteneacuteration de trajectoire

bull Vision

Equipe Systegraveme Robotiseacute de Production

V5 bull Pince eacutelectrique (TOR)

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7679

S y nd e x

Vq ( )

bull Pince possegravede des ES Logiques

Notre application consiste agrave

bull Recevoir lrsquoeacutetat de la pince (fermeacutee ouverte )

bull Envoyer une commande vers la pince

Capture

drsquoinformation

Open

Close

CommandeMeacutemoire

Partageacutee

Actionneur

Pince Prise de deacutecision Pince

Equipe Systegraveme Robotiseacute de Production

V5

Sc eacutema eacute ectr que

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7779

S y nd e x

Equipe Systegraveme Robotiseacute de Production

V5

Conclusion

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7879

S y nd e x bull Introduction

bull Meacutethodologie AAA

bull Installationbull Utilisation du logiciel Syndex

bull Macrosbull LinuxIO un interface CC++ avec SynDEx

bull Exemple drsquoapplication Robuter-ULM

Equipe Systegraveme Robotiseacute de Production

V5

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7979

S y nd e x

Questions

Page 29: Cours Syndex

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 2979

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Algorithm

Lrsquoalgorithme est speacutecifieacute comme un graphe orienteacute ougravebull chaque sommet est une opeacuteration qui calcule les sorties

des entreacutees agrave chaque opeacuteration doit correspondre uneseacutequence drsquoinstructions compileacutee seacutepareacutement

bull Chaque arc est une deacutependance de donneacutees entre deux

opeacuterations (ou plus dans le cas de diffusion) c-a-d lasortie drsquoune opeacuteration est lrsquoentreacutee de lrsquoautre opeacuteration(ou de plusieurs autres opeacuterations) une entreacutee peut ecirctreconnecteacutee seulement agrave une sortie de mecircme type dedonneacutees

gor t m

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3079

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

gor t mon distingue 4 types de sommets

Algorithm

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3179

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Algorithmbull Le sommet function possegravede au moins une entreacutee et

une sortie crsquoest une opeacuteration agrave libre effet qui calculeses sorties uniquement agrave partir de ses entreacutees (c-a-d niagrave partir des variables globales ni agrave partir des

preacuteceacutedentes valeurs de ces entreacutees)bull Le sommet extio permet lrsquoacquisitionlrsquoeacutecriture des

entreacuteessorties on distingue trois cas

1 Capteur sans entreacutee agrave chaque reacuteaction sa sortierepreacutesente la valeur lue du capteur

2 Actionneur sans sortie agrave chaque reacuteaction ilenvoi son entreacutee agrave lrsquoactionneur

3 Linux_IO ces des meacutemoires partageacutees qui

permettent le transfert de donneacutees entre syndexet un langage eacutevolueacute

E i S egrave R b i eacute d P d i Algorithm

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3279

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Algorithm

bull Le sommet memory possegravede uniquement uneentreacutee et une sortie crsquoest une opeacuteration agrave effetunique qui met la sortie degraves la premiegravere reacuteaction

agrave une valeur initiale calculeacutee auparavant et puisla sortie de la prochaine reacuteaction nrsquoest que

lrsquoentreacutee de la preacuteceacutedente reacuteactionbull Le sommet constant ne possegravede aucune entreacutee

il calcule sa sortie une seule fois avant la premiegravere reacuteaction puis la sortie demeure la mecircme pour chaque reacuteaction

E i S tegrave R b ti eacute d P d ti Algorithm

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3379

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

AlgorithmPour lrsquoalgorithme chaque sommet est caracteacuteriseacute par

bull Son type geacuteneacuterique (function extio memory constant)bull Un nom unique (tout les sommets doivent avoir des

noms diffeacuterents)bull Son type identifiant sa seacutequence drsquoinstructionsassocieacute

bull Sa liste drsquoarguments ougrave chaque argument est speacutecifieacute par bull Le nombre drsquoentreacuteesortiebull Le type de donneacuteesbull Le nom (tout les arguments doivent avoir des noms

diffeacuterents)

Equipe Systegraveme Robotiseacute de Production Architecture

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3479

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

ArchitectureLrsquoarchitecture est speacutecifieacutee comme un graphe non orienteacute

ougrave bullChaque sommet est une ressource seacutequentielle il y adeux types de sommets

bull processeur crsquoest une ressource de calcul enmesure drsquoexeacutecuter seacutequentiellement les opeacuterationsdrsquoun algorithme il pourrait ecirctre un processeur ou

un circuit inteacutegreacute speacutecialiseacutebull meacutedia crsquoest une ressource de communicationen mesure drsquoexeacutecuter seacutequentiellement un transfertde donneacutees entre les meacutemoires des processeurs quilui sont connecteacutes

bull chaque arc est une connexion bidirectionnelle entreun processeur et un meacutedia

Equipe Systegraveme Robotiseacute de Production Architecture

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3579

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

ArchitecturePour lrsquoarchitecture chaque sommet est caracteacuteriseacute par

bull Un nom uniquebullSon type (processeur or meacutedia)bull Son type identifiant caracteacuteristiques mateacuterielles

bull Sa liste de connecteurs ougrave chaque connecteur est speacutecifieacute par bull son type identifiant le type de meacutedia agrave qui il peut ecirctreconnecteacute

bullUn nom

Equipe Systegraveme Robotiseacute de ProductionCaracteacuter st que

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3679

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Caracteacuter st que Nous distinguons deux cateacutegories de caracteacuteristiques lrsquoune relative

aux opeacuterations et lrsquoune agrave la communication 1 Comment speacutecifier les caracteacuteristiques des opeacuterations sous le menu AdequationAlOp_ArOp on obtient une boite

de dialogue avec

une liste de toutles types de

processeurs et

pour chaque processeur uneliste de tout les

types drsquoopeacuterationsqui peut lesexeacutecuter avec ladureacutee drsquoexeacutecutioncorrespondante

Equipe Systegraveme Robotiseacute de ProductionCaracteacuteristique

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3779

q p y

S y nd

e xV

5

q2 Comment speacutecifier les caracteacuteristiques de communication

sous le menu AdequationAlIO_ArIO on obtient une boitede dialogue avec une liste de tout les types de meacutedia et

pour chaque meacutedia une liste de tout les types de donneacutees

qui peut transfeacuterer avec la dureacutee de transfertcorrespondante

Equipe Systegraveme Robotiseacute de Production Contraintes

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3879

S y nd

e xV

5

Pour contraindre une opeacuteration agrave srsquoexeacutecuter sur un processeur donneacutee

1Seacutelectionner le(s) opeacuteration(s) agrave contraindre2 Seacutelectionner la commande AlgorithmSetConstraint3 Seacutelectionner le processeur qui doit exeacutecute les opeacuterationsseacutelectionneacutees

Pour enlever les contraintes seacutelectionner lrsquoopeacuteration puis exeacutecuterla commande AlgorithmDeleteConstraint

Pour voir sur quel processeur une opeacuteration est y contrainteseacutelectionner lrsquoopeacuteration puis exeacutecuter la commandeAlgorithmShowConstraint le processeur correspondant y sera

seacutelectionneacutePour voir toute les opeacuterations qui sont contraintes sur un processeurseacutelectionner le processeur puis exeacutecuter la commande

ArchitectureShowConstrained du menu les opeacuterationscorrespondantes y seront seacutelectionneacutees

Equipe Systegraveme Robotiseacute de Production A eacutequat o

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3979

S y nd

e xV

5

q

Pour construire le planificateur des opeacuterations dugraphe drsquoalgorithme sur les processeurs du graphedrsquoarchitecture qui effectue automatiquement le routage

des deacutependances de donneacutees inter-processeurs et lacreacuteation et la planification des opeacuterations decommunication sur le meacutedia du graphe drsquoarchitectureon utilise la commande AdequationDoIt

Cette commande creacutee un heuristique qui cherche agraveminimiser le chemin critique du graphe drsquoalgorithme

Equipe Systegraveme Robotiseacute de ProductionGeacuteneacuteration du code exeacutecuti

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4079

S y nd

e xV

5Le code exeacutecutif est la partie qui gegravere les ressources

mateacuterielles pour les allouer aux besoins de lrsquoalgorithmedrsquoapplication Les ressources agrave allouer sont

1 Les espaces meacutemoires des processeurs2 Le temps des seacutequences drsquoinstructions3 Le temps des meacutedia de communication

Gracircce agrave la meacutethodologie AAA et le logiciel Syndexlrsquoutilisateur est exempte drsquoeacutecrire du code pour geacuterer ces

ressources Donc par simple exeacutecution de la commandeAdequationGenExec un code distribueacute pour chaque processeur est automatiquement geacuteneacutereacute Ce code est en

fait un exeacutecutif geacuteneacutereacute sur mesure pour lrsquoalgorithme etlrsquoarchitecture

Equipe Systegraveme Robotiseacute de ProductionGeacuteneacuteration du code exeacutecuti

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4179

S y nd

e xV5

Pour chaque processeur de lrsquoarchitecture un fichier

source macro-exeacutecutif m4 avec le mecircme nom estgeacuteneacutereacute plus un macro-makefile ayant le mecircme nom quecelui de lrsquoapplication Chacun de ces fichiers doit ecirctre

transcrit par le macro-processeur GNU M4 (assembleurC) Cette transcription deacutepend de plusieurs fichiers

1 Fichier syndexm4x qui deacutefini les macrosgeacuteneacuteriques de syndex2 Fichier processorTypem4x qui deacutefini les macros

de bas niveau du processeur3 Fichier applicationNamem4x qui deacutefini les macros

speacutecifiques agrave lrsquoapplication

4 Fichier mediaTypem4x qui deacutefini les macros decommunication de bas niveau du type de media

Equipe Systegraveme Robotiseacute de ProductionCreacuteat on rsquoapp cat on

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4279

S y nd

e xV5 Arborescence des reacutepertoires Rep_travail

Applicationmacros

~rtai

Eacutevolution de lrsquoapplication

Phase 1

Edition des macros(C ou Assembleur)

+GNUmakefile

Phase 2

Edition du graphe

(Algorithme amp

Architecteure)

Phase 3

Compilation amp Exeacutecution

Equipe Systegraveme Robotiseacute de ProductionSeacutequence de compilation de Synde

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4379

S y nd

e xV5

Equipe Systegraveme Robotiseacute de Production Plan

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4479

S y nd

e xV5

bull Introduction

bull Meacutethodologie AAA

bull Installation

bull Utilisation du logiciel Syndex

bull Macros

bull LinuxIO un interface CC++ avec SynDEx

bull Exemple drsquoapplication Robuter-ULM

Equipe Systegraveme Robotiseacute de Production

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4579

S y nd

e xV5

Macros Macros

bull Deacutefinition

bull Types de macros

bull Carte Robosoft MPC555

bull Macros Geacuteneacuterique MPC555

bull Macros speacutecifique Robosoftbull Macros de Communication

bull Macros drsquoapplicationbull Structure du fichier Macro

Equipe Systegraveme Robotiseacute de Production Deacutefinition

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4679

S y nd

e xV5

Un macro-processeur est un programme qui consommeen entreacutee une chaicircne de caractegraveres (texte source) la

traite seacutequentiellement en substituant chaque sous-chaicircne qursquoil reconnaicirct (Appel de macro) par unechaicircne correspondante de substitution ( Deacutefinition de

macro) qursquoil traite agrave nouveau jusqursquoagrave ce qursquoil nrsquo y ait plus de substitution possible et qui produit en sortie lachaicircne de caractegraveres traiteacutee

Equipe Systegraveme Robotiseacute de Productionypes e macrosL diffeacute t di ti t d d

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4779

S y nd

e xV5

Les diffeacuterents macros se distinguent en deux grandes

classes bull Macros geacuteneacuteriques

en geacuteneacuteral ceux sont des macros non destineacutes agraveecirctre utiliser directement par lrsquointerface syndexmais plutocirct utiliseacutees pour la programmation

drsquoautres macros (macros MPC555)bull Macros utilisateurs

macros utiliseacutes directement par syndex ils sontspeacutecifiques agrave lrsquoapplication (macros decommunication macros speacutecifiques robosoft

macros speacutecifiques agrave lrsquoapplication)

Equipe Systegraveme Robotiseacute de ProductionCarte Robosoft MPC555La carte Robosoft MPC555 est conccedilue pour la commande de robot de veacutehicule

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4879

S y nd

e xV5

(1) Connecteur du chip MPC555(2) Alimentation continue(3) Interface BDM (Basic Debug Interface)(4) Entreacute Analogique (Joystickhellip)(5) EntreacuteSortie logiques(6) Ligne seacuterie Synchrone (Codeur absolu)(7) Ligne seacuterie Asynchrone (Port 0)

(8) Ligne seacuterie Asynchrone (Port 1)(9) Connecteur du bus CAN (Port 0)(10) Connecteur du bus CAN (Port 1)(11) Axe 1(13) Axe 2(14) Axe 3(15) Axe 4

La carte Robosoft MPC555 est conccedilue pour la commande de robot de veacutehiculeeacutelectrique ou toute autre machine Elle permet de commander un axe gracircce agrave

lrsquoajout drsquoune carte fille le controcircle srsquoeacutetend jusqursquoagrave 4 axesCette carte est baseacutee sur le microcontrocircleur MPC555 32-bit de MotorolaElle peut opeacuterer agrave une freacutequence

de 40 MHz Divers signauxlogique et analogique peuventecirctre utiliser pour lrsquoacquisition deet la commande de mateacuteriel Les

sorties disponibles peuvent ecirctreanalogique ou PWMOn y trouve

Equipe Systegraveme Robotiseacute de ProductionArchitecture du MPC555

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4979

S y nd

e xV5

Equipe Systegraveme Robotiseacute de Productionaract r st ques u

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5079

S y nd

e xV5

Equipe Systegraveme Robotiseacute de Productionacros n r quesbull GPIO (General-Purpose InputOutput)

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5179

S y nd

e xV5

GPIO (General Purpose InputOutput)ce macro utilise le module USIU qui lui fourni 64 pins pour desentreacuteessorties numeacuteriques ordinaires (IO de la carte Robosoft lirelrsquoeacutetat de la pince envoi de commande agrave la pince lire les alarmes)

bull QADC (Queued Analog to Digital Converter)en utilisant le module QADC ce macro permet la conversion drsquounsignal analogique en entreacutee en un signal numeacuterique multi-niveaux(lire les donneacutees du capteur drsquoeacuteffort du joystick)

bull MIOS (Modular InputOutput System)Le module MIOS fourni 16 pins drsquoES numeacuteriques Sur la carte deRobosoft tous les pins sont en sortie Les 16 pins sont reacutepartiscomme suit

utilisateurs reacuteserveacutes

les pins de 0 agrave 11 sont reacuteserveacutes car ils sont preacutevus agrave ecirctre utiliseacutes pour unmateacuteriel particulier Mais si ce mateacuteriel nrsquoest pas utiliseacute lrsquoutilisateur peut lesutiliser librement

15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

Equipe Systegraveme Robotiseacute de ProductionMacros Geacuteneacuter ques MPC55

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5279

S y nd

e xV5

bull PWM (Pulse width Modulation)utilise le module MIOS (pins de 4-7 pour la direction des moteurset de 8-11 pour la validation) pour la commande des actionneursnumeacuteriques en PWM

bull TPU (Time Processor Units)les macros lieacutes agrave ce module permettent la lecture des encodeurs

increacutementauxbull QSPI (Queued Serial Peripheral Interface)

ce module fait partie du module QSMCM et les macros lieacutes servent

agrave son initialisation pour une communication avec du mateacuterielsexternes via le bus seacuterie synchrone

Equipe Systegraveme Robotiseacute de ProductionMacros Geacuteneacuter ques MPC55

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5379

S y nd

e x

V5 bull Serial port support (Polling implementation)

le MPC555 comprend dans le module QSMCM une interface decommunication seacuterie SCI qui permet la communication avec dumateacuteriels externes via un bus seacuterie asynchrone Plusieurs macros

sont lieacutes agrave cette interface pour initialiser et eacutetablir la communicationbull Serial port support (interrupt handling implementation)

pour la mecircme interface SCI du module QSMCM pour cette

meacutethode drsquoimpleacutementation les macros lieacutes initialisent et eacutetablissentla communication en mode par interruption ce qui permet dedeacutetecter lrsquoarriveacutee des donneacutees sur le port seacuterie au lieu de le scruter

en permanence

tous ces macros on les retrouvent dans le fichier 555m4x

Equipe Systegraveme Robotiseacute de ProductionMacros Speacutec ques Ro oso tles macros suivants sont deacutedieacutes agrave la carte de Robosoft MPC555

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5479

S y nd

e x

V5

bull Initialisation de la carte Robosoftmain_ini_() macro ne doit pas ecirctre utiliser par les programmateursdu fait qursquoelle sert qursquoagrave initialiser la carte robosoft Macro interne agrave

syndex dont lrsquoappel est automatique lors de geacuteneacuteration drsquoexeacutecutifMPC555

bull DAC (Digital to Analog Converter)

macro permet lrsquoutilisation du convertisseur de carte robosoft via lemodule MIOs en utilisant les pins de 0 agrave 2

bull LED (on-bord LED interface)

macro permet la gestion de la LED de la carte robosoft connecteacuteeau module QSPI (pin PCS1)

bull SPI absolute encoder

macro permet lrsquoutilisation lrsquointerface du codeur absolu de la carterobosoft connecteacute au module QSPI

Equipe Systegraveme Robotiseacute de ProductionMacros Speacutec ques Ro oso tbull Motor amplifier direction

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5579

S y nd

e x

V5

Motor amplifier directionmacro qui permet de geacuterer la direction des moteurs

bull Motor power amplifier validationles moteurs embarqueacutes sur les robots sont eacutequipeacutes de freins

eacutelectriquement commandable Ce macro permet drsquoenvoyer unsignal drsquoinhibition pour deacutebloquer les freins

bull Watch dog

pour des raisons de seacutecuriteacute un meacutecanisme mateacuteriel que robosofta ajouteacute sur la carte Ce watch-dog vise agrave stopper lrsquoactiviteacute dumoteur en cas ougrave le programme plante Le watch est impleacutementeacute

comme un time-out mateacuteriel Srsquoil nrsquoest pas rafraicircchi peacuteriodiquement il transmet un signal de sortie ce qui enlegraveve lavalidation de lrsquoamplificateur de puissance donc lrsquoarrecirct dumouvement

ces macros se trouvent dans le fichier RSBm4x

Equipe Systegraveme Robotiseacute de Production

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5679

S y nd

e x

V5

Macros de Communicationchaque meacutedia de communication (bus CAN ) est une ressourceseacutequentielle ougrave les transferts de donneacutees entre processeurs doiventsuivre un certain ordre Donc ce macro de communication sert agravedeacutefinir cet ordre et agrave identifier le protocole de communication lecodagedeacutecodage de lrsquoinformation et la synchronisation

on trouve ces macros dans le fichier CANm4x

Macros drsquoapplicationce genre de macros sont speacutecifique au mateacuteriel en question et aussiagrave lrsquoapplication en particulier Ce sont des macros utilisateurs

on trouve ces macros dans le fichier Application_namem4x

Equipe Systegraveme Robotiseacute de Production

section include (pour inclure drsquoautres fichiers macro agrave utiliseStructure du fichier macr

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5779

S y nd

e x

V5

section define (pour tous les macros utilisateurs)MGC lsquoINITrsquo (MGC Macro Generation Context variable)

divert (declaration) (deacutebut du macro)

(deacuteclaration des variables des meacutemoires et des csts

divert (o)

MGC lsquolooprsquocode en assembleur code en C

dnl (commentaires)

MGC lsquoENDrsquo dnl (fin de la macros)divert lsquo lsquo dnl

macros MPC555meacutemoire MPC555

constante MPC555

macros RTAImeacutemoire RTAI

constante RTAI

Equipe Systegraveme Robotiseacute de Production Plan

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5879

S y nd

e x

V5

bull Introduction

bull Meacutethodologie AAA

bull Installationbull Utilisation du logiciel Syndex

bull Macrosbull LinuxIO un interface CC++ avec SynDEx

bull Exemple drsquoapplication Robuter-ULM

Equipe Systegraveme Robotiseacute de Production

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5979

S y nd

e x

V5

LinuxIO LinuxIO une interface une interface

CC++ avecCC++ avec SynDExSynDEx

bull Principe de basebull Utilisation de linuxIO_ par syndex

bull Utilisation de linuxIO_ par un programmeCC++

Equipe Systegraveme Robotiseacute de ProductionPrincipe de baseSyndex fourni une interface graphique pour la conception

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6079

S y nd

e x

V5

Syndex fourni une interface graphique pour la conception

drsquoapplications Par contre des fois nous avons besoin drsquoautresfonctionnaliteacutes non disponibles donc il faut les creacuteer Cependantgeacuteneacuterer des macros pour syndex srsquoavegravere difficile pour certains du

fait qursquoil faut avoir une bonne connaissance de la programmation bas niveau Dans ce cas lrsquoutilisation de linux_IO trouve sa placedans un contexte particulier interfacer des applications CC++utilisateurs avec des applications embarqueacutees temps reacuteeldeacuteveloppeacutees sous syndex

Par rapport agrave ce contexte de programmation lrsquoorganisation du

deacuteveloppement des applications est structureacutee en deux parties 1 Application haut niveau

2 Application bas niveau

Equipe Systegraveme Robotiseacute de ProductionPrincipe de base

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6179

S y nd

e x

V5

En reacutesumeacute lrsquoapplicationutilisateur contient une

partie haut niveau enCC++ et une partie basniveau sous syndex avecun eacutechange de donneacuteesentre les deux partie en

utilisant la couche RTAIde linux

Equipe Systegraveme Robotiseacute de Production pp cat on aut n veauOn entend application haut

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6279

S y nd

e x

V5

niveau tout programmecomme la planification detrajectoires strateacutegies de

navigation etc hellipLrsquoeacutechange de donneacutees sefait par le biais desmeacutemoires partageacutees quifont parti du noyau RTAI

et de lrsquoespace utilisateursde Linux

Toute ressource preacutesente sur la carte Robosoft peutecirctre partageacutee sans aune restriction

Equipe Systegraveme Robotiseacute de Production pp cat on as n veauUne application bas niveau

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6379

S y nd

e x

V5

Une application bas niveau

est un programme conccedilusous syndex comme lacommande des moteurs la

lecture des capteurs etc hellipLes ressources mateacuteriellessont controcircler par plusieurs

cartes MPC555 Ces cartessrsquoeacutechangent des donneacuteesvia le bus CAN Donc ES

est prise en charge par lasource logicielle deacutedieacutee quisrsquoexeacutecute dans les cartes MPC555 puis la couche RTAI

est utiliseacute pour la mise agrave jour de meacutemoires partageacutees pour lrsquoespace utilisateurs linux drsquoeacutechange de donneacutees

Equipe Systegraveme Robotiseacute de ProductionUtilisation de linux_IO par syndex

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6479

S y nd

e x

V5

Equipe Systegraveme Robotiseacute de ProductionUtilisation de linux_IO par syndex

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6579

S y nd

e x

V5

Equipe Systegraveme Robotiseacute de Production

5

Utilisation de linux_IO par syndex

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6679

S y nd

e x

V5

Degraves que la conception de lrsquoapplication sous syndex esttermineacutee et apregraves compilation (AdequationDo it +GenExec) un fichier drsquoentecircte sous le nom de linioh est

automatiquement geacuteneacutereacute Ce fichier contient lesinformations neacutecessaires pour acceacuteder aux entreacutees enlecture et aux sorties en eacutecriture des opeacuterations linuxIO_

inseacutereacutees dans le graphe drsquoalgorithme Le contenu de cefichier est organiseacute en plusieurs parties une pour chaqueopeacuteration linux_IO preacutesente dans le graphe

Equipe Systegraveme Robotiseacute de Production

5

Utilisation de linux_IO par syndex linioh auto-generated C users API frontend

C i h b f 2001 i i i b f f

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6779

S y nd

e x

V5 Copyright Robosoft 2001 Pierre Pomiers ltpierrerobosoftfrgt

LINUX IO shared memory data segments

define SEG0_BASE 0x10000typedef struct

int js_spd_o0

int js_str_o0

int enc_R_o0int enc_L_o0

double odo_X_o0

double odo_Y_o0

double odo_T_o0int spd_R_o0

int spd_L_o0

int time

unsigned char sem shm_seg0_def

Nom du segment de meacutemoire partageacutee pour notre opeacuteration linuxIO_

7 signaux drsquoentreacutees Ces valeurs sonten lecture et sont peacuteriodiquementrafraicircchies par RTAI

2 signaux de sorties Ces valeurs sonten eacutecriture et sont peacuteriodiquementrafraicircchies par RTAI

Equipe Systegraveme Robotiseacute de Production

5

Crsquoest une eacutetape tregraves facile il suffit drsquoinclure le fichier drsquoentecirctelinio h dans le code du fichier en CC++ comme suit

Utilisation de linuxIO_ par un programme CC+

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6879

S y nd

e x

V5 linioh dans le code du fichier en CC++ comme suit

include linioh

include ltrtai_shmhgt

static shm_seg0_def seg0

shm_seg0_def robot

seg0 = rtai_malloc (SEG0_BASE sizeof (shm_seg0_def))

if (seg0-gtsem = 0) bcopy (seg0 amprobot sizeof (shm_seg0_def))helliphelliphellip

helliphelliphellip bcopy (amprobot seg0 sizeof (shm_seg0_def))helliphelliphelliphelliphelliphellip

rtai_free (SEG0_BASE seg0)

fichier drsquoentecircte de la meacutemoire partageacutee fourni dans la couche RTAI de linux

Initialisation du segment SEG0_BASE Allocation de lameacutemoire pointeacutee

par seg0

Lecture des donneacutees provenant du bas

niveau

Mise agrave jours du segment de meacutemoire partageacutee

Libeacuterer le segment de meacutemoire alloueacute

Equipe Systegraveme Robotiseacute de Production

5

Plan

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6979

S y nd e x

V5

bull Introductionbull Meacutethodologie AAA

bull Installationbull Utilisation du logiciel Syndex

bull Macrosbull LinuxIO un interface CC++ avec SynDEx

bull Exemple drsquoapplication Robuter-ULM

Equipe Systegraveme Robotiseacute de Production

V5

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7079

S y nd e x

V5

Exemple dapplication Exemple dapplication Robuter Robuter--ULM ULM

Equipe Systegraveme Robotiseacute de Production

V5

Description Robuter-ULMbull Base mobile (2-RM 2-RF)

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7179

S y nd e x

V

bull Bras ultra-leacuteger 6 axesbull Ceinture 24 capteurs US

bull Capteur drsquoefforts 6 axes

bull Cameacutera CCD monochromeavec carte drsquoacquisition

bull PC embarqueacute MMX 233

bull OS linux redhat 61 avecRTAI V-13

bull 3 bouton drsquoarrecirct drsquourgence

bull 4 batteries 48 VDC 4 X12V 60 Ah

bull Entreacutee Joystick

bull Liaison Ethernet sans fil

Le manipulateur mobile Robuter-ULM comprend

Equipe Systegraveme Robotiseacute de Production

V5

Base Mobilebull dimension

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7279

S y nd e x

V

1025 mm de longueur 680 mm de largueur et 44 cm de hauteurbull Poids environ 150 kg avec les batteriesbull charge jusqursquoagrave 120 kg

bull vitesse de 5cms agrave 125 msbull Moteurs 2 X 300 W DC 48 VDCbull orientation par diffeacuterence de vitesse

bull Preacutecision Position par encodeurs optiquesbull Deux roues motrices diffeacuterentielles et de deux roues follesbull Drsquoune ceinture de 24 capteurs Ultrasons

bull Une carte MPC555 de Robosoft pour le controcircle des deuxmoteurs DC des 2 rouesbull Un systegraveme drsquoodomeacutetrie qui donne la position relative du robot

par rapport agrave son repegravere

Equipe Systegraveme Robotiseacute de Production

V5

bull dimension Faute de documentation

Bras U tra- eacuteger

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7379

S y nd e x

V Faute de documentation

bull Poids moins de 20 kgbull charge 2 kgbull Moteurs 6 moteurs DC

bull gripper pince eacutelectrique 2 doigtsbull Reacutepeacutetabiliteacute +- 1mmbull 3 carte MPC555 de Robosoft lrsquoune pour le capteur drsquoeffort et les

deux autres pour les 6 moteurs + moteur de la pincebull Position encodeur increacutemental

1 2 3 4 5 6Axisrange

plusmn90deg 0-90deg plusmn80deg plusmn100deg plusmn90deg plusmn110deg

vitesse 180degs 180degs 180degs 180degs 180degs 180degs

Equipe Systegraveme Robotiseacute de Production

V5

rc tecture ar ware

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7479

S y nd e x

V

Equipe Systegraveme Robotiseacute de Production

V5

Pro eacutemat quePlusieurs applications peuvent ecirctre impleacutementeacutees sur le robot

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7579

S y nd e x

V

Cependant il faut faire la diffeacuterence entre les applications quidemande lrsquoutilisation de syndex et les applications qui neneacutecessite qursquoune programmation en CC++ Agrave titre drsquoexemple

bull Localisationbull Commande en position

bull Commande en forcebull Navigation

bull Geacuteneacuteration de trajectoire

bull Vision

Equipe Systegraveme Robotiseacute de Production

V5 bull Pince eacutelectrique (TOR)

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7679

S y nd e x

Vq ( )

bull Pince possegravede des ES Logiques

Notre application consiste agrave

bull Recevoir lrsquoeacutetat de la pince (fermeacutee ouverte )

bull Envoyer une commande vers la pince

Capture

drsquoinformation

Open

Close

CommandeMeacutemoire

Partageacutee

Actionneur

Pince Prise de deacutecision Pince

Equipe Systegraveme Robotiseacute de Production

V5

Sc eacutema eacute ectr que

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7779

S y nd e x

Equipe Systegraveme Robotiseacute de Production

V5

Conclusion

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7879

S y nd e x bull Introduction

bull Meacutethodologie AAA

bull Installationbull Utilisation du logiciel Syndex

bull Macrosbull LinuxIO un interface CC++ avec SynDEx

bull Exemple drsquoapplication Robuter-ULM

Equipe Systegraveme Robotiseacute de Production

V5

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7979

S y nd e x

Questions

Page 30: Cours Syndex

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3079

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

gor t mon distingue 4 types de sommets

Algorithm

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3179

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Algorithmbull Le sommet function possegravede au moins une entreacutee et

une sortie crsquoest une opeacuteration agrave libre effet qui calculeses sorties uniquement agrave partir de ses entreacutees (c-a-d niagrave partir des variables globales ni agrave partir des

preacuteceacutedentes valeurs de ces entreacutees)bull Le sommet extio permet lrsquoacquisitionlrsquoeacutecriture des

entreacuteessorties on distingue trois cas

1 Capteur sans entreacutee agrave chaque reacuteaction sa sortierepreacutesente la valeur lue du capteur

2 Actionneur sans sortie agrave chaque reacuteaction ilenvoi son entreacutee agrave lrsquoactionneur

3 Linux_IO ces des meacutemoires partageacutees qui

permettent le transfert de donneacutees entre syndexet un langage eacutevolueacute

E i S egrave R b i eacute d P d i Algorithm

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3279

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Algorithm

bull Le sommet memory possegravede uniquement uneentreacutee et une sortie crsquoest une opeacuteration agrave effetunique qui met la sortie degraves la premiegravere reacuteaction

agrave une valeur initiale calculeacutee auparavant et puisla sortie de la prochaine reacuteaction nrsquoest que

lrsquoentreacutee de la preacuteceacutedente reacuteactionbull Le sommet constant ne possegravede aucune entreacutee

il calcule sa sortie une seule fois avant la premiegravere reacuteaction puis la sortie demeure la mecircme pour chaque reacuteaction

E i S tegrave R b ti eacute d P d ti Algorithm

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3379

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

AlgorithmPour lrsquoalgorithme chaque sommet est caracteacuteriseacute par

bull Son type geacuteneacuterique (function extio memory constant)bull Un nom unique (tout les sommets doivent avoir des

noms diffeacuterents)bull Son type identifiant sa seacutequence drsquoinstructionsassocieacute

bull Sa liste drsquoarguments ougrave chaque argument est speacutecifieacute par bull Le nombre drsquoentreacuteesortiebull Le type de donneacuteesbull Le nom (tout les arguments doivent avoir des noms

diffeacuterents)

Equipe Systegraveme Robotiseacute de Production Architecture

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3479

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

ArchitectureLrsquoarchitecture est speacutecifieacutee comme un graphe non orienteacute

ougrave bullChaque sommet est une ressource seacutequentielle il y adeux types de sommets

bull processeur crsquoest une ressource de calcul enmesure drsquoexeacutecuter seacutequentiellement les opeacuterationsdrsquoun algorithme il pourrait ecirctre un processeur ou

un circuit inteacutegreacute speacutecialiseacutebull meacutedia crsquoest une ressource de communicationen mesure drsquoexeacutecuter seacutequentiellement un transfertde donneacutees entre les meacutemoires des processeurs quilui sont connecteacutes

bull chaque arc est une connexion bidirectionnelle entreun processeur et un meacutedia

Equipe Systegraveme Robotiseacute de Production Architecture

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3579

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

ArchitecturePour lrsquoarchitecture chaque sommet est caracteacuteriseacute par

bull Un nom uniquebullSon type (processeur or meacutedia)bull Son type identifiant caracteacuteristiques mateacuterielles

bull Sa liste de connecteurs ougrave chaque connecteur est speacutecifieacute par bull son type identifiant le type de meacutedia agrave qui il peut ecirctreconnecteacute

bullUn nom

Equipe Systegraveme Robotiseacute de ProductionCaracteacuter st que

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3679

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Caracteacuter st que Nous distinguons deux cateacutegories de caracteacuteristiques lrsquoune relative

aux opeacuterations et lrsquoune agrave la communication 1 Comment speacutecifier les caracteacuteristiques des opeacuterations sous le menu AdequationAlOp_ArOp on obtient une boite

de dialogue avec

une liste de toutles types de

processeurs et

pour chaque processeur uneliste de tout les

types drsquoopeacuterationsqui peut lesexeacutecuter avec ladureacutee drsquoexeacutecutioncorrespondante

Equipe Systegraveme Robotiseacute de ProductionCaracteacuteristique

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3779

q p y

S y nd

e xV

5

q2 Comment speacutecifier les caracteacuteristiques de communication

sous le menu AdequationAlIO_ArIO on obtient une boitede dialogue avec une liste de tout les types de meacutedia et

pour chaque meacutedia une liste de tout les types de donneacutees

qui peut transfeacuterer avec la dureacutee de transfertcorrespondante

Equipe Systegraveme Robotiseacute de Production Contraintes

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3879

S y nd

e xV

5

Pour contraindre une opeacuteration agrave srsquoexeacutecuter sur un processeur donneacutee

1Seacutelectionner le(s) opeacuteration(s) agrave contraindre2 Seacutelectionner la commande AlgorithmSetConstraint3 Seacutelectionner le processeur qui doit exeacutecute les opeacuterationsseacutelectionneacutees

Pour enlever les contraintes seacutelectionner lrsquoopeacuteration puis exeacutecuterla commande AlgorithmDeleteConstraint

Pour voir sur quel processeur une opeacuteration est y contrainteseacutelectionner lrsquoopeacuteration puis exeacutecuter la commandeAlgorithmShowConstraint le processeur correspondant y sera

seacutelectionneacutePour voir toute les opeacuterations qui sont contraintes sur un processeurseacutelectionner le processeur puis exeacutecuter la commande

ArchitectureShowConstrained du menu les opeacuterationscorrespondantes y seront seacutelectionneacutees

Equipe Systegraveme Robotiseacute de Production A eacutequat o

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3979

S y nd

e xV

5

q

Pour construire le planificateur des opeacuterations dugraphe drsquoalgorithme sur les processeurs du graphedrsquoarchitecture qui effectue automatiquement le routage

des deacutependances de donneacutees inter-processeurs et lacreacuteation et la planification des opeacuterations decommunication sur le meacutedia du graphe drsquoarchitectureon utilise la commande AdequationDoIt

Cette commande creacutee un heuristique qui cherche agraveminimiser le chemin critique du graphe drsquoalgorithme

Equipe Systegraveme Robotiseacute de ProductionGeacuteneacuteration du code exeacutecuti

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4079

S y nd

e xV

5Le code exeacutecutif est la partie qui gegravere les ressources

mateacuterielles pour les allouer aux besoins de lrsquoalgorithmedrsquoapplication Les ressources agrave allouer sont

1 Les espaces meacutemoires des processeurs2 Le temps des seacutequences drsquoinstructions3 Le temps des meacutedia de communication

Gracircce agrave la meacutethodologie AAA et le logiciel Syndexlrsquoutilisateur est exempte drsquoeacutecrire du code pour geacuterer ces

ressources Donc par simple exeacutecution de la commandeAdequationGenExec un code distribueacute pour chaque processeur est automatiquement geacuteneacutereacute Ce code est en

fait un exeacutecutif geacuteneacutereacute sur mesure pour lrsquoalgorithme etlrsquoarchitecture

Equipe Systegraveme Robotiseacute de ProductionGeacuteneacuteration du code exeacutecuti

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4179

S y nd

e xV5

Pour chaque processeur de lrsquoarchitecture un fichier

source macro-exeacutecutif m4 avec le mecircme nom estgeacuteneacutereacute plus un macro-makefile ayant le mecircme nom quecelui de lrsquoapplication Chacun de ces fichiers doit ecirctre

transcrit par le macro-processeur GNU M4 (assembleurC) Cette transcription deacutepend de plusieurs fichiers

1 Fichier syndexm4x qui deacutefini les macrosgeacuteneacuteriques de syndex2 Fichier processorTypem4x qui deacutefini les macros

de bas niveau du processeur3 Fichier applicationNamem4x qui deacutefini les macros

speacutecifiques agrave lrsquoapplication

4 Fichier mediaTypem4x qui deacutefini les macros decommunication de bas niveau du type de media

Equipe Systegraveme Robotiseacute de ProductionCreacuteat on rsquoapp cat on

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4279

S y nd

e xV5 Arborescence des reacutepertoires Rep_travail

Applicationmacros

~rtai

Eacutevolution de lrsquoapplication

Phase 1

Edition des macros(C ou Assembleur)

+GNUmakefile

Phase 2

Edition du graphe

(Algorithme amp

Architecteure)

Phase 3

Compilation amp Exeacutecution

Equipe Systegraveme Robotiseacute de ProductionSeacutequence de compilation de Synde

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4379

S y nd

e xV5

Equipe Systegraveme Robotiseacute de Production Plan

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4479

S y nd

e xV5

bull Introduction

bull Meacutethodologie AAA

bull Installation

bull Utilisation du logiciel Syndex

bull Macros

bull LinuxIO un interface CC++ avec SynDEx

bull Exemple drsquoapplication Robuter-ULM

Equipe Systegraveme Robotiseacute de Production

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4579

S y nd

e xV5

Macros Macros

bull Deacutefinition

bull Types de macros

bull Carte Robosoft MPC555

bull Macros Geacuteneacuterique MPC555

bull Macros speacutecifique Robosoftbull Macros de Communication

bull Macros drsquoapplicationbull Structure du fichier Macro

Equipe Systegraveme Robotiseacute de Production Deacutefinition

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4679

S y nd

e xV5

Un macro-processeur est un programme qui consommeen entreacutee une chaicircne de caractegraveres (texte source) la

traite seacutequentiellement en substituant chaque sous-chaicircne qursquoil reconnaicirct (Appel de macro) par unechaicircne correspondante de substitution ( Deacutefinition de

macro) qursquoil traite agrave nouveau jusqursquoagrave ce qursquoil nrsquo y ait plus de substitution possible et qui produit en sortie lachaicircne de caractegraveres traiteacutee

Equipe Systegraveme Robotiseacute de Productionypes e macrosL diffeacute t di ti t d d

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4779

S y nd

e xV5

Les diffeacuterents macros se distinguent en deux grandes

classes bull Macros geacuteneacuteriques

en geacuteneacuteral ceux sont des macros non destineacutes agraveecirctre utiliser directement par lrsquointerface syndexmais plutocirct utiliseacutees pour la programmation

drsquoautres macros (macros MPC555)bull Macros utilisateurs

macros utiliseacutes directement par syndex ils sontspeacutecifiques agrave lrsquoapplication (macros decommunication macros speacutecifiques robosoft

macros speacutecifiques agrave lrsquoapplication)

Equipe Systegraveme Robotiseacute de ProductionCarte Robosoft MPC555La carte Robosoft MPC555 est conccedilue pour la commande de robot de veacutehicule

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4879

S y nd

e xV5

(1) Connecteur du chip MPC555(2) Alimentation continue(3) Interface BDM (Basic Debug Interface)(4) Entreacute Analogique (Joystickhellip)(5) EntreacuteSortie logiques(6) Ligne seacuterie Synchrone (Codeur absolu)(7) Ligne seacuterie Asynchrone (Port 0)

(8) Ligne seacuterie Asynchrone (Port 1)(9) Connecteur du bus CAN (Port 0)(10) Connecteur du bus CAN (Port 1)(11) Axe 1(13) Axe 2(14) Axe 3(15) Axe 4

La carte Robosoft MPC555 est conccedilue pour la commande de robot de veacutehiculeeacutelectrique ou toute autre machine Elle permet de commander un axe gracircce agrave

lrsquoajout drsquoune carte fille le controcircle srsquoeacutetend jusqursquoagrave 4 axesCette carte est baseacutee sur le microcontrocircleur MPC555 32-bit de MotorolaElle peut opeacuterer agrave une freacutequence

de 40 MHz Divers signauxlogique et analogique peuventecirctre utiliser pour lrsquoacquisition deet la commande de mateacuteriel Les

sorties disponibles peuvent ecirctreanalogique ou PWMOn y trouve

Equipe Systegraveme Robotiseacute de ProductionArchitecture du MPC555

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4979

S y nd

e xV5

Equipe Systegraveme Robotiseacute de Productionaract r st ques u

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5079

S y nd

e xV5

Equipe Systegraveme Robotiseacute de Productionacros n r quesbull GPIO (General-Purpose InputOutput)

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5179

S y nd

e xV5

GPIO (General Purpose InputOutput)ce macro utilise le module USIU qui lui fourni 64 pins pour desentreacuteessorties numeacuteriques ordinaires (IO de la carte Robosoft lirelrsquoeacutetat de la pince envoi de commande agrave la pince lire les alarmes)

bull QADC (Queued Analog to Digital Converter)en utilisant le module QADC ce macro permet la conversion drsquounsignal analogique en entreacutee en un signal numeacuterique multi-niveaux(lire les donneacutees du capteur drsquoeacuteffort du joystick)

bull MIOS (Modular InputOutput System)Le module MIOS fourni 16 pins drsquoES numeacuteriques Sur la carte deRobosoft tous les pins sont en sortie Les 16 pins sont reacutepartiscomme suit

utilisateurs reacuteserveacutes

les pins de 0 agrave 11 sont reacuteserveacutes car ils sont preacutevus agrave ecirctre utiliseacutes pour unmateacuteriel particulier Mais si ce mateacuteriel nrsquoest pas utiliseacute lrsquoutilisateur peut lesutiliser librement

15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

Equipe Systegraveme Robotiseacute de ProductionMacros Geacuteneacuter ques MPC55

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5279

S y nd

e xV5

bull PWM (Pulse width Modulation)utilise le module MIOS (pins de 4-7 pour la direction des moteurset de 8-11 pour la validation) pour la commande des actionneursnumeacuteriques en PWM

bull TPU (Time Processor Units)les macros lieacutes agrave ce module permettent la lecture des encodeurs

increacutementauxbull QSPI (Queued Serial Peripheral Interface)

ce module fait partie du module QSMCM et les macros lieacutes servent

agrave son initialisation pour une communication avec du mateacuterielsexternes via le bus seacuterie synchrone

Equipe Systegraveme Robotiseacute de ProductionMacros Geacuteneacuter ques MPC55

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5379

S y nd

e x

V5 bull Serial port support (Polling implementation)

le MPC555 comprend dans le module QSMCM une interface decommunication seacuterie SCI qui permet la communication avec dumateacuteriels externes via un bus seacuterie asynchrone Plusieurs macros

sont lieacutes agrave cette interface pour initialiser et eacutetablir la communicationbull Serial port support (interrupt handling implementation)

pour la mecircme interface SCI du module QSMCM pour cette

meacutethode drsquoimpleacutementation les macros lieacutes initialisent et eacutetablissentla communication en mode par interruption ce qui permet dedeacutetecter lrsquoarriveacutee des donneacutees sur le port seacuterie au lieu de le scruter

en permanence

tous ces macros on les retrouvent dans le fichier 555m4x

Equipe Systegraveme Robotiseacute de ProductionMacros Speacutec ques Ro oso tles macros suivants sont deacutedieacutes agrave la carte de Robosoft MPC555

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5479

S y nd

e x

V5

bull Initialisation de la carte Robosoftmain_ini_() macro ne doit pas ecirctre utiliser par les programmateursdu fait qursquoelle sert qursquoagrave initialiser la carte robosoft Macro interne agrave

syndex dont lrsquoappel est automatique lors de geacuteneacuteration drsquoexeacutecutifMPC555

bull DAC (Digital to Analog Converter)

macro permet lrsquoutilisation du convertisseur de carte robosoft via lemodule MIOs en utilisant les pins de 0 agrave 2

bull LED (on-bord LED interface)

macro permet la gestion de la LED de la carte robosoft connecteacuteeau module QSPI (pin PCS1)

bull SPI absolute encoder

macro permet lrsquoutilisation lrsquointerface du codeur absolu de la carterobosoft connecteacute au module QSPI

Equipe Systegraveme Robotiseacute de ProductionMacros Speacutec ques Ro oso tbull Motor amplifier direction

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5579

S y nd

e x

V5

Motor amplifier directionmacro qui permet de geacuterer la direction des moteurs

bull Motor power amplifier validationles moteurs embarqueacutes sur les robots sont eacutequipeacutes de freins

eacutelectriquement commandable Ce macro permet drsquoenvoyer unsignal drsquoinhibition pour deacutebloquer les freins

bull Watch dog

pour des raisons de seacutecuriteacute un meacutecanisme mateacuteriel que robosofta ajouteacute sur la carte Ce watch-dog vise agrave stopper lrsquoactiviteacute dumoteur en cas ougrave le programme plante Le watch est impleacutementeacute

comme un time-out mateacuteriel Srsquoil nrsquoest pas rafraicircchi peacuteriodiquement il transmet un signal de sortie ce qui enlegraveve lavalidation de lrsquoamplificateur de puissance donc lrsquoarrecirct dumouvement

ces macros se trouvent dans le fichier RSBm4x

Equipe Systegraveme Robotiseacute de Production

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5679

S y nd

e x

V5

Macros de Communicationchaque meacutedia de communication (bus CAN ) est une ressourceseacutequentielle ougrave les transferts de donneacutees entre processeurs doiventsuivre un certain ordre Donc ce macro de communication sert agravedeacutefinir cet ordre et agrave identifier le protocole de communication lecodagedeacutecodage de lrsquoinformation et la synchronisation

on trouve ces macros dans le fichier CANm4x

Macros drsquoapplicationce genre de macros sont speacutecifique au mateacuteriel en question et aussiagrave lrsquoapplication en particulier Ce sont des macros utilisateurs

on trouve ces macros dans le fichier Application_namem4x

Equipe Systegraveme Robotiseacute de Production

section include (pour inclure drsquoautres fichiers macro agrave utiliseStructure du fichier macr

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5779

S y nd

e x

V5

section define (pour tous les macros utilisateurs)MGC lsquoINITrsquo (MGC Macro Generation Context variable)

divert (declaration) (deacutebut du macro)

(deacuteclaration des variables des meacutemoires et des csts

divert (o)

MGC lsquolooprsquocode en assembleur code en C

dnl (commentaires)

MGC lsquoENDrsquo dnl (fin de la macros)divert lsquo lsquo dnl

macros MPC555meacutemoire MPC555

constante MPC555

macros RTAImeacutemoire RTAI

constante RTAI

Equipe Systegraveme Robotiseacute de Production Plan

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5879

S y nd

e x

V5

bull Introduction

bull Meacutethodologie AAA

bull Installationbull Utilisation du logiciel Syndex

bull Macrosbull LinuxIO un interface CC++ avec SynDEx

bull Exemple drsquoapplication Robuter-ULM

Equipe Systegraveme Robotiseacute de Production

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5979

S y nd

e x

V5

LinuxIO LinuxIO une interface une interface

CC++ avecCC++ avec SynDExSynDEx

bull Principe de basebull Utilisation de linuxIO_ par syndex

bull Utilisation de linuxIO_ par un programmeCC++

Equipe Systegraveme Robotiseacute de ProductionPrincipe de baseSyndex fourni une interface graphique pour la conception

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6079

S y nd

e x

V5

Syndex fourni une interface graphique pour la conception

drsquoapplications Par contre des fois nous avons besoin drsquoautresfonctionnaliteacutes non disponibles donc il faut les creacuteer Cependantgeacuteneacuterer des macros pour syndex srsquoavegravere difficile pour certains du

fait qursquoil faut avoir une bonne connaissance de la programmation bas niveau Dans ce cas lrsquoutilisation de linux_IO trouve sa placedans un contexte particulier interfacer des applications CC++utilisateurs avec des applications embarqueacutees temps reacuteeldeacuteveloppeacutees sous syndex

Par rapport agrave ce contexte de programmation lrsquoorganisation du

deacuteveloppement des applications est structureacutee en deux parties 1 Application haut niveau

2 Application bas niveau

Equipe Systegraveme Robotiseacute de ProductionPrincipe de base

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6179

S y nd

e x

V5

En reacutesumeacute lrsquoapplicationutilisateur contient une

partie haut niveau enCC++ et une partie basniveau sous syndex avecun eacutechange de donneacuteesentre les deux partie en

utilisant la couche RTAIde linux

Equipe Systegraveme Robotiseacute de Production pp cat on aut n veauOn entend application haut

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6279

S y nd

e x

V5

niveau tout programmecomme la planification detrajectoires strateacutegies de

navigation etc hellipLrsquoeacutechange de donneacutees sefait par le biais desmeacutemoires partageacutees quifont parti du noyau RTAI

et de lrsquoespace utilisateursde Linux

Toute ressource preacutesente sur la carte Robosoft peutecirctre partageacutee sans aune restriction

Equipe Systegraveme Robotiseacute de Production pp cat on as n veauUne application bas niveau

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6379

S y nd

e x

V5

Une application bas niveau

est un programme conccedilusous syndex comme lacommande des moteurs la

lecture des capteurs etc hellipLes ressources mateacuteriellessont controcircler par plusieurs

cartes MPC555 Ces cartessrsquoeacutechangent des donneacuteesvia le bus CAN Donc ES

est prise en charge par lasource logicielle deacutedieacutee quisrsquoexeacutecute dans les cartes MPC555 puis la couche RTAI

est utiliseacute pour la mise agrave jour de meacutemoires partageacutees pour lrsquoespace utilisateurs linux drsquoeacutechange de donneacutees

Equipe Systegraveme Robotiseacute de ProductionUtilisation de linux_IO par syndex

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6479

S y nd

e x

V5

Equipe Systegraveme Robotiseacute de ProductionUtilisation de linux_IO par syndex

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6579

S y nd

e x

V5

Equipe Systegraveme Robotiseacute de Production

5

Utilisation de linux_IO par syndex

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6679

S y nd

e x

V5

Degraves que la conception de lrsquoapplication sous syndex esttermineacutee et apregraves compilation (AdequationDo it +GenExec) un fichier drsquoentecircte sous le nom de linioh est

automatiquement geacuteneacutereacute Ce fichier contient lesinformations neacutecessaires pour acceacuteder aux entreacutees enlecture et aux sorties en eacutecriture des opeacuterations linuxIO_

inseacutereacutees dans le graphe drsquoalgorithme Le contenu de cefichier est organiseacute en plusieurs parties une pour chaqueopeacuteration linux_IO preacutesente dans le graphe

Equipe Systegraveme Robotiseacute de Production

5

Utilisation de linux_IO par syndex linioh auto-generated C users API frontend

C i h b f 2001 i i i b f f

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6779

S y nd

e x

V5 Copyright Robosoft 2001 Pierre Pomiers ltpierrerobosoftfrgt

LINUX IO shared memory data segments

define SEG0_BASE 0x10000typedef struct

int js_spd_o0

int js_str_o0

int enc_R_o0int enc_L_o0

double odo_X_o0

double odo_Y_o0

double odo_T_o0int spd_R_o0

int spd_L_o0

int time

unsigned char sem shm_seg0_def

Nom du segment de meacutemoire partageacutee pour notre opeacuteration linuxIO_

7 signaux drsquoentreacutees Ces valeurs sonten lecture et sont peacuteriodiquementrafraicircchies par RTAI

2 signaux de sorties Ces valeurs sonten eacutecriture et sont peacuteriodiquementrafraicircchies par RTAI

Equipe Systegraveme Robotiseacute de Production

5

Crsquoest une eacutetape tregraves facile il suffit drsquoinclure le fichier drsquoentecirctelinio h dans le code du fichier en CC++ comme suit

Utilisation de linuxIO_ par un programme CC+

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6879

S y nd

e x

V5 linioh dans le code du fichier en CC++ comme suit

include linioh

include ltrtai_shmhgt

static shm_seg0_def seg0

shm_seg0_def robot

seg0 = rtai_malloc (SEG0_BASE sizeof (shm_seg0_def))

if (seg0-gtsem = 0) bcopy (seg0 amprobot sizeof (shm_seg0_def))helliphelliphellip

helliphelliphellip bcopy (amprobot seg0 sizeof (shm_seg0_def))helliphelliphelliphelliphelliphellip

rtai_free (SEG0_BASE seg0)

fichier drsquoentecircte de la meacutemoire partageacutee fourni dans la couche RTAI de linux

Initialisation du segment SEG0_BASE Allocation de lameacutemoire pointeacutee

par seg0

Lecture des donneacutees provenant du bas

niveau

Mise agrave jours du segment de meacutemoire partageacutee

Libeacuterer le segment de meacutemoire alloueacute

Equipe Systegraveme Robotiseacute de Production

5

Plan

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6979

S y nd e x

V5

bull Introductionbull Meacutethodologie AAA

bull Installationbull Utilisation du logiciel Syndex

bull Macrosbull LinuxIO un interface CC++ avec SynDEx

bull Exemple drsquoapplication Robuter-ULM

Equipe Systegraveme Robotiseacute de Production

V5

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7079

S y nd e x

V5

Exemple dapplication Exemple dapplication Robuter Robuter--ULM ULM

Equipe Systegraveme Robotiseacute de Production

V5

Description Robuter-ULMbull Base mobile (2-RM 2-RF)

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7179

S y nd e x

V

bull Bras ultra-leacuteger 6 axesbull Ceinture 24 capteurs US

bull Capteur drsquoefforts 6 axes

bull Cameacutera CCD monochromeavec carte drsquoacquisition

bull PC embarqueacute MMX 233

bull OS linux redhat 61 avecRTAI V-13

bull 3 bouton drsquoarrecirct drsquourgence

bull 4 batteries 48 VDC 4 X12V 60 Ah

bull Entreacutee Joystick

bull Liaison Ethernet sans fil

Le manipulateur mobile Robuter-ULM comprend

Equipe Systegraveme Robotiseacute de Production

V5

Base Mobilebull dimension

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7279

S y nd e x

V

1025 mm de longueur 680 mm de largueur et 44 cm de hauteurbull Poids environ 150 kg avec les batteriesbull charge jusqursquoagrave 120 kg

bull vitesse de 5cms agrave 125 msbull Moteurs 2 X 300 W DC 48 VDCbull orientation par diffeacuterence de vitesse

bull Preacutecision Position par encodeurs optiquesbull Deux roues motrices diffeacuterentielles et de deux roues follesbull Drsquoune ceinture de 24 capteurs Ultrasons

bull Une carte MPC555 de Robosoft pour le controcircle des deuxmoteurs DC des 2 rouesbull Un systegraveme drsquoodomeacutetrie qui donne la position relative du robot

par rapport agrave son repegravere

Equipe Systegraveme Robotiseacute de Production

V5

bull dimension Faute de documentation

Bras U tra- eacuteger

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7379

S y nd e x

V Faute de documentation

bull Poids moins de 20 kgbull charge 2 kgbull Moteurs 6 moteurs DC

bull gripper pince eacutelectrique 2 doigtsbull Reacutepeacutetabiliteacute +- 1mmbull 3 carte MPC555 de Robosoft lrsquoune pour le capteur drsquoeffort et les

deux autres pour les 6 moteurs + moteur de la pincebull Position encodeur increacutemental

1 2 3 4 5 6Axisrange

plusmn90deg 0-90deg plusmn80deg plusmn100deg plusmn90deg plusmn110deg

vitesse 180degs 180degs 180degs 180degs 180degs 180degs

Equipe Systegraveme Robotiseacute de Production

V5

rc tecture ar ware

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7479

S y nd e x

V

Equipe Systegraveme Robotiseacute de Production

V5

Pro eacutemat quePlusieurs applications peuvent ecirctre impleacutementeacutees sur le robot

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7579

S y nd e x

V

Cependant il faut faire la diffeacuterence entre les applications quidemande lrsquoutilisation de syndex et les applications qui neneacutecessite qursquoune programmation en CC++ Agrave titre drsquoexemple

bull Localisationbull Commande en position

bull Commande en forcebull Navigation

bull Geacuteneacuteration de trajectoire

bull Vision

Equipe Systegraveme Robotiseacute de Production

V5 bull Pince eacutelectrique (TOR)

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7679

S y nd e x

Vq ( )

bull Pince possegravede des ES Logiques

Notre application consiste agrave

bull Recevoir lrsquoeacutetat de la pince (fermeacutee ouverte )

bull Envoyer une commande vers la pince

Capture

drsquoinformation

Open

Close

CommandeMeacutemoire

Partageacutee

Actionneur

Pince Prise de deacutecision Pince

Equipe Systegraveme Robotiseacute de Production

V5

Sc eacutema eacute ectr que

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7779

S y nd e x

Equipe Systegraveme Robotiseacute de Production

V5

Conclusion

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7879

S y nd e x bull Introduction

bull Meacutethodologie AAA

bull Installationbull Utilisation du logiciel Syndex

bull Macrosbull LinuxIO un interface CC++ avec SynDEx

bull Exemple drsquoapplication Robuter-ULM

Equipe Systegraveme Robotiseacute de Production

V5

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7979

S y nd e x

Questions

Page 31: Cours Syndex

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3179

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Algorithmbull Le sommet function possegravede au moins une entreacutee et

une sortie crsquoest une opeacuteration agrave libre effet qui calculeses sorties uniquement agrave partir de ses entreacutees (c-a-d niagrave partir des variables globales ni agrave partir des

preacuteceacutedentes valeurs de ces entreacutees)bull Le sommet extio permet lrsquoacquisitionlrsquoeacutecriture des

entreacuteessorties on distingue trois cas

1 Capteur sans entreacutee agrave chaque reacuteaction sa sortierepreacutesente la valeur lue du capteur

2 Actionneur sans sortie agrave chaque reacuteaction ilenvoi son entreacutee agrave lrsquoactionneur

3 Linux_IO ces des meacutemoires partageacutees qui

permettent le transfert de donneacutees entre syndexet un langage eacutevolueacute

E i S egrave R b i eacute d P d i Algorithm

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3279

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Algorithm

bull Le sommet memory possegravede uniquement uneentreacutee et une sortie crsquoest une opeacuteration agrave effetunique qui met la sortie degraves la premiegravere reacuteaction

agrave une valeur initiale calculeacutee auparavant et puisla sortie de la prochaine reacuteaction nrsquoest que

lrsquoentreacutee de la preacuteceacutedente reacuteactionbull Le sommet constant ne possegravede aucune entreacutee

il calcule sa sortie une seule fois avant la premiegravere reacuteaction puis la sortie demeure la mecircme pour chaque reacuteaction

E i S tegrave R b ti eacute d P d ti Algorithm

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3379

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

AlgorithmPour lrsquoalgorithme chaque sommet est caracteacuteriseacute par

bull Son type geacuteneacuterique (function extio memory constant)bull Un nom unique (tout les sommets doivent avoir des

noms diffeacuterents)bull Son type identifiant sa seacutequence drsquoinstructionsassocieacute

bull Sa liste drsquoarguments ougrave chaque argument est speacutecifieacute par bull Le nombre drsquoentreacuteesortiebull Le type de donneacuteesbull Le nom (tout les arguments doivent avoir des noms

diffeacuterents)

Equipe Systegraveme Robotiseacute de Production Architecture

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3479

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

ArchitectureLrsquoarchitecture est speacutecifieacutee comme un graphe non orienteacute

ougrave bullChaque sommet est une ressource seacutequentielle il y adeux types de sommets

bull processeur crsquoest une ressource de calcul enmesure drsquoexeacutecuter seacutequentiellement les opeacuterationsdrsquoun algorithme il pourrait ecirctre un processeur ou

un circuit inteacutegreacute speacutecialiseacutebull meacutedia crsquoest une ressource de communicationen mesure drsquoexeacutecuter seacutequentiellement un transfertde donneacutees entre les meacutemoires des processeurs quilui sont connecteacutes

bull chaque arc est une connexion bidirectionnelle entreun processeur et un meacutedia

Equipe Systegraveme Robotiseacute de Production Architecture

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3579

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

ArchitecturePour lrsquoarchitecture chaque sommet est caracteacuteriseacute par

bull Un nom uniquebullSon type (processeur or meacutedia)bull Son type identifiant caracteacuteristiques mateacuterielles

bull Sa liste de connecteurs ougrave chaque connecteur est speacutecifieacute par bull son type identifiant le type de meacutedia agrave qui il peut ecirctreconnecteacute

bullUn nom

Equipe Systegraveme Robotiseacute de ProductionCaracteacuter st que

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3679

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Caracteacuter st que Nous distinguons deux cateacutegories de caracteacuteristiques lrsquoune relative

aux opeacuterations et lrsquoune agrave la communication 1 Comment speacutecifier les caracteacuteristiques des opeacuterations sous le menu AdequationAlOp_ArOp on obtient une boite

de dialogue avec

une liste de toutles types de

processeurs et

pour chaque processeur uneliste de tout les

types drsquoopeacuterationsqui peut lesexeacutecuter avec ladureacutee drsquoexeacutecutioncorrespondante

Equipe Systegraveme Robotiseacute de ProductionCaracteacuteristique

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3779

q p y

S y nd

e xV

5

q2 Comment speacutecifier les caracteacuteristiques de communication

sous le menu AdequationAlIO_ArIO on obtient une boitede dialogue avec une liste de tout les types de meacutedia et

pour chaque meacutedia une liste de tout les types de donneacutees

qui peut transfeacuterer avec la dureacutee de transfertcorrespondante

Equipe Systegraveme Robotiseacute de Production Contraintes

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3879

S y nd

e xV

5

Pour contraindre une opeacuteration agrave srsquoexeacutecuter sur un processeur donneacutee

1Seacutelectionner le(s) opeacuteration(s) agrave contraindre2 Seacutelectionner la commande AlgorithmSetConstraint3 Seacutelectionner le processeur qui doit exeacutecute les opeacuterationsseacutelectionneacutees

Pour enlever les contraintes seacutelectionner lrsquoopeacuteration puis exeacutecuterla commande AlgorithmDeleteConstraint

Pour voir sur quel processeur une opeacuteration est y contrainteseacutelectionner lrsquoopeacuteration puis exeacutecuter la commandeAlgorithmShowConstraint le processeur correspondant y sera

seacutelectionneacutePour voir toute les opeacuterations qui sont contraintes sur un processeurseacutelectionner le processeur puis exeacutecuter la commande

ArchitectureShowConstrained du menu les opeacuterationscorrespondantes y seront seacutelectionneacutees

Equipe Systegraveme Robotiseacute de Production A eacutequat o

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3979

S y nd

e xV

5

q

Pour construire le planificateur des opeacuterations dugraphe drsquoalgorithme sur les processeurs du graphedrsquoarchitecture qui effectue automatiquement le routage

des deacutependances de donneacutees inter-processeurs et lacreacuteation et la planification des opeacuterations decommunication sur le meacutedia du graphe drsquoarchitectureon utilise la commande AdequationDoIt

Cette commande creacutee un heuristique qui cherche agraveminimiser le chemin critique du graphe drsquoalgorithme

Equipe Systegraveme Robotiseacute de ProductionGeacuteneacuteration du code exeacutecuti

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4079

S y nd

e xV

5Le code exeacutecutif est la partie qui gegravere les ressources

mateacuterielles pour les allouer aux besoins de lrsquoalgorithmedrsquoapplication Les ressources agrave allouer sont

1 Les espaces meacutemoires des processeurs2 Le temps des seacutequences drsquoinstructions3 Le temps des meacutedia de communication

Gracircce agrave la meacutethodologie AAA et le logiciel Syndexlrsquoutilisateur est exempte drsquoeacutecrire du code pour geacuterer ces

ressources Donc par simple exeacutecution de la commandeAdequationGenExec un code distribueacute pour chaque processeur est automatiquement geacuteneacutereacute Ce code est en

fait un exeacutecutif geacuteneacutereacute sur mesure pour lrsquoalgorithme etlrsquoarchitecture

Equipe Systegraveme Robotiseacute de ProductionGeacuteneacuteration du code exeacutecuti

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4179

S y nd

e xV5

Pour chaque processeur de lrsquoarchitecture un fichier

source macro-exeacutecutif m4 avec le mecircme nom estgeacuteneacutereacute plus un macro-makefile ayant le mecircme nom quecelui de lrsquoapplication Chacun de ces fichiers doit ecirctre

transcrit par le macro-processeur GNU M4 (assembleurC) Cette transcription deacutepend de plusieurs fichiers

1 Fichier syndexm4x qui deacutefini les macrosgeacuteneacuteriques de syndex2 Fichier processorTypem4x qui deacutefini les macros

de bas niveau du processeur3 Fichier applicationNamem4x qui deacutefini les macros

speacutecifiques agrave lrsquoapplication

4 Fichier mediaTypem4x qui deacutefini les macros decommunication de bas niveau du type de media

Equipe Systegraveme Robotiseacute de ProductionCreacuteat on rsquoapp cat on

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4279

S y nd

e xV5 Arborescence des reacutepertoires Rep_travail

Applicationmacros

~rtai

Eacutevolution de lrsquoapplication

Phase 1

Edition des macros(C ou Assembleur)

+GNUmakefile

Phase 2

Edition du graphe

(Algorithme amp

Architecteure)

Phase 3

Compilation amp Exeacutecution

Equipe Systegraveme Robotiseacute de ProductionSeacutequence de compilation de Synde

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4379

S y nd

e xV5

Equipe Systegraveme Robotiseacute de Production Plan

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4479

S y nd

e xV5

bull Introduction

bull Meacutethodologie AAA

bull Installation

bull Utilisation du logiciel Syndex

bull Macros

bull LinuxIO un interface CC++ avec SynDEx

bull Exemple drsquoapplication Robuter-ULM

Equipe Systegraveme Robotiseacute de Production

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4579

S y nd

e xV5

Macros Macros

bull Deacutefinition

bull Types de macros

bull Carte Robosoft MPC555

bull Macros Geacuteneacuterique MPC555

bull Macros speacutecifique Robosoftbull Macros de Communication

bull Macros drsquoapplicationbull Structure du fichier Macro

Equipe Systegraveme Robotiseacute de Production Deacutefinition

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4679

S y nd

e xV5

Un macro-processeur est un programme qui consommeen entreacutee une chaicircne de caractegraveres (texte source) la

traite seacutequentiellement en substituant chaque sous-chaicircne qursquoil reconnaicirct (Appel de macro) par unechaicircne correspondante de substitution ( Deacutefinition de

macro) qursquoil traite agrave nouveau jusqursquoagrave ce qursquoil nrsquo y ait plus de substitution possible et qui produit en sortie lachaicircne de caractegraveres traiteacutee

Equipe Systegraveme Robotiseacute de Productionypes e macrosL diffeacute t di ti t d d

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4779

S y nd

e xV5

Les diffeacuterents macros se distinguent en deux grandes

classes bull Macros geacuteneacuteriques

en geacuteneacuteral ceux sont des macros non destineacutes agraveecirctre utiliser directement par lrsquointerface syndexmais plutocirct utiliseacutees pour la programmation

drsquoautres macros (macros MPC555)bull Macros utilisateurs

macros utiliseacutes directement par syndex ils sontspeacutecifiques agrave lrsquoapplication (macros decommunication macros speacutecifiques robosoft

macros speacutecifiques agrave lrsquoapplication)

Equipe Systegraveme Robotiseacute de ProductionCarte Robosoft MPC555La carte Robosoft MPC555 est conccedilue pour la commande de robot de veacutehicule

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4879

S y nd

e xV5

(1) Connecteur du chip MPC555(2) Alimentation continue(3) Interface BDM (Basic Debug Interface)(4) Entreacute Analogique (Joystickhellip)(5) EntreacuteSortie logiques(6) Ligne seacuterie Synchrone (Codeur absolu)(7) Ligne seacuterie Asynchrone (Port 0)

(8) Ligne seacuterie Asynchrone (Port 1)(9) Connecteur du bus CAN (Port 0)(10) Connecteur du bus CAN (Port 1)(11) Axe 1(13) Axe 2(14) Axe 3(15) Axe 4

La carte Robosoft MPC555 est conccedilue pour la commande de robot de veacutehiculeeacutelectrique ou toute autre machine Elle permet de commander un axe gracircce agrave

lrsquoajout drsquoune carte fille le controcircle srsquoeacutetend jusqursquoagrave 4 axesCette carte est baseacutee sur le microcontrocircleur MPC555 32-bit de MotorolaElle peut opeacuterer agrave une freacutequence

de 40 MHz Divers signauxlogique et analogique peuventecirctre utiliser pour lrsquoacquisition deet la commande de mateacuteriel Les

sorties disponibles peuvent ecirctreanalogique ou PWMOn y trouve

Equipe Systegraveme Robotiseacute de ProductionArchitecture du MPC555

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4979

S y nd

e xV5

Equipe Systegraveme Robotiseacute de Productionaract r st ques u

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5079

S y nd

e xV5

Equipe Systegraveme Robotiseacute de Productionacros n r quesbull GPIO (General-Purpose InputOutput)

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5179

S y nd

e xV5

GPIO (General Purpose InputOutput)ce macro utilise le module USIU qui lui fourni 64 pins pour desentreacuteessorties numeacuteriques ordinaires (IO de la carte Robosoft lirelrsquoeacutetat de la pince envoi de commande agrave la pince lire les alarmes)

bull QADC (Queued Analog to Digital Converter)en utilisant le module QADC ce macro permet la conversion drsquounsignal analogique en entreacutee en un signal numeacuterique multi-niveaux(lire les donneacutees du capteur drsquoeacuteffort du joystick)

bull MIOS (Modular InputOutput System)Le module MIOS fourni 16 pins drsquoES numeacuteriques Sur la carte deRobosoft tous les pins sont en sortie Les 16 pins sont reacutepartiscomme suit

utilisateurs reacuteserveacutes

les pins de 0 agrave 11 sont reacuteserveacutes car ils sont preacutevus agrave ecirctre utiliseacutes pour unmateacuteriel particulier Mais si ce mateacuteriel nrsquoest pas utiliseacute lrsquoutilisateur peut lesutiliser librement

15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

Equipe Systegraveme Robotiseacute de ProductionMacros Geacuteneacuter ques MPC55

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5279

S y nd

e xV5

bull PWM (Pulse width Modulation)utilise le module MIOS (pins de 4-7 pour la direction des moteurset de 8-11 pour la validation) pour la commande des actionneursnumeacuteriques en PWM

bull TPU (Time Processor Units)les macros lieacutes agrave ce module permettent la lecture des encodeurs

increacutementauxbull QSPI (Queued Serial Peripheral Interface)

ce module fait partie du module QSMCM et les macros lieacutes servent

agrave son initialisation pour une communication avec du mateacuterielsexternes via le bus seacuterie synchrone

Equipe Systegraveme Robotiseacute de ProductionMacros Geacuteneacuter ques MPC55

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5379

S y nd

e x

V5 bull Serial port support (Polling implementation)

le MPC555 comprend dans le module QSMCM une interface decommunication seacuterie SCI qui permet la communication avec dumateacuteriels externes via un bus seacuterie asynchrone Plusieurs macros

sont lieacutes agrave cette interface pour initialiser et eacutetablir la communicationbull Serial port support (interrupt handling implementation)

pour la mecircme interface SCI du module QSMCM pour cette

meacutethode drsquoimpleacutementation les macros lieacutes initialisent et eacutetablissentla communication en mode par interruption ce qui permet dedeacutetecter lrsquoarriveacutee des donneacutees sur le port seacuterie au lieu de le scruter

en permanence

tous ces macros on les retrouvent dans le fichier 555m4x

Equipe Systegraveme Robotiseacute de ProductionMacros Speacutec ques Ro oso tles macros suivants sont deacutedieacutes agrave la carte de Robosoft MPC555

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5479

S y nd

e x

V5

bull Initialisation de la carte Robosoftmain_ini_() macro ne doit pas ecirctre utiliser par les programmateursdu fait qursquoelle sert qursquoagrave initialiser la carte robosoft Macro interne agrave

syndex dont lrsquoappel est automatique lors de geacuteneacuteration drsquoexeacutecutifMPC555

bull DAC (Digital to Analog Converter)

macro permet lrsquoutilisation du convertisseur de carte robosoft via lemodule MIOs en utilisant les pins de 0 agrave 2

bull LED (on-bord LED interface)

macro permet la gestion de la LED de la carte robosoft connecteacuteeau module QSPI (pin PCS1)

bull SPI absolute encoder

macro permet lrsquoutilisation lrsquointerface du codeur absolu de la carterobosoft connecteacute au module QSPI

Equipe Systegraveme Robotiseacute de ProductionMacros Speacutec ques Ro oso tbull Motor amplifier direction

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5579

S y nd

e x

V5

Motor amplifier directionmacro qui permet de geacuterer la direction des moteurs

bull Motor power amplifier validationles moteurs embarqueacutes sur les robots sont eacutequipeacutes de freins

eacutelectriquement commandable Ce macro permet drsquoenvoyer unsignal drsquoinhibition pour deacutebloquer les freins

bull Watch dog

pour des raisons de seacutecuriteacute un meacutecanisme mateacuteriel que robosofta ajouteacute sur la carte Ce watch-dog vise agrave stopper lrsquoactiviteacute dumoteur en cas ougrave le programme plante Le watch est impleacutementeacute

comme un time-out mateacuteriel Srsquoil nrsquoest pas rafraicircchi peacuteriodiquement il transmet un signal de sortie ce qui enlegraveve lavalidation de lrsquoamplificateur de puissance donc lrsquoarrecirct dumouvement

ces macros se trouvent dans le fichier RSBm4x

Equipe Systegraveme Robotiseacute de Production

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5679

S y nd

e x

V5

Macros de Communicationchaque meacutedia de communication (bus CAN ) est une ressourceseacutequentielle ougrave les transferts de donneacutees entre processeurs doiventsuivre un certain ordre Donc ce macro de communication sert agravedeacutefinir cet ordre et agrave identifier le protocole de communication lecodagedeacutecodage de lrsquoinformation et la synchronisation

on trouve ces macros dans le fichier CANm4x

Macros drsquoapplicationce genre de macros sont speacutecifique au mateacuteriel en question et aussiagrave lrsquoapplication en particulier Ce sont des macros utilisateurs

on trouve ces macros dans le fichier Application_namem4x

Equipe Systegraveme Robotiseacute de Production

section include (pour inclure drsquoautres fichiers macro agrave utiliseStructure du fichier macr

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5779

S y nd

e x

V5

section define (pour tous les macros utilisateurs)MGC lsquoINITrsquo (MGC Macro Generation Context variable)

divert (declaration) (deacutebut du macro)

(deacuteclaration des variables des meacutemoires et des csts

divert (o)

MGC lsquolooprsquocode en assembleur code en C

dnl (commentaires)

MGC lsquoENDrsquo dnl (fin de la macros)divert lsquo lsquo dnl

macros MPC555meacutemoire MPC555

constante MPC555

macros RTAImeacutemoire RTAI

constante RTAI

Equipe Systegraveme Robotiseacute de Production Plan

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5879

S y nd

e x

V5

bull Introduction

bull Meacutethodologie AAA

bull Installationbull Utilisation du logiciel Syndex

bull Macrosbull LinuxIO un interface CC++ avec SynDEx

bull Exemple drsquoapplication Robuter-ULM

Equipe Systegraveme Robotiseacute de Production

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5979

S y nd

e x

V5

LinuxIO LinuxIO une interface une interface

CC++ avecCC++ avec SynDExSynDEx

bull Principe de basebull Utilisation de linuxIO_ par syndex

bull Utilisation de linuxIO_ par un programmeCC++

Equipe Systegraveme Robotiseacute de ProductionPrincipe de baseSyndex fourni une interface graphique pour la conception

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6079

S y nd

e x

V5

Syndex fourni une interface graphique pour la conception

drsquoapplications Par contre des fois nous avons besoin drsquoautresfonctionnaliteacutes non disponibles donc il faut les creacuteer Cependantgeacuteneacuterer des macros pour syndex srsquoavegravere difficile pour certains du

fait qursquoil faut avoir une bonne connaissance de la programmation bas niveau Dans ce cas lrsquoutilisation de linux_IO trouve sa placedans un contexte particulier interfacer des applications CC++utilisateurs avec des applications embarqueacutees temps reacuteeldeacuteveloppeacutees sous syndex

Par rapport agrave ce contexte de programmation lrsquoorganisation du

deacuteveloppement des applications est structureacutee en deux parties 1 Application haut niveau

2 Application bas niveau

Equipe Systegraveme Robotiseacute de ProductionPrincipe de base

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6179

S y nd

e x

V5

En reacutesumeacute lrsquoapplicationutilisateur contient une

partie haut niveau enCC++ et une partie basniveau sous syndex avecun eacutechange de donneacuteesentre les deux partie en

utilisant la couche RTAIde linux

Equipe Systegraveme Robotiseacute de Production pp cat on aut n veauOn entend application haut

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6279

S y nd

e x

V5

niveau tout programmecomme la planification detrajectoires strateacutegies de

navigation etc hellipLrsquoeacutechange de donneacutees sefait par le biais desmeacutemoires partageacutees quifont parti du noyau RTAI

et de lrsquoespace utilisateursde Linux

Toute ressource preacutesente sur la carte Robosoft peutecirctre partageacutee sans aune restriction

Equipe Systegraveme Robotiseacute de Production pp cat on as n veauUne application bas niveau

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6379

S y nd

e x

V5

Une application bas niveau

est un programme conccedilusous syndex comme lacommande des moteurs la

lecture des capteurs etc hellipLes ressources mateacuteriellessont controcircler par plusieurs

cartes MPC555 Ces cartessrsquoeacutechangent des donneacuteesvia le bus CAN Donc ES

est prise en charge par lasource logicielle deacutedieacutee quisrsquoexeacutecute dans les cartes MPC555 puis la couche RTAI

est utiliseacute pour la mise agrave jour de meacutemoires partageacutees pour lrsquoespace utilisateurs linux drsquoeacutechange de donneacutees

Equipe Systegraveme Robotiseacute de ProductionUtilisation de linux_IO par syndex

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6479

S y nd

e x

V5

Equipe Systegraveme Robotiseacute de ProductionUtilisation de linux_IO par syndex

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6579

S y nd

e x

V5

Equipe Systegraveme Robotiseacute de Production

5

Utilisation de linux_IO par syndex

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6679

S y nd

e x

V5

Degraves que la conception de lrsquoapplication sous syndex esttermineacutee et apregraves compilation (AdequationDo it +GenExec) un fichier drsquoentecircte sous le nom de linioh est

automatiquement geacuteneacutereacute Ce fichier contient lesinformations neacutecessaires pour acceacuteder aux entreacutees enlecture et aux sorties en eacutecriture des opeacuterations linuxIO_

inseacutereacutees dans le graphe drsquoalgorithme Le contenu de cefichier est organiseacute en plusieurs parties une pour chaqueopeacuteration linux_IO preacutesente dans le graphe

Equipe Systegraveme Robotiseacute de Production

5

Utilisation de linux_IO par syndex linioh auto-generated C users API frontend

C i h b f 2001 i i i b f f

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6779

S y nd

e x

V5 Copyright Robosoft 2001 Pierre Pomiers ltpierrerobosoftfrgt

LINUX IO shared memory data segments

define SEG0_BASE 0x10000typedef struct

int js_spd_o0

int js_str_o0

int enc_R_o0int enc_L_o0

double odo_X_o0

double odo_Y_o0

double odo_T_o0int spd_R_o0

int spd_L_o0

int time

unsigned char sem shm_seg0_def

Nom du segment de meacutemoire partageacutee pour notre opeacuteration linuxIO_

7 signaux drsquoentreacutees Ces valeurs sonten lecture et sont peacuteriodiquementrafraicircchies par RTAI

2 signaux de sorties Ces valeurs sonten eacutecriture et sont peacuteriodiquementrafraicircchies par RTAI

Equipe Systegraveme Robotiseacute de Production

5

Crsquoest une eacutetape tregraves facile il suffit drsquoinclure le fichier drsquoentecirctelinio h dans le code du fichier en CC++ comme suit

Utilisation de linuxIO_ par un programme CC+

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6879

S y nd

e x

V5 linioh dans le code du fichier en CC++ comme suit

include linioh

include ltrtai_shmhgt

static shm_seg0_def seg0

shm_seg0_def robot

seg0 = rtai_malloc (SEG0_BASE sizeof (shm_seg0_def))

if (seg0-gtsem = 0) bcopy (seg0 amprobot sizeof (shm_seg0_def))helliphelliphellip

helliphelliphellip bcopy (amprobot seg0 sizeof (shm_seg0_def))helliphelliphelliphelliphelliphellip

rtai_free (SEG0_BASE seg0)

fichier drsquoentecircte de la meacutemoire partageacutee fourni dans la couche RTAI de linux

Initialisation du segment SEG0_BASE Allocation de lameacutemoire pointeacutee

par seg0

Lecture des donneacutees provenant du bas

niveau

Mise agrave jours du segment de meacutemoire partageacutee

Libeacuterer le segment de meacutemoire alloueacute

Equipe Systegraveme Robotiseacute de Production

5

Plan

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6979

S y nd e x

V5

bull Introductionbull Meacutethodologie AAA

bull Installationbull Utilisation du logiciel Syndex

bull Macrosbull LinuxIO un interface CC++ avec SynDEx

bull Exemple drsquoapplication Robuter-ULM

Equipe Systegraveme Robotiseacute de Production

V5

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7079

S y nd e x

V5

Exemple dapplication Exemple dapplication Robuter Robuter--ULM ULM

Equipe Systegraveme Robotiseacute de Production

V5

Description Robuter-ULMbull Base mobile (2-RM 2-RF)

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7179

S y nd e x

V

bull Bras ultra-leacuteger 6 axesbull Ceinture 24 capteurs US

bull Capteur drsquoefforts 6 axes

bull Cameacutera CCD monochromeavec carte drsquoacquisition

bull PC embarqueacute MMX 233

bull OS linux redhat 61 avecRTAI V-13

bull 3 bouton drsquoarrecirct drsquourgence

bull 4 batteries 48 VDC 4 X12V 60 Ah

bull Entreacutee Joystick

bull Liaison Ethernet sans fil

Le manipulateur mobile Robuter-ULM comprend

Equipe Systegraveme Robotiseacute de Production

V5

Base Mobilebull dimension

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7279

S y nd e x

V

1025 mm de longueur 680 mm de largueur et 44 cm de hauteurbull Poids environ 150 kg avec les batteriesbull charge jusqursquoagrave 120 kg

bull vitesse de 5cms agrave 125 msbull Moteurs 2 X 300 W DC 48 VDCbull orientation par diffeacuterence de vitesse

bull Preacutecision Position par encodeurs optiquesbull Deux roues motrices diffeacuterentielles et de deux roues follesbull Drsquoune ceinture de 24 capteurs Ultrasons

bull Une carte MPC555 de Robosoft pour le controcircle des deuxmoteurs DC des 2 rouesbull Un systegraveme drsquoodomeacutetrie qui donne la position relative du robot

par rapport agrave son repegravere

Equipe Systegraveme Robotiseacute de Production

V5

bull dimension Faute de documentation

Bras U tra- eacuteger

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7379

S y nd e x

V Faute de documentation

bull Poids moins de 20 kgbull charge 2 kgbull Moteurs 6 moteurs DC

bull gripper pince eacutelectrique 2 doigtsbull Reacutepeacutetabiliteacute +- 1mmbull 3 carte MPC555 de Robosoft lrsquoune pour le capteur drsquoeffort et les

deux autres pour les 6 moteurs + moteur de la pincebull Position encodeur increacutemental

1 2 3 4 5 6Axisrange

plusmn90deg 0-90deg plusmn80deg plusmn100deg plusmn90deg plusmn110deg

vitesse 180degs 180degs 180degs 180degs 180degs 180degs

Equipe Systegraveme Robotiseacute de Production

V5

rc tecture ar ware

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7479

S y nd e x

V

Equipe Systegraveme Robotiseacute de Production

V5

Pro eacutemat quePlusieurs applications peuvent ecirctre impleacutementeacutees sur le robot

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7579

S y nd e x

V

Cependant il faut faire la diffeacuterence entre les applications quidemande lrsquoutilisation de syndex et les applications qui neneacutecessite qursquoune programmation en CC++ Agrave titre drsquoexemple

bull Localisationbull Commande en position

bull Commande en forcebull Navigation

bull Geacuteneacuteration de trajectoire

bull Vision

Equipe Systegraveme Robotiseacute de Production

V5 bull Pince eacutelectrique (TOR)

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7679

S y nd e x

Vq ( )

bull Pince possegravede des ES Logiques

Notre application consiste agrave

bull Recevoir lrsquoeacutetat de la pince (fermeacutee ouverte )

bull Envoyer une commande vers la pince

Capture

drsquoinformation

Open

Close

CommandeMeacutemoire

Partageacutee

Actionneur

Pince Prise de deacutecision Pince

Equipe Systegraveme Robotiseacute de Production

V5

Sc eacutema eacute ectr que

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7779

S y nd e x

Equipe Systegraveme Robotiseacute de Production

V5

Conclusion

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7879

S y nd e x bull Introduction

bull Meacutethodologie AAA

bull Installationbull Utilisation du logiciel Syndex

bull Macrosbull LinuxIO un interface CC++ avec SynDEx

bull Exemple drsquoapplication Robuter-ULM

Equipe Systegraveme Robotiseacute de Production

V5

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7979

S y nd e x

Questions

Page 32: Cours Syndex

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3279

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Algorithm

bull Le sommet memory possegravede uniquement uneentreacutee et une sortie crsquoest une opeacuteration agrave effetunique qui met la sortie degraves la premiegravere reacuteaction

agrave une valeur initiale calculeacutee auparavant et puisla sortie de la prochaine reacuteaction nrsquoest que

lrsquoentreacutee de la preacuteceacutedente reacuteactionbull Le sommet constant ne possegravede aucune entreacutee

il calcule sa sortie une seule fois avant la premiegravere reacuteaction puis la sortie demeure la mecircme pour chaque reacuteaction

E i S tegrave R b ti eacute d P d ti Algorithm

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3379

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

AlgorithmPour lrsquoalgorithme chaque sommet est caracteacuteriseacute par

bull Son type geacuteneacuterique (function extio memory constant)bull Un nom unique (tout les sommets doivent avoir des

noms diffeacuterents)bull Son type identifiant sa seacutequence drsquoinstructionsassocieacute

bull Sa liste drsquoarguments ougrave chaque argument est speacutecifieacute par bull Le nombre drsquoentreacuteesortiebull Le type de donneacuteesbull Le nom (tout les arguments doivent avoir des noms

diffeacuterents)

Equipe Systegraveme Robotiseacute de Production Architecture

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3479

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

ArchitectureLrsquoarchitecture est speacutecifieacutee comme un graphe non orienteacute

ougrave bullChaque sommet est une ressource seacutequentielle il y adeux types de sommets

bull processeur crsquoest une ressource de calcul enmesure drsquoexeacutecuter seacutequentiellement les opeacuterationsdrsquoun algorithme il pourrait ecirctre un processeur ou

un circuit inteacutegreacute speacutecialiseacutebull meacutedia crsquoest une ressource de communicationen mesure drsquoexeacutecuter seacutequentiellement un transfertde donneacutees entre les meacutemoires des processeurs quilui sont connecteacutes

bull chaque arc est une connexion bidirectionnelle entreun processeur et un meacutedia

Equipe Systegraveme Robotiseacute de Production Architecture

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3579

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

ArchitecturePour lrsquoarchitecture chaque sommet est caracteacuteriseacute par

bull Un nom uniquebullSon type (processeur or meacutedia)bull Son type identifiant caracteacuteristiques mateacuterielles

bull Sa liste de connecteurs ougrave chaque connecteur est speacutecifieacute par bull son type identifiant le type de meacutedia agrave qui il peut ecirctreconnecteacute

bullUn nom

Equipe Systegraveme Robotiseacute de ProductionCaracteacuter st que

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3679

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Caracteacuter st que Nous distinguons deux cateacutegories de caracteacuteristiques lrsquoune relative

aux opeacuterations et lrsquoune agrave la communication 1 Comment speacutecifier les caracteacuteristiques des opeacuterations sous le menu AdequationAlOp_ArOp on obtient une boite

de dialogue avec

une liste de toutles types de

processeurs et

pour chaque processeur uneliste de tout les

types drsquoopeacuterationsqui peut lesexeacutecuter avec ladureacutee drsquoexeacutecutioncorrespondante

Equipe Systegraveme Robotiseacute de ProductionCaracteacuteristique

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3779

q p y

S y nd

e xV

5

q2 Comment speacutecifier les caracteacuteristiques de communication

sous le menu AdequationAlIO_ArIO on obtient une boitede dialogue avec une liste de tout les types de meacutedia et

pour chaque meacutedia une liste de tout les types de donneacutees

qui peut transfeacuterer avec la dureacutee de transfertcorrespondante

Equipe Systegraveme Robotiseacute de Production Contraintes

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3879

S y nd

e xV

5

Pour contraindre une opeacuteration agrave srsquoexeacutecuter sur un processeur donneacutee

1Seacutelectionner le(s) opeacuteration(s) agrave contraindre2 Seacutelectionner la commande AlgorithmSetConstraint3 Seacutelectionner le processeur qui doit exeacutecute les opeacuterationsseacutelectionneacutees

Pour enlever les contraintes seacutelectionner lrsquoopeacuteration puis exeacutecuterla commande AlgorithmDeleteConstraint

Pour voir sur quel processeur une opeacuteration est y contrainteseacutelectionner lrsquoopeacuteration puis exeacutecuter la commandeAlgorithmShowConstraint le processeur correspondant y sera

seacutelectionneacutePour voir toute les opeacuterations qui sont contraintes sur un processeurseacutelectionner le processeur puis exeacutecuter la commande

ArchitectureShowConstrained du menu les opeacuterationscorrespondantes y seront seacutelectionneacutees

Equipe Systegraveme Robotiseacute de Production A eacutequat o

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3979

S y nd

e xV

5

q

Pour construire le planificateur des opeacuterations dugraphe drsquoalgorithme sur les processeurs du graphedrsquoarchitecture qui effectue automatiquement le routage

des deacutependances de donneacutees inter-processeurs et lacreacuteation et la planification des opeacuterations decommunication sur le meacutedia du graphe drsquoarchitectureon utilise la commande AdequationDoIt

Cette commande creacutee un heuristique qui cherche agraveminimiser le chemin critique du graphe drsquoalgorithme

Equipe Systegraveme Robotiseacute de ProductionGeacuteneacuteration du code exeacutecuti

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4079

S y nd

e xV

5Le code exeacutecutif est la partie qui gegravere les ressources

mateacuterielles pour les allouer aux besoins de lrsquoalgorithmedrsquoapplication Les ressources agrave allouer sont

1 Les espaces meacutemoires des processeurs2 Le temps des seacutequences drsquoinstructions3 Le temps des meacutedia de communication

Gracircce agrave la meacutethodologie AAA et le logiciel Syndexlrsquoutilisateur est exempte drsquoeacutecrire du code pour geacuterer ces

ressources Donc par simple exeacutecution de la commandeAdequationGenExec un code distribueacute pour chaque processeur est automatiquement geacuteneacutereacute Ce code est en

fait un exeacutecutif geacuteneacutereacute sur mesure pour lrsquoalgorithme etlrsquoarchitecture

Equipe Systegraveme Robotiseacute de ProductionGeacuteneacuteration du code exeacutecuti

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4179

S y nd

e xV5

Pour chaque processeur de lrsquoarchitecture un fichier

source macro-exeacutecutif m4 avec le mecircme nom estgeacuteneacutereacute plus un macro-makefile ayant le mecircme nom quecelui de lrsquoapplication Chacun de ces fichiers doit ecirctre

transcrit par le macro-processeur GNU M4 (assembleurC) Cette transcription deacutepend de plusieurs fichiers

1 Fichier syndexm4x qui deacutefini les macrosgeacuteneacuteriques de syndex2 Fichier processorTypem4x qui deacutefini les macros

de bas niveau du processeur3 Fichier applicationNamem4x qui deacutefini les macros

speacutecifiques agrave lrsquoapplication

4 Fichier mediaTypem4x qui deacutefini les macros decommunication de bas niveau du type de media

Equipe Systegraveme Robotiseacute de ProductionCreacuteat on rsquoapp cat on

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4279

S y nd

e xV5 Arborescence des reacutepertoires Rep_travail

Applicationmacros

~rtai

Eacutevolution de lrsquoapplication

Phase 1

Edition des macros(C ou Assembleur)

+GNUmakefile

Phase 2

Edition du graphe

(Algorithme amp

Architecteure)

Phase 3

Compilation amp Exeacutecution

Equipe Systegraveme Robotiseacute de ProductionSeacutequence de compilation de Synde

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4379

S y nd

e xV5

Equipe Systegraveme Robotiseacute de Production Plan

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4479

S y nd

e xV5

bull Introduction

bull Meacutethodologie AAA

bull Installation

bull Utilisation du logiciel Syndex

bull Macros

bull LinuxIO un interface CC++ avec SynDEx

bull Exemple drsquoapplication Robuter-ULM

Equipe Systegraveme Robotiseacute de Production

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4579

S y nd

e xV5

Macros Macros

bull Deacutefinition

bull Types de macros

bull Carte Robosoft MPC555

bull Macros Geacuteneacuterique MPC555

bull Macros speacutecifique Robosoftbull Macros de Communication

bull Macros drsquoapplicationbull Structure du fichier Macro

Equipe Systegraveme Robotiseacute de Production Deacutefinition

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4679

S y nd

e xV5

Un macro-processeur est un programme qui consommeen entreacutee une chaicircne de caractegraveres (texte source) la

traite seacutequentiellement en substituant chaque sous-chaicircne qursquoil reconnaicirct (Appel de macro) par unechaicircne correspondante de substitution ( Deacutefinition de

macro) qursquoil traite agrave nouveau jusqursquoagrave ce qursquoil nrsquo y ait plus de substitution possible et qui produit en sortie lachaicircne de caractegraveres traiteacutee

Equipe Systegraveme Robotiseacute de Productionypes e macrosL diffeacute t di ti t d d

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4779

S y nd

e xV5

Les diffeacuterents macros se distinguent en deux grandes

classes bull Macros geacuteneacuteriques

en geacuteneacuteral ceux sont des macros non destineacutes agraveecirctre utiliser directement par lrsquointerface syndexmais plutocirct utiliseacutees pour la programmation

drsquoautres macros (macros MPC555)bull Macros utilisateurs

macros utiliseacutes directement par syndex ils sontspeacutecifiques agrave lrsquoapplication (macros decommunication macros speacutecifiques robosoft

macros speacutecifiques agrave lrsquoapplication)

Equipe Systegraveme Robotiseacute de ProductionCarte Robosoft MPC555La carte Robosoft MPC555 est conccedilue pour la commande de robot de veacutehicule

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4879

S y nd

e xV5

(1) Connecteur du chip MPC555(2) Alimentation continue(3) Interface BDM (Basic Debug Interface)(4) Entreacute Analogique (Joystickhellip)(5) EntreacuteSortie logiques(6) Ligne seacuterie Synchrone (Codeur absolu)(7) Ligne seacuterie Asynchrone (Port 0)

(8) Ligne seacuterie Asynchrone (Port 1)(9) Connecteur du bus CAN (Port 0)(10) Connecteur du bus CAN (Port 1)(11) Axe 1(13) Axe 2(14) Axe 3(15) Axe 4

La carte Robosoft MPC555 est conccedilue pour la commande de robot de veacutehiculeeacutelectrique ou toute autre machine Elle permet de commander un axe gracircce agrave

lrsquoajout drsquoune carte fille le controcircle srsquoeacutetend jusqursquoagrave 4 axesCette carte est baseacutee sur le microcontrocircleur MPC555 32-bit de MotorolaElle peut opeacuterer agrave une freacutequence

de 40 MHz Divers signauxlogique et analogique peuventecirctre utiliser pour lrsquoacquisition deet la commande de mateacuteriel Les

sorties disponibles peuvent ecirctreanalogique ou PWMOn y trouve

Equipe Systegraveme Robotiseacute de ProductionArchitecture du MPC555

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4979

S y nd

e xV5

Equipe Systegraveme Robotiseacute de Productionaract r st ques u

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5079

S y nd

e xV5

Equipe Systegraveme Robotiseacute de Productionacros n r quesbull GPIO (General-Purpose InputOutput)

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5179

S y nd

e xV5

GPIO (General Purpose InputOutput)ce macro utilise le module USIU qui lui fourni 64 pins pour desentreacuteessorties numeacuteriques ordinaires (IO de la carte Robosoft lirelrsquoeacutetat de la pince envoi de commande agrave la pince lire les alarmes)

bull QADC (Queued Analog to Digital Converter)en utilisant le module QADC ce macro permet la conversion drsquounsignal analogique en entreacutee en un signal numeacuterique multi-niveaux(lire les donneacutees du capteur drsquoeacuteffort du joystick)

bull MIOS (Modular InputOutput System)Le module MIOS fourni 16 pins drsquoES numeacuteriques Sur la carte deRobosoft tous les pins sont en sortie Les 16 pins sont reacutepartiscomme suit

utilisateurs reacuteserveacutes

les pins de 0 agrave 11 sont reacuteserveacutes car ils sont preacutevus agrave ecirctre utiliseacutes pour unmateacuteriel particulier Mais si ce mateacuteriel nrsquoest pas utiliseacute lrsquoutilisateur peut lesutiliser librement

15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

Equipe Systegraveme Robotiseacute de ProductionMacros Geacuteneacuter ques MPC55

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5279

S y nd

e xV5

bull PWM (Pulse width Modulation)utilise le module MIOS (pins de 4-7 pour la direction des moteurset de 8-11 pour la validation) pour la commande des actionneursnumeacuteriques en PWM

bull TPU (Time Processor Units)les macros lieacutes agrave ce module permettent la lecture des encodeurs

increacutementauxbull QSPI (Queued Serial Peripheral Interface)

ce module fait partie du module QSMCM et les macros lieacutes servent

agrave son initialisation pour une communication avec du mateacuterielsexternes via le bus seacuterie synchrone

Equipe Systegraveme Robotiseacute de ProductionMacros Geacuteneacuter ques MPC55

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5379

S y nd

e x

V5 bull Serial port support (Polling implementation)

le MPC555 comprend dans le module QSMCM une interface decommunication seacuterie SCI qui permet la communication avec dumateacuteriels externes via un bus seacuterie asynchrone Plusieurs macros

sont lieacutes agrave cette interface pour initialiser et eacutetablir la communicationbull Serial port support (interrupt handling implementation)

pour la mecircme interface SCI du module QSMCM pour cette

meacutethode drsquoimpleacutementation les macros lieacutes initialisent et eacutetablissentla communication en mode par interruption ce qui permet dedeacutetecter lrsquoarriveacutee des donneacutees sur le port seacuterie au lieu de le scruter

en permanence

tous ces macros on les retrouvent dans le fichier 555m4x

Equipe Systegraveme Robotiseacute de ProductionMacros Speacutec ques Ro oso tles macros suivants sont deacutedieacutes agrave la carte de Robosoft MPC555

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5479

S y nd

e x

V5

bull Initialisation de la carte Robosoftmain_ini_() macro ne doit pas ecirctre utiliser par les programmateursdu fait qursquoelle sert qursquoagrave initialiser la carte robosoft Macro interne agrave

syndex dont lrsquoappel est automatique lors de geacuteneacuteration drsquoexeacutecutifMPC555

bull DAC (Digital to Analog Converter)

macro permet lrsquoutilisation du convertisseur de carte robosoft via lemodule MIOs en utilisant les pins de 0 agrave 2

bull LED (on-bord LED interface)

macro permet la gestion de la LED de la carte robosoft connecteacuteeau module QSPI (pin PCS1)

bull SPI absolute encoder

macro permet lrsquoutilisation lrsquointerface du codeur absolu de la carterobosoft connecteacute au module QSPI

Equipe Systegraveme Robotiseacute de ProductionMacros Speacutec ques Ro oso tbull Motor amplifier direction

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5579

S y nd

e x

V5

Motor amplifier directionmacro qui permet de geacuterer la direction des moteurs

bull Motor power amplifier validationles moteurs embarqueacutes sur les robots sont eacutequipeacutes de freins

eacutelectriquement commandable Ce macro permet drsquoenvoyer unsignal drsquoinhibition pour deacutebloquer les freins

bull Watch dog

pour des raisons de seacutecuriteacute un meacutecanisme mateacuteriel que robosofta ajouteacute sur la carte Ce watch-dog vise agrave stopper lrsquoactiviteacute dumoteur en cas ougrave le programme plante Le watch est impleacutementeacute

comme un time-out mateacuteriel Srsquoil nrsquoest pas rafraicircchi peacuteriodiquement il transmet un signal de sortie ce qui enlegraveve lavalidation de lrsquoamplificateur de puissance donc lrsquoarrecirct dumouvement

ces macros se trouvent dans le fichier RSBm4x

Equipe Systegraveme Robotiseacute de Production

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5679

S y nd

e x

V5

Macros de Communicationchaque meacutedia de communication (bus CAN ) est une ressourceseacutequentielle ougrave les transferts de donneacutees entre processeurs doiventsuivre un certain ordre Donc ce macro de communication sert agravedeacutefinir cet ordre et agrave identifier le protocole de communication lecodagedeacutecodage de lrsquoinformation et la synchronisation

on trouve ces macros dans le fichier CANm4x

Macros drsquoapplicationce genre de macros sont speacutecifique au mateacuteriel en question et aussiagrave lrsquoapplication en particulier Ce sont des macros utilisateurs

on trouve ces macros dans le fichier Application_namem4x

Equipe Systegraveme Robotiseacute de Production

section include (pour inclure drsquoautres fichiers macro agrave utiliseStructure du fichier macr

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5779

S y nd

e x

V5

section define (pour tous les macros utilisateurs)MGC lsquoINITrsquo (MGC Macro Generation Context variable)

divert (declaration) (deacutebut du macro)

(deacuteclaration des variables des meacutemoires et des csts

divert (o)

MGC lsquolooprsquocode en assembleur code en C

dnl (commentaires)

MGC lsquoENDrsquo dnl (fin de la macros)divert lsquo lsquo dnl

macros MPC555meacutemoire MPC555

constante MPC555

macros RTAImeacutemoire RTAI

constante RTAI

Equipe Systegraveme Robotiseacute de Production Plan

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5879

S y nd

e x

V5

bull Introduction

bull Meacutethodologie AAA

bull Installationbull Utilisation du logiciel Syndex

bull Macrosbull LinuxIO un interface CC++ avec SynDEx

bull Exemple drsquoapplication Robuter-ULM

Equipe Systegraveme Robotiseacute de Production

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5979

S y nd

e x

V5

LinuxIO LinuxIO une interface une interface

CC++ avecCC++ avec SynDExSynDEx

bull Principe de basebull Utilisation de linuxIO_ par syndex

bull Utilisation de linuxIO_ par un programmeCC++

Equipe Systegraveme Robotiseacute de ProductionPrincipe de baseSyndex fourni une interface graphique pour la conception

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6079

S y nd

e x

V5

Syndex fourni une interface graphique pour la conception

drsquoapplications Par contre des fois nous avons besoin drsquoautresfonctionnaliteacutes non disponibles donc il faut les creacuteer Cependantgeacuteneacuterer des macros pour syndex srsquoavegravere difficile pour certains du

fait qursquoil faut avoir une bonne connaissance de la programmation bas niveau Dans ce cas lrsquoutilisation de linux_IO trouve sa placedans un contexte particulier interfacer des applications CC++utilisateurs avec des applications embarqueacutees temps reacuteeldeacuteveloppeacutees sous syndex

Par rapport agrave ce contexte de programmation lrsquoorganisation du

deacuteveloppement des applications est structureacutee en deux parties 1 Application haut niveau

2 Application bas niveau

Equipe Systegraveme Robotiseacute de ProductionPrincipe de base

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6179

S y nd

e x

V5

En reacutesumeacute lrsquoapplicationutilisateur contient une

partie haut niveau enCC++ et une partie basniveau sous syndex avecun eacutechange de donneacuteesentre les deux partie en

utilisant la couche RTAIde linux

Equipe Systegraveme Robotiseacute de Production pp cat on aut n veauOn entend application haut

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6279

S y nd

e x

V5

niveau tout programmecomme la planification detrajectoires strateacutegies de

navigation etc hellipLrsquoeacutechange de donneacutees sefait par le biais desmeacutemoires partageacutees quifont parti du noyau RTAI

et de lrsquoespace utilisateursde Linux

Toute ressource preacutesente sur la carte Robosoft peutecirctre partageacutee sans aune restriction

Equipe Systegraveme Robotiseacute de Production pp cat on as n veauUne application bas niveau

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6379

S y nd

e x

V5

Une application bas niveau

est un programme conccedilusous syndex comme lacommande des moteurs la

lecture des capteurs etc hellipLes ressources mateacuteriellessont controcircler par plusieurs

cartes MPC555 Ces cartessrsquoeacutechangent des donneacuteesvia le bus CAN Donc ES

est prise en charge par lasource logicielle deacutedieacutee quisrsquoexeacutecute dans les cartes MPC555 puis la couche RTAI

est utiliseacute pour la mise agrave jour de meacutemoires partageacutees pour lrsquoespace utilisateurs linux drsquoeacutechange de donneacutees

Equipe Systegraveme Robotiseacute de ProductionUtilisation de linux_IO par syndex

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6479

S y nd

e x

V5

Equipe Systegraveme Robotiseacute de ProductionUtilisation de linux_IO par syndex

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6579

S y nd

e x

V5

Equipe Systegraveme Robotiseacute de Production

5

Utilisation de linux_IO par syndex

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6679

S y nd

e x

V5

Degraves que la conception de lrsquoapplication sous syndex esttermineacutee et apregraves compilation (AdequationDo it +GenExec) un fichier drsquoentecircte sous le nom de linioh est

automatiquement geacuteneacutereacute Ce fichier contient lesinformations neacutecessaires pour acceacuteder aux entreacutees enlecture et aux sorties en eacutecriture des opeacuterations linuxIO_

inseacutereacutees dans le graphe drsquoalgorithme Le contenu de cefichier est organiseacute en plusieurs parties une pour chaqueopeacuteration linux_IO preacutesente dans le graphe

Equipe Systegraveme Robotiseacute de Production

5

Utilisation de linux_IO par syndex linioh auto-generated C users API frontend

C i h b f 2001 i i i b f f

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6779

S y nd

e x

V5 Copyright Robosoft 2001 Pierre Pomiers ltpierrerobosoftfrgt

LINUX IO shared memory data segments

define SEG0_BASE 0x10000typedef struct

int js_spd_o0

int js_str_o0

int enc_R_o0int enc_L_o0

double odo_X_o0

double odo_Y_o0

double odo_T_o0int spd_R_o0

int spd_L_o0

int time

unsigned char sem shm_seg0_def

Nom du segment de meacutemoire partageacutee pour notre opeacuteration linuxIO_

7 signaux drsquoentreacutees Ces valeurs sonten lecture et sont peacuteriodiquementrafraicircchies par RTAI

2 signaux de sorties Ces valeurs sonten eacutecriture et sont peacuteriodiquementrafraicircchies par RTAI

Equipe Systegraveme Robotiseacute de Production

5

Crsquoest une eacutetape tregraves facile il suffit drsquoinclure le fichier drsquoentecirctelinio h dans le code du fichier en CC++ comme suit

Utilisation de linuxIO_ par un programme CC+

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6879

S y nd

e x

V5 linioh dans le code du fichier en CC++ comme suit

include linioh

include ltrtai_shmhgt

static shm_seg0_def seg0

shm_seg0_def robot

seg0 = rtai_malloc (SEG0_BASE sizeof (shm_seg0_def))

if (seg0-gtsem = 0) bcopy (seg0 amprobot sizeof (shm_seg0_def))helliphelliphellip

helliphelliphellip bcopy (amprobot seg0 sizeof (shm_seg0_def))helliphelliphelliphelliphelliphellip

rtai_free (SEG0_BASE seg0)

fichier drsquoentecircte de la meacutemoire partageacutee fourni dans la couche RTAI de linux

Initialisation du segment SEG0_BASE Allocation de lameacutemoire pointeacutee

par seg0

Lecture des donneacutees provenant du bas

niveau

Mise agrave jours du segment de meacutemoire partageacutee

Libeacuterer le segment de meacutemoire alloueacute

Equipe Systegraveme Robotiseacute de Production

5

Plan

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6979

S y nd e x

V5

bull Introductionbull Meacutethodologie AAA

bull Installationbull Utilisation du logiciel Syndex

bull Macrosbull LinuxIO un interface CC++ avec SynDEx

bull Exemple drsquoapplication Robuter-ULM

Equipe Systegraveme Robotiseacute de Production

V5

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7079

S y nd e x

V5

Exemple dapplication Exemple dapplication Robuter Robuter--ULM ULM

Equipe Systegraveme Robotiseacute de Production

V5

Description Robuter-ULMbull Base mobile (2-RM 2-RF)

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7179

S y nd e x

V

bull Bras ultra-leacuteger 6 axesbull Ceinture 24 capteurs US

bull Capteur drsquoefforts 6 axes

bull Cameacutera CCD monochromeavec carte drsquoacquisition

bull PC embarqueacute MMX 233

bull OS linux redhat 61 avecRTAI V-13

bull 3 bouton drsquoarrecirct drsquourgence

bull 4 batteries 48 VDC 4 X12V 60 Ah

bull Entreacutee Joystick

bull Liaison Ethernet sans fil

Le manipulateur mobile Robuter-ULM comprend

Equipe Systegraveme Robotiseacute de Production

V5

Base Mobilebull dimension

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7279

S y nd e x

V

1025 mm de longueur 680 mm de largueur et 44 cm de hauteurbull Poids environ 150 kg avec les batteriesbull charge jusqursquoagrave 120 kg

bull vitesse de 5cms agrave 125 msbull Moteurs 2 X 300 W DC 48 VDCbull orientation par diffeacuterence de vitesse

bull Preacutecision Position par encodeurs optiquesbull Deux roues motrices diffeacuterentielles et de deux roues follesbull Drsquoune ceinture de 24 capteurs Ultrasons

bull Une carte MPC555 de Robosoft pour le controcircle des deuxmoteurs DC des 2 rouesbull Un systegraveme drsquoodomeacutetrie qui donne la position relative du robot

par rapport agrave son repegravere

Equipe Systegraveme Robotiseacute de Production

V5

bull dimension Faute de documentation

Bras U tra- eacuteger

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7379

S y nd e x

V Faute de documentation

bull Poids moins de 20 kgbull charge 2 kgbull Moteurs 6 moteurs DC

bull gripper pince eacutelectrique 2 doigtsbull Reacutepeacutetabiliteacute +- 1mmbull 3 carte MPC555 de Robosoft lrsquoune pour le capteur drsquoeffort et les

deux autres pour les 6 moteurs + moteur de la pincebull Position encodeur increacutemental

1 2 3 4 5 6Axisrange

plusmn90deg 0-90deg plusmn80deg plusmn100deg plusmn90deg plusmn110deg

vitesse 180degs 180degs 180degs 180degs 180degs 180degs

Equipe Systegraveme Robotiseacute de Production

V5

rc tecture ar ware

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7479

S y nd e x

V

Equipe Systegraveme Robotiseacute de Production

V5

Pro eacutemat quePlusieurs applications peuvent ecirctre impleacutementeacutees sur le robot

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7579

S y nd e x

V

Cependant il faut faire la diffeacuterence entre les applications quidemande lrsquoutilisation de syndex et les applications qui neneacutecessite qursquoune programmation en CC++ Agrave titre drsquoexemple

bull Localisationbull Commande en position

bull Commande en forcebull Navigation

bull Geacuteneacuteration de trajectoire

bull Vision

Equipe Systegraveme Robotiseacute de Production

V5 bull Pince eacutelectrique (TOR)

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7679

S y nd e x

Vq ( )

bull Pince possegravede des ES Logiques

Notre application consiste agrave

bull Recevoir lrsquoeacutetat de la pince (fermeacutee ouverte )

bull Envoyer une commande vers la pince

Capture

drsquoinformation

Open

Close

CommandeMeacutemoire

Partageacutee

Actionneur

Pince Prise de deacutecision Pince

Equipe Systegraveme Robotiseacute de Production

V5

Sc eacutema eacute ectr que

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7779

S y nd e x

Equipe Systegraveme Robotiseacute de Production

V5

Conclusion

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7879

S y nd e x bull Introduction

bull Meacutethodologie AAA

bull Installationbull Utilisation du logiciel Syndex

bull Macrosbull LinuxIO un interface CC++ avec SynDEx

bull Exemple drsquoapplication Robuter-ULM

Equipe Systegraveme Robotiseacute de Production

V5

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7979

S y nd e x

Questions

Page 33: Cours Syndex

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3379

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

AlgorithmPour lrsquoalgorithme chaque sommet est caracteacuteriseacute par

bull Son type geacuteneacuterique (function extio memory constant)bull Un nom unique (tout les sommets doivent avoir des

noms diffeacuterents)bull Son type identifiant sa seacutequence drsquoinstructionsassocieacute

bull Sa liste drsquoarguments ougrave chaque argument est speacutecifieacute par bull Le nombre drsquoentreacuteesortiebull Le type de donneacuteesbull Le nom (tout les arguments doivent avoir des noms

diffeacuterents)

Equipe Systegraveme Robotiseacute de Production Architecture

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3479

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

ArchitectureLrsquoarchitecture est speacutecifieacutee comme un graphe non orienteacute

ougrave bullChaque sommet est une ressource seacutequentielle il y adeux types de sommets

bull processeur crsquoest une ressource de calcul enmesure drsquoexeacutecuter seacutequentiellement les opeacuterationsdrsquoun algorithme il pourrait ecirctre un processeur ou

un circuit inteacutegreacute speacutecialiseacutebull meacutedia crsquoest une ressource de communicationen mesure drsquoexeacutecuter seacutequentiellement un transfertde donneacutees entre les meacutemoires des processeurs quilui sont connecteacutes

bull chaque arc est une connexion bidirectionnelle entreun processeur et un meacutedia

Equipe Systegraveme Robotiseacute de Production Architecture

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3579

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

ArchitecturePour lrsquoarchitecture chaque sommet est caracteacuteriseacute par

bull Un nom uniquebullSon type (processeur or meacutedia)bull Son type identifiant caracteacuteristiques mateacuterielles

bull Sa liste de connecteurs ougrave chaque connecteur est speacutecifieacute par bull son type identifiant le type de meacutedia agrave qui il peut ecirctreconnecteacute

bullUn nom

Equipe Systegraveme Robotiseacute de ProductionCaracteacuter st que

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3679

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Caracteacuter st que Nous distinguons deux cateacutegories de caracteacuteristiques lrsquoune relative

aux opeacuterations et lrsquoune agrave la communication 1 Comment speacutecifier les caracteacuteristiques des opeacuterations sous le menu AdequationAlOp_ArOp on obtient une boite

de dialogue avec

une liste de toutles types de

processeurs et

pour chaque processeur uneliste de tout les

types drsquoopeacuterationsqui peut lesexeacutecuter avec ladureacutee drsquoexeacutecutioncorrespondante

Equipe Systegraveme Robotiseacute de ProductionCaracteacuteristique

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3779

q p y

S y nd

e xV

5

q2 Comment speacutecifier les caracteacuteristiques de communication

sous le menu AdequationAlIO_ArIO on obtient une boitede dialogue avec une liste de tout les types de meacutedia et

pour chaque meacutedia une liste de tout les types de donneacutees

qui peut transfeacuterer avec la dureacutee de transfertcorrespondante

Equipe Systegraveme Robotiseacute de Production Contraintes

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3879

S y nd

e xV

5

Pour contraindre une opeacuteration agrave srsquoexeacutecuter sur un processeur donneacutee

1Seacutelectionner le(s) opeacuteration(s) agrave contraindre2 Seacutelectionner la commande AlgorithmSetConstraint3 Seacutelectionner le processeur qui doit exeacutecute les opeacuterationsseacutelectionneacutees

Pour enlever les contraintes seacutelectionner lrsquoopeacuteration puis exeacutecuterla commande AlgorithmDeleteConstraint

Pour voir sur quel processeur une opeacuteration est y contrainteseacutelectionner lrsquoopeacuteration puis exeacutecuter la commandeAlgorithmShowConstraint le processeur correspondant y sera

seacutelectionneacutePour voir toute les opeacuterations qui sont contraintes sur un processeurseacutelectionner le processeur puis exeacutecuter la commande

ArchitectureShowConstrained du menu les opeacuterationscorrespondantes y seront seacutelectionneacutees

Equipe Systegraveme Robotiseacute de Production A eacutequat o

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3979

S y nd

e xV

5

q

Pour construire le planificateur des opeacuterations dugraphe drsquoalgorithme sur les processeurs du graphedrsquoarchitecture qui effectue automatiquement le routage

des deacutependances de donneacutees inter-processeurs et lacreacuteation et la planification des opeacuterations decommunication sur le meacutedia du graphe drsquoarchitectureon utilise la commande AdequationDoIt

Cette commande creacutee un heuristique qui cherche agraveminimiser le chemin critique du graphe drsquoalgorithme

Equipe Systegraveme Robotiseacute de ProductionGeacuteneacuteration du code exeacutecuti

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4079

S y nd

e xV

5Le code exeacutecutif est la partie qui gegravere les ressources

mateacuterielles pour les allouer aux besoins de lrsquoalgorithmedrsquoapplication Les ressources agrave allouer sont

1 Les espaces meacutemoires des processeurs2 Le temps des seacutequences drsquoinstructions3 Le temps des meacutedia de communication

Gracircce agrave la meacutethodologie AAA et le logiciel Syndexlrsquoutilisateur est exempte drsquoeacutecrire du code pour geacuterer ces

ressources Donc par simple exeacutecution de la commandeAdequationGenExec un code distribueacute pour chaque processeur est automatiquement geacuteneacutereacute Ce code est en

fait un exeacutecutif geacuteneacutereacute sur mesure pour lrsquoalgorithme etlrsquoarchitecture

Equipe Systegraveme Robotiseacute de ProductionGeacuteneacuteration du code exeacutecuti

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4179

S y nd

e xV5

Pour chaque processeur de lrsquoarchitecture un fichier

source macro-exeacutecutif m4 avec le mecircme nom estgeacuteneacutereacute plus un macro-makefile ayant le mecircme nom quecelui de lrsquoapplication Chacun de ces fichiers doit ecirctre

transcrit par le macro-processeur GNU M4 (assembleurC) Cette transcription deacutepend de plusieurs fichiers

1 Fichier syndexm4x qui deacutefini les macrosgeacuteneacuteriques de syndex2 Fichier processorTypem4x qui deacutefini les macros

de bas niveau du processeur3 Fichier applicationNamem4x qui deacutefini les macros

speacutecifiques agrave lrsquoapplication

4 Fichier mediaTypem4x qui deacutefini les macros decommunication de bas niveau du type de media

Equipe Systegraveme Robotiseacute de ProductionCreacuteat on rsquoapp cat on

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4279

S y nd

e xV5 Arborescence des reacutepertoires Rep_travail

Applicationmacros

~rtai

Eacutevolution de lrsquoapplication

Phase 1

Edition des macros(C ou Assembleur)

+GNUmakefile

Phase 2

Edition du graphe

(Algorithme amp

Architecteure)

Phase 3

Compilation amp Exeacutecution

Equipe Systegraveme Robotiseacute de ProductionSeacutequence de compilation de Synde

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4379

S y nd

e xV5

Equipe Systegraveme Robotiseacute de Production Plan

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4479

S y nd

e xV5

bull Introduction

bull Meacutethodologie AAA

bull Installation

bull Utilisation du logiciel Syndex

bull Macros

bull LinuxIO un interface CC++ avec SynDEx

bull Exemple drsquoapplication Robuter-ULM

Equipe Systegraveme Robotiseacute de Production

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4579

S y nd

e xV5

Macros Macros

bull Deacutefinition

bull Types de macros

bull Carte Robosoft MPC555

bull Macros Geacuteneacuterique MPC555

bull Macros speacutecifique Robosoftbull Macros de Communication

bull Macros drsquoapplicationbull Structure du fichier Macro

Equipe Systegraveme Robotiseacute de Production Deacutefinition

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4679

S y nd

e xV5

Un macro-processeur est un programme qui consommeen entreacutee une chaicircne de caractegraveres (texte source) la

traite seacutequentiellement en substituant chaque sous-chaicircne qursquoil reconnaicirct (Appel de macro) par unechaicircne correspondante de substitution ( Deacutefinition de

macro) qursquoil traite agrave nouveau jusqursquoagrave ce qursquoil nrsquo y ait plus de substitution possible et qui produit en sortie lachaicircne de caractegraveres traiteacutee

Equipe Systegraveme Robotiseacute de Productionypes e macrosL diffeacute t di ti t d d

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4779

S y nd

e xV5

Les diffeacuterents macros se distinguent en deux grandes

classes bull Macros geacuteneacuteriques

en geacuteneacuteral ceux sont des macros non destineacutes agraveecirctre utiliser directement par lrsquointerface syndexmais plutocirct utiliseacutees pour la programmation

drsquoautres macros (macros MPC555)bull Macros utilisateurs

macros utiliseacutes directement par syndex ils sontspeacutecifiques agrave lrsquoapplication (macros decommunication macros speacutecifiques robosoft

macros speacutecifiques agrave lrsquoapplication)

Equipe Systegraveme Robotiseacute de ProductionCarte Robosoft MPC555La carte Robosoft MPC555 est conccedilue pour la commande de robot de veacutehicule

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4879

S y nd

e xV5

(1) Connecteur du chip MPC555(2) Alimentation continue(3) Interface BDM (Basic Debug Interface)(4) Entreacute Analogique (Joystickhellip)(5) EntreacuteSortie logiques(6) Ligne seacuterie Synchrone (Codeur absolu)(7) Ligne seacuterie Asynchrone (Port 0)

(8) Ligne seacuterie Asynchrone (Port 1)(9) Connecteur du bus CAN (Port 0)(10) Connecteur du bus CAN (Port 1)(11) Axe 1(13) Axe 2(14) Axe 3(15) Axe 4

La carte Robosoft MPC555 est conccedilue pour la commande de robot de veacutehiculeeacutelectrique ou toute autre machine Elle permet de commander un axe gracircce agrave

lrsquoajout drsquoune carte fille le controcircle srsquoeacutetend jusqursquoagrave 4 axesCette carte est baseacutee sur le microcontrocircleur MPC555 32-bit de MotorolaElle peut opeacuterer agrave une freacutequence

de 40 MHz Divers signauxlogique et analogique peuventecirctre utiliser pour lrsquoacquisition deet la commande de mateacuteriel Les

sorties disponibles peuvent ecirctreanalogique ou PWMOn y trouve

Equipe Systegraveme Robotiseacute de ProductionArchitecture du MPC555

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4979

S y nd

e xV5

Equipe Systegraveme Robotiseacute de Productionaract r st ques u

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5079

S y nd

e xV5

Equipe Systegraveme Robotiseacute de Productionacros n r quesbull GPIO (General-Purpose InputOutput)

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5179

S y nd

e xV5

GPIO (General Purpose InputOutput)ce macro utilise le module USIU qui lui fourni 64 pins pour desentreacuteessorties numeacuteriques ordinaires (IO de la carte Robosoft lirelrsquoeacutetat de la pince envoi de commande agrave la pince lire les alarmes)

bull QADC (Queued Analog to Digital Converter)en utilisant le module QADC ce macro permet la conversion drsquounsignal analogique en entreacutee en un signal numeacuterique multi-niveaux(lire les donneacutees du capteur drsquoeacuteffort du joystick)

bull MIOS (Modular InputOutput System)Le module MIOS fourni 16 pins drsquoES numeacuteriques Sur la carte deRobosoft tous les pins sont en sortie Les 16 pins sont reacutepartiscomme suit

utilisateurs reacuteserveacutes

les pins de 0 agrave 11 sont reacuteserveacutes car ils sont preacutevus agrave ecirctre utiliseacutes pour unmateacuteriel particulier Mais si ce mateacuteriel nrsquoest pas utiliseacute lrsquoutilisateur peut lesutiliser librement

15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

Equipe Systegraveme Robotiseacute de ProductionMacros Geacuteneacuter ques MPC55

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5279

S y nd

e xV5

bull PWM (Pulse width Modulation)utilise le module MIOS (pins de 4-7 pour la direction des moteurset de 8-11 pour la validation) pour la commande des actionneursnumeacuteriques en PWM

bull TPU (Time Processor Units)les macros lieacutes agrave ce module permettent la lecture des encodeurs

increacutementauxbull QSPI (Queued Serial Peripheral Interface)

ce module fait partie du module QSMCM et les macros lieacutes servent

agrave son initialisation pour une communication avec du mateacuterielsexternes via le bus seacuterie synchrone

Equipe Systegraveme Robotiseacute de ProductionMacros Geacuteneacuter ques MPC55

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5379

S y nd

e x

V5 bull Serial port support (Polling implementation)

le MPC555 comprend dans le module QSMCM une interface decommunication seacuterie SCI qui permet la communication avec dumateacuteriels externes via un bus seacuterie asynchrone Plusieurs macros

sont lieacutes agrave cette interface pour initialiser et eacutetablir la communicationbull Serial port support (interrupt handling implementation)

pour la mecircme interface SCI du module QSMCM pour cette

meacutethode drsquoimpleacutementation les macros lieacutes initialisent et eacutetablissentla communication en mode par interruption ce qui permet dedeacutetecter lrsquoarriveacutee des donneacutees sur le port seacuterie au lieu de le scruter

en permanence

tous ces macros on les retrouvent dans le fichier 555m4x

Equipe Systegraveme Robotiseacute de ProductionMacros Speacutec ques Ro oso tles macros suivants sont deacutedieacutes agrave la carte de Robosoft MPC555

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5479

S y nd

e x

V5

bull Initialisation de la carte Robosoftmain_ini_() macro ne doit pas ecirctre utiliser par les programmateursdu fait qursquoelle sert qursquoagrave initialiser la carte robosoft Macro interne agrave

syndex dont lrsquoappel est automatique lors de geacuteneacuteration drsquoexeacutecutifMPC555

bull DAC (Digital to Analog Converter)

macro permet lrsquoutilisation du convertisseur de carte robosoft via lemodule MIOs en utilisant les pins de 0 agrave 2

bull LED (on-bord LED interface)

macro permet la gestion de la LED de la carte robosoft connecteacuteeau module QSPI (pin PCS1)

bull SPI absolute encoder

macro permet lrsquoutilisation lrsquointerface du codeur absolu de la carterobosoft connecteacute au module QSPI

Equipe Systegraveme Robotiseacute de ProductionMacros Speacutec ques Ro oso tbull Motor amplifier direction

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5579

S y nd

e x

V5

Motor amplifier directionmacro qui permet de geacuterer la direction des moteurs

bull Motor power amplifier validationles moteurs embarqueacutes sur les robots sont eacutequipeacutes de freins

eacutelectriquement commandable Ce macro permet drsquoenvoyer unsignal drsquoinhibition pour deacutebloquer les freins

bull Watch dog

pour des raisons de seacutecuriteacute un meacutecanisme mateacuteriel que robosofta ajouteacute sur la carte Ce watch-dog vise agrave stopper lrsquoactiviteacute dumoteur en cas ougrave le programme plante Le watch est impleacutementeacute

comme un time-out mateacuteriel Srsquoil nrsquoest pas rafraicircchi peacuteriodiquement il transmet un signal de sortie ce qui enlegraveve lavalidation de lrsquoamplificateur de puissance donc lrsquoarrecirct dumouvement

ces macros se trouvent dans le fichier RSBm4x

Equipe Systegraveme Robotiseacute de Production

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5679

S y nd

e x

V5

Macros de Communicationchaque meacutedia de communication (bus CAN ) est une ressourceseacutequentielle ougrave les transferts de donneacutees entre processeurs doiventsuivre un certain ordre Donc ce macro de communication sert agravedeacutefinir cet ordre et agrave identifier le protocole de communication lecodagedeacutecodage de lrsquoinformation et la synchronisation

on trouve ces macros dans le fichier CANm4x

Macros drsquoapplicationce genre de macros sont speacutecifique au mateacuteriel en question et aussiagrave lrsquoapplication en particulier Ce sont des macros utilisateurs

on trouve ces macros dans le fichier Application_namem4x

Equipe Systegraveme Robotiseacute de Production

section include (pour inclure drsquoautres fichiers macro agrave utiliseStructure du fichier macr

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5779

S y nd

e x

V5

section define (pour tous les macros utilisateurs)MGC lsquoINITrsquo (MGC Macro Generation Context variable)

divert (declaration) (deacutebut du macro)

(deacuteclaration des variables des meacutemoires et des csts

divert (o)

MGC lsquolooprsquocode en assembleur code en C

dnl (commentaires)

MGC lsquoENDrsquo dnl (fin de la macros)divert lsquo lsquo dnl

macros MPC555meacutemoire MPC555

constante MPC555

macros RTAImeacutemoire RTAI

constante RTAI

Equipe Systegraveme Robotiseacute de Production Plan

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5879

S y nd

e x

V5

bull Introduction

bull Meacutethodologie AAA

bull Installationbull Utilisation du logiciel Syndex

bull Macrosbull LinuxIO un interface CC++ avec SynDEx

bull Exemple drsquoapplication Robuter-ULM

Equipe Systegraveme Robotiseacute de Production

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5979

S y nd

e x

V5

LinuxIO LinuxIO une interface une interface

CC++ avecCC++ avec SynDExSynDEx

bull Principe de basebull Utilisation de linuxIO_ par syndex

bull Utilisation de linuxIO_ par un programmeCC++

Equipe Systegraveme Robotiseacute de ProductionPrincipe de baseSyndex fourni une interface graphique pour la conception

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6079

S y nd

e x

V5

Syndex fourni une interface graphique pour la conception

drsquoapplications Par contre des fois nous avons besoin drsquoautresfonctionnaliteacutes non disponibles donc il faut les creacuteer Cependantgeacuteneacuterer des macros pour syndex srsquoavegravere difficile pour certains du

fait qursquoil faut avoir une bonne connaissance de la programmation bas niveau Dans ce cas lrsquoutilisation de linux_IO trouve sa placedans un contexte particulier interfacer des applications CC++utilisateurs avec des applications embarqueacutees temps reacuteeldeacuteveloppeacutees sous syndex

Par rapport agrave ce contexte de programmation lrsquoorganisation du

deacuteveloppement des applications est structureacutee en deux parties 1 Application haut niveau

2 Application bas niveau

Equipe Systegraveme Robotiseacute de ProductionPrincipe de base

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6179

S y nd

e x

V5

En reacutesumeacute lrsquoapplicationutilisateur contient une

partie haut niveau enCC++ et une partie basniveau sous syndex avecun eacutechange de donneacuteesentre les deux partie en

utilisant la couche RTAIde linux

Equipe Systegraveme Robotiseacute de Production pp cat on aut n veauOn entend application haut

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6279

S y nd

e x

V5

niveau tout programmecomme la planification detrajectoires strateacutegies de

navigation etc hellipLrsquoeacutechange de donneacutees sefait par le biais desmeacutemoires partageacutees quifont parti du noyau RTAI

et de lrsquoespace utilisateursde Linux

Toute ressource preacutesente sur la carte Robosoft peutecirctre partageacutee sans aune restriction

Equipe Systegraveme Robotiseacute de Production pp cat on as n veauUne application bas niveau

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6379

S y nd

e x

V5

Une application bas niveau

est un programme conccedilusous syndex comme lacommande des moteurs la

lecture des capteurs etc hellipLes ressources mateacuteriellessont controcircler par plusieurs

cartes MPC555 Ces cartessrsquoeacutechangent des donneacuteesvia le bus CAN Donc ES

est prise en charge par lasource logicielle deacutedieacutee quisrsquoexeacutecute dans les cartes MPC555 puis la couche RTAI

est utiliseacute pour la mise agrave jour de meacutemoires partageacutees pour lrsquoespace utilisateurs linux drsquoeacutechange de donneacutees

Equipe Systegraveme Robotiseacute de ProductionUtilisation de linux_IO par syndex

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6479

S y nd

e x

V5

Equipe Systegraveme Robotiseacute de ProductionUtilisation de linux_IO par syndex

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6579

S y nd

e x

V5

Equipe Systegraveme Robotiseacute de Production

5

Utilisation de linux_IO par syndex

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6679

S y nd

e x

V5

Degraves que la conception de lrsquoapplication sous syndex esttermineacutee et apregraves compilation (AdequationDo it +GenExec) un fichier drsquoentecircte sous le nom de linioh est

automatiquement geacuteneacutereacute Ce fichier contient lesinformations neacutecessaires pour acceacuteder aux entreacutees enlecture et aux sorties en eacutecriture des opeacuterations linuxIO_

inseacutereacutees dans le graphe drsquoalgorithme Le contenu de cefichier est organiseacute en plusieurs parties une pour chaqueopeacuteration linux_IO preacutesente dans le graphe

Equipe Systegraveme Robotiseacute de Production

5

Utilisation de linux_IO par syndex linioh auto-generated C users API frontend

C i h b f 2001 i i i b f f

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6779

S y nd

e x

V5 Copyright Robosoft 2001 Pierre Pomiers ltpierrerobosoftfrgt

LINUX IO shared memory data segments

define SEG0_BASE 0x10000typedef struct

int js_spd_o0

int js_str_o0

int enc_R_o0int enc_L_o0

double odo_X_o0

double odo_Y_o0

double odo_T_o0int spd_R_o0

int spd_L_o0

int time

unsigned char sem shm_seg0_def

Nom du segment de meacutemoire partageacutee pour notre opeacuteration linuxIO_

7 signaux drsquoentreacutees Ces valeurs sonten lecture et sont peacuteriodiquementrafraicircchies par RTAI

2 signaux de sorties Ces valeurs sonten eacutecriture et sont peacuteriodiquementrafraicircchies par RTAI

Equipe Systegraveme Robotiseacute de Production

5

Crsquoest une eacutetape tregraves facile il suffit drsquoinclure le fichier drsquoentecirctelinio h dans le code du fichier en CC++ comme suit

Utilisation de linuxIO_ par un programme CC+

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6879

S y nd

e x

V5 linioh dans le code du fichier en CC++ comme suit

include linioh

include ltrtai_shmhgt

static shm_seg0_def seg0

shm_seg0_def robot

seg0 = rtai_malloc (SEG0_BASE sizeof (shm_seg0_def))

if (seg0-gtsem = 0) bcopy (seg0 amprobot sizeof (shm_seg0_def))helliphelliphellip

helliphelliphellip bcopy (amprobot seg0 sizeof (shm_seg0_def))helliphelliphelliphelliphelliphellip

rtai_free (SEG0_BASE seg0)

fichier drsquoentecircte de la meacutemoire partageacutee fourni dans la couche RTAI de linux

Initialisation du segment SEG0_BASE Allocation de lameacutemoire pointeacutee

par seg0

Lecture des donneacutees provenant du bas

niveau

Mise agrave jours du segment de meacutemoire partageacutee

Libeacuterer le segment de meacutemoire alloueacute

Equipe Systegraveme Robotiseacute de Production

5

Plan

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6979

S y nd e x

V5

bull Introductionbull Meacutethodologie AAA

bull Installationbull Utilisation du logiciel Syndex

bull Macrosbull LinuxIO un interface CC++ avec SynDEx

bull Exemple drsquoapplication Robuter-ULM

Equipe Systegraveme Robotiseacute de Production

V5

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7079

S y nd e x

V5

Exemple dapplication Exemple dapplication Robuter Robuter--ULM ULM

Equipe Systegraveme Robotiseacute de Production

V5

Description Robuter-ULMbull Base mobile (2-RM 2-RF)

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7179

S y nd e x

V

bull Bras ultra-leacuteger 6 axesbull Ceinture 24 capteurs US

bull Capteur drsquoefforts 6 axes

bull Cameacutera CCD monochromeavec carte drsquoacquisition

bull PC embarqueacute MMX 233

bull OS linux redhat 61 avecRTAI V-13

bull 3 bouton drsquoarrecirct drsquourgence

bull 4 batteries 48 VDC 4 X12V 60 Ah

bull Entreacutee Joystick

bull Liaison Ethernet sans fil

Le manipulateur mobile Robuter-ULM comprend

Equipe Systegraveme Robotiseacute de Production

V5

Base Mobilebull dimension

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7279

S y nd e x

V

1025 mm de longueur 680 mm de largueur et 44 cm de hauteurbull Poids environ 150 kg avec les batteriesbull charge jusqursquoagrave 120 kg

bull vitesse de 5cms agrave 125 msbull Moteurs 2 X 300 W DC 48 VDCbull orientation par diffeacuterence de vitesse

bull Preacutecision Position par encodeurs optiquesbull Deux roues motrices diffeacuterentielles et de deux roues follesbull Drsquoune ceinture de 24 capteurs Ultrasons

bull Une carte MPC555 de Robosoft pour le controcircle des deuxmoteurs DC des 2 rouesbull Un systegraveme drsquoodomeacutetrie qui donne la position relative du robot

par rapport agrave son repegravere

Equipe Systegraveme Robotiseacute de Production

V5

bull dimension Faute de documentation

Bras U tra- eacuteger

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7379

S y nd e x

V Faute de documentation

bull Poids moins de 20 kgbull charge 2 kgbull Moteurs 6 moteurs DC

bull gripper pince eacutelectrique 2 doigtsbull Reacutepeacutetabiliteacute +- 1mmbull 3 carte MPC555 de Robosoft lrsquoune pour le capteur drsquoeffort et les

deux autres pour les 6 moteurs + moteur de la pincebull Position encodeur increacutemental

1 2 3 4 5 6Axisrange

plusmn90deg 0-90deg plusmn80deg plusmn100deg plusmn90deg plusmn110deg

vitesse 180degs 180degs 180degs 180degs 180degs 180degs

Equipe Systegraveme Robotiseacute de Production

V5

rc tecture ar ware

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7479

S y nd e x

V

Equipe Systegraveme Robotiseacute de Production

V5

Pro eacutemat quePlusieurs applications peuvent ecirctre impleacutementeacutees sur le robot

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7579

S y nd e x

V

Cependant il faut faire la diffeacuterence entre les applications quidemande lrsquoutilisation de syndex et les applications qui neneacutecessite qursquoune programmation en CC++ Agrave titre drsquoexemple

bull Localisationbull Commande en position

bull Commande en forcebull Navigation

bull Geacuteneacuteration de trajectoire

bull Vision

Equipe Systegraveme Robotiseacute de Production

V5 bull Pince eacutelectrique (TOR)

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7679

S y nd e x

Vq ( )

bull Pince possegravede des ES Logiques

Notre application consiste agrave

bull Recevoir lrsquoeacutetat de la pince (fermeacutee ouverte )

bull Envoyer une commande vers la pince

Capture

drsquoinformation

Open

Close

CommandeMeacutemoire

Partageacutee

Actionneur

Pince Prise de deacutecision Pince

Equipe Systegraveme Robotiseacute de Production

V5

Sc eacutema eacute ectr que

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7779

S y nd e x

Equipe Systegraveme Robotiseacute de Production

V5

Conclusion

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7879

S y nd e x bull Introduction

bull Meacutethodologie AAA

bull Installationbull Utilisation du logiciel Syndex

bull Macrosbull LinuxIO un interface CC++ avec SynDEx

bull Exemple drsquoapplication Robuter-ULM

Equipe Systegraveme Robotiseacute de Production

V5

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7979

S y nd e x

Questions

Page 34: Cours Syndex

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3479

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

ArchitectureLrsquoarchitecture est speacutecifieacutee comme un graphe non orienteacute

ougrave bullChaque sommet est une ressource seacutequentielle il y adeux types de sommets

bull processeur crsquoest une ressource de calcul enmesure drsquoexeacutecuter seacutequentiellement les opeacuterationsdrsquoun algorithme il pourrait ecirctre un processeur ou

un circuit inteacutegreacute speacutecialiseacutebull meacutedia crsquoest une ressource de communicationen mesure drsquoexeacutecuter seacutequentiellement un transfertde donneacutees entre les meacutemoires des processeurs quilui sont connecteacutes

bull chaque arc est une connexion bidirectionnelle entreun processeur et un meacutedia

Equipe Systegraveme Robotiseacute de Production Architecture

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3579

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

ArchitecturePour lrsquoarchitecture chaque sommet est caracteacuteriseacute par

bull Un nom uniquebullSon type (processeur or meacutedia)bull Son type identifiant caracteacuteristiques mateacuterielles

bull Sa liste de connecteurs ougrave chaque connecteur est speacutecifieacute par bull son type identifiant le type de meacutedia agrave qui il peut ecirctreconnecteacute

bullUn nom

Equipe Systegraveme Robotiseacute de ProductionCaracteacuter st que

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3679

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Caracteacuter st que Nous distinguons deux cateacutegories de caracteacuteristiques lrsquoune relative

aux opeacuterations et lrsquoune agrave la communication 1 Comment speacutecifier les caracteacuteristiques des opeacuterations sous le menu AdequationAlOp_ArOp on obtient une boite

de dialogue avec

une liste de toutles types de

processeurs et

pour chaque processeur uneliste de tout les

types drsquoopeacuterationsqui peut lesexeacutecuter avec ladureacutee drsquoexeacutecutioncorrespondante

Equipe Systegraveme Robotiseacute de ProductionCaracteacuteristique

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3779

q p y

S y nd

e xV

5

q2 Comment speacutecifier les caracteacuteristiques de communication

sous le menu AdequationAlIO_ArIO on obtient une boitede dialogue avec une liste de tout les types de meacutedia et

pour chaque meacutedia une liste de tout les types de donneacutees

qui peut transfeacuterer avec la dureacutee de transfertcorrespondante

Equipe Systegraveme Robotiseacute de Production Contraintes

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3879

S y nd

e xV

5

Pour contraindre une opeacuteration agrave srsquoexeacutecuter sur un processeur donneacutee

1Seacutelectionner le(s) opeacuteration(s) agrave contraindre2 Seacutelectionner la commande AlgorithmSetConstraint3 Seacutelectionner le processeur qui doit exeacutecute les opeacuterationsseacutelectionneacutees

Pour enlever les contraintes seacutelectionner lrsquoopeacuteration puis exeacutecuterla commande AlgorithmDeleteConstraint

Pour voir sur quel processeur une opeacuteration est y contrainteseacutelectionner lrsquoopeacuteration puis exeacutecuter la commandeAlgorithmShowConstraint le processeur correspondant y sera

seacutelectionneacutePour voir toute les opeacuterations qui sont contraintes sur un processeurseacutelectionner le processeur puis exeacutecuter la commande

ArchitectureShowConstrained du menu les opeacuterationscorrespondantes y seront seacutelectionneacutees

Equipe Systegraveme Robotiseacute de Production A eacutequat o

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3979

S y nd

e xV

5

q

Pour construire le planificateur des opeacuterations dugraphe drsquoalgorithme sur les processeurs du graphedrsquoarchitecture qui effectue automatiquement le routage

des deacutependances de donneacutees inter-processeurs et lacreacuteation et la planification des opeacuterations decommunication sur le meacutedia du graphe drsquoarchitectureon utilise la commande AdequationDoIt

Cette commande creacutee un heuristique qui cherche agraveminimiser le chemin critique du graphe drsquoalgorithme

Equipe Systegraveme Robotiseacute de ProductionGeacuteneacuteration du code exeacutecuti

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4079

S y nd

e xV

5Le code exeacutecutif est la partie qui gegravere les ressources

mateacuterielles pour les allouer aux besoins de lrsquoalgorithmedrsquoapplication Les ressources agrave allouer sont

1 Les espaces meacutemoires des processeurs2 Le temps des seacutequences drsquoinstructions3 Le temps des meacutedia de communication

Gracircce agrave la meacutethodologie AAA et le logiciel Syndexlrsquoutilisateur est exempte drsquoeacutecrire du code pour geacuterer ces

ressources Donc par simple exeacutecution de la commandeAdequationGenExec un code distribueacute pour chaque processeur est automatiquement geacuteneacutereacute Ce code est en

fait un exeacutecutif geacuteneacutereacute sur mesure pour lrsquoalgorithme etlrsquoarchitecture

Equipe Systegraveme Robotiseacute de ProductionGeacuteneacuteration du code exeacutecuti

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4179

S y nd

e xV5

Pour chaque processeur de lrsquoarchitecture un fichier

source macro-exeacutecutif m4 avec le mecircme nom estgeacuteneacutereacute plus un macro-makefile ayant le mecircme nom quecelui de lrsquoapplication Chacun de ces fichiers doit ecirctre

transcrit par le macro-processeur GNU M4 (assembleurC) Cette transcription deacutepend de plusieurs fichiers

1 Fichier syndexm4x qui deacutefini les macrosgeacuteneacuteriques de syndex2 Fichier processorTypem4x qui deacutefini les macros

de bas niveau du processeur3 Fichier applicationNamem4x qui deacutefini les macros

speacutecifiques agrave lrsquoapplication

4 Fichier mediaTypem4x qui deacutefini les macros decommunication de bas niveau du type de media

Equipe Systegraveme Robotiseacute de ProductionCreacuteat on rsquoapp cat on

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4279

S y nd

e xV5 Arborescence des reacutepertoires Rep_travail

Applicationmacros

~rtai

Eacutevolution de lrsquoapplication

Phase 1

Edition des macros(C ou Assembleur)

+GNUmakefile

Phase 2

Edition du graphe

(Algorithme amp

Architecteure)

Phase 3

Compilation amp Exeacutecution

Equipe Systegraveme Robotiseacute de ProductionSeacutequence de compilation de Synde

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4379

S y nd

e xV5

Equipe Systegraveme Robotiseacute de Production Plan

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4479

S y nd

e xV5

bull Introduction

bull Meacutethodologie AAA

bull Installation

bull Utilisation du logiciel Syndex

bull Macros

bull LinuxIO un interface CC++ avec SynDEx

bull Exemple drsquoapplication Robuter-ULM

Equipe Systegraveme Robotiseacute de Production

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4579

S y nd

e xV5

Macros Macros

bull Deacutefinition

bull Types de macros

bull Carte Robosoft MPC555

bull Macros Geacuteneacuterique MPC555

bull Macros speacutecifique Robosoftbull Macros de Communication

bull Macros drsquoapplicationbull Structure du fichier Macro

Equipe Systegraveme Robotiseacute de Production Deacutefinition

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4679

S y nd

e xV5

Un macro-processeur est un programme qui consommeen entreacutee une chaicircne de caractegraveres (texte source) la

traite seacutequentiellement en substituant chaque sous-chaicircne qursquoil reconnaicirct (Appel de macro) par unechaicircne correspondante de substitution ( Deacutefinition de

macro) qursquoil traite agrave nouveau jusqursquoagrave ce qursquoil nrsquo y ait plus de substitution possible et qui produit en sortie lachaicircne de caractegraveres traiteacutee

Equipe Systegraveme Robotiseacute de Productionypes e macrosL diffeacute t di ti t d d

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4779

S y nd

e xV5

Les diffeacuterents macros se distinguent en deux grandes

classes bull Macros geacuteneacuteriques

en geacuteneacuteral ceux sont des macros non destineacutes agraveecirctre utiliser directement par lrsquointerface syndexmais plutocirct utiliseacutees pour la programmation

drsquoautres macros (macros MPC555)bull Macros utilisateurs

macros utiliseacutes directement par syndex ils sontspeacutecifiques agrave lrsquoapplication (macros decommunication macros speacutecifiques robosoft

macros speacutecifiques agrave lrsquoapplication)

Equipe Systegraveme Robotiseacute de ProductionCarte Robosoft MPC555La carte Robosoft MPC555 est conccedilue pour la commande de robot de veacutehicule

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4879

S y nd

e xV5

(1) Connecteur du chip MPC555(2) Alimentation continue(3) Interface BDM (Basic Debug Interface)(4) Entreacute Analogique (Joystickhellip)(5) EntreacuteSortie logiques(6) Ligne seacuterie Synchrone (Codeur absolu)(7) Ligne seacuterie Asynchrone (Port 0)

(8) Ligne seacuterie Asynchrone (Port 1)(9) Connecteur du bus CAN (Port 0)(10) Connecteur du bus CAN (Port 1)(11) Axe 1(13) Axe 2(14) Axe 3(15) Axe 4

La carte Robosoft MPC555 est conccedilue pour la commande de robot de veacutehiculeeacutelectrique ou toute autre machine Elle permet de commander un axe gracircce agrave

lrsquoajout drsquoune carte fille le controcircle srsquoeacutetend jusqursquoagrave 4 axesCette carte est baseacutee sur le microcontrocircleur MPC555 32-bit de MotorolaElle peut opeacuterer agrave une freacutequence

de 40 MHz Divers signauxlogique et analogique peuventecirctre utiliser pour lrsquoacquisition deet la commande de mateacuteriel Les

sorties disponibles peuvent ecirctreanalogique ou PWMOn y trouve

Equipe Systegraveme Robotiseacute de ProductionArchitecture du MPC555

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4979

S y nd

e xV5

Equipe Systegraveme Robotiseacute de Productionaract r st ques u

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5079

S y nd

e xV5

Equipe Systegraveme Robotiseacute de Productionacros n r quesbull GPIO (General-Purpose InputOutput)

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5179

S y nd

e xV5

GPIO (General Purpose InputOutput)ce macro utilise le module USIU qui lui fourni 64 pins pour desentreacuteessorties numeacuteriques ordinaires (IO de la carte Robosoft lirelrsquoeacutetat de la pince envoi de commande agrave la pince lire les alarmes)

bull QADC (Queued Analog to Digital Converter)en utilisant le module QADC ce macro permet la conversion drsquounsignal analogique en entreacutee en un signal numeacuterique multi-niveaux(lire les donneacutees du capteur drsquoeacuteffort du joystick)

bull MIOS (Modular InputOutput System)Le module MIOS fourni 16 pins drsquoES numeacuteriques Sur la carte deRobosoft tous les pins sont en sortie Les 16 pins sont reacutepartiscomme suit

utilisateurs reacuteserveacutes

les pins de 0 agrave 11 sont reacuteserveacutes car ils sont preacutevus agrave ecirctre utiliseacutes pour unmateacuteriel particulier Mais si ce mateacuteriel nrsquoest pas utiliseacute lrsquoutilisateur peut lesutiliser librement

15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

Equipe Systegraveme Robotiseacute de ProductionMacros Geacuteneacuter ques MPC55

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5279

S y nd

e xV5

bull PWM (Pulse width Modulation)utilise le module MIOS (pins de 4-7 pour la direction des moteurset de 8-11 pour la validation) pour la commande des actionneursnumeacuteriques en PWM

bull TPU (Time Processor Units)les macros lieacutes agrave ce module permettent la lecture des encodeurs

increacutementauxbull QSPI (Queued Serial Peripheral Interface)

ce module fait partie du module QSMCM et les macros lieacutes servent

agrave son initialisation pour une communication avec du mateacuterielsexternes via le bus seacuterie synchrone

Equipe Systegraveme Robotiseacute de ProductionMacros Geacuteneacuter ques MPC55

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5379

S y nd

e x

V5 bull Serial port support (Polling implementation)

le MPC555 comprend dans le module QSMCM une interface decommunication seacuterie SCI qui permet la communication avec dumateacuteriels externes via un bus seacuterie asynchrone Plusieurs macros

sont lieacutes agrave cette interface pour initialiser et eacutetablir la communicationbull Serial port support (interrupt handling implementation)

pour la mecircme interface SCI du module QSMCM pour cette

meacutethode drsquoimpleacutementation les macros lieacutes initialisent et eacutetablissentla communication en mode par interruption ce qui permet dedeacutetecter lrsquoarriveacutee des donneacutees sur le port seacuterie au lieu de le scruter

en permanence

tous ces macros on les retrouvent dans le fichier 555m4x

Equipe Systegraveme Robotiseacute de ProductionMacros Speacutec ques Ro oso tles macros suivants sont deacutedieacutes agrave la carte de Robosoft MPC555

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5479

S y nd

e x

V5

bull Initialisation de la carte Robosoftmain_ini_() macro ne doit pas ecirctre utiliser par les programmateursdu fait qursquoelle sert qursquoagrave initialiser la carte robosoft Macro interne agrave

syndex dont lrsquoappel est automatique lors de geacuteneacuteration drsquoexeacutecutifMPC555

bull DAC (Digital to Analog Converter)

macro permet lrsquoutilisation du convertisseur de carte robosoft via lemodule MIOs en utilisant les pins de 0 agrave 2

bull LED (on-bord LED interface)

macro permet la gestion de la LED de la carte robosoft connecteacuteeau module QSPI (pin PCS1)

bull SPI absolute encoder

macro permet lrsquoutilisation lrsquointerface du codeur absolu de la carterobosoft connecteacute au module QSPI

Equipe Systegraveme Robotiseacute de ProductionMacros Speacutec ques Ro oso tbull Motor amplifier direction

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5579

S y nd

e x

V5

Motor amplifier directionmacro qui permet de geacuterer la direction des moteurs

bull Motor power amplifier validationles moteurs embarqueacutes sur les robots sont eacutequipeacutes de freins

eacutelectriquement commandable Ce macro permet drsquoenvoyer unsignal drsquoinhibition pour deacutebloquer les freins

bull Watch dog

pour des raisons de seacutecuriteacute un meacutecanisme mateacuteriel que robosofta ajouteacute sur la carte Ce watch-dog vise agrave stopper lrsquoactiviteacute dumoteur en cas ougrave le programme plante Le watch est impleacutementeacute

comme un time-out mateacuteriel Srsquoil nrsquoest pas rafraicircchi peacuteriodiquement il transmet un signal de sortie ce qui enlegraveve lavalidation de lrsquoamplificateur de puissance donc lrsquoarrecirct dumouvement

ces macros se trouvent dans le fichier RSBm4x

Equipe Systegraveme Robotiseacute de Production

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5679

S y nd

e x

V5

Macros de Communicationchaque meacutedia de communication (bus CAN ) est une ressourceseacutequentielle ougrave les transferts de donneacutees entre processeurs doiventsuivre un certain ordre Donc ce macro de communication sert agravedeacutefinir cet ordre et agrave identifier le protocole de communication lecodagedeacutecodage de lrsquoinformation et la synchronisation

on trouve ces macros dans le fichier CANm4x

Macros drsquoapplicationce genre de macros sont speacutecifique au mateacuteriel en question et aussiagrave lrsquoapplication en particulier Ce sont des macros utilisateurs

on trouve ces macros dans le fichier Application_namem4x

Equipe Systegraveme Robotiseacute de Production

section include (pour inclure drsquoautres fichiers macro agrave utiliseStructure du fichier macr

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5779

S y nd

e x

V5

section define (pour tous les macros utilisateurs)MGC lsquoINITrsquo (MGC Macro Generation Context variable)

divert (declaration) (deacutebut du macro)

(deacuteclaration des variables des meacutemoires et des csts

divert (o)

MGC lsquolooprsquocode en assembleur code en C

dnl (commentaires)

MGC lsquoENDrsquo dnl (fin de la macros)divert lsquo lsquo dnl

macros MPC555meacutemoire MPC555

constante MPC555

macros RTAImeacutemoire RTAI

constante RTAI

Equipe Systegraveme Robotiseacute de Production Plan

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5879

S y nd

e x

V5

bull Introduction

bull Meacutethodologie AAA

bull Installationbull Utilisation du logiciel Syndex

bull Macrosbull LinuxIO un interface CC++ avec SynDEx

bull Exemple drsquoapplication Robuter-ULM

Equipe Systegraveme Robotiseacute de Production

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5979

S y nd

e x

V5

LinuxIO LinuxIO une interface une interface

CC++ avecCC++ avec SynDExSynDEx

bull Principe de basebull Utilisation de linuxIO_ par syndex

bull Utilisation de linuxIO_ par un programmeCC++

Equipe Systegraveme Robotiseacute de ProductionPrincipe de baseSyndex fourni une interface graphique pour la conception

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6079

S y nd

e x

V5

Syndex fourni une interface graphique pour la conception

drsquoapplications Par contre des fois nous avons besoin drsquoautresfonctionnaliteacutes non disponibles donc il faut les creacuteer Cependantgeacuteneacuterer des macros pour syndex srsquoavegravere difficile pour certains du

fait qursquoil faut avoir une bonne connaissance de la programmation bas niveau Dans ce cas lrsquoutilisation de linux_IO trouve sa placedans un contexte particulier interfacer des applications CC++utilisateurs avec des applications embarqueacutees temps reacuteeldeacuteveloppeacutees sous syndex

Par rapport agrave ce contexte de programmation lrsquoorganisation du

deacuteveloppement des applications est structureacutee en deux parties 1 Application haut niveau

2 Application bas niveau

Equipe Systegraveme Robotiseacute de ProductionPrincipe de base

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6179

S y nd

e x

V5

En reacutesumeacute lrsquoapplicationutilisateur contient une

partie haut niveau enCC++ et une partie basniveau sous syndex avecun eacutechange de donneacuteesentre les deux partie en

utilisant la couche RTAIde linux

Equipe Systegraveme Robotiseacute de Production pp cat on aut n veauOn entend application haut

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6279

S y nd

e x

V5

niveau tout programmecomme la planification detrajectoires strateacutegies de

navigation etc hellipLrsquoeacutechange de donneacutees sefait par le biais desmeacutemoires partageacutees quifont parti du noyau RTAI

et de lrsquoespace utilisateursde Linux

Toute ressource preacutesente sur la carte Robosoft peutecirctre partageacutee sans aune restriction

Equipe Systegraveme Robotiseacute de Production pp cat on as n veauUne application bas niveau

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6379

S y nd

e x

V5

Une application bas niveau

est un programme conccedilusous syndex comme lacommande des moteurs la

lecture des capteurs etc hellipLes ressources mateacuteriellessont controcircler par plusieurs

cartes MPC555 Ces cartessrsquoeacutechangent des donneacuteesvia le bus CAN Donc ES

est prise en charge par lasource logicielle deacutedieacutee quisrsquoexeacutecute dans les cartes MPC555 puis la couche RTAI

est utiliseacute pour la mise agrave jour de meacutemoires partageacutees pour lrsquoespace utilisateurs linux drsquoeacutechange de donneacutees

Equipe Systegraveme Robotiseacute de ProductionUtilisation de linux_IO par syndex

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6479

S y nd

e x

V5

Equipe Systegraveme Robotiseacute de ProductionUtilisation de linux_IO par syndex

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6579

S y nd

e x

V5

Equipe Systegraveme Robotiseacute de Production

5

Utilisation de linux_IO par syndex

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6679

S y nd

e x

V5

Degraves que la conception de lrsquoapplication sous syndex esttermineacutee et apregraves compilation (AdequationDo it +GenExec) un fichier drsquoentecircte sous le nom de linioh est

automatiquement geacuteneacutereacute Ce fichier contient lesinformations neacutecessaires pour acceacuteder aux entreacutees enlecture et aux sorties en eacutecriture des opeacuterations linuxIO_

inseacutereacutees dans le graphe drsquoalgorithme Le contenu de cefichier est organiseacute en plusieurs parties une pour chaqueopeacuteration linux_IO preacutesente dans le graphe

Equipe Systegraveme Robotiseacute de Production

5

Utilisation de linux_IO par syndex linioh auto-generated C users API frontend

C i h b f 2001 i i i b f f

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6779

S y nd

e x

V5 Copyright Robosoft 2001 Pierre Pomiers ltpierrerobosoftfrgt

LINUX IO shared memory data segments

define SEG0_BASE 0x10000typedef struct

int js_spd_o0

int js_str_o0

int enc_R_o0int enc_L_o0

double odo_X_o0

double odo_Y_o0

double odo_T_o0int spd_R_o0

int spd_L_o0

int time

unsigned char sem shm_seg0_def

Nom du segment de meacutemoire partageacutee pour notre opeacuteration linuxIO_

7 signaux drsquoentreacutees Ces valeurs sonten lecture et sont peacuteriodiquementrafraicircchies par RTAI

2 signaux de sorties Ces valeurs sonten eacutecriture et sont peacuteriodiquementrafraicircchies par RTAI

Equipe Systegraveme Robotiseacute de Production

5

Crsquoest une eacutetape tregraves facile il suffit drsquoinclure le fichier drsquoentecirctelinio h dans le code du fichier en CC++ comme suit

Utilisation de linuxIO_ par un programme CC+

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6879

S y nd

e x

V5 linioh dans le code du fichier en CC++ comme suit

include linioh

include ltrtai_shmhgt

static shm_seg0_def seg0

shm_seg0_def robot

seg0 = rtai_malloc (SEG0_BASE sizeof (shm_seg0_def))

if (seg0-gtsem = 0) bcopy (seg0 amprobot sizeof (shm_seg0_def))helliphelliphellip

helliphelliphellip bcopy (amprobot seg0 sizeof (shm_seg0_def))helliphelliphelliphelliphelliphellip

rtai_free (SEG0_BASE seg0)

fichier drsquoentecircte de la meacutemoire partageacutee fourni dans la couche RTAI de linux

Initialisation du segment SEG0_BASE Allocation de lameacutemoire pointeacutee

par seg0

Lecture des donneacutees provenant du bas

niveau

Mise agrave jours du segment de meacutemoire partageacutee

Libeacuterer le segment de meacutemoire alloueacute

Equipe Systegraveme Robotiseacute de Production

5

Plan

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6979

S y nd e x

V5

bull Introductionbull Meacutethodologie AAA

bull Installationbull Utilisation du logiciel Syndex

bull Macrosbull LinuxIO un interface CC++ avec SynDEx

bull Exemple drsquoapplication Robuter-ULM

Equipe Systegraveme Robotiseacute de Production

V5

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7079

S y nd e x

V5

Exemple dapplication Exemple dapplication Robuter Robuter--ULM ULM

Equipe Systegraveme Robotiseacute de Production

V5

Description Robuter-ULMbull Base mobile (2-RM 2-RF)

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7179

S y nd e x

V

bull Bras ultra-leacuteger 6 axesbull Ceinture 24 capteurs US

bull Capteur drsquoefforts 6 axes

bull Cameacutera CCD monochromeavec carte drsquoacquisition

bull PC embarqueacute MMX 233

bull OS linux redhat 61 avecRTAI V-13

bull 3 bouton drsquoarrecirct drsquourgence

bull 4 batteries 48 VDC 4 X12V 60 Ah

bull Entreacutee Joystick

bull Liaison Ethernet sans fil

Le manipulateur mobile Robuter-ULM comprend

Equipe Systegraveme Robotiseacute de Production

V5

Base Mobilebull dimension

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7279

S y nd e x

V

1025 mm de longueur 680 mm de largueur et 44 cm de hauteurbull Poids environ 150 kg avec les batteriesbull charge jusqursquoagrave 120 kg

bull vitesse de 5cms agrave 125 msbull Moteurs 2 X 300 W DC 48 VDCbull orientation par diffeacuterence de vitesse

bull Preacutecision Position par encodeurs optiquesbull Deux roues motrices diffeacuterentielles et de deux roues follesbull Drsquoune ceinture de 24 capteurs Ultrasons

bull Une carte MPC555 de Robosoft pour le controcircle des deuxmoteurs DC des 2 rouesbull Un systegraveme drsquoodomeacutetrie qui donne la position relative du robot

par rapport agrave son repegravere

Equipe Systegraveme Robotiseacute de Production

V5

bull dimension Faute de documentation

Bras U tra- eacuteger

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7379

S y nd e x

V Faute de documentation

bull Poids moins de 20 kgbull charge 2 kgbull Moteurs 6 moteurs DC

bull gripper pince eacutelectrique 2 doigtsbull Reacutepeacutetabiliteacute +- 1mmbull 3 carte MPC555 de Robosoft lrsquoune pour le capteur drsquoeffort et les

deux autres pour les 6 moteurs + moteur de la pincebull Position encodeur increacutemental

1 2 3 4 5 6Axisrange

plusmn90deg 0-90deg plusmn80deg plusmn100deg plusmn90deg plusmn110deg

vitesse 180degs 180degs 180degs 180degs 180degs 180degs

Equipe Systegraveme Robotiseacute de Production

V5

rc tecture ar ware

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7479

S y nd e x

V

Equipe Systegraveme Robotiseacute de Production

V5

Pro eacutemat quePlusieurs applications peuvent ecirctre impleacutementeacutees sur le robot

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7579

S y nd e x

V

Cependant il faut faire la diffeacuterence entre les applications quidemande lrsquoutilisation de syndex et les applications qui neneacutecessite qursquoune programmation en CC++ Agrave titre drsquoexemple

bull Localisationbull Commande en position

bull Commande en forcebull Navigation

bull Geacuteneacuteration de trajectoire

bull Vision

Equipe Systegraveme Robotiseacute de Production

V5 bull Pince eacutelectrique (TOR)

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7679

S y nd e x

Vq ( )

bull Pince possegravede des ES Logiques

Notre application consiste agrave

bull Recevoir lrsquoeacutetat de la pince (fermeacutee ouverte )

bull Envoyer une commande vers la pince

Capture

drsquoinformation

Open

Close

CommandeMeacutemoire

Partageacutee

Actionneur

Pince Prise de deacutecision Pince

Equipe Systegraveme Robotiseacute de Production

V5

Sc eacutema eacute ectr que

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7779

S y nd e x

Equipe Systegraveme Robotiseacute de Production

V5

Conclusion

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7879

S y nd e x bull Introduction

bull Meacutethodologie AAA

bull Installationbull Utilisation du logiciel Syndex

bull Macrosbull LinuxIO un interface CC++ avec SynDEx

bull Exemple drsquoapplication Robuter-ULM

Equipe Systegraveme Robotiseacute de Production

V5

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7979

S y nd e x

Questions

Page 35: Cours Syndex

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3579

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

ArchitecturePour lrsquoarchitecture chaque sommet est caracteacuteriseacute par

bull Un nom uniquebullSon type (processeur or meacutedia)bull Son type identifiant caracteacuteristiques mateacuterielles

bull Sa liste de connecteurs ougrave chaque connecteur est speacutecifieacute par bull son type identifiant le type de meacutedia agrave qui il peut ecirctreconnecteacute

bullUn nom

Equipe Systegraveme Robotiseacute de ProductionCaracteacuter st que

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3679

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Caracteacuter st que Nous distinguons deux cateacutegories de caracteacuteristiques lrsquoune relative

aux opeacuterations et lrsquoune agrave la communication 1 Comment speacutecifier les caracteacuteristiques des opeacuterations sous le menu AdequationAlOp_ArOp on obtient une boite

de dialogue avec

une liste de toutles types de

processeurs et

pour chaque processeur uneliste de tout les

types drsquoopeacuterationsqui peut lesexeacutecuter avec ladureacutee drsquoexeacutecutioncorrespondante

Equipe Systegraveme Robotiseacute de ProductionCaracteacuteristique

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3779

q p y

S y nd

e xV

5

q2 Comment speacutecifier les caracteacuteristiques de communication

sous le menu AdequationAlIO_ArIO on obtient une boitede dialogue avec une liste de tout les types de meacutedia et

pour chaque meacutedia une liste de tout les types de donneacutees

qui peut transfeacuterer avec la dureacutee de transfertcorrespondante

Equipe Systegraveme Robotiseacute de Production Contraintes

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3879

S y nd

e xV

5

Pour contraindre une opeacuteration agrave srsquoexeacutecuter sur un processeur donneacutee

1Seacutelectionner le(s) opeacuteration(s) agrave contraindre2 Seacutelectionner la commande AlgorithmSetConstraint3 Seacutelectionner le processeur qui doit exeacutecute les opeacuterationsseacutelectionneacutees

Pour enlever les contraintes seacutelectionner lrsquoopeacuteration puis exeacutecuterla commande AlgorithmDeleteConstraint

Pour voir sur quel processeur une opeacuteration est y contrainteseacutelectionner lrsquoopeacuteration puis exeacutecuter la commandeAlgorithmShowConstraint le processeur correspondant y sera

seacutelectionneacutePour voir toute les opeacuterations qui sont contraintes sur un processeurseacutelectionner le processeur puis exeacutecuter la commande

ArchitectureShowConstrained du menu les opeacuterationscorrespondantes y seront seacutelectionneacutees

Equipe Systegraveme Robotiseacute de Production A eacutequat o

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3979

S y nd

e xV

5

q

Pour construire le planificateur des opeacuterations dugraphe drsquoalgorithme sur les processeurs du graphedrsquoarchitecture qui effectue automatiquement le routage

des deacutependances de donneacutees inter-processeurs et lacreacuteation et la planification des opeacuterations decommunication sur le meacutedia du graphe drsquoarchitectureon utilise la commande AdequationDoIt

Cette commande creacutee un heuristique qui cherche agraveminimiser le chemin critique du graphe drsquoalgorithme

Equipe Systegraveme Robotiseacute de ProductionGeacuteneacuteration du code exeacutecuti

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4079

S y nd

e xV

5Le code exeacutecutif est la partie qui gegravere les ressources

mateacuterielles pour les allouer aux besoins de lrsquoalgorithmedrsquoapplication Les ressources agrave allouer sont

1 Les espaces meacutemoires des processeurs2 Le temps des seacutequences drsquoinstructions3 Le temps des meacutedia de communication

Gracircce agrave la meacutethodologie AAA et le logiciel Syndexlrsquoutilisateur est exempte drsquoeacutecrire du code pour geacuterer ces

ressources Donc par simple exeacutecution de la commandeAdequationGenExec un code distribueacute pour chaque processeur est automatiquement geacuteneacutereacute Ce code est en

fait un exeacutecutif geacuteneacutereacute sur mesure pour lrsquoalgorithme etlrsquoarchitecture

Equipe Systegraveme Robotiseacute de ProductionGeacuteneacuteration du code exeacutecuti

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4179

S y nd

e xV5

Pour chaque processeur de lrsquoarchitecture un fichier

source macro-exeacutecutif m4 avec le mecircme nom estgeacuteneacutereacute plus un macro-makefile ayant le mecircme nom quecelui de lrsquoapplication Chacun de ces fichiers doit ecirctre

transcrit par le macro-processeur GNU M4 (assembleurC) Cette transcription deacutepend de plusieurs fichiers

1 Fichier syndexm4x qui deacutefini les macrosgeacuteneacuteriques de syndex2 Fichier processorTypem4x qui deacutefini les macros

de bas niveau du processeur3 Fichier applicationNamem4x qui deacutefini les macros

speacutecifiques agrave lrsquoapplication

4 Fichier mediaTypem4x qui deacutefini les macros decommunication de bas niveau du type de media

Equipe Systegraveme Robotiseacute de ProductionCreacuteat on rsquoapp cat on

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4279

S y nd

e xV5 Arborescence des reacutepertoires Rep_travail

Applicationmacros

~rtai

Eacutevolution de lrsquoapplication

Phase 1

Edition des macros(C ou Assembleur)

+GNUmakefile

Phase 2

Edition du graphe

(Algorithme amp

Architecteure)

Phase 3

Compilation amp Exeacutecution

Equipe Systegraveme Robotiseacute de ProductionSeacutequence de compilation de Synde

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4379

S y nd

e xV5

Equipe Systegraveme Robotiseacute de Production Plan

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4479

S y nd

e xV5

bull Introduction

bull Meacutethodologie AAA

bull Installation

bull Utilisation du logiciel Syndex

bull Macros

bull LinuxIO un interface CC++ avec SynDEx

bull Exemple drsquoapplication Robuter-ULM

Equipe Systegraveme Robotiseacute de Production

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4579

S y nd

e xV5

Macros Macros

bull Deacutefinition

bull Types de macros

bull Carte Robosoft MPC555

bull Macros Geacuteneacuterique MPC555

bull Macros speacutecifique Robosoftbull Macros de Communication

bull Macros drsquoapplicationbull Structure du fichier Macro

Equipe Systegraveme Robotiseacute de Production Deacutefinition

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4679

S y nd

e xV5

Un macro-processeur est un programme qui consommeen entreacutee une chaicircne de caractegraveres (texte source) la

traite seacutequentiellement en substituant chaque sous-chaicircne qursquoil reconnaicirct (Appel de macro) par unechaicircne correspondante de substitution ( Deacutefinition de

macro) qursquoil traite agrave nouveau jusqursquoagrave ce qursquoil nrsquo y ait plus de substitution possible et qui produit en sortie lachaicircne de caractegraveres traiteacutee

Equipe Systegraveme Robotiseacute de Productionypes e macrosL diffeacute t di ti t d d

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4779

S y nd

e xV5

Les diffeacuterents macros se distinguent en deux grandes

classes bull Macros geacuteneacuteriques

en geacuteneacuteral ceux sont des macros non destineacutes agraveecirctre utiliser directement par lrsquointerface syndexmais plutocirct utiliseacutees pour la programmation

drsquoautres macros (macros MPC555)bull Macros utilisateurs

macros utiliseacutes directement par syndex ils sontspeacutecifiques agrave lrsquoapplication (macros decommunication macros speacutecifiques robosoft

macros speacutecifiques agrave lrsquoapplication)

Equipe Systegraveme Robotiseacute de ProductionCarte Robosoft MPC555La carte Robosoft MPC555 est conccedilue pour la commande de robot de veacutehicule

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4879

S y nd

e xV5

(1) Connecteur du chip MPC555(2) Alimentation continue(3) Interface BDM (Basic Debug Interface)(4) Entreacute Analogique (Joystickhellip)(5) EntreacuteSortie logiques(6) Ligne seacuterie Synchrone (Codeur absolu)(7) Ligne seacuterie Asynchrone (Port 0)

(8) Ligne seacuterie Asynchrone (Port 1)(9) Connecteur du bus CAN (Port 0)(10) Connecteur du bus CAN (Port 1)(11) Axe 1(13) Axe 2(14) Axe 3(15) Axe 4

La carte Robosoft MPC555 est conccedilue pour la commande de robot de veacutehiculeeacutelectrique ou toute autre machine Elle permet de commander un axe gracircce agrave

lrsquoajout drsquoune carte fille le controcircle srsquoeacutetend jusqursquoagrave 4 axesCette carte est baseacutee sur le microcontrocircleur MPC555 32-bit de MotorolaElle peut opeacuterer agrave une freacutequence

de 40 MHz Divers signauxlogique et analogique peuventecirctre utiliser pour lrsquoacquisition deet la commande de mateacuteriel Les

sorties disponibles peuvent ecirctreanalogique ou PWMOn y trouve

Equipe Systegraveme Robotiseacute de ProductionArchitecture du MPC555

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4979

S y nd

e xV5

Equipe Systegraveme Robotiseacute de Productionaract r st ques u

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5079

S y nd

e xV5

Equipe Systegraveme Robotiseacute de Productionacros n r quesbull GPIO (General-Purpose InputOutput)

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5179

S y nd

e xV5

GPIO (General Purpose InputOutput)ce macro utilise le module USIU qui lui fourni 64 pins pour desentreacuteessorties numeacuteriques ordinaires (IO de la carte Robosoft lirelrsquoeacutetat de la pince envoi de commande agrave la pince lire les alarmes)

bull QADC (Queued Analog to Digital Converter)en utilisant le module QADC ce macro permet la conversion drsquounsignal analogique en entreacutee en un signal numeacuterique multi-niveaux(lire les donneacutees du capteur drsquoeacuteffort du joystick)

bull MIOS (Modular InputOutput System)Le module MIOS fourni 16 pins drsquoES numeacuteriques Sur la carte deRobosoft tous les pins sont en sortie Les 16 pins sont reacutepartiscomme suit

utilisateurs reacuteserveacutes

les pins de 0 agrave 11 sont reacuteserveacutes car ils sont preacutevus agrave ecirctre utiliseacutes pour unmateacuteriel particulier Mais si ce mateacuteriel nrsquoest pas utiliseacute lrsquoutilisateur peut lesutiliser librement

15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

Equipe Systegraveme Robotiseacute de ProductionMacros Geacuteneacuter ques MPC55

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5279

S y nd

e xV5

bull PWM (Pulse width Modulation)utilise le module MIOS (pins de 4-7 pour la direction des moteurset de 8-11 pour la validation) pour la commande des actionneursnumeacuteriques en PWM

bull TPU (Time Processor Units)les macros lieacutes agrave ce module permettent la lecture des encodeurs

increacutementauxbull QSPI (Queued Serial Peripheral Interface)

ce module fait partie du module QSMCM et les macros lieacutes servent

agrave son initialisation pour une communication avec du mateacuterielsexternes via le bus seacuterie synchrone

Equipe Systegraveme Robotiseacute de ProductionMacros Geacuteneacuter ques MPC55

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5379

S y nd

e x

V5 bull Serial port support (Polling implementation)

le MPC555 comprend dans le module QSMCM une interface decommunication seacuterie SCI qui permet la communication avec dumateacuteriels externes via un bus seacuterie asynchrone Plusieurs macros

sont lieacutes agrave cette interface pour initialiser et eacutetablir la communicationbull Serial port support (interrupt handling implementation)

pour la mecircme interface SCI du module QSMCM pour cette

meacutethode drsquoimpleacutementation les macros lieacutes initialisent et eacutetablissentla communication en mode par interruption ce qui permet dedeacutetecter lrsquoarriveacutee des donneacutees sur le port seacuterie au lieu de le scruter

en permanence

tous ces macros on les retrouvent dans le fichier 555m4x

Equipe Systegraveme Robotiseacute de ProductionMacros Speacutec ques Ro oso tles macros suivants sont deacutedieacutes agrave la carte de Robosoft MPC555

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5479

S y nd

e x

V5

bull Initialisation de la carte Robosoftmain_ini_() macro ne doit pas ecirctre utiliser par les programmateursdu fait qursquoelle sert qursquoagrave initialiser la carte robosoft Macro interne agrave

syndex dont lrsquoappel est automatique lors de geacuteneacuteration drsquoexeacutecutifMPC555

bull DAC (Digital to Analog Converter)

macro permet lrsquoutilisation du convertisseur de carte robosoft via lemodule MIOs en utilisant les pins de 0 agrave 2

bull LED (on-bord LED interface)

macro permet la gestion de la LED de la carte robosoft connecteacuteeau module QSPI (pin PCS1)

bull SPI absolute encoder

macro permet lrsquoutilisation lrsquointerface du codeur absolu de la carterobosoft connecteacute au module QSPI

Equipe Systegraveme Robotiseacute de ProductionMacros Speacutec ques Ro oso tbull Motor amplifier direction

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5579

S y nd

e x

V5

Motor amplifier directionmacro qui permet de geacuterer la direction des moteurs

bull Motor power amplifier validationles moteurs embarqueacutes sur les robots sont eacutequipeacutes de freins

eacutelectriquement commandable Ce macro permet drsquoenvoyer unsignal drsquoinhibition pour deacutebloquer les freins

bull Watch dog

pour des raisons de seacutecuriteacute un meacutecanisme mateacuteriel que robosofta ajouteacute sur la carte Ce watch-dog vise agrave stopper lrsquoactiviteacute dumoteur en cas ougrave le programme plante Le watch est impleacutementeacute

comme un time-out mateacuteriel Srsquoil nrsquoest pas rafraicircchi peacuteriodiquement il transmet un signal de sortie ce qui enlegraveve lavalidation de lrsquoamplificateur de puissance donc lrsquoarrecirct dumouvement

ces macros se trouvent dans le fichier RSBm4x

Equipe Systegraveme Robotiseacute de Production

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5679

S y nd

e x

V5

Macros de Communicationchaque meacutedia de communication (bus CAN ) est une ressourceseacutequentielle ougrave les transferts de donneacutees entre processeurs doiventsuivre un certain ordre Donc ce macro de communication sert agravedeacutefinir cet ordre et agrave identifier le protocole de communication lecodagedeacutecodage de lrsquoinformation et la synchronisation

on trouve ces macros dans le fichier CANm4x

Macros drsquoapplicationce genre de macros sont speacutecifique au mateacuteriel en question et aussiagrave lrsquoapplication en particulier Ce sont des macros utilisateurs

on trouve ces macros dans le fichier Application_namem4x

Equipe Systegraveme Robotiseacute de Production

section include (pour inclure drsquoautres fichiers macro agrave utiliseStructure du fichier macr

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5779

S y nd

e x

V5

section define (pour tous les macros utilisateurs)MGC lsquoINITrsquo (MGC Macro Generation Context variable)

divert (declaration) (deacutebut du macro)

(deacuteclaration des variables des meacutemoires et des csts

divert (o)

MGC lsquolooprsquocode en assembleur code en C

dnl (commentaires)

MGC lsquoENDrsquo dnl (fin de la macros)divert lsquo lsquo dnl

macros MPC555meacutemoire MPC555

constante MPC555

macros RTAImeacutemoire RTAI

constante RTAI

Equipe Systegraveme Robotiseacute de Production Plan

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5879

S y nd

e x

V5

bull Introduction

bull Meacutethodologie AAA

bull Installationbull Utilisation du logiciel Syndex

bull Macrosbull LinuxIO un interface CC++ avec SynDEx

bull Exemple drsquoapplication Robuter-ULM

Equipe Systegraveme Robotiseacute de Production

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5979

S y nd

e x

V5

LinuxIO LinuxIO une interface une interface

CC++ avecCC++ avec SynDExSynDEx

bull Principe de basebull Utilisation de linuxIO_ par syndex

bull Utilisation de linuxIO_ par un programmeCC++

Equipe Systegraveme Robotiseacute de ProductionPrincipe de baseSyndex fourni une interface graphique pour la conception

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6079

S y nd

e x

V5

Syndex fourni une interface graphique pour la conception

drsquoapplications Par contre des fois nous avons besoin drsquoautresfonctionnaliteacutes non disponibles donc il faut les creacuteer Cependantgeacuteneacuterer des macros pour syndex srsquoavegravere difficile pour certains du

fait qursquoil faut avoir une bonne connaissance de la programmation bas niveau Dans ce cas lrsquoutilisation de linux_IO trouve sa placedans un contexte particulier interfacer des applications CC++utilisateurs avec des applications embarqueacutees temps reacuteeldeacuteveloppeacutees sous syndex

Par rapport agrave ce contexte de programmation lrsquoorganisation du

deacuteveloppement des applications est structureacutee en deux parties 1 Application haut niveau

2 Application bas niveau

Equipe Systegraveme Robotiseacute de ProductionPrincipe de base

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6179

S y nd

e x

V5

En reacutesumeacute lrsquoapplicationutilisateur contient une

partie haut niveau enCC++ et une partie basniveau sous syndex avecun eacutechange de donneacuteesentre les deux partie en

utilisant la couche RTAIde linux

Equipe Systegraveme Robotiseacute de Production pp cat on aut n veauOn entend application haut

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6279

S y nd

e x

V5

niveau tout programmecomme la planification detrajectoires strateacutegies de

navigation etc hellipLrsquoeacutechange de donneacutees sefait par le biais desmeacutemoires partageacutees quifont parti du noyau RTAI

et de lrsquoespace utilisateursde Linux

Toute ressource preacutesente sur la carte Robosoft peutecirctre partageacutee sans aune restriction

Equipe Systegraveme Robotiseacute de Production pp cat on as n veauUne application bas niveau

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6379

S y nd

e x

V5

Une application bas niveau

est un programme conccedilusous syndex comme lacommande des moteurs la

lecture des capteurs etc hellipLes ressources mateacuteriellessont controcircler par plusieurs

cartes MPC555 Ces cartessrsquoeacutechangent des donneacuteesvia le bus CAN Donc ES

est prise en charge par lasource logicielle deacutedieacutee quisrsquoexeacutecute dans les cartes MPC555 puis la couche RTAI

est utiliseacute pour la mise agrave jour de meacutemoires partageacutees pour lrsquoespace utilisateurs linux drsquoeacutechange de donneacutees

Equipe Systegraveme Robotiseacute de ProductionUtilisation de linux_IO par syndex

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6479

S y nd

e x

V5

Equipe Systegraveme Robotiseacute de ProductionUtilisation de linux_IO par syndex

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6579

S y nd

e x

V5

Equipe Systegraveme Robotiseacute de Production

5

Utilisation de linux_IO par syndex

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6679

S y nd

e x

V5

Degraves que la conception de lrsquoapplication sous syndex esttermineacutee et apregraves compilation (AdequationDo it +GenExec) un fichier drsquoentecircte sous le nom de linioh est

automatiquement geacuteneacutereacute Ce fichier contient lesinformations neacutecessaires pour acceacuteder aux entreacutees enlecture et aux sorties en eacutecriture des opeacuterations linuxIO_

inseacutereacutees dans le graphe drsquoalgorithme Le contenu de cefichier est organiseacute en plusieurs parties une pour chaqueopeacuteration linux_IO preacutesente dans le graphe

Equipe Systegraveme Robotiseacute de Production

5

Utilisation de linux_IO par syndex linioh auto-generated C users API frontend

C i h b f 2001 i i i b f f

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6779

S y nd

e x

V5 Copyright Robosoft 2001 Pierre Pomiers ltpierrerobosoftfrgt

LINUX IO shared memory data segments

define SEG0_BASE 0x10000typedef struct

int js_spd_o0

int js_str_o0

int enc_R_o0int enc_L_o0

double odo_X_o0

double odo_Y_o0

double odo_T_o0int spd_R_o0

int spd_L_o0

int time

unsigned char sem shm_seg0_def

Nom du segment de meacutemoire partageacutee pour notre opeacuteration linuxIO_

7 signaux drsquoentreacutees Ces valeurs sonten lecture et sont peacuteriodiquementrafraicircchies par RTAI

2 signaux de sorties Ces valeurs sonten eacutecriture et sont peacuteriodiquementrafraicircchies par RTAI

Equipe Systegraveme Robotiseacute de Production

5

Crsquoest une eacutetape tregraves facile il suffit drsquoinclure le fichier drsquoentecirctelinio h dans le code du fichier en CC++ comme suit

Utilisation de linuxIO_ par un programme CC+

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6879

S y nd

e x

V5 linioh dans le code du fichier en CC++ comme suit

include linioh

include ltrtai_shmhgt

static shm_seg0_def seg0

shm_seg0_def robot

seg0 = rtai_malloc (SEG0_BASE sizeof (shm_seg0_def))

if (seg0-gtsem = 0) bcopy (seg0 amprobot sizeof (shm_seg0_def))helliphelliphellip

helliphelliphellip bcopy (amprobot seg0 sizeof (shm_seg0_def))helliphelliphelliphelliphelliphellip

rtai_free (SEG0_BASE seg0)

fichier drsquoentecircte de la meacutemoire partageacutee fourni dans la couche RTAI de linux

Initialisation du segment SEG0_BASE Allocation de lameacutemoire pointeacutee

par seg0

Lecture des donneacutees provenant du bas

niveau

Mise agrave jours du segment de meacutemoire partageacutee

Libeacuterer le segment de meacutemoire alloueacute

Equipe Systegraveme Robotiseacute de Production

5

Plan

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6979

S y nd e x

V5

bull Introductionbull Meacutethodologie AAA

bull Installationbull Utilisation du logiciel Syndex

bull Macrosbull LinuxIO un interface CC++ avec SynDEx

bull Exemple drsquoapplication Robuter-ULM

Equipe Systegraveme Robotiseacute de Production

V5

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7079

S y nd e x

V5

Exemple dapplication Exemple dapplication Robuter Robuter--ULM ULM

Equipe Systegraveme Robotiseacute de Production

V5

Description Robuter-ULMbull Base mobile (2-RM 2-RF)

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7179

S y nd e x

V

bull Bras ultra-leacuteger 6 axesbull Ceinture 24 capteurs US

bull Capteur drsquoefforts 6 axes

bull Cameacutera CCD monochromeavec carte drsquoacquisition

bull PC embarqueacute MMX 233

bull OS linux redhat 61 avecRTAI V-13

bull 3 bouton drsquoarrecirct drsquourgence

bull 4 batteries 48 VDC 4 X12V 60 Ah

bull Entreacutee Joystick

bull Liaison Ethernet sans fil

Le manipulateur mobile Robuter-ULM comprend

Equipe Systegraveme Robotiseacute de Production

V5

Base Mobilebull dimension

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7279

S y nd e x

V

1025 mm de longueur 680 mm de largueur et 44 cm de hauteurbull Poids environ 150 kg avec les batteriesbull charge jusqursquoagrave 120 kg

bull vitesse de 5cms agrave 125 msbull Moteurs 2 X 300 W DC 48 VDCbull orientation par diffeacuterence de vitesse

bull Preacutecision Position par encodeurs optiquesbull Deux roues motrices diffeacuterentielles et de deux roues follesbull Drsquoune ceinture de 24 capteurs Ultrasons

bull Une carte MPC555 de Robosoft pour le controcircle des deuxmoteurs DC des 2 rouesbull Un systegraveme drsquoodomeacutetrie qui donne la position relative du robot

par rapport agrave son repegravere

Equipe Systegraveme Robotiseacute de Production

V5

bull dimension Faute de documentation

Bras U tra- eacuteger

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7379

S y nd e x

V Faute de documentation

bull Poids moins de 20 kgbull charge 2 kgbull Moteurs 6 moteurs DC

bull gripper pince eacutelectrique 2 doigtsbull Reacutepeacutetabiliteacute +- 1mmbull 3 carte MPC555 de Robosoft lrsquoune pour le capteur drsquoeffort et les

deux autres pour les 6 moteurs + moteur de la pincebull Position encodeur increacutemental

1 2 3 4 5 6Axisrange

plusmn90deg 0-90deg plusmn80deg plusmn100deg plusmn90deg plusmn110deg

vitesse 180degs 180degs 180degs 180degs 180degs 180degs

Equipe Systegraveme Robotiseacute de Production

V5

rc tecture ar ware

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7479

S y nd e x

V

Equipe Systegraveme Robotiseacute de Production

V5

Pro eacutemat quePlusieurs applications peuvent ecirctre impleacutementeacutees sur le robot

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7579

S y nd e x

V

Cependant il faut faire la diffeacuterence entre les applications quidemande lrsquoutilisation de syndex et les applications qui neneacutecessite qursquoune programmation en CC++ Agrave titre drsquoexemple

bull Localisationbull Commande en position

bull Commande en forcebull Navigation

bull Geacuteneacuteration de trajectoire

bull Vision

Equipe Systegraveme Robotiseacute de Production

V5 bull Pince eacutelectrique (TOR)

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7679

S y nd e x

Vq ( )

bull Pince possegravede des ES Logiques

Notre application consiste agrave

bull Recevoir lrsquoeacutetat de la pince (fermeacutee ouverte )

bull Envoyer une commande vers la pince

Capture

drsquoinformation

Open

Close

CommandeMeacutemoire

Partageacutee

Actionneur

Pince Prise de deacutecision Pince

Equipe Systegraveme Robotiseacute de Production

V5

Sc eacutema eacute ectr que

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7779

S y nd e x

Equipe Systegraveme Robotiseacute de Production

V5

Conclusion

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7879

S y nd e x bull Introduction

bull Meacutethodologie AAA

bull Installationbull Utilisation du logiciel Syndex

bull Macrosbull LinuxIO un interface CC++ avec SynDEx

bull Exemple drsquoapplication Robuter-ULM

Equipe Systegraveme Robotiseacute de Production

V5

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7979

S y nd e x

Questions

Page 36: Cours Syndex

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3679

Equipe Systegraveme Robotiseacute de Production

S y nd

e xV

5

Caracteacuter st que Nous distinguons deux cateacutegories de caracteacuteristiques lrsquoune relative

aux opeacuterations et lrsquoune agrave la communication 1 Comment speacutecifier les caracteacuteristiques des opeacuterations sous le menu AdequationAlOp_ArOp on obtient une boite

de dialogue avec

une liste de toutles types de

processeurs et

pour chaque processeur uneliste de tout les

types drsquoopeacuterationsqui peut lesexeacutecuter avec ladureacutee drsquoexeacutecutioncorrespondante

Equipe Systegraveme Robotiseacute de ProductionCaracteacuteristique

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3779

q p y

S y nd

e xV

5

q2 Comment speacutecifier les caracteacuteristiques de communication

sous le menu AdequationAlIO_ArIO on obtient une boitede dialogue avec une liste de tout les types de meacutedia et

pour chaque meacutedia une liste de tout les types de donneacutees

qui peut transfeacuterer avec la dureacutee de transfertcorrespondante

Equipe Systegraveme Robotiseacute de Production Contraintes

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3879

S y nd

e xV

5

Pour contraindre une opeacuteration agrave srsquoexeacutecuter sur un processeur donneacutee

1Seacutelectionner le(s) opeacuteration(s) agrave contraindre2 Seacutelectionner la commande AlgorithmSetConstraint3 Seacutelectionner le processeur qui doit exeacutecute les opeacuterationsseacutelectionneacutees

Pour enlever les contraintes seacutelectionner lrsquoopeacuteration puis exeacutecuterla commande AlgorithmDeleteConstraint

Pour voir sur quel processeur une opeacuteration est y contrainteseacutelectionner lrsquoopeacuteration puis exeacutecuter la commandeAlgorithmShowConstraint le processeur correspondant y sera

seacutelectionneacutePour voir toute les opeacuterations qui sont contraintes sur un processeurseacutelectionner le processeur puis exeacutecuter la commande

ArchitectureShowConstrained du menu les opeacuterationscorrespondantes y seront seacutelectionneacutees

Equipe Systegraveme Robotiseacute de Production A eacutequat o

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3979

S y nd

e xV

5

q

Pour construire le planificateur des opeacuterations dugraphe drsquoalgorithme sur les processeurs du graphedrsquoarchitecture qui effectue automatiquement le routage

des deacutependances de donneacutees inter-processeurs et lacreacuteation et la planification des opeacuterations decommunication sur le meacutedia du graphe drsquoarchitectureon utilise la commande AdequationDoIt

Cette commande creacutee un heuristique qui cherche agraveminimiser le chemin critique du graphe drsquoalgorithme

Equipe Systegraveme Robotiseacute de ProductionGeacuteneacuteration du code exeacutecuti

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4079

S y nd

e xV

5Le code exeacutecutif est la partie qui gegravere les ressources

mateacuterielles pour les allouer aux besoins de lrsquoalgorithmedrsquoapplication Les ressources agrave allouer sont

1 Les espaces meacutemoires des processeurs2 Le temps des seacutequences drsquoinstructions3 Le temps des meacutedia de communication

Gracircce agrave la meacutethodologie AAA et le logiciel Syndexlrsquoutilisateur est exempte drsquoeacutecrire du code pour geacuterer ces

ressources Donc par simple exeacutecution de la commandeAdequationGenExec un code distribueacute pour chaque processeur est automatiquement geacuteneacutereacute Ce code est en

fait un exeacutecutif geacuteneacutereacute sur mesure pour lrsquoalgorithme etlrsquoarchitecture

Equipe Systegraveme Robotiseacute de ProductionGeacuteneacuteration du code exeacutecuti

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4179

S y nd

e xV5

Pour chaque processeur de lrsquoarchitecture un fichier

source macro-exeacutecutif m4 avec le mecircme nom estgeacuteneacutereacute plus un macro-makefile ayant le mecircme nom quecelui de lrsquoapplication Chacun de ces fichiers doit ecirctre

transcrit par le macro-processeur GNU M4 (assembleurC) Cette transcription deacutepend de plusieurs fichiers

1 Fichier syndexm4x qui deacutefini les macrosgeacuteneacuteriques de syndex2 Fichier processorTypem4x qui deacutefini les macros

de bas niveau du processeur3 Fichier applicationNamem4x qui deacutefini les macros

speacutecifiques agrave lrsquoapplication

4 Fichier mediaTypem4x qui deacutefini les macros decommunication de bas niveau du type de media

Equipe Systegraveme Robotiseacute de ProductionCreacuteat on rsquoapp cat on

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4279

S y nd

e xV5 Arborescence des reacutepertoires Rep_travail

Applicationmacros

~rtai

Eacutevolution de lrsquoapplication

Phase 1

Edition des macros(C ou Assembleur)

+GNUmakefile

Phase 2

Edition du graphe

(Algorithme amp

Architecteure)

Phase 3

Compilation amp Exeacutecution

Equipe Systegraveme Robotiseacute de ProductionSeacutequence de compilation de Synde

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4379

S y nd

e xV5

Equipe Systegraveme Robotiseacute de Production Plan

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4479

S y nd

e xV5

bull Introduction

bull Meacutethodologie AAA

bull Installation

bull Utilisation du logiciel Syndex

bull Macros

bull LinuxIO un interface CC++ avec SynDEx

bull Exemple drsquoapplication Robuter-ULM

Equipe Systegraveme Robotiseacute de Production

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4579

S y nd

e xV5

Macros Macros

bull Deacutefinition

bull Types de macros

bull Carte Robosoft MPC555

bull Macros Geacuteneacuterique MPC555

bull Macros speacutecifique Robosoftbull Macros de Communication

bull Macros drsquoapplicationbull Structure du fichier Macro

Equipe Systegraveme Robotiseacute de Production Deacutefinition

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4679

S y nd

e xV5

Un macro-processeur est un programme qui consommeen entreacutee une chaicircne de caractegraveres (texte source) la

traite seacutequentiellement en substituant chaque sous-chaicircne qursquoil reconnaicirct (Appel de macro) par unechaicircne correspondante de substitution ( Deacutefinition de

macro) qursquoil traite agrave nouveau jusqursquoagrave ce qursquoil nrsquo y ait plus de substitution possible et qui produit en sortie lachaicircne de caractegraveres traiteacutee

Equipe Systegraveme Robotiseacute de Productionypes e macrosL diffeacute t di ti t d d

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4779

S y nd

e xV5

Les diffeacuterents macros se distinguent en deux grandes

classes bull Macros geacuteneacuteriques

en geacuteneacuteral ceux sont des macros non destineacutes agraveecirctre utiliser directement par lrsquointerface syndexmais plutocirct utiliseacutees pour la programmation

drsquoautres macros (macros MPC555)bull Macros utilisateurs

macros utiliseacutes directement par syndex ils sontspeacutecifiques agrave lrsquoapplication (macros decommunication macros speacutecifiques robosoft

macros speacutecifiques agrave lrsquoapplication)

Equipe Systegraveme Robotiseacute de ProductionCarte Robosoft MPC555La carte Robosoft MPC555 est conccedilue pour la commande de robot de veacutehicule

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4879

S y nd

e xV5

(1) Connecteur du chip MPC555(2) Alimentation continue(3) Interface BDM (Basic Debug Interface)(4) Entreacute Analogique (Joystickhellip)(5) EntreacuteSortie logiques(6) Ligne seacuterie Synchrone (Codeur absolu)(7) Ligne seacuterie Asynchrone (Port 0)

(8) Ligne seacuterie Asynchrone (Port 1)(9) Connecteur du bus CAN (Port 0)(10) Connecteur du bus CAN (Port 1)(11) Axe 1(13) Axe 2(14) Axe 3(15) Axe 4

La carte Robosoft MPC555 est conccedilue pour la commande de robot de veacutehiculeeacutelectrique ou toute autre machine Elle permet de commander un axe gracircce agrave

lrsquoajout drsquoune carte fille le controcircle srsquoeacutetend jusqursquoagrave 4 axesCette carte est baseacutee sur le microcontrocircleur MPC555 32-bit de MotorolaElle peut opeacuterer agrave une freacutequence

de 40 MHz Divers signauxlogique et analogique peuventecirctre utiliser pour lrsquoacquisition deet la commande de mateacuteriel Les

sorties disponibles peuvent ecirctreanalogique ou PWMOn y trouve

Equipe Systegraveme Robotiseacute de ProductionArchitecture du MPC555

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4979

S y nd

e xV5

Equipe Systegraveme Robotiseacute de Productionaract r st ques u

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5079

S y nd

e xV5

Equipe Systegraveme Robotiseacute de Productionacros n r quesbull GPIO (General-Purpose InputOutput)

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5179

S y nd

e xV5

GPIO (General Purpose InputOutput)ce macro utilise le module USIU qui lui fourni 64 pins pour desentreacuteessorties numeacuteriques ordinaires (IO de la carte Robosoft lirelrsquoeacutetat de la pince envoi de commande agrave la pince lire les alarmes)

bull QADC (Queued Analog to Digital Converter)en utilisant le module QADC ce macro permet la conversion drsquounsignal analogique en entreacutee en un signal numeacuterique multi-niveaux(lire les donneacutees du capteur drsquoeacuteffort du joystick)

bull MIOS (Modular InputOutput System)Le module MIOS fourni 16 pins drsquoES numeacuteriques Sur la carte deRobosoft tous les pins sont en sortie Les 16 pins sont reacutepartiscomme suit

utilisateurs reacuteserveacutes

les pins de 0 agrave 11 sont reacuteserveacutes car ils sont preacutevus agrave ecirctre utiliseacutes pour unmateacuteriel particulier Mais si ce mateacuteriel nrsquoest pas utiliseacute lrsquoutilisateur peut lesutiliser librement

15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

Equipe Systegraveme Robotiseacute de ProductionMacros Geacuteneacuter ques MPC55

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5279

S y nd

e xV5

bull PWM (Pulse width Modulation)utilise le module MIOS (pins de 4-7 pour la direction des moteurset de 8-11 pour la validation) pour la commande des actionneursnumeacuteriques en PWM

bull TPU (Time Processor Units)les macros lieacutes agrave ce module permettent la lecture des encodeurs

increacutementauxbull QSPI (Queued Serial Peripheral Interface)

ce module fait partie du module QSMCM et les macros lieacutes servent

agrave son initialisation pour une communication avec du mateacuterielsexternes via le bus seacuterie synchrone

Equipe Systegraveme Robotiseacute de ProductionMacros Geacuteneacuter ques MPC55

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5379

S y nd

e x

V5 bull Serial port support (Polling implementation)

le MPC555 comprend dans le module QSMCM une interface decommunication seacuterie SCI qui permet la communication avec dumateacuteriels externes via un bus seacuterie asynchrone Plusieurs macros

sont lieacutes agrave cette interface pour initialiser et eacutetablir la communicationbull Serial port support (interrupt handling implementation)

pour la mecircme interface SCI du module QSMCM pour cette

meacutethode drsquoimpleacutementation les macros lieacutes initialisent et eacutetablissentla communication en mode par interruption ce qui permet dedeacutetecter lrsquoarriveacutee des donneacutees sur le port seacuterie au lieu de le scruter

en permanence

tous ces macros on les retrouvent dans le fichier 555m4x

Equipe Systegraveme Robotiseacute de ProductionMacros Speacutec ques Ro oso tles macros suivants sont deacutedieacutes agrave la carte de Robosoft MPC555

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5479

S y nd

e x

V5

bull Initialisation de la carte Robosoftmain_ini_() macro ne doit pas ecirctre utiliser par les programmateursdu fait qursquoelle sert qursquoagrave initialiser la carte robosoft Macro interne agrave

syndex dont lrsquoappel est automatique lors de geacuteneacuteration drsquoexeacutecutifMPC555

bull DAC (Digital to Analog Converter)

macro permet lrsquoutilisation du convertisseur de carte robosoft via lemodule MIOs en utilisant les pins de 0 agrave 2

bull LED (on-bord LED interface)

macro permet la gestion de la LED de la carte robosoft connecteacuteeau module QSPI (pin PCS1)

bull SPI absolute encoder

macro permet lrsquoutilisation lrsquointerface du codeur absolu de la carterobosoft connecteacute au module QSPI

Equipe Systegraveme Robotiseacute de ProductionMacros Speacutec ques Ro oso tbull Motor amplifier direction

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5579

S y nd

e x

V5

Motor amplifier directionmacro qui permet de geacuterer la direction des moteurs

bull Motor power amplifier validationles moteurs embarqueacutes sur les robots sont eacutequipeacutes de freins

eacutelectriquement commandable Ce macro permet drsquoenvoyer unsignal drsquoinhibition pour deacutebloquer les freins

bull Watch dog

pour des raisons de seacutecuriteacute un meacutecanisme mateacuteriel que robosofta ajouteacute sur la carte Ce watch-dog vise agrave stopper lrsquoactiviteacute dumoteur en cas ougrave le programme plante Le watch est impleacutementeacute

comme un time-out mateacuteriel Srsquoil nrsquoest pas rafraicircchi peacuteriodiquement il transmet un signal de sortie ce qui enlegraveve lavalidation de lrsquoamplificateur de puissance donc lrsquoarrecirct dumouvement

ces macros se trouvent dans le fichier RSBm4x

Equipe Systegraveme Robotiseacute de Production

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5679

S y nd

e x

V5

Macros de Communicationchaque meacutedia de communication (bus CAN ) est une ressourceseacutequentielle ougrave les transferts de donneacutees entre processeurs doiventsuivre un certain ordre Donc ce macro de communication sert agravedeacutefinir cet ordre et agrave identifier le protocole de communication lecodagedeacutecodage de lrsquoinformation et la synchronisation

on trouve ces macros dans le fichier CANm4x

Macros drsquoapplicationce genre de macros sont speacutecifique au mateacuteriel en question et aussiagrave lrsquoapplication en particulier Ce sont des macros utilisateurs

on trouve ces macros dans le fichier Application_namem4x

Equipe Systegraveme Robotiseacute de Production

section include (pour inclure drsquoautres fichiers macro agrave utiliseStructure du fichier macr

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5779

S y nd

e x

V5

section define (pour tous les macros utilisateurs)MGC lsquoINITrsquo (MGC Macro Generation Context variable)

divert (declaration) (deacutebut du macro)

(deacuteclaration des variables des meacutemoires et des csts

divert (o)

MGC lsquolooprsquocode en assembleur code en C

dnl (commentaires)

MGC lsquoENDrsquo dnl (fin de la macros)divert lsquo lsquo dnl

macros MPC555meacutemoire MPC555

constante MPC555

macros RTAImeacutemoire RTAI

constante RTAI

Equipe Systegraveme Robotiseacute de Production Plan

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5879

S y nd

e x

V5

bull Introduction

bull Meacutethodologie AAA

bull Installationbull Utilisation du logiciel Syndex

bull Macrosbull LinuxIO un interface CC++ avec SynDEx

bull Exemple drsquoapplication Robuter-ULM

Equipe Systegraveme Robotiseacute de Production

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5979

S y nd

e x

V5

LinuxIO LinuxIO une interface une interface

CC++ avecCC++ avec SynDExSynDEx

bull Principe de basebull Utilisation de linuxIO_ par syndex

bull Utilisation de linuxIO_ par un programmeCC++

Equipe Systegraveme Robotiseacute de ProductionPrincipe de baseSyndex fourni une interface graphique pour la conception

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6079

S y nd

e x

V5

Syndex fourni une interface graphique pour la conception

drsquoapplications Par contre des fois nous avons besoin drsquoautresfonctionnaliteacutes non disponibles donc il faut les creacuteer Cependantgeacuteneacuterer des macros pour syndex srsquoavegravere difficile pour certains du

fait qursquoil faut avoir une bonne connaissance de la programmation bas niveau Dans ce cas lrsquoutilisation de linux_IO trouve sa placedans un contexte particulier interfacer des applications CC++utilisateurs avec des applications embarqueacutees temps reacuteeldeacuteveloppeacutees sous syndex

Par rapport agrave ce contexte de programmation lrsquoorganisation du

deacuteveloppement des applications est structureacutee en deux parties 1 Application haut niveau

2 Application bas niveau

Equipe Systegraveme Robotiseacute de ProductionPrincipe de base

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6179

S y nd

e x

V5

En reacutesumeacute lrsquoapplicationutilisateur contient une

partie haut niveau enCC++ et une partie basniveau sous syndex avecun eacutechange de donneacuteesentre les deux partie en

utilisant la couche RTAIde linux

Equipe Systegraveme Robotiseacute de Production pp cat on aut n veauOn entend application haut

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6279

S y nd

e x

V5

niveau tout programmecomme la planification detrajectoires strateacutegies de

navigation etc hellipLrsquoeacutechange de donneacutees sefait par le biais desmeacutemoires partageacutees quifont parti du noyau RTAI

et de lrsquoespace utilisateursde Linux

Toute ressource preacutesente sur la carte Robosoft peutecirctre partageacutee sans aune restriction

Equipe Systegraveme Robotiseacute de Production pp cat on as n veauUne application bas niveau

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6379

S y nd

e x

V5

Une application bas niveau

est un programme conccedilusous syndex comme lacommande des moteurs la

lecture des capteurs etc hellipLes ressources mateacuteriellessont controcircler par plusieurs

cartes MPC555 Ces cartessrsquoeacutechangent des donneacuteesvia le bus CAN Donc ES

est prise en charge par lasource logicielle deacutedieacutee quisrsquoexeacutecute dans les cartes MPC555 puis la couche RTAI

est utiliseacute pour la mise agrave jour de meacutemoires partageacutees pour lrsquoespace utilisateurs linux drsquoeacutechange de donneacutees

Equipe Systegraveme Robotiseacute de ProductionUtilisation de linux_IO par syndex

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6479

S y nd

e x

V5

Equipe Systegraveme Robotiseacute de ProductionUtilisation de linux_IO par syndex

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6579

S y nd

e x

V5

Equipe Systegraveme Robotiseacute de Production

5

Utilisation de linux_IO par syndex

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6679

S y nd

e x

V5

Degraves que la conception de lrsquoapplication sous syndex esttermineacutee et apregraves compilation (AdequationDo it +GenExec) un fichier drsquoentecircte sous le nom de linioh est

automatiquement geacuteneacutereacute Ce fichier contient lesinformations neacutecessaires pour acceacuteder aux entreacutees enlecture et aux sorties en eacutecriture des opeacuterations linuxIO_

inseacutereacutees dans le graphe drsquoalgorithme Le contenu de cefichier est organiseacute en plusieurs parties une pour chaqueopeacuteration linux_IO preacutesente dans le graphe

Equipe Systegraveme Robotiseacute de Production

5

Utilisation de linux_IO par syndex linioh auto-generated C users API frontend

C i h b f 2001 i i i b f f

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6779

S y nd

e x

V5 Copyright Robosoft 2001 Pierre Pomiers ltpierrerobosoftfrgt

LINUX IO shared memory data segments

define SEG0_BASE 0x10000typedef struct

int js_spd_o0

int js_str_o0

int enc_R_o0int enc_L_o0

double odo_X_o0

double odo_Y_o0

double odo_T_o0int spd_R_o0

int spd_L_o0

int time

unsigned char sem shm_seg0_def

Nom du segment de meacutemoire partageacutee pour notre opeacuteration linuxIO_

7 signaux drsquoentreacutees Ces valeurs sonten lecture et sont peacuteriodiquementrafraicircchies par RTAI

2 signaux de sorties Ces valeurs sonten eacutecriture et sont peacuteriodiquementrafraicircchies par RTAI

Equipe Systegraveme Robotiseacute de Production

5

Crsquoest une eacutetape tregraves facile il suffit drsquoinclure le fichier drsquoentecirctelinio h dans le code du fichier en CC++ comme suit

Utilisation de linuxIO_ par un programme CC+

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6879

S y nd

e x

V5 linioh dans le code du fichier en CC++ comme suit

include linioh

include ltrtai_shmhgt

static shm_seg0_def seg0

shm_seg0_def robot

seg0 = rtai_malloc (SEG0_BASE sizeof (shm_seg0_def))

if (seg0-gtsem = 0) bcopy (seg0 amprobot sizeof (shm_seg0_def))helliphelliphellip

helliphelliphellip bcopy (amprobot seg0 sizeof (shm_seg0_def))helliphelliphelliphelliphelliphellip

rtai_free (SEG0_BASE seg0)

fichier drsquoentecircte de la meacutemoire partageacutee fourni dans la couche RTAI de linux

Initialisation du segment SEG0_BASE Allocation de lameacutemoire pointeacutee

par seg0

Lecture des donneacutees provenant du bas

niveau

Mise agrave jours du segment de meacutemoire partageacutee

Libeacuterer le segment de meacutemoire alloueacute

Equipe Systegraveme Robotiseacute de Production

5

Plan

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6979

S y nd e x

V5

bull Introductionbull Meacutethodologie AAA

bull Installationbull Utilisation du logiciel Syndex

bull Macrosbull LinuxIO un interface CC++ avec SynDEx

bull Exemple drsquoapplication Robuter-ULM

Equipe Systegraveme Robotiseacute de Production

V5

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7079

S y nd e x

V5

Exemple dapplication Exemple dapplication Robuter Robuter--ULM ULM

Equipe Systegraveme Robotiseacute de Production

V5

Description Robuter-ULMbull Base mobile (2-RM 2-RF)

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7179

S y nd e x

V

bull Bras ultra-leacuteger 6 axesbull Ceinture 24 capteurs US

bull Capteur drsquoefforts 6 axes

bull Cameacutera CCD monochromeavec carte drsquoacquisition

bull PC embarqueacute MMX 233

bull OS linux redhat 61 avecRTAI V-13

bull 3 bouton drsquoarrecirct drsquourgence

bull 4 batteries 48 VDC 4 X12V 60 Ah

bull Entreacutee Joystick

bull Liaison Ethernet sans fil

Le manipulateur mobile Robuter-ULM comprend

Equipe Systegraveme Robotiseacute de Production

V5

Base Mobilebull dimension

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7279

S y nd e x

V

1025 mm de longueur 680 mm de largueur et 44 cm de hauteurbull Poids environ 150 kg avec les batteriesbull charge jusqursquoagrave 120 kg

bull vitesse de 5cms agrave 125 msbull Moteurs 2 X 300 W DC 48 VDCbull orientation par diffeacuterence de vitesse

bull Preacutecision Position par encodeurs optiquesbull Deux roues motrices diffeacuterentielles et de deux roues follesbull Drsquoune ceinture de 24 capteurs Ultrasons

bull Une carte MPC555 de Robosoft pour le controcircle des deuxmoteurs DC des 2 rouesbull Un systegraveme drsquoodomeacutetrie qui donne la position relative du robot

par rapport agrave son repegravere

Equipe Systegraveme Robotiseacute de Production

V5

bull dimension Faute de documentation

Bras U tra- eacuteger

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7379

S y nd e x

V Faute de documentation

bull Poids moins de 20 kgbull charge 2 kgbull Moteurs 6 moteurs DC

bull gripper pince eacutelectrique 2 doigtsbull Reacutepeacutetabiliteacute +- 1mmbull 3 carte MPC555 de Robosoft lrsquoune pour le capteur drsquoeffort et les

deux autres pour les 6 moteurs + moteur de la pincebull Position encodeur increacutemental

1 2 3 4 5 6Axisrange

plusmn90deg 0-90deg plusmn80deg plusmn100deg plusmn90deg plusmn110deg

vitesse 180degs 180degs 180degs 180degs 180degs 180degs

Equipe Systegraveme Robotiseacute de Production

V5

rc tecture ar ware

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7479

S y nd e x

V

Equipe Systegraveme Robotiseacute de Production

V5

Pro eacutemat quePlusieurs applications peuvent ecirctre impleacutementeacutees sur le robot

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7579

S y nd e x

V

Cependant il faut faire la diffeacuterence entre les applications quidemande lrsquoutilisation de syndex et les applications qui neneacutecessite qursquoune programmation en CC++ Agrave titre drsquoexemple

bull Localisationbull Commande en position

bull Commande en forcebull Navigation

bull Geacuteneacuteration de trajectoire

bull Vision

Equipe Systegraveme Robotiseacute de Production

V5 bull Pince eacutelectrique (TOR)

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7679

S y nd e x

Vq ( )

bull Pince possegravede des ES Logiques

Notre application consiste agrave

bull Recevoir lrsquoeacutetat de la pince (fermeacutee ouverte )

bull Envoyer une commande vers la pince

Capture

drsquoinformation

Open

Close

CommandeMeacutemoire

Partageacutee

Actionneur

Pince Prise de deacutecision Pince

Equipe Systegraveme Robotiseacute de Production

V5

Sc eacutema eacute ectr que

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7779

S y nd e x

Equipe Systegraveme Robotiseacute de Production

V5

Conclusion

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7879

S y nd e x bull Introduction

bull Meacutethodologie AAA

bull Installationbull Utilisation du logiciel Syndex

bull Macrosbull LinuxIO un interface CC++ avec SynDEx

bull Exemple drsquoapplication Robuter-ULM

Equipe Systegraveme Robotiseacute de Production

V5

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7979

S y nd e x

Questions

Page 37: Cours Syndex

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3779

q p y

S y nd

e xV

5

q2 Comment speacutecifier les caracteacuteristiques de communication

sous le menu AdequationAlIO_ArIO on obtient une boitede dialogue avec une liste de tout les types de meacutedia et

pour chaque meacutedia une liste de tout les types de donneacutees

qui peut transfeacuterer avec la dureacutee de transfertcorrespondante

Equipe Systegraveme Robotiseacute de Production Contraintes

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3879

S y nd

e xV

5

Pour contraindre une opeacuteration agrave srsquoexeacutecuter sur un processeur donneacutee

1Seacutelectionner le(s) opeacuteration(s) agrave contraindre2 Seacutelectionner la commande AlgorithmSetConstraint3 Seacutelectionner le processeur qui doit exeacutecute les opeacuterationsseacutelectionneacutees

Pour enlever les contraintes seacutelectionner lrsquoopeacuteration puis exeacutecuterla commande AlgorithmDeleteConstraint

Pour voir sur quel processeur une opeacuteration est y contrainteseacutelectionner lrsquoopeacuteration puis exeacutecuter la commandeAlgorithmShowConstraint le processeur correspondant y sera

seacutelectionneacutePour voir toute les opeacuterations qui sont contraintes sur un processeurseacutelectionner le processeur puis exeacutecuter la commande

ArchitectureShowConstrained du menu les opeacuterationscorrespondantes y seront seacutelectionneacutees

Equipe Systegraveme Robotiseacute de Production A eacutequat o

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3979

S y nd

e xV

5

q

Pour construire le planificateur des opeacuterations dugraphe drsquoalgorithme sur les processeurs du graphedrsquoarchitecture qui effectue automatiquement le routage

des deacutependances de donneacutees inter-processeurs et lacreacuteation et la planification des opeacuterations decommunication sur le meacutedia du graphe drsquoarchitectureon utilise la commande AdequationDoIt

Cette commande creacutee un heuristique qui cherche agraveminimiser le chemin critique du graphe drsquoalgorithme

Equipe Systegraveme Robotiseacute de ProductionGeacuteneacuteration du code exeacutecuti

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4079

S y nd

e xV

5Le code exeacutecutif est la partie qui gegravere les ressources

mateacuterielles pour les allouer aux besoins de lrsquoalgorithmedrsquoapplication Les ressources agrave allouer sont

1 Les espaces meacutemoires des processeurs2 Le temps des seacutequences drsquoinstructions3 Le temps des meacutedia de communication

Gracircce agrave la meacutethodologie AAA et le logiciel Syndexlrsquoutilisateur est exempte drsquoeacutecrire du code pour geacuterer ces

ressources Donc par simple exeacutecution de la commandeAdequationGenExec un code distribueacute pour chaque processeur est automatiquement geacuteneacutereacute Ce code est en

fait un exeacutecutif geacuteneacutereacute sur mesure pour lrsquoalgorithme etlrsquoarchitecture

Equipe Systegraveme Robotiseacute de ProductionGeacuteneacuteration du code exeacutecuti

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4179

S y nd

e xV5

Pour chaque processeur de lrsquoarchitecture un fichier

source macro-exeacutecutif m4 avec le mecircme nom estgeacuteneacutereacute plus un macro-makefile ayant le mecircme nom quecelui de lrsquoapplication Chacun de ces fichiers doit ecirctre

transcrit par le macro-processeur GNU M4 (assembleurC) Cette transcription deacutepend de plusieurs fichiers

1 Fichier syndexm4x qui deacutefini les macrosgeacuteneacuteriques de syndex2 Fichier processorTypem4x qui deacutefini les macros

de bas niveau du processeur3 Fichier applicationNamem4x qui deacutefini les macros

speacutecifiques agrave lrsquoapplication

4 Fichier mediaTypem4x qui deacutefini les macros decommunication de bas niveau du type de media

Equipe Systegraveme Robotiseacute de ProductionCreacuteat on rsquoapp cat on

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4279

S y nd

e xV5 Arborescence des reacutepertoires Rep_travail

Applicationmacros

~rtai

Eacutevolution de lrsquoapplication

Phase 1

Edition des macros(C ou Assembleur)

+GNUmakefile

Phase 2

Edition du graphe

(Algorithme amp

Architecteure)

Phase 3

Compilation amp Exeacutecution

Equipe Systegraveme Robotiseacute de ProductionSeacutequence de compilation de Synde

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4379

S y nd

e xV5

Equipe Systegraveme Robotiseacute de Production Plan

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4479

S y nd

e xV5

bull Introduction

bull Meacutethodologie AAA

bull Installation

bull Utilisation du logiciel Syndex

bull Macros

bull LinuxIO un interface CC++ avec SynDEx

bull Exemple drsquoapplication Robuter-ULM

Equipe Systegraveme Robotiseacute de Production

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4579

S y nd

e xV5

Macros Macros

bull Deacutefinition

bull Types de macros

bull Carte Robosoft MPC555

bull Macros Geacuteneacuterique MPC555

bull Macros speacutecifique Robosoftbull Macros de Communication

bull Macros drsquoapplicationbull Structure du fichier Macro

Equipe Systegraveme Robotiseacute de Production Deacutefinition

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4679

S y nd

e xV5

Un macro-processeur est un programme qui consommeen entreacutee une chaicircne de caractegraveres (texte source) la

traite seacutequentiellement en substituant chaque sous-chaicircne qursquoil reconnaicirct (Appel de macro) par unechaicircne correspondante de substitution ( Deacutefinition de

macro) qursquoil traite agrave nouveau jusqursquoagrave ce qursquoil nrsquo y ait plus de substitution possible et qui produit en sortie lachaicircne de caractegraveres traiteacutee

Equipe Systegraveme Robotiseacute de Productionypes e macrosL diffeacute t di ti t d d

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4779

S y nd

e xV5

Les diffeacuterents macros se distinguent en deux grandes

classes bull Macros geacuteneacuteriques

en geacuteneacuteral ceux sont des macros non destineacutes agraveecirctre utiliser directement par lrsquointerface syndexmais plutocirct utiliseacutees pour la programmation

drsquoautres macros (macros MPC555)bull Macros utilisateurs

macros utiliseacutes directement par syndex ils sontspeacutecifiques agrave lrsquoapplication (macros decommunication macros speacutecifiques robosoft

macros speacutecifiques agrave lrsquoapplication)

Equipe Systegraveme Robotiseacute de ProductionCarte Robosoft MPC555La carte Robosoft MPC555 est conccedilue pour la commande de robot de veacutehicule

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4879

S y nd

e xV5

(1) Connecteur du chip MPC555(2) Alimentation continue(3) Interface BDM (Basic Debug Interface)(4) Entreacute Analogique (Joystickhellip)(5) EntreacuteSortie logiques(6) Ligne seacuterie Synchrone (Codeur absolu)(7) Ligne seacuterie Asynchrone (Port 0)

(8) Ligne seacuterie Asynchrone (Port 1)(9) Connecteur du bus CAN (Port 0)(10) Connecteur du bus CAN (Port 1)(11) Axe 1(13) Axe 2(14) Axe 3(15) Axe 4

La carte Robosoft MPC555 est conccedilue pour la commande de robot de veacutehiculeeacutelectrique ou toute autre machine Elle permet de commander un axe gracircce agrave

lrsquoajout drsquoune carte fille le controcircle srsquoeacutetend jusqursquoagrave 4 axesCette carte est baseacutee sur le microcontrocircleur MPC555 32-bit de MotorolaElle peut opeacuterer agrave une freacutequence

de 40 MHz Divers signauxlogique et analogique peuventecirctre utiliser pour lrsquoacquisition deet la commande de mateacuteriel Les

sorties disponibles peuvent ecirctreanalogique ou PWMOn y trouve

Equipe Systegraveme Robotiseacute de ProductionArchitecture du MPC555

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4979

S y nd

e xV5

Equipe Systegraveme Robotiseacute de Productionaract r st ques u

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5079

S y nd

e xV5

Equipe Systegraveme Robotiseacute de Productionacros n r quesbull GPIO (General-Purpose InputOutput)

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5179

S y nd

e xV5

GPIO (General Purpose InputOutput)ce macro utilise le module USIU qui lui fourni 64 pins pour desentreacuteessorties numeacuteriques ordinaires (IO de la carte Robosoft lirelrsquoeacutetat de la pince envoi de commande agrave la pince lire les alarmes)

bull QADC (Queued Analog to Digital Converter)en utilisant le module QADC ce macro permet la conversion drsquounsignal analogique en entreacutee en un signal numeacuterique multi-niveaux(lire les donneacutees du capteur drsquoeacuteffort du joystick)

bull MIOS (Modular InputOutput System)Le module MIOS fourni 16 pins drsquoES numeacuteriques Sur la carte deRobosoft tous les pins sont en sortie Les 16 pins sont reacutepartiscomme suit

utilisateurs reacuteserveacutes

les pins de 0 agrave 11 sont reacuteserveacutes car ils sont preacutevus agrave ecirctre utiliseacutes pour unmateacuteriel particulier Mais si ce mateacuteriel nrsquoest pas utiliseacute lrsquoutilisateur peut lesutiliser librement

15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

Equipe Systegraveme Robotiseacute de ProductionMacros Geacuteneacuter ques MPC55

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5279

S y nd

e xV5

bull PWM (Pulse width Modulation)utilise le module MIOS (pins de 4-7 pour la direction des moteurset de 8-11 pour la validation) pour la commande des actionneursnumeacuteriques en PWM

bull TPU (Time Processor Units)les macros lieacutes agrave ce module permettent la lecture des encodeurs

increacutementauxbull QSPI (Queued Serial Peripheral Interface)

ce module fait partie du module QSMCM et les macros lieacutes servent

agrave son initialisation pour une communication avec du mateacuterielsexternes via le bus seacuterie synchrone

Equipe Systegraveme Robotiseacute de ProductionMacros Geacuteneacuter ques MPC55

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5379

S y nd

e x

V5 bull Serial port support (Polling implementation)

le MPC555 comprend dans le module QSMCM une interface decommunication seacuterie SCI qui permet la communication avec dumateacuteriels externes via un bus seacuterie asynchrone Plusieurs macros

sont lieacutes agrave cette interface pour initialiser et eacutetablir la communicationbull Serial port support (interrupt handling implementation)

pour la mecircme interface SCI du module QSMCM pour cette

meacutethode drsquoimpleacutementation les macros lieacutes initialisent et eacutetablissentla communication en mode par interruption ce qui permet dedeacutetecter lrsquoarriveacutee des donneacutees sur le port seacuterie au lieu de le scruter

en permanence

tous ces macros on les retrouvent dans le fichier 555m4x

Equipe Systegraveme Robotiseacute de ProductionMacros Speacutec ques Ro oso tles macros suivants sont deacutedieacutes agrave la carte de Robosoft MPC555

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5479

S y nd

e x

V5

bull Initialisation de la carte Robosoftmain_ini_() macro ne doit pas ecirctre utiliser par les programmateursdu fait qursquoelle sert qursquoagrave initialiser la carte robosoft Macro interne agrave

syndex dont lrsquoappel est automatique lors de geacuteneacuteration drsquoexeacutecutifMPC555

bull DAC (Digital to Analog Converter)

macro permet lrsquoutilisation du convertisseur de carte robosoft via lemodule MIOs en utilisant les pins de 0 agrave 2

bull LED (on-bord LED interface)

macro permet la gestion de la LED de la carte robosoft connecteacuteeau module QSPI (pin PCS1)

bull SPI absolute encoder

macro permet lrsquoutilisation lrsquointerface du codeur absolu de la carterobosoft connecteacute au module QSPI

Equipe Systegraveme Robotiseacute de ProductionMacros Speacutec ques Ro oso tbull Motor amplifier direction

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5579

S y nd

e x

V5

Motor amplifier directionmacro qui permet de geacuterer la direction des moteurs

bull Motor power amplifier validationles moteurs embarqueacutes sur les robots sont eacutequipeacutes de freins

eacutelectriquement commandable Ce macro permet drsquoenvoyer unsignal drsquoinhibition pour deacutebloquer les freins

bull Watch dog

pour des raisons de seacutecuriteacute un meacutecanisme mateacuteriel que robosofta ajouteacute sur la carte Ce watch-dog vise agrave stopper lrsquoactiviteacute dumoteur en cas ougrave le programme plante Le watch est impleacutementeacute

comme un time-out mateacuteriel Srsquoil nrsquoest pas rafraicircchi peacuteriodiquement il transmet un signal de sortie ce qui enlegraveve lavalidation de lrsquoamplificateur de puissance donc lrsquoarrecirct dumouvement

ces macros se trouvent dans le fichier RSBm4x

Equipe Systegraveme Robotiseacute de Production

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5679

S y nd

e x

V5

Macros de Communicationchaque meacutedia de communication (bus CAN ) est une ressourceseacutequentielle ougrave les transferts de donneacutees entre processeurs doiventsuivre un certain ordre Donc ce macro de communication sert agravedeacutefinir cet ordre et agrave identifier le protocole de communication lecodagedeacutecodage de lrsquoinformation et la synchronisation

on trouve ces macros dans le fichier CANm4x

Macros drsquoapplicationce genre de macros sont speacutecifique au mateacuteriel en question et aussiagrave lrsquoapplication en particulier Ce sont des macros utilisateurs

on trouve ces macros dans le fichier Application_namem4x

Equipe Systegraveme Robotiseacute de Production

section include (pour inclure drsquoautres fichiers macro agrave utiliseStructure du fichier macr

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5779

S y nd

e x

V5

section define (pour tous les macros utilisateurs)MGC lsquoINITrsquo (MGC Macro Generation Context variable)

divert (declaration) (deacutebut du macro)

(deacuteclaration des variables des meacutemoires et des csts

divert (o)

MGC lsquolooprsquocode en assembleur code en C

dnl (commentaires)

MGC lsquoENDrsquo dnl (fin de la macros)divert lsquo lsquo dnl

macros MPC555meacutemoire MPC555

constante MPC555

macros RTAImeacutemoire RTAI

constante RTAI

Equipe Systegraveme Robotiseacute de Production Plan

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5879

S y nd

e x

V5

bull Introduction

bull Meacutethodologie AAA

bull Installationbull Utilisation du logiciel Syndex

bull Macrosbull LinuxIO un interface CC++ avec SynDEx

bull Exemple drsquoapplication Robuter-ULM

Equipe Systegraveme Robotiseacute de Production

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5979

S y nd

e x

V5

LinuxIO LinuxIO une interface une interface

CC++ avecCC++ avec SynDExSynDEx

bull Principe de basebull Utilisation de linuxIO_ par syndex

bull Utilisation de linuxIO_ par un programmeCC++

Equipe Systegraveme Robotiseacute de ProductionPrincipe de baseSyndex fourni une interface graphique pour la conception

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6079

S y nd

e x

V5

Syndex fourni une interface graphique pour la conception

drsquoapplications Par contre des fois nous avons besoin drsquoautresfonctionnaliteacutes non disponibles donc il faut les creacuteer Cependantgeacuteneacuterer des macros pour syndex srsquoavegravere difficile pour certains du

fait qursquoil faut avoir une bonne connaissance de la programmation bas niveau Dans ce cas lrsquoutilisation de linux_IO trouve sa placedans un contexte particulier interfacer des applications CC++utilisateurs avec des applications embarqueacutees temps reacuteeldeacuteveloppeacutees sous syndex

Par rapport agrave ce contexte de programmation lrsquoorganisation du

deacuteveloppement des applications est structureacutee en deux parties 1 Application haut niveau

2 Application bas niveau

Equipe Systegraveme Robotiseacute de ProductionPrincipe de base

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6179

S y nd

e x

V5

En reacutesumeacute lrsquoapplicationutilisateur contient une

partie haut niveau enCC++ et une partie basniveau sous syndex avecun eacutechange de donneacuteesentre les deux partie en

utilisant la couche RTAIde linux

Equipe Systegraveme Robotiseacute de Production pp cat on aut n veauOn entend application haut

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6279

S y nd

e x

V5

niveau tout programmecomme la planification detrajectoires strateacutegies de

navigation etc hellipLrsquoeacutechange de donneacutees sefait par le biais desmeacutemoires partageacutees quifont parti du noyau RTAI

et de lrsquoespace utilisateursde Linux

Toute ressource preacutesente sur la carte Robosoft peutecirctre partageacutee sans aune restriction

Equipe Systegraveme Robotiseacute de Production pp cat on as n veauUne application bas niveau

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6379

S y nd

e x

V5

Une application bas niveau

est un programme conccedilusous syndex comme lacommande des moteurs la

lecture des capteurs etc hellipLes ressources mateacuteriellessont controcircler par plusieurs

cartes MPC555 Ces cartessrsquoeacutechangent des donneacuteesvia le bus CAN Donc ES

est prise en charge par lasource logicielle deacutedieacutee quisrsquoexeacutecute dans les cartes MPC555 puis la couche RTAI

est utiliseacute pour la mise agrave jour de meacutemoires partageacutees pour lrsquoespace utilisateurs linux drsquoeacutechange de donneacutees

Equipe Systegraveme Robotiseacute de ProductionUtilisation de linux_IO par syndex

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6479

S y nd

e x

V5

Equipe Systegraveme Robotiseacute de ProductionUtilisation de linux_IO par syndex

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6579

S y nd

e x

V5

Equipe Systegraveme Robotiseacute de Production

5

Utilisation de linux_IO par syndex

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6679

S y nd

e x

V5

Degraves que la conception de lrsquoapplication sous syndex esttermineacutee et apregraves compilation (AdequationDo it +GenExec) un fichier drsquoentecircte sous le nom de linioh est

automatiquement geacuteneacutereacute Ce fichier contient lesinformations neacutecessaires pour acceacuteder aux entreacutees enlecture et aux sorties en eacutecriture des opeacuterations linuxIO_

inseacutereacutees dans le graphe drsquoalgorithme Le contenu de cefichier est organiseacute en plusieurs parties une pour chaqueopeacuteration linux_IO preacutesente dans le graphe

Equipe Systegraveme Robotiseacute de Production

5

Utilisation de linux_IO par syndex linioh auto-generated C users API frontend

C i h b f 2001 i i i b f f

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6779

S y nd

e x

V5 Copyright Robosoft 2001 Pierre Pomiers ltpierrerobosoftfrgt

LINUX IO shared memory data segments

define SEG0_BASE 0x10000typedef struct

int js_spd_o0

int js_str_o0

int enc_R_o0int enc_L_o0

double odo_X_o0

double odo_Y_o0

double odo_T_o0int spd_R_o0

int spd_L_o0

int time

unsigned char sem shm_seg0_def

Nom du segment de meacutemoire partageacutee pour notre opeacuteration linuxIO_

7 signaux drsquoentreacutees Ces valeurs sonten lecture et sont peacuteriodiquementrafraicircchies par RTAI

2 signaux de sorties Ces valeurs sonten eacutecriture et sont peacuteriodiquementrafraicircchies par RTAI

Equipe Systegraveme Robotiseacute de Production

5

Crsquoest une eacutetape tregraves facile il suffit drsquoinclure le fichier drsquoentecirctelinio h dans le code du fichier en CC++ comme suit

Utilisation de linuxIO_ par un programme CC+

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6879

S y nd

e x

V5 linioh dans le code du fichier en CC++ comme suit

include linioh

include ltrtai_shmhgt

static shm_seg0_def seg0

shm_seg0_def robot

seg0 = rtai_malloc (SEG0_BASE sizeof (shm_seg0_def))

if (seg0-gtsem = 0) bcopy (seg0 amprobot sizeof (shm_seg0_def))helliphelliphellip

helliphelliphellip bcopy (amprobot seg0 sizeof (shm_seg0_def))helliphelliphelliphelliphelliphellip

rtai_free (SEG0_BASE seg0)

fichier drsquoentecircte de la meacutemoire partageacutee fourni dans la couche RTAI de linux

Initialisation du segment SEG0_BASE Allocation de lameacutemoire pointeacutee

par seg0

Lecture des donneacutees provenant du bas

niveau

Mise agrave jours du segment de meacutemoire partageacutee

Libeacuterer le segment de meacutemoire alloueacute

Equipe Systegraveme Robotiseacute de Production

5

Plan

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6979

S y nd e x

V5

bull Introductionbull Meacutethodologie AAA

bull Installationbull Utilisation du logiciel Syndex

bull Macrosbull LinuxIO un interface CC++ avec SynDEx

bull Exemple drsquoapplication Robuter-ULM

Equipe Systegraveme Robotiseacute de Production

V5

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7079

S y nd e x

V5

Exemple dapplication Exemple dapplication Robuter Robuter--ULM ULM

Equipe Systegraveme Robotiseacute de Production

V5

Description Robuter-ULMbull Base mobile (2-RM 2-RF)

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7179

S y nd e x

V

bull Bras ultra-leacuteger 6 axesbull Ceinture 24 capteurs US

bull Capteur drsquoefforts 6 axes

bull Cameacutera CCD monochromeavec carte drsquoacquisition

bull PC embarqueacute MMX 233

bull OS linux redhat 61 avecRTAI V-13

bull 3 bouton drsquoarrecirct drsquourgence

bull 4 batteries 48 VDC 4 X12V 60 Ah

bull Entreacutee Joystick

bull Liaison Ethernet sans fil

Le manipulateur mobile Robuter-ULM comprend

Equipe Systegraveme Robotiseacute de Production

V5

Base Mobilebull dimension

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7279

S y nd e x

V

1025 mm de longueur 680 mm de largueur et 44 cm de hauteurbull Poids environ 150 kg avec les batteriesbull charge jusqursquoagrave 120 kg

bull vitesse de 5cms agrave 125 msbull Moteurs 2 X 300 W DC 48 VDCbull orientation par diffeacuterence de vitesse

bull Preacutecision Position par encodeurs optiquesbull Deux roues motrices diffeacuterentielles et de deux roues follesbull Drsquoune ceinture de 24 capteurs Ultrasons

bull Une carte MPC555 de Robosoft pour le controcircle des deuxmoteurs DC des 2 rouesbull Un systegraveme drsquoodomeacutetrie qui donne la position relative du robot

par rapport agrave son repegravere

Equipe Systegraveme Robotiseacute de Production

V5

bull dimension Faute de documentation

Bras U tra- eacuteger

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7379

S y nd e x

V Faute de documentation

bull Poids moins de 20 kgbull charge 2 kgbull Moteurs 6 moteurs DC

bull gripper pince eacutelectrique 2 doigtsbull Reacutepeacutetabiliteacute +- 1mmbull 3 carte MPC555 de Robosoft lrsquoune pour le capteur drsquoeffort et les

deux autres pour les 6 moteurs + moteur de la pincebull Position encodeur increacutemental

1 2 3 4 5 6Axisrange

plusmn90deg 0-90deg plusmn80deg plusmn100deg plusmn90deg plusmn110deg

vitesse 180degs 180degs 180degs 180degs 180degs 180degs

Equipe Systegraveme Robotiseacute de Production

V5

rc tecture ar ware

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7479

S y nd e x

V

Equipe Systegraveme Robotiseacute de Production

V5

Pro eacutemat quePlusieurs applications peuvent ecirctre impleacutementeacutees sur le robot

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7579

S y nd e x

V

Cependant il faut faire la diffeacuterence entre les applications quidemande lrsquoutilisation de syndex et les applications qui neneacutecessite qursquoune programmation en CC++ Agrave titre drsquoexemple

bull Localisationbull Commande en position

bull Commande en forcebull Navigation

bull Geacuteneacuteration de trajectoire

bull Vision

Equipe Systegraveme Robotiseacute de Production

V5 bull Pince eacutelectrique (TOR)

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7679

S y nd e x

Vq ( )

bull Pince possegravede des ES Logiques

Notre application consiste agrave

bull Recevoir lrsquoeacutetat de la pince (fermeacutee ouverte )

bull Envoyer une commande vers la pince

Capture

drsquoinformation

Open

Close

CommandeMeacutemoire

Partageacutee

Actionneur

Pince Prise de deacutecision Pince

Equipe Systegraveme Robotiseacute de Production

V5

Sc eacutema eacute ectr que

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7779

S y nd e x

Equipe Systegraveme Robotiseacute de Production

V5

Conclusion

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7879

S y nd e x bull Introduction

bull Meacutethodologie AAA

bull Installationbull Utilisation du logiciel Syndex

bull Macrosbull LinuxIO un interface CC++ avec SynDEx

bull Exemple drsquoapplication Robuter-ULM

Equipe Systegraveme Robotiseacute de Production

V5

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7979

S y nd e x

Questions

Page 38: Cours Syndex

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3879

S y nd

e xV

5

Pour contraindre une opeacuteration agrave srsquoexeacutecuter sur un processeur donneacutee

1Seacutelectionner le(s) opeacuteration(s) agrave contraindre2 Seacutelectionner la commande AlgorithmSetConstraint3 Seacutelectionner le processeur qui doit exeacutecute les opeacuterationsseacutelectionneacutees

Pour enlever les contraintes seacutelectionner lrsquoopeacuteration puis exeacutecuterla commande AlgorithmDeleteConstraint

Pour voir sur quel processeur une opeacuteration est y contrainteseacutelectionner lrsquoopeacuteration puis exeacutecuter la commandeAlgorithmShowConstraint le processeur correspondant y sera

seacutelectionneacutePour voir toute les opeacuterations qui sont contraintes sur un processeurseacutelectionner le processeur puis exeacutecuter la commande

ArchitectureShowConstrained du menu les opeacuterationscorrespondantes y seront seacutelectionneacutees

Equipe Systegraveme Robotiseacute de Production A eacutequat o

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3979

S y nd

e xV

5

q

Pour construire le planificateur des opeacuterations dugraphe drsquoalgorithme sur les processeurs du graphedrsquoarchitecture qui effectue automatiquement le routage

des deacutependances de donneacutees inter-processeurs et lacreacuteation et la planification des opeacuterations decommunication sur le meacutedia du graphe drsquoarchitectureon utilise la commande AdequationDoIt

Cette commande creacutee un heuristique qui cherche agraveminimiser le chemin critique du graphe drsquoalgorithme

Equipe Systegraveme Robotiseacute de ProductionGeacuteneacuteration du code exeacutecuti

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4079

S y nd

e xV

5Le code exeacutecutif est la partie qui gegravere les ressources

mateacuterielles pour les allouer aux besoins de lrsquoalgorithmedrsquoapplication Les ressources agrave allouer sont

1 Les espaces meacutemoires des processeurs2 Le temps des seacutequences drsquoinstructions3 Le temps des meacutedia de communication

Gracircce agrave la meacutethodologie AAA et le logiciel Syndexlrsquoutilisateur est exempte drsquoeacutecrire du code pour geacuterer ces

ressources Donc par simple exeacutecution de la commandeAdequationGenExec un code distribueacute pour chaque processeur est automatiquement geacuteneacutereacute Ce code est en

fait un exeacutecutif geacuteneacutereacute sur mesure pour lrsquoalgorithme etlrsquoarchitecture

Equipe Systegraveme Robotiseacute de ProductionGeacuteneacuteration du code exeacutecuti

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4179

S y nd

e xV5

Pour chaque processeur de lrsquoarchitecture un fichier

source macro-exeacutecutif m4 avec le mecircme nom estgeacuteneacutereacute plus un macro-makefile ayant le mecircme nom quecelui de lrsquoapplication Chacun de ces fichiers doit ecirctre

transcrit par le macro-processeur GNU M4 (assembleurC) Cette transcription deacutepend de plusieurs fichiers

1 Fichier syndexm4x qui deacutefini les macrosgeacuteneacuteriques de syndex2 Fichier processorTypem4x qui deacutefini les macros

de bas niveau du processeur3 Fichier applicationNamem4x qui deacutefini les macros

speacutecifiques agrave lrsquoapplication

4 Fichier mediaTypem4x qui deacutefini les macros decommunication de bas niveau du type de media

Equipe Systegraveme Robotiseacute de ProductionCreacuteat on rsquoapp cat on

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4279

S y nd

e xV5 Arborescence des reacutepertoires Rep_travail

Applicationmacros

~rtai

Eacutevolution de lrsquoapplication

Phase 1

Edition des macros(C ou Assembleur)

+GNUmakefile

Phase 2

Edition du graphe

(Algorithme amp

Architecteure)

Phase 3

Compilation amp Exeacutecution

Equipe Systegraveme Robotiseacute de ProductionSeacutequence de compilation de Synde

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4379

S y nd

e xV5

Equipe Systegraveme Robotiseacute de Production Plan

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4479

S y nd

e xV5

bull Introduction

bull Meacutethodologie AAA

bull Installation

bull Utilisation du logiciel Syndex

bull Macros

bull LinuxIO un interface CC++ avec SynDEx

bull Exemple drsquoapplication Robuter-ULM

Equipe Systegraveme Robotiseacute de Production

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4579

S y nd

e xV5

Macros Macros

bull Deacutefinition

bull Types de macros

bull Carte Robosoft MPC555

bull Macros Geacuteneacuterique MPC555

bull Macros speacutecifique Robosoftbull Macros de Communication

bull Macros drsquoapplicationbull Structure du fichier Macro

Equipe Systegraveme Robotiseacute de Production Deacutefinition

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4679

S y nd

e xV5

Un macro-processeur est un programme qui consommeen entreacutee une chaicircne de caractegraveres (texte source) la

traite seacutequentiellement en substituant chaque sous-chaicircne qursquoil reconnaicirct (Appel de macro) par unechaicircne correspondante de substitution ( Deacutefinition de

macro) qursquoil traite agrave nouveau jusqursquoagrave ce qursquoil nrsquo y ait plus de substitution possible et qui produit en sortie lachaicircne de caractegraveres traiteacutee

Equipe Systegraveme Robotiseacute de Productionypes e macrosL diffeacute t di ti t d d

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4779

S y nd

e xV5

Les diffeacuterents macros se distinguent en deux grandes

classes bull Macros geacuteneacuteriques

en geacuteneacuteral ceux sont des macros non destineacutes agraveecirctre utiliser directement par lrsquointerface syndexmais plutocirct utiliseacutees pour la programmation

drsquoautres macros (macros MPC555)bull Macros utilisateurs

macros utiliseacutes directement par syndex ils sontspeacutecifiques agrave lrsquoapplication (macros decommunication macros speacutecifiques robosoft

macros speacutecifiques agrave lrsquoapplication)

Equipe Systegraveme Robotiseacute de ProductionCarte Robosoft MPC555La carte Robosoft MPC555 est conccedilue pour la commande de robot de veacutehicule

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4879

S y nd

e xV5

(1) Connecteur du chip MPC555(2) Alimentation continue(3) Interface BDM (Basic Debug Interface)(4) Entreacute Analogique (Joystickhellip)(5) EntreacuteSortie logiques(6) Ligne seacuterie Synchrone (Codeur absolu)(7) Ligne seacuterie Asynchrone (Port 0)

(8) Ligne seacuterie Asynchrone (Port 1)(9) Connecteur du bus CAN (Port 0)(10) Connecteur du bus CAN (Port 1)(11) Axe 1(13) Axe 2(14) Axe 3(15) Axe 4

La carte Robosoft MPC555 est conccedilue pour la commande de robot de veacutehiculeeacutelectrique ou toute autre machine Elle permet de commander un axe gracircce agrave

lrsquoajout drsquoune carte fille le controcircle srsquoeacutetend jusqursquoagrave 4 axesCette carte est baseacutee sur le microcontrocircleur MPC555 32-bit de MotorolaElle peut opeacuterer agrave une freacutequence

de 40 MHz Divers signauxlogique et analogique peuventecirctre utiliser pour lrsquoacquisition deet la commande de mateacuteriel Les

sorties disponibles peuvent ecirctreanalogique ou PWMOn y trouve

Equipe Systegraveme Robotiseacute de ProductionArchitecture du MPC555

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4979

S y nd

e xV5

Equipe Systegraveme Robotiseacute de Productionaract r st ques u

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5079

S y nd

e xV5

Equipe Systegraveme Robotiseacute de Productionacros n r quesbull GPIO (General-Purpose InputOutput)

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5179

S y nd

e xV5

GPIO (General Purpose InputOutput)ce macro utilise le module USIU qui lui fourni 64 pins pour desentreacuteessorties numeacuteriques ordinaires (IO de la carte Robosoft lirelrsquoeacutetat de la pince envoi de commande agrave la pince lire les alarmes)

bull QADC (Queued Analog to Digital Converter)en utilisant le module QADC ce macro permet la conversion drsquounsignal analogique en entreacutee en un signal numeacuterique multi-niveaux(lire les donneacutees du capteur drsquoeacuteffort du joystick)

bull MIOS (Modular InputOutput System)Le module MIOS fourni 16 pins drsquoES numeacuteriques Sur la carte deRobosoft tous les pins sont en sortie Les 16 pins sont reacutepartiscomme suit

utilisateurs reacuteserveacutes

les pins de 0 agrave 11 sont reacuteserveacutes car ils sont preacutevus agrave ecirctre utiliseacutes pour unmateacuteriel particulier Mais si ce mateacuteriel nrsquoest pas utiliseacute lrsquoutilisateur peut lesutiliser librement

15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

Equipe Systegraveme Robotiseacute de ProductionMacros Geacuteneacuter ques MPC55

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5279

S y nd

e xV5

bull PWM (Pulse width Modulation)utilise le module MIOS (pins de 4-7 pour la direction des moteurset de 8-11 pour la validation) pour la commande des actionneursnumeacuteriques en PWM

bull TPU (Time Processor Units)les macros lieacutes agrave ce module permettent la lecture des encodeurs

increacutementauxbull QSPI (Queued Serial Peripheral Interface)

ce module fait partie du module QSMCM et les macros lieacutes servent

agrave son initialisation pour une communication avec du mateacuterielsexternes via le bus seacuterie synchrone

Equipe Systegraveme Robotiseacute de ProductionMacros Geacuteneacuter ques MPC55

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5379

S y nd

e x

V5 bull Serial port support (Polling implementation)

le MPC555 comprend dans le module QSMCM une interface decommunication seacuterie SCI qui permet la communication avec dumateacuteriels externes via un bus seacuterie asynchrone Plusieurs macros

sont lieacutes agrave cette interface pour initialiser et eacutetablir la communicationbull Serial port support (interrupt handling implementation)

pour la mecircme interface SCI du module QSMCM pour cette

meacutethode drsquoimpleacutementation les macros lieacutes initialisent et eacutetablissentla communication en mode par interruption ce qui permet dedeacutetecter lrsquoarriveacutee des donneacutees sur le port seacuterie au lieu de le scruter

en permanence

tous ces macros on les retrouvent dans le fichier 555m4x

Equipe Systegraveme Robotiseacute de ProductionMacros Speacutec ques Ro oso tles macros suivants sont deacutedieacutes agrave la carte de Robosoft MPC555

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5479

S y nd

e x

V5

bull Initialisation de la carte Robosoftmain_ini_() macro ne doit pas ecirctre utiliser par les programmateursdu fait qursquoelle sert qursquoagrave initialiser la carte robosoft Macro interne agrave

syndex dont lrsquoappel est automatique lors de geacuteneacuteration drsquoexeacutecutifMPC555

bull DAC (Digital to Analog Converter)

macro permet lrsquoutilisation du convertisseur de carte robosoft via lemodule MIOs en utilisant les pins de 0 agrave 2

bull LED (on-bord LED interface)

macro permet la gestion de la LED de la carte robosoft connecteacuteeau module QSPI (pin PCS1)

bull SPI absolute encoder

macro permet lrsquoutilisation lrsquointerface du codeur absolu de la carterobosoft connecteacute au module QSPI

Equipe Systegraveme Robotiseacute de ProductionMacros Speacutec ques Ro oso tbull Motor amplifier direction

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5579

S y nd

e x

V5

Motor amplifier directionmacro qui permet de geacuterer la direction des moteurs

bull Motor power amplifier validationles moteurs embarqueacutes sur les robots sont eacutequipeacutes de freins

eacutelectriquement commandable Ce macro permet drsquoenvoyer unsignal drsquoinhibition pour deacutebloquer les freins

bull Watch dog

pour des raisons de seacutecuriteacute un meacutecanisme mateacuteriel que robosofta ajouteacute sur la carte Ce watch-dog vise agrave stopper lrsquoactiviteacute dumoteur en cas ougrave le programme plante Le watch est impleacutementeacute

comme un time-out mateacuteriel Srsquoil nrsquoest pas rafraicircchi peacuteriodiquement il transmet un signal de sortie ce qui enlegraveve lavalidation de lrsquoamplificateur de puissance donc lrsquoarrecirct dumouvement

ces macros se trouvent dans le fichier RSBm4x

Equipe Systegraveme Robotiseacute de Production

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5679

S y nd

e x

V5

Macros de Communicationchaque meacutedia de communication (bus CAN ) est une ressourceseacutequentielle ougrave les transferts de donneacutees entre processeurs doiventsuivre un certain ordre Donc ce macro de communication sert agravedeacutefinir cet ordre et agrave identifier le protocole de communication lecodagedeacutecodage de lrsquoinformation et la synchronisation

on trouve ces macros dans le fichier CANm4x

Macros drsquoapplicationce genre de macros sont speacutecifique au mateacuteriel en question et aussiagrave lrsquoapplication en particulier Ce sont des macros utilisateurs

on trouve ces macros dans le fichier Application_namem4x

Equipe Systegraveme Robotiseacute de Production

section include (pour inclure drsquoautres fichiers macro agrave utiliseStructure du fichier macr

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5779

S y nd

e x

V5

section define (pour tous les macros utilisateurs)MGC lsquoINITrsquo (MGC Macro Generation Context variable)

divert (declaration) (deacutebut du macro)

(deacuteclaration des variables des meacutemoires et des csts

divert (o)

MGC lsquolooprsquocode en assembleur code en C

dnl (commentaires)

MGC lsquoENDrsquo dnl (fin de la macros)divert lsquo lsquo dnl

macros MPC555meacutemoire MPC555

constante MPC555

macros RTAImeacutemoire RTAI

constante RTAI

Equipe Systegraveme Robotiseacute de Production Plan

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5879

S y nd

e x

V5

bull Introduction

bull Meacutethodologie AAA

bull Installationbull Utilisation du logiciel Syndex

bull Macrosbull LinuxIO un interface CC++ avec SynDEx

bull Exemple drsquoapplication Robuter-ULM

Equipe Systegraveme Robotiseacute de Production

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5979

S y nd

e x

V5

LinuxIO LinuxIO une interface une interface

CC++ avecCC++ avec SynDExSynDEx

bull Principe de basebull Utilisation de linuxIO_ par syndex

bull Utilisation de linuxIO_ par un programmeCC++

Equipe Systegraveme Robotiseacute de ProductionPrincipe de baseSyndex fourni une interface graphique pour la conception

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6079

S y nd

e x

V5

Syndex fourni une interface graphique pour la conception

drsquoapplications Par contre des fois nous avons besoin drsquoautresfonctionnaliteacutes non disponibles donc il faut les creacuteer Cependantgeacuteneacuterer des macros pour syndex srsquoavegravere difficile pour certains du

fait qursquoil faut avoir une bonne connaissance de la programmation bas niveau Dans ce cas lrsquoutilisation de linux_IO trouve sa placedans un contexte particulier interfacer des applications CC++utilisateurs avec des applications embarqueacutees temps reacuteeldeacuteveloppeacutees sous syndex

Par rapport agrave ce contexte de programmation lrsquoorganisation du

deacuteveloppement des applications est structureacutee en deux parties 1 Application haut niveau

2 Application bas niveau

Equipe Systegraveme Robotiseacute de ProductionPrincipe de base

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6179

S y nd

e x

V5

En reacutesumeacute lrsquoapplicationutilisateur contient une

partie haut niveau enCC++ et une partie basniveau sous syndex avecun eacutechange de donneacuteesentre les deux partie en

utilisant la couche RTAIde linux

Equipe Systegraveme Robotiseacute de Production pp cat on aut n veauOn entend application haut

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6279

S y nd

e x

V5

niveau tout programmecomme la planification detrajectoires strateacutegies de

navigation etc hellipLrsquoeacutechange de donneacutees sefait par le biais desmeacutemoires partageacutees quifont parti du noyau RTAI

et de lrsquoespace utilisateursde Linux

Toute ressource preacutesente sur la carte Robosoft peutecirctre partageacutee sans aune restriction

Equipe Systegraveme Robotiseacute de Production pp cat on as n veauUne application bas niveau

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6379

S y nd

e x

V5

Une application bas niveau

est un programme conccedilusous syndex comme lacommande des moteurs la

lecture des capteurs etc hellipLes ressources mateacuteriellessont controcircler par plusieurs

cartes MPC555 Ces cartessrsquoeacutechangent des donneacuteesvia le bus CAN Donc ES

est prise en charge par lasource logicielle deacutedieacutee quisrsquoexeacutecute dans les cartes MPC555 puis la couche RTAI

est utiliseacute pour la mise agrave jour de meacutemoires partageacutees pour lrsquoespace utilisateurs linux drsquoeacutechange de donneacutees

Equipe Systegraveme Robotiseacute de ProductionUtilisation de linux_IO par syndex

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6479

S y nd

e x

V5

Equipe Systegraveme Robotiseacute de ProductionUtilisation de linux_IO par syndex

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6579

S y nd

e x

V5

Equipe Systegraveme Robotiseacute de Production

5

Utilisation de linux_IO par syndex

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6679

S y nd

e x

V5

Degraves que la conception de lrsquoapplication sous syndex esttermineacutee et apregraves compilation (AdequationDo it +GenExec) un fichier drsquoentecircte sous le nom de linioh est

automatiquement geacuteneacutereacute Ce fichier contient lesinformations neacutecessaires pour acceacuteder aux entreacutees enlecture et aux sorties en eacutecriture des opeacuterations linuxIO_

inseacutereacutees dans le graphe drsquoalgorithme Le contenu de cefichier est organiseacute en plusieurs parties une pour chaqueopeacuteration linux_IO preacutesente dans le graphe

Equipe Systegraveme Robotiseacute de Production

5

Utilisation de linux_IO par syndex linioh auto-generated C users API frontend

C i h b f 2001 i i i b f f

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6779

S y nd

e x

V5 Copyright Robosoft 2001 Pierre Pomiers ltpierrerobosoftfrgt

LINUX IO shared memory data segments

define SEG0_BASE 0x10000typedef struct

int js_spd_o0

int js_str_o0

int enc_R_o0int enc_L_o0

double odo_X_o0

double odo_Y_o0

double odo_T_o0int spd_R_o0

int spd_L_o0

int time

unsigned char sem shm_seg0_def

Nom du segment de meacutemoire partageacutee pour notre opeacuteration linuxIO_

7 signaux drsquoentreacutees Ces valeurs sonten lecture et sont peacuteriodiquementrafraicircchies par RTAI

2 signaux de sorties Ces valeurs sonten eacutecriture et sont peacuteriodiquementrafraicircchies par RTAI

Equipe Systegraveme Robotiseacute de Production

5

Crsquoest une eacutetape tregraves facile il suffit drsquoinclure le fichier drsquoentecirctelinio h dans le code du fichier en CC++ comme suit

Utilisation de linuxIO_ par un programme CC+

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6879

S y nd

e x

V5 linioh dans le code du fichier en CC++ comme suit

include linioh

include ltrtai_shmhgt

static shm_seg0_def seg0

shm_seg0_def robot

seg0 = rtai_malloc (SEG0_BASE sizeof (shm_seg0_def))

if (seg0-gtsem = 0) bcopy (seg0 amprobot sizeof (shm_seg0_def))helliphelliphellip

helliphelliphellip bcopy (amprobot seg0 sizeof (shm_seg0_def))helliphelliphelliphelliphelliphellip

rtai_free (SEG0_BASE seg0)

fichier drsquoentecircte de la meacutemoire partageacutee fourni dans la couche RTAI de linux

Initialisation du segment SEG0_BASE Allocation de lameacutemoire pointeacutee

par seg0

Lecture des donneacutees provenant du bas

niveau

Mise agrave jours du segment de meacutemoire partageacutee

Libeacuterer le segment de meacutemoire alloueacute

Equipe Systegraveme Robotiseacute de Production

5

Plan

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6979

S y nd e x

V5

bull Introductionbull Meacutethodologie AAA

bull Installationbull Utilisation du logiciel Syndex

bull Macrosbull LinuxIO un interface CC++ avec SynDEx

bull Exemple drsquoapplication Robuter-ULM

Equipe Systegraveme Robotiseacute de Production

V5

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7079

S y nd e x

V5

Exemple dapplication Exemple dapplication Robuter Robuter--ULM ULM

Equipe Systegraveme Robotiseacute de Production

V5

Description Robuter-ULMbull Base mobile (2-RM 2-RF)

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7179

S y nd e x

V

bull Bras ultra-leacuteger 6 axesbull Ceinture 24 capteurs US

bull Capteur drsquoefforts 6 axes

bull Cameacutera CCD monochromeavec carte drsquoacquisition

bull PC embarqueacute MMX 233

bull OS linux redhat 61 avecRTAI V-13

bull 3 bouton drsquoarrecirct drsquourgence

bull 4 batteries 48 VDC 4 X12V 60 Ah

bull Entreacutee Joystick

bull Liaison Ethernet sans fil

Le manipulateur mobile Robuter-ULM comprend

Equipe Systegraveme Robotiseacute de Production

V5

Base Mobilebull dimension

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7279

S y nd e x

V

1025 mm de longueur 680 mm de largueur et 44 cm de hauteurbull Poids environ 150 kg avec les batteriesbull charge jusqursquoagrave 120 kg

bull vitesse de 5cms agrave 125 msbull Moteurs 2 X 300 W DC 48 VDCbull orientation par diffeacuterence de vitesse

bull Preacutecision Position par encodeurs optiquesbull Deux roues motrices diffeacuterentielles et de deux roues follesbull Drsquoune ceinture de 24 capteurs Ultrasons

bull Une carte MPC555 de Robosoft pour le controcircle des deuxmoteurs DC des 2 rouesbull Un systegraveme drsquoodomeacutetrie qui donne la position relative du robot

par rapport agrave son repegravere

Equipe Systegraveme Robotiseacute de Production

V5

bull dimension Faute de documentation

Bras U tra- eacuteger

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7379

S y nd e x

V Faute de documentation

bull Poids moins de 20 kgbull charge 2 kgbull Moteurs 6 moteurs DC

bull gripper pince eacutelectrique 2 doigtsbull Reacutepeacutetabiliteacute +- 1mmbull 3 carte MPC555 de Robosoft lrsquoune pour le capteur drsquoeffort et les

deux autres pour les 6 moteurs + moteur de la pincebull Position encodeur increacutemental

1 2 3 4 5 6Axisrange

plusmn90deg 0-90deg plusmn80deg plusmn100deg plusmn90deg plusmn110deg

vitesse 180degs 180degs 180degs 180degs 180degs 180degs

Equipe Systegraveme Robotiseacute de Production

V5

rc tecture ar ware

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7479

S y nd e x

V

Equipe Systegraveme Robotiseacute de Production

V5

Pro eacutemat quePlusieurs applications peuvent ecirctre impleacutementeacutees sur le robot

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7579

S y nd e x

V

Cependant il faut faire la diffeacuterence entre les applications quidemande lrsquoutilisation de syndex et les applications qui neneacutecessite qursquoune programmation en CC++ Agrave titre drsquoexemple

bull Localisationbull Commande en position

bull Commande en forcebull Navigation

bull Geacuteneacuteration de trajectoire

bull Vision

Equipe Systegraveme Robotiseacute de Production

V5 bull Pince eacutelectrique (TOR)

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7679

S y nd e x

Vq ( )

bull Pince possegravede des ES Logiques

Notre application consiste agrave

bull Recevoir lrsquoeacutetat de la pince (fermeacutee ouverte )

bull Envoyer une commande vers la pince

Capture

drsquoinformation

Open

Close

CommandeMeacutemoire

Partageacutee

Actionneur

Pince Prise de deacutecision Pince

Equipe Systegraveme Robotiseacute de Production

V5

Sc eacutema eacute ectr que

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7779

S y nd e x

Equipe Systegraveme Robotiseacute de Production

V5

Conclusion

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7879

S y nd e x bull Introduction

bull Meacutethodologie AAA

bull Installationbull Utilisation du logiciel Syndex

bull Macrosbull LinuxIO un interface CC++ avec SynDEx

bull Exemple drsquoapplication Robuter-ULM

Equipe Systegraveme Robotiseacute de Production

V5

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7979

S y nd e x

Questions

Page 39: Cours Syndex

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 3979

S y nd

e xV

5

q

Pour construire le planificateur des opeacuterations dugraphe drsquoalgorithme sur les processeurs du graphedrsquoarchitecture qui effectue automatiquement le routage

des deacutependances de donneacutees inter-processeurs et lacreacuteation et la planification des opeacuterations decommunication sur le meacutedia du graphe drsquoarchitectureon utilise la commande AdequationDoIt

Cette commande creacutee un heuristique qui cherche agraveminimiser le chemin critique du graphe drsquoalgorithme

Equipe Systegraveme Robotiseacute de ProductionGeacuteneacuteration du code exeacutecuti

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4079

S y nd

e xV

5Le code exeacutecutif est la partie qui gegravere les ressources

mateacuterielles pour les allouer aux besoins de lrsquoalgorithmedrsquoapplication Les ressources agrave allouer sont

1 Les espaces meacutemoires des processeurs2 Le temps des seacutequences drsquoinstructions3 Le temps des meacutedia de communication

Gracircce agrave la meacutethodologie AAA et le logiciel Syndexlrsquoutilisateur est exempte drsquoeacutecrire du code pour geacuterer ces

ressources Donc par simple exeacutecution de la commandeAdequationGenExec un code distribueacute pour chaque processeur est automatiquement geacuteneacutereacute Ce code est en

fait un exeacutecutif geacuteneacutereacute sur mesure pour lrsquoalgorithme etlrsquoarchitecture

Equipe Systegraveme Robotiseacute de ProductionGeacuteneacuteration du code exeacutecuti

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4179

S y nd

e xV5

Pour chaque processeur de lrsquoarchitecture un fichier

source macro-exeacutecutif m4 avec le mecircme nom estgeacuteneacutereacute plus un macro-makefile ayant le mecircme nom quecelui de lrsquoapplication Chacun de ces fichiers doit ecirctre

transcrit par le macro-processeur GNU M4 (assembleurC) Cette transcription deacutepend de plusieurs fichiers

1 Fichier syndexm4x qui deacutefini les macrosgeacuteneacuteriques de syndex2 Fichier processorTypem4x qui deacutefini les macros

de bas niveau du processeur3 Fichier applicationNamem4x qui deacutefini les macros

speacutecifiques agrave lrsquoapplication

4 Fichier mediaTypem4x qui deacutefini les macros decommunication de bas niveau du type de media

Equipe Systegraveme Robotiseacute de ProductionCreacuteat on rsquoapp cat on

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4279

S y nd

e xV5 Arborescence des reacutepertoires Rep_travail

Applicationmacros

~rtai

Eacutevolution de lrsquoapplication

Phase 1

Edition des macros(C ou Assembleur)

+GNUmakefile

Phase 2

Edition du graphe

(Algorithme amp

Architecteure)

Phase 3

Compilation amp Exeacutecution

Equipe Systegraveme Robotiseacute de ProductionSeacutequence de compilation de Synde

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4379

S y nd

e xV5

Equipe Systegraveme Robotiseacute de Production Plan

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4479

S y nd

e xV5

bull Introduction

bull Meacutethodologie AAA

bull Installation

bull Utilisation du logiciel Syndex

bull Macros

bull LinuxIO un interface CC++ avec SynDEx

bull Exemple drsquoapplication Robuter-ULM

Equipe Systegraveme Robotiseacute de Production

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4579

S y nd

e xV5

Macros Macros

bull Deacutefinition

bull Types de macros

bull Carte Robosoft MPC555

bull Macros Geacuteneacuterique MPC555

bull Macros speacutecifique Robosoftbull Macros de Communication

bull Macros drsquoapplicationbull Structure du fichier Macro

Equipe Systegraveme Robotiseacute de Production Deacutefinition

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4679

S y nd

e xV5

Un macro-processeur est un programme qui consommeen entreacutee une chaicircne de caractegraveres (texte source) la

traite seacutequentiellement en substituant chaque sous-chaicircne qursquoil reconnaicirct (Appel de macro) par unechaicircne correspondante de substitution ( Deacutefinition de

macro) qursquoil traite agrave nouveau jusqursquoagrave ce qursquoil nrsquo y ait plus de substitution possible et qui produit en sortie lachaicircne de caractegraveres traiteacutee

Equipe Systegraveme Robotiseacute de Productionypes e macrosL diffeacute t di ti t d d

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4779

S y nd

e xV5

Les diffeacuterents macros se distinguent en deux grandes

classes bull Macros geacuteneacuteriques

en geacuteneacuteral ceux sont des macros non destineacutes agraveecirctre utiliser directement par lrsquointerface syndexmais plutocirct utiliseacutees pour la programmation

drsquoautres macros (macros MPC555)bull Macros utilisateurs

macros utiliseacutes directement par syndex ils sontspeacutecifiques agrave lrsquoapplication (macros decommunication macros speacutecifiques robosoft

macros speacutecifiques agrave lrsquoapplication)

Equipe Systegraveme Robotiseacute de ProductionCarte Robosoft MPC555La carte Robosoft MPC555 est conccedilue pour la commande de robot de veacutehicule

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4879

S y nd

e xV5

(1) Connecteur du chip MPC555(2) Alimentation continue(3) Interface BDM (Basic Debug Interface)(4) Entreacute Analogique (Joystickhellip)(5) EntreacuteSortie logiques(6) Ligne seacuterie Synchrone (Codeur absolu)(7) Ligne seacuterie Asynchrone (Port 0)

(8) Ligne seacuterie Asynchrone (Port 1)(9) Connecteur du bus CAN (Port 0)(10) Connecteur du bus CAN (Port 1)(11) Axe 1(13) Axe 2(14) Axe 3(15) Axe 4

La carte Robosoft MPC555 est conccedilue pour la commande de robot de veacutehiculeeacutelectrique ou toute autre machine Elle permet de commander un axe gracircce agrave

lrsquoajout drsquoune carte fille le controcircle srsquoeacutetend jusqursquoagrave 4 axesCette carte est baseacutee sur le microcontrocircleur MPC555 32-bit de MotorolaElle peut opeacuterer agrave une freacutequence

de 40 MHz Divers signauxlogique et analogique peuventecirctre utiliser pour lrsquoacquisition deet la commande de mateacuteriel Les

sorties disponibles peuvent ecirctreanalogique ou PWMOn y trouve

Equipe Systegraveme Robotiseacute de ProductionArchitecture du MPC555

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4979

S y nd

e xV5

Equipe Systegraveme Robotiseacute de Productionaract r st ques u

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5079

S y nd

e xV5

Equipe Systegraveme Robotiseacute de Productionacros n r quesbull GPIO (General-Purpose InputOutput)

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5179

S y nd

e xV5

GPIO (General Purpose InputOutput)ce macro utilise le module USIU qui lui fourni 64 pins pour desentreacuteessorties numeacuteriques ordinaires (IO de la carte Robosoft lirelrsquoeacutetat de la pince envoi de commande agrave la pince lire les alarmes)

bull QADC (Queued Analog to Digital Converter)en utilisant le module QADC ce macro permet la conversion drsquounsignal analogique en entreacutee en un signal numeacuterique multi-niveaux(lire les donneacutees du capteur drsquoeacuteffort du joystick)

bull MIOS (Modular InputOutput System)Le module MIOS fourni 16 pins drsquoES numeacuteriques Sur la carte deRobosoft tous les pins sont en sortie Les 16 pins sont reacutepartiscomme suit

utilisateurs reacuteserveacutes

les pins de 0 agrave 11 sont reacuteserveacutes car ils sont preacutevus agrave ecirctre utiliseacutes pour unmateacuteriel particulier Mais si ce mateacuteriel nrsquoest pas utiliseacute lrsquoutilisateur peut lesutiliser librement

15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

Equipe Systegraveme Robotiseacute de ProductionMacros Geacuteneacuter ques MPC55

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5279

S y nd

e xV5

bull PWM (Pulse width Modulation)utilise le module MIOS (pins de 4-7 pour la direction des moteurset de 8-11 pour la validation) pour la commande des actionneursnumeacuteriques en PWM

bull TPU (Time Processor Units)les macros lieacutes agrave ce module permettent la lecture des encodeurs

increacutementauxbull QSPI (Queued Serial Peripheral Interface)

ce module fait partie du module QSMCM et les macros lieacutes servent

agrave son initialisation pour une communication avec du mateacuterielsexternes via le bus seacuterie synchrone

Equipe Systegraveme Robotiseacute de ProductionMacros Geacuteneacuter ques MPC55

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5379

S y nd

e x

V5 bull Serial port support (Polling implementation)

le MPC555 comprend dans le module QSMCM une interface decommunication seacuterie SCI qui permet la communication avec dumateacuteriels externes via un bus seacuterie asynchrone Plusieurs macros

sont lieacutes agrave cette interface pour initialiser et eacutetablir la communicationbull Serial port support (interrupt handling implementation)

pour la mecircme interface SCI du module QSMCM pour cette

meacutethode drsquoimpleacutementation les macros lieacutes initialisent et eacutetablissentla communication en mode par interruption ce qui permet dedeacutetecter lrsquoarriveacutee des donneacutees sur le port seacuterie au lieu de le scruter

en permanence

tous ces macros on les retrouvent dans le fichier 555m4x

Equipe Systegraveme Robotiseacute de ProductionMacros Speacutec ques Ro oso tles macros suivants sont deacutedieacutes agrave la carte de Robosoft MPC555

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5479

S y nd

e x

V5

bull Initialisation de la carte Robosoftmain_ini_() macro ne doit pas ecirctre utiliser par les programmateursdu fait qursquoelle sert qursquoagrave initialiser la carte robosoft Macro interne agrave

syndex dont lrsquoappel est automatique lors de geacuteneacuteration drsquoexeacutecutifMPC555

bull DAC (Digital to Analog Converter)

macro permet lrsquoutilisation du convertisseur de carte robosoft via lemodule MIOs en utilisant les pins de 0 agrave 2

bull LED (on-bord LED interface)

macro permet la gestion de la LED de la carte robosoft connecteacuteeau module QSPI (pin PCS1)

bull SPI absolute encoder

macro permet lrsquoutilisation lrsquointerface du codeur absolu de la carterobosoft connecteacute au module QSPI

Equipe Systegraveme Robotiseacute de ProductionMacros Speacutec ques Ro oso tbull Motor amplifier direction

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5579

S y nd

e x

V5

Motor amplifier directionmacro qui permet de geacuterer la direction des moteurs

bull Motor power amplifier validationles moteurs embarqueacutes sur les robots sont eacutequipeacutes de freins

eacutelectriquement commandable Ce macro permet drsquoenvoyer unsignal drsquoinhibition pour deacutebloquer les freins

bull Watch dog

pour des raisons de seacutecuriteacute un meacutecanisme mateacuteriel que robosofta ajouteacute sur la carte Ce watch-dog vise agrave stopper lrsquoactiviteacute dumoteur en cas ougrave le programme plante Le watch est impleacutementeacute

comme un time-out mateacuteriel Srsquoil nrsquoest pas rafraicircchi peacuteriodiquement il transmet un signal de sortie ce qui enlegraveve lavalidation de lrsquoamplificateur de puissance donc lrsquoarrecirct dumouvement

ces macros se trouvent dans le fichier RSBm4x

Equipe Systegraveme Robotiseacute de Production

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5679

S y nd

e x

V5

Macros de Communicationchaque meacutedia de communication (bus CAN ) est une ressourceseacutequentielle ougrave les transferts de donneacutees entre processeurs doiventsuivre un certain ordre Donc ce macro de communication sert agravedeacutefinir cet ordre et agrave identifier le protocole de communication lecodagedeacutecodage de lrsquoinformation et la synchronisation

on trouve ces macros dans le fichier CANm4x

Macros drsquoapplicationce genre de macros sont speacutecifique au mateacuteriel en question et aussiagrave lrsquoapplication en particulier Ce sont des macros utilisateurs

on trouve ces macros dans le fichier Application_namem4x

Equipe Systegraveme Robotiseacute de Production

section include (pour inclure drsquoautres fichiers macro agrave utiliseStructure du fichier macr

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5779

S y nd

e x

V5

section define (pour tous les macros utilisateurs)MGC lsquoINITrsquo (MGC Macro Generation Context variable)

divert (declaration) (deacutebut du macro)

(deacuteclaration des variables des meacutemoires et des csts

divert (o)

MGC lsquolooprsquocode en assembleur code en C

dnl (commentaires)

MGC lsquoENDrsquo dnl (fin de la macros)divert lsquo lsquo dnl

macros MPC555meacutemoire MPC555

constante MPC555

macros RTAImeacutemoire RTAI

constante RTAI

Equipe Systegraveme Robotiseacute de Production Plan

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5879

S y nd

e x

V5

bull Introduction

bull Meacutethodologie AAA

bull Installationbull Utilisation du logiciel Syndex

bull Macrosbull LinuxIO un interface CC++ avec SynDEx

bull Exemple drsquoapplication Robuter-ULM

Equipe Systegraveme Robotiseacute de Production

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5979

S y nd

e x

V5

LinuxIO LinuxIO une interface une interface

CC++ avecCC++ avec SynDExSynDEx

bull Principe de basebull Utilisation de linuxIO_ par syndex

bull Utilisation de linuxIO_ par un programmeCC++

Equipe Systegraveme Robotiseacute de ProductionPrincipe de baseSyndex fourni une interface graphique pour la conception

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6079

S y nd

e x

V5

Syndex fourni une interface graphique pour la conception

drsquoapplications Par contre des fois nous avons besoin drsquoautresfonctionnaliteacutes non disponibles donc il faut les creacuteer Cependantgeacuteneacuterer des macros pour syndex srsquoavegravere difficile pour certains du

fait qursquoil faut avoir une bonne connaissance de la programmation bas niveau Dans ce cas lrsquoutilisation de linux_IO trouve sa placedans un contexte particulier interfacer des applications CC++utilisateurs avec des applications embarqueacutees temps reacuteeldeacuteveloppeacutees sous syndex

Par rapport agrave ce contexte de programmation lrsquoorganisation du

deacuteveloppement des applications est structureacutee en deux parties 1 Application haut niveau

2 Application bas niveau

Equipe Systegraveme Robotiseacute de ProductionPrincipe de base

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6179

S y nd

e x

V5

En reacutesumeacute lrsquoapplicationutilisateur contient une

partie haut niveau enCC++ et une partie basniveau sous syndex avecun eacutechange de donneacuteesentre les deux partie en

utilisant la couche RTAIde linux

Equipe Systegraveme Robotiseacute de Production pp cat on aut n veauOn entend application haut

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6279

S y nd

e x

V5

niveau tout programmecomme la planification detrajectoires strateacutegies de

navigation etc hellipLrsquoeacutechange de donneacutees sefait par le biais desmeacutemoires partageacutees quifont parti du noyau RTAI

et de lrsquoespace utilisateursde Linux

Toute ressource preacutesente sur la carte Robosoft peutecirctre partageacutee sans aune restriction

Equipe Systegraveme Robotiseacute de Production pp cat on as n veauUne application bas niveau

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6379

S y nd

e x

V5

Une application bas niveau

est un programme conccedilusous syndex comme lacommande des moteurs la

lecture des capteurs etc hellipLes ressources mateacuteriellessont controcircler par plusieurs

cartes MPC555 Ces cartessrsquoeacutechangent des donneacuteesvia le bus CAN Donc ES

est prise en charge par lasource logicielle deacutedieacutee quisrsquoexeacutecute dans les cartes MPC555 puis la couche RTAI

est utiliseacute pour la mise agrave jour de meacutemoires partageacutees pour lrsquoespace utilisateurs linux drsquoeacutechange de donneacutees

Equipe Systegraveme Robotiseacute de ProductionUtilisation de linux_IO par syndex

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6479

S y nd

e x

V5

Equipe Systegraveme Robotiseacute de ProductionUtilisation de linux_IO par syndex

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6579

S y nd

e x

V5

Equipe Systegraveme Robotiseacute de Production

5

Utilisation de linux_IO par syndex

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6679

S y nd

e x

V5

Degraves que la conception de lrsquoapplication sous syndex esttermineacutee et apregraves compilation (AdequationDo it +GenExec) un fichier drsquoentecircte sous le nom de linioh est

automatiquement geacuteneacutereacute Ce fichier contient lesinformations neacutecessaires pour acceacuteder aux entreacutees enlecture et aux sorties en eacutecriture des opeacuterations linuxIO_

inseacutereacutees dans le graphe drsquoalgorithme Le contenu de cefichier est organiseacute en plusieurs parties une pour chaqueopeacuteration linux_IO preacutesente dans le graphe

Equipe Systegraveme Robotiseacute de Production

5

Utilisation de linux_IO par syndex linioh auto-generated C users API frontend

C i h b f 2001 i i i b f f

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6779

S y nd

e x

V5 Copyright Robosoft 2001 Pierre Pomiers ltpierrerobosoftfrgt

LINUX IO shared memory data segments

define SEG0_BASE 0x10000typedef struct

int js_spd_o0

int js_str_o0

int enc_R_o0int enc_L_o0

double odo_X_o0

double odo_Y_o0

double odo_T_o0int spd_R_o0

int spd_L_o0

int time

unsigned char sem shm_seg0_def

Nom du segment de meacutemoire partageacutee pour notre opeacuteration linuxIO_

7 signaux drsquoentreacutees Ces valeurs sonten lecture et sont peacuteriodiquementrafraicircchies par RTAI

2 signaux de sorties Ces valeurs sonten eacutecriture et sont peacuteriodiquementrafraicircchies par RTAI

Equipe Systegraveme Robotiseacute de Production

5

Crsquoest une eacutetape tregraves facile il suffit drsquoinclure le fichier drsquoentecirctelinio h dans le code du fichier en CC++ comme suit

Utilisation de linuxIO_ par un programme CC+

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6879

S y nd

e x

V5 linioh dans le code du fichier en CC++ comme suit

include linioh

include ltrtai_shmhgt

static shm_seg0_def seg0

shm_seg0_def robot

seg0 = rtai_malloc (SEG0_BASE sizeof (shm_seg0_def))

if (seg0-gtsem = 0) bcopy (seg0 amprobot sizeof (shm_seg0_def))helliphelliphellip

helliphelliphellip bcopy (amprobot seg0 sizeof (shm_seg0_def))helliphelliphelliphelliphelliphellip

rtai_free (SEG0_BASE seg0)

fichier drsquoentecircte de la meacutemoire partageacutee fourni dans la couche RTAI de linux

Initialisation du segment SEG0_BASE Allocation de lameacutemoire pointeacutee

par seg0

Lecture des donneacutees provenant du bas

niveau

Mise agrave jours du segment de meacutemoire partageacutee

Libeacuterer le segment de meacutemoire alloueacute

Equipe Systegraveme Robotiseacute de Production

5

Plan

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6979

S y nd e x

V5

bull Introductionbull Meacutethodologie AAA

bull Installationbull Utilisation du logiciel Syndex

bull Macrosbull LinuxIO un interface CC++ avec SynDEx

bull Exemple drsquoapplication Robuter-ULM

Equipe Systegraveme Robotiseacute de Production

V5

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7079

S y nd e x

V5

Exemple dapplication Exemple dapplication Robuter Robuter--ULM ULM

Equipe Systegraveme Robotiseacute de Production

V5

Description Robuter-ULMbull Base mobile (2-RM 2-RF)

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7179

S y nd e x

V

bull Bras ultra-leacuteger 6 axesbull Ceinture 24 capteurs US

bull Capteur drsquoefforts 6 axes

bull Cameacutera CCD monochromeavec carte drsquoacquisition

bull PC embarqueacute MMX 233

bull OS linux redhat 61 avecRTAI V-13

bull 3 bouton drsquoarrecirct drsquourgence

bull 4 batteries 48 VDC 4 X12V 60 Ah

bull Entreacutee Joystick

bull Liaison Ethernet sans fil

Le manipulateur mobile Robuter-ULM comprend

Equipe Systegraveme Robotiseacute de Production

V5

Base Mobilebull dimension

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7279

S y nd e x

V

1025 mm de longueur 680 mm de largueur et 44 cm de hauteurbull Poids environ 150 kg avec les batteriesbull charge jusqursquoagrave 120 kg

bull vitesse de 5cms agrave 125 msbull Moteurs 2 X 300 W DC 48 VDCbull orientation par diffeacuterence de vitesse

bull Preacutecision Position par encodeurs optiquesbull Deux roues motrices diffeacuterentielles et de deux roues follesbull Drsquoune ceinture de 24 capteurs Ultrasons

bull Une carte MPC555 de Robosoft pour le controcircle des deuxmoteurs DC des 2 rouesbull Un systegraveme drsquoodomeacutetrie qui donne la position relative du robot

par rapport agrave son repegravere

Equipe Systegraveme Robotiseacute de Production

V5

bull dimension Faute de documentation

Bras U tra- eacuteger

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7379

S y nd e x

V Faute de documentation

bull Poids moins de 20 kgbull charge 2 kgbull Moteurs 6 moteurs DC

bull gripper pince eacutelectrique 2 doigtsbull Reacutepeacutetabiliteacute +- 1mmbull 3 carte MPC555 de Robosoft lrsquoune pour le capteur drsquoeffort et les

deux autres pour les 6 moteurs + moteur de la pincebull Position encodeur increacutemental

1 2 3 4 5 6Axisrange

plusmn90deg 0-90deg plusmn80deg plusmn100deg plusmn90deg plusmn110deg

vitesse 180degs 180degs 180degs 180degs 180degs 180degs

Equipe Systegraveme Robotiseacute de Production

V5

rc tecture ar ware

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7479

S y nd e x

V

Equipe Systegraveme Robotiseacute de Production

V5

Pro eacutemat quePlusieurs applications peuvent ecirctre impleacutementeacutees sur le robot

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7579

S y nd e x

V

Cependant il faut faire la diffeacuterence entre les applications quidemande lrsquoutilisation de syndex et les applications qui neneacutecessite qursquoune programmation en CC++ Agrave titre drsquoexemple

bull Localisationbull Commande en position

bull Commande en forcebull Navigation

bull Geacuteneacuteration de trajectoire

bull Vision

Equipe Systegraveme Robotiseacute de Production

V5 bull Pince eacutelectrique (TOR)

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7679

S y nd e x

Vq ( )

bull Pince possegravede des ES Logiques

Notre application consiste agrave

bull Recevoir lrsquoeacutetat de la pince (fermeacutee ouverte )

bull Envoyer une commande vers la pince

Capture

drsquoinformation

Open

Close

CommandeMeacutemoire

Partageacutee

Actionneur

Pince Prise de deacutecision Pince

Equipe Systegraveme Robotiseacute de Production

V5

Sc eacutema eacute ectr que

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7779

S y nd e x

Equipe Systegraveme Robotiseacute de Production

V5

Conclusion

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7879

S y nd e x bull Introduction

bull Meacutethodologie AAA

bull Installationbull Utilisation du logiciel Syndex

bull Macrosbull LinuxIO un interface CC++ avec SynDEx

bull Exemple drsquoapplication Robuter-ULM

Equipe Systegraveme Robotiseacute de Production

V5

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7979

S y nd e x

Questions

Page 40: Cours Syndex

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4079

S y nd

e xV

5Le code exeacutecutif est la partie qui gegravere les ressources

mateacuterielles pour les allouer aux besoins de lrsquoalgorithmedrsquoapplication Les ressources agrave allouer sont

1 Les espaces meacutemoires des processeurs2 Le temps des seacutequences drsquoinstructions3 Le temps des meacutedia de communication

Gracircce agrave la meacutethodologie AAA et le logiciel Syndexlrsquoutilisateur est exempte drsquoeacutecrire du code pour geacuterer ces

ressources Donc par simple exeacutecution de la commandeAdequationGenExec un code distribueacute pour chaque processeur est automatiquement geacuteneacutereacute Ce code est en

fait un exeacutecutif geacuteneacutereacute sur mesure pour lrsquoalgorithme etlrsquoarchitecture

Equipe Systegraveme Robotiseacute de ProductionGeacuteneacuteration du code exeacutecuti

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4179

S y nd

e xV5

Pour chaque processeur de lrsquoarchitecture un fichier

source macro-exeacutecutif m4 avec le mecircme nom estgeacuteneacutereacute plus un macro-makefile ayant le mecircme nom quecelui de lrsquoapplication Chacun de ces fichiers doit ecirctre

transcrit par le macro-processeur GNU M4 (assembleurC) Cette transcription deacutepend de plusieurs fichiers

1 Fichier syndexm4x qui deacutefini les macrosgeacuteneacuteriques de syndex2 Fichier processorTypem4x qui deacutefini les macros

de bas niveau du processeur3 Fichier applicationNamem4x qui deacutefini les macros

speacutecifiques agrave lrsquoapplication

4 Fichier mediaTypem4x qui deacutefini les macros decommunication de bas niveau du type de media

Equipe Systegraveme Robotiseacute de ProductionCreacuteat on rsquoapp cat on

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4279

S y nd

e xV5 Arborescence des reacutepertoires Rep_travail

Applicationmacros

~rtai

Eacutevolution de lrsquoapplication

Phase 1

Edition des macros(C ou Assembleur)

+GNUmakefile

Phase 2

Edition du graphe

(Algorithme amp

Architecteure)

Phase 3

Compilation amp Exeacutecution

Equipe Systegraveme Robotiseacute de ProductionSeacutequence de compilation de Synde

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4379

S y nd

e xV5

Equipe Systegraveme Robotiseacute de Production Plan

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4479

S y nd

e xV5

bull Introduction

bull Meacutethodologie AAA

bull Installation

bull Utilisation du logiciel Syndex

bull Macros

bull LinuxIO un interface CC++ avec SynDEx

bull Exemple drsquoapplication Robuter-ULM

Equipe Systegraveme Robotiseacute de Production

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4579

S y nd

e xV5

Macros Macros

bull Deacutefinition

bull Types de macros

bull Carte Robosoft MPC555

bull Macros Geacuteneacuterique MPC555

bull Macros speacutecifique Robosoftbull Macros de Communication

bull Macros drsquoapplicationbull Structure du fichier Macro

Equipe Systegraveme Robotiseacute de Production Deacutefinition

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4679

S y nd

e xV5

Un macro-processeur est un programme qui consommeen entreacutee une chaicircne de caractegraveres (texte source) la

traite seacutequentiellement en substituant chaque sous-chaicircne qursquoil reconnaicirct (Appel de macro) par unechaicircne correspondante de substitution ( Deacutefinition de

macro) qursquoil traite agrave nouveau jusqursquoagrave ce qursquoil nrsquo y ait plus de substitution possible et qui produit en sortie lachaicircne de caractegraveres traiteacutee

Equipe Systegraveme Robotiseacute de Productionypes e macrosL diffeacute t di ti t d d

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4779

S y nd

e xV5

Les diffeacuterents macros se distinguent en deux grandes

classes bull Macros geacuteneacuteriques

en geacuteneacuteral ceux sont des macros non destineacutes agraveecirctre utiliser directement par lrsquointerface syndexmais plutocirct utiliseacutees pour la programmation

drsquoautres macros (macros MPC555)bull Macros utilisateurs

macros utiliseacutes directement par syndex ils sontspeacutecifiques agrave lrsquoapplication (macros decommunication macros speacutecifiques robosoft

macros speacutecifiques agrave lrsquoapplication)

Equipe Systegraveme Robotiseacute de ProductionCarte Robosoft MPC555La carte Robosoft MPC555 est conccedilue pour la commande de robot de veacutehicule

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4879

S y nd

e xV5

(1) Connecteur du chip MPC555(2) Alimentation continue(3) Interface BDM (Basic Debug Interface)(4) Entreacute Analogique (Joystickhellip)(5) EntreacuteSortie logiques(6) Ligne seacuterie Synchrone (Codeur absolu)(7) Ligne seacuterie Asynchrone (Port 0)

(8) Ligne seacuterie Asynchrone (Port 1)(9) Connecteur du bus CAN (Port 0)(10) Connecteur du bus CAN (Port 1)(11) Axe 1(13) Axe 2(14) Axe 3(15) Axe 4

La carte Robosoft MPC555 est conccedilue pour la commande de robot de veacutehiculeeacutelectrique ou toute autre machine Elle permet de commander un axe gracircce agrave

lrsquoajout drsquoune carte fille le controcircle srsquoeacutetend jusqursquoagrave 4 axesCette carte est baseacutee sur le microcontrocircleur MPC555 32-bit de MotorolaElle peut opeacuterer agrave une freacutequence

de 40 MHz Divers signauxlogique et analogique peuventecirctre utiliser pour lrsquoacquisition deet la commande de mateacuteriel Les

sorties disponibles peuvent ecirctreanalogique ou PWMOn y trouve

Equipe Systegraveme Robotiseacute de ProductionArchitecture du MPC555

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4979

S y nd

e xV5

Equipe Systegraveme Robotiseacute de Productionaract r st ques u

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5079

S y nd

e xV5

Equipe Systegraveme Robotiseacute de Productionacros n r quesbull GPIO (General-Purpose InputOutput)

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5179

S y nd

e xV5

GPIO (General Purpose InputOutput)ce macro utilise le module USIU qui lui fourni 64 pins pour desentreacuteessorties numeacuteriques ordinaires (IO de la carte Robosoft lirelrsquoeacutetat de la pince envoi de commande agrave la pince lire les alarmes)

bull QADC (Queued Analog to Digital Converter)en utilisant le module QADC ce macro permet la conversion drsquounsignal analogique en entreacutee en un signal numeacuterique multi-niveaux(lire les donneacutees du capteur drsquoeacuteffort du joystick)

bull MIOS (Modular InputOutput System)Le module MIOS fourni 16 pins drsquoES numeacuteriques Sur la carte deRobosoft tous les pins sont en sortie Les 16 pins sont reacutepartiscomme suit

utilisateurs reacuteserveacutes

les pins de 0 agrave 11 sont reacuteserveacutes car ils sont preacutevus agrave ecirctre utiliseacutes pour unmateacuteriel particulier Mais si ce mateacuteriel nrsquoest pas utiliseacute lrsquoutilisateur peut lesutiliser librement

15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

Equipe Systegraveme Robotiseacute de ProductionMacros Geacuteneacuter ques MPC55

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5279

S y nd

e xV5

bull PWM (Pulse width Modulation)utilise le module MIOS (pins de 4-7 pour la direction des moteurset de 8-11 pour la validation) pour la commande des actionneursnumeacuteriques en PWM

bull TPU (Time Processor Units)les macros lieacutes agrave ce module permettent la lecture des encodeurs

increacutementauxbull QSPI (Queued Serial Peripheral Interface)

ce module fait partie du module QSMCM et les macros lieacutes servent

agrave son initialisation pour une communication avec du mateacuterielsexternes via le bus seacuterie synchrone

Equipe Systegraveme Robotiseacute de ProductionMacros Geacuteneacuter ques MPC55

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5379

S y nd

e x

V5 bull Serial port support (Polling implementation)

le MPC555 comprend dans le module QSMCM une interface decommunication seacuterie SCI qui permet la communication avec dumateacuteriels externes via un bus seacuterie asynchrone Plusieurs macros

sont lieacutes agrave cette interface pour initialiser et eacutetablir la communicationbull Serial port support (interrupt handling implementation)

pour la mecircme interface SCI du module QSMCM pour cette

meacutethode drsquoimpleacutementation les macros lieacutes initialisent et eacutetablissentla communication en mode par interruption ce qui permet dedeacutetecter lrsquoarriveacutee des donneacutees sur le port seacuterie au lieu de le scruter

en permanence

tous ces macros on les retrouvent dans le fichier 555m4x

Equipe Systegraveme Robotiseacute de ProductionMacros Speacutec ques Ro oso tles macros suivants sont deacutedieacutes agrave la carte de Robosoft MPC555

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5479

S y nd

e x

V5

bull Initialisation de la carte Robosoftmain_ini_() macro ne doit pas ecirctre utiliser par les programmateursdu fait qursquoelle sert qursquoagrave initialiser la carte robosoft Macro interne agrave

syndex dont lrsquoappel est automatique lors de geacuteneacuteration drsquoexeacutecutifMPC555

bull DAC (Digital to Analog Converter)

macro permet lrsquoutilisation du convertisseur de carte robosoft via lemodule MIOs en utilisant les pins de 0 agrave 2

bull LED (on-bord LED interface)

macro permet la gestion de la LED de la carte robosoft connecteacuteeau module QSPI (pin PCS1)

bull SPI absolute encoder

macro permet lrsquoutilisation lrsquointerface du codeur absolu de la carterobosoft connecteacute au module QSPI

Equipe Systegraveme Robotiseacute de ProductionMacros Speacutec ques Ro oso tbull Motor amplifier direction

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5579

S y nd

e x

V5

Motor amplifier directionmacro qui permet de geacuterer la direction des moteurs

bull Motor power amplifier validationles moteurs embarqueacutes sur les robots sont eacutequipeacutes de freins

eacutelectriquement commandable Ce macro permet drsquoenvoyer unsignal drsquoinhibition pour deacutebloquer les freins

bull Watch dog

pour des raisons de seacutecuriteacute un meacutecanisme mateacuteriel que robosofta ajouteacute sur la carte Ce watch-dog vise agrave stopper lrsquoactiviteacute dumoteur en cas ougrave le programme plante Le watch est impleacutementeacute

comme un time-out mateacuteriel Srsquoil nrsquoest pas rafraicircchi peacuteriodiquement il transmet un signal de sortie ce qui enlegraveve lavalidation de lrsquoamplificateur de puissance donc lrsquoarrecirct dumouvement

ces macros se trouvent dans le fichier RSBm4x

Equipe Systegraveme Robotiseacute de Production

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5679

S y nd

e x

V5

Macros de Communicationchaque meacutedia de communication (bus CAN ) est une ressourceseacutequentielle ougrave les transferts de donneacutees entre processeurs doiventsuivre un certain ordre Donc ce macro de communication sert agravedeacutefinir cet ordre et agrave identifier le protocole de communication lecodagedeacutecodage de lrsquoinformation et la synchronisation

on trouve ces macros dans le fichier CANm4x

Macros drsquoapplicationce genre de macros sont speacutecifique au mateacuteriel en question et aussiagrave lrsquoapplication en particulier Ce sont des macros utilisateurs

on trouve ces macros dans le fichier Application_namem4x

Equipe Systegraveme Robotiseacute de Production

section include (pour inclure drsquoautres fichiers macro agrave utiliseStructure du fichier macr

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5779

S y nd

e x

V5

section define (pour tous les macros utilisateurs)MGC lsquoINITrsquo (MGC Macro Generation Context variable)

divert (declaration) (deacutebut du macro)

(deacuteclaration des variables des meacutemoires et des csts

divert (o)

MGC lsquolooprsquocode en assembleur code en C

dnl (commentaires)

MGC lsquoENDrsquo dnl (fin de la macros)divert lsquo lsquo dnl

macros MPC555meacutemoire MPC555

constante MPC555

macros RTAImeacutemoire RTAI

constante RTAI

Equipe Systegraveme Robotiseacute de Production Plan

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5879

S y nd

e x

V5

bull Introduction

bull Meacutethodologie AAA

bull Installationbull Utilisation du logiciel Syndex

bull Macrosbull LinuxIO un interface CC++ avec SynDEx

bull Exemple drsquoapplication Robuter-ULM

Equipe Systegraveme Robotiseacute de Production

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5979

S y nd

e x

V5

LinuxIO LinuxIO une interface une interface

CC++ avecCC++ avec SynDExSynDEx

bull Principe de basebull Utilisation de linuxIO_ par syndex

bull Utilisation de linuxIO_ par un programmeCC++

Equipe Systegraveme Robotiseacute de ProductionPrincipe de baseSyndex fourni une interface graphique pour la conception

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6079

S y nd

e x

V5

Syndex fourni une interface graphique pour la conception

drsquoapplications Par contre des fois nous avons besoin drsquoautresfonctionnaliteacutes non disponibles donc il faut les creacuteer Cependantgeacuteneacuterer des macros pour syndex srsquoavegravere difficile pour certains du

fait qursquoil faut avoir une bonne connaissance de la programmation bas niveau Dans ce cas lrsquoutilisation de linux_IO trouve sa placedans un contexte particulier interfacer des applications CC++utilisateurs avec des applications embarqueacutees temps reacuteeldeacuteveloppeacutees sous syndex

Par rapport agrave ce contexte de programmation lrsquoorganisation du

deacuteveloppement des applications est structureacutee en deux parties 1 Application haut niveau

2 Application bas niveau

Equipe Systegraveme Robotiseacute de ProductionPrincipe de base

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6179

S y nd

e x

V5

En reacutesumeacute lrsquoapplicationutilisateur contient une

partie haut niveau enCC++ et une partie basniveau sous syndex avecun eacutechange de donneacuteesentre les deux partie en

utilisant la couche RTAIde linux

Equipe Systegraveme Robotiseacute de Production pp cat on aut n veauOn entend application haut

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6279

S y nd

e x

V5

niveau tout programmecomme la planification detrajectoires strateacutegies de

navigation etc hellipLrsquoeacutechange de donneacutees sefait par le biais desmeacutemoires partageacutees quifont parti du noyau RTAI

et de lrsquoespace utilisateursde Linux

Toute ressource preacutesente sur la carte Robosoft peutecirctre partageacutee sans aune restriction

Equipe Systegraveme Robotiseacute de Production pp cat on as n veauUne application bas niveau

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6379

S y nd

e x

V5

Une application bas niveau

est un programme conccedilusous syndex comme lacommande des moteurs la

lecture des capteurs etc hellipLes ressources mateacuteriellessont controcircler par plusieurs

cartes MPC555 Ces cartessrsquoeacutechangent des donneacuteesvia le bus CAN Donc ES

est prise en charge par lasource logicielle deacutedieacutee quisrsquoexeacutecute dans les cartes MPC555 puis la couche RTAI

est utiliseacute pour la mise agrave jour de meacutemoires partageacutees pour lrsquoespace utilisateurs linux drsquoeacutechange de donneacutees

Equipe Systegraveme Robotiseacute de ProductionUtilisation de linux_IO par syndex

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6479

S y nd

e x

V5

Equipe Systegraveme Robotiseacute de ProductionUtilisation de linux_IO par syndex

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6579

S y nd

e x

V5

Equipe Systegraveme Robotiseacute de Production

5

Utilisation de linux_IO par syndex

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6679

S y nd

e x

V5

Degraves que la conception de lrsquoapplication sous syndex esttermineacutee et apregraves compilation (AdequationDo it +GenExec) un fichier drsquoentecircte sous le nom de linioh est

automatiquement geacuteneacutereacute Ce fichier contient lesinformations neacutecessaires pour acceacuteder aux entreacutees enlecture et aux sorties en eacutecriture des opeacuterations linuxIO_

inseacutereacutees dans le graphe drsquoalgorithme Le contenu de cefichier est organiseacute en plusieurs parties une pour chaqueopeacuteration linux_IO preacutesente dans le graphe

Equipe Systegraveme Robotiseacute de Production

5

Utilisation de linux_IO par syndex linioh auto-generated C users API frontend

C i h b f 2001 i i i b f f

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6779

S y nd

e x

V5 Copyright Robosoft 2001 Pierre Pomiers ltpierrerobosoftfrgt

LINUX IO shared memory data segments

define SEG0_BASE 0x10000typedef struct

int js_spd_o0

int js_str_o0

int enc_R_o0int enc_L_o0

double odo_X_o0

double odo_Y_o0

double odo_T_o0int spd_R_o0

int spd_L_o0

int time

unsigned char sem shm_seg0_def

Nom du segment de meacutemoire partageacutee pour notre opeacuteration linuxIO_

7 signaux drsquoentreacutees Ces valeurs sonten lecture et sont peacuteriodiquementrafraicircchies par RTAI

2 signaux de sorties Ces valeurs sonten eacutecriture et sont peacuteriodiquementrafraicircchies par RTAI

Equipe Systegraveme Robotiseacute de Production

5

Crsquoest une eacutetape tregraves facile il suffit drsquoinclure le fichier drsquoentecirctelinio h dans le code du fichier en CC++ comme suit

Utilisation de linuxIO_ par un programme CC+

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6879

S y nd

e x

V5 linioh dans le code du fichier en CC++ comme suit

include linioh

include ltrtai_shmhgt

static shm_seg0_def seg0

shm_seg0_def robot

seg0 = rtai_malloc (SEG0_BASE sizeof (shm_seg0_def))

if (seg0-gtsem = 0) bcopy (seg0 amprobot sizeof (shm_seg0_def))helliphelliphellip

helliphelliphellip bcopy (amprobot seg0 sizeof (shm_seg0_def))helliphelliphelliphelliphelliphellip

rtai_free (SEG0_BASE seg0)

fichier drsquoentecircte de la meacutemoire partageacutee fourni dans la couche RTAI de linux

Initialisation du segment SEG0_BASE Allocation de lameacutemoire pointeacutee

par seg0

Lecture des donneacutees provenant du bas

niveau

Mise agrave jours du segment de meacutemoire partageacutee

Libeacuterer le segment de meacutemoire alloueacute

Equipe Systegraveme Robotiseacute de Production

5

Plan

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6979

S y nd e x

V5

bull Introductionbull Meacutethodologie AAA

bull Installationbull Utilisation du logiciel Syndex

bull Macrosbull LinuxIO un interface CC++ avec SynDEx

bull Exemple drsquoapplication Robuter-ULM

Equipe Systegraveme Robotiseacute de Production

V5

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7079

S y nd e x

V5

Exemple dapplication Exemple dapplication Robuter Robuter--ULM ULM

Equipe Systegraveme Robotiseacute de Production

V5

Description Robuter-ULMbull Base mobile (2-RM 2-RF)

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7179

S y nd e x

V

bull Bras ultra-leacuteger 6 axesbull Ceinture 24 capteurs US

bull Capteur drsquoefforts 6 axes

bull Cameacutera CCD monochromeavec carte drsquoacquisition

bull PC embarqueacute MMX 233

bull OS linux redhat 61 avecRTAI V-13

bull 3 bouton drsquoarrecirct drsquourgence

bull 4 batteries 48 VDC 4 X12V 60 Ah

bull Entreacutee Joystick

bull Liaison Ethernet sans fil

Le manipulateur mobile Robuter-ULM comprend

Equipe Systegraveme Robotiseacute de Production

V5

Base Mobilebull dimension

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7279

S y nd e x

V

1025 mm de longueur 680 mm de largueur et 44 cm de hauteurbull Poids environ 150 kg avec les batteriesbull charge jusqursquoagrave 120 kg

bull vitesse de 5cms agrave 125 msbull Moteurs 2 X 300 W DC 48 VDCbull orientation par diffeacuterence de vitesse

bull Preacutecision Position par encodeurs optiquesbull Deux roues motrices diffeacuterentielles et de deux roues follesbull Drsquoune ceinture de 24 capteurs Ultrasons

bull Une carte MPC555 de Robosoft pour le controcircle des deuxmoteurs DC des 2 rouesbull Un systegraveme drsquoodomeacutetrie qui donne la position relative du robot

par rapport agrave son repegravere

Equipe Systegraveme Robotiseacute de Production

V5

bull dimension Faute de documentation

Bras U tra- eacuteger

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7379

S y nd e x

V Faute de documentation

bull Poids moins de 20 kgbull charge 2 kgbull Moteurs 6 moteurs DC

bull gripper pince eacutelectrique 2 doigtsbull Reacutepeacutetabiliteacute +- 1mmbull 3 carte MPC555 de Robosoft lrsquoune pour le capteur drsquoeffort et les

deux autres pour les 6 moteurs + moteur de la pincebull Position encodeur increacutemental

1 2 3 4 5 6Axisrange

plusmn90deg 0-90deg plusmn80deg plusmn100deg plusmn90deg plusmn110deg

vitesse 180degs 180degs 180degs 180degs 180degs 180degs

Equipe Systegraveme Robotiseacute de Production

V5

rc tecture ar ware

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7479

S y nd e x

V

Equipe Systegraveme Robotiseacute de Production

V5

Pro eacutemat quePlusieurs applications peuvent ecirctre impleacutementeacutees sur le robot

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7579

S y nd e x

V

Cependant il faut faire la diffeacuterence entre les applications quidemande lrsquoutilisation de syndex et les applications qui neneacutecessite qursquoune programmation en CC++ Agrave titre drsquoexemple

bull Localisationbull Commande en position

bull Commande en forcebull Navigation

bull Geacuteneacuteration de trajectoire

bull Vision

Equipe Systegraveme Robotiseacute de Production

V5 bull Pince eacutelectrique (TOR)

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7679

S y nd e x

Vq ( )

bull Pince possegravede des ES Logiques

Notre application consiste agrave

bull Recevoir lrsquoeacutetat de la pince (fermeacutee ouverte )

bull Envoyer une commande vers la pince

Capture

drsquoinformation

Open

Close

CommandeMeacutemoire

Partageacutee

Actionneur

Pince Prise de deacutecision Pince

Equipe Systegraveme Robotiseacute de Production

V5

Sc eacutema eacute ectr que

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7779

S y nd e x

Equipe Systegraveme Robotiseacute de Production

V5

Conclusion

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7879

S y nd e x bull Introduction

bull Meacutethodologie AAA

bull Installationbull Utilisation du logiciel Syndex

bull Macrosbull LinuxIO un interface CC++ avec SynDEx

bull Exemple drsquoapplication Robuter-ULM

Equipe Systegraveme Robotiseacute de Production

V5

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7979

S y nd e x

Questions

Page 41: Cours Syndex

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4179

S y nd

e xV5

Pour chaque processeur de lrsquoarchitecture un fichier

source macro-exeacutecutif m4 avec le mecircme nom estgeacuteneacutereacute plus un macro-makefile ayant le mecircme nom quecelui de lrsquoapplication Chacun de ces fichiers doit ecirctre

transcrit par le macro-processeur GNU M4 (assembleurC) Cette transcription deacutepend de plusieurs fichiers

1 Fichier syndexm4x qui deacutefini les macrosgeacuteneacuteriques de syndex2 Fichier processorTypem4x qui deacutefini les macros

de bas niveau du processeur3 Fichier applicationNamem4x qui deacutefini les macros

speacutecifiques agrave lrsquoapplication

4 Fichier mediaTypem4x qui deacutefini les macros decommunication de bas niveau du type de media

Equipe Systegraveme Robotiseacute de ProductionCreacuteat on rsquoapp cat on

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4279

S y nd

e xV5 Arborescence des reacutepertoires Rep_travail

Applicationmacros

~rtai

Eacutevolution de lrsquoapplication

Phase 1

Edition des macros(C ou Assembleur)

+GNUmakefile

Phase 2

Edition du graphe

(Algorithme amp

Architecteure)

Phase 3

Compilation amp Exeacutecution

Equipe Systegraveme Robotiseacute de ProductionSeacutequence de compilation de Synde

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4379

S y nd

e xV5

Equipe Systegraveme Robotiseacute de Production Plan

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4479

S y nd

e xV5

bull Introduction

bull Meacutethodologie AAA

bull Installation

bull Utilisation du logiciel Syndex

bull Macros

bull LinuxIO un interface CC++ avec SynDEx

bull Exemple drsquoapplication Robuter-ULM

Equipe Systegraveme Robotiseacute de Production

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4579

S y nd

e xV5

Macros Macros

bull Deacutefinition

bull Types de macros

bull Carte Robosoft MPC555

bull Macros Geacuteneacuterique MPC555

bull Macros speacutecifique Robosoftbull Macros de Communication

bull Macros drsquoapplicationbull Structure du fichier Macro

Equipe Systegraveme Robotiseacute de Production Deacutefinition

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4679

S y nd

e xV5

Un macro-processeur est un programme qui consommeen entreacutee une chaicircne de caractegraveres (texte source) la

traite seacutequentiellement en substituant chaque sous-chaicircne qursquoil reconnaicirct (Appel de macro) par unechaicircne correspondante de substitution ( Deacutefinition de

macro) qursquoil traite agrave nouveau jusqursquoagrave ce qursquoil nrsquo y ait plus de substitution possible et qui produit en sortie lachaicircne de caractegraveres traiteacutee

Equipe Systegraveme Robotiseacute de Productionypes e macrosL diffeacute t di ti t d d

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4779

S y nd

e xV5

Les diffeacuterents macros se distinguent en deux grandes

classes bull Macros geacuteneacuteriques

en geacuteneacuteral ceux sont des macros non destineacutes agraveecirctre utiliser directement par lrsquointerface syndexmais plutocirct utiliseacutees pour la programmation

drsquoautres macros (macros MPC555)bull Macros utilisateurs

macros utiliseacutes directement par syndex ils sontspeacutecifiques agrave lrsquoapplication (macros decommunication macros speacutecifiques robosoft

macros speacutecifiques agrave lrsquoapplication)

Equipe Systegraveme Robotiseacute de ProductionCarte Robosoft MPC555La carte Robosoft MPC555 est conccedilue pour la commande de robot de veacutehicule

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4879

S y nd

e xV5

(1) Connecteur du chip MPC555(2) Alimentation continue(3) Interface BDM (Basic Debug Interface)(4) Entreacute Analogique (Joystickhellip)(5) EntreacuteSortie logiques(6) Ligne seacuterie Synchrone (Codeur absolu)(7) Ligne seacuterie Asynchrone (Port 0)

(8) Ligne seacuterie Asynchrone (Port 1)(9) Connecteur du bus CAN (Port 0)(10) Connecteur du bus CAN (Port 1)(11) Axe 1(13) Axe 2(14) Axe 3(15) Axe 4

La carte Robosoft MPC555 est conccedilue pour la commande de robot de veacutehiculeeacutelectrique ou toute autre machine Elle permet de commander un axe gracircce agrave

lrsquoajout drsquoune carte fille le controcircle srsquoeacutetend jusqursquoagrave 4 axesCette carte est baseacutee sur le microcontrocircleur MPC555 32-bit de MotorolaElle peut opeacuterer agrave une freacutequence

de 40 MHz Divers signauxlogique et analogique peuventecirctre utiliser pour lrsquoacquisition deet la commande de mateacuteriel Les

sorties disponibles peuvent ecirctreanalogique ou PWMOn y trouve

Equipe Systegraveme Robotiseacute de ProductionArchitecture du MPC555

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4979

S y nd

e xV5

Equipe Systegraveme Robotiseacute de Productionaract r st ques u

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5079

S y nd

e xV5

Equipe Systegraveme Robotiseacute de Productionacros n r quesbull GPIO (General-Purpose InputOutput)

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5179

S y nd

e xV5

GPIO (General Purpose InputOutput)ce macro utilise le module USIU qui lui fourni 64 pins pour desentreacuteessorties numeacuteriques ordinaires (IO de la carte Robosoft lirelrsquoeacutetat de la pince envoi de commande agrave la pince lire les alarmes)

bull QADC (Queued Analog to Digital Converter)en utilisant le module QADC ce macro permet la conversion drsquounsignal analogique en entreacutee en un signal numeacuterique multi-niveaux(lire les donneacutees du capteur drsquoeacuteffort du joystick)

bull MIOS (Modular InputOutput System)Le module MIOS fourni 16 pins drsquoES numeacuteriques Sur la carte deRobosoft tous les pins sont en sortie Les 16 pins sont reacutepartiscomme suit

utilisateurs reacuteserveacutes

les pins de 0 agrave 11 sont reacuteserveacutes car ils sont preacutevus agrave ecirctre utiliseacutes pour unmateacuteriel particulier Mais si ce mateacuteriel nrsquoest pas utiliseacute lrsquoutilisateur peut lesutiliser librement

15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

Equipe Systegraveme Robotiseacute de ProductionMacros Geacuteneacuter ques MPC55

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5279

S y nd

e xV5

bull PWM (Pulse width Modulation)utilise le module MIOS (pins de 4-7 pour la direction des moteurset de 8-11 pour la validation) pour la commande des actionneursnumeacuteriques en PWM

bull TPU (Time Processor Units)les macros lieacutes agrave ce module permettent la lecture des encodeurs

increacutementauxbull QSPI (Queued Serial Peripheral Interface)

ce module fait partie du module QSMCM et les macros lieacutes servent

agrave son initialisation pour une communication avec du mateacuterielsexternes via le bus seacuterie synchrone

Equipe Systegraveme Robotiseacute de ProductionMacros Geacuteneacuter ques MPC55

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5379

S y nd

e x

V5 bull Serial port support (Polling implementation)

le MPC555 comprend dans le module QSMCM une interface decommunication seacuterie SCI qui permet la communication avec dumateacuteriels externes via un bus seacuterie asynchrone Plusieurs macros

sont lieacutes agrave cette interface pour initialiser et eacutetablir la communicationbull Serial port support (interrupt handling implementation)

pour la mecircme interface SCI du module QSMCM pour cette

meacutethode drsquoimpleacutementation les macros lieacutes initialisent et eacutetablissentla communication en mode par interruption ce qui permet dedeacutetecter lrsquoarriveacutee des donneacutees sur le port seacuterie au lieu de le scruter

en permanence

tous ces macros on les retrouvent dans le fichier 555m4x

Equipe Systegraveme Robotiseacute de ProductionMacros Speacutec ques Ro oso tles macros suivants sont deacutedieacutes agrave la carte de Robosoft MPC555

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5479

S y nd

e x

V5

bull Initialisation de la carte Robosoftmain_ini_() macro ne doit pas ecirctre utiliser par les programmateursdu fait qursquoelle sert qursquoagrave initialiser la carte robosoft Macro interne agrave

syndex dont lrsquoappel est automatique lors de geacuteneacuteration drsquoexeacutecutifMPC555

bull DAC (Digital to Analog Converter)

macro permet lrsquoutilisation du convertisseur de carte robosoft via lemodule MIOs en utilisant les pins de 0 agrave 2

bull LED (on-bord LED interface)

macro permet la gestion de la LED de la carte robosoft connecteacuteeau module QSPI (pin PCS1)

bull SPI absolute encoder

macro permet lrsquoutilisation lrsquointerface du codeur absolu de la carterobosoft connecteacute au module QSPI

Equipe Systegraveme Robotiseacute de ProductionMacros Speacutec ques Ro oso tbull Motor amplifier direction

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5579

S y nd

e x

V5

Motor amplifier directionmacro qui permet de geacuterer la direction des moteurs

bull Motor power amplifier validationles moteurs embarqueacutes sur les robots sont eacutequipeacutes de freins

eacutelectriquement commandable Ce macro permet drsquoenvoyer unsignal drsquoinhibition pour deacutebloquer les freins

bull Watch dog

pour des raisons de seacutecuriteacute un meacutecanisme mateacuteriel que robosofta ajouteacute sur la carte Ce watch-dog vise agrave stopper lrsquoactiviteacute dumoteur en cas ougrave le programme plante Le watch est impleacutementeacute

comme un time-out mateacuteriel Srsquoil nrsquoest pas rafraicircchi peacuteriodiquement il transmet un signal de sortie ce qui enlegraveve lavalidation de lrsquoamplificateur de puissance donc lrsquoarrecirct dumouvement

ces macros se trouvent dans le fichier RSBm4x

Equipe Systegraveme Robotiseacute de Production

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5679

S y nd

e x

V5

Macros de Communicationchaque meacutedia de communication (bus CAN ) est une ressourceseacutequentielle ougrave les transferts de donneacutees entre processeurs doiventsuivre un certain ordre Donc ce macro de communication sert agravedeacutefinir cet ordre et agrave identifier le protocole de communication lecodagedeacutecodage de lrsquoinformation et la synchronisation

on trouve ces macros dans le fichier CANm4x

Macros drsquoapplicationce genre de macros sont speacutecifique au mateacuteriel en question et aussiagrave lrsquoapplication en particulier Ce sont des macros utilisateurs

on trouve ces macros dans le fichier Application_namem4x

Equipe Systegraveme Robotiseacute de Production

section include (pour inclure drsquoautres fichiers macro agrave utiliseStructure du fichier macr

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5779

S y nd

e x

V5

section define (pour tous les macros utilisateurs)MGC lsquoINITrsquo (MGC Macro Generation Context variable)

divert (declaration) (deacutebut du macro)

(deacuteclaration des variables des meacutemoires et des csts

divert (o)

MGC lsquolooprsquocode en assembleur code en C

dnl (commentaires)

MGC lsquoENDrsquo dnl (fin de la macros)divert lsquo lsquo dnl

macros MPC555meacutemoire MPC555

constante MPC555

macros RTAImeacutemoire RTAI

constante RTAI

Equipe Systegraveme Robotiseacute de Production Plan

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5879

S y nd

e x

V5

bull Introduction

bull Meacutethodologie AAA

bull Installationbull Utilisation du logiciel Syndex

bull Macrosbull LinuxIO un interface CC++ avec SynDEx

bull Exemple drsquoapplication Robuter-ULM

Equipe Systegraveme Robotiseacute de Production

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5979

S y nd

e x

V5

LinuxIO LinuxIO une interface une interface

CC++ avecCC++ avec SynDExSynDEx

bull Principe de basebull Utilisation de linuxIO_ par syndex

bull Utilisation de linuxIO_ par un programmeCC++

Equipe Systegraveme Robotiseacute de ProductionPrincipe de baseSyndex fourni une interface graphique pour la conception

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6079

S y nd

e x

V5

Syndex fourni une interface graphique pour la conception

drsquoapplications Par contre des fois nous avons besoin drsquoautresfonctionnaliteacutes non disponibles donc il faut les creacuteer Cependantgeacuteneacuterer des macros pour syndex srsquoavegravere difficile pour certains du

fait qursquoil faut avoir une bonne connaissance de la programmation bas niveau Dans ce cas lrsquoutilisation de linux_IO trouve sa placedans un contexte particulier interfacer des applications CC++utilisateurs avec des applications embarqueacutees temps reacuteeldeacuteveloppeacutees sous syndex

Par rapport agrave ce contexte de programmation lrsquoorganisation du

deacuteveloppement des applications est structureacutee en deux parties 1 Application haut niveau

2 Application bas niveau

Equipe Systegraveme Robotiseacute de ProductionPrincipe de base

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6179

S y nd

e x

V5

En reacutesumeacute lrsquoapplicationutilisateur contient une

partie haut niveau enCC++ et une partie basniveau sous syndex avecun eacutechange de donneacuteesentre les deux partie en

utilisant la couche RTAIde linux

Equipe Systegraveme Robotiseacute de Production pp cat on aut n veauOn entend application haut

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6279

S y nd

e x

V5

niveau tout programmecomme la planification detrajectoires strateacutegies de

navigation etc hellipLrsquoeacutechange de donneacutees sefait par le biais desmeacutemoires partageacutees quifont parti du noyau RTAI

et de lrsquoespace utilisateursde Linux

Toute ressource preacutesente sur la carte Robosoft peutecirctre partageacutee sans aune restriction

Equipe Systegraveme Robotiseacute de Production pp cat on as n veauUne application bas niveau

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6379

S y nd

e x

V5

Une application bas niveau

est un programme conccedilusous syndex comme lacommande des moteurs la

lecture des capteurs etc hellipLes ressources mateacuteriellessont controcircler par plusieurs

cartes MPC555 Ces cartessrsquoeacutechangent des donneacuteesvia le bus CAN Donc ES

est prise en charge par lasource logicielle deacutedieacutee quisrsquoexeacutecute dans les cartes MPC555 puis la couche RTAI

est utiliseacute pour la mise agrave jour de meacutemoires partageacutees pour lrsquoespace utilisateurs linux drsquoeacutechange de donneacutees

Equipe Systegraveme Robotiseacute de ProductionUtilisation de linux_IO par syndex

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6479

S y nd

e x

V5

Equipe Systegraveme Robotiseacute de ProductionUtilisation de linux_IO par syndex

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6579

S y nd

e x

V5

Equipe Systegraveme Robotiseacute de Production

5

Utilisation de linux_IO par syndex

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6679

S y nd

e x

V5

Degraves que la conception de lrsquoapplication sous syndex esttermineacutee et apregraves compilation (AdequationDo it +GenExec) un fichier drsquoentecircte sous le nom de linioh est

automatiquement geacuteneacutereacute Ce fichier contient lesinformations neacutecessaires pour acceacuteder aux entreacutees enlecture et aux sorties en eacutecriture des opeacuterations linuxIO_

inseacutereacutees dans le graphe drsquoalgorithme Le contenu de cefichier est organiseacute en plusieurs parties une pour chaqueopeacuteration linux_IO preacutesente dans le graphe

Equipe Systegraveme Robotiseacute de Production

5

Utilisation de linux_IO par syndex linioh auto-generated C users API frontend

C i h b f 2001 i i i b f f

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6779

S y nd

e x

V5 Copyright Robosoft 2001 Pierre Pomiers ltpierrerobosoftfrgt

LINUX IO shared memory data segments

define SEG0_BASE 0x10000typedef struct

int js_spd_o0

int js_str_o0

int enc_R_o0int enc_L_o0

double odo_X_o0

double odo_Y_o0

double odo_T_o0int spd_R_o0

int spd_L_o0

int time

unsigned char sem shm_seg0_def

Nom du segment de meacutemoire partageacutee pour notre opeacuteration linuxIO_

7 signaux drsquoentreacutees Ces valeurs sonten lecture et sont peacuteriodiquementrafraicircchies par RTAI

2 signaux de sorties Ces valeurs sonten eacutecriture et sont peacuteriodiquementrafraicircchies par RTAI

Equipe Systegraveme Robotiseacute de Production

5

Crsquoest une eacutetape tregraves facile il suffit drsquoinclure le fichier drsquoentecirctelinio h dans le code du fichier en CC++ comme suit

Utilisation de linuxIO_ par un programme CC+

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6879

S y nd

e x

V5 linioh dans le code du fichier en CC++ comme suit

include linioh

include ltrtai_shmhgt

static shm_seg0_def seg0

shm_seg0_def robot

seg0 = rtai_malloc (SEG0_BASE sizeof (shm_seg0_def))

if (seg0-gtsem = 0) bcopy (seg0 amprobot sizeof (shm_seg0_def))helliphelliphellip

helliphelliphellip bcopy (amprobot seg0 sizeof (shm_seg0_def))helliphelliphelliphelliphelliphellip

rtai_free (SEG0_BASE seg0)

fichier drsquoentecircte de la meacutemoire partageacutee fourni dans la couche RTAI de linux

Initialisation du segment SEG0_BASE Allocation de lameacutemoire pointeacutee

par seg0

Lecture des donneacutees provenant du bas

niveau

Mise agrave jours du segment de meacutemoire partageacutee

Libeacuterer le segment de meacutemoire alloueacute

Equipe Systegraveme Robotiseacute de Production

5

Plan

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6979

S y nd e x

V5

bull Introductionbull Meacutethodologie AAA

bull Installationbull Utilisation du logiciel Syndex

bull Macrosbull LinuxIO un interface CC++ avec SynDEx

bull Exemple drsquoapplication Robuter-ULM

Equipe Systegraveme Robotiseacute de Production

V5

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7079

S y nd e x

V5

Exemple dapplication Exemple dapplication Robuter Robuter--ULM ULM

Equipe Systegraveme Robotiseacute de Production

V5

Description Robuter-ULMbull Base mobile (2-RM 2-RF)

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7179

S y nd e x

V

bull Bras ultra-leacuteger 6 axesbull Ceinture 24 capteurs US

bull Capteur drsquoefforts 6 axes

bull Cameacutera CCD monochromeavec carte drsquoacquisition

bull PC embarqueacute MMX 233

bull OS linux redhat 61 avecRTAI V-13

bull 3 bouton drsquoarrecirct drsquourgence

bull 4 batteries 48 VDC 4 X12V 60 Ah

bull Entreacutee Joystick

bull Liaison Ethernet sans fil

Le manipulateur mobile Robuter-ULM comprend

Equipe Systegraveme Robotiseacute de Production

V5

Base Mobilebull dimension

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7279

S y nd e x

V

1025 mm de longueur 680 mm de largueur et 44 cm de hauteurbull Poids environ 150 kg avec les batteriesbull charge jusqursquoagrave 120 kg

bull vitesse de 5cms agrave 125 msbull Moteurs 2 X 300 W DC 48 VDCbull orientation par diffeacuterence de vitesse

bull Preacutecision Position par encodeurs optiquesbull Deux roues motrices diffeacuterentielles et de deux roues follesbull Drsquoune ceinture de 24 capteurs Ultrasons

bull Une carte MPC555 de Robosoft pour le controcircle des deuxmoteurs DC des 2 rouesbull Un systegraveme drsquoodomeacutetrie qui donne la position relative du robot

par rapport agrave son repegravere

Equipe Systegraveme Robotiseacute de Production

V5

bull dimension Faute de documentation

Bras U tra- eacuteger

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7379

S y nd e x

V Faute de documentation

bull Poids moins de 20 kgbull charge 2 kgbull Moteurs 6 moteurs DC

bull gripper pince eacutelectrique 2 doigtsbull Reacutepeacutetabiliteacute +- 1mmbull 3 carte MPC555 de Robosoft lrsquoune pour le capteur drsquoeffort et les

deux autres pour les 6 moteurs + moteur de la pincebull Position encodeur increacutemental

1 2 3 4 5 6Axisrange

plusmn90deg 0-90deg plusmn80deg plusmn100deg plusmn90deg plusmn110deg

vitesse 180degs 180degs 180degs 180degs 180degs 180degs

Equipe Systegraveme Robotiseacute de Production

V5

rc tecture ar ware

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7479

S y nd e x

V

Equipe Systegraveme Robotiseacute de Production

V5

Pro eacutemat quePlusieurs applications peuvent ecirctre impleacutementeacutees sur le robot

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7579

S y nd e x

V

Cependant il faut faire la diffeacuterence entre les applications quidemande lrsquoutilisation de syndex et les applications qui neneacutecessite qursquoune programmation en CC++ Agrave titre drsquoexemple

bull Localisationbull Commande en position

bull Commande en forcebull Navigation

bull Geacuteneacuteration de trajectoire

bull Vision

Equipe Systegraveme Robotiseacute de Production

V5 bull Pince eacutelectrique (TOR)

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7679

S y nd e x

Vq ( )

bull Pince possegravede des ES Logiques

Notre application consiste agrave

bull Recevoir lrsquoeacutetat de la pince (fermeacutee ouverte )

bull Envoyer une commande vers la pince

Capture

drsquoinformation

Open

Close

CommandeMeacutemoire

Partageacutee

Actionneur

Pince Prise de deacutecision Pince

Equipe Systegraveme Robotiseacute de Production

V5

Sc eacutema eacute ectr que

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7779

S y nd e x

Equipe Systegraveme Robotiseacute de Production

V5

Conclusion

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7879

S y nd e x bull Introduction

bull Meacutethodologie AAA

bull Installationbull Utilisation du logiciel Syndex

bull Macrosbull LinuxIO un interface CC++ avec SynDEx

bull Exemple drsquoapplication Robuter-ULM

Equipe Systegraveme Robotiseacute de Production

V5

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7979

S y nd e x

Questions

Page 42: Cours Syndex

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4279

S y nd

e xV5 Arborescence des reacutepertoires Rep_travail

Applicationmacros

~rtai

Eacutevolution de lrsquoapplication

Phase 1

Edition des macros(C ou Assembleur)

+GNUmakefile

Phase 2

Edition du graphe

(Algorithme amp

Architecteure)

Phase 3

Compilation amp Exeacutecution

Equipe Systegraveme Robotiseacute de ProductionSeacutequence de compilation de Synde

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4379

S y nd

e xV5

Equipe Systegraveme Robotiseacute de Production Plan

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4479

S y nd

e xV5

bull Introduction

bull Meacutethodologie AAA

bull Installation

bull Utilisation du logiciel Syndex

bull Macros

bull LinuxIO un interface CC++ avec SynDEx

bull Exemple drsquoapplication Robuter-ULM

Equipe Systegraveme Robotiseacute de Production

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4579

S y nd

e xV5

Macros Macros

bull Deacutefinition

bull Types de macros

bull Carte Robosoft MPC555

bull Macros Geacuteneacuterique MPC555

bull Macros speacutecifique Robosoftbull Macros de Communication

bull Macros drsquoapplicationbull Structure du fichier Macro

Equipe Systegraveme Robotiseacute de Production Deacutefinition

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4679

S y nd

e xV5

Un macro-processeur est un programme qui consommeen entreacutee une chaicircne de caractegraveres (texte source) la

traite seacutequentiellement en substituant chaque sous-chaicircne qursquoil reconnaicirct (Appel de macro) par unechaicircne correspondante de substitution ( Deacutefinition de

macro) qursquoil traite agrave nouveau jusqursquoagrave ce qursquoil nrsquo y ait plus de substitution possible et qui produit en sortie lachaicircne de caractegraveres traiteacutee

Equipe Systegraveme Robotiseacute de Productionypes e macrosL diffeacute t di ti t d d

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4779

S y nd

e xV5

Les diffeacuterents macros se distinguent en deux grandes

classes bull Macros geacuteneacuteriques

en geacuteneacuteral ceux sont des macros non destineacutes agraveecirctre utiliser directement par lrsquointerface syndexmais plutocirct utiliseacutees pour la programmation

drsquoautres macros (macros MPC555)bull Macros utilisateurs

macros utiliseacutes directement par syndex ils sontspeacutecifiques agrave lrsquoapplication (macros decommunication macros speacutecifiques robosoft

macros speacutecifiques agrave lrsquoapplication)

Equipe Systegraveme Robotiseacute de ProductionCarte Robosoft MPC555La carte Robosoft MPC555 est conccedilue pour la commande de robot de veacutehicule

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4879

S y nd

e xV5

(1) Connecteur du chip MPC555(2) Alimentation continue(3) Interface BDM (Basic Debug Interface)(4) Entreacute Analogique (Joystickhellip)(5) EntreacuteSortie logiques(6) Ligne seacuterie Synchrone (Codeur absolu)(7) Ligne seacuterie Asynchrone (Port 0)

(8) Ligne seacuterie Asynchrone (Port 1)(9) Connecteur du bus CAN (Port 0)(10) Connecteur du bus CAN (Port 1)(11) Axe 1(13) Axe 2(14) Axe 3(15) Axe 4

La carte Robosoft MPC555 est conccedilue pour la commande de robot de veacutehiculeeacutelectrique ou toute autre machine Elle permet de commander un axe gracircce agrave

lrsquoajout drsquoune carte fille le controcircle srsquoeacutetend jusqursquoagrave 4 axesCette carte est baseacutee sur le microcontrocircleur MPC555 32-bit de MotorolaElle peut opeacuterer agrave une freacutequence

de 40 MHz Divers signauxlogique et analogique peuventecirctre utiliser pour lrsquoacquisition deet la commande de mateacuteriel Les

sorties disponibles peuvent ecirctreanalogique ou PWMOn y trouve

Equipe Systegraveme Robotiseacute de ProductionArchitecture du MPC555

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4979

S y nd

e xV5

Equipe Systegraveme Robotiseacute de Productionaract r st ques u

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5079

S y nd

e xV5

Equipe Systegraveme Robotiseacute de Productionacros n r quesbull GPIO (General-Purpose InputOutput)

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5179

S y nd

e xV5

GPIO (General Purpose InputOutput)ce macro utilise le module USIU qui lui fourni 64 pins pour desentreacuteessorties numeacuteriques ordinaires (IO de la carte Robosoft lirelrsquoeacutetat de la pince envoi de commande agrave la pince lire les alarmes)

bull QADC (Queued Analog to Digital Converter)en utilisant le module QADC ce macro permet la conversion drsquounsignal analogique en entreacutee en un signal numeacuterique multi-niveaux(lire les donneacutees du capteur drsquoeacuteffort du joystick)

bull MIOS (Modular InputOutput System)Le module MIOS fourni 16 pins drsquoES numeacuteriques Sur la carte deRobosoft tous les pins sont en sortie Les 16 pins sont reacutepartiscomme suit

utilisateurs reacuteserveacutes

les pins de 0 agrave 11 sont reacuteserveacutes car ils sont preacutevus agrave ecirctre utiliseacutes pour unmateacuteriel particulier Mais si ce mateacuteriel nrsquoest pas utiliseacute lrsquoutilisateur peut lesutiliser librement

15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

Equipe Systegraveme Robotiseacute de ProductionMacros Geacuteneacuter ques MPC55

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5279

S y nd

e xV5

bull PWM (Pulse width Modulation)utilise le module MIOS (pins de 4-7 pour la direction des moteurset de 8-11 pour la validation) pour la commande des actionneursnumeacuteriques en PWM

bull TPU (Time Processor Units)les macros lieacutes agrave ce module permettent la lecture des encodeurs

increacutementauxbull QSPI (Queued Serial Peripheral Interface)

ce module fait partie du module QSMCM et les macros lieacutes servent

agrave son initialisation pour une communication avec du mateacuterielsexternes via le bus seacuterie synchrone

Equipe Systegraveme Robotiseacute de ProductionMacros Geacuteneacuter ques MPC55

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5379

S y nd

e x

V5 bull Serial port support (Polling implementation)

le MPC555 comprend dans le module QSMCM une interface decommunication seacuterie SCI qui permet la communication avec dumateacuteriels externes via un bus seacuterie asynchrone Plusieurs macros

sont lieacutes agrave cette interface pour initialiser et eacutetablir la communicationbull Serial port support (interrupt handling implementation)

pour la mecircme interface SCI du module QSMCM pour cette

meacutethode drsquoimpleacutementation les macros lieacutes initialisent et eacutetablissentla communication en mode par interruption ce qui permet dedeacutetecter lrsquoarriveacutee des donneacutees sur le port seacuterie au lieu de le scruter

en permanence

tous ces macros on les retrouvent dans le fichier 555m4x

Equipe Systegraveme Robotiseacute de ProductionMacros Speacutec ques Ro oso tles macros suivants sont deacutedieacutes agrave la carte de Robosoft MPC555

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5479

S y nd

e x

V5

bull Initialisation de la carte Robosoftmain_ini_() macro ne doit pas ecirctre utiliser par les programmateursdu fait qursquoelle sert qursquoagrave initialiser la carte robosoft Macro interne agrave

syndex dont lrsquoappel est automatique lors de geacuteneacuteration drsquoexeacutecutifMPC555

bull DAC (Digital to Analog Converter)

macro permet lrsquoutilisation du convertisseur de carte robosoft via lemodule MIOs en utilisant les pins de 0 agrave 2

bull LED (on-bord LED interface)

macro permet la gestion de la LED de la carte robosoft connecteacuteeau module QSPI (pin PCS1)

bull SPI absolute encoder

macro permet lrsquoutilisation lrsquointerface du codeur absolu de la carterobosoft connecteacute au module QSPI

Equipe Systegraveme Robotiseacute de ProductionMacros Speacutec ques Ro oso tbull Motor amplifier direction

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5579

S y nd

e x

V5

Motor amplifier directionmacro qui permet de geacuterer la direction des moteurs

bull Motor power amplifier validationles moteurs embarqueacutes sur les robots sont eacutequipeacutes de freins

eacutelectriquement commandable Ce macro permet drsquoenvoyer unsignal drsquoinhibition pour deacutebloquer les freins

bull Watch dog

pour des raisons de seacutecuriteacute un meacutecanisme mateacuteriel que robosofta ajouteacute sur la carte Ce watch-dog vise agrave stopper lrsquoactiviteacute dumoteur en cas ougrave le programme plante Le watch est impleacutementeacute

comme un time-out mateacuteriel Srsquoil nrsquoest pas rafraicircchi peacuteriodiquement il transmet un signal de sortie ce qui enlegraveve lavalidation de lrsquoamplificateur de puissance donc lrsquoarrecirct dumouvement

ces macros se trouvent dans le fichier RSBm4x

Equipe Systegraveme Robotiseacute de Production

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5679

S y nd

e x

V5

Macros de Communicationchaque meacutedia de communication (bus CAN ) est une ressourceseacutequentielle ougrave les transferts de donneacutees entre processeurs doiventsuivre un certain ordre Donc ce macro de communication sert agravedeacutefinir cet ordre et agrave identifier le protocole de communication lecodagedeacutecodage de lrsquoinformation et la synchronisation

on trouve ces macros dans le fichier CANm4x

Macros drsquoapplicationce genre de macros sont speacutecifique au mateacuteriel en question et aussiagrave lrsquoapplication en particulier Ce sont des macros utilisateurs

on trouve ces macros dans le fichier Application_namem4x

Equipe Systegraveme Robotiseacute de Production

section include (pour inclure drsquoautres fichiers macro agrave utiliseStructure du fichier macr

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5779

S y nd

e x

V5

section define (pour tous les macros utilisateurs)MGC lsquoINITrsquo (MGC Macro Generation Context variable)

divert (declaration) (deacutebut du macro)

(deacuteclaration des variables des meacutemoires et des csts

divert (o)

MGC lsquolooprsquocode en assembleur code en C

dnl (commentaires)

MGC lsquoENDrsquo dnl (fin de la macros)divert lsquo lsquo dnl

macros MPC555meacutemoire MPC555

constante MPC555

macros RTAImeacutemoire RTAI

constante RTAI

Equipe Systegraveme Robotiseacute de Production Plan

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5879

S y nd

e x

V5

bull Introduction

bull Meacutethodologie AAA

bull Installationbull Utilisation du logiciel Syndex

bull Macrosbull LinuxIO un interface CC++ avec SynDEx

bull Exemple drsquoapplication Robuter-ULM

Equipe Systegraveme Robotiseacute de Production

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5979

S y nd

e x

V5

LinuxIO LinuxIO une interface une interface

CC++ avecCC++ avec SynDExSynDEx

bull Principe de basebull Utilisation de linuxIO_ par syndex

bull Utilisation de linuxIO_ par un programmeCC++

Equipe Systegraveme Robotiseacute de ProductionPrincipe de baseSyndex fourni une interface graphique pour la conception

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6079

S y nd

e x

V5

Syndex fourni une interface graphique pour la conception

drsquoapplications Par contre des fois nous avons besoin drsquoautresfonctionnaliteacutes non disponibles donc il faut les creacuteer Cependantgeacuteneacuterer des macros pour syndex srsquoavegravere difficile pour certains du

fait qursquoil faut avoir une bonne connaissance de la programmation bas niveau Dans ce cas lrsquoutilisation de linux_IO trouve sa placedans un contexte particulier interfacer des applications CC++utilisateurs avec des applications embarqueacutees temps reacuteeldeacuteveloppeacutees sous syndex

Par rapport agrave ce contexte de programmation lrsquoorganisation du

deacuteveloppement des applications est structureacutee en deux parties 1 Application haut niveau

2 Application bas niveau

Equipe Systegraveme Robotiseacute de ProductionPrincipe de base

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6179

S y nd

e x

V5

En reacutesumeacute lrsquoapplicationutilisateur contient une

partie haut niveau enCC++ et une partie basniveau sous syndex avecun eacutechange de donneacuteesentre les deux partie en

utilisant la couche RTAIde linux

Equipe Systegraveme Robotiseacute de Production pp cat on aut n veauOn entend application haut

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6279

S y nd

e x

V5

niveau tout programmecomme la planification detrajectoires strateacutegies de

navigation etc hellipLrsquoeacutechange de donneacutees sefait par le biais desmeacutemoires partageacutees quifont parti du noyau RTAI

et de lrsquoespace utilisateursde Linux

Toute ressource preacutesente sur la carte Robosoft peutecirctre partageacutee sans aune restriction

Equipe Systegraveme Robotiseacute de Production pp cat on as n veauUne application bas niveau

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6379

S y nd

e x

V5

Une application bas niveau

est un programme conccedilusous syndex comme lacommande des moteurs la

lecture des capteurs etc hellipLes ressources mateacuteriellessont controcircler par plusieurs

cartes MPC555 Ces cartessrsquoeacutechangent des donneacuteesvia le bus CAN Donc ES

est prise en charge par lasource logicielle deacutedieacutee quisrsquoexeacutecute dans les cartes MPC555 puis la couche RTAI

est utiliseacute pour la mise agrave jour de meacutemoires partageacutees pour lrsquoespace utilisateurs linux drsquoeacutechange de donneacutees

Equipe Systegraveme Robotiseacute de ProductionUtilisation de linux_IO par syndex

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6479

S y nd

e x

V5

Equipe Systegraveme Robotiseacute de ProductionUtilisation de linux_IO par syndex

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6579

S y nd

e x

V5

Equipe Systegraveme Robotiseacute de Production

5

Utilisation de linux_IO par syndex

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6679

S y nd

e x

V5

Degraves que la conception de lrsquoapplication sous syndex esttermineacutee et apregraves compilation (AdequationDo it +GenExec) un fichier drsquoentecircte sous le nom de linioh est

automatiquement geacuteneacutereacute Ce fichier contient lesinformations neacutecessaires pour acceacuteder aux entreacutees enlecture et aux sorties en eacutecriture des opeacuterations linuxIO_

inseacutereacutees dans le graphe drsquoalgorithme Le contenu de cefichier est organiseacute en plusieurs parties une pour chaqueopeacuteration linux_IO preacutesente dans le graphe

Equipe Systegraveme Robotiseacute de Production

5

Utilisation de linux_IO par syndex linioh auto-generated C users API frontend

C i h b f 2001 i i i b f f

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6779

S y nd

e x

V5 Copyright Robosoft 2001 Pierre Pomiers ltpierrerobosoftfrgt

LINUX IO shared memory data segments

define SEG0_BASE 0x10000typedef struct

int js_spd_o0

int js_str_o0

int enc_R_o0int enc_L_o0

double odo_X_o0

double odo_Y_o0

double odo_T_o0int spd_R_o0

int spd_L_o0

int time

unsigned char sem shm_seg0_def

Nom du segment de meacutemoire partageacutee pour notre opeacuteration linuxIO_

7 signaux drsquoentreacutees Ces valeurs sonten lecture et sont peacuteriodiquementrafraicircchies par RTAI

2 signaux de sorties Ces valeurs sonten eacutecriture et sont peacuteriodiquementrafraicircchies par RTAI

Equipe Systegraveme Robotiseacute de Production

5

Crsquoest une eacutetape tregraves facile il suffit drsquoinclure le fichier drsquoentecirctelinio h dans le code du fichier en CC++ comme suit

Utilisation de linuxIO_ par un programme CC+

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6879

S y nd

e x

V5 linioh dans le code du fichier en CC++ comme suit

include linioh

include ltrtai_shmhgt

static shm_seg0_def seg0

shm_seg0_def robot

seg0 = rtai_malloc (SEG0_BASE sizeof (shm_seg0_def))

if (seg0-gtsem = 0) bcopy (seg0 amprobot sizeof (shm_seg0_def))helliphelliphellip

helliphelliphellip bcopy (amprobot seg0 sizeof (shm_seg0_def))helliphelliphelliphelliphelliphellip

rtai_free (SEG0_BASE seg0)

fichier drsquoentecircte de la meacutemoire partageacutee fourni dans la couche RTAI de linux

Initialisation du segment SEG0_BASE Allocation de lameacutemoire pointeacutee

par seg0

Lecture des donneacutees provenant du bas

niveau

Mise agrave jours du segment de meacutemoire partageacutee

Libeacuterer le segment de meacutemoire alloueacute

Equipe Systegraveme Robotiseacute de Production

5

Plan

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6979

S y nd e x

V5

bull Introductionbull Meacutethodologie AAA

bull Installationbull Utilisation du logiciel Syndex

bull Macrosbull LinuxIO un interface CC++ avec SynDEx

bull Exemple drsquoapplication Robuter-ULM

Equipe Systegraveme Robotiseacute de Production

V5

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7079

S y nd e x

V5

Exemple dapplication Exemple dapplication Robuter Robuter--ULM ULM

Equipe Systegraveme Robotiseacute de Production

V5

Description Robuter-ULMbull Base mobile (2-RM 2-RF)

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7179

S y nd e x

V

bull Bras ultra-leacuteger 6 axesbull Ceinture 24 capteurs US

bull Capteur drsquoefforts 6 axes

bull Cameacutera CCD monochromeavec carte drsquoacquisition

bull PC embarqueacute MMX 233

bull OS linux redhat 61 avecRTAI V-13

bull 3 bouton drsquoarrecirct drsquourgence

bull 4 batteries 48 VDC 4 X12V 60 Ah

bull Entreacutee Joystick

bull Liaison Ethernet sans fil

Le manipulateur mobile Robuter-ULM comprend

Equipe Systegraveme Robotiseacute de Production

V5

Base Mobilebull dimension

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7279

S y nd e x

V

1025 mm de longueur 680 mm de largueur et 44 cm de hauteurbull Poids environ 150 kg avec les batteriesbull charge jusqursquoagrave 120 kg

bull vitesse de 5cms agrave 125 msbull Moteurs 2 X 300 W DC 48 VDCbull orientation par diffeacuterence de vitesse

bull Preacutecision Position par encodeurs optiquesbull Deux roues motrices diffeacuterentielles et de deux roues follesbull Drsquoune ceinture de 24 capteurs Ultrasons

bull Une carte MPC555 de Robosoft pour le controcircle des deuxmoteurs DC des 2 rouesbull Un systegraveme drsquoodomeacutetrie qui donne la position relative du robot

par rapport agrave son repegravere

Equipe Systegraveme Robotiseacute de Production

V5

bull dimension Faute de documentation

Bras U tra- eacuteger

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7379

S y nd e x

V Faute de documentation

bull Poids moins de 20 kgbull charge 2 kgbull Moteurs 6 moteurs DC

bull gripper pince eacutelectrique 2 doigtsbull Reacutepeacutetabiliteacute +- 1mmbull 3 carte MPC555 de Robosoft lrsquoune pour le capteur drsquoeffort et les

deux autres pour les 6 moteurs + moteur de la pincebull Position encodeur increacutemental

1 2 3 4 5 6Axisrange

plusmn90deg 0-90deg plusmn80deg plusmn100deg plusmn90deg plusmn110deg

vitesse 180degs 180degs 180degs 180degs 180degs 180degs

Equipe Systegraveme Robotiseacute de Production

V5

rc tecture ar ware

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7479

S y nd e x

V

Equipe Systegraveme Robotiseacute de Production

V5

Pro eacutemat quePlusieurs applications peuvent ecirctre impleacutementeacutees sur le robot

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7579

S y nd e x

V

Cependant il faut faire la diffeacuterence entre les applications quidemande lrsquoutilisation de syndex et les applications qui neneacutecessite qursquoune programmation en CC++ Agrave titre drsquoexemple

bull Localisationbull Commande en position

bull Commande en forcebull Navigation

bull Geacuteneacuteration de trajectoire

bull Vision

Equipe Systegraveme Robotiseacute de Production

V5 bull Pince eacutelectrique (TOR)

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7679

S y nd e x

Vq ( )

bull Pince possegravede des ES Logiques

Notre application consiste agrave

bull Recevoir lrsquoeacutetat de la pince (fermeacutee ouverte )

bull Envoyer une commande vers la pince

Capture

drsquoinformation

Open

Close

CommandeMeacutemoire

Partageacutee

Actionneur

Pince Prise de deacutecision Pince

Equipe Systegraveme Robotiseacute de Production

V5

Sc eacutema eacute ectr que

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7779

S y nd e x

Equipe Systegraveme Robotiseacute de Production

V5

Conclusion

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7879

S y nd e x bull Introduction

bull Meacutethodologie AAA

bull Installationbull Utilisation du logiciel Syndex

bull Macrosbull LinuxIO un interface CC++ avec SynDEx

bull Exemple drsquoapplication Robuter-ULM

Equipe Systegraveme Robotiseacute de Production

V5

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7979

S y nd e x

Questions

Page 43: Cours Syndex

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4379

S y nd

e xV5

Equipe Systegraveme Robotiseacute de Production Plan

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4479

S y nd

e xV5

bull Introduction

bull Meacutethodologie AAA

bull Installation

bull Utilisation du logiciel Syndex

bull Macros

bull LinuxIO un interface CC++ avec SynDEx

bull Exemple drsquoapplication Robuter-ULM

Equipe Systegraveme Robotiseacute de Production

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4579

S y nd

e xV5

Macros Macros

bull Deacutefinition

bull Types de macros

bull Carte Robosoft MPC555

bull Macros Geacuteneacuterique MPC555

bull Macros speacutecifique Robosoftbull Macros de Communication

bull Macros drsquoapplicationbull Structure du fichier Macro

Equipe Systegraveme Robotiseacute de Production Deacutefinition

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4679

S y nd

e xV5

Un macro-processeur est un programme qui consommeen entreacutee une chaicircne de caractegraveres (texte source) la

traite seacutequentiellement en substituant chaque sous-chaicircne qursquoil reconnaicirct (Appel de macro) par unechaicircne correspondante de substitution ( Deacutefinition de

macro) qursquoil traite agrave nouveau jusqursquoagrave ce qursquoil nrsquo y ait plus de substitution possible et qui produit en sortie lachaicircne de caractegraveres traiteacutee

Equipe Systegraveme Robotiseacute de Productionypes e macrosL diffeacute t di ti t d d

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4779

S y nd

e xV5

Les diffeacuterents macros se distinguent en deux grandes

classes bull Macros geacuteneacuteriques

en geacuteneacuteral ceux sont des macros non destineacutes agraveecirctre utiliser directement par lrsquointerface syndexmais plutocirct utiliseacutees pour la programmation

drsquoautres macros (macros MPC555)bull Macros utilisateurs

macros utiliseacutes directement par syndex ils sontspeacutecifiques agrave lrsquoapplication (macros decommunication macros speacutecifiques robosoft

macros speacutecifiques agrave lrsquoapplication)

Equipe Systegraveme Robotiseacute de ProductionCarte Robosoft MPC555La carte Robosoft MPC555 est conccedilue pour la commande de robot de veacutehicule

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4879

S y nd

e xV5

(1) Connecteur du chip MPC555(2) Alimentation continue(3) Interface BDM (Basic Debug Interface)(4) Entreacute Analogique (Joystickhellip)(5) EntreacuteSortie logiques(6) Ligne seacuterie Synchrone (Codeur absolu)(7) Ligne seacuterie Asynchrone (Port 0)

(8) Ligne seacuterie Asynchrone (Port 1)(9) Connecteur du bus CAN (Port 0)(10) Connecteur du bus CAN (Port 1)(11) Axe 1(13) Axe 2(14) Axe 3(15) Axe 4

La carte Robosoft MPC555 est conccedilue pour la commande de robot de veacutehiculeeacutelectrique ou toute autre machine Elle permet de commander un axe gracircce agrave

lrsquoajout drsquoune carte fille le controcircle srsquoeacutetend jusqursquoagrave 4 axesCette carte est baseacutee sur le microcontrocircleur MPC555 32-bit de MotorolaElle peut opeacuterer agrave une freacutequence

de 40 MHz Divers signauxlogique et analogique peuventecirctre utiliser pour lrsquoacquisition deet la commande de mateacuteriel Les

sorties disponibles peuvent ecirctreanalogique ou PWMOn y trouve

Equipe Systegraveme Robotiseacute de ProductionArchitecture du MPC555

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4979

S y nd

e xV5

Equipe Systegraveme Robotiseacute de Productionaract r st ques u

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5079

S y nd

e xV5

Equipe Systegraveme Robotiseacute de Productionacros n r quesbull GPIO (General-Purpose InputOutput)

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5179

S y nd

e xV5

GPIO (General Purpose InputOutput)ce macro utilise le module USIU qui lui fourni 64 pins pour desentreacuteessorties numeacuteriques ordinaires (IO de la carte Robosoft lirelrsquoeacutetat de la pince envoi de commande agrave la pince lire les alarmes)

bull QADC (Queued Analog to Digital Converter)en utilisant le module QADC ce macro permet la conversion drsquounsignal analogique en entreacutee en un signal numeacuterique multi-niveaux(lire les donneacutees du capteur drsquoeacuteffort du joystick)

bull MIOS (Modular InputOutput System)Le module MIOS fourni 16 pins drsquoES numeacuteriques Sur la carte deRobosoft tous les pins sont en sortie Les 16 pins sont reacutepartiscomme suit

utilisateurs reacuteserveacutes

les pins de 0 agrave 11 sont reacuteserveacutes car ils sont preacutevus agrave ecirctre utiliseacutes pour unmateacuteriel particulier Mais si ce mateacuteriel nrsquoest pas utiliseacute lrsquoutilisateur peut lesutiliser librement

15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

Equipe Systegraveme Robotiseacute de ProductionMacros Geacuteneacuter ques MPC55

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5279

S y nd

e xV5

bull PWM (Pulse width Modulation)utilise le module MIOS (pins de 4-7 pour la direction des moteurset de 8-11 pour la validation) pour la commande des actionneursnumeacuteriques en PWM

bull TPU (Time Processor Units)les macros lieacutes agrave ce module permettent la lecture des encodeurs

increacutementauxbull QSPI (Queued Serial Peripheral Interface)

ce module fait partie du module QSMCM et les macros lieacutes servent

agrave son initialisation pour une communication avec du mateacuterielsexternes via le bus seacuterie synchrone

Equipe Systegraveme Robotiseacute de ProductionMacros Geacuteneacuter ques MPC55

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5379

S y nd

e x

V5 bull Serial port support (Polling implementation)

le MPC555 comprend dans le module QSMCM une interface decommunication seacuterie SCI qui permet la communication avec dumateacuteriels externes via un bus seacuterie asynchrone Plusieurs macros

sont lieacutes agrave cette interface pour initialiser et eacutetablir la communicationbull Serial port support (interrupt handling implementation)

pour la mecircme interface SCI du module QSMCM pour cette

meacutethode drsquoimpleacutementation les macros lieacutes initialisent et eacutetablissentla communication en mode par interruption ce qui permet dedeacutetecter lrsquoarriveacutee des donneacutees sur le port seacuterie au lieu de le scruter

en permanence

tous ces macros on les retrouvent dans le fichier 555m4x

Equipe Systegraveme Robotiseacute de ProductionMacros Speacutec ques Ro oso tles macros suivants sont deacutedieacutes agrave la carte de Robosoft MPC555

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5479

S y nd

e x

V5

bull Initialisation de la carte Robosoftmain_ini_() macro ne doit pas ecirctre utiliser par les programmateursdu fait qursquoelle sert qursquoagrave initialiser la carte robosoft Macro interne agrave

syndex dont lrsquoappel est automatique lors de geacuteneacuteration drsquoexeacutecutifMPC555

bull DAC (Digital to Analog Converter)

macro permet lrsquoutilisation du convertisseur de carte robosoft via lemodule MIOs en utilisant les pins de 0 agrave 2

bull LED (on-bord LED interface)

macro permet la gestion de la LED de la carte robosoft connecteacuteeau module QSPI (pin PCS1)

bull SPI absolute encoder

macro permet lrsquoutilisation lrsquointerface du codeur absolu de la carterobosoft connecteacute au module QSPI

Equipe Systegraveme Robotiseacute de ProductionMacros Speacutec ques Ro oso tbull Motor amplifier direction

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5579

S y nd

e x

V5

Motor amplifier directionmacro qui permet de geacuterer la direction des moteurs

bull Motor power amplifier validationles moteurs embarqueacutes sur les robots sont eacutequipeacutes de freins

eacutelectriquement commandable Ce macro permet drsquoenvoyer unsignal drsquoinhibition pour deacutebloquer les freins

bull Watch dog

pour des raisons de seacutecuriteacute un meacutecanisme mateacuteriel que robosofta ajouteacute sur la carte Ce watch-dog vise agrave stopper lrsquoactiviteacute dumoteur en cas ougrave le programme plante Le watch est impleacutementeacute

comme un time-out mateacuteriel Srsquoil nrsquoest pas rafraicircchi peacuteriodiquement il transmet un signal de sortie ce qui enlegraveve lavalidation de lrsquoamplificateur de puissance donc lrsquoarrecirct dumouvement

ces macros se trouvent dans le fichier RSBm4x

Equipe Systegraveme Robotiseacute de Production

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5679

S y nd

e x

V5

Macros de Communicationchaque meacutedia de communication (bus CAN ) est une ressourceseacutequentielle ougrave les transferts de donneacutees entre processeurs doiventsuivre un certain ordre Donc ce macro de communication sert agravedeacutefinir cet ordre et agrave identifier le protocole de communication lecodagedeacutecodage de lrsquoinformation et la synchronisation

on trouve ces macros dans le fichier CANm4x

Macros drsquoapplicationce genre de macros sont speacutecifique au mateacuteriel en question et aussiagrave lrsquoapplication en particulier Ce sont des macros utilisateurs

on trouve ces macros dans le fichier Application_namem4x

Equipe Systegraveme Robotiseacute de Production

section include (pour inclure drsquoautres fichiers macro agrave utiliseStructure du fichier macr

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5779

S y nd

e x

V5

section define (pour tous les macros utilisateurs)MGC lsquoINITrsquo (MGC Macro Generation Context variable)

divert (declaration) (deacutebut du macro)

(deacuteclaration des variables des meacutemoires et des csts

divert (o)

MGC lsquolooprsquocode en assembleur code en C

dnl (commentaires)

MGC lsquoENDrsquo dnl (fin de la macros)divert lsquo lsquo dnl

macros MPC555meacutemoire MPC555

constante MPC555

macros RTAImeacutemoire RTAI

constante RTAI

Equipe Systegraveme Robotiseacute de Production Plan

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5879

S y nd

e x

V5

bull Introduction

bull Meacutethodologie AAA

bull Installationbull Utilisation du logiciel Syndex

bull Macrosbull LinuxIO un interface CC++ avec SynDEx

bull Exemple drsquoapplication Robuter-ULM

Equipe Systegraveme Robotiseacute de Production

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5979

S y nd

e x

V5

LinuxIO LinuxIO une interface une interface

CC++ avecCC++ avec SynDExSynDEx

bull Principe de basebull Utilisation de linuxIO_ par syndex

bull Utilisation de linuxIO_ par un programmeCC++

Equipe Systegraveme Robotiseacute de ProductionPrincipe de baseSyndex fourni une interface graphique pour la conception

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6079

S y nd

e x

V5

Syndex fourni une interface graphique pour la conception

drsquoapplications Par contre des fois nous avons besoin drsquoautresfonctionnaliteacutes non disponibles donc il faut les creacuteer Cependantgeacuteneacuterer des macros pour syndex srsquoavegravere difficile pour certains du

fait qursquoil faut avoir une bonne connaissance de la programmation bas niveau Dans ce cas lrsquoutilisation de linux_IO trouve sa placedans un contexte particulier interfacer des applications CC++utilisateurs avec des applications embarqueacutees temps reacuteeldeacuteveloppeacutees sous syndex

Par rapport agrave ce contexte de programmation lrsquoorganisation du

deacuteveloppement des applications est structureacutee en deux parties 1 Application haut niveau

2 Application bas niveau

Equipe Systegraveme Robotiseacute de ProductionPrincipe de base

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6179

S y nd

e x

V5

En reacutesumeacute lrsquoapplicationutilisateur contient une

partie haut niveau enCC++ et une partie basniveau sous syndex avecun eacutechange de donneacuteesentre les deux partie en

utilisant la couche RTAIde linux

Equipe Systegraveme Robotiseacute de Production pp cat on aut n veauOn entend application haut

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6279

S y nd

e x

V5

niveau tout programmecomme la planification detrajectoires strateacutegies de

navigation etc hellipLrsquoeacutechange de donneacutees sefait par le biais desmeacutemoires partageacutees quifont parti du noyau RTAI

et de lrsquoespace utilisateursde Linux

Toute ressource preacutesente sur la carte Robosoft peutecirctre partageacutee sans aune restriction

Equipe Systegraveme Robotiseacute de Production pp cat on as n veauUne application bas niveau

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6379

S y nd

e x

V5

Une application bas niveau

est un programme conccedilusous syndex comme lacommande des moteurs la

lecture des capteurs etc hellipLes ressources mateacuteriellessont controcircler par plusieurs

cartes MPC555 Ces cartessrsquoeacutechangent des donneacuteesvia le bus CAN Donc ES

est prise en charge par lasource logicielle deacutedieacutee quisrsquoexeacutecute dans les cartes MPC555 puis la couche RTAI

est utiliseacute pour la mise agrave jour de meacutemoires partageacutees pour lrsquoespace utilisateurs linux drsquoeacutechange de donneacutees

Equipe Systegraveme Robotiseacute de ProductionUtilisation de linux_IO par syndex

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6479

S y nd

e x

V5

Equipe Systegraveme Robotiseacute de ProductionUtilisation de linux_IO par syndex

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6579

S y nd

e x

V5

Equipe Systegraveme Robotiseacute de Production

5

Utilisation de linux_IO par syndex

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6679

S y nd

e x

V5

Degraves que la conception de lrsquoapplication sous syndex esttermineacutee et apregraves compilation (AdequationDo it +GenExec) un fichier drsquoentecircte sous le nom de linioh est

automatiquement geacuteneacutereacute Ce fichier contient lesinformations neacutecessaires pour acceacuteder aux entreacutees enlecture et aux sorties en eacutecriture des opeacuterations linuxIO_

inseacutereacutees dans le graphe drsquoalgorithme Le contenu de cefichier est organiseacute en plusieurs parties une pour chaqueopeacuteration linux_IO preacutesente dans le graphe

Equipe Systegraveme Robotiseacute de Production

5

Utilisation de linux_IO par syndex linioh auto-generated C users API frontend

C i h b f 2001 i i i b f f

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6779

S y nd

e x

V5 Copyright Robosoft 2001 Pierre Pomiers ltpierrerobosoftfrgt

LINUX IO shared memory data segments

define SEG0_BASE 0x10000typedef struct

int js_spd_o0

int js_str_o0

int enc_R_o0int enc_L_o0

double odo_X_o0

double odo_Y_o0

double odo_T_o0int spd_R_o0

int spd_L_o0

int time

unsigned char sem shm_seg0_def

Nom du segment de meacutemoire partageacutee pour notre opeacuteration linuxIO_

7 signaux drsquoentreacutees Ces valeurs sonten lecture et sont peacuteriodiquementrafraicircchies par RTAI

2 signaux de sorties Ces valeurs sonten eacutecriture et sont peacuteriodiquementrafraicircchies par RTAI

Equipe Systegraveme Robotiseacute de Production

5

Crsquoest une eacutetape tregraves facile il suffit drsquoinclure le fichier drsquoentecirctelinio h dans le code du fichier en CC++ comme suit

Utilisation de linuxIO_ par un programme CC+

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6879

S y nd

e x

V5 linioh dans le code du fichier en CC++ comme suit

include linioh

include ltrtai_shmhgt

static shm_seg0_def seg0

shm_seg0_def robot

seg0 = rtai_malloc (SEG0_BASE sizeof (shm_seg0_def))

if (seg0-gtsem = 0) bcopy (seg0 amprobot sizeof (shm_seg0_def))helliphelliphellip

helliphelliphellip bcopy (amprobot seg0 sizeof (shm_seg0_def))helliphelliphelliphelliphelliphellip

rtai_free (SEG0_BASE seg0)

fichier drsquoentecircte de la meacutemoire partageacutee fourni dans la couche RTAI de linux

Initialisation du segment SEG0_BASE Allocation de lameacutemoire pointeacutee

par seg0

Lecture des donneacutees provenant du bas

niveau

Mise agrave jours du segment de meacutemoire partageacutee

Libeacuterer le segment de meacutemoire alloueacute

Equipe Systegraveme Robotiseacute de Production

5

Plan

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6979

S y nd e x

V5

bull Introductionbull Meacutethodologie AAA

bull Installationbull Utilisation du logiciel Syndex

bull Macrosbull LinuxIO un interface CC++ avec SynDEx

bull Exemple drsquoapplication Robuter-ULM

Equipe Systegraveme Robotiseacute de Production

V5

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7079

S y nd e x

V5

Exemple dapplication Exemple dapplication Robuter Robuter--ULM ULM

Equipe Systegraveme Robotiseacute de Production

V5

Description Robuter-ULMbull Base mobile (2-RM 2-RF)

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7179

S y nd e x

V

bull Bras ultra-leacuteger 6 axesbull Ceinture 24 capteurs US

bull Capteur drsquoefforts 6 axes

bull Cameacutera CCD monochromeavec carte drsquoacquisition

bull PC embarqueacute MMX 233

bull OS linux redhat 61 avecRTAI V-13

bull 3 bouton drsquoarrecirct drsquourgence

bull 4 batteries 48 VDC 4 X12V 60 Ah

bull Entreacutee Joystick

bull Liaison Ethernet sans fil

Le manipulateur mobile Robuter-ULM comprend

Equipe Systegraveme Robotiseacute de Production

V5

Base Mobilebull dimension

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7279

S y nd e x

V

1025 mm de longueur 680 mm de largueur et 44 cm de hauteurbull Poids environ 150 kg avec les batteriesbull charge jusqursquoagrave 120 kg

bull vitesse de 5cms agrave 125 msbull Moteurs 2 X 300 W DC 48 VDCbull orientation par diffeacuterence de vitesse

bull Preacutecision Position par encodeurs optiquesbull Deux roues motrices diffeacuterentielles et de deux roues follesbull Drsquoune ceinture de 24 capteurs Ultrasons

bull Une carte MPC555 de Robosoft pour le controcircle des deuxmoteurs DC des 2 rouesbull Un systegraveme drsquoodomeacutetrie qui donne la position relative du robot

par rapport agrave son repegravere

Equipe Systegraveme Robotiseacute de Production

V5

bull dimension Faute de documentation

Bras U tra- eacuteger

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7379

S y nd e x

V Faute de documentation

bull Poids moins de 20 kgbull charge 2 kgbull Moteurs 6 moteurs DC

bull gripper pince eacutelectrique 2 doigtsbull Reacutepeacutetabiliteacute +- 1mmbull 3 carte MPC555 de Robosoft lrsquoune pour le capteur drsquoeffort et les

deux autres pour les 6 moteurs + moteur de la pincebull Position encodeur increacutemental

1 2 3 4 5 6Axisrange

plusmn90deg 0-90deg plusmn80deg plusmn100deg plusmn90deg plusmn110deg

vitesse 180degs 180degs 180degs 180degs 180degs 180degs

Equipe Systegraveme Robotiseacute de Production

V5

rc tecture ar ware

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7479

S y nd e x

V

Equipe Systegraveme Robotiseacute de Production

V5

Pro eacutemat quePlusieurs applications peuvent ecirctre impleacutementeacutees sur le robot

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7579

S y nd e x

V

Cependant il faut faire la diffeacuterence entre les applications quidemande lrsquoutilisation de syndex et les applications qui neneacutecessite qursquoune programmation en CC++ Agrave titre drsquoexemple

bull Localisationbull Commande en position

bull Commande en forcebull Navigation

bull Geacuteneacuteration de trajectoire

bull Vision

Equipe Systegraveme Robotiseacute de Production

V5 bull Pince eacutelectrique (TOR)

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7679

S y nd e x

Vq ( )

bull Pince possegravede des ES Logiques

Notre application consiste agrave

bull Recevoir lrsquoeacutetat de la pince (fermeacutee ouverte )

bull Envoyer une commande vers la pince

Capture

drsquoinformation

Open

Close

CommandeMeacutemoire

Partageacutee

Actionneur

Pince Prise de deacutecision Pince

Equipe Systegraveme Robotiseacute de Production

V5

Sc eacutema eacute ectr que

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7779

S y nd e x

Equipe Systegraveme Robotiseacute de Production

V5

Conclusion

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7879

S y nd e x bull Introduction

bull Meacutethodologie AAA

bull Installationbull Utilisation du logiciel Syndex

bull Macrosbull LinuxIO un interface CC++ avec SynDEx

bull Exemple drsquoapplication Robuter-ULM

Equipe Systegraveme Robotiseacute de Production

V5

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7979

S y nd e x

Questions

Page 44: Cours Syndex

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4479

S y nd

e xV5

bull Introduction

bull Meacutethodologie AAA

bull Installation

bull Utilisation du logiciel Syndex

bull Macros

bull LinuxIO un interface CC++ avec SynDEx

bull Exemple drsquoapplication Robuter-ULM

Equipe Systegraveme Robotiseacute de Production

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4579

S y nd

e xV5

Macros Macros

bull Deacutefinition

bull Types de macros

bull Carte Robosoft MPC555

bull Macros Geacuteneacuterique MPC555

bull Macros speacutecifique Robosoftbull Macros de Communication

bull Macros drsquoapplicationbull Structure du fichier Macro

Equipe Systegraveme Robotiseacute de Production Deacutefinition

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4679

S y nd

e xV5

Un macro-processeur est un programme qui consommeen entreacutee une chaicircne de caractegraveres (texte source) la

traite seacutequentiellement en substituant chaque sous-chaicircne qursquoil reconnaicirct (Appel de macro) par unechaicircne correspondante de substitution ( Deacutefinition de

macro) qursquoil traite agrave nouveau jusqursquoagrave ce qursquoil nrsquo y ait plus de substitution possible et qui produit en sortie lachaicircne de caractegraveres traiteacutee

Equipe Systegraveme Robotiseacute de Productionypes e macrosL diffeacute t di ti t d d

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4779

S y nd

e xV5

Les diffeacuterents macros se distinguent en deux grandes

classes bull Macros geacuteneacuteriques

en geacuteneacuteral ceux sont des macros non destineacutes agraveecirctre utiliser directement par lrsquointerface syndexmais plutocirct utiliseacutees pour la programmation

drsquoautres macros (macros MPC555)bull Macros utilisateurs

macros utiliseacutes directement par syndex ils sontspeacutecifiques agrave lrsquoapplication (macros decommunication macros speacutecifiques robosoft

macros speacutecifiques agrave lrsquoapplication)

Equipe Systegraveme Robotiseacute de ProductionCarte Robosoft MPC555La carte Robosoft MPC555 est conccedilue pour la commande de robot de veacutehicule

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4879

S y nd

e xV5

(1) Connecteur du chip MPC555(2) Alimentation continue(3) Interface BDM (Basic Debug Interface)(4) Entreacute Analogique (Joystickhellip)(5) EntreacuteSortie logiques(6) Ligne seacuterie Synchrone (Codeur absolu)(7) Ligne seacuterie Asynchrone (Port 0)

(8) Ligne seacuterie Asynchrone (Port 1)(9) Connecteur du bus CAN (Port 0)(10) Connecteur du bus CAN (Port 1)(11) Axe 1(13) Axe 2(14) Axe 3(15) Axe 4

La carte Robosoft MPC555 est conccedilue pour la commande de robot de veacutehiculeeacutelectrique ou toute autre machine Elle permet de commander un axe gracircce agrave

lrsquoajout drsquoune carte fille le controcircle srsquoeacutetend jusqursquoagrave 4 axesCette carte est baseacutee sur le microcontrocircleur MPC555 32-bit de MotorolaElle peut opeacuterer agrave une freacutequence

de 40 MHz Divers signauxlogique et analogique peuventecirctre utiliser pour lrsquoacquisition deet la commande de mateacuteriel Les

sorties disponibles peuvent ecirctreanalogique ou PWMOn y trouve

Equipe Systegraveme Robotiseacute de ProductionArchitecture du MPC555

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4979

S y nd

e xV5

Equipe Systegraveme Robotiseacute de Productionaract r st ques u

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5079

S y nd

e xV5

Equipe Systegraveme Robotiseacute de Productionacros n r quesbull GPIO (General-Purpose InputOutput)

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5179

S y nd

e xV5

GPIO (General Purpose InputOutput)ce macro utilise le module USIU qui lui fourni 64 pins pour desentreacuteessorties numeacuteriques ordinaires (IO de la carte Robosoft lirelrsquoeacutetat de la pince envoi de commande agrave la pince lire les alarmes)

bull QADC (Queued Analog to Digital Converter)en utilisant le module QADC ce macro permet la conversion drsquounsignal analogique en entreacutee en un signal numeacuterique multi-niveaux(lire les donneacutees du capteur drsquoeacuteffort du joystick)

bull MIOS (Modular InputOutput System)Le module MIOS fourni 16 pins drsquoES numeacuteriques Sur la carte deRobosoft tous les pins sont en sortie Les 16 pins sont reacutepartiscomme suit

utilisateurs reacuteserveacutes

les pins de 0 agrave 11 sont reacuteserveacutes car ils sont preacutevus agrave ecirctre utiliseacutes pour unmateacuteriel particulier Mais si ce mateacuteriel nrsquoest pas utiliseacute lrsquoutilisateur peut lesutiliser librement

15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

Equipe Systegraveme Robotiseacute de ProductionMacros Geacuteneacuter ques MPC55

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5279

S y nd

e xV5

bull PWM (Pulse width Modulation)utilise le module MIOS (pins de 4-7 pour la direction des moteurset de 8-11 pour la validation) pour la commande des actionneursnumeacuteriques en PWM

bull TPU (Time Processor Units)les macros lieacutes agrave ce module permettent la lecture des encodeurs

increacutementauxbull QSPI (Queued Serial Peripheral Interface)

ce module fait partie du module QSMCM et les macros lieacutes servent

agrave son initialisation pour une communication avec du mateacuterielsexternes via le bus seacuterie synchrone

Equipe Systegraveme Robotiseacute de ProductionMacros Geacuteneacuter ques MPC55

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5379

S y nd

e x

V5 bull Serial port support (Polling implementation)

le MPC555 comprend dans le module QSMCM une interface decommunication seacuterie SCI qui permet la communication avec dumateacuteriels externes via un bus seacuterie asynchrone Plusieurs macros

sont lieacutes agrave cette interface pour initialiser et eacutetablir la communicationbull Serial port support (interrupt handling implementation)

pour la mecircme interface SCI du module QSMCM pour cette

meacutethode drsquoimpleacutementation les macros lieacutes initialisent et eacutetablissentla communication en mode par interruption ce qui permet dedeacutetecter lrsquoarriveacutee des donneacutees sur le port seacuterie au lieu de le scruter

en permanence

tous ces macros on les retrouvent dans le fichier 555m4x

Equipe Systegraveme Robotiseacute de ProductionMacros Speacutec ques Ro oso tles macros suivants sont deacutedieacutes agrave la carte de Robosoft MPC555

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5479

S y nd

e x

V5

bull Initialisation de la carte Robosoftmain_ini_() macro ne doit pas ecirctre utiliser par les programmateursdu fait qursquoelle sert qursquoagrave initialiser la carte robosoft Macro interne agrave

syndex dont lrsquoappel est automatique lors de geacuteneacuteration drsquoexeacutecutifMPC555

bull DAC (Digital to Analog Converter)

macro permet lrsquoutilisation du convertisseur de carte robosoft via lemodule MIOs en utilisant les pins de 0 agrave 2

bull LED (on-bord LED interface)

macro permet la gestion de la LED de la carte robosoft connecteacuteeau module QSPI (pin PCS1)

bull SPI absolute encoder

macro permet lrsquoutilisation lrsquointerface du codeur absolu de la carterobosoft connecteacute au module QSPI

Equipe Systegraveme Robotiseacute de ProductionMacros Speacutec ques Ro oso tbull Motor amplifier direction

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5579

S y nd

e x

V5

Motor amplifier directionmacro qui permet de geacuterer la direction des moteurs

bull Motor power amplifier validationles moteurs embarqueacutes sur les robots sont eacutequipeacutes de freins

eacutelectriquement commandable Ce macro permet drsquoenvoyer unsignal drsquoinhibition pour deacutebloquer les freins

bull Watch dog

pour des raisons de seacutecuriteacute un meacutecanisme mateacuteriel que robosofta ajouteacute sur la carte Ce watch-dog vise agrave stopper lrsquoactiviteacute dumoteur en cas ougrave le programme plante Le watch est impleacutementeacute

comme un time-out mateacuteriel Srsquoil nrsquoest pas rafraicircchi peacuteriodiquement il transmet un signal de sortie ce qui enlegraveve lavalidation de lrsquoamplificateur de puissance donc lrsquoarrecirct dumouvement

ces macros se trouvent dans le fichier RSBm4x

Equipe Systegraveme Robotiseacute de Production

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5679

S y nd

e x

V5

Macros de Communicationchaque meacutedia de communication (bus CAN ) est une ressourceseacutequentielle ougrave les transferts de donneacutees entre processeurs doiventsuivre un certain ordre Donc ce macro de communication sert agravedeacutefinir cet ordre et agrave identifier le protocole de communication lecodagedeacutecodage de lrsquoinformation et la synchronisation

on trouve ces macros dans le fichier CANm4x

Macros drsquoapplicationce genre de macros sont speacutecifique au mateacuteriel en question et aussiagrave lrsquoapplication en particulier Ce sont des macros utilisateurs

on trouve ces macros dans le fichier Application_namem4x

Equipe Systegraveme Robotiseacute de Production

section include (pour inclure drsquoautres fichiers macro agrave utiliseStructure du fichier macr

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5779

S y nd

e x

V5

section define (pour tous les macros utilisateurs)MGC lsquoINITrsquo (MGC Macro Generation Context variable)

divert (declaration) (deacutebut du macro)

(deacuteclaration des variables des meacutemoires et des csts

divert (o)

MGC lsquolooprsquocode en assembleur code en C

dnl (commentaires)

MGC lsquoENDrsquo dnl (fin de la macros)divert lsquo lsquo dnl

macros MPC555meacutemoire MPC555

constante MPC555

macros RTAImeacutemoire RTAI

constante RTAI

Equipe Systegraveme Robotiseacute de Production Plan

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5879

S y nd

e x

V5

bull Introduction

bull Meacutethodologie AAA

bull Installationbull Utilisation du logiciel Syndex

bull Macrosbull LinuxIO un interface CC++ avec SynDEx

bull Exemple drsquoapplication Robuter-ULM

Equipe Systegraveme Robotiseacute de Production

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5979

S y nd

e x

V5

LinuxIO LinuxIO une interface une interface

CC++ avecCC++ avec SynDExSynDEx

bull Principe de basebull Utilisation de linuxIO_ par syndex

bull Utilisation de linuxIO_ par un programmeCC++

Equipe Systegraveme Robotiseacute de ProductionPrincipe de baseSyndex fourni une interface graphique pour la conception

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6079

S y nd

e x

V5

Syndex fourni une interface graphique pour la conception

drsquoapplications Par contre des fois nous avons besoin drsquoautresfonctionnaliteacutes non disponibles donc il faut les creacuteer Cependantgeacuteneacuterer des macros pour syndex srsquoavegravere difficile pour certains du

fait qursquoil faut avoir une bonne connaissance de la programmation bas niveau Dans ce cas lrsquoutilisation de linux_IO trouve sa placedans un contexte particulier interfacer des applications CC++utilisateurs avec des applications embarqueacutees temps reacuteeldeacuteveloppeacutees sous syndex

Par rapport agrave ce contexte de programmation lrsquoorganisation du

deacuteveloppement des applications est structureacutee en deux parties 1 Application haut niveau

2 Application bas niveau

Equipe Systegraveme Robotiseacute de ProductionPrincipe de base

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6179

S y nd

e x

V5

En reacutesumeacute lrsquoapplicationutilisateur contient une

partie haut niveau enCC++ et une partie basniveau sous syndex avecun eacutechange de donneacuteesentre les deux partie en

utilisant la couche RTAIde linux

Equipe Systegraveme Robotiseacute de Production pp cat on aut n veauOn entend application haut

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6279

S y nd

e x

V5

niveau tout programmecomme la planification detrajectoires strateacutegies de

navigation etc hellipLrsquoeacutechange de donneacutees sefait par le biais desmeacutemoires partageacutees quifont parti du noyau RTAI

et de lrsquoespace utilisateursde Linux

Toute ressource preacutesente sur la carte Robosoft peutecirctre partageacutee sans aune restriction

Equipe Systegraveme Robotiseacute de Production pp cat on as n veauUne application bas niveau

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6379

S y nd

e x

V5

Une application bas niveau

est un programme conccedilusous syndex comme lacommande des moteurs la

lecture des capteurs etc hellipLes ressources mateacuteriellessont controcircler par plusieurs

cartes MPC555 Ces cartessrsquoeacutechangent des donneacuteesvia le bus CAN Donc ES

est prise en charge par lasource logicielle deacutedieacutee quisrsquoexeacutecute dans les cartes MPC555 puis la couche RTAI

est utiliseacute pour la mise agrave jour de meacutemoires partageacutees pour lrsquoespace utilisateurs linux drsquoeacutechange de donneacutees

Equipe Systegraveme Robotiseacute de ProductionUtilisation de linux_IO par syndex

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6479

S y nd

e x

V5

Equipe Systegraveme Robotiseacute de ProductionUtilisation de linux_IO par syndex

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6579

S y nd

e x

V5

Equipe Systegraveme Robotiseacute de Production

5

Utilisation de linux_IO par syndex

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6679

S y nd

e x

V5

Degraves que la conception de lrsquoapplication sous syndex esttermineacutee et apregraves compilation (AdequationDo it +GenExec) un fichier drsquoentecircte sous le nom de linioh est

automatiquement geacuteneacutereacute Ce fichier contient lesinformations neacutecessaires pour acceacuteder aux entreacutees enlecture et aux sorties en eacutecriture des opeacuterations linuxIO_

inseacutereacutees dans le graphe drsquoalgorithme Le contenu de cefichier est organiseacute en plusieurs parties une pour chaqueopeacuteration linux_IO preacutesente dans le graphe

Equipe Systegraveme Robotiseacute de Production

5

Utilisation de linux_IO par syndex linioh auto-generated C users API frontend

C i h b f 2001 i i i b f f

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6779

S y nd

e x

V5 Copyright Robosoft 2001 Pierre Pomiers ltpierrerobosoftfrgt

LINUX IO shared memory data segments

define SEG0_BASE 0x10000typedef struct

int js_spd_o0

int js_str_o0

int enc_R_o0int enc_L_o0

double odo_X_o0

double odo_Y_o0

double odo_T_o0int spd_R_o0

int spd_L_o0

int time

unsigned char sem shm_seg0_def

Nom du segment de meacutemoire partageacutee pour notre opeacuteration linuxIO_

7 signaux drsquoentreacutees Ces valeurs sonten lecture et sont peacuteriodiquementrafraicircchies par RTAI

2 signaux de sorties Ces valeurs sonten eacutecriture et sont peacuteriodiquementrafraicircchies par RTAI

Equipe Systegraveme Robotiseacute de Production

5

Crsquoest une eacutetape tregraves facile il suffit drsquoinclure le fichier drsquoentecirctelinio h dans le code du fichier en CC++ comme suit

Utilisation de linuxIO_ par un programme CC+

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6879

S y nd

e x

V5 linioh dans le code du fichier en CC++ comme suit

include linioh

include ltrtai_shmhgt

static shm_seg0_def seg0

shm_seg0_def robot

seg0 = rtai_malloc (SEG0_BASE sizeof (shm_seg0_def))

if (seg0-gtsem = 0) bcopy (seg0 amprobot sizeof (shm_seg0_def))helliphelliphellip

helliphelliphellip bcopy (amprobot seg0 sizeof (shm_seg0_def))helliphelliphelliphelliphelliphellip

rtai_free (SEG0_BASE seg0)

fichier drsquoentecircte de la meacutemoire partageacutee fourni dans la couche RTAI de linux

Initialisation du segment SEG0_BASE Allocation de lameacutemoire pointeacutee

par seg0

Lecture des donneacutees provenant du bas

niveau

Mise agrave jours du segment de meacutemoire partageacutee

Libeacuterer le segment de meacutemoire alloueacute

Equipe Systegraveme Robotiseacute de Production

5

Plan

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6979

S y nd e x

V5

bull Introductionbull Meacutethodologie AAA

bull Installationbull Utilisation du logiciel Syndex

bull Macrosbull LinuxIO un interface CC++ avec SynDEx

bull Exemple drsquoapplication Robuter-ULM

Equipe Systegraveme Robotiseacute de Production

V5

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7079

S y nd e x

V5

Exemple dapplication Exemple dapplication Robuter Robuter--ULM ULM

Equipe Systegraveme Robotiseacute de Production

V5

Description Robuter-ULMbull Base mobile (2-RM 2-RF)

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7179

S y nd e x

V

bull Bras ultra-leacuteger 6 axesbull Ceinture 24 capteurs US

bull Capteur drsquoefforts 6 axes

bull Cameacutera CCD monochromeavec carte drsquoacquisition

bull PC embarqueacute MMX 233

bull OS linux redhat 61 avecRTAI V-13

bull 3 bouton drsquoarrecirct drsquourgence

bull 4 batteries 48 VDC 4 X12V 60 Ah

bull Entreacutee Joystick

bull Liaison Ethernet sans fil

Le manipulateur mobile Robuter-ULM comprend

Equipe Systegraveme Robotiseacute de Production

V5

Base Mobilebull dimension

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7279

S y nd e x

V

1025 mm de longueur 680 mm de largueur et 44 cm de hauteurbull Poids environ 150 kg avec les batteriesbull charge jusqursquoagrave 120 kg

bull vitesse de 5cms agrave 125 msbull Moteurs 2 X 300 W DC 48 VDCbull orientation par diffeacuterence de vitesse

bull Preacutecision Position par encodeurs optiquesbull Deux roues motrices diffeacuterentielles et de deux roues follesbull Drsquoune ceinture de 24 capteurs Ultrasons

bull Une carte MPC555 de Robosoft pour le controcircle des deuxmoteurs DC des 2 rouesbull Un systegraveme drsquoodomeacutetrie qui donne la position relative du robot

par rapport agrave son repegravere

Equipe Systegraveme Robotiseacute de Production

V5

bull dimension Faute de documentation

Bras U tra- eacuteger

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7379

S y nd e x

V Faute de documentation

bull Poids moins de 20 kgbull charge 2 kgbull Moteurs 6 moteurs DC

bull gripper pince eacutelectrique 2 doigtsbull Reacutepeacutetabiliteacute +- 1mmbull 3 carte MPC555 de Robosoft lrsquoune pour le capteur drsquoeffort et les

deux autres pour les 6 moteurs + moteur de la pincebull Position encodeur increacutemental

1 2 3 4 5 6Axisrange

plusmn90deg 0-90deg plusmn80deg plusmn100deg plusmn90deg plusmn110deg

vitesse 180degs 180degs 180degs 180degs 180degs 180degs

Equipe Systegraveme Robotiseacute de Production

V5

rc tecture ar ware

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7479

S y nd e x

V

Equipe Systegraveme Robotiseacute de Production

V5

Pro eacutemat quePlusieurs applications peuvent ecirctre impleacutementeacutees sur le robot

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7579

S y nd e x

V

Cependant il faut faire la diffeacuterence entre les applications quidemande lrsquoutilisation de syndex et les applications qui neneacutecessite qursquoune programmation en CC++ Agrave titre drsquoexemple

bull Localisationbull Commande en position

bull Commande en forcebull Navigation

bull Geacuteneacuteration de trajectoire

bull Vision

Equipe Systegraveme Robotiseacute de Production

V5 bull Pince eacutelectrique (TOR)

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7679

S y nd e x

Vq ( )

bull Pince possegravede des ES Logiques

Notre application consiste agrave

bull Recevoir lrsquoeacutetat de la pince (fermeacutee ouverte )

bull Envoyer une commande vers la pince

Capture

drsquoinformation

Open

Close

CommandeMeacutemoire

Partageacutee

Actionneur

Pince Prise de deacutecision Pince

Equipe Systegraveme Robotiseacute de Production

V5

Sc eacutema eacute ectr que

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7779

S y nd e x

Equipe Systegraveme Robotiseacute de Production

V5

Conclusion

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7879

S y nd e x bull Introduction

bull Meacutethodologie AAA

bull Installationbull Utilisation du logiciel Syndex

bull Macrosbull LinuxIO un interface CC++ avec SynDEx

bull Exemple drsquoapplication Robuter-ULM

Equipe Systegraveme Robotiseacute de Production

V5

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7979

S y nd e x

Questions

Page 45: Cours Syndex

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4579

S y nd

e xV5

Macros Macros

bull Deacutefinition

bull Types de macros

bull Carte Robosoft MPC555

bull Macros Geacuteneacuterique MPC555

bull Macros speacutecifique Robosoftbull Macros de Communication

bull Macros drsquoapplicationbull Structure du fichier Macro

Equipe Systegraveme Robotiseacute de Production Deacutefinition

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4679

S y nd

e xV5

Un macro-processeur est un programme qui consommeen entreacutee une chaicircne de caractegraveres (texte source) la

traite seacutequentiellement en substituant chaque sous-chaicircne qursquoil reconnaicirct (Appel de macro) par unechaicircne correspondante de substitution ( Deacutefinition de

macro) qursquoil traite agrave nouveau jusqursquoagrave ce qursquoil nrsquo y ait plus de substitution possible et qui produit en sortie lachaicircne de caractegraveres traiteacutee

Equipe Systegraveme Robotiseacute de Productionypes e macrosL diffeacute t di ti t d d

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4779

S y nd

e xV5

Les diffeacuterents macros se distinguent en deux grandes

classes bull Macros geacuteneacuteriques

en geacuteneacuteral ceux sont des macros non destineacutes agraveecirctre utiliser directement par lrsquointerface syndexmais plutocirct utiliseacutees pour la programmation

drsquoautres macros (macros MPC555)bull Macros utilisateurs

macros utiliseacutes directement par syndex ils sontspeacutecifiques agrave lrsquoapplication (macros decommunication macros speacutecifiques robosoft

macros speacutecifiques agrave lrsquoapplication)

Equipe Systegraveme Robotiseacute de ProductionCarte Robosoft MPC555La carte Robosoft MPC555 est conccedilue pour la commande de robot de veacutehicule

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4879

S y nd

e xV5

(1) Connecteur du chip MPC555(2) Alimentation continue(3) Interface BDM (Basic Debug Interface)(4) Entreacute Analogique (Joystickhellip)(5) EntreacuteSortie logiques(6) Ligne seacuterie Synchrone (Codeur absolu)(7) Ligne seacuterie Asynchrone (Port 0)

(8) Ligne seacuterie Asynchrone (Port 1)(9) Connecteur du bus CAN (Port 0)(10) Connecteur du bus CAN (Port 1)(11) Axe 1(13) Axe 2(14) Axe 3(15) Axe 4

La carte Robosoft MPC555 est conccedilue pour la commande de robot de veacutehiculeeacutelectrique ou toute autre machine Elle permet de commander un axe gracircce agrave

lrsquoajout drsquoune carte fille le controcircle srsquoeacutetend jusqursquoagrave 4 axesCette carte est baseacutee sur le microcontrocircleur MPC555 32-bit de MotorolaElle peut opeacuterer agrave une freacutequence

de 40 MHz Divers signauxlogique et analogique peuventecirctre utiliser pour lrsquoacquisition deet la commande de mateacuteriel Les

sorties disponibles peuvent ecirctreanalogique ou PWMOn y trouve

Equipe Systegraveme Robotiseacute de ProductionArchitecture du MPC555

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4979

S y nd

e xV5

Equipe Systegraveme Robotiseacute de Productionaract r st ques u

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5079

S y nd

e xV5

Equipe Systegraveme Robotiseacute de Productionacros n r quesbull GPIO (General-Purpose InputOutput)

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5179

S y nd

e xV5

GPIO (General Purpose InputOutput)ce macro utilise le module USIU qui lui fourni 64 pins pour desentreacuteessorties numeacuteriques ordinaires (IO de la carte Robosoft lirelrsquoeacutetat de la pince envoi de commande agrave la pince lire les alarmes)

bull QADC (Queued Analog to Digital Converter)en utilisant le module QADC ce macro permet la conversion drsquounsignal analogique en entreacutee en un signal numeacuterique multi-niveaux(lire les donneacutees du capteur drsquoeacuteffort du joystick)

bull MIOS (Modular InputOutput System)Le module MIOS fourni 16 pins drsquoES numeacuteriques Sur la carte deRobosoft tous les pins sont en sortie Les 16 pins sont reacutepartiscomme suit

utilisateurs reacuteserveacutes

les pins de 0 agrave 11 sont reacuteserveacutes car ils sont preacutevus agrave ecirctre utiliseacutes pour unmateacuteriel particulier Mais si ce mateacuteriel nrsquoest pas utiliseacute lrsquoutilisateur peut lesutiliser librement

15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

Equipe Systegraveme Robotiseacute de ProductionMacros Geacuteneacuter ques MPC55

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5279

S y nd

e xV5

bull PWM (Pulse width Modulation)utilise le module MIOS (pins de 4-7 pour la direction des moteurset de 8-11 pour la validation) pour la commande des actionneursnumeacuteriques en PWM

bull TPU (Time Processor Units)les macros lieacutes agrave ce module permettent la lecture des encodeurs

increacutementauxbull QSPI (Queued Serial Peripheral Interface)

ce module fait partie du module QSMCM et les macros lieacutes servent

agrave son initialisation pour une communication avec du mateacuterielsexternes via le bus seacuterie synchrone

Equipe Systegraveme Robotiseacute de ProductionMacros Geacuteneacuter ques MPC55

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5379

S y nd

e x

V5 bull Serial port support (Polling implementation)

le MPC555 comprend dans le module QSMCM une interface decommunication seacuterie SCI qui permet la communication avec dumateacuteriels externes via un bus seacuterie asynchrone Plusieurs macros

sont lieacutes agrave cette interface pour initialiser et eacutetablir la communicationbull Serial port support (interrupt handling implementation)

pour la mecircme interface SCI du module QSMCM pour cette

meacutethode drsquoimpleacutementation les macros lieacutes initialisent et eacutetablissentla communication en mode par interruption ce qui permet dedeacutetecter lrsquoarriveacutee des donneacutees sur le port seacuterie au lieu de le scruter

en permanence

tous ces macros on les retrouvent dans le fichier 555m4x

Equipe Systegraveme Robotiseacute de ProductionMacros Speacutec ques Ro oso tles macros suivants sont deacutedieacutes agrave la carte de Robosoft MPC555

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5479

S y nd

e x

V5

bull Initialisation de la carte Robosoftmain_ini_() macro ne doit pas ecirctre utiliser par les programmateursdu fait qursquoelle sert qursquoagrave initialiser la carte robosoft Macro interne agrave

syndex dont lrsquoappel est automatique lors de geacuteneacuteration drsquoexeacutecutifMPC555

bull DAC (Digital to Analog Converter)

macro permet lrsquoutilisation du convertisseur de carte robosoft via lemodule MIOs en utilisant les pins de 0 agrave 2

bull LED (on-bord LED interface)

macro permet la gestion de la LED de la carte robosoft connecteacuteeau module QSPI (pin PCS1)

bull SPI absolute encoder

macro permet lrsquoutilisation lrsquointerface du codeur absolu de la carterobosoft connecteacute au module QSPI

Equipe Systegraveme Robotiseacute de ProductionMacros Speacutec ques Ro oso tbull Motor amplifier direction

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5579

S y nd

e x

V5

Motor amplifier directionmacro qui permet de geacuterer la direction des moteurs

bull Motor power amplifier validationles moteurs embarqueacutes sur les robots sont eacutequipeacutes de freins

eacutelectriquement commandable Ce macro permet drsquoenvoyer unsignal drsquoinhibition pour deacutebloquer les freins

bull Watch dog

pour des raisons de seacutecuriteacute un meacutecanisme mateacuteriel que robosofta ajouteacute sur la carte Ce watch-dog vise agrave stopper lrsquoactiviteacute dumoteur en cas ougrave le programme plante Le watch est impleacutementeacute

comme un time-out mateacuteriel Srsquoil nrsquoest pas rafraicircchi peacuteriodiquement il transmet un signal de sortie ce qui enlegraveve lavalidation de lrsquoamplificateur de puissance donc lrsquoarrecirct dumouvement

ces macros se trouvent dans le fichier RSBm4x

Equipe Systegraveme Robotiseacute de Production

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5679

S y nd

e x

V5

Macros de Communicationchaque meacutedia de communication (bus CAN ) est une ressourceseacutequentielle ougrave les transferts de donneacutees entre processeurs doiventsuivre un certain ordre Donc ce macro de communication sert agravedeacutefinir cet ordre et agrave identifier le protocole de communication lecodagedeacutecodage de lrsquoinformation et la synchronisation

on trouve ces macros dans le fichier CANm4x

Macros drsquoapplicationce genre de macros sont speacutecifique au mateacuteriel en question et aussiagrave lrsquoapplication en particulier Ce sont des macros utilisateurs

on trouve ces macros dans le fichier Application_namem4x

Equipe Systegraveme Robotiseacute de Production

section include (pour inclure drsquoautres fichiers macro agrave utiliseStructure du fichier macr

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5779

S y nd

e x

V5

section define (pour tous les macros utilisateurs)MGC lsquoINITrsquo (MGC Macro Generation Context variable)

divert (declaration) (deacutebut du macro)

(deacuteclaration des variables des meacutemoires et des csts

divert (o)

MGC lsquolooprsquocode en assembleur code en C

dnl (commentaires)

MGC lsquoENDrsquo dnl (fin de la macros)divert lsquo lsquo dnl

macros MPC555meacutemoire MPC555

constante MPC555

macros RTAImeacutemoire RTAI

constante RTAI

Equipe Systegraveme Robotiseacute de Production Plan

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5879

S y nd

e x

V5

bull Introduction

bull Meacutethodologie AAA

bull Installationbull Utilisation du logiciel Syndex

bull Macrosbull LinuxIO un interface CC++ avec SynDEx

bull Exemple drsquoapplication Robuter-ULM

Equipe Systegraveme Robotiseacute de Production

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5979

S y nd

e x

V5

LinuxIO LinuxIO une interface une interface

CC++ avecCC++ avec SynDExSynDEx

bull Principe de basebull Utilisation de linuxIO_ par syndex

bull Utilisation de linuxIO_ par un programmeCC++

Equipe Systegraveme Robotiseacute de ProductionPrincipe de baseSyndex fourni une interface graphique pour la conception

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6079

S y nd

e x

V5

Syndex fourni une interface graphique pour la conception

drsquoapplications Par contre des fois nous avons besoin drsquoautresfonctionnaliteacutes non disponibles donc il faut les creacuteer Cependantgeacuteneacuterer des macros pour syndex srsquoavegravere difficile pour certains du

fait qursquoil faut avoir une bonne connaissance de la programmation bas niveau Dans ce cas lrsquoutilisation de linux_IO trouve sa placedans un contexte particulier interfacer des applications CC++utilisateurs avec des applications embarqueacutees temps reacuteeldeacuteveloppeacutees sous syndex

Par rapport agrave ce contexte de programmation lrsquoorganisation du

deacuteveloppement des applications est structureacutee en deux parties 1 Application haut niveau

2 Application bas niveau

Equipe Systegraveme Robotiseacute de ProductionPrincipe de base

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6179

S y nd

e x

V5

En reacutesumeacute lrsquoapplicationutilisateur contient une

partie haut niveau enCC++ et une partie basniveau sous syndex avecun eacutechange de donneacuteesentre les deux partie en

utilisant la couche RTAIde linux

Equipe Systegraveme Robotiseacute de Production pp cat on aut n veauOn entend application haut

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6279

S y nd

e x

V5

niveau tout programmecomme la planification detrajectoires strateacutegies de

navigation etc hellipLrsquoeacutechange de donneacutees sefait par le biais desmeacutemoires partageacutees quifont parti du noyau RTAI

et de lrsquoespace utilisateursde Linux

Toute ressource preacutesente sur la carte Robosoft peutecirctre partageacutee sans aune restriction

Equipe Systegraveme Robotiseacute de Production pp cat on as n veauUne application bas niveau

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6379

S y nd

e x

V5

Une application bas niveau

est un programme conccedilusous syndex comme lacommande des moteurs la

lecture des capteurs etc hellipLes ressources mateacuteriellessont controcircler par plusieurs

cartes MPC555 Ces cartessrsquoeacutechangent des donneacuteesvia le bus CAN Donc ES

est prise en charge par lasource logicielle deacutedieacutee quisrsquoexeacutecute dans les cartes MPC555 puis la couche RTAI

est utiliseacute pour la mise agrave jour de meacutemoires partageacutees pour lrsquoespace utilisateurs linux drsquoeacutechange de donneacutees

Equipe Systegraveme Robotiseacute de ProductionUtilisation de linux_IO par syndex

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6479

S y nd

e x

V5

Equipe Systegraveme Robotiseacute de ProductionUtilisation de linux_IO par syndex

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6579

S y nd

e x

V5

Equipe Systegraveme Robotiseacute de Production

5

Utilisation de linux_IO par syndex

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6679

S y nd

e x

V5

Degraves que la conception de lrsquoapplication sous syndex esttermineacutee et apregraves compilation (AdequationDo it +GenExec) un fichier drsquoentecircte sous le nom de linioh est

automatiquement geacuteneacutereacute Ce fichier contient lesinformations neacutecessaires pour acceacuteder aux entreacutees enlecture et aux sorties en eacutecriture des opeacuterations linuxIO_

inseacutereacutees dans le graphe drsquoalgorithme Le contenu de cefichier est organiseacute en plusieurs parties une pour chaqueopeacuteration linux_IO preacutesente dans le graphe

Equipe Systegraveme Robotiseacute de Production

5

Utilisation de linux_IO par syndex linioh auto-generated C users API frontend

C i h b f 2001 i i i b f f

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6779

S y nd

e x

V5 Copyright Robosoft 2001 Pierre Pomiers ltpierrerobosoftfrgt

LINUX IO shared memory data segments

define SEG0_BASE 0x10000typedef struct

int js_spd_o0

int js_str_o0

int enc_R_o0int enc_L_o0

double odo_X_o0

double odo_Y_o0

double odo_T_o0int spd_R_o0

int spd_L_o0

int time

unsigned char sem shm_seg0_def

Nom du segment de meacutemoire partageacutee pour notre opeacuteration linuxIO_

7 signaux drsquoentreacutees Ces valeurs sonten lecture et sont peacuteriodiquementrafraicircchies par RTAI

2 signaux de sorties Ces valeurs sonten eacutecriture et sont peacuteriodiquementrafraicircchies par RTAI

Equipe Systegraveme Robotiseacute de Production

5

Crsquoest une eacutetape tregraves facile il suffit drsquoinclure le fichier drsquoentecirctelinio h dans le code du fichier en CC++ comme suit

Utilisation de linuxIO_ par un programme CC+

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6879

S y nd

e x

V5 linioh dans le code du fichier en CC++ comme suit

include linioh

include ltrtai_shmhgt

static shm_seg0_def seg0

shm_seg0_def robot

seg0 = rtai_malloc (SEG0_BASE sizeof (shm_seg0_def))

if (seg0-gtsem = 0) bcopy (seg0 amprobot sizeof (shm_seg0_def))helliphelliphellip

helliphelliphellip bcopy (amprobot seg0 sizeof (shm_seg0_def))helliphelliphelliphelliphelliphellip

rtai_free (SEG0_BASE seg0)

fichier drsquoentecircte de la meacutemoire partageacutee fourni dans la couche RTAI de linux

Initialisation du segment SEG0_BASE Allocation de lameacutemoire pointeacutee

par seg0

Lecture des donneacutees provenant du bas

niveau

Mise agrave jours du segment de meacutemoire partageacutee

Libeacuterer le segment de meacutemoire alloueacute

Equipe Systegraveme Robotiseacute de Production

5

Plan

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6979

S y nd e x

V5

bull Introductionbull Meacutethodologie AAA

bull Installationbull Utilisation du logiciel Syndex

bull Macrosbull LinuxIO un interface CC++ avec SynDEx

bull Exemple drsquoapplication Robuter-ULM

Equipe Systegraveme Robotiseacute de Production

V5

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7079

S y nd e x

V5

Exemple dapplication Exemple dapplication Robuter Robuter--ULM ULM

Equipe Systegraveme Robotiseacute de Production

V5

Description Robuter-ULMbull Base mobile (2-RM 2-RF)

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7179

S y nd e x

V

bull Bras ultra-leacuteger 6 axesbull Ceinture 24 capteurs US

bull Capteur drsquoefforts 6 axes

bull Cameacutera CCD monochromeavec carte drsquoacquisition

bull PC embarqueacute MMX 233

bull OS linux redhat 61 avecRTAI V-13

bull 3 bouton drsquoarrecirct drsquourgence

bull 4 batteries 48 VDC 4 X12V 60 Ah

bull Entreacutee Joystick

bull Liaison Ethernet sans fil

Le manipulateur mobile Robuter-ULM comprend

Equipe Systegraveme Robotiseacute de Production

V5

Base Mobilebull dimension

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7279

S y nd e x

V

1025 mm de longueur 680 mm de largueur et 44 cm de hauteurbull Poids environ 150 kg avec les batteriesbull charge jusqursquoagrave 120 kg

bull vitesse de 5cms agrave 125 msbull Moteurs 2 X 300 W DC 48 VDCbull orientation par diffeacuterence de vitesse

bull Preacutecision Position par encodeurs optiquesbull Deux roues motrices diffeacuterentielles et de deux roues follesbull Drsquoune ceinture de 24 capteurs Ultrasons

bull Une carte MPC555 de Robosoft pour le controcircle des deuxmoteurs DC des 2 rouesbull Un systegraveme drsquoodomeacutetrie qui donne la position relative du robot

par rapport agrave son repegravere

Equipe Systegraveme Robotiseacute de Production

V5

bull dimension Faute de documentation

Bras U tra- eacuteger

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7379

S y nd e x

V Faute de documentation

bull Poids moins de 20 kgbull charge 2 kgbull Moteurs 6 moteurs DC

bull gripper pince eacutelectrique 2 doigtsbull Reacutepeacutetabiliteacute +- 1mmbull 3 carte MPC555 de Robosoft lrsquoune pour le capteur drsquoeffort et les

deux autres pour les 6 moteurs + moteur de la pincebull Position encodeur increacutemental

1 2 3 4 5 6Axisrange

plusmn90deg 0-90deg plusmn80deg plusmn100deg plusmn90deg plusmn110deg

vitesse 180degs 180degs 180degs 180degs 180degs 180degs

Equipe Systegraveme Robotiseacute de Production

V5

rc tecture ar ware

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7479

S y nd e x

V

Equipe Systegraveme Robotiseacute de Production

V5

Pro eacutemat quePlusieurs applications peuvent ecirctre impleacutementeacutees sur le robot

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7579

S y nd e x

V

Cependant il faut faire la diffeacuterence entre les applications quidemande lrsquoutilisation de syndex et les applications qui neneacutecessite qursquoune programmation en CC++ Agrave titre drsquoexemple

bull Localisationbull Commande en position

bull Commande en forcebull Navigation

bull Geacuteneacuteration de trajectoire

bull Vision

Equipe Systegraveme Robotiseacute de Production

V5 bull Pince eacutelectrique (TOR)

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7679

S y nd e x

Vq ( )

bull Pince possegravede des ES Logiques

Notre application consiste agrave

bull Recevoir lrsquoeacutetat de la pince (fermeacutee ouverte )

bull Envoyer une commande vers la pince

Capture

drsquoinformation

Open

Close

CommandeMeacutemoire

Partageacutee

Actionneur

Pince Prise de deacutecision Pince

Equipe Systegraveme Robotiseacute de Production

V5

Sc eacutema eacute ectr que

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7779

S y nd e x

Equipe Systegraveme Robotiseacute de Production

V5

Conclusion

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7879

S y nd e x bull Introduction

bull Meacutethodologie AAA

bull Installationbull Utilisation du logiciel Syndex

bull Macrosbull LinuxIO un interface CC++ avec SynDEx

bull Exemple drsquoapplication Robuter-ULM

Equipe Systegraveme Robotiseacute de Production

V5

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7979

S y nd e x

Questions

Page 46: Cours Syndex

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4679

S y nd

e xV5

Un macro-processeur est un programme qui consommeen entreacutee une chaicircne de caractegraveres (texte source) la

traite seacutequentiellement en substituant chaque sous-chaicircne qursquoil reconnaicirct (Appel de macro) par unechaicircne correspondante de substitution ( Deacutefinition de

macro) qursquoil traite agrave nouveau jusqursquoagrave ce qursquoil nrsquo y ait plus de substitution possible et qui produit en sortie lachaicircne de caractegraveres traiteacutee

Equipe Systegraveme Robotiseacute de Productionypes e macrosL diffeacute t di ti t d d

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4779

S y nd

e xV5

Les diffeacuterents macros se distinguent en deux grandes

classes bull Macros geacuteneacuteriques

en geacuteneacuteral ceux sont des macros non destineacutes agraveecirctre utiliser directement par lrsquointerface syndexmais plutocirct utiliseacutees pour la programmation

drsquoautres macros (macros MPC555)bull Macros utilisateurs

macros utiliseacutes directement par syndex ils sontspeacutecifiques agrave lrsquoapplication (macros decommunication macros speacutecifiques robosoft

macros speacutecifiques agrave lrsquoapplication)

Equipe Systegraveme Robotiseacute de ProductionCarte Robosoft MPC555La carte Robosoft MPC555 est conccedilue pour la commande de robot de veacutehicule

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4879

S y nd

e xV5

(1) Connecteur du chip MPC555(2) Alimentation continue(3) Interface BDM (Basic Debug Interface)(4) Entreacute Analogique (Joystickhellip)(5) EntreacuteSortie logiques(6) Ligne seacuterie Synchrone (Codeur absolu)(7) Ligne seacuterie Asynchrone (Port 0)

(8) Ligne seacuterie Asynchrone (Port 1)(9) Connecteur du bus CAN (Port 0)(10) Connecteur du bus CAN (Port 1)(11) Axe 1(13) Axe 2(14) Axe 3(15) Axe 4

La carte Robosoft MPC555 est conccedilue pour la commande de robot de veacutehiculeeacutelectrique ou toute autre machine Elle permet de commander un axe gracircce agrave

lrsquoajout drsquoune carte fille le controcircle srsquoeacutetend jusqursquoagrave 4 axesCette carte est baseacutee sur le microcontrocircleur MPC555 32-bit de MotorolaElle peut opeacuterer agrave une freacutequence

de 40 MHz Divers signauxlogique et analogique peuventecirctre utiliser pour lrsquoacquisition deet la commande de mateacuteriel Les

sorties disponibles peuvent ecirctreanalogique ou PWMOn y trouve

Equipe Systegraveme Robotiseacute de ProductionArchitecture du MPC555

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4979

S y nd

e xV5

Equipe Systegraveme Robotiseacute de Productionaract r st ques u

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5079

S y nd

e xV5

Equipe Systegraveme Robotiseacute de Productionacros n r quesbull GPIO (General-Purpose InputOutput)

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5179

S y nd

e xV5

GPIO (General Purpose InputOutput)ce macro utilise le module USIU qui lui fourni 64 pins pour desentreacuteessorties numeacuteriques ordinaires (IO de la carte Robosoft lirelrsquoeacutetat de la pince envoi de commande agrave la pince lire les alarmes)

bull QADC (Queued Analog to Digital Converter)en utilisant le module QADC ce macro permet la conversion drsquounsignal analogique en entreacutee en un signal numeacuterique multi-niveaux(lire les donneacutees du capteur drsquoeacuteffort du joystick)

bull MIOS (Modular InputOutput System)Le module MIOS fourni 16 pins drsquoES numeacuteriques Sur la carte deRobosoft tous les pins sont en sortie Les 16 pins sont reacutepartiscomme suit

utilisateurs reacuteserveacutes

les pins de 0 agrave 11 sont reacuteserveacutes car ils sont preacutevus agrave ecirctre utiliseacutes pour unmateacuteriel particulier Mais si ce mateacuteriel nrsquoest pas utiliseacute lrsquoutilisateur peut lesutiliser librement

15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

Equipe Systegraveme Robotiseacute de ProductionMacros Geacuteneacuter ques MPC55

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5279

S y nd

e xV5

bull PWM (Pulse width Modulation)utilise le module MIOS (pins de 4-7 pour la direction des moteurset de 8-11 pour la validation) pour la commande des actionneursnumeacuteriques en PWM

bull TPU (Time Processor Units)les macros lieacutes agrave ce module permettent la lecture des encodeurs

increacutementauxbull QSPI (Queued Serial Peripheral Interface)

ce module fait partie du module QSMCM et les macros lieacutes servent

agrave son initialisation pour une communication avec du mateacuterielsexternes via le bus seacuterie synchrone

Equipe Systegraveme Robotiseacute de ProductionMacros Geacuteneacuter ques MPC55

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5379

S y nd

e x

V5 bull Serial port support (Polling implementation)

le MPC555 comprend dans le module QSMCM une interface decommunication seacuterie SCI qui permet la communication avec dumateacuteriels externes via un bus seacuterie asynchrone Plusieurs macros

sont lieacutes agrave cette interface pour initialiser et eacutetablir la communicationbull Serial port support (interrupt handling implementation)

pour la mecircme interface SCI du module QSMCM pour cette

meacutethode drsquoimpleacutementation les macros lieacutes initialisent et eacutetablissentla communication en mode par interruption ce qui permet dedeacutetecter lrsquoarriveacutee des donneacutees sur le port seacuterie au lieu de le scruter

en permanence

tous ces macros on les retrouvent dans le fichier 555m4x

Equipe Systegraveme Robotiseacute de ProductionMacros Speacutec ques Ro oso tles macros suivants sont deacutedieacutes agrave la carte de Robosoft MPC555

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5479

S y nd

e x

V5

bull Initialisation de la carte Robosoftmain_ini_() macro ne doit pas ecirctre utiliser par les programmateursdu fait qursquoelle sert qursquoagrave initialiser la carte robosoft Macro interne agrave

syndex dont lrsquoappel est automatique lors de geacuteneacuteration drsquoexeacutecutifMPC555

bull DAC (Digital to Analog Converter)

macro permet lrsquoutilisation du convertisseur de carte robosoft via lemodule MIOs en utilisant les pins de 0 agrave 2

bull LED (on-bord LED interface)

macro permet la gestion de la LED de la carte robosoft connecteacuteeau module QSPI (pin PCS1)

bull SPI absolute encoder

macro permet lrsquoutilisation lrsquointerface du codeur absolu de la carterobosoft connecteacute au module QSPI

Equipe Systegraveme Robotiseacute de ProductionMacros Speacutec ques Ro oso tbull Motor amplifier direction

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5579

S y nd

e x

V5

Motor amplifier directionmacro qui permet de geacuterer la direction des moteurs

bull Motor power amplifier validationles moteurs embarqueacutes sur les robots sont eacutequipeacutes de freins

eacutelectriquement commandable Ce macro permet drsquoenvoyer unsignal drsquoinhibition pour deacutebloquer les freins

bull Watch dog

pour des raisons de seacutecuriteacute un meacutecanisme mateacuteriel que robosofta ajouteacute sur la carte Ce watch-dog vise agrave stopper lrsquoactiviteacute dumoteur en cas ougrave le programme plante Le watch est impleacutementeacute

comme un time-out mateacuteriel Srsquoil nrsquoest pas rafraicircchi peacuteriodiquement il transmet un signal de sortie ce qui enlegraveve lavalidation de lrsquoamplificateur de puissance donc lrsquoarrecirct dumouvement

ces macros se trouvent dans le fichier RSBm4x

Equipe Systegraveme Robotiseacute de Production

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5679

S y nd

e x

V5

Macros de Communicationchaque meacutedia de communication (bus CAN ) est une ressourceseacutequentielle ougrave les transferts de donneacutees entre processeurs doiventsuivre un certain ordre Donc ce macro de communication sert agravedeacutefinir cet ordre et agrave identifier le protocole de communication lecodagedeacutecodage de lrsquoinformation et la synchronisation

on trouve ces macros dans le fichier CANm4x

Macros drsquoapplicationce genre de macros sont speacutecifique au mateacuteriel en question et aussiagrave lrsquoapplication en particulier Ce sont des macros utilisateurs

on trouve ces macros dans le fichier Application_namem4x

Equipe Systegraveme Robotiseacute de Production

section include (pour inclure drsquoautres fichiers macro agrave utiliseStructure du fichier macr

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5779

S y nd

e x

V5

section define (pour tous les macros utilisateurs)MGC lsquoINITrsquo (MGC Macro Generation Context variable)

divert (declaration) (deacutebut du macro)

(deacuteclaration des variables des meacutemoires et des csts

divert (o)

MGC lsquolooprsquocode en assembleur code en C

dnl (commentaires)

MGC lsquoENDrsquo dnl (fin de la macros)divert lsquo lsquo dnl

macros MPC555meacutemoire MPC555

constante MPC555

macros RTAImeacutemoire RTAI

constante RTAI

Equipe Systegraveme Robotiseacute de Production Plan

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5879

S y nd

e x

V5

bull Introduction

bull Meacutethodologie AAA

bull Installationbull Utilisation du logiciel Syndex

bull Macrosbull LinuxIO un interface CC++ avec SynDEx

bull Exemple drsquoapplication Robuter-ULM

Equipe Systegraveme Robotiseacute de Production

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5979

S y nd

e x

V5

LinuxIO LinuxIO une interface une interface

CC++ avecCC++ avec SynDExSynDEx

bull Principe de basebull Utilisation de linuxIO_ par syndex

bull Utilisation de linuxIO_ par un programmeCC++

Equipe Systegraveme Robotiseacute de ProductionPrincipe de baseSyndex fourni une interface graphique pour la conception

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6079

S y nd

e x

V5

Syndex fourni une interface graphique pour la conception

drsquoapplications Par contre des fois nous avons besoin drsquoautresfonctionnaliteacutes non disponibles donc il faut les creacuteer Cependantgeacuteneacuterer des macros pour syndex srsquoavegravere difficile pour certains du

fait qursquoil faut avoir une bonne connaissance de la programmation bas niveau Dans ce cas lrsquoutilisation de linux_IO trouve sa placedans un contexte particulier interfacer des applications CC++utilisateurs avec des applications embarqueacutees temps reacuteeldeacuteveloppeacutees sous syndex

Par rapport agrave ce contexte de programmation lrsquoorganisation du

deacuteveloppement des applications est structureacutee en deux parties 1 Application haut niveau

2 Application bas niveau

Equipe Systegraveme Robotiseacute de ProductionPrincipe de base

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6179

S y nd

e x

V5

En reacutesumeacute lrsquoapplicationutilisateur contient une

partie haut niveau enCC++ et une partie basniveau sous syndex avecun eacutechange de donneacuteesentre les deux partie en

utilisant la couche RTAIde linux

Equipe Systegraveme Robotiseacute de Production pp cat on aut n veauOn entend application haut

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6279

S y nd

e x

V5

niveau tout programmecomme la planification detrajectoires strateacutegies de

navigation etc hellipLrsquoeacutechange de donneacutees sefait par le biais desmeacutemoires partageacutees quifont parti du noyau RTAI

et de lrsquoespace utilisateursde Linux

Toute ressource preacutesente sur la carte Robosoft peutecirctre partageacutee sans aune restriction

Equipe Systegraveme Robotiseacute de Production pp cat on as n veauUne application bas niveau

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6379

S y nd

e x

V5

Une application bas niveau

est un programme conccedilusous syndex comme lacommande des moteurs la

lecture des capteurs etc hellipLes ressources mateacuteriellessont controcircler par plusieurs

cartes MPC555 Ces cartessrsquoeacutechangent des donneacuteesvia le bus CAN Donc ES

est prise en charge par lasource logicielle deacutedieacutee quisrsquoexeacutecute dans les cartes MPC555 puis la couche RTAI

est utiliseacute pour la mise agrave jour de meacutemoires partageacutees pour lrsquoespace utilisateurs linux drsquoeacutechange de donneacutees

Equipe Systegraveme Robotiseacute de ProductionUtilisation de linux_IO par syndex

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6479

S y nd

e x

V5

Equipe Systegraveme Robotiseacute de ProductionUtilisation de linux_IO par syndex

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6579

S y nd

e x

V5

Equipe Systegraveme Robotiseacute de Production

5

Utilisation de linux_IO par syndex

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6679

S y nd

e x

V5

Degraves que la conception de lrsquoapplication sous syndex esttermineacutee et apregraves compilation (AdequationDo it +GenExec) un fichier drsquoentecircte sous le nom de linioh est

automatiquement geacuteneacutereacute Ce fichier contient lesinformations neacutecessaires pour acceacuteder aux entreacutees enlecture et aux sorties en eacutecriture des opeacuterations linuxIO_

inseacutereacutees dans le graphe drsquoalgorithme Le contenu de cefichier est organiseacute en plusieurs parties une pour chaqueopeacuteration linux_IO preacutesente dans le graphe

Equipe Systegraveme Robotiseacute de Production

5

Utilisation de linux_IO par syndex linioh auto-generated C users API frontend

C i h b f 2001 i i i b f f

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6779

S y nd

e x

V5 Copyright Robosoft 2001 Pierre Pomiers ltpierrerobosoftfrgt

LINUX IO shared memory data segments

define SEG0_BASE 0x10000typedef struct

int js_spd_o0

int js_str_o0

int enc_R_o0int enc_L_o0

double odo_X_o0

double odo_Y_o0

double odo_T_o0int spd_R_o0

int spd_L_o0

int time

unsigned char sem shm_seg0_def

Nom du segment de meacutemoire partageacutee pour notre opeacuteration linuxIO_

7 signaux drsquoentreacutees Ces valeurs sonten lecture et sont peacuteriodiquementrafraicircchies par RTAI

2 signaux de sorties Ces valeurs sonten eacutecriture et sont peacuteriodiquementrafraicircchies par RTAI

Equipe Systegraveme Robotiseacute de Production

5

Crsquoest une eacutetape tregraves facile il suffit drsquoinclure le fichier drsquoentecirctelinio h dans le code du fichier en CC++ comme suit

Utilisation de linuxIO_ par un programme CC+

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6879

S y nd

e x

V5 linioh dans le code du fichier en CC++ comme suit

include linioh

include ltrtai_shmhgt

static shm_seg0_def seg0

shm_seg0_def robot

seg0 = rtai_malloc (SEG0_BASE sizeof (shm_seg0_def))

if (seg0-gtsem = 0) bcopy (seg0 amprobot sizeof (shm_seg0_def))helliphelliphellip

helliphelliphellip bcopy (amprobot seg0 sizeof (shm_seg0_def))helliphelliphelliphelliphelliphellip

rtai_free (SEG0_BASE seg0)

fichier drsquoentecircte de la meacutemoire partageacutee fourni dans la couche RTAI de linux

Initialisation du segment SEG0_BASE Allocation de lameacutemoire pointeacutee

par seg0

Lecture des donneacutees provenant du bas

niveau

Mise agrave jours du segment de meacutemoire partageacutee

Libeacuterer le segment de meacutemoire alloueacute

Equipe Systegraveme Robotiseacute de Production

5

Plan

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6979

S y nd e x

V5

bull Introductionbull Meacutethodologie AAA

bull Installationbull Utilisation du logiciel Syndex

bull Macrosbull LinuxIO un interface CC++ avec SynDEx

bull Exemple drsquoapplication Robuter-ULM

Equipe Systegraveme Robotiseacute de Production

V5

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7079

S y nd e x

V5

Exemple dapplication Exemple dapplication Robuter Robuter--ULM ULM

Equipe Systegraveme Robotiseacute de Production

V5

Description Robuter-ULMbull Base mobile (2-RM 2-RF)

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7179

S y nd e x

V

bull Bras ultra-leacuteger 6 axesbull Ceinture 24 capteurs US

bull Capteur drsquoefforts 6 axes

bull Cameacutera CCD monochromeavec carte drsquoacquisition

bull PC embarqueacute MMX 233

bull OS linux redhat 61 avecRTAI V-13

bull 3 bouton drsquoarrecirct drsquourgence

bull 4 batteries 48 VDC 4 X12V 60 Ah

bull Entreacutee Joystick

bull Liaison Ethernet sans fil

Le manipulateur mobile Robuter-ULM comprend

Equipe Systegraveme Robotiseacute de Production

V5

Base Mobilebull dimension

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7279

S y nd e x

V

1025 mm de longueur 680 mm de largueur et 44 cm de hauteurbull Poids environ 150 kg avec les batteriesbull charge jusqursquoagrave 120 kg

bull vitesse de 5cms agrave 125 msbull Moteurs 2 X 300 W DC 48 VDCbull orientation par diffeacuterence de vitesse

bull Preacutecision Position par encodeurs optiquesbull Deux roues motrices diffeacuterentielles et de deux roues follesbull Drsquoune ceinture de 24 capteurs Ultrasons

bull Une carte MPC555 de Robosoft pour le controcircle des deuxmoteurs DC des 2 rouesbull Un systegraveme drsquoodomeacutetrie qui donne la position relative du robot

par rapport agrave son repegravere

Equipe Systegraveme Robotiseacute de Production

V5

bull dimension Faute de documentation

Bras U tra- eacuteger

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7379

S y nd e x

V Faute de documentation

bull Poids moins de 20 kgbull charge 2 kgbull Moteurs 6 moteurs DC

bull gripper pince eacutelectrique 2 doigtsbull Reacutepeacutetabiliteacute +- 1mmbull 3 carte MPC555 de Robosoft lrsquoune pour le capteur drsquoeffort et les

deux autres pour les 6 moteurs + moteur de la pincebull Position encodeur increacutemental

1 2 3 4 5 6Axisrange

plusmn90deg 0-90deg plusmn80deg plusmn100deg plusmn90deg plusmn110deg

vitesse 180degs 180degs 180degs 180degs 180degs 180degs

Equipe Systegraveme Robotiseacute de Production

V5

rc tecture ar ware

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7479

S y nd e x

V

Equipe Systegraveme Robotiseacute de Production

V5

Pro eacutemat quePlusieurs applications peuvent ecirctre impleacutementeacutees sur le robot

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7579

S y nd e x

V

Cependant il faut faire la diffeacuterence entre les applications quidemande lrsquoutilisation de syndex et les applications qui neneacutecessite qursquoune programmation en CC++ Agrave titre drsquoexemple

bull Localisationbull Commande en position

bull Commande en forcebull Navigation

bull Geacuteneacuteration de trajectoire

bull Vision

Equipe Systegraveme Robotiseacute de Production

V5 bull Pince eacutelectrique (TOR)

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7679

S y nd e x

Vq ( )

bull Pince possegravede des ES Logiques

Notre application consiste agrave

bull Recevoir lrsquoeacutetat de la pince (fermeacutee ouverte )

bull Envoyer une commande vers la pince

Capture

drsquoinformation

Open

Close

CommandeMeacutemoire

Partageacutee

Actionneur

Pince Prise de deacutecision Pince

Equipe Systegraveme Robotiseacute de Production

V5

Sc eacutema eacute ectr que

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7779

S y nd e x

Equipe Systegraveme Robotiseacute de Production

V5

Conclusion

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7879

S y nd e x bull Introduction

bull Meacutethodologie AAA

bull Installationbull Utilisation du logiciel Syndex

bull Macrosbull LinuxIO un interface CC++ avec SynDEx

bull Exemple drsquoapplication Robuter-ULM

Equipe Systegraveme Robotiseacute de Production

V5

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7979

S y nd e x

Questions

Page 47: Cours Syndex

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4779

S y nd

e xV5

Les diffeacuterents macros se distinguent en deux grandes

classes bull Macros geacuteneacuteriques

en geacuteneacuteral ceux sont des macros non destineacutes agraveecirctre utiliser directement par lrsquointerface syndexmais plutocirct utiliseacutees pour la programmation

drsquoautres macros (macros MPC555)bull Macros utilisateurs

macros utiliseacutes directement par syndex ils sontspeacutecifiques agrave lrsquoapplication (macros decommunication macros speacutecifiques robosoft

macros speacutecifiques agrave lrsquoapplication)

Equipe Systegraveme Robotiseacute de ProductionCarte Robosoft MPC555La carte Robosoft MPC555 est conccedilue pour la commande de robot de veacutehicule

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4879

S y nd

e xV5

(1) Connecteur du chip MPC555(2) Alimentation continue(3) Interface BDM (Basic Debug Interface)(4) Entreacute Analogique (Joystickhellip)(5) EntreacuteSortie logiques(6) Ligne seacuterie Synchrone (Codeur absolu)(7) Ligne seacuterie Asynchrone (Port 0)

(8) Ligne seacuterie Asynchrone (Port 1)(9) Connecteur du bus CAN (Port 0)(10) Connecteur du bus CAN (Port 1)(11) Axe 1(13) Axe 2(14) Axe 3(15) Axe 4

La carte Robosoft MPC555 est conccedilue pour la commande de robot de veacutehiculeeacutelectrique ou toute autre machine Elle permet de commander un axe gracircce agrave

lrsquoajout drsquoune carte fille le controcircle srsquoeacutetend jusqursquoagrave 4 axesCette carte est baseacutee sur le microcontrocircleur MPC555 32-bit de MotorolaElle peut opeacuterer agrave une freacutequence

de 40 MHz Divers signauxlogique et analogique peuventecirctre utiliser pour lrsquoacquisition deet la commande de mateacuteriel Les

sorties disponibles peuvent ecirctreanalogique ou PWMOn y trouve

Equipe Systegraveme Robotiseacute de ProductionArchitecture du MPC555

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4979

S y nd

e xV5

Equipe Systegraveme Robotiseacute de Productionaract r st ques u

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5079

S y nd

e xV5

Equipe Systegraveme Robotiseacute de Productionacros n r quesbull GPIO (General-Purpose InputOutput)

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5179

S y nd

e xV5

GPIO (General Purpose InputOutput)ce macro utilise le module USIU qui lui fourni 64 pins pour desentreacuteessorties numeacuteriques ordinaires (IO de la carte Robosoft lirelrsquoeacutetat de la pince envoi de commande agrave la pince lire les alarmes)

bull QADC (Queued Analog to Digital Converter)en utilisant le module QADC ce macro permet la conversion drsquounsignal analogique en entreacutee en un signal numeacuterique multi-niveaux(lire les donneacutees du capteur drsquoeacuteffort du joystick)

bull MIOS (Modular InputOutput System)Le module MIOS fourni 16 pins drsquoES numeacuteriques Sur la carte deRobosoft tous les pins sont en sortie Les 16 pins sont reacutepartiscomme suit

utilisateurs reacuteserveacutes

les pins de 0 agrave 11 sont reacuteserveacutes car ils sont preacutevus agrave ecirctre utiliseacutes pour unmateacuteriel particulier Mais si ce mateacuteriel nrsquoest pas utiliseacute lrsquoutilisateur peut lesutiliser librement

15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

Equipe Systegraveme Robotiseacute de ProductionMacros Geacuteneacuter ques MPC55

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5279

S y nd

e xV5

bull PWM (Pulse width Modulation)utilise le module MIOS (pins de 4-7 pour la direction des moteurset de 8-11 pour la validation) pour la commande des actionneursnumeacuteriques en PWM

bull TPU (Time Processor Units)les macros lieacutes agrave ce module permettent la lecture des encodeurs

increacutementauxbull QSPI (Queued Serial Peripheral Interface)

ce module fait partie du module QSMCM et les macros lieacutes servent

agrave son initialisation pour une communication avec du mateacuterielsexternes via le bus seacuterie synchrone

Equipe Systegraveme Robotiseacute de ProductionMacros Geacuteneacuter ques MPC55

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5379

S y nd

e x

V5 bull Serial port support (Polling implementation)

le MPC555 comprend dans le module QSMCM une interface decommunication seacuterie SCI qui permet la communication avec dumateacuteriels externes via un bus seacuterie asynchrone Plusieurs macros

sont lieacutes agrave cette interface pour initialiser et eacutetablir la communicationbull Serial port support (interrupt handling implementation)

pour la mecircme interface SCI du module QSMCM pour cette

meacutethode drsquoimpleacutementation les macros lieacutes initialisent et eacutetablissentla communication en mode par interruption ce qui permet dedeacutetecter lrsquoarriveacutee des donneacutees sur le port seacuterie au lieu de le scruter

en permanence

tous ces macros on les retrouvent dans le fichier 555m4x

Equipe Systegraveme Robotiseacute de ProductionMacros Speacutec ques Ro oso tles macros suivants sont deacutedieacutes agrave la carte de Robosoft MPC555

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5479

S y nd

e x

V5

bull Initialisation de la carte Robosoftmain_ini_() macro ne doit pas ecirctre utiliser par les programmateursdu fait qursquoelle sert qursquoagrave initialiser la carte robosoft Macro interne agrave

syndex dont lrsquoappel est automatique lors de geacuteneacuteration drsquoexeacutecutifMPC555

bull DAC (Digital to Analog Converter)

macro permet lrsquoutilisation du convertisseur de carte robosoft via lemodule MIOs en utilisant les pins de 0 agrave 2

bull LED (on-bord LED interface)

macro permet la gestion de la LED de la carte robosoft connecteacuteeau module QSPI (pin PCS1)

bull SPI absolute encoder

macro permet lrsquoutilisation lrsquointerface du codeur absolu de la carterobosoft connecteacute au module QSPI

Equipe Systegraveme Robotiseacute de ProductionMacros Speacutec ques Ro oso tbull Motor amplifier direction

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5579

S y nd

e x

V5

Motor amplifier directionmacro qui permet de geacuterer la direction des moteurs

bull Motor power amplifier validationles moteurs embarqueacutes sur les robots sont eacutequipeacutes de freins

eacutelectriquement commandable Ce macro permet drsquoenvoyer unsignal drsquoinhibition pour deacutebloquer les freins

bull Watch dog

pour des raisons de seacutecuriteacute un meacutecanisme mateacuteriel que robosofta ajouteacute sur la carte Ce watch-dog vise agrave stopper lrsquoactiviteacute dumoteur en cas ougrave le programme plante Le watch est impleacutementeacute

comme un time-out mateacuteriel Srsquoil nrsquoest pas rafraicircchi peacuteriodiquement il transmet un signal de sortie ce qui enlegraveve lavalidation de lrsquoamplificateur de puissance donc lrsquoarrecirct dumouvement

ces macros se trouvent dans le fichier RSBm4x

Equipe Systegraveme Robotiseacute de Production

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5679

S y nd

e x

V5

Macros de Communicationchaque meacutedia de communication (bus CAN ) est une ressourceseacutequentielle ougrave les transferts de donneacutees entre processeurs doiventsuivre un certain ordre Donc ce macro de communication sert agravedeacutefinir cet ordre et agrave identifier le protocole de communication lecodagedeacutecodage de lrsquoinformation et la synchronisation

on trouve ces macros dans le fichier CANm4x

Macros drsquoapplicationce genre de macros sont speacutecifique au mateacuteriel en question et aussiagrave lrsquoapplication en particulier Ce sont des macros utilisateurs

on trouve ces macros dans le fichier Application_namem4x

Equipe Systegraveme Robotiseacute de Production

section include (pour inclure drsquoautres fichiers macro agrave utiliseStructure du fichier macr

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5779

S y nd

e x

V5

section define (pour tous les macros utilisateurs)MGC lsquoINITrsquo (MGC Macro Generation Context variable)

divert (declaration) (deacutebut du macro)

(deacuteclaration des variables des meacutemoires et des csts

divert (o)

MGC lsquolooprsquocode en assembleur code en C

dnl (commentaires)

MGC lsquoENDrsquo dnl (fin de la macros)divert lsquo lsquo dnl

macros MPC555meacutemoire MPC555

constante MPC555

macros RTAImeacutemoire RTAI

constante RTAI

Equipe Systegraveme Robotiseacute de Production Plan

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5879

S y nd

e x

V5

bull Introduction

bull Meacutethodologie AAA

bull Installationbull Utilisation du logiciel Syndex

bull Macrosbull LinuxIO un interface CC++ avec SynDEx

bull Exemple drsquoapplication Robuter-ULM

Equipe Systegraveme Robotiseacute de Production

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5979

S y nd

e x

V5

LinuxIO LinuxIO une interface une interface

CC++ avecCC++ avec SynDExSynDEx

bull Principe de basebull Utilisation de linuxIO_ par syndex

bull Utilisation de linuxIO_ par un programmeCC++

Equipe Systegraveme Robotiseacute de ProductionPrincipe de baseSyndex fourni une interface graphique pour la conception

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6079

S y nd

e x

V5

Syndex fourni une interface graphique pour la conception

drsquoapplications Par contre des fois nous avons besoin drsquoautresfonctionnaliteacutes non disponibles donc il faut les creacuteer Cependantgeacuteneacuterer des macros pour syndex srsquoavegravere difficile pour certains du

fait qursquoil faut avoir une bonne connaissance de la programmation bas niveau Dans ce cas lrsquoutilisation de linux_IO trouve sa placedans un contexte particulier interfacer des applications CC++utilisateurs avec des applications embarqueacutees temps reacuteeldeacuteveloppeacutees sous syndex

Par rapport agrave ce contexte de programmation lrsquoorganisation du

deacuteveloppement des applications est structureacutee en deux parties 1 Application haut niveau

2 Application bas niveau

Equipe Systegraveme Robotiseacute de ProductionPrincipe de base

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6179

S y nd

e x

V5

En reacutesumeacute lrsquoapplicationutilisateur contient une

partie haut niveau enCC++ et une partie basniveau sous syndex avecun eacutechange de donneacuteesentre les deux partie en

utilisant la couche RTAIde linux

Equipe Systegraveme Robotiseacute de Production pp cat on aut n veauOn entend application haut

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6279

S y nd

e x

V5

niveau tout programmecomme la planification detrajectoires strateacutegies de

navigation etc hellipLrsquoeacutechange de donneacutees sefait par le biais desmeacutemoires partageacutees quifont parti du noyau RTAI

et de lrsquoespace utilisateursde Linux

Toute ressource preacutesente sur la carte Robosoft peutecirctre partageacutee sans aune restriction

Equipe Systegraveme Robotiseacute de Production pp cat on as n veauUne application bas niveau

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6379

S y nd

e x

V5

Une application bas niveau

est un programme conccedilusous syndex comme lacommande des moteurs la

lecture des capteurs etc hellipLes ressources mateacuteriellessont controcircler par plusieurs

cartes MPC555 Ces cartessrsquoeacutechangent des donneacuteesvia le bus CAN Donc ES

est prise en charge par lasource logicielle deacutedieacutee quisrsquoexeacutecute dans les cartes MPC555 puis la couche RTAI

est utiliseacute pour la mise agrave jour de meacutemoires partageacutees pour lrsquoespace utilisateurs linux drsquoeacutechange de donneacutees

Equipe Systegraveme Robotiseacute de ProductionUtilisation de linux_IO par syndex

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6479

S y nd

e x

V5

Equipe Systegraveme Robotiseacute de ProductionUtilisation de linux_IO par syndex

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6579

S y nd

e x

V5

Equipe Systegraveme Robotiseacute de Production

5

Utilisation de linux_IO par syndex

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6679

S y nd

e x

V5

Degraves que la conception de lrsquoapplication sous syndex esttermineacutee et apregraves compilation (AdequationDo it +GenExec) un fichier drsquoentecircte sous le nom de linioh est

automatiquement geacuteneacutereacute Ce fichier contient lesinformations neacutecessaires pour acceacuteder aux entreacutees enlecture et aux sorties en eacutecriture des opeacuterations linuxIO_

inseacutereacutees dans le graphe drsquoalgorithme Le contenu de cefichier est organiseacute en plusieurs parties une pour chaqueopeacuteration linux_IO preacutesente dans le graphe

Equipe Systegraveme Robotiseacute de Production

5

Utilisation de linux_IO par syndex linioh auto-generated C users API frontend

C i h b f 2001 i i i b f f

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6779

S y nd

e x

V5 Copyright Robosoft 2001 Pierre Pomiers ltpierrerobosoftfrgt

LINUX IO shared memory data segments

define SEG0_BASE 0x10000typedef struct

int js_spd_o0

int js_str_o0

int enc_R_o0int enc_L_o0

double odo_X_o0

double odo_Y_o0

double odo_T_o0int spd_R_o0

int spd_L_o0

int time

unsigned char sem shm_seg0_def

Nom du segment de meacutemoire partageacutee pour notre opeacuteration linuxIO_

7 signaux drsquoentreacutees Ces valeurs sonten lecture et sont peacuteriodiquementrafraicircchies par RTAI

2 signaux de sorties Ces valeurs sonten eacutecriture et sont peacuteriodiquementrafraicircchies par RTAI

Equipe Systegraveme Robotiseacute de Production

5

Crsquoest une eacutetape tregraves facile il suffit drsquoinclure le fichier drsquoentecirctelinio h dans le code du fichier en CC++ comme suit

Utilisation de linuxIO_ par un programme CC+

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6879

S y nd

e x

V5 linioh dans le code du fichier en CC++ comme suit

include linioh

include ltrtai_shmhgt

static shm_seg0_def seg0

shm_seg0_def robot

seg0 = rtai_malloc (SEG0_BASE sizeof (shm_seg0_def))

if (seg0-gtsem = 0) bcopy (seg0 amprobot sizeof (shm_seg0_def))helliphelliphellip

helliphelliphellip bcopy (amprobot seg0 sizeof (shm_seg0_def))helliphelliphelliphelliphelliphellip

rtai_free (SEG0_BASE seg0)

fichier drsquoentecircte de la meacutemoire partageacutee fourni dans la couche RTAI de linux

Initialisation du segment SEG0_BASE Allocation de lameacutemoire pointeacutee

par seg0

Lecture des donneacutees provenant du bas

niveau

Mise agrave jours du segment de meacutemoire partageacutee

Libeacuterer le segment de meacutemoire alloueacute

Equipe Systegraveme Robotiseacute de Production

5

Plan

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6979

S y nd e x

V5

bull Introductionbull Meacutethodologie AAA

bull Installationbull Utilisation du logiciel Syndex

bull Macrosbull LinuxIO un interface CC++ avec SynDEx

bull Exemple drsquoapplication Robuter-ULM

Equipe Systegraveme Robotiseacute de Production

V5

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7079

S y nd e x

V5

Exemple dapplication Exemple dapplication Robuter Robuter--ULM ULM

Equipe Systegraveme Robotiseacute de Production

V5

Description Robuter-ULMbull Base mobile (2-RM 2-RF)

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7179

S y nd e x

V

bull Bras ultra-leacuteger 6 axesbull Ceinture 24 capteurs US

bull Capteur drsquoefforts 6 axes

bull Cameacutera CCD monochromeavec carte drsquoacquisition

bull PC embarqueacute MMX 233

bull OS linux redhat 61 avecRTAI V-13

bull 3 bouton drsquoarrecirct drsquourgence

bull 4 batteries 48 VDC 4 X12V 60 Ah

bull Entreacutee Joystick

bull Liaison Ethernet sans fil

Le manipulateur mobile Robuter-ULM comprend

Equipe Systegraveme Robotiseacute de Production

V5

Base Mobilebull dimension

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7279

S y nd e x

V

1025 mm de longueur 680 mm de largueur et 44 cm de hauteurbull Poids environ 150 kg avec les batteriesbull charge jusqursquoagrave 120 kg

bull vitesse de 5cms agrave 125 msbull Moteurs 2 X 300 W DC 48 VDCbull orientation par diffeacuterence de vitesse

bull Preacutecision Position par encodeurs optiquesbull Deux roues motrices diffeacuterentielles et de deux roues follesbull Drsquoune ceinture de 24 capteurs Ultrasons

bull Une carte MPC555 de Robosoft pour le controcircle des deuxmoteurs DC des 2 rouesbull Un systegraveme drsquoodomeacutetrie qui donne la position relative du robot

par rapport agrave son repegravere

Equipe Systegraveme Robotiseacute de Production

V5

bull dimension Faute de documentation

Bras U tra- eacuteger

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7379

S y nd e x

V Faute de documentation

bull Poids moins de 20 kgbull charge 2 kgbull Moteurs 6 moteurs DC

bull gripper pince eacutelectrique 2 doigtsbull Reacutepeacutetabiliteacute +- 1mmbull 3 carte MPC555 de Robosoft lrsquoune pour le capteur drsquoeffort et les

deux autres pour les 6 moteurs + moteur de la pincebull Position encodeur increacutemental

1 2 3 4 5 6Axisrange

plusmn90deg 0-90deg plusmn80deg plusmn100deg plusmn90deg plusmn110deg

vitesse 180degs 180degs 180degs 180degs 180degs 180degs

Equipe Systegraveme Robotiseacute de Production

V5

rc tecture ar ware

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7479

S y nd e x

V

Equipe Systegraveme Robotiseacute de Production

V5

Pro eacutemat quePlusieurs applications peuvent ecirctre impleacutementeacutees sur le robot

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7579

S y nd e x

V

Cependant il faut faire la diffeacuterence entre les applications quidemande lrsquoutilisation de syndex et les applications qui neneacutecessite qursquoune programmation en CC++ Agrave titre drsquoexemple

bull Localisationbull Commande en position

bull Commande en forcebull Navigation

bull Geacuteneacuteration de trajectoire

bull Vision

Equipe Systegraveme Robotiseacute de Production

V5 bull Pince eacutelectrique (TOR)

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7679

S y nd e x

Vq ( )

bull Pince possegravede des ES Logiques

Notre application consiste agrave

bull Recevoir lrsquoeacutetat de la pince (fermeacutee ouverte )

bull Envoyer une commande vers la pince

Capture

drsquoinformation

Open

Close

CommandeMeacutemoire

Partageacutee

Actionneur

Pince Prise de deacutecision Pince

Equipe Systegraveme Robotiseacute de Production

V5

Sc eacutema eacute ectr que

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7779

S y nd e x

Equipe Systegraveme Robotiseacute de Production

V5

Conclusion

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7879

S y nd e x bull Introduction

bull Meacutethodologie AAA

bull Installationbull Utilisation du logiciel Syndex

bull Macrosbull LinuxIO un interface CC++ avec SynDEx

bull Exemple drsquoapplication Robuter-ULM

Equipe Systegraveme Robotiseacute de Production

V5

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7979

S y nd e x

Questions

Page 48: Cours Syndex

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4879

S y nd

e xV5

(1) Connecteur du chip MPC555(2) Alimentation continue(3) Interface BDM (Basic Debug Interface)(4) Entreacute Analogique (Joystickhellip)(5) EntreacuteSortie logiques(6) Ligne seacuterie Synchrone (Codeur absolu)(7) Ligne seacuterie Asynchrone (Port 0)

(8) Ligne seacuterie Asynchrone (Port 1)(9) Connecteur du bus CAN (Port 0)(10) Connecteur du bus CAN (Port 1)(11) Axe 1(13) Axe 2(14) Axe 3(15) Axe 4

La carte Robosoft MPC555 est conccedilue pour la commande de robot de veacutehiculeeacutelectrique ou toute autre machine Elle permet de commander un axe gracircce agrave

lrsquoajout drsquoune carte fille le controcircle srsquoeacutetend jusqursquoagrave 4 axesCette carte est baseacutee sur le microcontrocircleur MPC555 32-bit de MotorolaElle peut opeacuterer agrave une freacutequence

de 40 MHz Divers signauxlogique et analogique peuventecirctre utiliser pour lrsquoacquisition deet la commande de mateacuteriel Les

sorties disponibles peuvent ecirctreanalogique ou PWMOn y trouve

Equipe Systegraveme Robotiseacute de ProductionArchitecture du MPC555

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4979

S y nd

e xV5

Equipe Systegraveme Robotiseacute de Productionaract r st ques u

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5079

S y nd

e xV5

Equipe Systegraveme Robotiseacute de Productionacros n r quesbull GPIO (General-Purpose InputOutput)

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5179

S y nd

e xV5

GPIO (General Purpose InputOutput)ce macro utilise le module USIU qui lui fourni 64 pins pour desentreacuteessorties numeacuteriques ordinaires (IO de la carte Robosoft lirelrsquoeacutetat de la pince envoi de commande agrave la pince lire les alarmes)

bull QADC (Queued Analog to Digital Converter)en utilisant le module QADC ce macro permet la conversion drsquounsignal analogique en entreacutee en un signal numeacuterique multi-niveaux(lire les donneacutees du capteur drsquoeacuteffort du joystick)

bull MIOS (Modular InputOutput System)Le module MIOS fourni 16 pins drsquoES numeacuteriques Sur la carte deRobosoft tous les pins sont en sortie Les 16 pins sont reacutepartiscomme suit

utilisateurs reacuteserveacutes

les pins de 0 agrave 11 sont reacuteserveacutes car ils sont preacutevus agrave ecirctre utiliseacutes pour unmateacuteriel particulier Mais si ce mateacuteriel nrsquoest pas utiliseacute lrsquoutilisateur peut lesutiliser librement

15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

Equipe Systegraveme Robotiseacute de ProductionMacros Geacuteneacuter ques MPC55

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5279

S y nd

e xV5

bull PWM (Pulse width Modulation)utilise le module MIOS (pins de 4-7 pour la direction des moteurset de 8-11 pour la validation) pour la commande des actionneursnumeacuteriques en PWM

bull TPU (Time Processor Units)les macros lieacutes agrave ce module permettent la lecture des encodeurs

increacutementauxbull QSPI (Queued Serial Peripheral Interface)

ce module fait partie du module QSMCM et les macros lieacutes servent

agrave son initialisation pour une communication avec du mateacuterielsexternes via le bus seacuterie synchrone

Equipe Systegraveme Robotiseacute de ProductionMacros Geacuteneacuter ques MPC55

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5379

S y nd

e x

V5 bull Serial port support (Polling implementation)

le MPC555 comprend dans le module QSMCM une interface decommunication seacuterie SCI qui permet la communication avec dumateacuteriels externes via un bus seacuterie asynchrone Plusieurs macros

sont lieacutes agrave cette interface pour initialiser et eacutetablir la communicationbull Serial port support (interrupt handling implementation)

pour la mecircme interface SCI du module QSMCM pour cette

meacutethode drsquoimpleacutementation les macros lieacutes initialisent et eacutetablissentla communication en mode par interruption ce qui permet dedeacutetecter lrsquoarriveacutee des donneacutees sur le port seacuterie au lieu de le scruter

en permanence

tous ces macros on les retrouvent dans le fichier 555m4x

Equipe Systegraveme Robotiseacute de ProductionMacros Speacutec ques Ro oso tles macros suivants sont deacutedieacutes agrave la carte de Robosoft MPC555

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5479

S y nd

e x

V5

bull Initialisation de la carte Robosoftmain_ini_() macro ne doit pas ecirctre utiliser par les programmateursdu fait qursquoelle sert qursquoagrave initialiser la carte robosoft Macro interne agrave

syndex dont lrsquoappel est automatique lors de geacuteneacuteration drsquoexeacutecutifMPC555

bull DAC (Digital to Analog Converter)

macro permet lrsquoutilisation du convertisseur de carte robosoft via lemodule MIOs en utilisant les pins de 0 agrave 2

bull LED (on-bord LED interface)

macro permet la gestion de la LED de la carte robosoft connecteacuteeau module QSPI (pin PCS1)

bull SPI absolute encoder

macro permet lrsquoutilisation lrsquointerface du codeur absolu de la carterobosoft connecteacute au module QSPI

Equipe Systegraveme Robotiseacute de ProductionMacros Speacutec ques Ro oso tbull Motor amplifier direction

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5579

S y nd

e x

V5

Motor amplifier directionmacro qui permet de geacuterer la direction des moteurs

bull Motor power amplifier validationles moteurs embarqueacutes sur les robots sont eacutequipeacutes de freins

eacutelectriquement commandable Ce macro permet drsquoenvoyer unsignal drsquoinhibition pour deacutebloquer les freins

bull Watch dog

pour des raisons de seacutecuriteacute un meacutecanisme mateacuteriel que robosofta ajouteacute sur la carte Ce watch-dog vise agrave stopper lrsquoactiviteacute dumoteur en cas ougrave le programme plante Le watch est impleacutementeacute

comme un time-out mateacuteriel Srsquoil nrsquoest pas rafraicircchi peacuteriodiquement il transmet un signal de sortie ce qui enlegraveve lavalidation de lrsquoamplificateur de puissance donc lrsquoarrecirct dumouvement

ces macros se trouvent dans le fichier RSBm4x

Equipe Systegraveme Robotiseacute de Production

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5679

S y nd

e x

V5

Macros de Communicationchaque meacutedia de communication (bus CAN ) est une ressourceseacutequentielle ougrave les transferts de donneacutees entre processeurs doiventsuivre un certain ordre Donc ce macro de communication sert agravedeacutefinir cet ordre et agrave identifier le protocole de communication lecodagedeacutecodage de lrsquoinformation et la synchronisation

on trouve ces macros dans le fichier CANm4x

Macros drsquoapplicationce genre de macros sont speacutecifique au mateacuteriel en question et aussiagrave lrsquoapplication en particulier Ce sont des macros utilisateurs

on trouve ces macros dans le fichier Application_namem4x

Equipe Systegraveme Robotiseacute de Production

section include (pour inclure drsquoautres fichiers macro agrave utiliseStructure du fichier macr

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5779

S y nd

e x

V5

section define (pour tous les macros utilisateurs)MGC lsquoINITrsquo (MGC Macro Generation Context variable)

divert (declaration) (deacutebut du macro)

(deacuteclaration des variables des meacutemoires et des csts

divert (o)

MGC lsquolooprsquocode en assembleur code en C

dnl (commentaires)

MGC lsquoENDrsquo dnl (fin de la macros)divert lsquo lsquo dnl

macros MPC555meacutemoire MPC555

constante MPC555

macros RTAImeacutemoire RTAI

constante RTAI

Equipe Systegraveme Robotiseacute de Production Plan

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5879

S y nd

e x

V5

bull Introduction

bull Meacutethodologie AAA

bull Installationbull Utilisation du logiciel Syndex

bull Macrosbull LinuxIO un interface CC++ avec SynDEx

bull Exemple drsquoapplication Robuter-ULM

Equipe Systegraveme Robotiseacute de Production

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5979

S y nd

e x

V5

LinuxIO LinuxIO une interface une interface

CC++ avecCC++ avec SynDExSynDEx

bull Principe de basebull Utilisation de linuxIO_ par syndex

bull Utilisation de linuxIO_ par un programmeCC++

Equipe Systegraveme Robotiseacute de ProductionPrincipe de baseSyndex fourni une interface graphique pour la conception

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6079

S y nd

e x

V5

Syndex fourni une interface graphique pour la conception

drsquoapplications Par contre des fois nous avons besoin drsquoautresfonctionnaliteacutes non disponibles donc il faut les creacuteer Cependantgeacuteneacuterer des macros pour syndex srsquoavegravere difficile pour certains du

fait qursquoil faut avoir une bonne connaissance de la programmation bas niveau Dans ce cas lrsquoutilisation de linux_IO trouve sa placedans un contexte particulier interfacer des applications CC++utilisateurs avec des applications embarqueacutees temps reacuteeldeacuteveloppeacutees sous syndex

Par rapport agrave ce contexte de programmation lrsquoorganisation du

deacuteveloppement des applications est structureacutee en deux parties 1 Application haut niveau

2 Application bas niveau

Equipe Systegraveme Robotiseacute de ProductionPrincipe de base

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6179

S y nd

e x

V5

En reacutesumeacute lrsquoapplicationutilisateur contient une

partie haut niveau enCC++ et une partie basniveau sous syndex avecun eacutechange de donneacuteesentre les deux partie en

utilisant la couche RTAIde linux

Equipe Systegraveme Robotiseacute de Production pp cat on aut n veauOn entend application haut

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6279

S y nd

e x

V5

niveau tout programmecomme la planification detrajectoires strateacutegies de

navigation etc hellipLrsquoeacutechange de donneacutees sefait par le biais desmeacutemoires partageacutees quifont parti du noyau RTAI

et de lrsquoespace utilisateursde Linux

Toute ressource preacutesente sur la carte Robosoft peutecirctre partageacutee sans aune restriction

Equipe Systegraveme Robotiseacute de Production pp cat on as n veauUne application bas niveau

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6379

S y nd

e x

V5

Une application bas niveau

est un programme conccedilusous syndex comme lacommande des moteurs la

lecture des capteurs etc hellipLes ressources mateacuteriellessont controcircler par plusieurs

cartes MPC555 Ces cartessrsquoeacutechangent des donneacuteesvia le bus CAN Donc ES

est prise en charge par lasource logicielle deacutedieacutee quisrsquoexeacutecute dans les cartes MPC555 puis la couche RTAI

est utiliseacute pour la mise agrave jour de meacutemoires partageacutees pour lrsquoespace utilisateurs linux drsquoeacutechange de donneacutees

Equipe Systegraveme Robotiseacute de ProductionUtilisation de linux_IO par syndex

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6479

S y nd

e x

V5

Equipe Systegraveme Robotiseacute de ProductionUtilisation de linux_IO par syndex

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6579

S y nd

e x

V5

Equipe Systegraveme Robotiseacute de Production

5

Utilisation de linux_IO par syndex

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6679

S y nd

e x

V5

Degraves que la conception de lrsquoapplication sous syndex esttermineacutee et apregraves compilation (AdequationDo it +GenExec) un fichier drsquoentecircte sous le nom de linioh est

automatiquement geacuteneacutereacute Ce fichier contient lesinformations neacutecessaires pour acceacuteder aux entreacutees enlecture et aux sorties en eacutecriture des opeacuterations linuxIO_

inseacutereacutees dans le graphe drsquoalgorithme Le contenu de cefichier est organiseacute en plusieurs parties une pour chaqueopeacuteration linux_IO preacutesente dans le graphe

Equipe Systegraveme Robotiseacute de Production

5

Utilisation de linux_IO par syndex linioh auto-generated C users API frontend

C i h b f 2001 i i i b f f

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6779

S y nd

e x

V5 Copyright Robosoft 2001 Pierre Pomiers ltpierrerobosoftfrgt

LINUX IO shared memory data segments

define SEG0_BASE 0x10000typedef struct

int js_spd_o0

int js_str_o0

int enc_R_o0int enc_L_o0

double odo_X_o0

double odo_Y_o0

double odo_T_o0int spd_R_o0

int spd_L_o0

int time

unsigned char sem shm_seg0_def

Nom du segment de meacutemoire partageacutee pour notre opeacuteration linuxIO_

7 signaux drsquoentreacutees Ces valeurs sonten lecture et sont peacuteriodiquementrafraicircchies par RTAI

2 signaux de sorties Ces valeurs sonten eacutecriture et sont peacuteriodiquementrafraicircchies par RTAI

Equipe Systegraveme Robotiseacute de Production

5

Crsquoest une eacutetape tregraves facile il suffit drsquoinclure le fichier drsquoentecirctelinio h dans le code du fichier en CC++ comme suit

Utilisation de linuxIO_ par un programme CC+

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6879

S y nd

e x

V5 linioh dans le code du fichier en CC++ comme suit

include linioh

include ltrtai_shmhgt

static shm_seg0_def seg0

shm_seg0_def robot

seg0 = rtai_malloc (SEG0_BASE sizeof (shm_seg0_def))

if (seg0-gtsem = 0) bcopy (seg0 amprobot sizeof (shm_seg0_def))helliphelliphellip

helliphelliphellip bcopy (amprobot seg0 sizeof (shm_seg0_def))helliphelliphelliphelliphelliphellip

rtai_free (SEG0_BASE seg0)

fichier drsquoentecircte de la meacutemoire partageacutee fourni dans la couche RTAI de linux

Initialisation du segment SEG0_BASE Allocation de lameacutemoire pointeacutee

par seg0

Lecture des donneacutees provenant du bas

niveau

Mise agrave jours du segment de meacutemoire partageacutee

Libeacuterer le segment de meacutemoire alloueacute

Equipe Systegraveme Robotiseacute de Production

5

Plan

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6979

S y nd e x

V5

bull Introductionbull Meacutethodologie AAA

bull Installationbull Utilisation du logiciel Syndex

bull Macrosbull LinuxIO un interface CC++ avec SynDEx

bull Exemple drsquoapplication Robuter-ULM

Equipe Systegraveme Robotiseacute de Production

V5

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7079

S y nd e x

V5

Exemple dapplication Exemple dapplication Robuter Robuter--ULM ULM

Equipe Systegraveme Robotiseacute de Production

V5

Description Robuter-ULMbull Base mobile (2-RM 2-RF)

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7179

S y nd e x

V

bull Bras ultra-leacuteger 6 axesbull Ceinture 24 capteurs US

bull Capteur drsquoefforts 6 axes

bull Cameacutera CCD monochromeavec carte drsquoacquisition

bull PC embarqueacute MMX 233

bull OS linux redhat 61 avecRTAI V-13

bull 3 bouton drsquoarrecirct drsquourgence

bull 4 batteries 48 VDC 4 X12V 60 Ah

bull Entreacutee Joystick

bull Liaison Ethernet sans fil

Le manipulateur mobile Robuter-ULM comprend

Equipe Systegraveme Robotiseacute de Production

V5

Base Mobilebull dimension

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7279

S y nd e x

V

1025 mm de longueur 680 mm de largueur et 44 cm de hauteurbull Poids environ 150 kg avec les batteriesbull charge jusqursquoagrave 120 kg

bull vitesse de 5cms agrave 125 msbull Moteurs 2 X 300 W DC 48 VDCbull orientation par diffeacuterence de vitesse

bull Preacutecision Position par encodeurs optiquesbull Deux roues motrices diffeacuterentielles et de deux roues follesbull Drsquoune ceinture de 24 capteurs Ultrasons

bull Une carte MPC555 de Robosoft pour le controcircle des deuxmoteurs DC des 2 rouesbull Un systegraveme drsquoodomeacutetrie qui donne la position relative du robot

par rapport agrave son repegravere

Equipe Systegraveme Robotiseacute de Production

V5

bull dimension Faute de documentation

Bras U tra- eacuteger

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7379

S y nd e x

V Faute de documentation

bull Poids moins de 20 kgbull charge 2 kgbull Moteurs 6 moteurs DC

bull gripper pince eacutelectrique 2 doigtsbull Reacutepeacutetabiliteacute +- 1mmbull 3 carte MPC555 de Robosoft lrsquoune pour le capteur drsquoeffort et les

deux autres pour les 6 moteurs + moteur de la pincebull Position encodeur increacutemental

1 2 3 4 5 6Axisrange

plusmn90deg 0-90deg plusmn80deg plusmn100deg plusmn90deg plusmn110deg

vitesse 180degs 180degs 180degs 180degs 180degs 180degs

Equipe Systegraveme Robotiseacute de Production

V5

rc tecture ar ware

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7479

S y nd e x

V

Equipe Systegraveme Robotiseacute de Production

V5

Pro eacutemat quePlusieurs applications peuvent ecirctre impleacutementeacutees sur le robot

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7579

S y nd e x

V

Cependant il faut faire la diffeacuterence entre les applications quidemande lrsquoutilisation de syndex et les applications qui neneacutecessite qursquoune programmation en CC++ Agrave titre drsquoexemple

bull Localisationbull Commande en position

bull Commande en forcebull Navigation

bull Geacuteneacuteration de trajectoire

bull Vision

Equipe Systegraveme Robotiseacute de Production

V5 bull Pince eacutelectrique (TOR)

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7679

S y nd e x

Vq ( )

bull Pince possegravede des ES Logiques

Notre application consiste agrave

bull Recevoir lrsquoeacutetat de la pince (fermeacutee ouverte )

bull Envoyer une commande vers la pince

Capture

drsquoinformation

Open

Close

CommandeMeacutemoire

Partageacutee

Actionneur

Pince Prise de deacutecision Pince

Equipe Systegraveme Robotiseacute de Production

V5

Sc eacutema eacute ectr que

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7779

S y nd e x

Equipe Systegraveme Robotiseacute de Production

V5

Conclusion

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7879

S y nd e x bull Introduction

bull Meacutethodologie AAA

bull Installationbull Utilisation du logiciel Syndex

bull Macrosbull LinuxIO un interface CC++ avec SynDEx

bull Exemple drsquoapplication Robuter-ULM

Equipe Systegraveme Robotiseacute de Production

V5

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7979

S y nd e x

Questions

Page 49: Cours Syndex

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 4979

S y nd

e xV5

Equipe Systegraveme Robotiseacute de Productionaract r st ques u

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5079

S y nd

e xV5

Equipe Systegraveme Robotiseacute de Productionacros n r quesbull GPIO (General-Purpose InputOutput)

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5179

S y nd

e xV5

GPIO (General Purpose InputOutput)ce macro utilise le module USIU qui lui fourni 64 pins pour desentreacuteessorties numeacuteriques ordinaires (IO de la carte Robosoft lirelrsquoeacutetat de la pince envoi de commande agrave la pince lire les alarmes)

bull QADC (Queued Analog to Digital Converter)en utilisant le module QADC ce macro permet la conversion drsquounsignal analogique en entreacutee en un signal numeacuterique multi-niveaux(lire les donneacutees du capteur drsquoeacuteffort du joystick)

bull MIOS (Modular InputOutput System)Le module MIOS fourni 16 pins drsquoES numeacuteriques Sur la carte deRobosoft tous les pins sont en sortie Les 16 pins sont reacutepartiscomme suit

utilisateurs reacuteserveacutes

les pins de 0 agrave 11 sont reacuteserveacutes car ils sont preacutevus agrave ecirctre utiliseacutes pour unmateacuteriel particulier Mais si ce mateacuteriel nrsquoest pas utiliseacute lrsquoutilisateur peut lesutiliser librement

15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

Equipe Systegraveme Robotiseacute de ProductionMacros Geacuteneacuter ques MPC55

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5279

S y nd

e xV5

bull PWM (Pulse width Modulation)utilise le module MIOS (pins de 4-7 pour la direction des moteurset de 8-11 pour la validation) pour la commande des actionneursnumeacuteriques en PWM

bull TPU (Time Processor Units)les macros lieacutes agrave ce module permettent la lecture des encodeurs

increacutementauxbull QSPI (Queued Serial Peripheral Interface)

ce module fait partie du module QSMCM et les macros lieacutes servent

agrave son initialisation pour une communication avec du mateacuterielsexternes via le bus seacuterie synchrone

Equipe Systegraveme Robotiseacute de ProductionMacros Geacuteneacuter ques MPC55

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5379

S y nd

e x

V5 bull Serial port support (Polling implementation)

le MPC555 comprend dans le module QSMCM une interface decommunication seacuterie SCI qui permet la communication avec dumateacuteriels externes via un bus seacuterie asynchrone Plusieurs macros

sont lieacutes agrave cette interface pour initialiser et eacutetablir la communicationbull Serial port support (interrupt handling implementation)

pour la mecircme interface SCI du module QSMCM pour cette

meacutethode drsquoimpleacutementation les macros lieacutes initialisent et eacutetablissentla communication en mode par interruption ce qui permet dedeacutetecter lrsquoarriveacutee des donneacutees sur le port seacuterie au lieu de le scruter

en permanence

tous ces macros on les retrouvent dans le fichier 555m4x

Equipe Systegraveme Robotiseacute de ProductionMacros Speacutec ques Ro oso tles macros suivants sont deacutedieacutes agrave la carte de Robosoft MPC555

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5479

S y nd

e x

V5

bull Initialisation de la carte Robosoftmain_ini_() macro ne doit pas ecirctre utiliser par les programmateursdu fait qursquoelle sert qursquoagrave initialiser la carte robosoft Macro interne agrave

syndex dont lrsquoappel est automatique lors de geacuteneacuteration drsquoexeacutecutifMPC555

bull DAC (Digital to Analog Converter)

macro permet lrsquoutilisation du convertisseur de carte robosoft via lemodule MIOs en utilisant les pins de 0 agrave 2

bull LED (on-bord LED interface)

macro permet la gestion de la LED de la carte robosoft connecteacuteeau module QSPI (pin PCS1)

bull SPI absolute encoder

macro permet lrsquoutilisation lrsquointerface du codeur absolu de la carterobosoft connecteacute au module QSPI

Equipe Systegraveme Robotiseacute de ProductionMacros Speacutec ques Ro oso tbull Motor amplifier direction

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5579

S y nd

e x

V5

Motor amplifier directionmacro qui permet de geacuterer la direction des moteurs

bull Motor power amplifier validationles moteurs embarqueacutes sur les robots sont eacutequipeacutes de freins

eacutelectriquement commandable Ce macro permet drsquoenvoyer unsignal drsquoinhibition pour deacutebloquer les freins

bull Watch dog

pour des raisons de seacutecuriteacute un meacutecanisme mateacuteriel que robosofta ajouteacute sur la carte Ce watch-dog vise agrave stopper lrsquoactiviteacute dumoteur en cas ougrave le programme plante Le watch est impleacutementeacute

comme un time-out mateacuteriel Srsquoil nrsquoest pas rafraicircchi peacuteriodiquement il transmet un signal de sortie ce qui enlegraveve lavalidation de lrsquoamplificateur de puissance donc lrsquoarrecirct dumouvement

ces macros se trouvent dans le fichier RSBm4x

Equipe Systegraveme Robotiseacute de Production

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5679

S y nd

e x

V5

Macros de Communicationchaque meacutedia de communication (bus CAN ) est une ressourceseacutequentielle ougrave les transferts de donneacutees entre processeurs doiventsuivre un certain ordre Donc ce macro de communication sert agravedeacutefinir cet ordre et agrave identifier le protocole de communication lecodagedeacutecodage de lrsquoinformation et la synchronisation

on trouve ces macros dans le fichier CANm4x

Macros drsquoapplicationce genre de macros sont speacutecifique au mateacuteriel en question et aussiagrave lrsquoapplication en particulier Ce sont des macros utilisateurs

on trouve ces macros dans le fichier Application_namem4x

Equipe Systegraveme Robotiseacute de Production

section include (pour inclure drsquoautres fichiers macro agrave utiliseStructure du fichier macr

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5779

S y nd

e x

V5

section define (pour tous les macros utilisateurs)MGC lsquoINITrsquo (MGC Macro Generation Context variable)

divert (declaration) (deacutebut du macro)

(deacuteclaration des variables des meacutemoires et des csts

divert (o)

MGC lsquolooprsquocode en assembleur code en C

dnl (commentaires)

MGC lsquoENDrsquo dnl (fin de la macros)divert lsquo lsquo dnl

macros MPC555meacutemoire MPC555

constante MPC555

macros RTAImeacutemoire RTAI

constante RTAI

Equipe Systegraveme Robotiseacute de Production Plan

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5879

S y nd

e x

V5

bull Introduction

bull Meacutethodologie AAA

bull Installationbull Utilisation du logiciel Syndex

bull Macrosbull LinuxIO un interface CC++ avec SynDEx

bull Exemple drsquoapplication Robuter-ULM

Equipe Systegraveme Robotiseacute de Production

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5979

S y nd

e x

V5

LinuxIO LinuxIO une interface une interface

CC++ avecCC++ avec SynDExSynDEx

bull Principe de basebull Utilisation de linuxIO_ par syndex

bull Utilisation de linuxIO_ par un programmeCC++

Equipe Systegraveme Robotiseacute de ProductionPrincipe de baseSyndex fourni une interface graphique pour la conception

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6079

S y nd

e x

V5

Syndex fourni une interface graphique pour la conception

drsquoapplications Par contre des fois nous avons besoin drsquoautresfonctionnaliteacutes non disponibles donc il faut les creacuteer Cependantgeacuteneacuterer des macros pour syndex srsquoavegravere difficile pour certains du

fait qursquoil faut avoir une bonne connaissance de la programmation bas niveau Dans ce cas lrsquoutilisation de linux_IO trouve sa placedans un contexte particulier interfacer des applications CC++utilisateurs avec des applications embarqueacutees temps reacuteeldeacuteveloppeacutees sous syndex

Par rapport agrave ce contexte de programmation lrsquoorganisation du

deacuteveloppement des applications est structureacutee en deux parties 1 Application haut niveau

2 Application bas niveau

Equipe Systegraveme Robotiseacute de ProductionPrincipe de base

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6179

S y nd

e x

V5

En reacutesumeacute lrsquoapplicationutilisateur contient une

partie haut niveau enCC++ et une partie basniveau sous syndex avecun eacutechange de donneacuteesentre les deux partie en

utilisant la couche RTAIde linux

Equipe Systegraveme Robotiseacute de Production pp cat on aut n veauOn entend application haut

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6279

S y nd

e x

V5

niveau tout programmecomme la planification detrajectoires strateacutegies de

navigation etc hellipLrsquoeacutechange de donneacutees sefait par le biais desmeacutemoires partageacutees quifont parti du noyau RTAI

et de lrsquoespace utilisateursde Linux

Toute ressource preacutesente sur la carte Robosoft peutecirctre partageacutee sans aune restriction

Equipe Systegraveme Robotiseacute de Production pp cat on as n veauUne application bas niveau

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6379

S y nd

e x

V5

Une application bas niveau

est un programme conccedilusous syndex comme lacommande des moteurs la

lecture des capteurs etc hellipLes ressources mateacuteriellessont controcircler par plusieurs

cartes MPC555 Ces cartessrsquoeacutechangent des donneacuteesvia le bus CAN Donc ES

est prise en charge par lasource logicielle deacutedieacutee quisrsquoexeacutecute dans les cartes MPC555 puis la couche RTAI

est utiliseacute pour la mise agrave jour de meacutemoires partageacutees pour lrsquoespace utilisateurs linux drsquoeacutechange de donneacutees

Equipe Systegraveme Robotiseacute de ProductionUtilisation de linux_IO par syndex

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6479

S y nd

e x

V5

Equipe Systegraveme Robotiseacute de ProductionUtilisation de linux_IO par syndex

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6579

S y nd

e x

V5

Equipe Systegraveme Robotiseacute de Production

5

Utilisation de linux_IO par syndex

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6679

S y nd

e x

V5

Degraves que la conception de lrsquoapplication sous syndex esttermineacutee et apregraves compilation (AdequationDo it +GenExec) un fichier drsquoentecircte sous le nom de linioh est

automatiquement geacuteneacutereacute Ce fichier contient lesinformations neacutecessaires pour acceacuteder aux entreacutees enlecture et aux sorties en eacutecriture des opeacuterations linuxIO_

inseacutereacutees dans le graphe drsquoalgorithme Le contenu de cefichier est organiseacute en plusieurs parties une pour chaqueopeacuteration linux_IO preacutesente dans le graphe

Equipe Systegraveme Robotiseacute de Production

5

Utilisation de linux_IO par syndex linioh auto-generated C users API frontend

C i h b f 2001 i i i b f f

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6779

S y nd

e x

V5 Copyright Robosoft 2001 Pierre Pomiers ltpierrerobosoftfrgt

LINUX IO shared memory data segments

define SEG0_BASE 0x10000typedef struct

int js_spd_o0

int js_str_o0

int enc_R_o0int enc_L_o0

double odo_X_o0

double odo_Y_o0

double odo_T_o0int spd_R_o0

int spd_L_o0

int time

unsigned char sem shm_seg0_def

Nom du segment de meacutemoire partageacutee pour notre opeacuteration linuxIO_

7 signaux drsquoentreacutees Ces valeurs sonten lecture et sont peacuteriodiquementrafraicircchies par RTAI

2 signaux de sorties Ces valeurs sonten eacutecriture et sont peacuteriodiquementrafraicircchies par RTAI

Equipe Systegraveme Robotiseacute de Production

5

Crsquoest une eacutetape tregraves facile il suffit drsquoinclure le fichier drsquoentecirctelinio h dans le code du fichier en CC++ comme suit

Utilisation de linuxIO_ par un programme CC+

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6879

S y nd

e x

V5 linioh dans le code du fichier en CC++ comme suit

include linioh

include ltrtai_shmhgt

static shm_seg0_def seg0

shm_seg0_def robot

seg0 = rtai_malloc (SEG0_BASE sizeof (shm_seg0_def))

if (seg0-gtsem = 0) bcopy (seg0 amprobot sizeof (shm_seg0_def))helliphelliphellip

helliphelliphellip bcopy (amprobot seg0 sizeof (shm_seg0_def))helliphelliphelliphelliphelliphellip

rtai_free (SEG0_BASE seg0)

fichier drsquoentecircte de la meacutemoire partageacutee fourni dans la couche RTAI de linux

Initialisation du segment SEG0_BASE Allocation de lameacutemoire pointeacutee

par seg0

Lecture des donneacutees provenant du bas

niveau

Mise agrave jours du segment de meacutemoire partageacutee

Libeacuterer le segment de meacutemoire alloueacute

Equipe Systegraveme Robotiseacute de Production

5

Plan

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6979

S y nd e x

V5

bull Introductionbull Meacutethodologie AAA

bull Installationbull Utilisation du logiciel Syndex

bull Macrosbull LinuxIO un interface CC++ avec SynDEx

bull Exemple drsquoapplication Robuter-ULM

Equipe Systegraveme Robotiseacute de Production

V5

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7079

S y nd e x

V5

Exemple dapplication Exemple dapplication Robuter Robuter--ULM ULM

Equipe Systegraveme Robotiseacute de Production

V5

Description Robuter-ULMbull Base mobile (2-RM 2-RF)

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7179

S y nd e x

V

bull Bras ultra-leacuteger 6 axesbull Ceinture 24 capteurs US

bull Capteur drsquoefforts 6 axes

bull Cameacutera CCD monochromeavec carte drsquoacquisition

bull PC embarqueacute MMX 233

bull OS linux redhat 61 avecRTAI V-13

bull 3 bouton drsquoarrecirct drsquourgence

bull 4 batteries 48 VDC 4 X12V 60 Ah

bull Entreacutee Joystick

bull Liaison Ethernet sans fil

Le manipulateur mobile Robuter-ULM comprend

Equipe Systegraveme Robotiseacute de Production

V5

Base Mobilebull dimension

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7279

S y nd e x

V

1025 mm de longueur 680 mm de largueur et 44 cm de hauteurbull Poids environ 150 kg avec les batteriesbull charge jusqursquoagrave 120 kg

bull vitesse de 5cms agrave 125 msbull Moteurs 2 X 300 W DC 48 VDCbull orientation par diffeacuterence de vitesse

bull Preacutecision Position par encodeurs optiquesbull Deux roues motrices diffeacuterentielles et de deux roues follesbull Drsquoune ceinture de 24 capteurs Ultrasons

bull Une carte MPC555 de Robosoft pour le controcircle des deuxmoteurs DC des 2 rouesbull Un systegraveme drsquoodomeacutetrie qui donne la position relative du robot

par rapport agrave son repegravere

Equipe Systegraveme Robotiseacute de Production

V5

bull dimension Faute de documentation

Bras U tra- eacuteger

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7379

S y nd e x

V Faute de documentation

bull Poids moins de 20 kgbull charge 2 kgbull Moteurs 6 moteurs DC

bull gripper pince eacutelectrique 2 doigtsbull Reacutepeacutetabiliteacute +- 1mmbull 3 carte MPC555 de Robosoft lrsquoune pour le capteur drsquoeffort et les

deux autres pour les 6 moteurs + moteur de la pincebull Position encodeur increacutemental

1 2 3 4 5 6Axisrange

plusmn90deg 0-90deg plusmn80deg plusmn100deg plusmn90deg plusmn110deg

vitesse 180degs 180degs 180degs 180degs 180degs 180degs

Equipe Systegraveme Robotiseacute de Production

V5

rc tecture ar ware

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7479

S y nd e x

V

Equipe Systegraveme Robotiseacute de Production

V5

Pro eacutemat quePlusieurs applications peuvent ecirctre impleacutementeacutees sur le robot

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7579

S y nd e x

V

Cependant il faut faire la diffeacuterence entre les applications quidemande lrsquoutilisation de syndex et les applications qui neneacutecessite qursquoune programmation en CC++ Agrave titre drsquoexemple

bull Localisationbull Commande en position

bull Commande en forcebull Navigation

bull Geacuteneacuteration de trajectoire

bull Vision

Equipe Systegraveme Robotiseacute de Production

V5 bull Pince eacutelectrique (TOR)

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7679

S y nd e x

Vq ( )

bull Pince possegravede des ES Logiques

Notre application consiste agrave

bull Recevoir lrsquoeacutetat de la pince (fermeacutee ouverte )

bull Envoyer une commande vers la pince

Capture

drsquoinformation

Open

Close

CommandeMeacutemoire

Partageacutee

Actionneur

Pince Prise de deacutecision Pince

Equipe Systegraveme Robotiseacute de Production

V5

Sc eacutema eacute ectr que

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7779

S y nd e x

Equipe Systegraveme Robotiseacute de Production

V5

Conclusion

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7879

S y nd e x bull Introduction

bull Meacutethodologie AAA

bull Installationbull Utilisation du logiciel Syndex

bull Macrosbull LinuxIO un interface CC++ avec SynDEx

bull Exemple drsquoapplication Robuter-ULM

Equipe Systegraveme Robotiseacute de Production

V5

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7979

S y nd e x

Questions

Page 50: Cours Syndex

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5079

S y nd

e xV5

Equipe Systegraveme Robotiseacute de Productionacros n r quesbull GPIO (General-Purpose InputOutput)

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5179

S y nd

e xV5

GPIO (General Purpose InputOutput)ce macro utilise le module USIU qui lui fourni 64 pins pour desentreacuteessorties numeacuteriques ordinaires (IO de la carte Robosoft lirelrsquoeacutetat de la pince envoi de commande agrave la pince lire les alarmes)

bull QADC (Queued Analog to Digital Converter)en utilisant le module QADC ce macro permet la conversion drsquounsignal analogique en entreacutee en un signal numeacuterique multi-niveaux(lire les donneacutees du capteur drsquoeacuteffort du joystick)

bull MIOS (Modular InputOutput System)Le module MIOS fourni 16 pins drsquoES numeacuteriques Sur la carte deRobosoft tous les pins sont en sortie Les 16 pins sont reacutepartiscomme suit

utilisateurs reacuteserveacutes

les pins de 0 agrave 11 sont reacuteserveacutes car ils sont preacutevus agrave ecirctre utiliseacutes pour unmateacuteriel particulier Mais si ce mateacuteriel nrsquoest pas utiliseacute lrsquoutilisateur peut lesutiliser librement

15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

Equipe Systegraveme Robotiseacute de ProductionMacros Geacuteneacuter ques MPC55

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5279

S y nd

e xV5

bull PWM (Pulse width Modulation)utilise le module MIOS (pins de 4-7 pour la direction des moteurset de 8-11 pour la validation) pour la commande des actionneursnumeacuteriques en PWM

bull TPU (Time Processor Units)les macros lieacutes agrave ce module permettent la lecture des encodeurs

increacutementauxbull QSPI (Queued Serial Peripheral Interface)

ce module fait partie du module QSMCM et les macros lieacutes servent

agrave son initialisation pour une communication avec du mateacuterielsexternes via le bus seacuterie synchrone

Equipe Systegraveme Robotiseacute de ProductionMacros Geacuteneacuter ques MPC55

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5379

S y nd

e x

V5 bull Serial port support (Polling implementation)

le MPC555 comprend dans le module QSMCM une interface decommunication seacuterie SCI qui permet la communication avec dumateacuteriels externes via un bus seacuterie asynchrone Plusieurs macros

sont lieacutes agrave cette interface pour initialiser et eacutetablir la communicationbull Serial port support (interrupt handling implementation)

pour la mecircme interface SCI du module QSMCM pour cette

meacutethode drsquoimpleacutementation les macros lieacutes initialisent et eacutetablissentla communication en mode par interruption ce qui permet dedeacutetecter lrsquoarriveacutee des donneacutees sur le port seacuterie au lieu de le scruter

en permanence

tous ces macros on les retrouvent dans le fichier 555m4x

Equipe Systegraveme Robotiseacute de ProductionMacros Speacutec ques Ro oso tles macros suivants sont deacutedieacutes agrave la carte de Robosoft MPC555

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5479

S y nd

e x

V5

bull Initialisation de la carte Robosoftmain_ini_() macro ne doit pas ecirctre utiliser par les programmateursdu fait qursquoelle sert qursquoagrave initialiser la carte robosoft Macro interne agrave

syndex dont lrsquoappel est automatique lors de geacuteneacuteration drsquoexeacutecutifMPC555

bull DAC (Digital to Analog Converter)

macro permet lrsquoutilisation du convertisseur de carte robosoft via lemodule MIOs en utilisant les pins de 0 agrave 2

bull LED (on-bord LED interface)

macro permet la gestion de la LED de la carte robosoft connecteacuteeau module QSPI (pin PCS1)

bull SPI absolute encoder

macro permet lrsquoutilisation lrsquointerface du codeur absolu de la carterobosoft connecteacute au module QSPI

Equipe Systegraveme Robotiseacute de ProductionMacros Speacutec ques Ro oso tbull Motor amplifier direction

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5579

S y nd

e x

V5

Motor amplifier directionmacro qui permet de geacuterer la direction des moteurs

bull Motor power amplifier validationles moteurs embarqueacutes sur les robots sont eacutequipeacutes de freins

eacutelectriquement commandable Ce macro permet drsquoenvoyer unsignal drsquoinhibition pour deacutebloquer les freins

bull Watch dog

pour des raisons de seacutecuriteacute un meacutecanisme mateacuteriel que robosofta ajouteacute sur la carte Ce watch-dog vise agrave stopper lrsquoactiviteacute dumoteur en cas ougrave le programme plante Le watch est impleacutementeacute

comme un time-out mateacuteriel Srsquoil nrsquoest pas rafraicircchi peacuteriodiquement il transmet un signal de sortie ce qui enlegraveve lavalidation de lrsquoamplificateur de puissance donc lrsquoarrecirct dumouvement

ces macros se trouvent dans le fichier RSBm4x

Equipe Systegraveme Robotiseacute de Production

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5679

S y nd

e x

V5

Macros de Communicationchaque meacutedia de communication (bus CAN ) est une ressourceseacutequentielle ougrave les transferts de donneacutees entre processeurs doiventsuivre un certain ordre Donc ce macro de communication sert agravedeacutefinir cet ordre et agrave identifier le protocole de communication lecodagedeacutecodage de lrsquoinformation et la synchronisation

on trouve ces macros dans le fichier CANm4x

Macros drsquoapplicationce genre de macros sont speacutecifique au mateacuteriel en question et aussiagrave lrsquoapplication en particulier Ce sont des macros utilisateurs

on trouve ces macros dans le fichier Application_namem4x

Equipe Systegraveme Robotiseacute de Production

section include (pour inclure drsquoautres fichiers macro agrave utiliseStructure du fichier macr

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5779

S y nd

e x

V5

section define (pour tous les macros utilisateurs)MGC lsquoINITrsquo (MGC Macro Generation Context variable)

divert (declaration) (deacutebut du macro)

(deacuteclaration des variables des meacutemoires et des csts

divert (o)

MGC lsquolooprsquocode en assembleur code en C

dnl (commentaires)

MGC lsquoENDrsquo dnl (fin de la macros)divert lsquo lsquo dnl

macros MPC555meacutemoire MPC555

constante MPC555

macros RTAImeacutemoire RTAI

constante RTAI

Equipe Systegraveme Robotiseacute de Production Plan

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5879

S y nd

e x

V5

bull Introduction

bull Meacutethodologie AAA

bull Installationbull Utilisation du logiciel Syndex

bull Macrosbull LinuxIO un interface CC++ avec SynDEx

bull Exemple drsquoapplication Robuter-ULM

Equipe Systegraveme Robotiseacute de Production

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5979

S y nd

e x

V5

LinuxIO LinuxIO une interface une interface

CC++ avecCC++ avec SynDExSynDEx

bull Principe de basebull Utilisation de linuxIO_ par syndex

bull Utilisation de linuxIO_ par un programmeCC++

Equipe Systegraveme Robotiseacute de ProductionPrincipe de baseSyndex fourni une interface graphique pour la conception

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6079

S y nd

e x

V5

Syndex fourni une interface graphique pour la conception

drsquoapplications Par contre des fois nous avons besoin drsquoautresfonctionnaliteacutes non disponibles donc il faut les creacuteer Cependantgeacuteneacuterer des macros pour syndex srsquoavegravere difficile pour certains du

fait qursquoil faut avoir une bonne connaissance de la programmation bas niveau Dans ce cas lrsquoutilisation de linux_IO trouve sa placedans un contexte particulier interfacer des applications CC++utilisateurs avec des applications embarqueacutees temps reacuteeldeacuteveloppeacutees sous syndex

Par rapport agrave ce contexte de programmation lrsquoorganisation du

deacuteveloppement des applications est structureacutee en deux parties 1 Application haut niveau

2 Application bas niveau

Equipe Systegraveme Robotiseacute de ProductionPrincipe de base

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6179

S y nd

e x

V5

En reacutesumeacute lrsquoapplicationutilisateur contient une

partie haut niveau enCC++ et une partie basniveau sous syndex avecun eacutechange de donneacuteesentre les deux partie en

utilisant la couche RTAIde linux

Equipe Systegraveme Robotiseacute de Production pp cat on aut n veauOn entend application haut

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6279

S y nd

e x

V5

niveau tout programmecomme la planification detrajectoires strateacutegies de

navigation etc hellipLrsquoeacutechange de donneacutees sefait par le biais desmeacutemoires partageacutees quifont parti du noyau RTAI

et de lrsquoespace utilisateursde Linux

Toute ressource preacutesente sur la carte Robosoft peutecirctre partageacutee sans aune restriction

Equipe Systegraveme Robotiseacute de Production pp cat on as n veauUne application bas niveau

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6379

S y nd

e x

V5

Une application bas niveau

est un programme conccedilusous syndex comme lacommande des moteurs la

lecture des capteurs etc hellipLes ressources mateacuteriellessont controcircler par plusieurs

cartes MPC555 Ces cartessrsquoeacutechangent des donneacuteesvia le bus CAN Donc ES

est prise en charge par lasource logicielle deacutedieacutee quisrsquoexeacutecute dans les cartes MPC555 puis la couche RTAI

est utiliseacute pour la mise agrave jour de meacutemoires partageacutees pour lrsquoespace utilisateurs linux drsquoeacutechange de donneacutees

Equipe Systegraveme Robotiseacute de ProductionUtilisation de linux_IO par syndex

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6479

S y nd

e x

V5

Equipe Systegraveme Robotiseacute de ProductionUtilisation de linux_IO par syndex

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6579

S y nd

e x

V5

Equipe Systegraveme Robotiseacute de Production

5

Utilisation de linux_IO par syndex

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6679

S y nd

e x

V5

Degraves que la conception de lrsquoapplication sous syndex esttermineacutee et apregraves compilation (AdequationDo it +GenExec) un fichier drsquoentecircte sous le nom de linioh est

automatiquement geacuteneacutereacute Ce fichier contient lesinformations neacutecessaires pour acceacuteder aux entreacutees enlecture et aux sorties en eacutecriture des opeacuterations linuxIO_

inseacutereacutees dans le graphe drsquoalgorithme Le contenu de cefichier est organiseacute en plusieurs parties une pour chaqueopeacuteration linux_IO preacutesente dans le graphe

Equipe Systegraveme Robotiseacute de Production

5

Utilisation de linux_IO par syndex linioh auto-generated C users API frontend

C i h b f 2001 i i i b f f

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6779

S y nd

e x

V5 Copyright Robosoft 2001 Pierre Pomiers ltpierrerobosoftfrgt

LINUX IO shared memory data segments

define SEG0_BASE 0x10000typedef struct

int js_spd_o0

int js_str_o0

int enc_R_o0int enc_L_o0

double odo_X_o0

double odo_Y_o0

double odo_T_o0int spd_R_o0

int spd_L_o0

int time

unsigned char sem shm_seg0_def

Nom du segment de meacutemoire partageacutee pour notre opeacuteration linuxIO_

7 signaux drsquoentreacutees Ces valeurs sonten lecture et sont peacuteriodiquementrafraicircchies par RTAI

2 signaux de sorties Ces valeurs sonten eacutecriture et sont peacuteriodiquementrafraicircchies par RTAI

Equipe Systegraveme Robotiseacute de Production

5

Crsquoest une eacutetape tregraves facile il suffit drsquoinclure le fichier drsquoentecirctelinio h dans le code du fichier en CC++ comme suit

Utilisation de linuxIO_ par un programme CC+

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6879

S y nd

e x

V5 linioh dans le code du fichier en CC++ comme suit

include linioh

include ltrtai_shmhgt

static shm_seg0_def seg0

shm_seg0_def robot

seg0 = rtai_malloc (SEG0_BASE sizeof (shm_seg0_def))

if (seg0-gtsem = 0) bcopy (seg0 amprobot sizeof (shm_seg0_def))helliphelliphellip

helliphelliphellip bcopy (amprobot seg0 sizeof (shm_seg0_def))helliphelliphelliphelliphelliphellip

rtai_free (SEG0_BASE seg0)

fichier drsquoentecircte de la meacutemoire partageacutee fourni dans la couche RTAI de linux

Initialisation du segment SEG0_BASE Allocation de lameacutemoire pointeacutee

par seg0

Lecture des donneacutees provenant du bas

niveau

Mise agrave jours du segment de meacutemoire partageacutee

Libeacuterer le segment de meacutemoire alloueacute

Equipe Systegraveme Robotiseacute de Production

5

Plan

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6979

S y nd e x

V5

bull Introductionbull Meacutethodologie AAA

bull Installationbull Utilisation du logiciel Syndex

bull Macrosbull LinuxIO un interface CC++ avec SynDEx

bull Exemple drsquoapplication Robuter-ULM

Equipe Systegraveme Robotiseacute de Production

V5

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7079

S y nd e x

V5

Exemple dapplication Exemple dapplication Robuter Robuter--ULM ULM

Equipe Systegraveme Robotiseacute de Production

V5

Description Robuter-ULMbull Base mobile (2-RM 2-RF)

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7179

S y nd e x

V

bull Bras ultra-leacuteger 6 axesbull Ceinture 24 capteurs US

bull Capteur drsquoefforts 6 axes

bull Cameacutera CCD monochromeavec carte drsquoacquisition

bull PC embarqueacute MMX 233

bull OS linux redhat 61 avecRTAI V-13

bull 3 bouton drsquoarrecirct drsquourgence

bull 4 batteries 48 VDC 4 X12V 60 Ah

bull Entreacutee Joystick

bull Liaison Ethernet sans fil

Le manipulateur mobile Robuter-ULM comprend

Equipe Systegraveme Robotiseacute de Production

V5

Base Mobilebull dimension

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7279

S y nd e x

V

1025 mm de longueur 680 mm de largueur et 44 cm de hauteurbull Poids environ 150 kg avec les batteriesbull charge jusqursquoagrave 120 kg

bull vitesse de 5cms agrave 125 msbull Moteurs 2 X 300 W DC 48 VDCbull orientation par diffeacuterence de vitesse

bull Preacutecision Position par encodeurs optiquesbull Deux roues motrices diffeacuterentielles et de deux roues follesbull Drsquoune ceinture de 24 capteurs Ultrasons

bull Une carte MPC555 de Robosoft pour le controcircle des deuxmoteurs DC des 2 rouesbull Un systegraveme drsquoodomeacutetrie qui donne la position relative du robot

par rapport agrave son repegravere

Equipe Systegraveme Robotiseacute de Production

V5

bull dimension Faute de documentation

Bras U tra- eacuteger

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7379

S y nd e x

V Faute de documentation

bull Poids moins de 20 kgbull charge 2 kgbull Moteurs 6 moteurs DC

bull gripper pince eacutelectrique 2 doigtsbull Reacutepeacutetabiliteacute +- 1mmbull 3 carte MPC555 de Robosoft lrsquoune pour le capteur drsquoeffort et les

deux autres pour les 6 moteurs + moteur de la pincebull Position encodeur increacutemental

1 2 3 4 5 6Axisrange

plusmn90deg 0-90deg plusmn80deg plusmn100deg plusmn90deg plusmn110deg

vitesse 180degs 180degs 180degs 180degs 180degs 180degs

Equipe Systegraveme Robotiseacute de Production

V5

rc tecture ar ware

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7479

S y nd e x

V

Equipe Systegraveme Robotiseacute de Production

V5

Pro eacutemat quePlusieurs applications peuvent ecirctre impleacutementeacutees sur le robot

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7579

S y nd e x

V

Cependant il faut faire la diffeacuterence entre les applications quidemande lrsquoutilisation de syndex et les applications qui neneacutecessite qursquoune programmation en CC++ Agrave titre drsquoexemple

bull Localisationbull Commande en position

bull Commande en forcebull Navigation

bull Geacuteneacuteration de trajectoire

bull Vision

Equipe Systegraveme Robotiseacute de Production

V5 bull Pince eacutelectrique (TOR)

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7679

S y nd e x

Vq ( )

bull Pince possegravede des ES Logiques

Notre application consiste agrave

bull Recevoir lrsquoeacutetat de la pince (fermeacutee ouverte )

bull Envoyer une commande vers la pince

Capture

drsquoinformation

Open

Close

CommandeMeacutemoire

Partageacutee

Actionneur

Pince Prise de deacutecision Pince

Equipe Systegraveme Robotiseacute de Production

V5

Sc eacutema eacute ectr que

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7779

S y nd e x

Equipe Systegraveme Robotiseacute de Production

V5

Conclusion

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7879

S y nd e x bull Introduction

bull Meacutethodologie AAA

bull Installationbull Utilisation du logiciel Syndex

bull Macrosbull LinuxIO un interface CC++ avec SynDEx

bull Exemple drsquoapplication Robuter-ULM

Equipe Systegraveme Robotiseacute de Production

V5

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7979

S y nd e x

Questions

Page 51: Cours Syndex

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5179

S y nd

e xV5

GPIO (General Purpose InputOutput)ce macro utilise le module USIU qui lui fourni 64 pins pour desentreacuteessorties numeacuteriques ordinaires (IO de la carte Robosoft lirelrsquoeacutetat de la pince envoi de commande agrave la pince lire les alarmes)

bull QADC (Queued Analog to Digital Converter)en utilisant le module QADC ce macro permet la conversion drsquounsignal analogique en entreacutee en un signal numeacuterique multi-niveaux(lire les donneacutees du capteur drsquoeacuteffort du joystick)

bull MIOS (Modular InputOutput System)Le module MIOS fourni 16 pins drsquoES numeacuteriques Sur la carte deRobosoft tous les pins sont en sortie Les 16 pins sont reacutepartiscomme suit

utilisateurs reacuteserveacutes

les pins de 0 agrave 11 sont reacuteserveacutes car ils sont preacutevus agrave ecirctre utiliseacutes pour unmateacuteriel particulier Mais si ce mateacuteriel nrsquoest pas utiliseacute lrsquoutilisateur peut lesutiliser librement

15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

Equipe Systegraveme Robotiseacute de ProductionMacros Geacuteneacuter ques MPC55

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5279

S y nd

e xV5

bull PWM (Pulse width Modulation)utilise le module MIOS (pins de 4-7 pour la direction des moteurset de 8-11 pour la validation) pour la commande des actionneursnumeacuteriques en PWM

bull TPU (Time Processor Units)les macros lieacutes agrave ce module permettent la lecture des encodeurs

increacutementauxbull QSPI (Queued Serial Peripheral Interface)

ce module fait partie du module QSMCM et les macros lieacutes servent

agrave son initialisation pour une communication avec du mateacuterielsexternes via le bus seacuterie synchrone

Equipe Systegraveme Robotiseacute de ProductionMacros Geacuteneacuter ques MPC55

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5379

S y nd

e x

V5 bull Serial port support (Polling implementation)

le MPC555 comprend dans le module QSMCM une interface decommunication seacuterie SCI qui permet la communication avec dumateacuteriels externes via un bus seacuterie asynchrone Plusieurs macros

sont lieacutes agrave cette interface pour initialiser et eacutetablir la communicationbull Serial port support (interrupt handling implementation)

pour la mecircme interface SCI du module QSMCM pour cette

meacutethode drsquoimpleacutementation les macros lieacutes initialisent et eacutetablissentla communication en mode par interruption ce qui permet dedeacutetecter lrsquoarriveacutee des donneacutees sur le port seacuterie au lieu de le scruter

en permanence

tous ces macros on les retrouvent dans le fichier 555m4x

Equipe Systegraveme Robotiseacute de ProductionMacros Speacutec ques Ro oso tles macros suivants sont deacutedieacutes agrave la carte de Robosoft MPC555

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5479

S y nd

e x

V5

bull Initialisation de la carte Robosoftmain_ini_() macro ne doit pas ecirctre utiliser par les programmateursdu fait qursquoelle sert qursquoagrave initialiser la carte robosoft Macro interne agrave

syndex dont lrsquoappel est automatique lors de geacuteneacuteration drsquoexeacutecutifMPC555

bull DAC (Digital to Analog Converter)

macro permet lrsquoutilisation du convertisseur de carte robosoft via lemodule MIOs en utilisant les pins de 0 agrave 2

bull LED (on-bord LED interface)

macro permet la gestion de la LED de la carte robosoft connecteacuteeau module QSPI (pin PCS1)

bull SPI absolute encoder

macro permet lrsquoutilisation lrsquointerface du codeur absolu de la carterobosoft connecteacute au module QSPI

Equipe Systegraveme Robotiseacute de ProductionMacros Speacutec ques Ro oso tbull Motor amplifier direction

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5579

S y nd

e x

V5

Motor amplifier directionmacro qui permet de geacuterer la direction des moteurs

bull Motor power amplifier validationles moteurs embarqueacutes sur les robots sont eacutequipeacutes de freins

eacutelectriquement commandable Ce macro permet drsquoenvoyer unsignal drsquoinhibition pour deacutebloquer les freins

bull Watch dog

pour des raisons de seacutecuriteacute un meacutecanisme mateacuteriel que robosofta ajouteacute sur la carte Ce watch-dog vise agrave stopper lrsquoactiviteacute dumoteur en cas ougrave le programme plante Le watch est impleacutementeacute

comme un time-out mateacuteriel Srsquoil nrsquoest pas rafraicircchi peacuteriodiquement il transmet un signal de sortie ce qui enlegraveve lavalidation de lrsquoamplificateur de puissance donc lrsquoarrecirct dumouvement

ces macros se trouvent dans le fichier RSBm4x

Equipe Systegraveme Robotiseacute de Production

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5679

S y nd

e x

V5

Macros de Communicationchaque meacutedia de communication (bus CAN ) est une ressourceseacutequentielle ougrave les transferts de donneacutees entre processeurs doiventsuivre un certain ordre Donc ce macro de communication sert agravedeacutefinir cet ordre et agrave identifier le protocole de communication lecodagedeacutecodage de lrsquoinformation et la synchronisation

on trouve ces macros dans le fichier CANm4x

Macros drsquoapplicationce genre de macros sont speacutecifique au mateacuteriel en question et aussiagrave lrsquoapplication en particulier Ce sont des macros utilisateurs

on trouve ces macros dans le fichier Application_namem4x

Equipe Systegraveme Robotiseacute de Production

section include (pour inclure drsquoautres fichiers macro agrave utiliseStructure du fichier macr

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5779

S y nd

e x

V5

section define (pour tous les macros utilisateurs)MGC lsquoINITrsquo (MGC Macro Generation Context variable)

divert (declaration) (deacutebut du macro)

(deacuteclaration des variables des meacutemoires et des csts

divert (o)

MGC lsquolooprsquocode en assembleur code en C

dnl (commentaires)

MGC lsquoENDrsquo dnl (fin de la macros)divert lsquo lsquo dnl

macros MPC555meacutemoire MPC555

constante MPC555

macros RTAImeacutemoire RTAI

constante RTAI

Equipe Systegraveme Robotiseacute de Production Plan

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5879

S y nd

e x

V5

bull Introduction

bull Meacutethodologie AAA

bull Installationbull Utilisation du logiciel Syndex

bull Macrosbull LinuxIO un interface CC++ avec SynDEx

bull Exemple drsquoapplication Robuter-ULM

Equipe Systegraveme Robotiseacute de Production

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5979

S y nd

e x

V5

LinuxIO LinuxIO une interface une interface

CC++ avecCC++ avec SynDExSynDEx

bull Principe de basebull Utilisation de linuxIO_ par syndex

bull Utilisation de linuxIO_ par un programmeCC++

Equipe Systegraveme Robotiseacute de ProductionPrincipe de baseSyndex fourni une interface graphique pour la conception

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6079

S y nd

e x

V5

Syndex fourni une interface graphique pour la conception

drsquoapplications Par contre des fois nous avons besoin drsquoautresfonctionnaliteacutes non disponibles donc il faut les creacuteer Cependantgeacuteneacuterer des macros pour syndex srsquoavegravere difficile pour certains du

fait qursquoil faut avoir une bonne connaissance de la programmation bas niveau Dans ce cas lrsquoutilisation de linux_IO trouve sa placedans un contexte particulier interfacer des applications CC++utilisateurs avec des applications embarqueacutees temps reacuteeldeacuteveloppeacutees sous syndex

Par rapport agrave ce contexte de programmation lrsquoorganisation du

deacuteveloppement des applications est structureacutee en deux parties 1 Application haut niveau

2 Application bas niveau

Equipe Systegraveme Robotiseacute de ProductionPrincipe de base

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6179

S y nd

e x

V5

En reacutesumeacute lrsquoapplicationutilisateur contient une

partie haut niveau enCC++ et une partie basniveau sous syndex avecun eacutechange de donneacuteesentre les deux partie en

utilisant la couche RTAIde linux

Equipe Systegraveme Robotiseacute de Production pp cat on aut n veauOn entend application haut

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6279

S y nd

e x

V5

niveau tout programmecomme la planification detrajectoires strateacutegies de

navigation etc hellipLrsquoeacutechange de donneacutees sefait par le biais desmeacutemoires partageacutees quifont parti du noyau RTAI

et de lrsquoespace utilisateursde Linux

Toute ressource preacutesente sur la carte Robosoft peutecirctre partageacutee sans aune restriction

Equipe Systegraveme Robotiseacute de Production pp cat on as n veauUne application bas niveau

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6379

S y nd

e x

V5

Une application bas niveau

est un programme conccedilusous syndex comme lacommande des moteurs la

lecture des capteurs etc hellipLes ressources mateacuteriellessont controcircler par plusieurs

cartes MPC555 Ces cartessrsquoeacutechangent des donneacuteesvia le bus CAN Donc ES

est prise en charge par lasource logicielle deacutedieacutee quisrsquoexeacutecute dans les cartes MPC555 puis la couche RTAI

est utiliseacute pour la mise agrave jour de meacutemoires partageacutees pour lrsquoespace utilisateurs linux drsquoeacutechange de donneacutees

Equipe Systegraveme Robotiseacute de ProductionUtilisation de linux_IO par syndex

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6479

S y nd

e x

V5

Equipe Systegraveme Robotiseacute de ProductionUtilisation de linux_IO par syndex

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6579

S y nd

e x

V5

Equipe Systegraveme Robotiseacute de Production

5

Utilisation de linux_IO par syndex

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6679

S y nd

e x

V5

Degraves que la conception de lrsquoapplication sous syndex esttermineacutee et apregraves compilation (AdequationDo it +GenExec) un fichier drsquoentecircte sous le nom de linioh est

automatiquement geacuteneacutereacute Ce fichier contient lesinformations neacutecessaires pour acceacuteder aux entreacutees enlecture et aux sorties en eacutecriture des opeacuterations linuxIO_

inseacutereacutees dans le graphe drsquoalgorithme Le contenu de cefichier est organiseacute en plusieurs parties une pour chaqueopeacuteration linux_IO preacutesente dans le graphe

Equipe Systegraveme Robotiseacute de Production

5

Utilisation de linux_IO par syndex linioh auto-generated C users API frontend

C i h b f 2001 i i i b f f

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6779

S y nd

e x

V5 Copyright Robosoft 2001 Pierre Pomiers ltpierrerobosoftfrgt

LINUX IO shared memory data segments

define SEG0_BASE 0x10000typedef struct

int js_spd_o0

int js_str_o0

int enc_R_o0int enc_L_o0

double odo_X_o0

double odo_Y_o0

double odo_T_o0int spd_R_o0

int spd_L_o0

int time

unsigned char sem shm_seg0_def

Nom du segment de meacutemoire partageacutee pour notre opeacuteration linuxIO_

7 signaux drsquoentreacutees Ces valeurs sonten lecture et sont peacuteriodiquementrafraicircchies par RTAI

2 signaux de sorties Ces valeurs sonten eacutecriture et sont peacuteriodiquementrafraicircchies par RTAI

Equipe Systegraveme Robotiseacute de Production

5

Crsquoest une eacutetape tregraves facile il suffit drsquoinclure le fichier drsquoentecirctelinio h dans le code du fichier en CC++ comme suit

Utilisation de linuxIO_ par un programme CC+

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6879

S y nd

e x

V5 linioh dans le code du fichier en CC++ comme suit

include linioh

include ltrtai_shmhgt

static shm_seg0_def seg0

shm_seg0_def robot

seg0 = rtai_malloc (SEG0_BASE sizeof (shm_seg0_def))

if (seg0-gtsem = 0) bcopy (seg0 amprobot sizeof (shm_seg0_def))helliphelliphellip

helliphelliphellip bcopy (amprobot seg0 sizeof (shm_seg0_def))helliphelliphelliphelliphelliphellip

rtai_free (SEG0_BASE seg0)

fichier drsquoentecircte de la meacutemoire partageacutee fourni dans la couche RTAI de linux

Initialisation du segment SEG0_BASE Allocation de lameacutemoire pointeacutee

par seg0

Lecture des donneacutees provenant du bas

niveau

Mise agrave jours du segment de meacutemoire partageacutee

Libeacuterer le segment de meacutemoire alloueacute

Equipe Systegraveme Robotiseacute de Production

5

Plan

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6979

S y nd e x

V5

bull Introductionbull Meacutethodologie AAA

bull Installationbull Utilisation du logiciel Syndex

bull Macrosbull LinuxIO un interface CC++ avec SynDEx

bull Exemple drsquoapplication Robuter-ULM

Equipe Systegraveme Robotiseacute de Production

V5

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7079

S y nd e x

V5

Exemple dapplication Exemple dapplication Robuter Robuter--ULM ULM

Equipe Systegraveme Robotiseacute de Production

V5

Description Robuter-ULMbull Base mobile (2-RM 2-RF)

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7179

S y nd e x

V

bull Bras ultra-leacuteger 6 axesbull Ceinture 24 capteurs US

bull Capteur drsquoefforts 6 axes

bull Cameacutera CCD monochromeavec carte drsquoacquisition

bull PC embarqueacute MMX 233

bull OS linux redhat 61 avecRTAI V-13

bull 3 bouton drsquoarrecirct drsquourgence

bull 4 batteries 48 VDC 4 X12V 60 Ah

bull Entreacutee Joystick

bull Liaison Ethernet sans fil

Le manipulateur mobile Robuter-ULM comprend

Equipe Systegraveme Robotiseacute de Production

V5

Base Mobilebull dimension

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7279

S y nd e x

V

1025 mm de longueur 680 mm de largueur et 44 cm de hauteurbull Poids environ 150 kg avec les batteriesbull charge jusqursquoagrave 120 kg

bull vitesse de 5cms agrave 125 msbull Moteurs 2 X 300 W DC 48 VDCbull orientation par diffeacuterence de vitesse

bull Preacutecision Position par encodeurs optiquesbull Deux roues motrices diffeacuterentielles et de deux roues follesbull Drsquoune ceinture de 24 capteurs Ultrasons

bull Une carte MPC555 de Robosoft pour le controcircle des deuxmoteurs DC des 2 rouesbull Un systegraveme drsquoodomeacutetrie qui donne la position relative du robot

par rapport agrave son repegravere

Equipe Systegraveme Robotiseacute de Production

V5

bull dimension Faute de documentation

Bras U tra- eacuteger

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7379

S y nd e x

V Faute de documentation

bull Poids moins de 20 kgbull charge 2 kgbull Moteurs 6 moteurs DC

bull gripper pince eacutelectrique 2 doigtsbull Reacutepeacutetabiliteacute +- 1mmbull 3 carte MPC555 de Robosoft lrsquoune pour le capteur drsquoeffort et les

deux autres pour les 6 moteurs + moteur de la pincebull Position encodeur increacutemental

1 2 3 4 5 6Axisrange

plusmn90deg 0-90deg plusmn80deg plusmn100deg plusmn90deg plusmn110deg

vitesse 180degs 180degs 180degs 180degs 180degs 180degs

Equipe Systegraveme Robotiseacute de Production

V5

rc tecture ar ware

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7479

S y nd e x

V

Equipe Systegraveme Robotiseacute de Production

V5

Pro eacutemat quePlusieurs applications peuvent ecirctre impleacutementeacutees sur le robot

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7579

S y nd e x

V

Cependant il faut faire la diffeacuterence entre les applications quidemande lrsquoutilisation de syndex et les applications qui neneacutecessite qursquoune programmation en CC++ Agrave titre drsquoexemple

bull Localisationbull Commande en position

bull Commande en forcebull Navigation

bull Geacuteneacuteration de trajectoire

bull Vision

Equipe Systegraveme Robotiseacute de Production

V5 bull Pince eacutelectrique (TOR)

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7679

S y nd e x

Vq ( )

bull Pince possegravede des ES Logiques

Notre application consiste agrave

bull Recevoir lrsquoeacutetat de la pince (fermeacutee ouverte )

bull Envoyer une commande vers la pince

Capture

drsquoinformation

Open

Close

CommandeMeacutemoire

Partageacutee

Actionneur

Pince Prise de deacutecision Pince

Equipe Systegraveme Robotiseacute de Production

V5

Sc eacutema eacute ectr que

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7779

S y nd e x

Equipe Systegraveme Robotiseacute de Production

V5

Conclusion

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7879

S y nd e x bull Introduction

bull Meacutethodologie AAA

bull Installationbull Utilisation du logiciel Syndex

bull Macrosbull LinuxIO un interface CC++ avec SynDEx

bull Exemple drsquoapplication Robuter-ULM

Equipe Systegraveme Robotiseacute de Production

V5

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7979

S y nd e x

Questions

Page 52: Cours Syndex

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5279

S y nd

e xV5

bull PWM (Pulse width Modulation)utilise le module MIOS (pins de 4-7 pour la direction des moteurset de 8-11 pour la validation) pour la commande des actionneursnumeacuteriques en PWM

bull TPU (Time Processor Units)les macros lieacutes agrave ce module permettent la lecture des encodeurs

increacutementauxbull QSPI (Queued Serial Peripheral Interface)

ce module fait partie du module QSMCM et les macros lieacutes servent

agrave son initialisation pour une communication avec du mateacuterielsexternes via le bus seacuterie synchrone

Equipe Systegraveme Robotiseacute de ProductionMacros Geacuteneacuter ques MPC55

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5379

S y nd

e x

V5 bull Serial port support (Polling implementation)

le MPC555 comprend dans le module QSMCM une interface decommunication seacuterie SCI qui permet la communication avec dumateacuteriels externes via un bus seacuterie asynchrone Plusieurs macros

sont lieacutes agrave cette interface pour initialiser et eacutetablir la communicationbull Serial port support (interrupt handling implementation)

pour la mecircme interface SCI du module QSMCM pour cette

meacutethode drsquoimpleacutementation les macros lieacutes initialisent et eacutetablissentla communication en mode par interruption ce qui permet dedeacutetecter lrsquoarriveacutee des donneacutees sur le port seacuterie au lieu de le scruter

en permanence

tous ces macros on les retrouvent dans le fichier 555m4x

Equipe Systegraveme Robotiseacute de ProductionMacros Speacutec ques Ro oso tles macros suivants sont deacutedieacutes agrave la carte de Robosoft MPC555

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5479

S y nd

e x

V5

bull Initialisation de la carte Robosoftmain_ini_() macro ne doit pas ecirctre utiliser par les programmateursdu fait qursquoelle sert qursquoagrave initialiser la carte robosoft Macro interne agrave

syndex dont lrsquoappel est automatique lors de geacuteneacuteration drsquoexeacutecutifMPC555

bull DAC (Digital to Analog Converter)

macro permet lrsquoutilisation du convertisseur de carte robosoft via lemodule MIOs en utilisant les pins de 0 agrave 2

bull LED (on-bord LED interface)

macro permet la gestion de la LED de la carte robosoft connecteacuteeau module QSPI (pin PCS1)

bull SPI absolute encoder

macro permet lrsquoutilisation lrsquointerface du codeur absolu de la carterobosoft connecteacute au module QSPI

Equipe Systegraveme Robotiseacute de ProductionMacros Speacutec ques Ro oso tbull Motor amplifier direction

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5579

S y nd

e x

V5

Motor amplifier directionmacro qui permet de geacuterer la direction des moteurs

bull Motor power amplifier validationles moteurs embarqueacutes sur les robots sont eacutequipeacutes de freins

eacutelectriquement commandable Ce macro permet drsquoenvoyer unsignal drsquoinhibition pour deacutebloquer les freins

bull Watch dog

pour des raisons de seacutecuriteacute un meacutecanisme mateacuteriel que robosofta ajouteacute sur la carte Ce watch-dog vise agrave stopper lrsquoactiviteacute dumoteur en cas ougrave le programme plante Le watch est impleacutementeacute

comme un time-out mateacuteriel Srsquoil nrsquoest pas rafraicircchi peacuteriodiquement il transmet un signal de sortie ce qui enlegraveve lavalidation de lrsquoamplificateur de puissance donc lrsquoarrecirct dumouvement

ces macros se trouvent dans le fichier RSBm4x

Equipe Systegraveme Robotiseacute de Production

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5679

S y nd

e x

V5

Macros de Communicationchaque meacutedia de communication (bus CAN ) est une ressourceseacutequentielle ougrave les transferts de donneacutees entre processeurs doiventsuivre un certain ordre Donc ce macro de communication sert agravedeacutefinir cet ordre et agrave identifier le protocole de communication lecodagedeacutecodage de lrsquoinformation et la synchronisation

on trouve ces macros dans le fichier CANm4x

Macros drsquoapplicationce genre de macros sont speacutecifique au mateacuteriel en question et aussiagrave lrsquoapplication en particulier Ce sont des macros utilisateurs

on trouve ces macros dans le fichier Application_namem4x

Equipe Systegraveme Robotiseacute de Production

section include (pour inclure drsquoautres fichiers macro agrave utiliseStructure du fichier macr

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5779

S y nd

e x

V5

section define (pour tous les macros utilisateurs)MGC lsquoINITrsquo (MGC Macro Generation Context variable)

divert (declaration) (deacutebut du macro)

(deacuteclaration des variables des meacutemoires et des csts

divert (o)

MGC lsquolooprsquocode en assembleur code en C

dnl (commentaires)

MGC lsquoENDrsquo dnl (fin de la macros)divert lsquo lsquo dnl

macros MPC555meacutemoire MPC555

constante MPC555

macros RTAImeacutemoire RTAI

constante RTAI

Equipe Systegraveme Robotiseacute de Production Plan

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5879

S y nd

e x

V5

bull Introduction

bull Meacutethodologie AAA

bull Installationbull Utilisation du logiciel Syndex

bull Macrosbull LinuxIO un interface CC++ avec SynDEx

bull Exemple drsquoapplication Robuter-ULM

Equipe Systegraveme Robotiseacute de Production

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5979

S y nd

e x

V5

LinuxIO LinuxIO une interface une interface

CC++ avecCC++ avec SynDExSynDEx

bull Principe de basebull Utilisation de linuxIO_ par syndex

bull Utilisation de linuxIO_ par un programmeCC++

Equipe Systegraveme Robotiseacute de ProductionPrincipe de baseSyndex fourni une interface graphique pour la conception

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6079

S y nd

e x

V5

Syndex fourni une interface graphique pour la conception

drsquoapplications Par contre des fois nous avons besoin drsquoautresfonctionnaliteacutes non disponibles donc il faut les creacuteer Cependantgeacuteneacuterer des macros pour syndex srsquoavegravere difficile pour certains du

fait qursquoil faut avoir une bonne connaissance de la programmation bas niveau Dans ce cas lrsquoutilisation de linux_IO trouve sa placedans un contexte particulier interfacer des applications CC++utilisateurs avec des applications embarqueacutees temps reacuteeldeacuteveloppeacutees sous syndex

Par rapport agrave ce contexte de programmation lrsquoorganisation du

deacuteveloppement des applications est structureacutee en deux parties 1 Application haut niveau

2 Application bas niveau

Equipe Systegraveme Robotiseacute de ProductionPrincipe de base

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6179

S y nd

e x

V5

En reacutesumeacute lrsquoapplicationutilisateur contient une

partie haut niveau enCC++ et une partie basniveau sous syndex avecun eacutechange de donneacuteesentre les deux partie en

utilisant la couche RTAIde linux

Equipe Systegraveme Robotiseacute de Production pp cat on aut n veauOn entend application haut

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6279

S y nd

e x

V5

niveau tout programmecomme la planification detrajectoires strateacutegies de

navigation etc hellipLrsquoeacutechange de donneacutees sefait par le biais desmeacutemoires partageacutees quifont parti du noyau RTAI

et de lrsquoespace utilisateursde Linux

Toute ressource preacutesente sur la carte Robosoft peutecirctre partageacutee sans aune restriction

Equipe Systegraveme Robotiseacute de Production pp cat on as n veauUne application bas niveau

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6379

S y nd

e x

V5

Une application bas niveau

est un programme conccedilusous syndex comme lacommande des moteurs la

lecture des capteurs etc hellipLes ressources mateacuteriellessont controcircler par plusieurs

cartes MPC555 Ces cartessrsquoeacutechangent des donneacuteesvia le bus CAN Donc ES

est prise en charge par lasource logicielle deacutedieacutee quisrsquoexeacutecute dans les cartes MPC555 puis la couche RTAI

est utiliseacute pour la mise agrave jour de meacutemoires partageacutees pour lrsquoespace utilisateurs linux drsquoeacutechange de donneacutees

Equipe Systegraveme Robotiseacute de ProductionUtilisation de linux_IO par syndex

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6479

S y nd

e x

V5

Equipe Systegraveme Robotiseacute de ProductionUtilisation de linux_IO par syndex

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6579

S y nd

e x

V5

Equipe Systegraveme Robotiseacute de Production

5

Utilisation de linux_IO par syndex

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6679

S y nd

e x

V5

Degraves que la conception de lrsquoapplication sous syndex esttermineacutee et apregraves compilation (AdequationDo it +GenExec) un fichier drsquoentecircte sous le nom de linioh est

automatiquement geacuteneacutereacute Ce fichier contient lesinformations neacutecessaires pour acceacuteder aux entreacutees enlecture et aux sorties en eacutecriture des opeacuterations linuxIO_

inseacutereacutees dans le graphe drsquoalgorithme Le contenu de cefichier est organiseacute en plusieurs parties une pour chaqueopeacuteration linux_IO preacutesente dans le graphe

Equipe Systegraveme Robotiseacute de Production

5

Utilisation de linux_IO par syndex linioh auto-generated C users API frontend

C i h b f 2001 i i i b f f

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6779

S y nd

e x

V5 Copyright Robosoft 2001 Pierre Pomiers ltpierrerobosoftfrgt

LINUX IO shared memory data segments

define SEG0_BASE 0x10000typedef struct

int js_spd_o0

int js_str_o0

int enc_R_o0int enc_L_o0

double odo_X_o0

double odo_Y_o0

double odo_T_o0int spd_R_o0

int spd_L_o0

int time

unsigned char sem shm_seg0_def

Nom du segment de meacutemoire partageacutee pour notre opeacuteration linuxIO_

7 signaux drsquoentreacutees Ces valeurs sonten lecture et sont peacuteriodiquementrafraicircchies par RTAI

2 signaux de sorties Ces valeurs sonten eacutecriture et sont peacuteriodiquementrafraicircchies par RTAI

Equipe Systegraveme Robotiseacute de Production

5

Crsquoest une eacutetape tregraves facile il suffit drsquoinclure le fichier drsquoentecirctelinio h dans le code du fichier en CC++ comme suit

Utilisation de linuxIO_ par un programme CC+

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6879

S y nd

e x

V5 linioh dans le code du fichier en CC++ comme suit

include linioh

include ltrtai_shmhgt

static shm_seg0_def seg0

shm_seg0_def robot

seg0 = rtai_malloc (SEG0_BASE sizeof (shm_seg0_def))

if (seg0-gtsem = 0) bcopy (seg0 amprobot sizeof (shm_seg0_def))helliphelliphellip

helliphelliphellip bcopy (amprobot seg0 sizeof (shm_seg0_def))helliphelliphelliphelliphelliphellip

rtai_free (SEG0_BASE seg0)

fichier drsquoentecircte de la meacutemoire partageacutee fourni dans la couche RTAI de linux

Initialisation du segment SEG0_BASE Allocation de lameacutemoire pointeacutee

par seg0

Lecture des donneacutees provenant du bas

niveau

Mise agrave jours du segment de meacutemoire partageacutee

Libeacuterer le segment de meacutemoire alloueacute

Equipe Systegraveme Robotiseacute de Production

5

Plan

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6979

S y nd e x

V5

bull Introductionbull Meacutethodologie AAA

bull Installationbull Utilisation du logiciel Syndex

bull Macrosbull LinuxIO un interface CC++ avec SynDEx

bull Exemple drsquoapplication Robuter-ULM

Equipe Systegraveme Robotiseacute de Production

V5

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7079

S y nd e x

V5

Exemple dapplication Exemple dapplication Robuter Robuter--ULM ULM

Equipe Systegraveme Robotiseacute de Production

V5

Description Robuter-ULMbull Base mobile (2-RM 2-RF)

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7179

S y nd e x

V

bull Bras ultra-leacuteger 6 axesbull Ceinture 24 capteurs US

bull Capteur drsquoefforts 6 axes

bull Cameacutera CCD monochromeavec carte drsquoacquisition

bull PC embarqueacute MMX 233

bull OS linux redhat 61 avecRTAI V-13

bull 3 bouton drsquoarrecirct drsquourgence

bull 4 batteries 48 VDC 4 X12V 60 Ah

bull Entreacutee Joystick

bull Liaison Ethernet sans fil

Le manipulateur mobile Robuter-ULM comprend

Equipe Systegraveme Robotiseacute de Production

V5

Base Mobilebull dimension

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7279

S y nd e x

V

1025 mm de longueur 680 mm de largueur et 44 cm de hauteurbull Poids environ 150 kg avec les batteriesbull charge jusqursquoagrave 120 kg

bull vitesse de 5cms agrave 125 msbull Moteurs 2 X 300 W DC 48 VDCbull orientation par diffeacuterence de vitesse

bull Preacutecision Position par encodeurs optiquesbull Deux roues motrices diffeacuterentielles et de deux roues follesbull Drsquoune ceinture de 24 capteurs Ultrasons

bull Une carte MPC555 de Robosoft pour le controcircle des deuxmoteurs DC des 2 rouesbull Un systegraveme drsquoodomeacutetrie qui donne la position relative du robot

par rapport agrave son repegravere

Equipe Systegraveme Robotiseacute de Production

V5

bull dimension Faute de documentation

Bras U tra- eacuteger

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7379

S y nd e x

V Faute de documentation

bull Poids moins de 20 kgbull charge 2 kgbull Moteurs 6 moteurs DC

bull gripper pince eacutelectrique 2 doigtsbull Reacutepeacutetabiliteacute +- 1mmbull 3 carte MPC555 de Robosoft lrsquoune pour le capteur drsquoeffort et les

deux autres pour les 6 moteurs + moteur de la pincebull Position encodeur increacutemental

1 2 3 4 5 6Axisrange

plusmn90deg 0-90deg plusmn80deg plusmn100deg plusmn90deg plusmn110deg

vitesse 180degs 180degs 180degs 180degs 180degs 180degs

Equipe Systegraveme Robotiseacute de Production

V5

rc tecture ar ware

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7479

S y nd e x

V

Equipe Systegraveme Robotiseacute de Production

V5

Pro eacutemat quePlusieurs applications peuvent ecirctre impleacutementeacutees sur le robot

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7579

S y nd e x

V

Cependant il faut faire la diffeacuterence entre les applications quidemande lrsquoutilisation de syndex et les applications qui neneacutecessite qursquoune programmation en CC++ Agrave titre drsquoexemple

bull Localisationbull Commande en position

bull Commande en forcebull Navigation

bull Geacuteneacuteration de trajectoire

bull Vision

Equipe Systegraveme Robotiseacute de Production

V5 bull Pince eacutelectrique (TOR)

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7679

S y nd e x

Vq ( )

bull Pince possegravede des ES Logiques

Notre application consiste agrave

bull Recevoir lrsquoeacutetat de la pince (fermeacutee ouverte )

bull Envoyer une commande vers la pince

Capture

drsquoinformation

Open

Close

CommandeMeacutemoire

Partageacutee

Actionneur

Pince Prise de deacutecision Pince

Equipe Systegraveme Robotiseacute de Production

V5

Sc eacutema eacute ectr que

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7779

S y nd e x

Equipe Systegraveme Robotiseacute de Production

V5

Conclusion

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7879

S y nd e x bull Introduction

bull Meacutethodologie AAA

bull Installationbull Utilisation du logiciel Syndex

bull Macrosbull LinuxIO un interface CC++ avec SynDEx

bull Exemple drsquoapplication Robuter-ULM

Equipe Systegraveme Robotiseacute de Production

V5

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7979

S y nd e x

Questions

Page 53: Cours Syndex

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5379

S y nd

e x

V5 bull Serial port support (Polling implementation)

le MPC555 comprend dans le module QSMCM une interface decommunication seacuterie SCI qui permet la communication avec dumateacuteriels externes via un bus seacuterie asynchrone Plusieurs macros

sont lieacutes agrave cette interface pour initialiser et eacutetablir la communicationbull Serial port support (interrupt handling implementation)

pour la mecircme interface SCI du module QSMCM pour cette

meacutethode drsquoimpleacutementation les macros lieacutes initialisent et eacutetablissentla communication en mode par interruption ce qui permet dedeacutetecter lrsquoarriveacutee des donneacutees sur le port seacuterie au lieu de le scruter

en permanence

tous ces macros on les retrouvent dans le fichier 555m4x

Equipe Systegraveme Robotiseacute de ProductionMacros Speacutec ques Ro oso tles macros suivants sont deacutedieacutes agrave la carte de Robosoft MPC555

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5479

S y nd

e x

V5

bull Initialisation de la carte Robosoftmain_ini_() macro ne doit pas ecirctre utiliser par les programmateursdu fait qursquoelle sert qursquoagrave initialiser la carte robosoft Macro interne agrave

syndex dont lrsquoappel est automatique lors de geacuteneacuteration drsquoexeacutecutifMPC555

bull DAC (Digital to Analog Converter)

macro permet lrsquoutilisation du convertisseur de carte robosoft via lemodule MIOs en utilisant les pins de 0 agrave 2

bull LED (on-bord LED interface)

macro permet la gestion de la LED de la carte robosoft connecteacuteeau module QSPI (pin PCS1)

bull SPI absolute encoder

macro permet lrsquoutilisation lrsquointerface du codeur absolu de la carterobosoft connecteacute au module QSPI

Equipe Systegraveme Robotiseacute de ProductionMacros Speacutec ques Ro oso tbull Motor amplifier direction

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5579

S y nd

e x

V5

Motor amplifier directionmacro qui permet de geacuterer la direction des moteurs

bull Motor power amplifier validationles moteurs embarqueacutes sur les robots sont eacutequipeacutes de freins

eacutelectriquement commandable Ce macro permet drsquoenvoyer unsignal drsquoinhibition pour deacutebloquer les freins

bull Watch dog

pour des raisons de seacutecuriteacute un meacutecanisme mateacuteriel que robosofta ajouteacute sur la carte Ce watch-dog vise agrave stopper lrsquoactiviteacute dumoteur en cas ougrave le programme plante Le watch est impleacutementeacute

comme un time-out mateacuteriel Srsquoil nrsquoest pas rafraicircchi peacuteriodiquement il transmet un signal de sortie ce qui enlegraveve lavalidation de lrsquoamplificateur de puissance donc lrsquoarrecirct dumouvement

ces macros se trouvent dans le fichier RSBm4x

Equipe Systegraveme Robotiseacute de Production

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5679

S y nd

e x

V5

Macros de Communicationchaque meacutedia de communication (bus CAN ) est une ressourceseacutequentielle ougrave les transferts de donneacutees entre processeurs doiventsuivre un certain ordre Donc ce macro de communication sert agravedeacutefinir cet ordre et agrave identifier le protocole de communication lecodagedeacutecodage de lrsquoinformation et la synchronisation

on trouve ces macros dans le fichier CANm4x

Macros drsquoapplicationce genre de macros sont speacutecifique au mateacuteriel en question et aussiagrave lrsquoapplication en particulier Ce sont des macros utilisateurs

on trouve ces macros dans le fichier Application_namem4x

Equipe Systegraveme Robotiseacute de Production

section include (pour inclure drsquoautres fichiers macro agrave utiliseStructure du fichier macr

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5779

S y nd

e x

V5

section define (pour tous les macros utilisateurs)MGC lsquoINITrsquo (MGC Macro Generation Context variable)

divert (declaration) (deacutebut du macro)

(deacuteclaration des variables des meacutemoires et des csts

divert (o)

MGC lsquolooprsquocode en assembleur code en C

dnl (commentaires)

MGC lsquoENDrsquo dnl (fin de la macros)divert lsquo lsquo dnl

macros MPC555meacutemoire MPC555

constante MPC555

macros RTAImeacutemoire RTAI

constante RTAI

Equipe Systegraveme Robotiseacute de Production Plan

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5879

S y nd

e x

V5

bull Introduction

bull Meacutethodologie AAA

bull Installationbull Utilisation du logiciel Syndex

bull Macrosbull LinuxIO un interface CC++ avec SynDEx

bull Exemple drsquoapplication Robuter-ULM

Equipe Systegraveme Robotiseacute de Production

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5979

S y nd

e x

V5

LinuxIO LinuxIO une interface une interface

CC++ avecCC++ avec SynDExSynDEx

bull Principe de basebull Utilisation de linuxIO_ par syndex

bull Utilisation de linuxIO_ par un programmeCC++

Equipe Systegraveme Robotiseacute de ProductionPrincipe de baseSyndex fourni une interface graphique pour la conception

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6079

S y nd

e x

V5

Syndex fourni une interface graphique pour la conception

drsquoapplications Par contre des fois nous avons besoin drsquoautresfonctionnaliteacutes non disponibles donc il faut les creacuteer Cependantgeacuteneacuterer des macros pour syndex srsquoavegravere difficile pour certains du

fait qursquoil faut avoir une bonne connaissance de la programmation bas niveau Dans ce cas lrsquoutilisation de linux_IO trouve sa placedans un contexte particulier interfacer des applications CC++utilisateurs avec des applications embarqueacutees temps reacuteeldeacuteveloppeacutees sous syndex

Par rapport agrave ce contexte de programmation lrsquoorganisation du

deacuteveloppement des applications est structureacutee en deux parties 1 Application haut niveau

2 Application bas niveau

Equipe Systegraveme Robotiseacute de ProductionPrincipe de base

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6179

S y nd

e x

V5

En reacutesumeacute lrsquoapplicationutilisateur contient une

partie haut niveau enCC++ et une partie basniveau sous syndex avecun eacutechange de donneacuteesentre les deux partie en

utilisant la couche RTAIde linux

Equipe Systegraveme Robotiseacute de Production pp cat on aut n veauOn entend application haut

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6279

S y nd

e x

V5

niveau tout programmecomme la planification detrajectoires strateacutegies de

navigation etc hellipLrsquoeacutechange de donneacutees sefait par le biais desmeacutemoires partageacutees quifont parti du noyau RTAI

et de lrsquoespace utilisateursde Linux

Toute ressource preacutesente sur la carte Robosoft peutecirctre partageacutee sans aune restriction

Equipe Systegraveme Robotiseacute de Production pp cat on as n veauUne application bas niveau

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6379

S y nd

e x

V5

Une application bas niveau

est un programme conccedilusous syndex comme lacommande des moteurs la

lecture des capteurs etc hellipLes ressources mateacuteriellessont controcircler par plusieurs

cartes MPC555 Ces cartessrsquoeacutechangent des donneacuteesvia le bus CAN Donc ES

est prise en charge par lasource logicielle deacutedieacutee quisrsquoexeacutecute dans les cartes MPC555 puis la couche RTAI

est utiliseacute pour la mise agrave jour de meacutemoires partageacutees pour lrsquoespace utilisateurs linux drsquoeacutechange de donneacutees

Equipe Systegraveme Robotiseacute de ProductionUtilisation de linux_IO par syndex

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6479

S y nd

e x

V5

Equipe Systegraveme Robotiseacute de ProductionUtilisation de linux_IO par syndex

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6579

S y nd

e x

V5

Equipe Systegraveme Robotiseacute de Production

5

Utilisation de linux_IO par syndex

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6679

S y nd

e x

V5

Degraves que la conception de lrsquoapplication sous syndex esttermineacutee et apregraves compilation (AdequationDo it +GenExec) un fichier drsquoentecircte sous le nom de linioh est

automatiquement geacuteneacutereacute Ce fichier contient lesinformations neacutecessaires pour acceacuteder aux entreacutees enlecture et aux sorties en eacutecriture des opeacuterations linuxIO_

inseacutereacutees dans le graphe drsquoalgorithme Le contenu de cefichier est organiseacute en plusieurs parties une pour chaqueopeacuteration linux_IO preacutesente dans le graphe

Equipe Systegraveme Robotiseacute de Production

5

Utilisation de linux_IO par syndex linioh auto-generated C users API frontend

C i h b f 2001 i i i b f f

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6779

S y nd

e x

V5 Copyright Robosoft 2001 Pierre Pomiers ltpierrerobosoftfrgt

LINUX IO shared memory data segments

define SEG0_BASE 0x10000typedef struct

int js_spd_o0

int js_str_o0

int enc_R_o0int enc_L_o0

double odo_X_o0

double odo_Y_o0

double odo_T_o0int spd_R_o0

int spd_L_o0

int time

unsigned char sem shm_seg0_def

Nom du segment de meacutemoire partageacutee pour notre opeacuteration linuxIO_

7 signaux drsquoentreacutees Ces valeurs sonten lecture et sont peacuteriodiquementrafraicircchies par RTAI

2 signaux de sorties Ces valeurs sonten eacutecriture et sont peacuteriodiquementrafraicircchies par RTAI

Equipe Systegraveme Robotiseacute de Production

5

Crsquoest une eacutetape tregraves facile il suffit drsquoinclure le fichier drsquoentecirctelinio h dans le code du fichier en CC++ comme suit

Utilisation de linuxIO_ par un programme CC+

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6879

S y nd

e x

V5 linioh dans le code du fichier en CC++ comme suit

include linioh

include ltrtai_shmhgt

static shm_seg0_def seg0

shm_seg0_def robot

seg0 = rtai_malloc (SEG0_BASE sizeof (shm_seg0_def))

if (seg0-gtsem = 0) bcopy (seg0 amprobot sizeof (shm_seg0_def))helliphelliphellip

helliphelliphellip bcopy (amprobot seg0 sizeof (shm_seg0_def))helliphelliphelliphelliphelliphellip

rtai_free (SEG0_BASE seg0)

fichier drsquoentecircte de la meacutemoire partageacutee fourni dans la couche RTAI de linux

Initialisation du segment SEG0_BASE Allocation de lameacutemoire pointeacutee

par seg0

Lecture des donneacutees provenant du bas

niveau

Mise agrave jours du segment de meacutemoire partageacutee

Libeacuterer le segment de meacutemoire alloueacute

Equipe Systegraveme Robotiseacute de Production

5

Plan

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6979

S y nd e x

V5

bull Introductionbull Meacutethodologie AAA

bull Installationbull Utilisation du logiciel Syndex

bull Macrosbull LinuxIO un interface CC++ avec SynDEx

bull Exemple drsquoapplication Robuter-ULM

Equipe Systegraveme Robotiseacute de Production

V5

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7079

S y nd e x

V5

Exemple dapplication Exemple dapplication Robuter Robuter--ULM ULM

Equipe Systegraveme Robotiseacute de Production

V5

Description Robuter-ULMbull Base mobile (2-RM 2-RF)

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7179

S y nd e x

V

bull Bras ultra-leacuteger 6 axesbull Ceinture 24 capteurs US

bull Capteur drsquoefforts 6 axes

bull Cameacutera CCD monochromeavec carte drsquoacquisition

bull PC embarqueacute MMX 233

bull OS linux redhat 61 avecRTAI V-13

bull 3 bouton drsquoarrecirct drsquourgence

bull 4 batteries 48 VDC 4 X12V 60 Ah

bull Entreacutee Joystick

bull Liaison Ethernet sans fil

Le manipulateur mobile Robuter-ULM comprend

Equipe Systegraveme Robotiseacute de Production

V5

Base Mobilebull dimension

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7279

S y nd e x

V

1025 mm de longueur 680 mm de largueur et 44 cm de hauteurbull Poids environ 150 kg avec les batteriesbull charge jusqursquoagrave 120 kg

bull vitesse de 5cms agrave 125 msbull Moteurs 2 X 300 W DC 48 VDCbull orientation par diffeacuterence de vitesse

bull Preacutecision Position par encodeurs optiquesbull Deux roues motrices diffeacuterentielles et de deux roues follesbull Drsquoune ceinture de 24 capteurs Ultrasons

bull Une carte MPC555 de Robosoft pour le controcircle des deuxmoteurs DC des 2 rouesbull Un systegraveme drsquoodomeacutetrie qui donne la position relative du robot

par rapport agrave son repegravere

Equipe Systegraveme Robotiseacute de Production

V5

bull dimension Faute de documentation

Bras U tra- eacuteger

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7379

S y nd e x

V Faute de documentation

bull Poids moins de 20 kgbull charge 2 kgbull Moteurs 6 moteurs DC

bull gripper pince eacutelectrique 2 doigtsbull Reacutepeacutetabiliteacute +- 1mmbull 3 carte MPC555 de Robosoft lrsquoune pour le capteur drsquoeffort et les

deux autres pour les 6 moteurs + moteur de la pincebull Position encodeur increacutemental

1 2 3 4 5 6Axisrange

plusmn90deg 0-90deg plusmn80deg plusmn100deg plusmn90deg plusmn110deg

vitesse 180degs 180degs 180degs 180degs 180degs 180degs

Equipe Systegraveme Robotiseacute de Production

V5

rc tecture ar ware

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7479

S y nd e x

V

Equipe Systegraveme Robotiseacute de Production

V5

Pro eacutemat quePlusieurs applications peuvent ecirctre impleacutementeacutees sur le robot

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7579

S y nd e x

V

Cependant il faut faire la diffeacuterence entre les applications quidemande lrsquoutilisation de syndex et les applications qui neneacutecessite qursquoune programmation en CC++ Agrave titre drsquoexemple

bull Localisationbull Commande en position

bull Commande en forcebull Navigation

bull Geacuteneacuteration de trajectoire

bull Vision

Equipe Systegraveme Robotiseacute de Production

V5 bull Pince eacutelectrique (TOR)

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7679

S y nd e x

Vq ( )

bull Pince possegravede des ES Logiques

Notre application consiste agrave

bull Recevoir lrsquoeacutetat de la pince (fermeacutee ouverte )

bull Envoyer une commande vers la pince

Capture

drsquoinformation

Open

Close

CommandeMeacutemoire

Partageacutee

Actionneur

Pince Prise de deacutecision Pince

Equipe Systegraveme Robotiseacute de Production

V5

Sc eacutema eacute ectr que

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7779

S y nd e x

Equipe Systegraveme Robotiseacute de Production

V5

Conclusion

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7879

S y nd e x bull Introduction

bull Meacutethodologie AAA

bull Installationbull Utilisation du logiciel Syndex

bull Macrosbull LinuxIO un interface CC++ avec SynDEx

bull Exemple drsquoapplication Robuter-ULM

Equipe Systegraveme Robotiseacute de Production

V5

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7979

S y nd e x

Questions

Page 54: Cours Syndex

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5479

S y nd

e x

V5

bull Initialisation de la carte Robosoftmain_ini_() macro ne doit pas ecirctre utiliser par les programmateursdu fait qursquoelle sert qursquoagrave initialiser la carte robosoft Macro interne agrave

syndex dont lrsquoappel est automatique lors de geacuteneacuteration drsquoexeacutecutifMPC555

bull DAC (Digital to Analog Converter)

macro permet lrsquoutilisation du convertisseur de carte robosoft via lemodule MIOs en utilisant les pins de 0 agrave 2

bull LED (on-bord LED interface)

macro permet la gestion de la LED de la carte robosoft connecteacuteeau module QSPI (pin PCS1)

bull SPI absolute encoder

macro permet lrsquoutilisation lrsquointerface du codeur absolu de la carterobosoft connecteacute au module QSPI

Equipe Systegraveme Robotiseacute de ProductionMacros Speacutec ques Ro oso tbull Motor amplifier direction

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5579

S y nd

e x

V5

Motor amplifier directionmacro qui permet de geacuterer la direction des moteurs

bull Motor power amplifier validationles moteurs embarqueacutes sur les robots sont eacutequipeacutes de freins

eacutelectriquement commandable Ce macro permet drsquoenvoyer unsignal drsquoinhibition pour deacutebloquer les freins

bull Watch dog

pour des raisons de seacutecuriteacute un meacutecanisme mateacuteriel que robosofta ajouteacute sur la carte Ce watch-dog vise agrave stopper lrsquoactiviteacute dumoteur en cas ougrave le programme plante Le watch est impleacutementeacute

comme un time-out mateacuteriel Srsquoil nrsquoest pas rafraicircchi peacuteriodiquement il transmet un signal de sortie ce qui enlegraveve lavalidation de lrsquoamplificateur de puissance donc lrsquoarrecirct dumouvement

ces macros se trouvent dans le fichier RSBm4x

Equipe Systegraveme Robotiseacute de Production

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5679

S y nd

e x

V5

Macros de Communicationchaque meacutedia de communication (bus CAN ) est une ressourceseacutequentielle ougrave les transferts de donneacutees entre processeurs doiventsuivre un certain ordre Donc ce macro de communication sert agravedeacutefinir cet ordre et agrave identifier le protocole de communication lecodagedeacutecodage de lrsquoinformation et la synchronisation

on trouve ces macros dans le fichier CANm4x

Macros drsquoapplicationce genre de macros sont speacutecifique au mateacuteriel en question et aussiagrave lrsquoapplication en particulier Ce sont des macros utilisateurs

on trouve ces macros dans le fichier Application_namem4x

Equipe Systegraveme Robotiseacute de Production

section include (pour inclure drsquoautres fichiers macro agrave utiliseStructure du fichier macr

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5779

S y nd

e x

V5

section define (pour tous les macros utilisateurs)MGC lsquoINITrsquo (MGC Macro Generation Context variable)

divert (declaration) (deacutebut du macro)

(deacuteclaration des variables des meacutemoires et des csts

divert (o)

MGC lsquolooprsquocode en assembleur code en C

dnl (commentaires)

MGC lsquoENDrsquo dnl (fin de la macros)divert lsquo lsquo dnl

macros MPC555meacutemoire MPC555

constante MPC555

macros RTAImeacutemoire RTAI

constante RTAI

Equipe Systegraveme Robotiseacute de Production Plan

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5879

S y nd

e x

V5

bull Introduction

bull Meacutethodologie AAA

bull Installationbull Utilisation du logiciel Syndex

bull Macrosbull LinuxIO un interface CC++ avec SynDEx

bull Exemple drsquoapplication Robuter-ULM

Equipe Systegraveme Robotiseacute de Production

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5979

S y nd

e x

V5

LinuxIO LinuxIO une interface une interface

CC++ avecCC++ avec SynDExSynDEx

bull Principe de basebull Utilisation de linuxIO_ par syndex

bull Utilisation de linuxIO_ par un programmeCC++

Equipe Systegraveme Robotiseacute de ProductionPrincipe de baseSyndex fourni une interface graphique pour la conception

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6079

S y nd

e x

V5

Syndex fourni une interface graphique pour la conception

drsquoapplications Par contre des fois nous avons besoin drsquoautresfonctionnaliteacutes non disponibles donc il faut les creacuteer Cependantgeacuteneacuterer des macros pour syndex srsquoavegravere difficile pour certains du

fait qursquoil faut avoir une bonne connaissance de la programmation bas niveau Dans ce cas lrsquoutilisation de linux_IO trouve sa placedans un contexte particulier interfacer des applications CC++utilisateurs avec des applications embarqueacutees temps reacuteeldeacuteveloppeacutees sous syndex

Par rapport agrave ce contexte de programmation lrsquoorganisation du

deacuteveloppement des applications est structureacutee en deux parties 1 Application haut niveau

2 Application bas niveau

Equipe Systegraveme Robotiseacute de ProductionPrincipe de base

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6179

S y nd

e x

V5

En reacutesumeacute lrsquoapplicationutilisateur contient une

partie haut niveau enCC++ et une partie basniveau sous syndex avecun eacutechange de donneacuteesentre les deux partie en

utilisant la couche RTAIde linux

Equipe Systegraveme Robotiseacute de Production pp cat on aut n veauOn entend application haut

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6279

S y nd

e x

V5

niveau tout programmecomme la planification detrajectoires strateacutegies de

navigation etc hellipLrsquoeacutechange de donneacutees sefait par le biais desmeacutemoires partageacutees quifont parti du noyau RTAI

et de lrsquoespace utilisateursde Linux

Toute ressource preacutesente sur la carte Robosoft peutecirctre partageacutee sans aune restriction

Equipe Systegraveme Robotiseacute de Production pp cat on as n veauUne application bas niveau

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6379

S y nd

e x

V5

Une application bas niveau

est un programme conccedilusous syndex comme lacommande des moteurs la

lecture des capteurs etc hellipLes ressources mateacuteriellessont controcircler par plusieurs

cartes MPC555 Ces cartessrsquoeacutechangent des donneacuteesvia le bus CAN Donc ES

est prise en charge par lasource logicielle deacutedieacutee quisrsquoexeacutecute dans les cartes MPC555 puis la couche RTAI

est utiliseacute pour la mise agrave jour de meacutemoires partageacutees pour lrsquoespace utilisateurs linux drsquoeacutechange de donneacutees

Equipe Systegraveme Robotiseacute de ProductionUtilisation de linux_IO par syndex

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6479

S y nd

e x

V5

Equipe Systegraveme Robotiseacute de ProductionUtilisation de linux_IO par syndex

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6579

S y nd

e x

V5

Equipe Systegraveme Robotiseacute de Production

5

Utilisation de linux_IO par syndex

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6679

S y nd

e x

V5

Degraves que la conception de lrsquoapplication sous syndex esttermineacutee et apregraves compilation (AdequationDo it +GenExec) un fichier drsquoentecircte sous le nom de linioh est

automatiquement geacuteneacutereacute Ce fichier contient lesinformations neacutecessaires pour acceacuteder aux entreacutees enlecture et aux sorties en eacutecriture des opeacuterations linuxIO_

inseacutereacutees dans le graphe drsquoalgorithme Le contenu de cefichier est organiseacute en plusieurs parties une pour chaqueopeacuteration linux_IO preacutesente dans le graphe

Equipe Systegraveme Robotiseacute de Production

5

Utilisation de linux_IO par syndex linioh auto-generated C users API frontend

C i h b f 2001 i i i b f f

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6779

S y nd

e x

V5 Copyright Robosoft 2001 Pierre Pomiers ltpierrerobosoftfrgt

LINUX IO shared memory data segments

define SEG0_BASE 0x10000typedef struct

int js_spd_o0

int js_str_o0

int enc_R_o0int enc_L_o0

double odo_X_o0

double odo_Y_o0

double odo_T_o0int spd_R_o0

int spd_L_o0

int time

unsigned char sem shm_seg0_def

Nom du segment de meacutemoire partageacutee pour notre opeacuteration linuxIO_

7 signaux drsquoentreacutees Ces valeurs sonten lecture et sont peacuteriodiquementrafraicircchies par RTAI

2 signaux de sorties Ces valeurs sonten eacutecriture et sont peacuteriodiquementrafraicircchies par RTAI

Equipe Systegraveme Robotiseacute de Production

5

Crsquoest une eacutetape tregraves facile il suffit drsquoinclure le fichier drsquoentecirctelinio h dans le code du fichier en CC++ comme suit

Utilisation de linuxIO_ par un programme CC+

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6879

S y nd

e x

V5 linioh dans le code du fichier en CC++ comme suit

include linioh

include ltrtai_shmhgt

static shm_seg0_def seg0

shm_seg0_def robot

seg0 = rtai_malloc (SEG0_BASE sizeof (shm_seg0_def))

if (seg0-gtsem = 0) bcopy (seg0 amprobot sizeof (shm_seg0_def))helliphelliphellip

helliphelliphellip bcopy (amprobot seg0 sizeof (shm_seg0_def))helliphelliphelliphelliphelliphellip

rtai_free (SEG0_BASE seg0)

fichier drsquoentecircte de la meacutemoire partageacutee fourni dans la couche RTAI de linux

Initialisation du segment SEG0_BASE Allocation de lameacutemoire pointeacutee

par seg0

Lecture des donneacutees provenant du bas

niveau

Mise agrave jours du segment de meacutemoire partageacutee

Libeacuterer le segment de meacutemoire alloueacute

Equipe Systegraveme Robotiseacute de Production

5

Plan

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6979

S y nd e x

V5

bull Introductionbull Meacutethodologie AAA

bull Installationbull Utilisation du logiciel Syndex

bull Macrosbull LinuxIO un interface CC++ avec SynDEx

bull Exemple drsquoapplication Robuter-ULM

Equipe Systegraveme Robotiseacute de Production

V5

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7079

S y nd e x

V5

Exemple dapplication Exemple dapplication Robuter Robuter--ULM ULM

Equipe Systegraveme Robotiseacute de Production

V5

Description Robuter-ULMbull Base mobile (2-RM 2-RF)

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7179

S y nd e x

V

bull Bras ultra-leacuteger 6 axesbull Ceinture 24 capteurs US

bull Capteur drsquoefforts 6 axes

bull Cameacutera CCD monochromeavec carte drsquoacquisition

bull PC embarqueacute MMX 233

bull OS linux redhat 61 avecRTAI V-13

bull 3 bouton drsquoarrecirct drsquourgence

bull 4 batteries 48 VDC 4 X12V 60 Ah

bull Entreacutee Joystick

bull Liaison Ethernet sans fil

Le manipulateur mobile Robuter-ULM comprend

Equipe Systegraveme Robotiseacute de Production

V5

Base Mobilebull dimension

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7279

S y nd e x

V

1025 mm de longueur 680 mm de largueur et 44 cm de hauteurbull Poids environ 150 kg avec les batteriesbull charge jusqursquoagrave 120 kg

bull vitesse de 5cms agrave 125 msbull Moteurs 2 X 300 W DC 48 VDCbull orientation par diffeacuterence de vitesse

bull Preacutecision Position par encodeurs optiquesbull Deux roues motrices diffeacuterentielles et de deux roues follesbull Drsquoune ceinture de 24 capteurs Ultrasons

bull Une carte MPC555 de Robosoft pour le controcircle des deuxmoteurs DC des 2 rouesbull Un systegraveme drsquoodomeacutetrie qui donne la position relative du robot

par rapport agrave son repegravere

Equipe Systegraveme Robotiseacute de Production

V5

bull dimension Faute de documentation

Bras U tra- eacuteger

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7379

S y nd e x

V Faute de documentation

bull Poids moins de 20 kgbull charge 2 kgbull Moteurs 6 moteurs DC

bull gripper pince eacutelectrique 2 doigtsbull Reacutepeacutetabiliteacute +- 1mmbull 3 carte MPC555 de Robosoft lrsquoune pour le capteur drsquoeffort et les

deux autres pour les 6 moteurs + moteur de la pincebull Position encodeur increacutemental

1 2 3 4 5 6Axisrange

plusmn90deg 0-90deg plusmn80deg plusmn100deg plusmn90deg plusmn110deg

vitesse 180degs 180degs 180degs 180degs 180degs 180degs

Equipe Systegraveme Robotiseacute de Production

V5

rc tecture ar ware

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7479

S y nd e x

V

Equipe Systegraveme Robotiseacute de Production

V5

Pro eacutemat quePlusieurs applications peuvent ecirctre impleacutementeacutees sur le robot

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7579

S y nd e x

V

Cependant il faut faire la diffeacuterence entre les applications quidemande lrsquoutilisation de syndex et les applications qui neneacutecessite qursquoune programmation en CC++ Agrave titre drsquoexemple

bull Localisationbull Commande en position

bull Commande en forcebull Navigation

bull Geacuteneacuteration de trajectoire

bull Vision

Equipe Systegraveme Robotiseacute de Production

V5 bull Pince eacutelectrique (TOR)

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7679

S y nd e x

Vq ( )

bull Pince possegravede des ES Logiques

Notre application consiste agrave

bull Recevoir lrsquoeacutetat de la pince (fermeacutee ouverte )

bull Envoyer une commande vers la pince

Capture

drsquoinformation

Open

Close

CommandeMeacutemoire

Partageacutee

Actionneur

Pince Prise de deacutecision Pince

Equipe Systegraveme Robotiseacute de Production

V5

Sc eacutema eacute ectr que

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7779

S y nd e x

Equipe Systegraveme Robotiseacute de Production

V5

Conclusion

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7879

S y nd e x bull Introduction

bull Meacutethodologie AAA

bull Installationbull Utilisation du logiciel Syndex

bull Macrosbull LinuxIO un interface CC++ avec SynDEx

bull Exemple drsquoapplication Robuter-ULM

Equipe Systegraveme Robotiseacute de Production

V5

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7979

S y nd e x

Questions

Page 55: Cours Syndex

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5579

S y nd

e x

V5

Motor amplifier directionmacro qui permet de geacuterer la direction des moteurs

bull Motor power amplifier validationles moteurs embarqueacutes sur les robots sont eacutequipeacutes de freins

eacutelectriquement commandable Ce macro permet drsquoenvoyer unsignal drsquoinhibition pour deacutebloquer les freins

bull Watch dog

pour des raisons de seacutecuriteacute un meacutecanisme mateacuteriel que robosofta ajouteacute sur la carte Ce watch-dog vise agrave stopper lrsquoactiviteacute dumoteur en cas ougrave le programme plante Le watch est impleacutementeacute

comme un time-out mateacuteriel Srsquoil nrsquoest pas rafraicircchi peacuteriodiquement il transmet un signal de sortie ce qui enlegraveve lavalidation de lrsquoamplificateur de puissance donc lrsquoarrecirct dumouvement

ces macros se trouvent dans le fichier RSBm4x

Equipe Systegraveme Robotiseacute de Production

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5679

S y nd

e x

V5

Macros de Communicationchaque meacutedia de communication (bus CAN ) est une ressourceseacutequentielle ougrave les transferts de donneacutees entre processeurs doiventsuivre un certain ordre Donc ce macro de communication sert agravedeacutefinir cet ordre et agrave identifier le protocole de communication lecodagedeacutecodage de lrsquoinformation et la synchronisation

on trouve ces macros dans le fichier CANm4x

Macros drsquoapplicationce genre de macros sont speacutecifique au mateacuteriel en question et aussiagrave lrsquoapplication en particulier Ce sont des macros utilisateurs

on trouve ces macros dans le fichier Application_namem4x

Equipe Systegraveme Robotiseacute de Production

section include (pour inclure drsquoautres fichiers macro agrave utiliseStructure du fichier macr

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5779

S y nd

e x

V5

section define (pour tous les macros utilisateurs)MGC lsquoINITrsquo (MGC Macro Generation Context variable)

divert (declaration) (deacutebut du macro)

(deacuteclaration des variables des meacutemoires et des csts

divert (o)

MGC lsquolooprsquocode en assembleur code en C

dnl (commentaires)

MGC lsquoENDrsquo dnl (fin de la macros)divert lsquo lsquo dnl

macros MPC555meacutemoire MPC555

constante MPC555

macros RTAImeacutemoire RTAI

constante RTAI

Equipe Systegraveme Robotiseacute de Production Plan

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5879

S y nd

e x

V5

bull Introduction

bull Meacutethodologie AAA

bull Installationbull Utilisation du logiciel Syndex

bull Macrosbull LinuxIO un interface CC++ avec SynDEx

bull Exemple drsquoapplication Robuter-ULM

Equipe Systegraveme Robotiseacute de Production

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5979

S y nd

e x

V5

LinuxIO LinuxIO une interface une interface

CC++ avecCC++ avec SynDExSynDEx

bull Principe de basebull Utilisation de linuxIO_ par syndex

bull Utilisation de linuxIO_ par un programmeCC++

Equipe Systegraveme Robotiseacute de ProductionPrincipe de baseSyndex fourni une interface graphique pour la conception

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6079

S y nd

e x

V5

Syndex fourni une interface graphique pour la conception

drsquoapplications Par contre des fois nous avons besoin drsquoautresfonctionnaliteacutes non disponibles donc il faut les creacuteer Cependantgeacuteneacuterer des macros pour syndex srsquoavegravere difficile pour certains du

fait qursquoil faut avoir une bonne connaissance de la programmation bas niveau Dans ce cas lrsquoutilisation de linux_IO trouve sa placedans un contexte particulier interfacer des applications CC++utilisateurs avec des applications embarqueacutees temps reacuteeldeacuteveloppeacutees sous syndex

Par rapport agrave ce contexte de programmation lrsquoorganisation du

deacuteveloppement des applications est structureacutee en deux parties 1 Application haut niveau

2 Application bas niveau

Equipe Systegraveme Robotiseacute de ProductionPrincipe de base

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6179

S y nd

e x

V5

En reacutesumeacute lrsquoapplicationutilisateur contient une

partie haut niveau enCC++ et une partie basniveau sous syndex avecun eacutechange de donneacuteesentre les deux partie en

utilisant la couche RTAIde linux

Equipe Systegraveme Robotiseacute de Production pp cat on aut n veauOn entend application haut

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6279

S y nd

e x

V5

niveau tout programmecomme la planification detrajectoires strateacutegies de

navigation etc hellipLrsquoeacutechange de donneacutees sefait par le biais desmeacutemoires partageacutees quifont parti du noyau RTAI

et de lrsquoespace utilisateursde Linux

Toute ressource preacutesente sur la carte Robosoft peutecirctre partageacutee sans aune restriction

Equipe Systegraveme Robotiseacute de Production pp cat on as n veauUne application bas niveau

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6379

S y nd

e x

V5

Une application bas niveau

est un programme conccedilusous syndex comme lacommande des moteurs la

lecture des capteurs etc hellipLes ressources mateacuteriellessont controcircler par plusieurs

cartes MPC555 Ces cartessrsquoeacutechangent des donneacuteesvia le bus CAN Donc ES

est prise en charge par lasource logicielle deacutedieacutee quisrsquoexeacutecute dans les cartes MPC555 puis la couche RTAI

est utiliseacute pour la mise agrave jour de meacutemoires partageacutees pour lrsquoespace utilisateurs linux drsquoeacutechange de donneacutees

Equipe Systegraveme Robotiseacute de ProductionUtilisation de linux_IO par syndex

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6479

S y nd

e x

V5

Equipe Systegraveme Robotiseacute de ProductionUtilisation de linux_IO par syndex

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6579

S y nd

e x

V5

Equipe Systegraveme Robotiseacute de Production

5

Utilisation de linux_IO par syndex

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6679

S y nd

e x

V5

Degraves que la conception de lrsquoapplication sous syndex esttermineacutee et apregraves compilation (AdequationDo it +GenExec) un fichier drsquoentecircte sous le nom de linioh est

automatiquement geacuteneacutereacute Ce fichier contient lesinformations neacutecessaires pour acceacuteder aux entreacutees enlecture et aux sorties en eacutecriture des opeacuterations linuxIO_

inseacutereacutees dans le graphe drsquoalgorithme Le contenu de cefichier est organiseacute en plusieurs parties une pour chaqueopeacuteration linux_IO preacutesente dans le graphe

Equipe Systegraveme Robotiseacute de Production

5

Utilisation de linux_IO par syndex linioh auto-generated C users API frontend

C i h b f 2001 i i i b f f

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6779

S y nd

e x

V5 Copyright Robosoft 2001 Pierre Pomiers ltpierrerobosoftfrgt

LINUX IO shared memory data segments

define SEG0_BASE 0x10000typedef struct

int js_spd_o0

int js_str_o0

int enc_R_o0int enc_L_o0

double odo_X_o0

double odo_Y_o0

double odo_T_o0int spd_R_o0

int spd_L_o0

int time

unsigned char sem shm_seg0_def

Nom du segment de meacutemoire partageacutee pour notre opeacuteration linuxIO_

7 signaux drsquoentreacutees Ces valeurs sonten lecture et sont peacuteriodiquementrafraicircchies par RTAI

2 signaux de sorties Ces valeurs sonten eacutecriture et sont peacuteriodiquementrafraicircchies par RTAI

Equipe Systegraveme Robotiseacute de Production

5

Crsquoest une eacutetape tregraves facile il suffit drsquoinclure le fichier drsquoentecirctelinio h dans le code du fichier en CC++ comme suit

Utilisation de linuxIO_ par un programme CC+

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6879

S y nd

e x

V5 linioh dans le code du fichier en CC++ comme suit

include linioh

include ltrtai_shmhgt

static shm_seg0_def seg0

shm_seg0_def robot

seg0 = rtai_malloc (SEG0_BASE sizeof (shm_seg0_def))

if (seg0-gtsem = 0) bcopy (seg0 amprobot sizeof (shm_seg0_def))helliphelliphellip

helliphelliphellip bcopy (amprobot seg0 sizeof (shm_seg0_def))helliphelliphelliphelliphelliphellip

rtai_free (SEG0_BASE seg0)

fichier drsquoentecircte de la meacutemoire partageacutee fourni dans la couche RTAI de linux

Initialisation du segment SEG0_BASE Allocation de lameacutemoire pointeacutee

par seg0

Lecture des donneacutees provenant du bas

niveau

Mise agrave jours du segment de meacutemoire partageacutee

Libeacuterer le segment de meacutemoire alloueacute

Equipe Systegraveme Robotiseacute de Production

5

Plan

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6979

S y nd e x

V5

bull Introductionbull Meacutethodologie AAA

bull Installationbull Utilisation du logiciel Syndex

bull Macrosbull LinuxIO un interface CC++ avec SynDEx

bull Exemple drsquoapplication Robuter-ULM

Equipe Systegraveme Robotiseacute de Production

V5

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7079

S y nd e x

V5

Exemple dapplication Exemple dapplication Robuter Robuter--ULM ULM

Equipe Systegraveme Robotiseacute de Production

V5

Description Robuter-ULMbull Base mobile (2-RM 2-RF)

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7179

S y nd e x

V

bull Bras ultra-leacuteger 6 axesbull Ceinture 24 capteurs US

bull Capteur drsquoefforts 6 axes

bull Cameacutera CCD monochromeavec carte drsquoacquisition

bull PC embarqueacute MMX 233

bull OS linux redhat 61 avecRTAI V-13

bull 3 bouton drsquoarrecirct drsquourgence

bull 4 batteries 48 VDC 4 X12V 60 Ah

bull Entreacutee Joystick

bull Liaison Ethernet sans fil

Le manipulateur mobile Robuter-ULM comprend

Equipe Systegraveme Robotiseacute de Production

V5

Base Mobilebull dimension

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7279

S y nd e x

V

1025 mm de longueur 680 mm de largueur et 44 cm de hauteurbull Poids environ 150 kg avec les batteriesbull charge jusqursquoagrave 120 kg

bull vitesse de 5cms agrave 125 msbull Moteurs 2 X 300 W DC 48 VDCbull orientation par diffeacuterence de vitesse

bull Preacutecision Position par encodeurs optiquesbull Deux roues motrices diffeacuterentielles et de deux roues follesbull Drsquoune ceinture de 24 capteurs Ultrasons

bull Une carte MPC555 de Robosoft pour le controcircle des deuxmoteurs DC des 2 rouesbull Un systegraveme drsquoodomeacutetrie qui donne la position relative du robot

par rapport agrave son repegravere

Equipe Systegraveme Robotiseacute de Production

V5

bull dimension Faute de documentation

Bras U tra- eacuteger

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7379

S y nd e x

V Faute de documentation

bull Poids moins de 20 kgbull charge 2 kgbull Moteurs 6 moteurs DC

bull gripper pince eacutelectrique 2 doigtsbull Reacutepeacutetabiliteacute +- 1mmbull 3 carte MPC555 de Robosoft lrsquoune pour le capteur drsquoeffort et les

deux autres pour les 6 moteurs + moteur de la pincebull Position encodeur increacutemental

1 2 3 4 5 6Axisrange

plusmn90deg 0-90deg plusmn80deg plusmn100deg plusmn90deg plusmn110deg

vitesse 180degs 180degs 180degs 180degs 180degs 180degs

Equipe Systegraveme Robotiseacute de Production

V5

rc tecture ar ware

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7479

S y nd e x

V

Equipe Systegraveme Robotiseacute de Production

V5

Pro eacutemat quePlusieurs applications peuvent ecirctre impleacutementeacutees sur le robot

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7579

S y nd e x

V

Cependant il faut faire la diffeacuterence entre les applications quidemande lrsquoutilisation de syndex et les applications qui neneacutecessite qursquoune programmation en CC++ Agrave titre drsquoexemple

bull Localisationbull Commande en position

bull Commande en forcebull Navigation

bull Geacuteneacuteration de trajectoire

bull Vision

Equipe Systegraveme Robotiseacute de Production

V5 bull Pince eacutelectrique (TOR)

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7679

S y nd e x

Vq ( )

bull Pince possegravede des ES Logiques

Notre application consiste agrave

bull Recevoir lrsquoeacutetat de la pince (fermeacutee ouverte )

bull Envoyer une commande vers la pince

Capture

drsquoinformation

Open

Close

CommandeMeacutemoire

Partageacutee

Actionneur

Pince Prise de deacutecision Pince

Equipe Systegraveme Robotiseacute de Production

V5

Sc eacutema eacute ectr que

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7779

S y nd e x

Equipe Systegraveme Robotiseacute de Production

V5

Conclusion

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7879

S y nd e x bull Introduction

bull Meacutethodologie AAA

bull Installationbull Utilisation du logiciel Syndex

bull Macrosbull LinuxIO un interface CC++ avec SynDEx

bull Exemple drsquoapplication Robuter-ULM

Equipe Systegraveme Robotiseacute de Production

V5

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7979

S y nd e x

Questions

Page 56: Cours Syndex

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5679

S y nd

e x

V5

Macros de Communicationchaque meacutedia de communication (bus CAN ) est une ressourceseacutequentielle ougrave les transferts de donneacutees entre processeurs doiventsuivre un certain ordre Donc ce macro de communication sert agravedeacutefinir cet ordre et agrave identifier le protocole de communication lecodagedeacutecodage de lrsquoinformation et la synchronisation

on trouve ces macros dans le fichier CANm4x

Macros drsquoapplicationce genre de macros sont speacutecifique au mateacuteriel en question et aussiagrave lrsquoapplication en particulier Ce sont des macros utilisateurs

on trouve ces macros dans le fichier Application_namem4x

Equipe Systegraveme Robotiseacute de Production

section include (pour inclure drsquoautres fichiers macro agrave utiliseStructure du fichier macr

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5779

S y nd

e x

V5

section define (pour tous les macros utilisateurs)MGC lsquoINITrsquo (MGC Macro Generation Context variable)

divert (declaration) (deacutebut du macro)

(deacuteclaration des variables des meacutemoires et des csts

divert (o)

MGC lsquolooprsquocode en assembleur code en C

dnl (commentaires)

MGC lsquoENDrsquo dnl (fin de la macros)divert lsquo lsquo dnl

macros MPC555meacutemoire MPC555

constante MPC555

macros RTAImeacutemoire RTAI

constante RTAI

Equipe Systegraveme Robotiseacute de Production Plan

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5879

S y nd

e x

V5

bull Introduction

bull Meacutethodologie AAA

bull Installationbull Utilisation du logiciel Syndex

bull Macrosbull LinuxIO un interface CC++ avec SynDEx

bull Exemple drsquoapplication Robuter-ULM

Equipe Systegraveme Robotiseacute de Production

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5979

S y nd

e x

V5

LinuxIO LinuxIO une interface une interface

CC++ avecCC++ avec SynDExSynDEx

bull Principe de basebull Utilisation de linuxIO_ par syndex

bull Utilisation de linuxIO_ par un programmeCC++

Equipe Systegraveme Robotiseacute de ProductionPrincipe de baseSyndex fourni une interface graphique pour la conception

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6079

S y nd

e x

V5

Syndex fourni une interface graphique pour la conception

drsquoapplications Par contre des fois nous avons besoin drsquoautresfonctionnaliteacutes non disponibles donc il faut les creacuteer Cependantgeacuteneacuterer des macros pour syndex srsquoavegravere difficile pour certains du

fait qursquoil faut avoir une bonne connaissance de la programmation bas niveau Dans ce cas lrsquoutilisation de linux_IO trouve sa placedans un contexte particulier interfacer des applications CC++utilisateurs avec des applications embarqueacutees temps reacuteeldeacuteveloppeacutees sous syndex

Par rapport agrave ce contexte de programmation lrsquoorganisation du

deacuteveloppement des applications est structureacutee en deux parties 1 Application haut niveau

2 Application bas niveau

Equipe Systegraveme Robotiseacute de ProductionPrincipe de base

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6179

S y nd

e x

V5

En reacutesumeacute lrsquoapplicationutilisateur contient une

partie haut niveau enCC++ et une partie basniveau sous syndex avecun eacutechange de donneacuteesentre les deux partie en

utilisant la couche RTAIde linux

Equipe Systegraveme Robotiseacute de Production pp cat on aut n veauOn entend application haut

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6279

S y nd

e x

V5

niveau tout programmecomme la planification detrajectoires strateacutegies de

navigation etc hellipLrsquoeacutechange de donneacutees sefait par le biais desmeacutemoires partageacutees quifont parti du noyau RTAI

et de lrsquoespace utilisateursde Linux

Toute ressource preacutesente sur la carte Robosoft peutecirctre partageacutee sans aune restriction

Equipe Systegraveme Robotiseacute de Production pp cat on as n veauUne application bas niveau

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6379

S y nd

e x

V5

Une application bas niveau

est un programme conccedilusous syndex comme lacommande des moteurs la

lecture des capteurs etc hellipLes ressources mateacuteriellessont controcircler par plusieurs

cartes MPC555 Ces cartessrsquoeacutechangent des donneacuteesvia le bus CAN Donc ES

est prise en charge par lasource logicielle deacutedieacutee quisrsquoexeacutecute dans les cartes MPC555 puis la couche RTAI

est utiliseacute pour la mise agrave jour de meacutemoires partageacutees pour lrsquoespace utilisateurs linux drsquoeacutechange de donneacutees

Equipe Systegraveme Robotiseacute de ProductionUtilisation de linux_IO par syndex

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6479

S y nd

e x

V5

Equipe Systegraveme Robotiseacute de ProductionUtilisation de linux_IO par syndex

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6579

S y nd

e x

V5

Equipe Systegraveme Robotiseacute de Production

5

Utilisation de linux_IO par syndex

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6679

S y nd

e x

V5

Degraves que la conception de lrsquoapplication sous syndex esttermineacutee et apregraves compilation (AdequationDo it +GenExec) un fichier drsquoentecircte sous le nom de linioh est

automatiquement geacuteneacutereacute Ce fichier contient lesinformations neacutecessaires pour acceacuteder aux entreacutees enlecture et aux sorties en eacutecriture des opeacuterations linuxIO_

inseacutereacutees dans le graphe drsquoalgorithme Le contenu de cefichier est organiseacute en plusieurs parties une pour chaqueopeacuteration linux_IO preacutesente dans le graphe

Equipe Systegraveme Robotiseacute de Production

5

Utilisation de linux_IO par syndex linioh auto-generated C users API frontend

C i h b f 2001 i i i b f f

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6779

S y nd

e x

V5 Copyright Robosoft 2001 Pierre Pomiers ltpierrerobosoftfrgt

LINUX IO shared memory data segments

define SEG0_BASE 0x10000typedef struct

int js_spd_o0

int js_str_o0

int enc_R_o0int enc_L_o0

double odo_X_o0

double odo_Y_o0

double odo_T_o0int spd_R_o0

int spd_L_o0

int time

unsigned char sem shm_seg0_def

Nom du segment de meacutemoire partageacutee pour notre opeacuteration linuxIO_

7 signaux drsquoentreacutees Ces valeurs sonten lecture et sont peacuteriodiquementrafraicircchies par RTAI

2 signaux de sorties Ces valeurs sonten eacutecriture et sont peacuteriodiquementrafraicircchies par RTAI

Equipe Systegraveme Robotiseacute de Production

5

Crsquoest une eacutetape tregraves facile il suffit drsquoinclure le fichier drsquoentecirctelinio h dans le code du fichier en CC++ comme suit

Utilisation de linuxIO_ par un programme CC+

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6879

S y nd

e x

V5 linioh dans le code du fichier en CC++ comme suit

include linioh

include ltrtai_shmhgt

static shm_seg0_def seg0

shm_seg0_def robot

seg0 = rtai_malloc (SEG0_BASE sizeof (shm_seg0_def))

if (seg0-gtsem = 0) bcopy (seg0 amprobot sizeof (shm_seg0_def))helliphelliphellip

helliphelliphellip bcopy (amprobot seg0 sizeof (shm_seg0_def))helliphelliphelliphelliphelliphellip

rtai_free (SEG0_BASE seg0)

fichier drsquoentecircte de la meacutemoire partageacutee fourni dans la couche RTAI de linux

Initialisation du segment SEG0_BASE Allocation de lameacutemoire pointeacutee

par seg0

Lecture des donneacutees provenant du bas

niveau

Mise agrave jours du segment de meacutemoire partageacutee

Libeacuterer le segment de meacutemoire alloueacute

Equipe Systegraveme Robotiseacute de Production

5

Plan

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6979

S y nd e x

V5

bull Introductionbull Meacutethodologie AAA

bull Installationbull Utilisation du logiciel Syndex

bull Macrosbull LinuxIO un interface CC++ avec SynDEx

bull Exemple drsquoapplication Robuter-ULM

Equipe Systegraveme Robotiseacute de Production

V5

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7079

S y nd e x

V5

Exemple dapplication Exemple dapplication Robuter Robuter--ULM ULM

Equipe Systegraveme Robotiseacute de Production

V5

Description Robuter-ULMbull Base mobile (2-RM 2-RF)

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7179

S y nd e x

V

bull Bras ultra-leacuteger 6 axesbull Ceinture 24 capteurs US

bull Capteur drsquoefforts 6 axes

bull Cameacutera CCD monochromeavec carte drsquoacquisition

bull PC embarqueacute MMX 233

bull OS linux redhat 61 avecRTAI V-13

bull 3 bouton drsquoarrecirct drsquourgence

bull 4 batteries 48 VDC 4 X12V 60 Ah

bull Entreacutee Joystick

bull Liaison Ethernet sans fil

Le manipulateur mobile Robuter-ULM comprend

Equipe Systegraveme Robotiseacute de Production

V5

Base Mobilebull dimension

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7279

S y nd e x

V

1025 mm de longueur 680 mm de largueur et 44 cm de hauteurbull Poids environ 150 kg avec les batteriesbull charge jusqursquoagrave 120 kg

bull vitesse de 5cms agrave 125 msbull Moteurs 2 X 300 W DC 48 VDCbull orientation par diffeacuterence de vitesse

bull Preacutecision Position par encodeurs optiquesbull Deux roues motrices diffeacuterentielles et de deux roues follesbull Drsquoune ceinture de 24 capteurs Ultrasons

bull Une carte MPC555 de Robosoft pour le controcircle des deuxmoteurs DC des 2 rouesbull Un systegraveme drsquoodomeacutetrie qui donne la position relative du robot

par rapport agrave son repegravere

Equipe Systegraveme Robotiseacute de Production

V5

bull dimension Faute de documentation

Bras U tra- eacuteger

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7379

S y nd e x

V Faute de documentation

bull Poids moins de 20 kgbull charge 2 kgbull Moteurs 6 moteurs DC

bull gripper pince eacutelectrique 2 doigtsbull Reacutepeacutetabiliteacute +- 1mmbull 3 carte MPC555 de Robosoft lrsquoune pour le capteur drsquoeffort et les

deux autres pour les 6 moteurs + moteur de la pincebull Position encodeur increacutemental

1 2 3 4 5 6Axisrange

plusmn90deg 0-90deg plusmn80deg plusmn100deg plusmn90deg plusmn110deg

vitesse 180degs 180degs 180degs 180degs 180degs 180degs

Equipe Systegraveme Robotiseacute de Production

V5

rc tecture ar ware

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7479

S y nd e x

V

Equipe Systegraveme Robotiseacute de Production

V5

Pro eacutemat quePlusieurs applications peuvent ecirctre impleacutementeacutees sur le robot

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7579

S y nd e x

V

Cependant il faut faire la diffeacuterence entre les applications quidemande lrsquoutilisation de syndex et les applications qui neneacutecessite qursquoune programmation en CC++ Agrave titre drsquoexemple

bull Localisationbull Commande en position

bull Commande en forcebull Navigation

bull Geacuteneacuteration de trajectoire

bull Vision

Equipe Systegraveme Robotiseacute de Production

V5 bull Pince eacutelectrique (TOR)

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7679

S y nd e x

Vq ( )

bull Pince possegravede des ES Logiques

Notre application consiste agrave

bull Recevoir lrsquoeacutetat de la pince (fermeacutee ouverte )

bull Envoyer une commande vers la pince

Capture

drsquoinformation

Open

Close

CommandeMeacutemoire

Partageacutee

Actionneur

Pince Prise de deacutecision Pince

Equipe Systegraveme Robotiseacute de Production

V5

Sc eacutema eacute ectr que

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7779

S y nd e x

Equipe Systegraveme Robotiseacute de Production

V5

Conclusion

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7879

S y nd e x bull Introduction

bull Meacutethodologie AAA

bull Installationbull Utilisation du logiciel Syndex

bull Macrosbull LinuxIO un interface CC++ avec SynDEx

bull Exemple drsquoapplication Robuter-ULM

Equipe Systegraveme Robotiseacute de Production

V5

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7979

S y nd e x

Questions

Page 57: Cours Syndex

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5779

S y nd

e x

V5

section define (pour tous les macros utilisateurs)MGC lsquoINITrsquo (MGC Macro Generation Context variable)

divert (declaration) (deacutebut du macro)

(deacuteclaration des variables des meacutemoires et des csts

divert (o)

MGC lsquolooprsquocode en assembleur code en C

dnl (commentaires)

MGC lsquoENDrsquo dnl (fin de la macros)divert lsquo lsquo dnl

macros MPC555meacutemoire MPC555

constante MPC555

macros RTAImeacutemoire RTAI

constante RTAI

Equipe Systegraveme Robotiseacute de Production Plan

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5879

S y nd

e x

V5

bull Introduction

bull Meacutethodologie AAA

bull Installationbull Utilisation du logiciel Syndex

bull Macrosbull LinuxIO un interface CC++ avec SynDEx

bull Exemple drsquoapplication Robuter-ULM

Equipe Systegraveme Robotiseacute de Production

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5979

S y nd

e x

V5

LinuxIO LinuxIO une interface une interface

CC++ avecCC++ avec SynDExSynDEx

bull Principe de basebull Utilisation de linuxIO_ par syndex

bull Utilisation de linuxIO_ par un programmeCC++

Equipe Systegraveme Robotiseacute de ProductionPrincipe de baseSyndex fourni une interface graphique pour la conception

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6079

S y nd

e x

V5

Syndex fourni une interface graphique pour la conception

drsquoapplications Par contre des fois nous avons besoin drsquoautresfonctionnaliteacutes non disponibles donc il faut les creacuteer Cependantgeacuteneacuterer des macros pour syndex srsquoavegravere difficile pour certains du

fait qursquoil faut avoir une bonne connaissance de la programmation bas niveau Dans ce cas lrsquoutilisation de linux_IO trouve sa placedans un contexte particulier interfacer des applications CC++utilisateurs avec des applications embarqueacutees temps reacuteeldeacuteveloppeacutees sous syndex

Par rapport agrave ce contexte de programmation lrsquoorganisation du

deacuteveloppement des applications est structureacutee en deux parties 1 Application haut niveau

2 Application bas niveau

Equipe Systegraveme Robotiseacute de ProductionPrincipe de base

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6179

S y nd

e x

V5

En reacutesumeacute lrsquoapplicationutilisateur contient une

partie haut niveau enCC++ et une partie basniveau sous syndex avecun eacutechange de donneacuteesentre les deux partie en

utilisant la couche RTAIde linux

Equipe Systegraveme Robotiseacute de Production pp cat on aut n veauOn entend application haut

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6279

S y nd

e x

V5

niveau tout programmecomme la planification detrajectoires strateacutegies de

navigation etc hellipLrsquoeacutechange de donneacutees sefait par le biais desmeacutemoires partageacutees quifont parti du noyau RTAI

et de lrsquoespace utilisateursde Linux

Toute ressource preacutesente sur la carte Robosoft peutecirctre partageacutee sans aune restriction

Equipe Systegraveme Robotiseacute de Production pp cat on as n veauUne application bas niveau

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6379

S y nd

e x

V5

Une application bas niveau

est un programme conccedilusous syndex comme lacommande des moteurs la

lecture des capteurs etc hellipLes ressources mateacuteriellessont controcircler par plusieurs

cartes MPC555 Ces cartessrsquoeacutechangent des donneacuteesvia le bus CAN Donc ES

est prise en charge par lasource logicielle deacutedieacutee quisrsquoexeacutecute dans les cartes MPC555 puis la couche RTAI

est utiliseacute pour la mise agrave jour de meacutemoires partageacutees pour lrsquoespace utilisateurs linux drsquoeacutechange de donneacutees

Equipe Systegraveme Robotiseacute de ProductionUtilisation de linux_IO par syndex

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6479

S y nd

e x

V5

Equipe Systegraveme Robotiseacute de ProductionUtilisation de linux_IO par syndex

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6579

S y nd

e x

V5

Equipe Systegraveme Robotiseacute de Production

5

Utilisation de linux_IO par syndex

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6679

S y nd

e x

V5

Degraves que la conception de lrsquoapplication sous syndex esttermineacutee et apregraves compilation (AdequationDo it +GenExec) un fichier drsquoentecircte sous le nom de linioh est

automatiquement geacuteneacutereacute Ce fichier contient lesinformations neacutecessaires pour acceacuteder aux entreacutees enlecture et aux sorties en eacutecriture des opeacuterations linuxIO_

inseacutereacutees dans le graphe drsquoalgorithme Le contenu de cefichier est organiseacute en plusieurs parties une pour chaqueopeacuteration linux_IO preacutesente dans le graphe

Equipe Systegraveme Robotiseacute de Production

5

Utilisation de linux_IO par syndex linioh auto-generated C users API frontend

C i h b f 2001 i i i b f f

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6779

S y nd

e x

V5 Copyright Robosoft 2001 Pierre Pomiers ltpierrerobosoftfrgt

LINUX IO shared memory data segments

define SEG0_BASE 0x10000typedef struct

int js_spd_o0

int js_str_o0

int enc_R_o0int enc_L_o0

double odo_X_o0

double odo_Y_o0

double odo_T_o0int spd_R_o0

int spd_L_o0

int time

unsigned char sem shm_seg0_def

Nom du segment de meacutemoire partageacutee pour notre opeacuteration linuxIO_

7 signaux drsquoentreacutees Ces valeurs sonten lecture et sont peacuteriodiquementrafraicircchies par RTAI

2 signaux de sorties Ces valeurs sonten eacutecriture et sont peacuteriodiquementrafraicircchies par RTAI

Equipe Systegraveme Robotiseacute de Production

5

Crsquoest une eacutetape tregraves facile il suffit drsquoinclure le fichier drsquoentecirctelinio h dans le code du fichier en CC++ comme suit

Utilisation de linuxIO_ par un programme CC+

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6879

S y nd

e x

V5 linioh dans le code du fichier en CC++ comme suit

include linioh

include ltrtai_shmhgt

static shm_seg0_def seg0

shm_seg0_def robot

seg0 = rtai_malloc (SEG0_BASE sizeof (shm_seg0_def))

if (seg0-gtsem = 0) bcopy (seg0 amprobot sizeof (shm_seg0_def))helliphelliphellip

helliphelliphellip bcopy (amprobot seg0 sizeof (shm_seg0_def))helliphelliphelliphelliphelliphellip

rtai_free (SEG0_BASE seg0)

fichier drsquoentecircte de la meacutemoire partageacutee fourni dans la couche RTAI de linux

Initialisation du segment SEG0_BASE Allocation de lameacutemoire pointeacutee

par seg0

Lecture des donneacutees provenant du bas

niveau

Mise agrave jours du segment de meacutemoire partageacutee

Libeacuterer le segment de meacutemoire alloueacute

Equipe Systegraveme Robotiseacute de Production

5

Plan

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6979

S y nd e x

V5

bull Introductionbull Meacutethodologie AAA

bull Installationbull Utilisation du logiciel Syndex

bull Macrosbull LinuxIO un interface CC++ avec SynDEx

bull Exemple drsquoapplication Robuter-ULM

Equipe Systegraveme Robotiseacute de Production

V5

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7079

S y nd e x

V5

Exemple dapplication Exemple dapplication Robuter Robuter--ULM ULM

Equipe Systegraveme Robotiseacute de Production

V5

Description Robuter-ULMbull Base mobile (2-RM 2-RF)

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7179

S y nd e x

V

bull Bras ultra-leacuteger 6 axesbull Ceinture 24 capteurs US

bull Capteur drsquoefforts 6 axes

bull Cameacutera CCD monochromeavec carte drsquoacquisition

bull PC embarqueacute MMX 233

bull OS linux redhat 61 avecRTAI V-13

bull 3 bouton drsquoarrecirct drsquourgence

bull 4 batteries 48 VDC 4 X12V 60 Ah

bull Entreacutee Joystick

bull Liaison Ethernet sans fil

Le manipulateur mobile Robuter-ULM comprend

Equipe Systegraveme Robotiseacute de Production

V5

Base Mobilebull dimension

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7279

S y nd e x

V

1025 mm de longueur 680 mm de largueur et 44 cm de hauteurbull Poids environ 150 kg avec les batteriesbull charge jusqursquoagrave 120 kg

bull vitesse de 5cms agrave 125 msbull Moteurs 2 X 300 W DC 48 VDCbull orientation par diffeacuterence de vitesse

bull Preacutecision Position par encodeurs optiquesbull Deux roues motrices diffeacuterentielles et de deux roues follesbull Drsquoune ceinture de 24 capteurs Ultrasons

bull Une carte MPC555 de Robosoft pour le controcircle des deuxmoteurs DC des 2 rouesbull Un systegraveme drsquoodomeacutetrie qui donne la position relative du robot

par rapport agrave son repegravere

Equipe Systegraveme Robotiseacute de Production

V5

bull dimension Faute de documentation

Bras U tra- eacuteger

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7379

S y nd e x

V Faute de documentation

bull Poids moins de 20 kgbull charge 2 kgbull Moteurs 6 moteurs DC

bull gripper pince eacutelectrique 2 doigtsbull Reacutepeacutetabiliteacute +- 1mmbull 3 carte MPC555 de Robosoft lrsquoune pour le capteur drsquoeffort et les

deux autres pour les 6 moteurs + moteur de la pincebull Position encodeur increacutemental

1 2 3 4 5 6Axisrange

plusmn90deg 0-90deg plusmn80deg plusmn100deg plusmn90deg plusmn110deg

vitesse 180degs 180degs 180degs 180degs 180degs 180degs

Equipe Systegraveme Robotiseacute de Production

V5

rc tecture ar ware

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7479

S y nd e x

V

Equipe Systegraveme Robotiseacute de Production

V5

Pro eacutemat quePlusieurs applications peuvent ecirctre impleacutementeacutees sur le robot

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7579

S y nd e x

V

Cependant il faut faire la diffeacuterence entre les applications quidemande lrsquoutilisation de syndex et les applications qui neneacutecessite qursquoune programmation en CC++ Agrave titre drsquoexemple

bull Localisationbull Commande en position

bull Commande en forcebull Navigation

bull Geacuteneacuteration de trajectoire

bull Vision

Equipe Systegraveme Robotiseacute de Production

V5 bull Pince eacutelectrique (TOR)

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7679

S y nd e x

Vq ( )

bull Pince possegravede des ES Logiques

Notre application consiste agrave

bull Recevoir lrsquoeacutetat de la pince (fermeacutee ouverte )

bull Envoyer une commande vers la pince

Capture

drsquoinformation

Open

Close

CommandeMeacutemoire

Partageacutee

Actionneur

Pince Prise de deacutecision Pince

Equipe Systegraveme Robotiseacute de Production

V5

Sc eacutema eacute ectr que

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7779

S y nd e x

Equipe Systegraveme Robotiseacute de Production

V5

Conclusion

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7879

S y nd e x bull Introduction

bull Meacutethodologie AAA

bull Installationbull Utilisation du logiciel Syndex

bull Macrosbull LinuxIO un interface CC++ avec SynDEx

bull Exemple drsquoapplication Robuter-ULM

Equipe Systegraveme Robotiseacute de Production

V5

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7979

S y nd e x

Questions

Page 58: Cours Syndex

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5879

S y nd

e x

V5

bull Introduction

bull Meacutethodologie AAA

bull Installationbull Utilisation du logiciel Syndex

bull Macrosbull LinuxIO un interface CC++ avec SynDEx

bull Exemple drsquoapplication Robuter-ULM

Equipe Systegraveme Robotiseacute de Production

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5979

S y nd

e x

V5

LinuxIO LinuxIO une interface une interface

CC++ avecCC++ avec SynDExSynDEx

bull Principe de basebull Utilisation de linuxIO_ par syndex

bull Utilisation de linuxIO_ par un programmeCC++

Equipe Systegraveme Robotiseacute de ProductionPrincipe de baseSyndex fourni une interface graphique pour la conception

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6079

S y nd

e x

V5

Syndex fourni une interface graphique pour la conception

drsquoapplications Par contre des fois nous avons besoin drsquoautresfonctionnaliteacutes non disponibles donc il faut les creacuteer Cependantgeacuteneacuterer des macros pour syndex srsquoavegravere difficile pour certains du

fait qursquoil faut avoir une bonne connaissance de la programmation bas niveau Dans ce cas lrsquoutilisation de linux_IO trouve sa placedans un contexte particulier interfacer des applications CC++utilisateurs avec des applications embarqueacutees temps reacuteeldeacuteveloppeacutees sous syndex

Par rapport agrave ce contexte de programmation lrsquoorganisation du

deacuteveloppement des applications est structureacutee en deux parties 1 Application haut niveau

2 Application bas niveau

Equipe Systegraveme Robotiseacute de ProductionPrincipe de base

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6179

S y nd

e x

V5

En reacutesumeacute lrsquoapplicationutilisateur contient une

partie haut niveau enCC++ et une partie basniveau sous syndex avecun eacutechange de donneacuteesentre les deux partie en

utilisant la couche RTAIde linux

Equipe Systegraveme Robotiseacute de Production pp cat on aut n veauOn entend application haut

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6279

S y nd

e x

V5

niveau tout programmecomme la planification detrajectoires strateacutegies de

navigation etc hellipLrsquoeacutechange de donneacutees sefait par le biais desmeacutemoires partageacutees quifont parti du noyau RTAI

et de lrsquoespace utilisateursde Linux

Toute ressource preacutesente sur la carte Robosoft peutecirctre partageacutee sans aune restriction

Equipe Systegraveme Robotiseacute de Production pp cat on as n veauUne application bas niveau

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6379

S y nd

e x

V5

Une application bas niveau

est un programme conccedilusous syndex comme lacommande des moteurs la

lecture des capteurs etc hellipLes ressources mateacuteriellessont controcircler par plusieurs

cartes MPC555 Ces cartessrsquoeacutechangent des donneacuteesvia le bus CAN Donc ES

est prise en charge par lasource logicielle deacutedieacutee quisrsquoexeacutecute dans les cartes MPC555 puis la couche RTAI

est utiliseacute pour la mise agrave jour de meacutemoires partageacutees pour lrsquoespace utilisateurs linux drsquoeacutechange de donneacutees

Equipe Systegraveme Robotiseacute de ProductionUtilisation de linux_IO par syndex

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6479

S y nd

e x

V5

Equipe Systegraveme Robotiseacute de ProductionUtilisation de linux_IO par syndex

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6579

S y nd

e x

V5

Equipe Systegraveme Robotiseacute de Production

5

Utilisation de linux_IO par syndex

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6679

S y nd

e x

V5

Degraves que la conception de lrsquoapplication sous syndex esttermineacutee et apregraves compilation (AdequationDo it +GenExec) un fichier drsquoentecircte sous le nom de linioh est

automatiquement geacuteneacutereacute Ce fichier contient lesinformations neacutecessaires pour acceacuteder aux entreacutees enlecture et aux sorties en eacutecriture des opeacuterations linuxIO_

inseacutereacutees dans le graphe drsquoalgorithme Le contenu de cefichier est organiseacute en plusieurs parties une pour chaqueopeacuteration linux_IO preacutesente dans le graphe

Equipe Systegraveme Robotiseacute de Production

5

Utilisation de linux_IO par syndex linioh auto-generated C users API frontend

C i h b f 2001 i i i b f f

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6779

S y nd

e x

V5 Copyright Robosoft 2001 Pierre Pomiers ltpierrerobosoftfrgt

LINUX IO shared memory data segments

define SEG0_BASE 0x10000typedef struct

int js_spd_o0

int js_str_o0

int enc_R_o0int enc_L_o0

double odo_X_o0

double odo_Y_o0

double odo_T_o0int spd_R_o0

int spd_L_o0

int time

unsigned char sem shm_seg0_def

Nom du segment de meacutemoire partageacutee pour notre opeacuteration linuxIO_

7 signaux drsquoentreacutees Ces valeurs sonten lecture et sont peacuteriodiquementrafraicircchies par RTAI

2 signaux de sorties Ces valeurs sonten eacutecriture et sont peacuteriodiquementrafraicircchies par RTAI

Equipe Systegraveme Robotiseacute de Production

5

Crsquoest une eacutetape tregraves facile il suffit drsquoinclure le fichier drsquoentecirctelinio h dans le code du fichier en CC++ comme suit

Utilisation de linuxIO_ par un programme CC+

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6879

S y nd

e x

V5 linioh dans le code du fichier en CC++ comme suit

include linioh

include ltrtai_shmhgt

static shm_seg0_def seg0

shm_seg0_def robot

seg0 = rtai_malloc (SEG0_BASE sizeof (shm_seg0_def))

if (seg0-gtsem = 0) bcopy (seg0 amprobot sizeof (shm_seg0_def))helliphelliphellip

helliphelliphellip bcopy (amprobot seg0 sizeof (shm_seg0_def))helliphelliphelliphelliphelliphellip

rtai_free (SEG0_BASE seg0)

fichier drsquoentecircte de la meacutemoire partageacutee fourni dans la couche RTAI de linux

Initialisation du segment SEG0_BASE Allocation de lameacutemoire pointeacutee

par seg0

Lecture des donneacutees provenant du bas

niveau

Mise agrave jours du segment de meacutemoire partageacutee

Libeacuterer le segment de meacutemoire alloueacute

Equipe Systegraveme Robotiseacute de Production

5

Plan

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6979

S y nd e x

V5

bull Introductionbull Meacutethodologie AAA

bull Installationbull Utilisation du logiciel Syndex

bull Macrosbull LinuxIO un interface CC++ avec SynDEx

bull Exemple drsquoapplication Robuter-ULM

Equipe Systegraveme Robotiseacute de Production

V5

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7079

S y nd e x

V5

Exemple dapplication Exemple dapplication Robuter Robuter--ULM ULM

Equipe Systegraveme Robotiseacute de Production

V5

Description Robuter-ULMbull Base mobile (2-RM 2-RF)

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7179

S y nd e x

V

bull Bras ultra-leacuteger 6 axesbull Ceinture 24 capteurs US

bull Capteur drsquoefforts 6 axes

bull Cameacutera CCD monochromeavec carte drsquoacquisition

bull PC embarqueacute MMX 233

bull OS linux redhat 61 avecRTAI V-13

bull 3 bouton drsquoarrecirct drsquourgence

bull 4 batteries 48 VDC 4 X12V 60 Ah

bull Entreacutee Joystick

bull Liaison Ethernet sans fil

Le manipulateur mobile Robuter-ULM comprend

Equipe Systegraveme Robotiseacute de Production

V5

Base Mobilebull dimension

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7279

S y nd e x

V

1025 mm de longueur 680 mm de largueur et 44 cm de hauteurbull Poids environ 150 kg avec les batteriesbull charge jusqursquoagrave 120 kg

bull vitesse de 5cms agrave 125 msbull Moteurs 2 X 300 W DC 48 VDCbull orientation par diffeacuterence de vitesse

bull Preacutecision Position par encodeurs optiquesbull Deux roues motrices diffeacuterentielles et de deux roues follesbull Drsquoune ceinture de 24 capteurs Ultrasons

bull Une carte MPC555 de Robosoft pour le controcircle des deuxmoteurs DC des 2 rouesbull Un systegraveme drsquoodomeacutetrie qui donne la position relative du robot

par rapport agrave son repegravere

Equipe Systegraveme Robotiseacute de Production

V5

bull dimension Faute de documentation

Bras U tra- eacuteger

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7379

S y nd e x

V Faute de documentation

bull Poids moins de 20 kgbull charge 2 kgbull Moteurs 6 moteurs DC

bull gripper pince eacutelectrique 2 doigtsbull Reacutepeacutetabiliteacute +- 1mmbull 3 carte MPC555 de Robosoft lrsquoune pour le capteur drsquoeffort et les

deux autres pour les 6 moteurs + moteur de la pincebull Position encodeur increacutemental

1 2 3 4 5 6Axisrange

plusmn90deg 0-90deg plusmn80deg plusmn100deg plusmn90deg plusmn110deg

vitesse 180degs 180degs 180degs 180degs 180degs 180degs

Equipe Systegraveme Robotiseacute de Production

V5

rc tecture ar ware

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7479

S y nd e x

V

Equipe Systegraveme Robotiseacute de Production

V5

Pro eacutemat quePlusieurs applications peuvent ecirctre impleacutementeacutees sur le robot

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7579

S y nd e x

V

Cependant il faut faire la diffeacuterence entre les applications quidemande lrsquoutilisation de syndex et les applications qui neneacutecessite qursquoune programmation en CC++ Agrave titre drsquoexemple

bull Localisationbull Commande en position

bull Commande en forcebull Navigation

bull Geacuteneacuteration de trajectoire

bull Vision

Equipe Systegraveme Robotiseacute de Production

V5 bull Pince eacutelectrique (TOR)

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7679

S y nd e x

Vq ( )

bull Pince possegravede des ES Logiques

Notre application consiste agrave

bull Recevoir lrsquoeacutetat de la pince (fermeacutee ouverte )

bull Envoyer une commande vers la pince

Capture

drsquoinformation

Open

Close

CommandeMeacutemoire

Partageacutee

Actionneur

Pince Prise de deacutecision Pince

Equipe Systegraveme Robotiseacute de Production

V5

Sc eacutema eacute ectr que

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7779

S y nd e x

Equipe Systegraveme Robotiseacute de Production

V5

Conclusion

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7879

S y nd e x bull Introduction

bull Meacutethodologie AAA

bull Installationbull Utilisation du logiciel Syndex

bull Macrosbull LinuxIO un interface CC++ avec SynDEx

bull Exemple drsquoapplication Robuter-ULM

Equipe Systegraveme Robotiseacute de Production

V5

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7979

S y nd e x

Questions

Page 59: Cours Syndex

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 5979

S y nd

e x

V5

LinuxIO LinuxIO une interface une interface

CC++ avecCC++ avec SynDExSynDEx

bull Principe de basebull Utilisation de linuxIO_ par syndex

bull Utilisation de linuxIO_ par un programmeCC++

Equipe Systegraveme Robotiseacute de ProductionPrincipe de baseSyndex fourni une interface graphique pour la conception

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6079

S y nd

e x

V5

Syndex fourni une interface graphique pour la conception

drsquoapplications Par contre des fois nous avons besoin drsquoautresfonctionnaliteacutes non disponibles donc il faut les creacuteer Cependantgeacuteneacuterer des macros pour syndex srsquoavegravere difficile pour certains du

fait qursquoil faut avoir une bonne connaissance de la programmation bas niveau Dans ce cas lrsquoutilisation de linux_IO trouve sa placedans un contexte particulier interfacer des applications CC++utilisateurs avec des applications embarqueacutees temps reacuteeldeacuteveloppeacutees sous syndex

Par rapport agrave ce contexte de programmation lrsquoorganisation du

deacuteveloppement des applications est structureacutee en deux parties 1 Application haut niveau

2 Application bas niveau

Equipe Systegraveme Robotiseacute de ProductionPrincipe de base

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6179

S y nd

e x

V5

En reacutesumeacute lrsquoapplicationutilisateur contient une

partie haut niveau enCC++ et une partie basniveau sous syndex avecun eacutechange de donneacuteesentre les deux partie en

utilisant la couche RTAIde linux

Equipe Systegraveme Robotiseacute de Production pp cat on aut n veauOn entend application haut

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6279

S y nd

e x

V5

niveau tout programmecomme la planification detrajectoires strateacutegies de

navigation etc hellipLrsquoeacutechange de donneacutees sefait par le biais desmeacutemoires partageacutees quifont parti du noyau RTAI

et de lrsquoespace utilisateursde Linux

Toute ressource preacutesente sur la carte Robosoft peutecirctre partageacutee sans aune restriction

Equipe Systegraveme Robotiseacute de Production pp cat on as n veauUne application bas niveau

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6379

S y nd

e x

V5

Une application bas niveau

est un programme conccedilusous syndex comme lacommande des moteurs la

lecture des capteurs etc hellipLes ressources mateacuteriellessont controcircler par plusieurs

cartes MPC555 Ces cartessrsquoeacutechangent des donneacuteesvia le bus CAN Donc ES

est prise en charge par lasource logicielle deacutedieacutee quisrsquoexeacutecute dans les cartes MPC555 puis la couche RTAI

est utiliseacute pour la mise agrave jour de meacutemoires partageacutees pour lrsquoespace utilisateurs linux drsquoeacutechange de donneacutees

Equipe Systegraveme Robotiseacute de ProductionUtilisation de linux_IO par syndex

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6479

S y nd

e x

V5

Equipe Systegraveme Robotiseacute de ProductionUtilisation de linux_IO par syndex

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6579

S y nd

e x

V5

Equipe Systegraveme Robotiseacute de Production

5

Utilisation de linux_IO par syndex

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6679

S y nd

e x

V5

Degraves que la conception de lrsquoapplication sous syndex esttermineacutee et apregraves compilation (AdequationDo it +GenExec) un fichier drsquoentecircte sous le nom de linioh est

automatiquement geacuteneacutereacute Ce fichier contient lesinformations neacutecessaires pour acceacuteder aux entreacutees enlecture et aux sorties en eacutecriture des opeacuterations linuxIO_

inseacutereacutees dans le graphe drsquoalgorithme Le contenu de cefichier est organiseacute en plusieurs parties une pour chaqueopeacuteration linux_IO preacutesente dans le graphe

Equipe Systegraveme Robotiseacute de Production

5

Utilisation de linux_IO par syndex linioh auto-generated C users API frontend

C i h b f 2001 i i i b f f

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6779

S y nd

e x

V5 Copyright Robosoft 2001 Pierre Pomiers ltpierrerobosoftfrgt

LINUX IO shared memory data segments

define SEG0_BASE 0x10000typedef struct

int js_spd_o0

int js_str_o0

int enc_R_o0int enc_L_o0

double odo_X_o0

double odo_Y_o0

double odo_T_o0int spd_R_o0

int spd_L_o0

int time

unsigned char sem shm_seg0_def

Nom du segment de meacutemoire partageacutee pour notre opeacuteration linuxIO_

7 signaux drsquoentreacutees Ces valeurs sonten lecture et sont peacuteriodiquementrafraicircchies par RTAI

2 signaux de sorties Ces valeurs sonten eacutecriture et sont peacuteriodiquementrafraicircchies par RTAI

Equipe Systegraveme Robotiseacute de Production

5

Crsquoest une eacutetape tregraves facile il suffit drsquoinclure le fichier drsquoentecirctelinio h dans le code du fichier en CC++ comme suit

Utilisation de linuxIO_ par un programme CC+

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6879

S y nd

e x

V5 linioh dans le code du fichier en CC++ comme suit

include linioh

include ltrtai_shmhgt

static shm_seg0_def seg0

shm_seg0_def robot

seg0 = rtai_malloc (SEG0_BASE sizeof (shm_seg0_def))

if (seg0-gtsem = 0) bcopy (seg0 amprobot sizeof (shm_seg0_def))helliphelliphellip

helliphelliphellip bcopy (amprobot seg0 sizeof (shm_seg0_def))helliphelliphelliphelliphelliphellip

rtai_free (SEG0_BASE seg0)

fichier drsquoentecircte de la meacutemoire partageacutee fourni dans la couche RTAI de linux

Initialisation du segment SEG0_BASE Allocation de lameacutemoire pointeacutee

par seg0

Lecture des donneacutees provenant du bas

niveau

Mise agrave jours du segment de meacutemoire partageacutee

Libeacuterer le segment de meacutemoire alloueacute

Equipe Systegraveme Robotiseacute de Production

5

Plan

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6979

S y nd e x

V5

bull Introductionbull Meacutethodologie AAA

bull Installationbull Utilisation du logiciel Syndex

bull Macrosbull LinuxIO un interface CC++ avec SynDEx

bull Exemple drsquoapplication Robuter-ULM

Equipe Systegraveme Robotiseacute de Production

V5

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7079

S y nd e x

V5

Exemple dapplication Exemple dapplication Robuter Robuter--ULM ULM

Equipe Systegraveme Robotiseacute de Production

V5

Description Robuter-ULMbull Base mobile (2-RM 2-RF)

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7179

S y nd e x

V

bull Bras ultra-leacuteger 6 axesbull Ceinture 24 capteurs US

bull Capteur drsquoefforts 6 axes

bull Cameacutera CCD monochromeavec carte drsquoacquisition

bull PC embarqueacute MMX 233

bull OS linux redhat 61 avecRTAI V-13

bull 3 bouton drsquoarrecirct drsquourgence

bull 4 batteries 48 VDC 4 X12V 60 Ah

bull Entreacutee Joystick

bull Liaison Ethernet sans fil

Le manipulateur mobile Robuter-ULM comprend

Equipe Systegraveme Robotiseacute de Production

V5

Base Mobilebull dimension

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7279

S y nd e x

V

1025 mm de longueur 680 mm de largueur et 44 cm de hauteurbull Poids environ 150 kg avec les batteriesbull charge jusqursquoagrave 120 kg

bull vitesse de 5cms agrave 125 msbull Moteurs 2 X 300 W DC 48 VDCbull orientation par diffeacuterence de vitesse

bull Preacutecision Position par encodeurs optiquesbull Deux roues motrices diffeacuterentielles et de deux roues follesbull Drsquoune ceinture de 24 capteurs Ultrasons

bull Une carte MPC555 de Robosoft pour le controcircle des deuxmoteurs DC des 2 rouesbull Un systegraveme drsquoodomeacutetrie qui donne la position relative du robot

par rapport agrave son repegravere

Equipe Systegraveme Robotiseacute de Production

V5

bull dimension Faute de documentation

Bras U tra- eacuteger

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7379

S y nd e x

V Faute de documentation

bull Poids moins de 20 kgbull charge 2 kgbull Moteurs 6 moteurs DC

bull gripper pince eacutelectrique 2 doigtsbull Reacutepeacutetabiliteacute +- 1mmbull 3 carte MPC555 de Robosoft lrsquoune pour le capteur drsquoeffort et les

deux autres pour les 6 moteurs + moteur de la pincebull Position encodeur increacutemental

1 2 3 4 5 6Axisrange

plusmn90deg 0-90deg plusmn80deg plusmn100deg plusmn90deg plusmn110deg

vitesse 180degs 180degs 180degs 180degs 180degs 180degs

Equipe Systegraveme Robotiseacute de Production

V5

rc tecture ar ware

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7479

S y nd e x

V

Equipe Systegraveme Robotiseacute de Production

V5

Pro eacutemat quePlusieurs applications peuvent ecirctre impleacutementeacutees sur le robot

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7579

S y nd e x

V

Cependant il faut faire la diffeacuterence entre les applications quidemande lrsquoutilisation de syndex et les applications qui neneacutecessite qursquoune programmation en CC++ Agrave titre drsquoexemple

bull Localisationbull Commande en position

bull Commande en forcebull Navigation

bull Geacuteneacuteration de trajectoire

bull Vision

Equipe Systegraveme Robotiseacute de Production

V5 bull Pince eacutelectrique (TOR)

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7679

S y nd e x

Vq ( )

bull Pince possegravede des ES Logiques

Notre application consiste agrave

bull Recevoir lrsquoeacutetat de la pince (fermeacutee ouverte )

bull Envoyer une commande vers la pince

Capture

drsquoinformation

Open

Close

CommandeMeacutemoire

Partageacutee

Actionneur

Pince Prise de deacutecision Pince

Equipe Systegraveme Robotiseacute de Production

V5

Sc eacutema eacute ectr que

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7779

S y nd e x

Equipe Systegraveme Robotiseacute de Production

V5

Conclusion

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7879

S y nd e x bull Introduction

bull Meacutethodologie AAA

bull Installationbull Utilisation du logiciel Syndex

bull Macrosbull LinuxIO un interface CC++ avec SynDEx

bull Exemple drsquoapplication Robuter-ULM

Equipe Systegraveme Robotiseacute de Production

V5

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7979

S y nd e x

Questions

Page 60: Cours Syndex

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6079

S y nd

e x

V5

Syndex fourni une interface graphique pour la conception

drsquoapplications Par contre des fois nous avons besoin drsquoautresfonctionnaliteacutes non disponibles donc il faut les creacuteer Cependantgeacuteneacuterer des macros pour syndex srsquoavegravere difficile pour certains du

fait qursquoil faut avoir une bonne connaissance de la programmation bas niveau Dans ce cas lrsquoutilisation de linux_IO trouve sa placedans un contexte particulier interfacer des applications CC++utilisateurs avec des applications embarqueacutees temps reacuteeldeacuteveloppeacutees sous syndex

Par rapport agrave ce contexte de programmation lrsquoorganisation du

deacuteveloppement des applications est structureacutee en deux parties 1 Application haut niveau

2 Application bas niveau

Equipe Systegraveme Robotiseacute de ProductionPrincipe de base

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6179

S y nd

e x

V5

En reacutesumeacute lrsquoapplicationutilisateur contient une

partie haut niveau enCC++ et une partie basniveau sous syndex avecun eacutechange de donneacuteesentre les deux partie en

utilisant la couche RTAIde linux

Equipe Systegraveme Robotiseacute de Production pp cat on aut n veauOn entend application haut

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6279

S y nd

e x

V5

niveau tout programmecomme la planification detrajectoires strateacutegies de

navigation etc hellipLrsquoeacutechange de donneacutees sefait par le biais desmeacutemoires partageacutees quifont parti du noyau RTAI

et de lrsquoespace utilisateursde Linux

Toute ressource preacutesente sur la carte Robosoft peutecirctre partageacutee sans aune restriction

Equipe Systegraveme Robotiseacute de Production pp cat on as n veauUne application bas niveau

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6379

S y nd

e x

V5

Une application bas niveau

est un programme conccedilusous syndex comme lacommande des moteurs la

lecture des capteurs etc hellipLes ressources mateacuteriellessont controcircler par plusieurs

cartes MPC555 Ces cartessrsquoeacutechangent des donneacuteesvia le bus CAN Donc ES

est prise en charge par lasource logicielle deacutedieacutee quisrsquoexeacutecute dans les cartes MPC555 puis la couche RTAI

est utiliseacute pour la mise agrave jour de meacutemoires partageacutees pour lrsquoespace utilisateurs linux drsquoeacutechange de donneacutees

Equipe Systegraveme Robotiseacute de ProductionUtilisation de linux_IO par syndex

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6479

S y nd

e x

V5

Equipe Systegraveme Robotiseacute de ProductionUtilisation de linux_IO par syndex

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6579

S y nd

e x

V5

Equipe Systegraveme Robotiseacute de Production

5

Utilisation de linux_IO par syndex

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6679

S y nd

e x

V5

Degraves que la conception de lrsquoapplication sous syndex esttermineacutee et apregraves compilation (AdequationDo it +GenExec) un fichier drsquoentecircte sous le nom de linioh est

automatiquement geacuteneacutereacute Ce fichier contient lesinformations neacutecessaires pour acceacuteder aux entreacutees enlecture et aux sorties en eacutecriture des opeacuterations linuxIO_

inseacutereacutees dans le graphe drsquoalgorithme Le contenu de cefichier est organiseacute en plusieurs parties une pour chaqueopeacuteration linux_IO preacutesente dans le graphe

Equipe Systegraveme Robotiseacute de Production

5

Utilisation de linux_IO par syndex linioh auto-generated C users API frontend

C i h b f 2001 i i i b f f

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6779

S y nd

e x

V5 Copyright Robosoft 2001 Pierre Pomiers ltpierrerobosoftfrgt

LINUX IO shared memory data segments

define SEG0_BASE 0x10000typedef struct

int js_spd_o0

int js_str_o0

int enc_R_o0int enc_L_o0

double odo_X_o0

double odo_Y_o0

double odo_T_o0int spd_R_o0

int spd_L_o0

int time

unsigned char sem shm_seg0_def

Nom du segment de meacutemoire partageacutee pour notre opeacuteration linuxIO_

7 signaux drsquoentreacutees Ces valeurs sonten lecture et sont peacuteriodiquementrafraicircchies par RTAI

2 signaux de sorties Ces valeurs sonten eacutecriture et sont peacuteriodiquementrafraicircchies par RTAI

Equipe Systegraveme Robotiseacute de Production

5

Crsquoest une eacutetape tregraves facile il suffit drsquoinclure le fichier drsquoentecirctelinio h dans le code du fichier en CC++ comme suit

Utilisation de linuxIO_ par un programme CC+

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6879

S y nd

e x

V5 linioh dans le code du fichier en CC++ comme suit

include linioh

include ltrtai_shmhgt

static shm_seg0_def seg0

shm_seg0_def robot

seg0 = rtai_malloc (SEG0_BASE sizeof (shm_seg0_def))

if (seg0-gtsem = 0) bcopy (seg0 amprobot sizeof (shm_seg0_def))helliphelliphellip

helliphelliphellip bcopy (amprobot seg0 sizeof (shm_seg0_def))helliphelliphelliphelliphelliphellip

rtai_free (SEG0_BASE seg0)

fichier drsquoentecircte de la meacutemoire partageacutee fourni dans la couche RTAI de linux

Initialisation du segment SEG0_BASE Allocation de lameacutemoire pointeacutee

par seg0

Lecture des donneacutees provenant du bas

niveau

Mise agrave jours du segment de meacutemoire partageacutee

Libeacuterer le segment de meacutemoire alloueacute

Equipe Systegraveme Robotiseacute de Production

5

Plan

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6979

S y nd e x

V5

bull Introductionbull Meacutethodologie AAA

bull Installationbull Utilisation du logiciel Syndex

bull Macrosbull LinuxIO un interface CC++ avec SynDEx

bull Exemple drsquoapplication Robuter-ULM

Equipe Systegraveme Robotiseacute de Production

V5

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7079

S y nd e x

V5

Exemple dapplication Exemple dapplication Robuter Robuter--ULM ULM

Equipe Systegraveme Robotiseacute de Production

V5

Description Robuter-ULMbull Base mobile (2-RM 2-RF)

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7179

S y nd e x

V

bull Bras ultra-leacuteger 6 axesbull Ceinture 24 capteurs US

bull Capteur drsquoefforts 6 axes

bull Cameacutera CCD monochromeavec carte drsquoacquisition

bull PC embarqueacute MMX 233

bull OS linux redhat 61 avecRTAI V-13

bull 3 bouton drsquoarrecirct drsquourgence

bull 4 batteries 48 VDC 4 X12V 60 Ah

bull Entreacutee Joystick

bull Liaison Ethernet sans fil

Le manipulateur mobile Robuter-ULM comprend

Equipe Systegraveme Robotiseacute de Production

V5

Base Mobilebull dimension

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7279

S y nd e x

V

1025 mm de longueur 680 mm de largueur et 44 cm de hauteurbull Poids environ 150 kg avec les batteriesbull charge jusqursquoagrave 120 kg

bull vitesse de 5cms agrave 125 msbull Moteurs 2 X 300 W DC 48 VDCbull orientation par diffeacuterence de vitesse

bull Preacutecision Position par encodeurs optiquesbull Deux roues motrices diffeacuterentielles et de deux roues follesbull Drsquoune ceinture de 24 capteurs Ultrasons

bull Une carte MPC555 de Robosoft pour le controcircle des deuxmoteurs DC des 2 rouesbull Un systegraveme drsquoodomeacutetrie qui donne la position relative du robot

par rapport agrave son repegravere

Equipe Systegraveme Robotiseacute de Production

V5

bull dimension Faute de documentation

Bras U tra- eacuteger

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7379

S y nd e x

V Faute de documentation

bull Poids moins de 20 kgbull charge 2 kgbull Moteurs 6 moteurs DC

bull gripper pince eacutelectrique 2 doigtsbull Reacutepeacutetabiliteacute +- 1mmbull 3 carte MPC555 de Robosoft lrsquoune pour le capteur drsquoeffort et les

deux autres pour les 6 moteurs + moteur de la pincebull Position encodeur increacutemental

1 2 3 4 5 6Axisrange

plusmn90deg 0-90deg plusmn80deg plusmn100deg plusmn90deg plusmn110deg

vitesse 180degs 180degs 180degs 180degs 180degs 180degs

Equipe Systegraveme Robotiseacute de Production

V5

rc tecture ar ware

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7479

S y nd e x

V

Equipe Systegraveme Robotiseacute de Production

V5

Pro eacutemat quePlusieurs applications peuvent ecirctre impleacutementeacutees sur le robot

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7579

S y nd e x

V

Cependant il faut faire la diffeacuterence entre les applications quidemande lrsquoutilisation de syndex et les applications qui neneacutecessite qursquoune programmation en CC++ Agrave titre drsquoexemple

bull Localisationbull Commande en position

bull Commande en forcebull Navigation

bull Geacuteneacuteration de trajectoire

bull Vision

Equipe Systegraveme Robotiseacute de Production

V5 bull Pince eacutelectrique (TOR)

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7679

S y nd e x

Vq ( )

bull Pince possegravede des ES Logiques

Notre application consiste agrave

bull Recevoir lrsquoeacutetat de la pince (fermeacutee ouverte )

bull Envoyer une commande vers la pince

Capture

drsquoinformation

Open

Close

CommandeMeacutemoire

Partageacutee

Actionneur

Pince Prise de deacutecision Pince

Equipe Systegraveme Robotiseacute de Production

V5

Sc eacutema eacute ectr que

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7779

S y nd e x

Equipe Systegraveme Robotiseacute de Production

V5

Conclusion

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7879

S y nd e x bull Introduction

bull Meacutethodologie AAA

bull Installationbull Utilisation du logiciel Syndex

bull Macrosbull LinuxIO un interface CC++ avec SynDEx

bull Exemple drsquoapplication Robuter-ULM

Equipe Systegraveme Robotiseacute de Production

V5

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7979

S y nd e x

Questions

Page 61: Cours Syndex

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6179

S y nd

e x

V5

En reacutesumeacute lrsquoapplicationutilisateur contient une

partie haut niveau enCC++ et une partie basniveau sous syndex avecun eacutechange de donneacuteesentre les deux partie en

utilisant la couche RTAIde linux

Equipe Systegraveme Robotiseacute de Production pp cat on aut n veauOn entend application haut

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6279

S y nd

e x

V5

niveau tout programmecomme la planification detrajectoires strateacutegies de

navigation etc hellipLrsquoeacutechange de donneacutees sefait par le biais desmeacutemoires partageacutees quifont parti du noyau RTAI

et de lrsquoespace utilisateursde Linux

Toute ressource preacutesente sur la carte Robosoft peutecirctre partageacutee sans aune restriction

Equipe Systegraveme Robotiseacute de Production pp cat on as n veauUne application bas niveau

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6379

S y nd

e x

V5

Une application bas niveau

est un programme conccedilusous syndex comme lacommande des moteurs la

lecture des capteurs etc hellipLes ressources mateacuteriellessont controcircler par plusieurs

cartes MPC555 Ces cartessrsquoeacutechangent des donneacuteesvia le bus CAN Donc ES

est prise en charge par lasource logicielle deacutedieacutee quisrsquoexeacutecute dans les cartes MPC555 puis la couche RTAI

est utiliseacute pour la mise agrave jour de meacutemoires partageacutees pour lrsquoespace utilisateurs linux drsquoeacutechange de donneacutees

Equipe Systegraveme Robotiseacute de ProductionUtilisation de linux_IO par syndex

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6479

S y nd

e x

V5

Equipe Systegraveme Robotiseacute de ProductionUtilisation de linux_IO par syndex

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6579

S y nd

e x

V5

Equipe Systegraveme Robotiseacute de Production

5

Utilisation de linux_IO par syndex

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6679

S y nd

e x

V5

Degraves que la conception de lrsquoapplication sous syndex esttermineacutee et apregraves compilation (AdequationDo it +GenExec) un fichier drsquoentecircte sous le nom de linioh est

automatiquement geacuteneacutereacute Ce fichier contient lesinformations neacutecessaires pour acceacuteder aux entreacutees enlecture et aux sorties en eacutecriture des opeacuterations linuxIO_

inseacutereacutees dans le graphe drsquoalgorithme Le contenu de cefichier est organiseacute en plusieurs parties une pour chaqueopeacuteration linux_IO preacutesente dans le graphe

Equipe Systegraveme Robotiseacute de Production

5

Utilisation de linux_IO par syndex linioh auto-generated C users API frontend

C i h b f 2001 i i i b f f

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6779

S y nd

e x

V5 Copyright Robosoft 2001 Pierre Pomiers ltpierrerobosoftfrgt

LINUX IO shared memory data segments

define SEG0_BASE 0x10000typedef struct

int js_spd_o0

int js_str_o0

int enc_R_o0int enc_L_o0

double odo_X_o0

double odo_Y_o0

double odo_T_o0int spd_R_o0

int spd_L_o0

int time

unsigned char sem shm_seg0_def

Nom du segment de meacutemoire partageacutee pour notre opeacuteration linuxIO_

7 signaux drsquoentreacutees Ces valeurs sonten lecture et sont peacuteriodiquementrafraicircchies par RTAI

2 signaux de sorties Ces valeurs sonten eacutecriture et sont peacuteriodiquementrafraicircchies par RTAI

Equipe Systegraveme Robotiseacute de Production

5

Crsquoest une eacutetape tregraves facile il suffit drsquoinclure le fichier drsquoentecirctelinio h dans le code du fichier en CC++ comme suit

Utilisation de linuxIO_ par un programme CC+

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6879

S y nd

e x

V5 linioh dans le code du fichier en CC++ comme suit

include linioh

include ltrtai_shmhgt

static shm_seg0_def seg0

shm_seg0_def robot

seg0 = rtai_malloc (SEG0_BASE sizeof (shm_seg0_def))

if (seg0-gtsem = 0) bcopy (seg0 amprobot sizeof (shm_seg0_def))helliphelliphellip

helliphelliphellip bcopy (amprobot seg0 sizeof (shm_seg0_def))helliphelliphelliphelliphelliphellip

rtai_free (SEG0_BASE seg0)

fichier drsquoentecircte de la meacutemoire partageacutee fourni dans la couche RTAI de linux

Initialisation du segment SEG0_BASE Allocation de lameacutemoire pointeacutee

par seg0

Lecture des donneacutees provenant du bas

niveau

Mise agrave jours du segment de meacutemoire partageacutee

Libeacuterer le segment de meacutemoire alloueacute

Equipe Systegraveme Robotiseacute de Production

5

Plan

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6979

S y nd e x

V5

bull Introductionbull Meacutethodologie AAA

bull Installationbull Utilisation du logiciel Syndex

bull Macrosbull LinuxIO un interface CC++ avec SynDEx

bull Exemple drsquoapplication Robuter-ULM

Equipe Systegraveme Robotiseacute de Production

V5

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7079

S y nd e x

V5

Exemple dapplication Exemple dapplication Robuter Robuter--ULM ULM

Equipe Systegraveme Robotiseacute de Production

V5

Description Robuter-ULMbull Base mobile (2-RM 2-RF)

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7179

S y nd e x

V

bull Bras ultra-leacuteger 6 axesbull Ceinture 24 capteurs US

bull Capteur drsquoefforts 6 axes

bull Cameacutera CCD monochromeavec carte drsquoacquisition

bull PC embarqueacute MMX 233

bull OS linux redhat 61 avecRTAI V-13

bull 3 bouton drsquoarrecirct drsquourgence

bull 4 batteries 48 VDC 4 X12V 60 Ah

bull Entreacutee Joystick

bull Liaison Ethernet sans fil

Le manipulateur mobile Robuter-ULM comprend

Equipe Systegraveme Robotiseacute de Production

V5

Base Mobilebull dimension

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7279

S y nd e x

V

1025 mm de longueur 680 mm de largueur et 44 cm de hauteurbull Poids environ 150 kg avec les batteriesbull charge jusqursquoagrave 120 kg

bull vitesse de 5cms agrave 125 msbull Moteurs 2 X 300 W DC 48 VDCbull orientation par diffeacuterence de vitesse

bull Preacutecision Position par encodeurs optiquesbull Deux roues motrices diffeacuterentielles et de deux roues follesbull Drsquoune ceinture de 24 capteurs Ultrasons

bull Une carte MPC555 de Robosoft pour le controcircle des deuxmoteurs DC des 2 rouesbull Un systegraveme drsquoodomeacutetrie qui donne la position relative du robot

par rapport agrave son repegravere

Equipe Systegraveme Robotiseacute de Production

V5

bull dimension Faute de documentation

Bras U tra- eacuteger

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7379

S y nd e x

V Faute de documentation

bull Poids moins de 20 kgbull charge 2 kgbull Moteurs 6 moteurs DC

bull gripper pince eacutelectrique 2 doigtsbull Reacutepeacutetabiliteacute +- 1mmbull 3 carte MPC555 de Robosoft lrsquoune pour le capteur drsquoeffort et les

deux autres pour les 6 moteurs + moteur de la pincebull Position encodeur increacutemental

1 2 3 4 5 6Axisrange

plusmn90deg 0-90deg plusmn80deg plusmn100deg plusmn90deg plusmn110deg

vitesse 180degs 180degs 180degs 180degs 180degs 180degs

Equipe Systegraveme Robotiseacute de Production

V5

rc tecture ar ware

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7479

S y nd e x

V

Equipe Systegraveme Robotiseacute de Production

V5

Pro eacutemat quePlusieurs applications peuvent ecirctre impleacutementeacutees sur le robot

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7579

S y nd e x

V

Cependant il faut faire la diffeacuterence entre les applications quidemande lrsquoutilisation de syndex et les applications qui neneacutecessite qursquoune programmation en CC++ Agrave titre drsquoexemple

bull Localisationbull Commande en position

bull Commande en forcebull Navigation

bull Geacuteneacuteration de trajectoire

bull Vision

Equipe Systegraveme Robotiseacute de Production

V5 bull Pince eacutelectrique (TOR)

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7679

S y nd e x

Vq ( )

bull Pince possegravede des ES Logiques

Notre application consiste agrave

bull Recevoir lrsquoeacutetat de la pince (fermeacutee ouverte )

bull Envoyer une commande vers la pince

Capture

drsquoinformation

Open

Close

CommandeMeacutemoire

Partageacutee

Actionneur

Pince Prise de deacutecision Pince

Equipe Systegraveme Robotiseacute de Production

V5

Sc eacutema eacute ectr que

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7779

S y nd e x

Equipe Systegraveme Robotiseacute de Production

V5

Conclusion

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7879

S y nd e x bull Introduction

bull Meacutethodologie AAA

bull Installationbull Utilisation du logiciel Syndex

bull Macrosbull LinuxIO un interface CC++ avec SynDEx

bull Exemple drsquoapplication Robuter-ULM

Equipe Systegraveme Robotiseacute de Production

V5

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7979

S y nd e x

Questions

Page 62: Cours Syndex

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6279

S y nd

e x

V5

niveau tout programmecomme la planification detrajectoires strateacutegies de

navigation etc hellipLrsquoeacutechange de donneacutees sefait par le biais desmeacutemoires partageacutees quifont parti du noyau RTAI

et de lrsquoespace utilisateursde Linux

Toute ressource preacutesente sur la carte Robosoft peutecirctre partageacutee sans aune restriction

Equipe Systegraveme Robotiseacute de Production pp cat on as n veauUne application bas niveau

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6379

S y nd

e x

V5

Une application bas niveau

est un programme conccedilusous syndex comme lacommande des moteurs la

lecture des capteurs etc hellipLes ressources mateacuteriellessont controcircler par plusieurs

cartes MPC555 Ces cartessrsquoeacutechangent des donneacuteesvia le bus CAN Donc ES

est prise en charge par lasource logicielle deacutedieacutee quisrsquoexeacutecute dans les cartes MPC555 puis la couche RTAI

est utiliseacute pour la mise agrave jour de meacutemoires partageacutees pour lrsquoespace utilisateurs linux drsquoeacutechange de donneacutees

Equipe Systegraveme Robotiseacute de ProductionUtilisation de linux_IO par syndex

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6479

S y nd

e x

V5

Equipe Systegraveme Robotiseacute de ProductionUtilisation de linux_IO par syndex

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6579

S y nd

e x

V5

Equipe Systegraveme Robotiseacute de Production

5

Utilisation de linux_IO par syndex

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6679

S y nd

e x

V5

Degraves que la conception de lrsquoapplication sous syndex esttermineacutee et apregraves compilation (AdequationDo it +GenExec) un fichier drsquoentecircte sous le nom de linioh est

automatiquement geacuteneacutereacute Ce fichier contient lesinformations neacutecessaires pour acceacuteder aux entreacutees enlecture et aux sorties en eacutecriture des opeacuterations linuxIO_

inseacutereacutees dans le graphe drsquoalgorithme Le contenu de cefichier est organiseacute en plusieurs parties une pour chaqueopeacuteration linux_IO preacutesente dans le graphe

Equipe Systegraveme Robotiseacute de Production

5

Utilisation de linux_IO par syndex linioh auto-generated C users API frontend

C i h b f 2001 i i i b f f

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6779

S y nd

e x

V5 Copyright Robosoft 2001 Pierre Pomiers ltpierrerobosoftfrgt

LINUX IO shared memory data segments

define SEG0_BASE 0x10000typedef struct

int js_spd_o0

int js_str_o0

int enc_R_o0int enc_L_o0

double odo_X_o0

double odo_Y_o0

double odo_T_o0int spd_R_o0

int spd_L_o0

int time

unsigned char sem shm_seg0_def

Nom du segment de meacutemoire partageacutee pour notre opeacuteration linuxIO_

7 signaux drsquoentreacutees Ces valeurs sonten lecture et sont peacuteriodiquementrafraicircchies par RTAI

2 signaux de sorties Ces valeurs sonten eacutecriture et sont peacuteriodiquementrafraicircchies par RTAI

Equipe Systegraveme Robotiseacute de Production

5

Crsquoest une eacutetape tregraves facile il suffit drsquoinclure le fichier drsquoentecirctelinio h dans le code du fichier en CC++ comme suit

Utilisation de linuxIO_ par un programme CC+

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6879

S y nd

e x

V5 linioh dans le code du fichier en CC++ comme suit

include linioh

include ltrtai_shmhgt

static shm_seg0_def seg0

shm_seg0_def robot

seg0 = rtai_malloc (SEG0_BASE sizeof (shm_seg0_def))

if (seg0-gtsem = 0) bcopy (seg0 amprobot sizeof (shm_seg0_def))helliphelliphellip

helliphelliphellip bcopy (amprobot seg0 sizeof (shm_seg0_def))helliphelliphelliphelliphelliphellip

rtai_free (SEG0_BASE seg0)

fichier drsquoentecircte de la meacutemoire partageacutee fourni dans la couche RTAI de linux

Initialisation du segment SEG0_BASE Allocation de lameacutemoire pointeacutee

par seg0

Lecture des donneacutees provenant du bas

niveau

Mise agrave jours du segment de meacutemoire partageacutee

Libeacuterer le segment de meacutemoire alloueacute

Equipe Systegraveme Robotiseacute de Production

5

Plan

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6979

S y nd e x

V5

bull Introductionbull Meacutethodologie AAA

bull Installationbull Utilisation du logiciel Syndex

bull Macrosbull LinuxIO un interface CC++ avec SynDEx

bull Exemple drsquoapplication Robuter-ULM

Equipe Systegraveme Robotiseacute de Production

V5

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7079

S y nd e x

V5

Exemple dapplication Exemple dapplication Robuter Robuter--ULM ULM

Equipe Systegraveme Robotiseacute de Production

V5

Description Robuter-ULMbull Base mobile (2-RM 2-RF)

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7179

S y nd e x

V

bull Bras ultra-leacuteger 6 axesbull Ceinture 24 capteurs US

bull Capteur drsquoefforts 6 axes

bull Cameacutera CCD monochromeavec carte drsquoacquisition

bull PC embarqueacute MMX 233

bull OS linux redhat 61 avecRTAI V-13

bull 3 bouton drsquoarrecirct drsquourgence

bull 4 batteries 48 VDC 4 X12V 60 Ah

bull Entreacutee Joystick

bull Liaison Ethernet sans fil

Le manipulateur mobile Robuter-ULM comprend

Equipe Systegraveme Robotiseacute de Production

V5

Base Mobilebull dimension

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7279

S y nd e x

V

1025 mm de longueur 680 mm de largueur et 44 cm de hauteurbull Poids environ 150 kg avec les batteriesbull charge jusqursquoagrave 120 kg

bull vitesse de 5cms agrave 125 msbull Moteurs 2 X 300 W DC 48 VDCbull orientation par diffeacuterence de vitesse

bull Preacutecision Position par encodeurs optiquesbull Deux roues motrices diffeacuterentielles et de deux roues follesbull Drsquoune ceinture de 24 capteurs Ultrasons

bull Une carte MPC555 de Robosoft pour le controcircle des deuxmoteurs DC des 2 rouesbull Un systegraveme drsquoodomeacutetrie qui donne la position relative du robot

par rapport agrave son repegravere

Equipe Systegraveme Robotiseacute de Production

V5

bull dimension Faute de documentation

Bras U tra- eacuteger

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7379

S y nd e x

V Faute de documentation

bull Poids moins de 20 kgbull charge 2 kgbull Moteurs 6 moteurs DC

bull gripper pince eacutelectrique 2 doigtsbull Reacutepeacutetabiliteacute +- 1mmbull 3 carte MPC555 de Robosoft lrsquoune pour le capteur drsquoeffort et les

deux autres pour les 6 moteurs + moteur de la pincebull Position encodeur increacutemental

1 2 3 4 5 6Axisrange

plusmn90deg 0-90deg plusmn80deg plusmn100deg plusmn90deg plusmn110deg

vitesse 180degs 180degs 180degs 180degs 180degs 180degs

Equipe Systegraveme Robotiseacute de Production

V5

rc tecture ar ware

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7479

S y nd e x

V

Equipe Systegraveme Robotiseacute de Production

V5

Pro eacutemat quePlusieurs applications peuvent ecirctre impleacutementeacutees sur le robot

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7579

S y nd e x

V

Cependant il faut faire la diffeacuterence entre les applications quidemande lrsquoutilisation de syndex et les applications qui neneacutecessite qursquoune programmation en CC++ Agrave titre drsquoexemple

bull Localisationbull Commande en position

bull Commande en forcebull Navigation

bull Geacuteneacuteration de trajectoire

bull Vision

Equipe Systegraveme Robotiseacute de Production

V5 bull Pince eacutelectrique (TOR)

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7679

S y nd e x

Vq ( )

bull Pince possegravede des ES Logiques

Notre application consiste agrave

bull Recevoir lrsquoeacutetat de la pince (fermeacutee ouverte )

bull Envoyer une commande vers la pince

Capture

drsquoinformation

Open

Close

CommandeMeacutemoire

Partageacutee

Actionneur

Pince Prise de deacutecision Pince

Equipe Systegraveme Robotiseacute de Production

V5

Sc eacutema eacute ectr que

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7779

S y nd e x

Equipe Systegraveme Robotiseacute de Production

V5

Conclusion

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7879

S y nd e x bull Introduction

bull Meacutethodologie AAA

bull Installationbull Utilisation du logiciel Syndex

bull Macrosbull LinuxIO un interface CC++ avec SynDEx

bull Exemple drsquoapplication Robuter-ULM

Equipe Systegraveme Robotiseacute de Production

V5

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7979

S y nd e x

Questions

Page 63: Cours Syndex

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6379

S y nd

e x

V5

Une application bas niveau

est un programme conccedilusous syndex comme lacommande des moteurs la

lecture des capteurs etc hellipLes ressources mateacuteriellessont controcircler par plusieurs

cartes MPC555 Ces cartessrsquoeacutechangent des donneacuteesvia le bus CAN Donc ES

est prise en charge par lasource logicielle deacutedieacutee quisrsquoexeacutecute dans les cartes MPC555 puis la couche RTAI

est utiliseacute pour la mise agrave jour de meacutemoires partageacutees pour lrsquoespace utilisateurs linux drsquoeacutechange de donneacutees

Equipe Systegraveme Robotiseacute de ProductionUtilisation de linux_IO par syndex

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6479

S y nd

e x

V5

Equipe Systegraveme Robotiseacute de ProductionUtilisation de linux_IO par syndex

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6579

S y nd

e x

V5

Equipe Systegraveme Robotiseacute de Production

5

Utilisation de linux_IO par syndex

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6679

S y nd

e x

V5

Degraves que la conception de lrsquoapplication sous syndex esttermineacutee et apregraves compilation (AdequationDo it +GenExec) un fichier drsquoentecircte sous le nom de linioh est

automatiquement geacuteneacutereacute Ce fichier contient lesinformations neacutecessaires pour acceacuteder aux entreacutees enlecture et aux sorties en eacutecriture des opeacuterations linuxIO_

inseacutereacutees dans le graphe drsquoalgorithme Le contenu de cefichier est organiseacute en plusieurs parties une pour chaqueopeacuteration linux_IO preacutesente dans le graphe

Equipe Systegraveme Robotiseacute de Production

5

Utilisation de linux_IO par syndex linioh auto-generated C users API frontend

C i h b f 2001 i i i b f f

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6779

S y nd

e x

V5 Copyright Robosoft 2001 Pierre Pomiers ltpierrerobosoftfrgt

LINUX IO shared memory data segments

define SEG0_BASE 0x10000typedef struct

int js_spd_o0

int js_str_o0

int enc_R_o0int enc_L_o0

double odo_X_o0

double odo_Y_o0

double odo_T_o0int spd_R_o0

int spd_L_o0

int time

unsigned char sem shm_seg0_def

Nom du segment de meacutemoire partageacutee pour notre opeacuteration linuxIO_

7 signaux drsquoentreacutees Ces valeurs sonten lecture et sont peacuteriodiquementrafraicircchies par RTAI

2 signaux de sorties Ces valeurs sonten eacutecriture et sont peacuteriodiquementrafraicircchies par RTAI

Equipe Systegraveme Robotiseacute de Production

5

Crsquoest une eacutetape tregraves facile il suffit drsquoinclure le fichier drsquoentecirctelinio h dans le code du fichier en CC++ comme suit

Utilisation de linuxIO_ par un programme CC+

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6879

S y nd

e x

V5 linioh dans le code du fichier en CC++ comme suit

include linioh

include ltrtai_shmhgt

static shm_seg0_def seg0

shm_seg0_def robot

seg0 = rtai_malloc (SEG0_BASE sizeof (shm_seg0_def))

if (seg0-gtsem = 0) bcopy (seg0 amprobot sizeof (shm_seg0_def))helliphelliphellip

helliphelliphellip bcopy (amprobot seg0 sizeof (shm_seg0_def))helliphelliphelliphelliphelliphellip

rtai_free (SEG0_BASE seg0)

fichier drsquoentecircte de la meacutemoire partageacutee fourni dans la couche RTAI de linux

Initialisation du segment SEG0_BASE Allocation de lameacutemoire pointeacutee

par seg0

Lecture des donneacutees provenant du bas

niveau

Mise agrave jours du segment de meacutemoire partageacutee

Libeacuterer le segment de meacutemoire alloueacute

Equipe Systegraveme Robotiseacute de Production

5

Plan

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6979

S y nd e x

V5

bull Introductionbull Meacutethodologie AAA

bull Installationbull Utilisation du logiciel Syndex

bull Macrosbull LinuxIO un interface CC++ avec SynDEx

bull Exemple drsquoapplication Robuter-ULM

Equipe Systegraveme Robotiseacute de Production

V5

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7079

S y nd e x

V5

Exemple dapplication Exemple dapplication Robuter Robuter--ULM ULM

Equipe Systegraveme Robotiseacute de Production

V5

Description Robuter-ULMbull Base mobile (2-RM 2-RF)

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7179

S y nd e x

V

bull Bras ultra-leacuteger 6 axesbull Ceinture 24 capteurs US

bull Capteur drsquoefforts 6 axes

bull Cameacutera CCD monochromeavec carte drsquoacquisition

bull PC embarqueacute MMX 233

bull OS linux redhat 61 avecRTAI V-13

bull 3 bouton drsquoarrecirct drsquourgence

bull 4 batteries 48 VDC 4 X12V 60 Ah

bull Entreacutee Joystick

bull Liaison Ethernet sans fil

Le manipulateur mobile Robuter-ULM comprend

Equipe Systegraveme Robotiseacute de Production

V5

Base Mobilebull dimension

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7279

S y nd e x

V

1025 mm de longueur 680 mm de largueur et 44 cm de hauteurbull Poids environ 150 kg avec les batteriesbull charge jusqursquoagrave 120 kg

bull vitesse de 5cms agrave 125 msbull Moteurs 2 X 300 W DC 48 VDCbull orientation par diffeacuterence de vitesse

bull Preacutecision Position par encodeurs optiquesbull Deux roues motrices diffeacuterentielles et de deux roues follesbull Drsquoune ceinture de 24 capteurs Ultrasons

bull Une carte MPC555 de Robosoft pour le controcircle des deuxmoteurs DC des 2 rouesbull Un systegraveme drsquoodomeacutetrie qui donne la position relative du robot

par rapport agrave son repegravere

Equipe Systegraveme Robotiseacute de Production

V5

bull dimension Faute de documentation

Bras U tra- eacuteger

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7379

S y nd e x

V Faute de documentation

bull Poids moins de 20 kgbull charge 2 kgbull Moteurs 6 moteurs DC

bull gripper pince eacutelectrique 2 doigtsbull Reacutepeacutetabiliteacute +- 1mmbull 3 carte MPC555 de Robosoft lrsquoune pour le capteur drsquoeffort et les

deux autres pour les 6 moteurs + moteur de la pincebull Position encodeur increacutemental

1 2 3 4 5 6Axisrange

plusmn90deg 0-90deg plusmn80deg plusmn100deg plusmn90deg plusmn110deg

vitesse 180degs 180degs 180degs 180degs 180degs 180degs

Equipe Systegraveme Robotiseacute de Production

V5

rc tecture ar ware

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7479

S y nd e x

V

Equipe Systegraveme Robotiseacute de Production

V5

Pro eacutemat quePlusieurs applications peuvent ecirctre impleacutementeacutees sur le robot

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7579

S y nd e x

V

Cependant il faut faire la diffeacuterence entre les applications quidemande lrsquoutilisation de syndex et les applications qui neneacutecessite qursquoune programmation en CC++ Agrave titre drsquoexemple

bull Localisationbull Commande en position

bull Commande en forcebull Navigation

bull Geacuteneacuteration de trajectoire

bull Vision

Equipe Systegraveme Robotiseacute de Production

V5 bull Pince eacutelectrique (TOR)

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7679

S y nd e x

Vq ( )

bull Pince possegravede des ES Logiques

Notre application consiste agrave

bull Recevoir lrsquoeacutetat de la pince (fermeacutee ouverte )

bull Envoyer une commande vers la pince

Capture

drsquoinformation

Open

Close

CommandeMeacutemoire

Partageacutee

Actionneur

Pince Prise de deacutecision Pince

Equipe Systegraveme Robotiseacute de Production

V5

Sc eacutema eacute ectr que

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7779

S y nd e x

Equipe Systegraveme Robotiseacute de Production

V5

Conclusion

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7879

S y nd e x bull Introduction

bull Meacutethodologie AAA

bull Installationbull Utilisation du logiciel Syndex

bull Macrosbull LinuxIO un interface CC++ avec SynDEx

bull Exemple drsquoapplication Robuter-ULM

Equipe Systegraveme Robotiseacute de Production

V5

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7979

S y nd e x

Questions

Page 64: Cours Syndex

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6479

S y nd

e x

V5

Equipe Systegraveme Robotiseacute de ProductionUtilisation de linux_IO par syndex

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6579

S y nd

e x

V5

Equipe Systegraveme Robotiseacute de Production

5

Utilisation de linux_IO par syndex

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6679

S y nd

e x

V5

Degraves que la conception de lrsquoapplication sous syndex esttermineacutee et apregraves compilation (AdequationDo it +GenExec) un fichier drsquoentecircte sous le nom de linioh est

automatiquement geacuteneacutereacute Ce fichier contient lesinformations neacutecessaires pour acceacuteder aux entreacutees enlecture et aux sorties en eacutecriture des opeacuterations linuxIO_

inseacutereacutees dans le graphe drsquoalgorithme Le contenu de cefichier est organiseacute en plusieurs parties une pour chaqueopeacuteration linux_IO preacutesente dans le graphe

Equipe Systegraveme Robotiseacute de Production

5

Utilisation de linux_IO par syndex linioh auto-generated C users API frontend

C i h b f 2001 i i i b f f

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6779

S y nd

e x

V5 Copyright Robosoft 2001 Pierre Pomiers ltpierrerobosoftfrgt

LINUX IO shared memory data segments

define SEG0_BASE 0x10000typedef struct

int js_spd_o0

int js_str_o0

int enc_R_o0int enc_L_o0

double odo_X_o0

double odo_Y_o0

double odo_T_o0int spd_R_o0

int spd_L_o0

int time

unsigned char sem shm_seg0_def

Nom du segment de meacutemoire partageacutee pour notre opeacuteration linuxIO_

7 signaux drsquoentreacutees Ces valeurs sonten lecture et sont peacuteriodiquementrafraicircchies par RTAI

2 signaux de sorties Ces valeurs sonten eacutecriture et sont peacuteriodiquementrafraicircchies par RTAI

Equipe Systegraveme Robotiseacute de Production

5

Crsquoest une eacutetape tregraves facile il suffit drsquoinclure le fichier drsquoentecirctelinio h dans le code du fichier en CC++ comme suit

Utilisation de linuxIO_ par un programme CC+

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6879

S y nd

e x

V5 linioh dans le code du fichier en CC++ comme suit

include linioh

include ltrtai_shmhgt

static shm_seg0_def seg0

shm_seg0_def robot

seg0 = rtai_malloc (SEG0_BASE sizeof (shm_seg0_def))

if (seg0-gtsem = 0) bcopy (seg0 amprobot sizeof (shm_seg0_def))helliphelliphellip

helliphelliphellip bcopy (amprobot seg0 sizeof (shm_seg0_def))helliphelliphelliphelliphelliphellip

rtai_free (SEG0_BASE seg0)

fichier drsquoentecircte de la meacutemoire partageacutee fourni dans la couche RTAI de linux

Initialisation du segment SEG0_BASE Allocation de lameacutemoire pointeacutee

par seg0

Lecture des donneacutees provenant du bas

niveau

Mise agrave jours du segment de meacutemoire partageacutee

Libeacuterer le segment de meacutemoire alloueacute

Equipe Systegraveme Robotiseacute de Production

5

Plan

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6979

S y nd e x

V5

bull Introductionbull Meacutethodologie AAA

bull Installationbull Utilisation du logiciel Syndex

bull Macrosbull LinuxIO un interface CC++ avec SynDEx

bull Exemple drsquoapplication Robuter-ULM

Equipe Systegraveme Robotiseacute de Production

V5

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7079

S y nd e x

V5

Exemple dapplication Exemple dapplication Robuter Robuter--ULM ULM

Equipe Systegraveme Robotiseacute de Production

V5

Description Robuter-ULMbull Base mobile (2-RM 2-RF)

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7179

S y nd e x

V

bull Bras ultra-leacuteger 6 axesbull Ceinture 24 capteurs US

bull Capteur drsquoefforts 6 axes

bull Cameacutera CCD monochromeavec carte drsquoacquisition

bull PC embarqueacute MMX 233

bull OS linux redhat 61 avecRTAI V-13

bull 3 bouton drsquoarrecirct drsquourgence

bull 4 batteries 48 VDC 4 X12V 60 Ah

bull Entreacutee Joystick

bull Liaison Ethernet sans fil

Le manipulateur mobile Robuter-ULM comprend

Equipe Systegraveme Robotiseacute de Production

V5

Base Mobilebull dimension

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7279

S y nd e x

V

1025 mm de longueur 680 mm de largueur et 44 cm de hauteurbull Poids environ 150 kg avec les batteriesbull charge jusqursquoagrave 120 kg

bull vitesse de 5cms agrave 125 msbull Moteurs 2 X 300 W DC 48 VDCbull orientation par diffeacuterence de vitesse

bull Preacutecision Position par encodeurs optiquesbull Deux roues motrices diffeacuterentielles et de deux roues follesbull Drsquoune ceinture de 24 capteurs Ultrasons

bull Une carte MPC555 de Robosoft pour le controcircle des deuxmoteurs DC des 2 rouesbull Un systegraveme drsquoodomeacutetrie qui donne la position relative du robot

par rapport agrave son repegravere

Equipe Systegraveme Robotiseacute de Production

V5

bull dimension Faute de documentation

Bras U tra- eacuteger

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7379

S y nd e x

V Faute de documentation

bull Poids moins de 20 kgbull charge 2 kgbull Moteurs 6 moteurs DC

bull gripper pince eacutelectrique 2 doigtsbull Reacutepeacutetabiliteacute +- 1mmbull 3 carte MPC555 de Robosoft lrsquoune pour le capteur drsquoeffort et les

deux autres pour les 6 moteurs + moteur de la pincebull Position encodeur increacutemental

1 2 3 4 5 6Axisrange

plusmn90deg 0-90deg plusmn80deg plusmn100deg plusmn90deg plusmn110deg

vitesse 180degs 180degs 180degs 180degs 180degs 180degs

Equipe Systegraveme Robotiseacute de Production

V5

rc tecture ar ware

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7479

S y nd e x

V

Equipe Systegraveme Robotiseacute de Production

V5

Pro eacutemat quePlusieurs applications peuvent ecirctre impleacutementeacutees sur le robot

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7579

S y nd e x

V

Cependant il faut faire la diffeacuterence entre les applications quidemande lrsquoutilisation de syndex et les applications qui neneacutecessite qursquoune programmation en CC++ Agrave titre drsquoexemple

bull Localisationbull Commande en position

bull Commande en forcebull Navigation

bull Geacuteneacuteration de trajectoire

bull Vision

Equipe Systegraveme Robotiseacute de Production

V5 bull Pince eacutelectrique (TOR)

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7679

S y nd e x

Vq ( )

bull Pince possegravede des ES Logiques

Notre application consiste agrave

bull Recevoir lrsquoeacutetat de la pince (fermeacutee ouverte )

bull Envoyer une commande vers la pince

Capture

drsquoinformation

Open

Close

CommandeMeacutemoire

Partageacutee

Actionneur

Pince Prise de deacutecision Pince

Equipe Systegraveme Robotiseacute de Production

V5

Sc eacutema eacute ectr que

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7779

S y nd e x

Equipe Systegraveme Robotiseacute de Production

V5

Conclusion

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7879

S y nd e x bull Introduction

bull Meacutethodologie AAA

bull Installationbull Utilisation du logiciel Syndex

bull Macrosbull LinuxIO un interface CC++ avec SynDEx

bull Exemple drsquoapplication Robuter-ULM

Equipe Systegraveme Robotiseacute de Production

V5

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7979

S y nd e x

Questions

Page 65: Cours Syndex

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6579

S y nd

e x

V5

Equipe Systegraveme Robotiseacute de Production

5

Utilisation de linux_IO par syndex

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6679

S y nd

e x

V5

Degraves que la conception de lrsquoapplication sous syndex esttermineacutee et apregraves compilation (AdequationDo it +GenExec) un fichier drsquoentecircte sous le nom de linioh est

automatiquement geacuteneacutereacute Ce fichier contient lesinformations neacutecessaires pour acceacuteder aux entreacutees enlecture et aux sorties en eacutecriture des opeacuterations linuxIO_

inseacutereacutees dans le graphe drsquoalgorithme Le contenu de cefichier est organiseacute en plusieurs parties une pour chaqueopeacuteration linux_IO preacutesente dans le graphe

Equipe Systegraveme Robotiseacute de Production

5

Utilisation de linux_IO par syndex linioh auto-generated C users API frontend

C i h b f 2001 i i i b f f

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6779

S y nd

e x

V5 Copyright Robosoft 2001 Pierre Pomiers ltpierrerobosoftfrgt

LINUX IO shared memory data segments

define SEG0_BASE 0x10000typedef struct

int js_spd_o0

int js_str_o0

int enc_R_o0int enc_L_o0

double odo_X_o0

double odo_Y_o0

double odo_T_o0int spd_R_o0

int spd_L_o0

int time

unsigned char sem shm_seg0_def

Nom du segment de meacutemoire partageacutee pour notre opeacuteration linuxIO_

7 signaux drsquoentreacutees Ces valeurs sonten lecture et sont peacuteriodiquementrafraicircchies par RTAI

2 signaux de sorties Ces valeurs sonten eacutecriture et sont peacuteriodiquementrafraicircchies par RTAI

Equipe Systegraveme Robotiseacute de Production

5

Crsquoest une eacutetape tregraves facile il suffit drsquoinclure le fichier drsquoentecirctelinio h dans le code du fichier en CC++ comme suit

Utilisation de linuxIO_ par un programme CC+

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6879

S y nd

e x

V5 linioh dans le code du fichier en CC++ comme suit

include linioh

include ltrtai_shmhgt

static shm_seg0_def seg0

shm_seg0_def robot

seg0 = rtai_malloc (SEG0_BASE sizeof (shm_seg0_def))

if (seg0-gtsem = 0) bcopy (seg0 amprobot sizeof (shm_seg0_def))helliphelliphellip

helliphelliphellip bcopy (amprobot seg0 sizeof (shm_seg0_def))helliphelliphelliphelliphelliphellip

rtai_free (SEG0_BASE seg0)

fichier drsquoentecircte de la meacutemoire partageacutee fourni dans la couche RTAI de linux

Initialisation du segment SEG0_BASE Allocation de lameacutemoire pointeacutee

par seg0

Lecture des donneacutees provenant du bas

niveau

Mise agrave jours du segment de meacutemoire partageacutee

Libeacuterer le segment de meacutemoire alloueacute

Equipe Systegraveme Robotiseacute de Production

5

Plan

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6979

S y nd e x

V5

bull Introductionbull Meacutethodologie AAA

bull Installationbull Utilisation du logiciel Syndex

bull Macrosbull LinuxIO un interface CC++ avec SynDEx

bull Exemple drsquoapplication Robuter-ULM

Equipe Systegraveme Robotiseacute de Production

V5

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7079

S y nd e x

V5

Exemple dapplication Exemple dapplication Robuter Robuter--ULM ULM

Equipe Systegraveme Robotiseacute de Production

V5

Description Robuter-ULMbull Base mobile (2-RM 2-RF)

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7179

S y nd e x

V

bull Bras ultra-leacuteger 6 axesbull Ceinture 24 capteurs US

bull Capteur drsquoefforts 6 axes

bull Cameacutera CCD monochromeavec carte drsquoacquisition

bull PC embarqueacute MMX 233

bull OS linux redhat 61 avecRTAI V-13

bull 3 bouton drsquoarrecirct drsquourgence

bull 4 batteries 48 VDC 4 X12V 60 Ah

bull Entreacutee Joystick

bull Liaison Ethernet sans fil

Le manipulateur mobile Robuter-ULM comprend

Equipe Systegraveme Robotiseacute de Production

V5

Base Mobilebull dimension

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7279

S y nd e x

V

1025 mm de longueur 680 mm de largueur et 44 cm de hauteurbull Poids environ 150 kg avec les batteriesbull charge jusqursquoagrave 120 kg

bull vitesse de 5cms agrave 125 msbull Moteurs 2 X 300 W DC 48 VDCbull orientation par diffeacuterence de vitesse

bull Preacutecision Position par encodeurs optiquesbull Deux roues motrices diffeacuterentielles et de deux roues follesbull Drsquoune ceinture de 24 capteurs Ultrasons

bull Une carte MPC555 de Robosoft pour le controcircle des deuxmoteurs DC des 2 rouesbull Un systegraveme drsquoodomeacutetrie qui donne la position relative du robot

par rapport agrave son repegravere

Equipe Systegraveme Robotiseacute de Production

V5

bull dimension Faute de documentation

Bras U tra- eacuteger

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7379

S y nd e x

V Faute de documentation

bull Poids moins de 20 kgbull charge 2 kgbull Moteurs 6 moteurs DC

bull gripper pince eacutelectrique 2 doigtsbull Reacutepeacutetabiliteacute +- 1mmbull 3 carte MPC555 de Robosoft lrsquoune pour le capteur drsquoeffort et les

deux autres pour les 6 moteurs + moteur de la pincebull Position encodeur increacutemental

1 2 3 4 5 6Axisrange

plusmn90deg 0-90deg plusmn80deg plusmn100deg plusmn90deg plusmn110deg

vitesse 180degs 180degs 180degs 180degs 180degs 180degs

Equipe Systegraveme Robotiseacute de Production

V5

rc tecture ar ware

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7479

S y nd e x

V

Equipe Systegraveme Robotiseacute de Production

V5

Pro eacutemat quePlusieurs applications peuvent ecirctre impleacutementeacutees sur le robot

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7579

S y nd e x

V

Cependant il faut faire la diffeacuterence entre les applications quidemande lrsquoutilisation de syndex et les applications qui neneacutecessite qursquoune programmation en CC++ Agrave titre drsquoexemple

bull Localisationbull Commande en position

bull Commande en forcebull Navigation

bull Geacuteneacuteration de trajectoire

bull Vision

Equipe Systegraveme Robotiseacute de Production

V5 bull Pince eacutelectrique (TOR)

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7679

S y nd e x

Vq ( )

bull Pince possegravede des ES Logiques

Notre application consiste agrave

bull Recevoir lrsquoeacutetat de la pince (fermeacutee ouverte )

bull Envoyer une commande vers la pince

Capture

drsquoinformation

Open

Close

CommandeMeacutemoire

Partageacutee

Actionneur

Pince Prise de deacutecision Pince

Equipe Systegraveme Robotiseacute de Production

V5

Sc eacutema eacute ectr que

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7779

S y nd e x

Equipe Systegraveme Robotiseacute de Production

V5

Conclusion

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7879

S y nd e x bull Introduction

bull Meacutethodologie AAA

bull Installationbull Utilisation du logiciel Syndex

bull Macrosbull LinuxIO un interface CC++ avec SynDEx

bull Exemple drsquoapplication Robuter-ULM

Equipe Systegraveme Robotiseacute de Production

V5

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7979

S y nd e x

Questions

Page 66: Cours Syndex

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6679

S y nd

e x

V5

Degraves que la conception de lrsquoapplication sous syndex esttermineacutee et apregraves compilation (AdequationDo it +GenExec) un fichier drsquoentecircte sous le nom de linioh est

automatiquement geacuteneacutereacute Ce fichier contient lesinformations neacutecessaires pour acceacuteder aux entreacutees enlecture et aux sorties en eacutecriture des opeacuterations linuxIO_

inseacutereacutees dans le graphe drsquoalgorithme Le contenu de cefichier est organiseacute en plusieurs parties une pour chaqueopeacuteration linux_IO preacutesente dans le graphe

Equipe Systegraveme Robotiseacute de Production

5

Utilisation de linux_IO par syndex linioh auto-generated C users API frontend

C i h b f 2001 i i i b f f

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6779

S y nd

e x

V5 Copyright Robosoft 2001 Pierre Pomiers ltpierrerobosoftfrgt

LINUX IO shared memory data segments

define SEG0_BASE 0x10000typedef struct

int js_spd_o0

int js_str_o0

int enc_R_o0int enc_L_o0

double odo_X_o0

double odo_Y_o0

double odo_T_o0int spd_R_o0

int spd_L_o0

int time

unsigned char sem shm_seg0_def

Nom du segment de meacutemoire partageacutee pour notre opeacuteration linuxIO_

7 signaux drsquoentreacutees Ces valeurs sonten lecture et sont peacuteriodiquementrafraicircchies par RTAI

2 signaux de sorties Ces valeurs sonten eacutecriture et sont peacuteriodiquementrafraicircchies par RTAI

Equipe Systegraveme Robotiseacute de Production

5

Crsquoest une eacutetape tregraves facile il suffit drsquoinclure le fichier drsquoentecirctelinio h dans le code du fichier en CC++ comme suit

Utilisation de linuxIO_ par un programme CC+

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6879

S y nd

e x

V5 linioh dans le code du fichier en CC++ comme suit

include linioh

include ltrtai_shmhgt

static shm_seg0_def seg0

shm_seg0_def robot

seg0 = rtai_malloc (SEG0_BASE sizeof (shm_seg0_def))

if (seg0-gtsem = 0) bcopy (seg0 amprobot sizeof (shm_seg0_def))helliphelliphellip

helliphelliphellip bcopy (amprobot seg0 sizeof (shm_seg0_def))helliphelliphelliphelliphelliphellip

rtai_free (SEG0_BASE seg0)

fichier drsquoentecircte de la meacutemoire partageacutee fourni dans la couche RTAI de linux

Initialisation du segment SEG0_BASE Allocation de lameacutemoire pointeacutee

par seg0

Lecture des donneacutees provenant du bas

niveau

Mise agrave jours du segment de meacutemoire partageacutee

Libeacuterer le segment de meacutemoire alloueacute

Equipe Systegraveme Robotiseacute de Production

5

Plan

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6979

S y nd e x

V5

bull Introductionbull Meacutethodologie AAA

bull Installationbull Utilisation du logiciel Syndex

bull Macrosbull LinuxIO un interface CC++ avec SynDEx

bull Exemple drsquoapplication Robuter-ULM

Equipe Systegraveme Robotiseacute de Production

V5

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7079

S y nd e x

V5

Exemple dapplication Exemple dapplication Robuter Robuter--ULM ULM

Equipe Systegraveme Robotiseacute de Production

V5

Description Robuter-ULMbull Base mobile (2-RM 2-RF)

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7179

S y nd e x

V

bull Bras ultra-leacuteger 6 axesbull Ceinture 24 capteurs US

bull Capteur drsquoefforts 6 axes

bull Cameacutera CCD monochromeavec carte drsquoacquisition

bull PC embarqueacute MMX 233

bull OS linux redhat 61 avecRTAI V-13

bull 3 bouton drsquoarrecirct drsquourgence

bull 4 batteries 48 VDC 4 X12V 60 Ah

bull Entreacutee Joystick

bull Liaison Ethernet sans fil

Le manipulateur mobile Robuter-ULM comprend

Equipe Systegraveme Robotiseacute de Production

V5

Base Mobilebull dimension

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7279

S y nd e x

V

1025 mm de longueur 680 mm de largueur et 44 cm de hauteurbull Poids environ 150 kg avec les batteriesbull charge jusqursquoagrave 120 kg

bull vitesse de 5cms agrave 125 msbull Moteurs 2 X 300 W DC 48 VDCbull orientation par diffeacuterence de vitesse

bull Preacutecision Position par encodeurs optiquesbull Deux roues motrices diffeacuterentielles et de deux roues follesbull Drsquoune ceinture de 24 capteurs Ultrasons

bull Une carte MPC555 de Robosoft pour le controcircle des deuxmoteurs DC des 2 rouesbull Un systegraveme drsquoodomeacutetrie qui donne la position relative du robot

par rapport agrave son repegravere

Equipe Systegraveme Robotiseacute de Production

V5

bull dimension Faute de documentation

Bras U tra- eacuteger

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7379

S y nd e x

V Faute de documentation

bull Poids moins de 20 kgbull charge 2 kgbull Moteurs 6 moteurs DC

bull gripper pince eacutelectrique 2 doigtsbull Reacutepeacutetabiliteacute +- 1mmbull 3 carte MPC555 de Robosoft lrsquoune pour le capteur drsquoeffort et les

deux autres pour les 6 moteurs + moteur de la pincebull Position encodeur increacutemental

1 2 3 4 5 6Axisrange

plusmn90deg 0-90deg plusmn80deg plusmn100deg plusmn90deg plusmn110deg

vitesse 180degs 180degs 180degs 180degs 180degs 180degs

Equipe Systegraveme Robotiseacute de Production

V5

rc tecture ar ware

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7479

S y nd e x

V

Equipe Systegraveme Robotiseacute de Production

V5

Pro eacutemat quePlusieurs applications peuvent ecirctre impleacutementeacutees sur le robot

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7579

S y nd e x

V

Cependant il faut faire la diffeacuterence entre les applications quidemande lrsquoutilisation de syndex et les applications qui neneacutecessite qursquoune programmation en CC++ Agrave titre drsquoexemple

bull Localisationbull Commande en position

bull Commande en forcebull Navigation

bull Geacuteneacuteration de trajectoire

bull Vision

Equipe Systegraveme Robotiseacute de Production

V5 bull Pince eacutelectrique (TOR)

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7679

S y nd e x

Vq ( )

bull Pince possegravede des ES Logiques

Notre application consiste agrave

bull Recevoir lrsquoeacutetat de la pince (fermeacutee ouverte )

bull Envoyer une commande vers la pince

Capture

drsquoinformation

Open

Close

CommandeMeacutemoire

Partageacutee

Actionneur

Pince Prise de deacutecision Pince

Equipe Systegraveme Robotiseacute de Production

V5

Sc eacutema eacute ectr que

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7779

S y nd e x

Equipe Systegraveme Robotiseacute de Production

V5

Conclusion

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7879

S y nd e x bull Introduction

bull Meacutethodologie AAA

bull Installationbull Utilisation du logiciel Syndex

bull Macrosbull LinuxIO un interface CC++ avec SynDEx

bull Exemple drsquoapplication Robuter-ULM

Equipe Systegraveme Robotiseacute de Production

V5

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7979

S y nd e x

Questions

Page 67: Cours Syndex

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6779

S y nd

e x

V5 Copyright Robosoft 2001 Pierre Pomiers ltpierrerobosoftfrgt

LINUX IO shared memory data segments

define SEG0_BASE 0x10000typedef struct

int js_spd_o0

int js_str_o0

int enc_R_o0int enc_L_o0

double odo_X_o0

double odo_Y_o0

double odo_T_o0int spd_R_o0

int spd_L_o0

int time

unsigned char sem shm_seg0_def

Nom du segment de meacutemoire partageacutee pour notre opeacuteration linuxIO_

7 signaux drsquoentreacutees Ces valeurs sonten lecture et sont peacuteriodiquementrafraicircchies par RTAI

2 signaux de sorties Ces valeurs sonten eacutecriture et sont peacuteriodiquementrafraicircchies par RTAI

Equipe Systegraveme Robotiseacute de Production

5

Crsquoest une eacutetape tregraves facile il suffit drsquoinclure le fichier drsquoentecirctelinio h dans le code du fichier en CC++ comme suit

Utilisation de linuxIO_ par un programme CC+

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6879

S y nd

e x

V5 linioh dans le code du fichier en CC++ comme suit

include linioh

include ltrtai_shmhgt

static shm_seg0_def seg0

shm_seg0_def robot

seg0 = rtai_malloc (SEG0_BASE sizeof (shm_seg0_def))

if (seg0-gtsem = 0) bcopy (seg0 amprobot sizeof (shm_seg0_def))helliphelliphellip

helliphelliphellip bcopy (amprobot seg0 sizeof (shm_seg0_def))helliphelliphelliphelliphelliphellip

rtai_free (SEG0_BASE seg0)

fichier drsquoentecircte de la meacutemoire partageacutee fourni dans la couche RTAI de linux

Initialisation du segment SEG0_BASE Allocation de lameacutemoire pointeacutee

par seg0

Lecture des donneacutees provenant du bas

niveau

Mise agrave jours du segment de meacutemoire partageacutee

Libeacuterer le segment de meacutemoire alloueacute

Equipe Systegraveme Robotiseacute de Production

5

Plan

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6979

S y nd e x

V5

bull Introductionbull Meacutethodologie AAA

bull Installationbull Utilisation du logiciel Syndex

bull Macrosbull LinuxIO un interface CC++ avec SynDEx

bull Exemple drsquoapplication Robuter-ULM

Equipe Systegraveme Robotiseacute de Production

V5

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7079

S y nd e x

V5

Exemple dapplication Exemple dapplication Robuter Robuter--ULM ULM

Equipe Systegraveme Robotiseacute de Production

V5

Description Robuter-ULMbull Base mobile (2-RM 2-RF)

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7179

S y nd e x

V

bull Bras ultra-leacuteger 6 axesbull Ceinture 24 capteurs US

bull Capteur drsquoefforts 6 axes

bull Cameacutera CCD monochromeavec carte drsquoacquisition

bull PC embarqueacute MMX 233

bull OS linux redhat 61 avecRTAI V-13

bull 3 bouton drsquoarrecirct drsquourgence

bull 4 batteries 48 VDC 4 X12V 60 Ah

bull Entreacutee Joystick

bull Liaison Ethernet sans fil

Le manipulateur mobile Robuter-ULM comprend

Equipe Systegraveme Robotiseacute de Production

V5

Base Mobilebull dimension

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7279

S y nd e x

V

1025 mm de longueur 680 mm de largueur et 44 cm de hauteurbull Poids environ 150 kg avec les batteriesbull charge jusqursquoagrave 120 kg

bull vitesse de 5cms agrave 125 msbull Moteurs 2 X 300 W DC 48 VDCbull orientation par diffeacuterence de vitesse

bull Preacutecision Position par encodeurs optiquesbull Deux roues motrices diffeacuterentielles et de deux roues follesbull Drsquoune ceinture de 24 capteurs Ultrasons

bull Une carte MPC555 de Robosoft pour le controcircle des deuxmoteurs DC des 2 rouesbull Un systegraveme drsquoodomeacutetrie qui donne la position relative du robot

par rapport agrave son repegravere

Equipe Systegraveme Robotiseacute de Production

V5

bull dimension Faute de documentation

Bras U tra- eacuteger

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7379

S y nd e x

V Faute de documentation

bull Poids moins de 20 kgbull charge 2 kgbull Moteurs 6 moteurs DC

bull gripper pince eacutelectrique 2 doigtsbull Reacutepeacutetabiliteacute +- 1mmbull 3 carte MPC555 de Robosoft lrsquoune pour le capteur drsquoeffort et les

deux autres pour les 6 moteurs + moteur de la pincebull Position encodeur increacutemental

1 2 3 4 5 6Axisrange

plusmn90deg 0-90deg plusmn80deg plusmn100deg plusmn90deg plusmn110deg

vitesse 180degs 180degs 180degs 180degs 180degs 180degs

Equipe Systegraveme Robotiseacute de Production

V5

rc tecture ar ware

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7479

S y nd e x

V

Equipe Systegraveme Robotiseacute de Production

V5

Pro eacutemat quePlusieurs applications peuvent ecirctre impleacutementeacutees sur le robot

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7579

S y nd e x

V

Cependant il faut faire la diffeacuterence entre les applications quidemande lrsquoutilisation de syndex et les applications qui neneacutecessite qursquoune programmation en CC++ Agrave titre drsquoexemple

bull Localisationbull Commande en position

bull Commande en forcebull Navigation

bull Geacuteneacuteration de trajectoire

bull Vision

Equipe Systegraveme Robotiseacute de Production

V5 bull Pince eacutelectrique (TOR)

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7679

S y nd e x

Vq ( )

bull Pince possegravede des ES Logiques

Notre application consiste agrave

bull Recevoir lrsquoeacutetat de la pince (fermeacutee ouverte )

bull Envoyer une commande vers la pince

Capture

drsquoinformation

Open

Close

CommandeMeacutemoire

Partageacutee

Actionneur

Pince Prise de deacutecision Pince

Equipe Systegraveme Robotiseacute de Production

V5

Sc eacutema eacute ectr que

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7779

S y nd e x

Equipe Systegraveme Robotiseacute de Production

V5

Conclusion

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7879

S y nd e x bull Introduction

bull Meacutethodologie AAA

bull Installationbull Utilisation du logiciel Syndex

bull Macrosbull LinuxIO un interface CC++ avec SynDEx

bull Exemple drsquoapplication Robuter-ULM

Equipe Systegraveme Robotiseacute de Production

V5

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7979

S y nd e x

Questions

Page 68: Cours Syndex

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6879

S y nd

e x

V5 linioh dans le code du fichier en CC++ comme suit

include linioh

include ltrtai_shmhgt

static shm_seg0_def seg0

shm_seg0_def robot

seg0 = rtai_malloc (SEG0_BASE sizeof (shm_seg0_def))

if (seg0-gtsem = 0) bcopy (seg0 amprobot sizeof (shm_seg0_def))helliphelliphellip

helliphelliphellip bcopy (amprobot seg0 sizeof (shm_seg0_def))helliphelliphelliphelliphelliphellip

rtai_free (SEG0_BASE seg0)

fichier drsquoentecircte de la meacutemoire partageacutee fourni dans la couche RTAI de linux

Initialisation du segment SEG0_BASE Allocation de lameacutemoire pointeacutee

par seg0

Lecture des donneacutees provenant du bas

niveau

Mise agrave jours du segment de meacutemoire partageacutee

Libeacuterer le segment de meacutemoire alloueacute

Equipe Systegraveme Robotiseacute de Production

5

Plan

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6979

S y nd e x

V5

bull Introductionbull Meacutethodologie AAA

bull Installationbull Utilisation du logiciel Syndex

bull Macrosbull LinuxIO un interface CC++ avec SynDEx

bull Exemple drsquoapplication Robuter-ULM

Equipe Systegraveme Robotiseacute de Production

V5

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7079

S y nd e x

V5

Exemple dapplication Exemple dapplication Robuter Robuter--ULM ULM

Equipe Systegraveme Robotiseacute de Production

V5

Description Robuter-ULMbull Base mobile (2-RM 2-RF)

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7179

S y nd e x

V

bull Bras ultra-leacuteger 6 axesbull Ceinture 24 capteurs US

bull Capteur drsquoefforts 6 axes

bull Cameacutera CCD monochromeavec carte drsquoacquisition

bull PC embarqueacute MMX 233

bull OS linux redhat 61 avecRTAI V-13

bull 3 bouton drsquoarrecirct drsquourgence

bull 4 batteries 48 VDC 4 X12V 60 Ah

bull Entreacutee Joystick

bull Liaison Ethernet sans fil

Le manipulateur mobile Robuter-ULM comprend

Equipe Systegraveme Robotiseacute de Production

V5

Base Mobilebull dimension

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7279

S y nd e x

V

1025 mm de longueur 680 mm de largueur et 44 cm de hauteurbull Poids environ 150 kg avec les batteriesbull charge jusqursquoagrave 120 kg

bull vitesse de 5cms agrave 125 msbull Moteurs 2 X 300 W DC 48 VDCbull orientation par diffeacuterence de vitesse

bull Preacutecision Position par encodeurs optiquesbull Deux roues motrices diffeacuterentielles et de deux roues follesbull Drsquoune ceinture de 24 capteurs Ultrasons

bull Une carte MPC555 de Robosoft pour le controcircle des deuxmoteurs DC des 2 rouesbull Un systegraveme drsquoodomeacutetrie qui donne la position relative du robot

par rapport agrave son repegravere

Equipe Systegraveme Robotiseacute de Production

V5

bull dimension Faute de documentation

Bras U tra- eacuteger

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7379

S y nd e x

V Faute de documentation

bull Poids moins de 20 kgbull charge 2 kgbull Moteurs 6 moteurs DC

bull gripper pince eacutelectrique 2 doigtsbull Reacutepeacutetabiliteacute +- 1mmbull 3 carte MPC555 de Robosoft lrsquoune pour le capteur drsquoeffort et les

deux autres pour les 6 moteurs + moteur de la pincebull Position encodeur increacutemental

1 2 3 4 5 6Axisrange

plusmn90deg 0-90deg plusmn80deg plusmn100deg plusmn90deg plusmn110deg

vitesse 180degs 180degs 180degs 180degs 180degs 180degs

Equipe Systegraveme Robotiseacute de Production

V5

rc tecture ar ware

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7479

S y nd e x

V

Equipe Systegraveme Robotiseacute de Production

V5

Pro eacutemat quePlusieurs applications peuvent ecirctre impleacutementeacutees sur le robot

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7579

S y nd e x

V

Cependant il faut faire la diffeacuterence entre les applications quidemande lrsquoutilisation de syndex et les applications qui neneacutecessite qursquoune programmation en CC++ Agrave titre drsquoexemple

bull Localisationbull Commande en position

bull Commande en forcebull Navigation

bull Geacuteneacuteration de trajectoire

bull Vision

Equipe Systegraveme Robotiseacute de Production

V5 bull Pince eacutelectrique (TOR)

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7679

S y nd e x

Vq ( )

bull Pince possegravede des ES Logiques

Notre application consiste agrave

bull Recevoir lrsquoeacutetat de la pince (fermeacutee ouverte )

bull Envoyer une commande vers la pince

Capture

drsquoinformation

Open

Close

CommandeMeacutemoire

Partageacutee

Actionneur

Pince Prise de deacutecision Pince

Equipe Systegraveme Robotiseacute de Production

V5

Sc eacutema eacute ectr que

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7779

S y nd e x

Equipe Systegraveme Robotiseacute de Production

V5

Conclusion

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7879

S y nd e x bull Introduction

bull Meacutethodologie AAA

bull Installationbull Utilisation du logiciel Syndex

bull Macrosbull LinuxIO un interface CC++ avec SynDEx

bull Exemple drsquoapplication Robuter-ULM

Equipe Systegraveme Robotiseacute de Production

V5

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7979

S y nd e x

Questions

Page 69: Cours Syndex

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 6979

S y nd e x

V5

bull Introductionbull Meacutethodologie AAA

bull Installationbull Utilisation du logiciel Syndex

bull Macrosbull LinuxIO un interface CC++ avec SynDEx

bull Exemple drsquoapplication Robuter-ULM

Equipe Systegraveme Robotiseacute de Production

V5

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7079

S y nd e x

V5

Exemple dapplication Exemple dapplication Robuter Robuter--ULM ULM

Equipe Systegraveme Robotiseacute de Production

V5

Description Robuter-ULMbull Base mobile (2-RM 2-RF)

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7179

S y nd e x

V

bull Bras ultra-leacuteger 6 axesbull Ceinture 24 capteurs US

bull Capteur drsquoefforts 6 axes

bull Cameacutera CCD monochromeavec carte drsquoacquisition

bull PC embarqueacute MMX 233

bull OS linux redhat 61 avecRTAI V-13

bull 3 bouton drsquoarrecirct drsquourgence

bull 4 batteries 48 VDC 4 X12V 60 Ah

bull Entreacutee Joystick

bull Liaison Ethernet sans fil

Le manipulateur mobile Robuter-ULM comprend

Equipe Systegraveme Robotiseacute de Production

V5

Base Mobilebull dimension

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7279

S y nd e x

V

1025 mm de longueur 680 mm de largueur et 44 cm de hauteurbull Poids environ 150 kg avec les batteriesbull charge jusqursquoagrave 120 kg

bull vitesse de 5cms agrave 125 msbull Moteurs 2 X 300 W DC 48 VDCbull orientation par diffeacuterence de vitesse

bull Preacutecision Position par encodeurs optiquesbull Deux roues motrices diffeacuterentielles et de deux roues follesbull Drsquoune ceinture de 24 capteurs Ultrasons

bull Une carte MPC555 de Robosoft pour le controcircle des deuxmoteurs DC des 2 rouesbull Un systegraveme drsquoodomeacutetrie qui donne la position relative du robot

par rapport agrave son repegravere

Equipe Systegraveme Robotiseacute de Production

V5

bull dimension Faute de documentation

Bras U tra- eacuteger

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7379

S y nd e x

V Faute de documentation

bull Poids moins de 20 kgbull charge 2 kgbull Moteurs 6 moteurs DC

bull gripper pince eacutelectrique 2 doigtsbull Reacutepeacutetabiliteacute +- 1mmbull 3 carte MPC555 de Robosoft lrsquoune pour le capteur drsquoeffort et les

deux autres pour les 6 moteurs + moteur de la pincebull Position encodeur increacutemental

1 2 3 4 5 6Axisrange

plusmn90deg 0-90deg plusmn80deg plusmn100deg plusmn90deg plusmn110deg

vitesse 180degs 180degs 180degs 180degs 180degs 180degs

Equipe Systegraveme Robotiseacute de Production

V5

rc tecture ar ware

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7479

S y nd e x

V

Equipe Systegraveme Robotiseacute de Production

V5

Pro eacutemat quePlusieurs applications peuvent ecirctre impleacutementeacutees sur le robot

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7579

S y nd e x

V

Cependant il faut faire la diffeacuterence entre les applications quidemande lrsquoutilisation de syndex et les applications qui neneacutecessite qursquoune programmation en CC++ Agrave titre drsquoexemple

bull Localisationbull Commande en position

bull Commande en forcebull Navigation

bull Geacuteneacuteration de trajectoire

bull Vision

Equipe Systegraveme Robotiseacute de Production

V5 bull Pince eacutelectrique (TOR)

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7679

S y nd e x

Vq ( )

bull Pince possegravede des ES Logiques

Notre application consiste agrave

bull Recevoir lrsquoeacutetat de la pince (fermeacutee ouverte )

bull Envoyer une commande vers la pince

Capture

drsquoinformation

Open

Close

CommandeMeacutemoire

Partageacutee

Actionneur

Pince Prise de deacutecision Pince

Equipe Systegraveme Robotiseacute de Production

V5

Sc eacutema eacute ectr que

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7779

S y nd e x

Equipe Systegraveme Robotiseacute de Production

V5

Conclusion

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7879

S y nd e x bull Introduction

bull Meacutethodologie AAA

bull Installationbull Utilisation du logiciel Syndex

bull Macrosbull LinuxIO un interface CC++ avec SynDEx

bull Exemple drsquoapplication Robuter-ULM

Equipe Systegraveme Robotiseacute de Production

V5

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7979

S y nd e x

Questions

Page 70: Cours Syndex

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7079

S y nd e x

V5

Exemple dapplication Exemple dapplication Robuter Robuter--ULM ULM

Equipe Systegraveme Robotiseacute de Production

V5

Description Robuter-ULMbull Base mobile (2-RM 2-RF)

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7179

S y nd e x

V

bull Bras ultra-leacuteger 6 axesbull Ceinture 24 capteurs US

bull Capteur drsquoefforts 6 axes

bull Cameacutera CCD monochromeavec carte drsquoacquisition

bull PC embarqueacute MMX 233

bull OS linux redhat 61 avecRTAI V-13

bull 3 bouton drsquoarrecirct drsquourgence

bull 4 batteries 48 VDC 4 X12V 60 Ah

bull Entreacutee Joystick

bull Liaison Ethernet sans fil

Le manipulateur mobile Robuter-ULM comprend

Equipe Systegraveme Robotiseacute de Production

V5

Base Mobilebull dimension

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7279

S y nd e x

V

1025 mm de longueur 680 mm de largueur et 44 cm de hauteurbull Poids environ 150 kg avec les batteriesbull charge jusqursquoagrave 120 kg

bull vitesse de 5cms agrave 125 msbull Moteurs 2 X 300 W DC 48 VDCbull orientation par diffeacuterence de vitesse

bull Preacutecision Position par encodeurs optiquesbull Deux roues motrices diffeacuterentielles et de deux roues follesbull Drsquoune ceinture de 24 capteurs Ultrasons

bull Une carte MPC555 de Robosoft pour le controcircle des deuxmoteurs DC des 2 rouesbull Un systegraveme drsquoodomeacutetrie qui donne la position relative du robot

par rapport agrave son repegravere

Equipe Systegraveme Robotiseacute de Production

V5

bull dimension Faute de documentation

Bras U tra- eacuteger

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7379

S y nd e x

V Faute de documentation

bull Poids moins de 20 kgbull charge 2 kgbull Moteurs 6 moteurs DC

bull gripper pince eacutelectrique 2 doigtsbull Reacutepeacutetabiliteacute +- 1mmbull 3 carte MPC555 de Robosoft lrsquoune pour le capteur drsquoeffort et les

deux autres pour les 6 moteurs + moteur de la pincebull Position encodeur increacutemental

1 2 3 4 5 6Axisrange

plusmn90deg 0-90deg plusmn80deg plusmn100deg plusmn90deg plusmn110deg

vitesse 180degs 180degs 180degs 180degs 180degs 180degs

Equipe Systegraveme Robotiseacute de Production

V5

rc tecture ar ware

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7479

S y nd e x

V

Equipe Systegraveme Robotiseacute de Production

V5

Pro eacutemat quePlusieurs applications peuvent ecirctre impleacutementeacutees sur le robot

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7579

S y nd e x

V

Cependant il faut faire la diffeacuterence entre les applications quidemande lrsquoutilisation de syndex et les applications qui neneacutecessite qursquoune programmation en CC++ Agrave titre drsquoexemple

bull Localisationbull Commande en position

bull Commande en forcebull Navigation

bull Geacuteneacuteration de trajectoire

bull Vision

Equipe Systegraveme Robotiseacute de Production

V5 bull Pince eacutelectrique (TOR)

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7679

S y nd e x

Vq ( )

bull Pince possegravede des ES Logiques

Notre application consiste agrave

bull Recevoir lrsquoeacutetat de la pince (fermeacutee ouverte )

bull Envoyer une commande vers la pince

Capture

drsquoinformation

Open

Close

CommandeMeacutemoire

Partageacutee

Actionneur

Pince Prise de deacutecision Pince

Equipe Systegraveme Robotiseacute de Production

V5

Sc eacutema eacute ectr que

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7779

S y nd e x

Equipe Systegraveme Robotiseacute de Production

V5

Conclusion

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7879

S y nd e x bull Introduction

bull Meacutethodologie AAA

bull Installationbull Utilisation du logiciel Syndex

bull Macrosbull LinuxIO un interface CC++ avec SynDEx

bull Exemple drsquoapplication Robuter-ULM

Equipe Systegraveme Robotiseacute de Production

V5

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7979

S y nd e x

Questions

Page 71: Cours Syndex

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7179

S y nd e x

V

bull Bras ultra-leacuteger 6 axesbull Ceinture 24 capteurs US

bull Capteur drsquoefforts 6 axes

bull Cameacutera CCD monochromeavec carte drsquoacquisition

bull PC embarqueacute MMX 233

bull OS linux redhat 61 avecRTAI V-13

bull 3 bouton drsquoarrecirct drsquourgence

bull 4 batteries 48 VDC 4 X12V 60 Ah

bull Entreacutee Joystick

bull Liaison Ethernet sans fil

Le manipulateur mobile Robuter-ULM comprend

Equipe Systegraveme Robotiseacute de Production

V5

Base Mobilebull dimension

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7279

S y nd e x

V

1025 mm de longueur 680 mm de largueur et 44 cm de hauteurbull Poids environ 150 kg avec les batteriesbull charge jusqursquoagrave 120 kg

bull vitesse de 5cms agrave 125 msbull Moteurs 2 X 300 W DC 48 VDCbull orientation par diffeacuterence de vitesse

bull Preacutecision Position par encodeurs optiquesbull Deux roues motrices diffeacuterentielles et de deux roues follesbull Drsquoune ceinture de 24 capteurs Ultrasons

bull Une carte MPC555 de Robosoft pour le controcircle des deuxmoteurs DC des 2 rouesbull Un systegraveme drsquoodomeacutetrie qui donne la position relative du robot

par rapport agrave son repegravere

Equipe Systegraveme Robotiseacute de Production

V5

bull dimension Faute de documentation

Bras U tra- eacuteger

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7379

S y nd e x

V Faute de documentation

bull Poids moins de 20 kgbull charge 2 kgbull Moteurs 6 moteurs DC

bull gripper pince eacutelectrique 2 doigtsbull Reacutepeacutetabiliteacute +- 1mmbull 3 carte MPC555 de Robosoft lrsquoune pour le capteur drsquoeffort et les

deux autres pour les 6 moteurs + moteur de la pincebull Position encodeur increacutemental

1 2 3 4 5 6Axisrange

plusmn90deg 0-90deg plusmn80deg plusmn100deg plusmn90deg plusmn110deg

vitesse 180degs 180degs 180degs 180degs 180degs 180degs

Equipe Systegraveme Robotiseacute de Production

V5

rc tecture ar ware

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7479

S y nd e x

V

Equipe Systegraveme Robotiseacute de Production

V5

Pro eacutemat quePlusieurs applications peuvent ecirctre impleacutementeacutees sur le robot

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7579

S y nd e x

V

Cependant il faut faire la diffeacuterence entre les applications quidemande lrsquoutilisation de syndex et les applications qui neneacutecessite qursquoune programmation en CC++ Agrave titre drsquoexemple

bull Localisationbull Commande en position

bull Commande en forcebull Navigation

bull Geacuteneacuteration de trajectoire

bull Vision

Equipe Systegraveme Robotiseacute de Production

V5 bull Pince eacutelectrique (TOR)

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7679

S y nd e x

Vq ( )

bull Pince possegravede des ES Logiques

Notre application consiste agrave

bull Recevoir lrsquoeacutetat de la pince (fermeacutee ouverte )

bull Envoyer une commande vers la pince

Capture

drsquoinformation

Open

Close

CommandeMeacutemoire

Partageacutee

Actionneur

Pince Prise de deacutecision Pince

Equipe Systegraveme Robotiseacute de Production

V5

Sc eacutema eacute ectr que

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7779

S y nd e x

Equipe Systegraveme Robotiseacute de Production

V5

Conclusion

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7879

S y nd e x bull Introduction

bull Meacutethodologie AAA

bull Installationbull Utilisation du logiciel Syndex

bull Macrosbull LinuxIO un interface CC++ avec SynDEx

bull Exemple drsquoapplication Robuter-ULM

Equipe Systegraveme Robotiseacute de Production

V5

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7979

S y nd e x

Questions

Page 72: Cours Syndex

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7279

S y nd e x

V

1025 mm de longueur 680 mm de largueur et 44 cm de hauteurbull Poids environ 150 kg avec les batteriesbull charge jusqursquoagrave 120 kg

bull vitesse de 5cms agrave 125 msbull Moteurs 2 X 300 W DC 48 VDCbull orientation par diffeacuterence de vitesse

bull Preacutecision Position par encodeurs optiquesbull Deux roues motrices diffeacuterentielles et de deux roues follesbull Drsquoune ceinture de 24 capteurs Ultrasons

bull Une carte MPC555 de Robosoft pour le controcircle des deuxmoteurs DC des 2 rouesbull Un systegraveme drsquoodomeacutetrie qui donne la position relative du robot

par rapport agrave son repegravere

Equipe Systegraveme Robotiseacute de Production

V5

bull dimension Faute de documentation

Bras U tra- eacuteger

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7379

S y nd e x

V Faute de documentation

bull Poids moins de 20 kgbull charge 2 kgbull Moteurs 6 moteurs DC

bull gripper pince eacutelectrique 2 doigtsbull Reacutepeacutetabiliteacute +- 1mmbull 3 carte MPC555 de Robosoft lrsquoune pour le capteur drsquoeffort et les

deux autres pour les 6 moteurs + moteur de la pincebull Position encodeur increacutemental

1 2 3 4 5 6Axisrange

plusmn90deg 0-90deg plusmn80deg plusmn100deg plusmn90deg plusmn110deg

vitesse 180degs 180degs 180degs 180degs 180degs 180degs

Equipe Systegraveme Robotiseacute de Production

V5

rc tecture ar ware

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7479

S y nd e x

V

Equipe Systegraveme Robotiseacute de Production

V5

Pro eacutemat quePlusieurs applications peuvent ecirctre impleacutementeacutees sur le robot

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7579

S y nd e x

V

Cependant il faut faire la diffeacuterence entre les applications quidemande lrsquoutilisation de syndex et les applications qui neneacutecessite qursquoune programmation en CC++ Agrave titre drsquoexemple

bull Localisationbull Commande en position

bull Commande en forcebull Navigation

bull Geacuteneacuteration de trajectoire

bull Vision

Equipe Systegraveme Robotiseacute de Production

V5 bull Pince eacutelectrique (TOR)

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7679

S y nd e x

Vq ( )

bull Pince possegravede des ES Logiques

Notre application consiste agrave

bull Recevoir lrsquoeacutetat de la pince (fermeacutee ouverte )

bull Envoyer une commande vers la pince

Capture

drsquoinformation

Open

Close

CommandeMeacutemoire

Partageacutee

Actionneur

Pince Prise de deacutecision Pince

Equipe Systegraveme Robotiseacute de Production

V5

Sc eacutema eacute ectr que

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7779

S y nd e x

Equipe Systegraveme Robotiseacute de Production

V5

Conclusion

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7879

S y nd e x bull Introduction

bull Meacutethodologie AAA

bull Installationbull Utilisation du logiciel Syndex

bull Macrosbull LinuxIO un interface CC++ avec SynDEx

bull Exemple drsquoapplication Robuter-ULM

Equipe Systegraveme Robotiseacute de Production

V5

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7979

S y nd e x

Questions

Page 73: Cours Syndex

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7379

S y nd e x

V Faute de documentation

bull Poids moins de 20 kgbull charge 2 kgbull Moteurs 6 moteurs DC

bull gripper pince eacutelectrique 2 doigtsbull Reacutepeacutetabiliteacute +- 1mmbull 3 carte MPC555 de Robosoft lrsquoune pour le capteur drsquoeffort et les

deux autres pour les 6 moteurs + moteur de la pincebull Position encodeur increacutemental

1 2 3 4 5 6Axisrange

plusmn90deg 0-90deg plusmn80deg plusmn100deg plusmn90deg plusmn110deg

vitesse 180degs 180degs 180degs 180degs 180degs 180degs

Equipe Systegraveme Robotiseacute de Production

V5

rc tecture ar ware

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7479

S y nd e x

V

Equipe Systegraveme Robotiseacute de Production

V5

Pro eacutemat quePlusieurs applications peuvent ecirctre impleacutementeacutees sur le robot

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7579

S y nd e x

V

Cependant il faut faire la diffeacuterence entre les applications quidemande lrsquoutilisation de syndex et les applications qui neneacutecessite qursquoune programmation en CC++ Agrave titre drsquoexemple

bull Localisationbull Commande en position

bull Commande en forcebull Navigation

bull Geacuteneacuteration de trajectoire

bull Vision

Equipe Systegraveme Robotiseacute de Production

V5 bull Pince eacutelectrique (TOR)

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7679

S y nd e x

Vq ( )

bull Pince possegravede des ES Logiques

Notre application consiste agrave

bull Recevoir lrsquoeacutetat de la pince (fermeacutee ouverte )

bull Envoyer une commande vers la pince

Capture

drsquoinformation

Open

Close

CommandeMeacutemoire

Partageacutee

Actionneur

Pince Prise de deacutecision Pince

Equipe Systegraveme Robotiseacute de Production

V5

Sc eacutema eacute ectr que

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7779

S y nd e x

Equipe Systegraveme Robotiseacute de Production

V5

Conclusion

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7879

S y nd e x bull Introduction

bull Meacutethodologie AAA

bull Installationbull Utilisation du logiciel Syndex

bull Macrosbull LinuxIO un interface CC++ avec SynDEx

bull Exemple drsquoapplication Robuter-ULM

Equipe Systegraveme Robotiseacute de Production

V5

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7979

S y nd e x

Questions

Page 74: Cours Syndex

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7479

S y nd e x

V

Equipe Systegraveme Robotiseacute de Production

V5

Pro eacutemat quePlusieurs applications peuvent ecirctre impleacutementeacutees sur le robot

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7579

S y nd e x

V

Cependant il faut faire la diffeacuterence entre les applications quidemande lrsquoutilisation de syndex et les applications qui neneacutecessite qursquoune programmation en CC++ Agrave titre drsquoexemple

bull Localisationbull Commande en position

bull Commande en forcebull Navigation

bull Geacuteneacuteration de trajectoire

bull Vision

Equipe Systegraveme Robotiseacute de Production

V5 bull Pince eacutelectrique (TOR)

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7679

S y nd e x

Vq ( )

bull Pince possegravede des ES Logiques

Notre application consiste agrave

bull Recevoir lrsquoeacutetat de la pince (fermeacutee ouverte )

bull Envoyer une commande vers la pince

Capture

drsquoinformation

Open

Close

CommandeMeacutemoire

Partageacutee

Actionneur

Pince Prise de deacutecision Pince

Equipe Systegraveme Robotiseacute de Production

V5

Sc eacutema eacute ectr que

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7779

S y nd e x

Equipe Systegraveme Robotiseacute de Production

V5

Conclusion

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7879

S y nd e x bull Introduction

bull Meacutethodologie AAA

bull Installationbull Utilisation du logiciel Syndex

bull Macrosbull LinuxIO un interface CC++ avec SynDEx

bull Exemple drsquoapplication Robuter-ULM

Equipe Systegraveme Robotiseacute de Production

V5

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7979

S y nd e x

Questions

Page 75: Cours Syndex

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7579

S y nd e x

V

Cependant il faut faire la diffeacuterence entre les applications quidemande lrsquoutilisation de syndex et les applications qui neneacutecessite qursquoune programmation en CC++ Agrave titre drsquoexemple

bull Localisationbull Commande en position

bull Commande en forcebull Navigation

bull Geacuteneacuteration de trajectoire

bull Vision

Equipe Systegraveme Robotiseacute de Production

V5 bull Pince eacutelectrique (TOR)

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7679

S y nd e x

Vq ( )

bull Pince possegravede des ES Logiques

Notre application consiste agrave

bull Recevoir lrsquoeacutetat de la pince (fermeacutee ouverte )

bull Envoyer une commande vers la pince

Capture

drsquoinformation

Open

Close

CommandeMeacutemoire

Partageacutee

Actionneur

Pince Prise de deacutecision Pince

Equipe Systegraveme Robotiseacute de Production

V5

Sc eacutema eacute ectr que

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7779

S y nd e x

Equipe Systegraveme Robotiseacute de Production

V5

Conclusion

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7879

S y nd e x bull Introduction

bull Meacutethodologie AAA

bull Installationbull Utilisation du logiciel Syndex

bull Macrosbull LinuxIO un interface CC++ avec SynDEx

bull Exemple drsquoapplication Robuter-ULM

Equipe Systegraveme Robotiseacute de Production

V5

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7979

S y nd e x

Questions

Page 76: Cours Syndex

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7679

S y nd e x

Vq ( )

bull Pince possegravede des ES Logiques

Notre application consiste agrave

bull Recevoir lrsquoeacutetat de la pince (fermeacutee ouverte )

bull Envoyer une commande vers la pince

Capture

drsquoinformation

Open

Close

CommandeMeacutemoire

Partageacutee

Actionneur

Pince Prise de deacutecision Pince

Equipe Systegraveme Robotiseacute de Production

V5

Sc eacutema eacute ectr que

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7779

S y nd e x

Equipe Systegraveme Robotiseacute de Production

V5

Conclusion

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7879

S y nd e x bull Introduction

bull Meacutethodologie AAA

bull Installationbull Utilisation du logiciel Syndex

bull Macrosbull LinuxIO un interface CC++ avec SynDEx

bull Exemple drsquoapplication Robuter-ULM

Equipe Systegraveme Robotiseacute de Production

V5

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7979

S y nd e x

Questions

Page 77: Cours Syndex

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7779

S y nd e x

Equipe Systegraveme Robotiseacute de Production

V5

Conclusion

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7879

S y nd e x bull Introduction

bull Meacutethodologie AAA

bull Installationbull Utilisation du logiciel Syndex

bull Macrosbull LinuxIO un interface CC++ avec SynDEx

bull Exemple drsquoapplication Robuter-ULM

Equipe Systegraveme Robotiseacute de Production

V5

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7979

S y nd e x

Questions

Page 78: Cours Syndex

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7879

S y nd e x bull Introduction

bull Meacutethodologie AAA

bull Installationbull Utilisation du logiciel Syndex

bull Macrosbull LinuxIO un interface CC++ avec SynDEx

bull Exemple drsquoapplication Robuter-ULM

Equipe Systegraveme Robotiseacute de Production

V5

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7979

S y nd e x

Questions

Page 79: Cours Syndex

8172019 Cours Syndex

httpslidepdfcomreaderfullcours-syndex 7979

S y nd e x

Questions