Search
🌍

deer.a7.1_3_1_1. [info] title: 점자블록 기반 주행 논리 설계

🚀 prev note
♻️ prev note
🚀 next note
♻️ next note
17 more properties
1.
global map (지도 API) 에는 어디가 횡단보도이고 어디가 교차로인지에 대한 정보가 개략적으로 나타나 있다. 따라서 global map 의 레이아웃과 현재 비전으로 수집되는 정보를 잘 비교해 보면 global map 상에서의 현재 위치도 어느정도 알 수 있을것이다.
2.
성수역까지의 인도는 공통적으로 이렇게 구분할 수 있다.
a.
점자블럭이 없는, 20도 미만으로 굽어진 직선형 인도
b.
점자블럭이 없는, 20도 이상 굽어진 인도
c.
중앙점자블럭이 있는 직선형/곡선형 인도
d.
점자블럭 에지 → 횡단보도가 그려지지 않은 암묵적 인도 → 점자블럭 에지
e.
점자블럭 에지 → 횡단보도가 그려진 인도 → 점자블럭 에지
점자블럭이 없는 인도가 존재하는 이유 → 길이 넓고 위험한 게 없으면 설치하지 않아도 된다.
이 "상태"에 대한 추가적인 고민은 다른 문서에서 관리한다.
3.
우리가 가지고 있는 정보들은 어떤 정보를 구분해낼 수 있는지 정리해 보자.
a.
지도 API 가 제공해주는 정보 만으로는 (a 인지 c 인지) 를 구분할 수 없다. 하지만, (b 인지 a or c 인지) 는 구분할 수 있다.
b.
지도 API 가 제공해주는 정보만으로는 (d 인지 e 인지) 를 구분할 수 없다. 하지만, {(a or b or c) 인지 (d or e)} 인지는 구분할 수 있다.
c.
비전으로는 점자블록 픽셀의 존재성 여부 검사를 통해 a 인지 c 인지를 구분할 수 있다.
d.
비전으로는 횡단보도 픽셀의 존재성 여부 검사를 통해 d 인지 e 인지를 구분할 수 있다.
4.
각 상태변이를 정리해 보자
a 상태에서 b 상태로 변한다 : 인도가 아닌 도로나 횡단보도 등을 마주치면
a 상태에서 c 상태로 변한다 : 세로로 길게 놓인 점자블럭을 마주치면
a 상태에서 d 또는 e 상태로 변한다 : 가로로 길게 놓인 점자블럭을 마주칠 때까지 간다.
b, c, d 에서 시작하는 것은 일단 고려하지 않는다. → 얌체같지만 그냥 여기서 시작 안 하면 된다.
5.
점자블록은 우리가 어려워하는 상황 : 언제 우회전을 해야 하는지, 어떤 길을 따라가는 것이 좋은지 등에 대한 엄청난 가이던스를 제공해줄 수 있다. 예를 들어, 지도 API 에서 (위도, 경도, 횡단보도건너기) 와 같은 리스트를 던져 주었을 때, 나의 시야에 따라, a 상태에서 d 상태로 변할 준비를 할 수 있으므로, 역으로 내 위치를 (위도, 경도) 로부터 추정할 수 있게 된다.
6.
점자블록 규정을 맞추지 않고 있거나 무단주차 등으로 가려진 부분에 대해서 합당하게 민원을 제기한다. 좋은 구실로 우리 시스템의 성능을 높일 수 있는 방법이 된다.
어떤 주행상태 (점자블럭이 보이고 직진하는 상태) 들은 특정 조건들에 의해서 발동된다.
이런 상태는 하나만 존재하는 것이 아니기 때문에 상태들을 빠르게 조회하고 관리할 수 있으며 복잡한 조건들 사이에서 충돌까지도 잘 감시해줄 수 있는 관리자가 필요하다.
사용자는 각각의 조건을 모아서 빠르게 상태로 정의할 수 있고, 상태들을 빠르게 대시보드에 넣고 빼면서 어떤 상황에서 주행이 가장 잘 되는지를 확인해볼 수 있도록 만들어야겠다.