52
Auto Moving Robot(AMR) 소프트웨어 공학개론 유준범 교수님 6조 200511333 송정우 200611506 이종훈 200810047 김성원 200811408 김도연

Auto Moving Robot(AMR) - Konkukdslab.konkuk.ac.kr/Class/2009/09SE/Practice/T6_Final.pdf · 2012. 9. 13. · KonkukUniv. Software Engineering Team Project Statement of purpose Auto

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Auto Moving Robot(AMR) - Konkukdslab.konkuk.ac.kr/Class/2009/09SE/Practice/T6_Final.pdf · 2012. 9. 13. · KonkukUniv. Software Engineering Team Project Statement of purpose Auto

Auto Moving Robot(AMR)

소프트웨어 공학개론유준범 교수님

6조200511333 송정우 200611506 이종훈200810047 김성원 200811408 김도연

Page 2: Auto Moving Robot(AMR) - Konkukdslab.konkuk.ac.kr/Class/2009/09SE/Practice/T6_Final.pdf · 2012. 9. 13. · KonkukUniv. Software Engineering Team Project Statement of purpose Auto

Konkuk Univ.Software EngineeringTeam ProjectAuto Moving RobotContents

• Environment Model– Statement of Purpose– System Context Diagram– Event List

• Behavior Model– DFD(Data Flow Diagram)– Data Dictionary– State Transition Diagram– Process Specification

Page 3: Auto Moving Robot(AMR) - Konkukdslab.konkuk.ac.kr/Class/2009/09SE/Practice/T6_Final.pdf · 2012. 9. 13. · KonkukUniv. Software Engineering Team Project Statement of purpose Auto

Konkuk Univ.Software EngineeringTeam ProjectAuto Moving RobotStatement of purpose

Basic Move Purpose• 로봇은 기본적으로 직선으로 전진한다.• 전방의 센서를 통해 장애물을 인식하며, 장

애물을 인식하면 방향을 바꾼다.– 단, 방향전환 속도는 변하지 않는다.

• 방향 전환 후 다시 직선으로 전진한다.• 터치 센서를 통해 속도를 조절할 수 있다.• 로봇이 작동하는 동안 화면에는 기본적으로

“Working”을 출력한다.

Page 4: Auto Moving Robot(AMR) - Konkukdslab.konkuk.ac.kr/Class/2009/09SE/Practice/T6_Final.pdf · 2012. 9. 13. · KonkukUniv. Software Engineering Team Project Statement of purpose Auto

Konkuk Univ.Software EngineeringTeam ProjectAuto Moving RobotStatement of purpose

Light Sensing Purpose• 상단의 센서를 통해 빛을 감지해 어두우면 제동장치

를 작동시킨다.– 5초 후에 다시 감지한다.

• 어두울 경우에는 제동장치 작동을 멈추고 바퀴의 움직임을 멈춘 후 “Night”소리를 낸다.– 소리를 낸 후 화면에 “Sleeping”표시를 출력한다.– 멈춘 후 다시 밝아질 경우 “Good Morning” 소리를 내고,

화면에 “Working”을 출 력하며 다시 직진한다.• 밝을 경우 제동장치 작동을 멈추고 다시 직진한다.

Sound Sensing Purpose• 박수 소리에 맞춰 “Thank you” 소리를 출력한다.

Page 5: Auto Moving Robot(AMR) - Konkukdslab.konkuk.ac.kr/Class/2009/09SE/Practice/T6_Final.pdf · 2012. 9. 13. · KonkukUniv. Software Engineering Team Project Statement of purpose Auto

Konkuk Univ.Software EngineeringTeam ProjectAuto Moving Robot

SensorAMR

Control

Motor

Speaker

Display

Touch InputSound InputBright InputDistance Input Sound

System Context Diagram

Page 6: Auto Moving Robot(AMR) - Konkukdslab.konkuk.ac.kr/Class/2009/09SE/Practice/T6_Final.pdf · 2012. 9. 13. · KonkukUniv. Software Engineering Team Project Statement of purpose Auto

Konkuk Univ.Software EngineeringTeam ProjectAuto Moving RobotEvent List

Event Description

Input

Touch Input Touch Sensor를 통해 사용자의 입력을 받아들인다.

Sound Input Sound Sensor를 통해 소리를 감지한다.

Bright Input Light Sensor를 통해 빛을 감지한다.

Distance Input Ultrasonic Sensor를 통해 거리를 감지한다.

Time 주기적으로 시간을 입력된다.

Output

Sound 입력된 명령을 통해 알맞은 소리를 출력한다.

Motor 상황에 맞게 A,B,C 모터를 가동시킨다.

Print 모터의 동작상황에 상황에 따라 화면에 출력한다.

Page 7: Auto Moving Robot(AMR) - Konkukdslab.konkuk.ac.kr/Class/2009/09SE/Practice/T6_Final.pdf · 2012. 9. 13. · KonkukUniv. Software Engineering Team Project Statement of purpose Auto

Konkuk Univ.Software EngineeringTeam ProjectAuto Moving RobotDFD Level 0

Touch Sensor

Sound Sensor

Light Sensor

Ultrasonic Sensor

AMR Control

0

Motor

Speaker

Display

Clock

