The first phase - PowerPoint PPT Presentation

About This Presentation
Title:

The first phase

Description:

A Model-Driven Approach for Generating Embedded Robot Navigation Control Software Bina Shah (Iambina at- uab.edu) Rachael Dennison (Raeanne at- aol.com) – PowerPoint PPT presentation

Number of Views:108
Avg rating:3.0/5.0
Slides: 18
Provided by: shah108
Learn more at: https://gray.cs.ua.edu
Category:
Tags: first | petri | phase | problem

less

Transcript and Presenter's Notes

Title: The first phase


1
A Model-Driven Approach for Generating Embedded
Robot Navigation Control Software
Bina Shah (Iambina at- uab.edu) Rachael
Dennison (Raeanne at- aol.com) http//www.gray-a
rea.org/Research/CREW/ Advisor Dr. Jeff Gray
(gray at- cis.uab.edu) (www.gray-area.org)
An undergraduate research project, with support
from the NSF SIPHER program (Vanderbilt) and the
CRA Research Experience for Women (CRA-CREW)
2
Project Overview
  • Goal
  • Use of advanced modeling techniques to improve
    the development of embedded systems
  • Synthesize robot control software from high-level
    models that depict configuration of a hostile
    environment containing robots, landmines, and
    lost babies

3
Motivating Problem and Solution Outline
  • 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

4
Background
  • The Lego Mindstorms Robotics Invention System
    (RIS)
  • The RCX
  • Programmable micro-controller embedded in a Lego
    brick
  • IR Communication
  • Software sends code to RCX using the IR tower
    connected to the serial or USB port
  • RIS kit also includes
  • Lego bricks, gears, sensors, motors, wheels

5
Model-Based Generators
Targets
Models stored as directed, attributed graphs
executable models
Synchronous Dataflow
Petri Net
Generators traverse/transform
analyzable model
6
Metamodeling and Modeling
MetaModel
Model
  1. Abstract Concrete Syntax
  2. Static Semantics
  3. Visualization

OCL Constraints
7
Explanation of Hostile Grid Meta-Model
  • Objects Baby, Landmine, Robot
  • Attributes X-Coordinate, Y-Coordinate
  • ConstraintsMinimum X-Coordinate, Minimum
    Y-Coordinate, Unique Name, Valid Name, Maximum
    Number of Robots, Unique set of X and Y
    coordinates

8
The Constraints Aspect
The Constraints MaxRobots lt 2 Xmin gt 0 Ymin
gt 0 UniqueName ValidName UniqueXYCoordinate
9
Example constraint
  • UniqueXYCoordinate
  • Pseudo code
  • Return the number of babies, landmines, and
    robots with given X and Y coordinates.
  • If number gt 1, the X and Y coordinate pair is not
    unique.

10
  • 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 lt 1) then
  • true
  • else
  • false
  • endif

11
Example Instance Model
12
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
13
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-gtGetA
toms("Robot") pos1 allRobots-gtGetHeadPosition(
) CBuilderAtom Robot allRobots-gtGetNext(pos1)
//obtain the robot's (X,Y) coordinates--gt
(RobotX, RobotY) int RobotX, RobotY Robot-gtGetA
ttribute("XCoordinate", RobotX) Robot-gtGetAttrib
ute("YCoordinate", RobotY) //Get the hostileGrid
model const CBuilderAtomList allRobots
hostileDiagram-gtGetAtoms("Robot") pos1
allRobots-gtGetHeadPosition() CBuilderAtom
Robot allRobots-gtGetNext(pos1) //obtain
the robot's (X,Y) coordinates--gt (RobotX,
RobotY) int RobotX, RobotY Robot-gtGetAttribute(
"XCoordinate", RobotX) Robot-gtGetAttribute("YCoo
rdinate", RobotY) //Get the hostileGrid
model const CBuilderAtomList allRobots
hostileDiagram-gtGetAtoms("Robot") pos1
allRobots-gtGetHeadPosition() CBuilderAtom
Robot allRobots-gtGetNext(pos1) //obtain
the robot's (X,Y) coordinates--gt (RobotX,
RobotY) int RobotX, RobotY Robot-gtGetAttribute(
"XCoordinate", RobotX) Robot-gtGetAttribute("YCoo
rdinate", RobotY) //Get the hostileGrid
model const CBuilderAtomList allRobots
hostileDiagram-gtGetAtoms("Robot") pos1
allRobots-gtGetHeadPosition() CBuilderAtom
Robot allRobots-gtGetNext(pos1) //obtain
the robot's (X,Y) coordinates--gt (RobotX,
RobotY) int RobotX, RobotY Robot-gtGetAttribut
e("YCoordinate", RobotY)
ModelInterpreter(C)
Generated Control Code
14
Snippet of Interpreter Code
Obtaining robot coordinates from model
//Get the hostileGrid model const
CBuilderAtomList allRobotshostileDiagram-gtGetAto
ms("Robot") pos1 allRobots-gtGetHeadPosition()
CBuilderAtom Robot allRobots-gtGetNext(pos1)
//obtain the robot's (X,Y) coordinates--gt
(RobotX, RobotY) int RobotX, RobotY Robot-gtGetA
ttribute("XCoordinate", RobotX) Robot-gtGetAttrib
ute("YCoordinate", RobotY)
15
Limitations of the robot
  • Sensitive to light
  • Inaccurate angle calculation
  • One byte payloads
  • Works only in line of sight

16
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.

17
Questions?
  • http//www.gray-area.org/Research/CREW/
Write a Comment
User Comments (0)
About PowerShow.com