Design Methodology for State based Embedded Systems Case Study: Robot Controller

Post on 12-Feb-2016

42 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

DESCRIPTION

Design Methodology for State based Embedded Systems Case Study: Robot Controller. Phaneendra Vanka Graduate Student (Masters’ Program). Contents. Introduction Demo Design Methodology for Time-Triggered State Machine based systems Case Study: Robot Controller Questions. Introduction. - PowerPoint PPT Presentation

Transcript

Department of Computing and Information SciencesKansas State University

Design Methodology for

State based Embedded SystemsCase Study: Robot Controller

Phaneendra VankaGraduate Student (Masters’

Program)

Department of Computing and Information SciencesKansas State University

Contents

Introduction Demo Design Methodology for Time-

Triggered State Machine based systems

Case Study: Robot Controller Questions

Department of Computing and Information SciencesKansas State University

Introduction

Department of Computing and Information SciencesKansas State University

Behavior Control

Behavior – tasks that process external/internal sensory information and issues an action.

Reactive robot control architecture. Complex behavior – series of

alternations of simple behaviors. Hierarchical Model.

Department of Computing and Information SciencesKansas State University

LEGO MINDSTORMS Robotics Invention System Kit consists of

motors, touch sensors, light sensors, bricks, gears etc.

RCX Brick - Hitachi H8/3292 series microcontroller.

- 16 MHz of clock speed.- 16Kb ROM.- 32 Kb external RAM.

Department of Computing and Information SciencesKansas State University

leJOS

Java Platform for the RCX Brick. leJOS API

- java.lang, java.util and java.io- classes to control motors,

sensors, buttons, IR communication, navigation etc.

Department of Computing and Information SciencesKansas State University

Behavior Control API

Behaviorboolean takeControl( )void action( )void suppress( )

Arbitratorpublic Arbitrator (Behavior[ ] behaviors)

Department of Computing and Information SciencesKansas State University

Robot Controller

A modification of the Navigator robot as given in Brian Bagnall’s book “Core Lego Mindstorms Programming”.

Sensors and Inputs: Touch sensor, Timer and two Rotation Sensors.

Actuators: Three motors.

Department of Computing and Information SciencesKansas State University

Behavior’s of Robot Controller MOVE (true):

Travel to a random point COMMAND (Input from IR transceiver):

Travel to a predefined point. If there is an obstacle go around that obstacle

BUMP (Input from touch sensor): Travels 20 units in backward direction.

GO HOME (Timer as input): Travel to the starting point

ARM ROTATE (Timer as input): Rotate the arm

.

Department of Computing and Information SciencesKansas State University

Robot Controller’s Behavior Model

GO HOME

COMMAND

MOVE

Timer

Command

Motors

S

S

S Point of Suppression

Default

Touch Sensor

BUMP S

Timer ARM ROTATE

Department of Computing and Information SciencesKansas State University

DEMO

Department of Computing and Information SciencesKansas State University

Design Methodology for Time-Triggered State Machine based

systems

Department of Computing and Information SciencesKansas State University

Rational Unified Process

Actors

Use-Cases

Class Diagrams

Use-Case realizations

Implementation

Use-Case Model

(what)

Analysis/Design

(how)

Actual code

Department of Computing and Information SciencesKansas State University

Use-Case realizations

WAIT WAKEUP

Department of Computing and Information SciencesKansas State University

Use-Case realizations with asynchronous waits Allocating a thread for each scenario

with synchronization code Finite State Machine based

implementation

Department of Computing and Information SciencesKansas State University

Allocating a thread for each scenario

Actors

Use-Cases

Class Diagrams

Use-Case realizations

Component code

Identify regions in which synchronization is required

Complete code

Global invariant

s(patterns

)

Coarse-grained solution

Fine-grained

code

A Structured Approach to Develop Concurrent Programs in UML,Masaaki Mizuno, Gurdip Singh, Mitchell Nielsen

Department of Computing and Information SciencesKansas State University

Finite State Machine based implementation

Actors

Use-cases

Class Diagrams

Use-case realizations

Revised Class Diagram

Scenarios for threads

Implementation

Original Class

Diagram + State

information + Active ClassesTime

Triggered

Department of Computing and Information SciencesKansas State University

Event Triggered Systems

Boundary Class Other Classes

Department of Computing and Information SciencesKansas State University

Time Triggered Systems

Boundary Class Active Class Other Classes

Department of Computing and Information SciencesKansas State University

From the above discussion we have the following combinations Time Triggered State Machine

based implementation

Event Triggered Thread for each scenario

Department of Computing and Information SciencesKansas State University

Case Study : Robot Controller

Department of Computing and Information SciencesKansas State University

Use Cases for Robot Controller MOVE (true):

Pick up a random point (x,y) to reach. Calculate the angle and distance to (x,y). Rotate for the angle and travel the distance in straight line.

COMMAND (Input from IR transceiver): Calculate the angle and distance to (MAXX, MAXY). Rotate for the angle and travel the distance in straight line.

BUMP (Input from touch sensor): Travel 20 units in backward direction.

GO HOME (Timer as input): Calculate the angle and distance for initial point (0,0). Rotate for the angle and travel the distance in straight line.

