- Language : Python
- OS : Ubuntu Linux 16.04
- Tools : PyCharm
- Open Source : Turtlebot3/gazebo
- 형성관리 : Smartgit
- BFS로 미로의 모든 경로를 탐색한다.
- 미로를 탈출한 이후 Back Tracking으로 최단 경로로 출발지점으로 복귀한다.
- 좌수법으로 정해진 장소의 범위를 파악한다.
- 이후 내부의 모든 장소를 방문하여 청소를 진행한다.
시스템 오퍼레이션 정의 | 미로 찾기 로봇은 장애 요소를 인식하고 저장한다. |
---|---|
이름 | BotInfo.first_escape(self) |
책임 | 로봇은 이동하는 경로에 장애 요소를 인식, 저장한다. |
유형 | 시스템 |
참조 | 유스 케이스 : 장애 요소 인식 및 저장 |
주석 | |
예외조건 | 막다른 길로 인식하여 해당 좌표를 저장한다. 두 갈래 길로 인식하여 해당 좌표를 저장한다. |
출력 | |
사전조건 | 로봇은 진행 방향을 변경할 수 있다. |
사후조건 | 장애 요소를 발견하고 해당 좌표를 저장한다. |
시스템 오퍼레이션 정의 | 미로 찾기 로봇은 주행 경로 저장한다. |
---|---|
이름 | BotInfo.save_xy(self) |
책임 | 로봇은 반환지점에 도착하는 동안 거친 모든 경로를 저장한다. |
유형 | 시스템 |
참조 | 유스 케이스 : 주행 경로 저장 |
주석 | |
예외조건 | 이동한 모든 경로들을 저장해야 한다. |
출력 | |
사전조건 | 로봇은 주행할 수 있다. |
사후조건 | 로봇은 주행 경로를 저장한다. |
시스템 오퍼레이션 정의 | 미로 찾기 로봇은 최단경로로 주행한다. |
---|---|
이름 | BackTo.sec_escape(self) |
책임 | 로봇은 주행 경로로부터 최단경로로 주행한다. |
유형 | 시스템 |
참조 | 유스 케이스 : 최단 경로 계산 |
주석 | |
예외조건 | 로봇의 주행 좌표를 전달받지 못할 경우 정지시킨다. |
출력 | |
사전조건 | 로봇의 주행 경로를 전달받는다. |
사후조건 | 로봇은 최단경로로 시작지점으로 이동한다. |
시스템 오퍼레이션 정의 | 로봇 청소기는 현재 있는 위치에서 주행을 시작한다. |
---|---|
이름 | FollowingWall.following(self) |
책임 | 출발 지점에서 시작한다. |
유형 | 시스템 |
참조 | 유스 케이스 : 출발 지점에서 주행힌다. |
주석 | |
예외조건 | 로봇이 벽면을 마주보고 있어야 하며 orientation값을 변경하여 회전할 수 있도록 한다. |
출력 | 로봇 청소기 시작을 알린다. |
사전조건 | 로봇 청소기는 대기 장소에 존재해야 한다. |
사후조건 | 로봇 청소기는 주행을 위해 최대 50m/sec의 속도로 주행을 시작해야 한다. |
시스템 오퍼레이션 정의 | 로봇 청소기는 주행하며 주어진 면적을 청소한다. |
---|---|
이름 | VacuumClean.set_angleself) |
책임 | 주어진 공간을 청소한다. |
유형 | 시스템 |
참조 | 유스 케이스 : 로봇 청소기 청소 |
주석 | |
예외조건 | 최대한 많은 면적을 청소해야 한다. |
출력 | 현재 터틀 봇의 좌표와 면적에 대한 정보를 알려준다. |
사전조건 | 청소를 위한 주어진 공간의 정보가 필요하다 |
사후조건 | 1. 청소한 영역에 대한 정보를 알고 있다. 2. 최대한 많은 면적을 청소했다. |
시스템 오퍼레이션 정의 | 로봇 청소기는 장애물과 벽에 충돌을 회피한다.. |
---|---|
이름 | FollowingWall.following(self), VacuumClean.set_angleself) |
책임 | 충돌을 감지하여 회피한다. |
유형 | 시스템 |
참조 | 유스 케이스 : 로봇 청소기는 충돌 회피 |
주석 | |
예외조건 | 벽과 장애물의 충돌이 발생할 경우 시스템을 종료시킨다. |
출력 | 현재 좌표와 리스트에 저장된 각 꼭짓점 좌표를 알려준다. |
사전조건 | 로봇은 장애물과 벽에 정보를 알고 있어야 한다. |
사후조건 | 충돌 회피 후 청소 기능을 재수행한다. |
시스템 오퍼레이션 정의 | 로봇 청소기는 청소 완료 후 대기장소로 이동한다. |
---|---|
이름 | VacuumClean.only_turn() |
책임 | 로봇 청소기는 대기장소로 이동한다. |
유형 | 시스템 |
참조 | 유스 케이스 : 대기장소 이동 |
주석 | |
예외조건 | |
출력 | 로봇 청소기의 종료, 소요 시간과 면적을 알려준다. |
사전조건 | 로봇 청소기는 청소가 완료된 상태여야 한다. |
사후조건 | 대기 장소로 이동완료 후 시스템을 종료시킨다. |
Activity No. | 소작업 | 선행 작업 | 예상 소요기간(일) | 실제 소요기간(일) |
---|---|---|---|---|
F | Maze 주행 초기 설정 구현 | C, D, E | 2 | 1 |
G | Maze 주행 초기 설정 테스팅/수정 | F | 2 | 2 |
H | Maze 장애요소 인식 및 저장 기능 구현 | G | 7 | 6 |
I | Maze 장애요소 인식 및 저장 기능 테스팅/수정 | H | 2 | 2 |
J | Maze 주행경로 저장 및 최단경로 계산 구현 | G | 10 | 9 |
K | Maze 경로 저장, 최단경로 계산 테스팅/수정 | J | 3 | 4 |
L | Maze 최종 종합 및 테스팅 | I, K | 3 | 4 |
Activity No. | 소작업 | 선행 작업 | 예상 소요기간(일) | 실제 소요기간(일) |
---|---|---|---|---|
M | vacuum 초기 상태구현 | L | 3 | 1 |
N | vacuum 초기 상태 기능 테스팅/수정 | M | 2 | 1 |
O | vacuum 청소 기능 구현 | N | 7 | 5 |
P | vacuum 청소 기능 테스팅/수정 | O | 3 | 3 |
Q | vacuum 사용자 장애물 위치설정 기능 구현 | N | 5 | 1 |
R | vacuum 사용자 장애물 위치설정 테스팅/수정 | Q | 3 | 1 |
S | vacuum 충돌 회피 기능 구현 | N | 7 | 7 |
T | vacuum 충돌 회피 기능 테스팅/수정 | S | 3 | 3 |
U | vacuum 대기장소 이동 기능 구현 | N | 4 | 6 |
V | vacuum 대기장소 이동 기능 테스팅/수정 | U | 2 | 3 |
W | vacuum 최종 종합 및 테스팅 | P | 5 | 5 |
X | vacuum 최종 종합 테스팅 | W | 5 | 5 |
Y | vacuum 결과 보고서 작성 및 최종 발표 준비 | X | 6 | 3 |