1 / 21

Applying MDE for AIBO

Applying MDE for AIBO. AIBO. Robot made by Sony. AIBO motors. AIBO Motors. AIBO sensors. Thanks to its motors AIBO can move Walk, lay down, .. But AIBO can also see listen touch It is a reactive system that reacts to its environment !. URBI : playing with AIBO.

dugan
Download Presentation

Applying MDE for AIBO

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Applying MDE for AIBO

  2. AIBO Robot made by Sony

  3. AIBO motors

  4. AIBO Motors

  5. AIBO sensors • Thanks to its motors AIBO can move • Walk, lay down, .. • But AIBO can also • see • listen • touch • It is a reactive system that reacts to its environment !

  6. URBI : playing with AIBO • URBI is a language for programming robots. • Interaction with AIBO • one can ask to AIBO to do something • robot.walk() • robot.lay() • one can ask the value of its sensors • camera.val • URBI defines control commands (for, if, …)

  7. Demo robot.initial(); robot.stand(); robot.sit(); robot.initial();

  8. AIBO in UML A UML model of AIBO

  9. The AiboMove Class Head motors Legs motors URBI functions, provided by URBI developers

  10. AIBO Behavior = State Machine • A state machine can be associated with a class to define the behavior of all objects instances of the class. • As AIBO is modeled with a class, state machines seem to be a natural choice Moreover, with AIBO • States are quite easy to identify (walking, …) • Assign a « doActivity » with a state • Transitions correspond to events sent by the environment

  11. State Machines

  12. Code Generation Complete generation of URBI code

  13. Process 2) The user elaborates its own state machine. 1) The class is provided by the development environment 3) The code is completely generated.

  14. Generation rules • For each state, define a new function • The function will be called when the event corresponding to the target transition of the state will occur • The function realizes the doActivity of the state • For each transition define an event • The event will be caught and then the function corresponding to the target state will be called

  15. at (t3 && currentState==etape2) { prefix : etape3() ; } def fonction etape3 { currentState = etape3 ; robot.walk() ; } Generation Rules

  16. Demo

  17. Next step • The elaboration of a state machine is still a difficult task. • A lot of works have been done to generate state machines from scenarios • The user will then define AIBO behavior thanks to a set of scenarios. A state machine will be generated from those scenarios. And the code will be generated from the state machine. • All transformations will be model transformations.

  18. MDE Environment Customized Tools

  19. RSA • RSA (Rational Software Architect) provides a UML editor but also mechanisms to enhance it. • This editor manipulates UML models thanks to a Java API • The UML2.0 Java API of RSA is an open source API (http://www.eclipse.org/uml2) • We make use of this API to build our generator.

  20. Generator for state public void generateTransition(Transition tr) { if (tr.getSource() instanceof Pseudostate) { Pseudostate ps = (Pseudostate) tr.getSource(); if (ps.getKind().getValue() == PseudostateKind.INITIAL) { generateStartTransition(tr); } } else if (tr.getTarget() instanceof Pseudostate) return; else { if (tr.getTriggers().size() == 0) generateTransitionWithourTrigger(tr);//NOT STANDARD else { Trigger trig = (Trigger) tr.getTriggers().get(0); if (trig instanceof TimeTrigger) generateAfterTransition(tr); else if (trig instanceof ChangeTrigger) generateChangeTransition(tr); } } }

  21. Synthesis • The AIBO code generation shows that MDE is fully operational • UML can be used to specify all the behavior of AIBO • it seems that URBI functions could be also modeled completely with UML • Tools, such as RSA, do support MDE and offer powerful mechanisms

More Related