Vous êtes sur la page 1sur 4

TD dUML - Base robotique (Corrig e)

Master 1 EII

Diagramme de cas dutilisation


System
Processing path
<include>

Set settings

<extend> User <extend> <extend>

Set checkpoints

Set path options

Stopping

Obstacle avoidance

<<Actor>> Clock

Cas dutilisation nominal

R esum e

Lutilisateur saisit un parcours depuis son PDA et le robot se d eplace le long de ce parcours Acteur Utilisateur Pr econdition Le robot est sous tension et conna t sa position Description 1) Le cas commence lorsque lutilisateur s electionne saisir parcours depuis son PDA 2) Lutilisateur saisit des points de parcours 3) Lutilisateur valide son parcours 4) Le syst` eme calcule les chemins optimaux entre chaque paire de points reli es du parcours 5) Le syst` eme actionne les servomoteurs des roues pour commencer a ` se d eplacer 6) Les servomoteurs notient le syst` eme au fur et a ` mesure de leur d eplacement 7) Le syst` eme lit p eriodiquement les donn ees de ses capteurs dobstacles et calcule sa position 8) Le syst` eme d etermine quil a termin e le parcours et commande a ` ses servomoteurs de se stopper 9) Les servomoteurs notient le syst` eme de larr et complet. Le cas est termin e. Alternative 7.1) Si le syst` eme nest pas arriv e` a destination, il recommence ` a l etape 5) en ciblant le prochain point de parcours Postcondition Le syst` eme est arriv e` a destination et attend le prochain parcours

Diagramme dactivit e
User System Timer

Use system

Wait

Create checkpoints
[Activate "optimise path"] [Activate "loop"] [Delete checkpoint] [Add checkpoint]

Show plan

[Validate checkpoint]

Compute path

Start

[Obstacle detected]

[Continuer (par dfaut)]

Move

Notify system

Stop

[Default] [Stop]

[Not end of path]

[End of path]

[Loop]

[No loop]

Wait

Page 2

Diagramme de classes de contexte


gauche

GUI

1 System 1 1 1
droit

Wheel Actuator

User

1 Collision Sensor

1 Timer

1 <<Actor>> Clock

Diagramme de classes etendu


GUI NavigationInterface +start(loop:Boolean,optimize:Boolean,path:List<List<Real>>) +stop()
<<use>>

NavigationModel +idNextCP:Integer
1 1 1 1

NavigationPDA +loop:Boolean +optimize:Boolean +start() +stop()

NavigationController +notify() +computePath()


1 1 1 0..1

Position +angle:Real
1 1 2

Path +loop:Boolean
1

CollisionSensor +obstacleDetected():Boolean

Map +height:Real +length:Real


1

1..*

WheelActuator +getOdometry():real +setSpeed(s:Real)


1

Checkpoint +x:Real +y:Real


1 1

Obstacle

Timer +start() +stop()


1 1 1

Triangle

Square +height:Real +length:Real

Circle +radius:Real

Page 3

Diagramme d etats-transitions
Idle
[Checkpoints entered / Store checkpoints] [Stopped / Stop timer]

Stopping

Computing Path
[Path computed / Store path, Start timer] [After(Elapsed Time)] [End of path]

Updating next checkpoint


[CP updated / Store CP] [After(Elapsed Time) / Update position]

[Stop]

Suspending
[Obstacle] [Else]

Moving

Reading Sensor

Diagramme de s equence
: GUI : NavigationController : NavigationModel : WheelActuator : Timer : CollisionSensor

start(loop,optimize,checkpoints) store(loop,checkpoints) readMap() store(path) start()

Loop

[not End of path]

update(nextCheckpoint)

setSpeed(speed)

notify()

getOdometry()

obstacleDetected()

stop()

setSpeed(0)

Page 4