본문 바로가기

나래온 1기(~2012.6)/라인트레이서 이야기

(3부작) 라인트레이서 이야기 - 4. BreezeCore 독해 길잡이



- BreezeCore에 대하여 -

Q : 아무래도 나래온 산들바람의 F1키를 눌러서 온 사람보다는 검색이나 기타 방법으로 들어온 사람이 더 많을 것 같습니다. 그런 분들을 위해 BreezeCore를 소개한다면?
A : 아카데미를 쓰고 계신 분들을 위해, 제가 오랜 개발 기간에 걸쳐 개발한 아카데미 소스의 기능개선판입니다. 나래온 산들바람과 함께 제공되고 있습니다.

Q : 그렇다면 토대는 아카데미고, BreezeCore는 조금만 수정한 건가요?
A : 원래 아카데미 소스가 대부분 잘 만들어져 있지만, 꽤 많은 부분에서 현재 버그가 보고되어 왔습니다. 그러나 공식 제작사에서는 사실상 개발이 멈춰있기 때문에(2010년 12월 현재까지의 상황으로 볼때, 멈춰있는 걸로 판정하였습니다), 저희가 받아서 고치는 겁니다.
주로 교차로 인식과 같은 부분을 고쳤습니다.
하지만 저희는 디버거도 없이 대략적으로 작동하는 양상만 보고 만들었기 때문에 제작사보다는 아무래도 못할겁니다.
저는 개인적으로 BreezeCore에 애착을 가지고 있지만, 사용자의 상황이 나아지는 것을 더 원하기에 BreezeCore보다 나은 정식 펌웨어가 나오길 기대합니다.(사실 판매 대수 등의 이유로 인해 제작사에서 더 이상의 개발을 포기하였다고 봐도 상관없어보입니다.)

Q : BreezeCore에서 수정한 부분에 대한 새로운 독해법을 알려주세요!
A : BreezeCore의 수정 부분은 Turn의 수정과 교차로의 수정의 두 부분으로 나눌 수 있습니다. 큰 수정이었지만 사실 문제를 찾는게 어렵지 해결하는 방법은 어렵지 않아서 난해한 부분은 별로 없습니다.
Turn의 수정은 line.c 독해(후)편에서 말했듯 'Turn함수 실행시 약간 앞으로 가게 한 다음 회전하게 하여 회전반경을 크게 하는 방법'을 사용하여 해결하였습니다.
그리고 교차로의 수정은 line.c 독해(전)편에서 말했듯 E와 A와 T교차로를 가리지 않고 교차로가 인식되지 않은 상태(기본값이 250입니다.)에서만 벗어나면 모두 인식하게 하는 형태로 재프로그래밍했습니다.
BreezeCore에서 새로 추가된 encounter라는 변수가 있는데, 이 변수가 바로 예전의 Cross_flag변수의 기능을 일부 대신하게 됩니다. Cross_flag와 같은 맥락에서 이해해 보면 빠르게 이해되실 것입니다.

- 대단원 -

Q : 정말 짧지만 긴 강의였습니다. 마지막으로 당부할 말씀 있으신지?
A : 우선 이 강의를 끝까지 봐주신 여러분께 감사드리며, 저의 작은 강의가 여러분의 로봇 실력에 조금이나마 도움이 되었기를 바랍니다.