Sound Input Sound

Page 8: Auto Moving Robot(AMR) - Konkukdslab.konkuk.ac.kr/Class/2009/09SE/Practice/T6_Final.pdf · 2012. 9. 13. · KonkukUniv. Software Engineering Team Project Statement of purpose Auto

Konkuk Univ.Software EngineeringTeam ProjectAuto Moving RobotData Dictionary

Event Description Format/Type

Input

Touch Input Touch Sensor를 통해 사용자의 입력을 받아들인다.

True | False / Asychronous

Sound Input Sound Sensor를 통해 소리를 감지한다. True | False /Periodic

Bright Input Light Sensor를 통해 빛을 감지한다. True | False /Periodic

Distance Input Ultrasonic Sensor를 통해 거리를 감지한다. True | False /Periodic

Clock Input Time Input을 받아 시간을 측정한다. Asychronous

Output

Sound 입력된 명령을 통해 알맞은 소리를 출력한다. Good Morning/ Night/ Thank you

Motor 상황에 맞게 A,B,C 모터를 가동시킨다. A/B/C

Print 모터의 동작상황에 상황에 따라 화면에 출력한다.

Working/Sleeping

Page 9: Auto Moving Robot(AMR) - Konkukdslab.konkuk.ac.kr/Class/2009/09SE/Practice/T6_Final.pdf · 2012. 9. 13. · KonkukUniv. Software Engineering Team Project Statement of purpose Auto

Konkuk Univ.Software EngineeringTeam ProjectAuto Moving RobotDFD Level 1

AMRControl Sensor

1

AMRControl

Unit2

Light Input AMR Data

Sound

Page 10: Auto Moving Robot(AMR) - Konkukdslab.konkuk.ac.kr/Class/2009/09SE/Practice/T6_Final.pdf · 2012. 9. 13. · KonkukUniv. Software Engineering Team Project Statement of purpose Auto

Konkuk Univ.Software EngineeringTeam ProjectAuto Moving RobotDFD Level 1 – Modified DFD

AMRControl Sensor

1

AMRControl

Unit2

Light Input AMR Data

Sound

Page 11: Auto Moving Robot(AMR) - Konkukdslab.konkuk.ac.kr/Class/2009/09SE/Practice/T6_Final.pdf · 2012. 9. 13. · KonkukUniv. Software Engineering Team Project Statement of purpose Auto

Konkuk Univ.Software EngineeringTeam ProjectAuto Moving RobotData Dictionary

Type Name Description

int Motor State 현재 모터 상태를 저장(1 – 5)

bool Direction Distance값에 따라 장애물 여부 판단

bool Break 제동여부

string Display String Display에 출력되는 문자열 값

bool Up Touch센서가 입력되기 전의 입력 여부 값

bool Speed Switch Speed의 증감결정을 위해 저장되는 값

int Speed 직진 할 때 출력속도(최대값 : 100)

bool Sound Sound 센서에 입력된 소리 크기 값

int Bright Light 센서에 입력된 밝기의 값

AMR DATA

Page 12: Auto Moving Robot(AMR) - Konkukdslab.konkuk.ac.kr/Class/2009/09SE/Practice/T6_Final.pdf · 2012. 9. 13. · KonkukUniv. Software Engineering Team Project Statement of purpose Auto

Konkuk Univ.Software EngineeringTeam ProjectAuto Moving RobotData Dictionary - Modified D.D

Type Name Description

bool Obstacle Distance값에 따라 장애물 여부 판단

bool Break Light값에 따라 제동여부 판단(T/F)

bool Touch Touch 센서에서 감지한 터치 여부(T/F)

int Speed 직진 할 때 출력속도(최대값 : 100)

bool Sound Sound 센서에 입력된 소리 크기 값

int Light Light 센서에 입력된 밝기의 값

Modified AMR DATA

Page 13: Auto Moving Robot(AMR) - Konkukdslab.konkuk.ac.kr/Class/2009/09SE/Practice/T6_Final.pdf · 2012. 9. 13. · KonkukUniv. Software Engineering Team Project Statement of purpose Auto

Konkuk Univ.Software EngineeringTeam ProjectAuto Moving RobotDFD Level 2

AMR ControlInputUnit1.5

Touch Input

Sound Input

Light Input

Distance Input

TouchInterface

1.1[Asynchronous

Device]

SoundInterface

1.2[PeriodicDevice]

LightInterface

1.3[PeriodicDevice]

UltrasonicInterface

1.4[PeriodicDevice]

AMR Data

Page 14: Auto Moving Robot(AMR) - Konkukdslab.konkuk.ac.kr/Class/2009/09SE/Practice/T6_Final.pdf · 2012. 9. 13. · KonkukUniv. Software Engineering Team Project Statement of purpose Auto

Konkuk Univ.Software EngineeringTeam ProjectAuto Moving RobotDFD Level 2

MotorControl

OutUnit2.1

MotorInterface

2.4

DisplayInterface

2.6

Motor Command

AMR Data SpeakerInterface

2.5

Speaker Command Sound Play

Motor Action

Display OnDisplay Command

SoundControl

OutUnit2.2

DisplayControl

OutUnit2.3