ARM ROTATE (Timer as input): Rotate the arm in forward direction for 2 seconds Rotate the arm in backward direction for 2 seconds

STEER (Inputs from Rotation Sensors): Uses rotation sensor to find angle rotated and distance traveled. Keeps the travel in straight line.

Department of Computing and Information SciencesKansas State University

Use Case Model for Robot Controller

Tippy SeniorMove Behavior

Bump Behavior

GoHome Behavior

default

bump

Left Rotational Sensor

Steer

Left Motor

Right Motor

1..1

1..1 1..1 1..11..1

1..11..1

1..1

1..1

1..1

1..1

1..1

1..1

1..1

1..1

1..1

1..1

1..1

Right Rotational Sensor

1..1

1..11..1

1..1

1..1

1..11..11..1

1..1

1..1

1..1

1..1

1..1

1..1

1..1

1..1

1..1

1..1

1..1

1..1

Command Behavior

Command

1..1

1..1 1..1

1..1

1..1

1..1

Arm Rotate

Arm Motor

1..11..1

Arm timer

GoHome timer

1..1

1..1

Department of Computing and Information SciencesKansas State University

Class Diagram +getX() : int+getY() : int+getAngle() : double+rotate()+gotoPoint()+travel()+forward()+backward()+updateCoordinate()+updateAngle()+halt()+stop()+setCommand()+checkRotate()+checkForward()+checkBackward()

RotationNavigator

Motor

Touch Sensor1

3

1

1

Navigator

Move Command Bump GoHome ArmRotate

1

1

1

1

1

1

1

1

1

1

+takecontrol() : bool+action()+suppress()

«interface»Behavior

Timer

1

11

1

RotationSensor

2

1

IRTransceiver

11

Department of Computing and Information SciencesKansas State University

Use Case Realization Example

Wait Until MOVE is triggeredPick a new point (x, y)Calculate angle and distanceStart the motorsWait Until required angle is rotated Stop motorsUpdate geometryStart the motorsWait Until required distance is traveledStop motorsUpdate geometry

Robot Controller : MOVE Behavior

Department of Computing and Information SciencesKansas State University

Use Case Realization Example

Wait Until MOVE is triggeredPick a new point (x, y)Calculate angle and distanceStart the motorsWait Until required angle is rotated Stop motorsUpdate geometryStart the motorsWait Until required distance is traveledStop motorsUpdate geometry

Robot Controller : MOVE Behavior Asynchronous waits

Department of Computing and Information SciencesKansas State University

actions

Behavior Action

Each behavior is a set of actions. After completing one action it goes to the next action

of the behavior. Describe the entire system using finite state machine. Allocate threads to traverse through the state

machine. Needs only mutual exclusion of shared variables.

Finite State Machine Method

Department of Computing and Information SciencesKansas State University

Use Case Realization Example

Wait Until MOVE is triggeredPick a new point (x, y)Calculate angle and distanceStart the motorsWait Until required angle is rotated Stop motorsUpdate geometryStart the motorsWait Until required distance is traveledStop motorsUpdate geometry

Tippy Senior : MOVE Behavior

States

Department of Computing and Information SciencesKansas State University

Revised Class Diagram

+getNextState() : byte+getActionToBeTaken() : Action+setNextState()+setActionToBeTaken()

StateTable

+getX() : int+getY() : int+getAngle() : double+rotate()+gotoPoint()+travel()+forward()+backward()+updateCoordinate()+updateAngle()+halt()+stop()+setCommand()+checkRotate()+checkForward()+checkBackward()

RotationNavigator

1

1

Motor

Touch Sensor1

3

1

1

Navigator

Move Command Bump GoHome ArmRotate

1

1

1

1

1

1

1

1

1

1

+takecontrol() : bool+action()+suppress()

«interface»Behavior

Arbitrator

Timer

1

11

1

+getCurrentState() : byte+setCurrentState()+nextState()

Rotation Sensor ThreadCurrentState

ArmState

111

1

1

1

1

1

11

RotationSensor

21

11

IRTransceiver

11

1

*

Department of Computing and Information SciencesKansas State University

Use Case Realization Example

Wait Until MOVE is triggeredPick a new point (x, y)Calculate angle and distanceStart the motorsWait until required angle is rotated Stop motorsUpdate geometryStart the motorsWait Until required distance is traveled Stop motorsUpdate geometry

Tippy Senior : MOVE Behavior

Arbitrator

Rotation Sensor Thread

Department of Computing and Information SciencesKansas State University

takeControlGO HOME

takeControlBUMP

takeControlCOMMAND

Action (COMMAND)

Action (GO HOME)

Action (BUMP)

DONE

Arbitrator thread

takeControlMOVE

Action (MOVE)

Department of Computing and Information SciencesKansas State University

takeControlGO HOME

takeControlBUMP

takeControlCOMMAND

Action (COMMAND)

Action (GO HOME)

Action (BUMP)

DONE

Rotation Sensor Thread

takeControlMOVE

Action (MOVE)

Department of Computing and Information SciencesKansas State University

Acknowledgement Dr. Masaaki Mizuno Dr. Gurdip Singh Dr. Mitchell Nielsen

Department of Computing and Information SciencesKansas State University

Questions ???

top related