1 / 13

Model-Driven Synthesis of Embedded Robotic Navigation Systems

Model-Driven Synthesis of Embedded Robotic Navigation Systems. Rachael Dennison Raeanne@aol.com Bina Shah Iambina@uab.edu http://www.gray-area.org/Research/CREW/ Advisor: Dr. Jeff Gray gray@cis.uab.edu (www.gray-area.org).

iola-norman
Télécharger la présentation

Model-Driven Synthesis of Embedded Robotic Navigation Systems

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. Model-Driven Synthesis of Embedded Robotic Navigation Systems Rachael Dennison Raeanne@aol.com Bina Shah Iambina@uab.edu http://www.gray-area.org/Research/CREW/ Advisor: Dr. Jeff Gray gray@cis.uab.edu (www.gray-area.org) This research is sponsored by the CRA Collaborative Research Experience for Women.

  2. Project Overview • Goal: • Synthesize robot control software from high-level models that depict configuration of a hostile environment containing robots, landmines, and lost babies • Motivating Problem: • Hard-coded control software for real-time embedded robotics control systems requires manual adaptation for each new configuration • Solution Approach: • Use a meta-configurable modeling tool • Create a meta-model that represents the hostile domain • Construct a code generator that translates model information into robot control software • Code generator has deep knowledge of domain and robot planning

  3. Model-Based Generators Targets: Models: stored as directed, attributed graphs executable models Synchronous Dataflow Petri Net Generators: traverse/transform analyzable model Slide adaptated from www.isis.vanderbilt.edu

  4. Metamodeling and Modeling MetaModel Model • Abstract & Concrete Syntax • Static Semantics • Visualization OCL Constraints Slide adaptated from www.isis.vanderbilt.edu

  5. Explanation of “Hostile Grid” Meta-Model • Objects: Baby, Landmine, Robot • Attributes: X-Coordinate, Y-Coordinate • Constraints:Minimum X-Coordinate, Minimum Y-Coordinate, Unique Name, Valid Name, Maximum Number of Robots, Unique set of X and Y coordinates

  6. The Constraints Aspect • The Constraints: • MaxRobots: <= 2 • Xmin: >= 0 • Ymin: >= 0 • UniqueName • ValidName • UniqueXYCoordinate

  7. Example constraint • UniqueXYCoordinate • Pseudo code: • Return the number of babies, landmines, and robots with given X and Y coordinates. • If number > 1, the X and Y coordinate pair is not unique. • Sample OCL Constraint: let count = project.allRobots(self.XCoordinate, self.YCoordinate) + project.allBabies (self.XCoordinate, self.YCoordinate)+ project.allLandmines(self.XCoordinate, self.YCoordinate) in if (count <= 1) then true else false endif

  8. Example Instance Model

  9. A Model Interpreter for Generating Robot Control • The Interpreter is written in C++ and hooks into modeling environment as a GME plug-in • It will generate Java code • The Java code will generate instructions for the robot to navigate to babies while moving and avoiding landmines … //Get the hostileGrid model const CBuilderAtomList *allRobots = hostileDiagram->GetAtoms("Robot"); pos1 = allRobots->GetHeadPosition(); CBuilderAtom *Robot = allRobots->GetNext(pos1); //obtain the robot's (X,Y) coordinates--> (RobotX, RobotY) int RobotX, RobotY; Robot->GetAttribute("XCoordinate", RobotX); Robot->GetAttribute("YCoordinate", RobotY); //Get the hostileGrid model const CBuilderAtomList *allRobots = hostileDiagram->GetAtoms("Robot"); pos1 = allRobots->GetHeadPosition(); CBuilderAtom *Robot = allRobots->GetNext(pos1); //obtain the robot's (X,Y) coordinates--> (RobotX, RobotY) int RobotX, RobotY; Robot->GetAttribute("XCoordinate", RobotX); Robot->GetAttribute("YCoordinate", RobotY); //Get the hostileGrid model const CBuilderAtomList *allRobots = hostileDiagram->GetAtoms("Robot"); pos1 = allRobots->GetHeadPosition(); CBuilderAtom *Robot = allRobots->GetNext(pos1); //obtain the robot's (X,Y) coordinates--> (RobotX, RobotY) int RobotX, RobotY; Robot->GetAttribute("XCoordinate", RobotX); Robot->GetAttribute("YCoordinate", RobotY); //Get the hostileGrid model const CBuilderAtomList *allRobots = hostileDiagram->GetAtoms("Robot"); pos1 = allRobots->GetHeadPosition(); CBuilderAtom *Robot = allRobots->GetNext(pos1); //obtain the robot's (X,Y) coordinates--> (RobotX, RobotY) int RobotX, RobotY; Robot->GetAttribute("YCoordinate", RobotY); … ModelInterpreter(C++) Generated Control Code

  10. Calculating Angle Rotations • Rotation sensor reads a value of 16 when the wheel has rotated 360 degrees. • Calculate the angle at which the robot needs to turn to point to so that it will travel to the baby in a straight line.double angle = atan2((finalY-RobotY), (finalX-RobotX)); • Convert into degrees. angle = angle * (180/pi); Rotation Sensors

  11. Snippet of Interpreter Code Obtaining robot coordinates from model //Get the hostileGrid model const CBuilderAtomList *allRobots=hostileDiagram->GetAtoms("Robot"); pos1 = allRobots->GetHeadPosition(); CBuilderAtom *Robot = allRobots->GetNext(pos1); //obtain the robot's (X,Y) coordinates--> (RobotX, RobotY) int RobotX, RobotY; Robot->GetAttribute("XCoordinate", RobotX); Robot->GetAttribute("YCoordinate", RobotY);

  12. Summary • Hard-coding models to adapt to new configuration can be automated using meta-configurable modeling tool. • A meta-model is created that allows to create a hostile environment including lost babies, landmines, and robots. • The code generator, interpreter, is written in C++, which translates the model information into robot control software.

  13. Questions? http://www.gray-area.org/Research/CREW/

More Related