Page 15: Auto Moving Robot(AMR) - Konkukdslab.konkuk.ac.kr/Class/2009/09SE/Practice/T6_Final.pdf · 2012. 9. 13. · KonkukUniv. Software Engineering Team Project Statement of purpose Auto

Konkuk Univ.Software EngineeringTeam ProjectAuto Moving RobotDFD Level 2 - Modified DFD

MotorControl

OutUnit2.1

MotorInterface

2.5

DisplayInterface

2.7

Motor Command

AMR Data SpeakerInterface

2.6

Speaker Command Sound Play

Motor Action

Display OnDisplay Command

SoundControl

OutUnit2.2

DisplayControl

OutUnit2.3

Speed Control

Unit2.4

Page 16: Auto Moving Robot(AMR) - Konkukdslab.konkuk.ac.kr/Class/2009/09SE/Practice/T6_Final.pdf · 2012. 9. 13. · KonkukUniv. Software Engineering Team Project Statement of purpose Auto

Konkuk Univ.Software EngineeringTeam ProjectAuto Moving RobotData Dictionary

Event Description

Input

Motor Command 모터의 움직임을 결정하기 위해 구조체에 있는 Motor State, Break, Speed 값을 가져와서 모터의 움직임을 결정한다.

Speaker Command

구조체에 있는 Sound값을 가져와서 스피커 장치를 작동시킨다.

Display Command 구조체에 있는 String 값을 가져와서 디스플레이에 표시한다.

Output

Motor Action 모터의 움직임을 결정하기 위한 정보로 구조체로부터 받은 정보를 가지고 판단한다.

Sound Play 소리에 대한 정보로 구조체로부터 받은 정보로 소리를출력한다.

Display On LCD에 작동에 관한 정보로 문자열은 구조체에 저장된값을 받아서 출력한다.

Page 17: Auto Moving Robot(AMR) - Konkukdslab.konkuk.ac.kr/Class/2009/09SE/Practice/T6_Final.pdf · 2012. 9. 13. · KonkukUniv. Software Engineering Team Project Statement of purpose Auto

Konkuk Univ.Software EngineeringTeam ProjectAuto Moving RobotDFD Level 3

MotorController

2.1.1

AMR DATATurnLeft2.1.3

Trigger Motor Command

TurnRight2.1.4

Move Forward

2.1.2

TurnBack2.1.5

Motor Command

Motor Command

Motor CommandBreak2.1.6 Motor Command

Tick

Page 18: Auto Moving Robot(AMR) - Konkukdslab.konkuk.ac.kr/Class/2009/09SE/Practice/T6_Final.pdf · 2012. 9. 13. · KonkukUniv. Software Engineering Team Project Statement of purpose Auto

Konkuk Univ.Software EngineeringTeam ProjectAuto Moving RobotDFD Level 3

MotorController

2.1.1

AMR DATATurnLeft2.1.3

Trigger Motor Command

TurnRight2.1.4

Move Forward

2.1.2

TurnBack2.1.5

Motor Command

Motor Command

Motor CommandBreak2.1.6 Motor Command

Tick

Page 19: Auto Moving Robot(AMR) - Konkukdslab.konkuk.ac.kr/Class/2009/09SE/Practice/T6_Final.pdf · 2012. 9. 13. · KonkukUniv. Software Engineering Team Project Statement of purpose Auto

Konkuk Univ.Software EngineeringTeam ProjectAuto Moving Robot

ForwardLeft

Right

ReverseTimeout(5), Bright <= 40 / Enable “Break”

Timeout(0.5), Direction is False, Bright > 40 / Disable “Break”

Timeout(0.5), Direction is True , Bright > 40 / Disable “Break”

Timeout(1),Direction is True

Timeout(1),Direction is True

Tim

eout

(5),

Brig

ht >

40

/ D

isab

le “

Brea

k”” Tim

eout(5), Brig

ht > 40 / D

isable “Break”

Bright > 40 / Disable “Break”

Bright > 40 / Disable “Break””

Stop

Motor State Machine

Page 20: Auto Moving Robot(AMR) - Konkukdslab.konkuk.ac.kr/Class/2009/09SE/Practice/T6_Final.pdf · 2012. 9. 13. · KonkukUniv. Software Engineering Team Project Statement of purpose Auto

Konkuk Univ.Software EngineeringTeam ProjectAuto Moving RobotMotor State Machine – Modified FSM

Forward

Light > 40Obstacle is False

Break

Light < 40 /Enable “Break”

TurnLeft

Timeout(0.5)Light > 40Obstacle is TrueMotorState is 0 / MotorState is 1

TurnRight

Timeout(0.5)Light > 40Obstacle is TrueMotorState is 1 / MotorState is 2

TurnBack Timeout(0.5), Light > 40Obstacle is True, MotorState is 2/MotorState is 3

Timeout(0.5), Light > 40Obstacle is TrueMotorState is 3/ MotorState is 1

Timeout(0.5)Light > 40Obstacle is False/ MotorState = 0

Timeout(0.5) , Light > 40 Obstacle is False/ Disable “Break”

Page 21: Auto Moving Robot(AMR) - Konkukdslab.konkuk.ac.kr/Class/2009/09SE/Practice/T6_Final.pdf · 2012. 9. 13. · KonkukUniv. Software Engineering Team Project Statement of purpose Auto

