앞서 4개의 게시물에 만든 2개의 알고리즘을 합쳐서 도로를 피하도록 만들려고 한다.
Scheduler를 사용해서 두 개의 알고리즘을 동작시키면, 선 안에서 장애물을 회피하면서 주행이 된다.
하지만, 실험을 반복하면서 주행에 실패하는 경우가 생긴다.
여기서 문제를 분석하는데, 많은 시간이 소요됐다.
이유는 알고리즘을 하나씩 실험하면 문제가 안생긴다.
두 개의 알고리즘을 같이 실행시키면서 분석한 결과,
장애물의 색에 따라 달라진다는 것이다.
정해놓은 트랙은 검은 판, 흰 선이다.
흰 선 = 밝은 색을 선으로 인식.
어두운 선 = 선으로 인식하지 못하고 도로라고 인식.
그렇다면,
흰 장애물 = 선으로 인식 (문제 X)
어두운 장애물 = 장애물이 선을 가리고 있다면, 인식 못함 (문제 ㅇ)
이 문제를 해결하기 위해서, 알고리즘 우선 순위, 변경 여러가지를 고민했다.
(문제를 분석하면서 생각한 것은 그림으로 그림)
그러면서 생각난 것은 장애물 폭과 위치를 알고 있으니, 장애물의 위치를 선이라고 만든다면 해결할 수 있겠다는 생각이 들었다.(장애물은 선으로 인식하는 것이 아니라 높이로 판단하니까!)
이렇게 하기 위해서..
1. 라인 스캔을 먼저한다.
2. 장애물 인식하는 알고리즘으로 장애물 왼쪽 벽의 위치를 알아낸다.
이렇게 알고리즘을 바꿔서 성공했다.!