-
Notifications
You must be signed in to change notification settings - Fork 1
system architecture
root edited this page Jan 2, 2020
·
1 revision
id: ros-galapagos-system-architecture title: Galapagos System Architecture sidebar_label: Galapagos System Architecture
- 작성 기준일: 2019. 08. 25.
- 작성자: 김지형 (100kimch@naver.com)
- 본 문서를 수정한 이력이 있다면 다음 표에 작성해주시기 바랍니다.
| 순번 | 일자 | 수정자 | 수정자 이메일 | 수정 내용 | 비고 |
|---|---|---|---|---|---|
| 1 | 2019. 08. 25 | 김지형 | 100kimch@naver.com | Initial Documentation |
갈라파고스코끼리거북팀의 갈라파고스 ROS 패키지 구성에 대한 설명입니다.
갈라파고스 패키지에서는 3개의 센서를 이용한 자율주행 알고리즘을 설계하였습니다.

- 전면 카메라(frontcam)은 전방 표지판 인식 및 원거리 차선을 인식하여 표지판을 통한 코스 인식 및 가속도 조절을 수행합니다.

-
광각 카메라(fishcam)은 하방 차선을 인식하여 안정적인 차선 주행을 수행합니다.
-
라이다(lidar)는 전방위 장애물을 인식하여 장애물 회피 구간과 터널에서의 장애물 회피, 차단바 미션을 수행합니다.
ROS Framework를 이용해 패키지를 구성하면서 전형적인 발행-구독 모델을 이용했습니다. 이는 메시지 큐 모델과 옵저버 패턴 에서 진보한 모델로서 발행자는 구독자들과 느슨하게 결합되어 시스템 토폴로지를 몰라도 동작을 지속할 수 있으며, 때문에 몇 개의 ROS 노드(터틀봇)들이 결합되어도 동작할 수 있는 넓은 확장성을 지니고 있습니다. 전통적인 클라이언트-서버 패러다임에 비해 독립적인 패키지를 개발하기에 용이했습니다.
자율주행 알고리즘을 일괄적으로 처리하는 processor.py에서는 상태 머신 다이어그램을 이용해 디자인했는데, 본 대회의 미션을 기준으로 다음과 같은 6개의 STATE를 정의하였습니다.
| STATE | 설명 | 비고 |
|---|---|---|
| traffic_light | 초록불이 켜질 때 주행을 시작하는 알고리즘 | |
| normal | 미션 간 이동 시 주행하는 알고리즘 | |
| intersection | 삼거리 교차로에서 주행하는 알고리즘 | |
| construction | 장애물 회피 미션에서 주행하는 알고리즘 | |
| parking | 주차 구간 기션에서 주행하는 알고리즘 | |
| blocking_bar | 차단바가 내려올 때 일시정지하는 미션의 알고리즘 | |
| tunnel | 터널 구간을 지나는 미션의 알고리즘 |
- 터틀봇으로부터 센서값이 들어올 때 CURRENT_STATE에 따라 다르게 알고리즘을 수행합니다.
- 터널을 제외한
STATE에서는 Front Camera의 이미지가 들어올 때마다 주 연산을 수행하고, 터널 구간에서는 Lidar 데이터가 들어올 때마다 주 연산을 수행합니다.
lib_runner.py라는 별도의 실행 모듈을 구성함으로써 안정적인 주행 종료를 유도함과 동시에 다양한 디버깅 모드를 지원합니다. RUN_TYPE라는 인자는 기본적으로 모든 미션을 수행하는 full이라는 값으로 세팅되어있는데, 이를 다음과 같이 수정하면, 다양한 방법의 디버깅이 가능합니다.
| RUN_TYPE | 설명 | 비고 |
|---|---|---|
| line_tracing | 하단 차선만 인식하여 주행 | |
| traffic_light | 전면 카메라가 전방 신호등을 인식하는지 여부 판단 | |
| intersection | 삼거리 미션을 수행 후 종료 | |
| construction | 장애물 회피 미션을 수행 후 종료 | |
| parking | 주차 미션을 수행 후 종료 | |
| tunnel | 터널 미션을 수행 후 종료 | |
| lidar | 라이다 센서가 올바르게 작동하는 지 판단 |