Konkuk Univ.Software EngineeringTeam ProjectAuto Moving RobotDFD Level 3

SpeakerController

2.2.1

Good Morning

Play2.2.2

Thank YouPlay2.2.4

Speaker Command

Speaker Command

AMR Data NightPlay2.2.3

Trigger Speaker Command

Tick

Page 22: Auto Moving Robot(AMR) - Konkukdslab.konkuk.ac.kr/Class/2009/09SE/Practice/T6_Final.pdf · 2012. 9. 13. · KonkukUniv. Software Engineering Team Project Statement of purpose Auto

Konkuk Univ.Software EngineeringTeam ProjectAuto Moving RobotDFD Level 3

DisplayController

2.3.1

WorkingDisplay2.3.2

SleepingDisplay2.3.3

Display Command

Display Command

Page 23: Auto Moving Robot(AMR) - Konkukdslab.konkuk.ac.kr/Class/2009/09SE/Practice/T6_Final.pdf · 2012. 9. 13. · KonkukUniv. Software Engineering Team Project Statement of purpose Auto

Konkuk Univ.Software EngineeringTeam ProjectAuto Moving RobotDisplay & Sound State Machine

Light

Dark

Page 24: Auto Moving Robot(AMR) - Konkukdslab.konkuk.ac.kr/Class/2009/09SE/Practice/T6_Final.pdf · 2012. 9. 13. · KonkukUniv. Software Engineering Team Project Statement of purpose Auto

Konkuk Univ.Software EngineeringTeam ProjectAuto Moving RobotSpeaker State Machine – Modified FSM

Night Play

GoodMorningPlay

Timeout(0.5)Break is True/Trigger Sound “Night”

Timeout(0.5)Break is False/Trigger Sound “GoodMorning”

Timeout(0.5)Break is FalseSound is True,Obstacle is false/Trigger Sound “Thank you”

Thank you Play

Page 25: Auto Moving Robot(AMR) - Konkukdslab.konkuk.ac.kr/Class/2009/09SE/Practice/T6_Final.pdf · 2012. 9. 13. · KonkukUniv. Software Engineering Team Project Statement of purpose Auto

Konkuk Univ.Software EngineeringTeam ProjectAuto Moving RobotDisplay State Machine – Modified FSM

Break is False/Trigger Display “Working”

WorkingDisplay

Break is True/Trigger Display “Sleeping”

SleepingDisplay

Break is False/Trigger Display “Working

Page 26: Auto Moving Robot(AMR) - Konkukdslab.konkuk.ac.kr/Class/2009/09SE/Practice/T6_Final.pdf · 2012. 9. 13. · KonkukUniv. Software Engineering Team Project Statement of purpose Auto

Konkuk Univ.Software EngineeringTeam ProjectAuto Moving RobotDFD Level 3

SpeedController

2.4.1

AMR DataTouch Data

Speed Data

Page 27: Auto Moving Robot(AMR) - Konkukdslab.konkuk.ac.kr/Class/2009/09SE/Practice/T6_Final.pdf · 2012. 9. 13. · KonkukUniv. Software Engineering Team Project Statement of purpose Auto

Konkuk Univ.Software EngineeringTeam ProjectAuto Moving Robot

Button Up

Speed DownSpeed UpTimeout(0.5)If Down is True and Up is False and Button Switch is False/Speed increase 5 Timeout(0.5)

If Down is True and Up is False and Button Switch is False/Speed decrease 5

Speed State Machine

Page 28: Auto Moving Robot(AMR) - Konkukdslab.konkuk.ac.kr/Class/2009/09SE/Practice/T6_Final.pdf · 2012. 9. 13. · KonkukUniv. Software Engineering Team Project Statement of purpose Auto

Konkuk Univ.Software EngineeringTeam ProjectAuto Moving RobotSpeed State Machine – Modified FSM

Speed UpSpeed Down

Timeout(0.5)Touch is TrueSpeedSwitch is TrueSpeed < 100/Speed increase 5SpeedSwitch is False

Timeout(0.5)Touch is TrueSpeedSwitch is falseSpeed > 0/ Speed decrease 5SpeedSwitch is True

Timeout(0.5)Touch is TrueSpeedSwitch is TrueSpeed < 100/Speed increase 5SpeedSwitch is False

Page 29: Auto Moving Robot(AMR) - Konkukdslab.konkuk.ac.kr/Class/2009/09SE/Practice/T6_Final.pdf · 2012. 9. 13. · KonkukUniv. Software Engineering Team Project Statement of purpose Auto

Konkuk Univ.Software EngineeringTeam ProjectAuto Moving RobotDFD

1.5

1.1[A]

1.2[P]

1.3[P]

1.4[P]

2.1.1[C]

2.1.3

2.1.4

2.1.2

2.1.5

2.2.1[C]

2.2.2

2.2.4

2.3.1[C]

2.3.2

2.3.3

AMR Data

[A] : Asynchronous[P] : Periodic[C] : Control

2.2.3

2.1.6

2.4

2.5

2.6

Page 30: Auto Moving Robot(AMR) - Konkukdslab.konkuk.ac.kr/Class/2009/09SE/Practice/T6_Final.pdf · 2012. 9. 13. · KonkukUniv. Software Engineering Team Project Statement of purpose Auto

