Home

인식(Perception)팀 - 김도운 개발자

“자율주행의 시작, Perception Team 김도운님 인터뷰”

1. 간단한 자기소개와 토르드라이브에서의 Perception팀의 역할을 소개해주세요.

안녕하세요, Perception팀에서 Sensor Fusion 모듈을 담당하고 있는 김도운입니다. 항공우주공학과 석사를 졸업해, 현재 토르드라이브에서 근무한 지 2년 정도 되었습니다.
Perception 모듈은 자율주행의 시작점이라 할 수 있습니다. 카메라나 라이다, 레이다 같은 센서로 들어온 정보들을 수집하여, 주변 환경을 컴퓨터가 잘 처리할 수 있는 형태로 재구축하는 역할을 합니다.
세부적인 기능은 자율주행 시스템을 어떻게 설계하는지에 따라 달라질 수 있는데요. 토르드라이브의 Perception 모듈에서는 주행 가능 영역에 관한 정보, 특별히 관심을 기울여야 할 물체들, 이를테면 다른 차량이나 보행자들이 3차원상에서 어디에 있는지, 있다면 크기와 방향은 어떻게 되는지에 대한 정보를 얻어냅니다. 더불어, 이러한 물체들을 지속적으로 추적하여 해당 물체들이 미래에 나아갈 것으로 예측되는 경로를 주행팀에게 전달하는 것까지 Perception팀의 역할입니다.

2. 도운님께서 현재 맡고 있는 주요 역할 및 업무에 대해 소개해주세요.

현재 저는 Sensor Fusion 모듈을 맡고 있습니다. 다양한 센서들로부터 수집한 정보를 일관성 있게 통합하는 역할입니다. 제 업무는 Sensor Fusion 모듈을 실제 자율주행 차량에 탑재하는 것인데, 크게 연구, 개발, 엔지니어링, 세 가지로 업무를 구분할 수 있습니다.
연구 업무는 최신 연구 동향을 파악하여 이를 기반으로 실험적인 시도를 해보며, 기존보다 더 나은 성능을 보일 수 있는지 가능성을 확인해보는 단계입니다. 팀원들끼리 논문이나 오픈소스를 읽고 요약한 내용을 공유하기도 하고, 다양한 실험에서 공통으로 사용할 수 있는 toolbox를 개발하기도 합니다.
개발 업무는 연구 단계에서 나온 초기 결과물이 다른 토르드라이브의 모듈들과 함께 맞물려 작동할 수 있도록 구현하는 단계입니다. 연구 단계에서는 빠르게 여러 실험을 시도하는 데 집중하기 때문에 사용하는 프로그래밍 언어도 다르고, 최적화도 부족하며, 입출력 방식도 다릅니다. 따라서 개발 업무에서는 이러한 간극을 메운다고 생각하면 될 것 같습니다.
엔지니어링 업무는 개발 단계에서 나온 결과물이 문제없이 실행될 수 있도록 하는 모든 부가적인 업무를 포괄합니다. 연산 자원을 덜 사용하기 위해 휴리스틱 알고리즘을 추가로 덧붙이거나, 주행팀의 피드백을 기반으로 매개 변수들을 미세 조정합니다.

3. Perception팀에 필요한 역량 두 가지와 해당 역량들을 강화할 수 있는 방법들을 소개해주세요.

Perception팀에서 가장 필요한 기술은 수학인 것 같습니다. 아무래도 센서가 물리적인 세계를 숫자들의 나열로 옮기는 장치이기 때문에, 물리적인 세계를 표현하는 수학과 친숙해지는 것이 필수적이라 생각합니다. 실제로 Perception팀의 동료들은 3차원 좌표변환을 포함한 선형대수학, 확률, 최적화에 대한 기초적인 지식이 있고, 그 덕분에 원활하게 의사소통 할 수 있습니다. 아마 이 정도의 지식은 공대 또는 자연대를 졸업하신 분이면 수업을 통해서 충분히 습득할 수 있다 생각합니다.
물론, 그 외에도 프로그래밍 언어에 대한 응용력, ROS 기반의 비동기 로보틱스 시스템 설계 능력, 딥러닝 아키텍처 설계 능력 등이 있으면 좋을 것 같습니다. 하지만, 이러한 기술은 입사 초반에는 없어도 큰 문제는 없다고 생각합니다. 제가 중요하게 생각하는, 가장 필요한 역량은 바로 주어진 일을 끝까지 마무리하는 끈기입니다. 주도적으로 본인에게 주어진 일을 마무리한다면, 완벽하지는 않더라도, 또는 다른 사람의 도움을 받더라도 그 과정 속에서 성장한 자신을 발견할 수 있을 것입니다. 이 역시 학교 수업, 해커톤, 공모전, 인턴십 등의 경험에서 주어진 과제를 완수함으로써 습득할 수 있으리라 생각합니다.

4. Perception팀에 입사하기 전에 배우면 실무적으로 도움되는 것들을 조금 더 자세히 소개해주세요.