Konkuk Univ.Software EngineeringTeam ProjectAuto Moving RobotDFD – Modified DFD

1.5

1.1[A]

1.2[P]

1.3[P]

1.4[P]

2.1.1[C]

2.1.3

2.1.4

2.1.2

2.1.5

2.2.1[C]

2.2.2

2.2.4

2.3.1[C]

2.3.2

2.3.3

AMR Data

[A] : Asynchronous[P] : Periodic[C] : Control

2.2.3

2.1.6

2.5

2.6

2.7

2.4.1[C]

Page 31: Auto Moving Robot(AMR) - Konkukdslab.konkuk.ac.kr/Class/2009/09SE/Practice/T6_Final.pdf · 2012. 9. 13. · KonkukUniv. Software Engineering Team Project Statement of purpose Auto

Konkuk Univ.Software EngineeringTeam ProjectAuto Moving RobotProcess Specification

Reference No. 1.1

Name Touch Interface

Input Touch Input

Output Touch (Boolean)

Description Touch Sensor에 입력이 들어오면 Boolean값으로Touch가 눌렸는지에 대한 True/False 값을 출력한다.

Reference No. 1.2

Name Sound Interface

Input Sound Input

Output Sound (Integer)

Description Sound Sensor에 입력이 들어오면 그 사운드의 dB로 출력을 한다.

Page 32: Auto Moving Robot(AMR) - Konkukdslab.konkuk.ac.kr/Class/2009/09SE/Practice/T6_Final.pdf · 2012. 9. 13. · KonkukUniv. Software Engineering Team Project Statement of purpose Auto

Konkuk Univ.Software EngineeringTeam ProjectAuto Moving RobotProcess Specification

Reference No. 1.3

Name Light Interface

Input Light input

Output Light (Integer)

Description Light Sensor에 입력이 들어오면 빛의 밝기에 대한값(1~100) 을 출력한다.

Reference No. 1.4

Name Ultrasonic Interface

Input Distance input

Output Distance (Boolean)

Description Ultrasonic Sensor에 입력이 들어오면 Boolean값으로 앞에 장애물이 있는지를 판단하여 True/False를 출력한다.

Page 33: Auto Moving Robot(AMR) - Konkukdslab.konkuk.ac.kr/Class/2009/09SE/Practice/T6_Final.pdf · 2012. 9. 13. · KonkukUniv. Software Engineering Team Project Statement of purpose Auto

Konkuk Univ.Software EngineeringTeam ProjectAuto Moving RobotProcess Specification

Reference No. 1.5

Name AMR Control Input Unit

Input Touch Input, Sound InputLight input, Distance Input

Output AMR Data struct { bool, int ,bool, bool, bool, bool

Description Touch, Sound, Light, Ultrasonic 인터페이스들로부터 받은Boolean값들을 받아서 AMR Data라는 구조체 값을 데이터저장소에 보낸다.

Reference No. 2.1

Name AMR Control Out Unit

Input AMR Data struct { bool, int ,bool, bool, bool, bool}

Output Motor Command, Speak Command, Screen Command

Description AMR Data 구조체에 있는 값들을 통해 내부적인 처리로 각장치에 맞는 Command 데이터를 보낸다.

Page 34: Auto Moving Robot(AMR) - Konkukdslab.konkuk.ac.kr/Class/2009/09SE/Practice/T6_Final.pdf · 2012. 9. 13. · KonkukUniv. Software Engineering Team Project Statement of purpose Auto

Konkuk Univ.Software EngineeringTeam ProjectAuto Moving RobotProcess Specification

Reference No. 2.1.1

Name Motor Controller

Input Motor Command

Output Motor Action

Description Motor Command를 입력 받아 모터에 대한 움직임들(전진, 제동, 회전)을 결정한다.

Reference No. 2.1.2

Name Move Forward

Input Enable, Disable

Output Motor Command

Description Enable이 되면 Motor B,C가 작동 되도록 하는 Motor Command 데이터를 보내낸다.

Page 35: Auto Moving Robot(AMR) - Konkukdslab.konkuk.ac.kr/Class/2009/09SE/Practice/T6_Final.pdf · 2012. 9. 13. · KonkukUniv. Software Engineering Team Project Statement of purpose Auto

Konkuk Univ.Software EngineeringTeam ProjectAuto Moving RobotProcess Specification

Reference No. 2.1.2

Name Turn Left

Input Trigger, Tick

Output Motor Command

Description Trigger 이벤트가 발생시 Motor B의 속도를 50%로 하고, 0.5초 앞으로, Motor C의 속도도 50%로 하고, 0.5초간 뒤로움직일 수 있도록 하는 Motor Command데이터를 보낸다.

Reference No. 2.1.3

Name Turn Right

Input Trigger, Tick

Output Motor Command

Description Trigger 이벤트가 발생시 Motor B의 속도를 50%로 하고, 0.5초 뒤로 Motor C의 속도도 50%로 하고, 0.5초간 앞으로움직일 수 있도록 하는 Motor Command데이터를 보낸다.

Page 36: Auto Moving Robot(AMR) - Konkukdslab.konkuk.ac.kr/Class/2009/09SE/Practice/T6_Final.pdf · 2012. 9. 13. · KonkukUniv. Software Engineering Team Project Statement of purpose Auto

Konkuk Univ.Software EngineeringTeam ProjectAuto Moving RobotProcess Specification

Reference No. 2.1.4

Name Turn Back

Input Trigger, Tick

Output Motor Command

Description Trigger 이벤트가 발생시 Motor B의 속도를 50%로 하고, 1초 앞으로 Motor C의 속도도 50%로 하고, 1초간 뒤로 움직일 수 있도록 하는 Motor Command 데이터를 보낸다.

Reference No. 2.1.5

Name Break

Input Enable, Disable

Output Motor Command

Description Enable이 발생하면 Motor A를 작동 시키는 Motor Command 데이터를 보낸다.

Page 37: Auto Moving Robot(AMR) - Konkukdslab.konkuk.ac.kr/Class/2009/09SE/Practice/T6_Final.pdf · 2012. 9. 13. · KonkukUniv. Software Engineering Team Project Statement of purpose Auto

Konkuk Univ.Software EngineeringTeam ProjectAuto Moving RobotProcess Specification

Reference No. 2.2.1

Name Speaker Controller

Input Speaker Command

Output Sound Play

Description Speaker Command를 입력 받아 소리를 낼지, 그리고 소리를 낸다면 어떤 소리를 낼지를 결정한다.

Reference No. 2.2.2

Name Good Morning

Input Trigger, Tick

Output Sound Command

Description Trigger 이벤트로 수행 되어 Good Morning 사운드가 출력될 수 있도록 Sound Command 데이터를 보낸다.

Page 38: Auto Moving Robot(AMR) - Konkukdslab.konkuk.ac.kr/Class/2009/09SE/Practice/T6_Final.pdf · 2012. 9. 13. · KonkukUniv. Software Engineering Team Project Statement of purpose Auto

Konkuk Univ.Software EngineeringTeam ProjectAuto Moving RobotProcess Specification

Reference No. 2.2.4

Name Thank you

Input Trigger, Tick

Output Sound Command

Description Trigger 이벤트로 수행 되어 Thank you 사운드가 출력 될 수있도록 Sound Command 데이터를 보낸다.

Reference No. 2.2.3

Name Night

Input Trigger, Tick

Output Sound Command

Description Trigger 이벤트로 수행 되어 Night 사운드가 출력 될 수 있도록 Sound Command 데이터를 보낸다.

Page 39: Auto Moving Robot(AMR) - Konkukdslab.konkuk.ac.kr/Class/2009/09SE/Practice/T6_Final.pdf · 2012. 9. 13. · KonkukUniv. Software Engineering Team Project Statement of purpose Auto

Konkuk Univ.Software EngineeringTeam ProjectAuto Moving RobotProcess Specification

Reference No. 2.3.2

Name Working Display

Input Trigger, Tick

Output Display Command

Description Trigger 이벤트로 수행 되어 “Working” 문자가 액정에 출력될 수 있도록 Display Command 데이터를 보낸다.

Reference No. 2.3.1

Name Display Controller

Input Display Command

Output Display On

Description Display Command를 입력 받아 LCD에 어떤 문자열을 출력할지 결정한다.

Page 40: Auto Moving Robot(AMR) - Konkukdslab.konkuk.ac.kr/Class/2009/09SE/Practice/T6_Final.pdf · 2012. 9. 13. · KonkukUniv. Software Engineering Team Project Statement of purpose Auto

Konkuk Univ.Software EngineeringTeam ProjectAuto Moving RobotProcess Specification

Reference No. 2.3.3

Name Sleeping Display

Input Trigger, Tick

Output Display Command

Description Trigger 이벤트로 수행 되어 “Sleeping” 문자가 액정에 출력될 수 Display Command 데이터를 보낸다..

Reference No. 2.5

Name Motor Interface

Input Motor Command

Output Motor Action

Description Motor Command를 받아 Motor에 Motor Command에 해당하는 이벤트를 보내 Motor를 작동시킨다.

Reference No. 2.4.1

Name Speed Controller

Input AMR Data Touch

Output AMR Data Speed

Description AMRData에서 Touch여부를 받아 Speed를 조정해 AMR DATA에 저장한다.

Page 41: Auto Moving Robot(AMR) - Konkukdslab.konkuk.ac.kr/Class/2009/09SE/Practice/T6_Final.pdf · 2012. 9. 13. · KonkukUniv. Software Engineering Team Project Statement of purpose Auto

Konkuk Univ.Software EngineeringTeam ProjectAuto Moving RobotProcess Specification

Reference No. 2.6

Name Speak Interface

Input Speaker Command

Output Sound Play

Description Speaker Command를 받아 Sound Command에 해당하는이벤트를 보내 Speaker를 작동시킨다.

Reference No. 2.7

Name Display Interface

Input Display Command

Output Display On

Description Display Command를 받아 Display Command에 해당하는이벤트를 보내 Display를 작동시킨다.

Page 42: Auto Moving Robot(AMR) - Konkukdslab.konkuk.ac.kr/Class/2009/09SE/Practice/T6_Final.pdf · 2012. 9. 13. · KonkukUniv. Software Engineering Team Project Statement of purpose Auto

Konkuk Univ.Software EngineeringTeam ProjectAuto Moving RobotStructured Chart – Transform Analysis

1.5

1.1[A]

1.2[P]

1.3[P]

1.4[P]

2.1.1[C]

2.1.3

2.1.4

2.1.2

2.1.5

2.2.1[C]

22.2

2.3.4

2.3.1[C]

2.3.2

2.3.3

AMR Data

[A] : Asynchronous[P] : Periodic[C] : Control

2.3.3

2.1.6

2.5

2.6

2.7

Afferent Flow(Input)

Central Transformation(Input)

Efferent Flow(Output)

2.4.1[C]

Page 43: Auto Moving Robot(AMR) - Konkukdslab.konkuk.ac.kr/Class/2009/09SE/Practice/T6_Final.pdf · 2012. 9. 13. · KonkukUniv. Software Engineering Team Project Statement of purpose Auto

Konkuk Univ.Software EngineeringTeam ProjectAuto Moving RobotStructured Chart – Task 선정

1.5

1.1[A]

1.2[P]

1.3[P]

1.4[P]

2.1.1[C]

2.1.3

2.1.4

2.1.2

2.1.5

2.2.1[C]

22.2

2.3.4

2.3.1[C]

2.3.2

2.3.3

AMR Data

[A] : Asynchronous[P] : Periodic[C] : Control

2.3.3

2.1.6

2.5

2.6

2.7

Afferent Flow(Input)

Central Transformation(Input)

Efferent Flow(Output)

2.4.1[C]

Page 44: Auto Moving Robot(AMR) - Konkukdslab.konkuk.ac.kr/Class/2009/09SE/Practice/T6_Final.pdf · 2012. 9. 13. · KonkukUniv. Software Engineering Team Project Statement of purpose Auto

Konkuk Univ.Software EngineeringTeam ProjectAuto Moving RobotTask Definition

Task ID Process 기준 ModuleTask 01 Touch Sensor Interface 1.1 Periodic GetTouch

Task 02 Sound Sensor Interface 1.2 Asynchronous GetSound

Task 03 Light Sensor Interface 1.3 Asynchronous GetSpeed

Task 04 Ultrasonic Sensor Interface 1.4 Asynchronous GetDistance

Task 05 Sensor Control 1.5 Control SensorControl

Task 06 Motor Control 2.1.1 Move Forward 2.1.2Turn Left 2.1.3 Turn Right 2.1.4Turn Back 2.1.5 Break 2.1.6

Control MotorControl

Task 07 Sound Control 2.2.1 Good Morning Play 2.2.2Thank You Play 2.2.3 Night Play 2.2.4

Control Sound Control

Task 08 Display Control 2.3.1Working Display 2.3.2Sleeping Display 2.3.3

Control Display Control

Task 09 Motor Interface 2.4 Asynchronous Omotor

Task 10 Display Interface 2.5 Asynchronous Odisplay

Task 11 Speaker Interface 2.6 Asynchronous Osound

Page 45: Auto Moving Robot(AMR) - Konkukdslab.konkuk.ac.kr/Class/2009/09SE/Practice/T6_Final.pdf · 2012. 9. 13. · KonkukUniv. Software Engineering Team Project Statement of purpose Auto

Konkuk Univ.Software EngineeringTeam ProjectAuto Moving RobotModule Structure

Motor Control

SoundControl

DisplayControl

Main

Sensor

SpeakerInterface

DisplayInterface

MotorInterface

Application

InputInterface

OutputInterface

SpeedControl

SpeedTouch

Sound, Obstacle, Break

BreakLight, Obstacle, Break

MotorCommand

SoundCommand

DisplayCommand

UltrasonicInterface

Light Interface

Sound Interface

Touch Interface

Touch Sound Light distance

Page 46: Auto Moving Robot(AMR) - Konkukdslab.konkuk.ac.kr/Class/2009/09SE/Practice/T6_Final.pdf · 2012. 9. 13. · KonkukUniv. Software Engineering Team Project Statement of purpose Auto

Konkuk Univ.Software EngineeringTeam ProjectAuto Moving RobotModule Definition

Module ID AMR_I01 Module Name Touch SensorInterface

Module 개요 Touch Sensor로부터 입력을 받음

Interface Bool gTouch() <- 터치 입력 여부를 리턴함

Module ID AMR_I02 Module Name Sound SensorInterface

Module 개요 Sound Sensor로부터 입력을 받음

Interface Bool gSound() <- 사운드 입력 여부를 리턴함

Module ID AMR_I03 Module Name LightSensorInterface

Module 개요 Light Sensor로부터 입력을 받음

Interface Bool gLight() <- 빛을 감지했는지 여부를 리턴함

Page 47: Auto Moving Robot(AMR) - Konkukdslab.konkuk.ac.kr/Class/2009/09SE/Practice/T6_Final.pdf · 2012. 9. 13. · KonkukUniv. Software Engineering Team Project Statement of purpose Auto

Konkuk Univ.Software EngineeringTeam ProjectAuto Moving RobotModule Definition

Module ID AMR_I04 Module Name UltrasonicSensor Interface

Module 개요 UltraSonic Sensor로부터 입력을 받음

Interface Bool gObstacle() <- 지정된 거리에 장애물의 유무를 리턴

Module ID AMR_C01 Module Name SensorControl

Module 개요 AMR_I01, AMR_I02, AMR_I03,AMR_I04의 모듈을 사용하여AMR_DATA 구조체 값을 갱신시켜줌

Interface 없음- 프로그램 구동 시 실행

Module ID AMR_C02 Module Name SpeedControl

Module 개요 AMR_Data 구조체에서 속도값과 터치입력 여부를 읽어와속도값을 조절해줌

Interface 없음- 프로그램 구동 시 실행

Page 48: Auto Moving Robot(AMR) - Konkukdslab.konkuk.ac.kr/Class/2009/09SE/Practice/T6_Final.pdf · 2012. 9. 13. · KonkukUniv. Software Engineering Team Project Statement of purpose Auto

Konkuk Univ.Software EngineeringTeam ProjectAuto Moving RobotModule Definition

Module ID AMR_C03 Module Name Motor Control

Module 개요 AMR_Data 구조체에서 Light,Obstacle,Break 정보를 가져와서모터의 움직임을 결정하여 모터 출력 인터페이스를 호출

Interface 없음- 프로그램 구동 시 실행

Module ID AMR_C04 Module Name Sound Control

Module 개요 AMR_Data 구조체에서 Sound,Obstacle,Break정보를 가져와서 재생할 사운드를 결정해서 사운드 출력인터페이스를 호출

Interface 없음- 프로그램 구동 시 실행

Module ID AMR_C05 Module Name Display Control

Module 개요 AMR_Data 구조체에서 Break 변수를 가져와서 출력할문자열을 결정해서 디스플레이 출력 인터페이스를 호출

Interface 없음- 프로그램 구동 시 실행

Page 49: Auto Moving Robot(AMR) - Konkukdslab.konkuk.ac.kr/Class/2009/09SE/Practice/T6_Final.pdf · 2012. 9. 13. · KonkukUniv. Software Engineering Team Project Statement of purpose Auto

Konkuk Univ.Software EngineeringTeam ProjectAuto Moving RobotModule Definition

Module ID AMR_O01 Module Name OMotor

Module 개요 Motor Control에서 얻은 정보를 토대로 모터를 실제 구동State 는 왼쪽, 오른쪽, 180 회전과 제동에 대한 정보임.

Interface Void Omotor(int state) <- state에 따라 모터를 움직임

Module ID AMR_O02 Module Name OSound

Module 개요 Sound Control 에서 얻은 정보를 토대로 사운드를 실제 재생Good Morning, Thank You, Night중 하나를 출력

Interface Void Osound(string file);

Module ID AMR_O03 Module Name ODisplay

Module 개요 DisplayControl 에서 얻은 정보를 토대로 디스플레이에 출력Working , Sleep중 하나를 출력

Interface Void Odisplay(string text);

Page 50: Auto Moving Robot(AMR) - Konkukdslab.konkuk.ac.kr/Class/2009/09SE/Practice/T6_Final.pdf · 2012. 9. 13. · KonkukUniv. Software Engineering Team Project Statement of purpose Auto

Konkuk Univ.Software EngineeringTeam ProjectAuto Moving RobotStructured Chart – Balanced System

Speed Motor Speaker Display

Input Output

Input(Afferent Flow)

Process(Central Transformation)

Output

ProcessProcess

Process

Sensor

Page 51: Auto Moving Robot(AMR) - Konkukdslab.konkuk.ac.kr/Class/2009/09SE/Practice/T6_Final.pdf · 2012. 9. 13. · KonkukUniv. Software Engineering Team Project Statement of purpose Auto

Konkuk Univ.Software EngineeringTeam ProjectAuto Moving RobotStructure Chart

Motor ControlMotor Control

SoundControlSoundControl

DisplayControlDisplayControl

Main

Sensor Sensor

OSound

ODisplay

Speed Speed

UltrasonicInterface

Light Interface

Sound Interface

Touch Interface

Touch Sound Light distance

SpeedTouch

Light, Obstacle, Break

BreakSound, Obstacle, Break

OMotor

MotorCommand

SoundCommand

DisplayCommand

Page 52: Auto Moving Robot(AMR) - Konkukdslab.konkuk.ac.kr/Class/2009/09SE/Practice/T6_Final.pdf · 2012. 9. 13. · KonkukUniv. Software Engineering Team Project Statement of purpose Auto

Konkuk Univ.Software EngineeringTeam ProjectAuto Moving RobotData Definition

Data Name Description Type

Touch Touch 센서의 입력 정보를 가진 변수 Bool

Sound Sound 센서의 입력 정보를 가진 변수 Bool

Distance Ultra Sonic 센서의 입력 정보를 가진 변수 Bool

Light Light 센서의 입력 정보를 가지고 기준 이상의 소리가 감지되었는지 판단한 변수

Bool

Speed 모터의 속도 값을 저장한 변수 Int

Break 브레이크의 작동 정보를 가진 변수 Bool

Obstacle Ultra Sonic 센서의 입력 정보를 가지고 장애물에 대한 여부를 판단한 변수

bool