Perception팀에 들어오기 전에 익히면 좋은 도구로, git을 제일 먼저 꼽을 수 있을 것 같습니다. 지금까지 업무를 하며 동료들과 협업하는 과정에서, 문서화를 하거나 형상 관리 도구를 자유자재로 사용하면 생산성이 많이 향상된다는 것을 깨달았습니다. 만약 git 사용법을 미리 익힌다면 협업을 더 수월하게 할 수 있을 것 같습니다. 그 외에도 ROS를 공부하면 좋을 것 같습니다. 로보틱스에서 경력을 쌓은 분이 아니라 ROS를 접하지 않았다면, 비동기 프로그래밍을 대신해서 미리 공부하는 것을 추천합니다. 저의 경우에는 펌웨어를 개발하면서 interrupt를 이용한 비동기 프로그래밍에 익숙했었고, 그 때문에 ROS에 빨리 친숙해질 수 있었던 것 같습니다.

5. Perception 팀으로서 일하는 가장 큰 강점이 무엇인지 소개해 주세요.

다른 회사들과 비교하여 토르드라이브의 Perception팀에서 일하는 것이 가지는 강점은 풀 스택 자율주행을 경험해볼 수 있다는 것입니다. 우선 하드웨어에 대한 어느 정도의 자유가 부여되기에 초기에 Perception 모듈을 설계할 당시에 선택지가 넓다고 느꼈습니다. 또한 저희의 정보를 활용하는 주행팀이 주는 피드백을 통해 완성도 높은 Perception 모듈을 개발할 수 있습니다. 무엇보다도, 저희가 만든 결과물이 도로 위를 달리는 모습을 보는 것이 가장 큰 즐거움인 것 같습니다. 그 외에도, 첨단을 달리는 최신 연구와 도구들을 동료들과 함께 공부하며 성장해 나갈 수 있는 점, 다양한 분야로 확장 가능한 연구 개발 경험을 쌓을 수 있다는 점 역시 강점인 것 같습니다.

6. Perception팀의 분위기는 어떤가요?

개인이 공부한 내용을 디테일하게 공유하는 문화가 있습니다. 세미나를 하더라도 디테일한 부분들은 이해가 안 되는 경우가 있는데, 저희 팀은 세미나에서 더 나아가서 논문이나 GitHub 코드를 아주 세부적으로 분석하고 정리한 뒤 서로 공유를 합니다. 이런 문화 덕분에 세미나에서 충족하지 못했던 부분을 보완할 수 있습니다.
또한 수평적이고 활기찬 분위기입니다. 기술 개발을 하다 보면 미지의 영역인 부분들을 마주칠 때가 있는데, 이런 경우에는 서로 토의하여 기술적인 결정을 내려야 될 때가 있습니다. 이때 누군가의 권위에 의한 결정이 아닌 서로 의견을 주고받으면서 합리적인 결정이 무엇인지 찾아가는 과정 속에서 ‘수평적이다’ 느끼는 경우가 많았습니다.

7. 토르드라이브의 개발자로서 가장 기억에 남는 성취의 순간에 대해 소개해주세요.

저에게 가장 기억에 남는 성취의 순간은 입사 첫해에 TP(Trajectory Prediction) 모듈을 처음 개발할 때였던 것 같습니다. 간단하게 설명 드리자면, TP 모듈의 역할은 탐지된 객체들의 위치, 속도 등의 정보를 바탕으로 해당 객체들이 미래에 나아갈 경로를 예측하는 것입니다. 제가 입사하기 전에 개발된 TP 모듈은, 객체의 현재 위치만 사용하여 주변 모든 차선의 중앙을 따라 이동하는 궤적만 만들었습니다. 따라서 TP 모듈이 너무 많은 가능성을 제시하기 때문에, 자율주행 차량이 지나치게 보수적으로 주행하는 요인이 되었습니다.
저는 이를 해결하기 위해 TP 문제를 처음부터, 그리고 다른 시각에서 접근해보았습니다. TP 문제를 해석적으로 모델링 하기 위해 며칠을 밤낮없이 고민한 결과, 객체의 과거 궤적을 observation으로 간주한 Bayesian filtering 문제로 정의할 수 있었습니다. 그 뒤로 구현하는 것은 일사천리로 진행되었습니다. 첫 아이디어를 떠올렸을 당시 옥상에서 바람을 쐬면서 고민하다가 마음속으로 ‘유레카’를 외쳤었는데, 지금까지도 그 순간을 생각하면 정말 뿌듯합니다.

8. 마지막으로, 올해에 도운님이 업무적으로 달성하고 싶은 것에 대해 소개해주세요.

올해 저의 1차적인 목표는 지금 개발하고 있는 모듈을 성공적으로 자율주행 차량에 탑재하는 것입니다. 그리고 2차적인 목표는 연구를 조금 더 해서 지금까지 개발해온 Sensor Fusion Object Detection 모델을 발전을 시키고 싶습니다.
또한 개인적인 목표로는 Computer Vision과 관련된 기초 이론을 공부해보고 싶습니다. “컴퓨터 비전을 위한 다중 시점 기하학” 책을 작년 말에 구매 요청해서 책장에 넣어뒀는데, 아직 첫 장을 못 펴봤네요. 올해에는 이 책을 비롯해서 고전적인 Computer Vision 논문들을 읽으면서 Computer Vision 관련 기초를 닦고 싶습니다.