brunch

You can make anything
by writing

C.S.Lewis

by 라이드플럭스 Mar 08. 2023

RideFlux SW 개발은 우리가 책임진다! (4)

Control 유닛의 이야기

For the Safety, Beyond the Safety.

안녕하세요 RideFlux입니다. 


오늘은 자율주행 기술에서 차량의 ‘안전'과 ‘편안함'을 담당해 주시고 계시는 Control 유닛과의 인터뷰 내용을 담아봤습니다. 


‘안전’과 직결된 유닛인 만큼, Control 유닛 라플인들은 어떻게 일하고 있을까요? 

또 Control 유닛은 어떤 형식으로 커뮤니케이션하며, 차량의 ‘안전’과 ‘편안함'을 높이고 있을까요? 


지금 바로 만나러 가보시죠!



(당산) 광진님, 상혁님, 일호님, 승민님


  1. 자신을 가장 잘 대표할 수 있는 자기소개 한 마디를 해주세요!


 성필님: 라이드플럭스의 ‘늙음’을 담당하고 있는 성필입니다.


 일호님: 엄격, 책임, 효율, 계획 이 중 하나라도 통제가 안 되면 불안한 모습을 보이는 ESTJ 일호입니다. 


 광진님: 제어에서 젊음을 담당하고 있는 광진입니다. 


 승민님: ISFJ이지만, 에니어그램 5번의 4번 날개 승민입니다.


 상혁님: (그거 아닌데..) 흔들리는 40대 갈대 같은 상혁입니다. 


 성주님: 가족과 함께 제주에 정착한 성주입니다. 제주 라이프를 즐기고 있습니다.


  

2. Control 유닛은 어떤 일들을 하고 있나요? 


광진님: 인지와 판단된 정보를 바탕으로 생성된 경로를 편안하고 안전하게 주행할 수 있도록 차량을 제어해 주는 업무들을 하고 있습니다.  


일호님: 차가 얼마나 무서운지 아니까 그런 것 같아요. 차는 굉장히 많은 환경에 노출되어 있다 보니 고민이 많이 필요하고, 생명과도 직결될 수 있는 유닛이 Control 유닛이다 보니, 함부로 할 수 있는 업무들이 없죠. 광진님이 말씀 주신 것처럼, ‘안전'은 당연히 있지만, ‘편안함'까지 고려해야 하다보니, 의사결정이 쉽게 되는 일이 없습니다.  

그렇기 때문에 자율주행차가 움직이는 것에 있어 많은 고민들을 하고 있는 유닛이기도 하죠. 


성주님: 생명과 직결되어 있기 때문에, 항상 고민이 많고, 진지하게 임할 수밖에 없는 것 같아요. 물론 다 같이 테스트를 진행하지만, 자칫 잘못하면 회사가 위기에 처할 수 있기 때문에 신중에 신중을 더해서 업무들을 진행하고 있습니다. 


성필님: 차량 제어 업무뿐만 아니라, 다양한 표준 자료를 바탕으로 안전과 관련된 프로세스를 만들어가고 있는 상황입니다. 요구 사항을 도출하고 설계하는 작업을 진행하게 되는 것이죠. 그래서 문서 작업을 굉장히 많이 하는 유닛이기도 해요(하하).


상혁님: 종합해서 Control 유닛에 대해 간단하게 설명하자면, 핸들하고 엑셀, 브레이크를 종합적으로 사람 대신에 제어할 수 있도록 만드는 것이 저희의 업무라고 보시면 될 것 같아요. 사람이 어떻게 판단하든 간에, 손과 발이 뜻대로 움직이지 않으면 사고가 발생할 수 있기 때문에, 그 부분을 대신 제어할 수 있도록 만들어 주는 것이죠. 결국 안전도 있지만, 그만큼 사람들이 편안하게 탈 수 있도록 종합적으로 고려하는 유닛이라고 봐주시면 좋을 것 같습니다. 


 

열변을 토하시는 광진님


3. 실제 차량의 안전과 직결된 유닛인데, 안전의 기준을 어떻게 세워서 업무를 보고 계신가요? 


일호님: 무조건 사람보다 나은 시스템이 되어야 하고, 잘해야 한다고 생각합니다.  

사람만큼 안전하게 사람만큼 편안하게 운전할 수 있도록 목표를 세워 업무를 진행하고 있습니다. 

안전의 기준은 브레인스토밍이 아닌 프로세스를 기반으로하여 보다 더 시스테믹 하게 도출된 기준을 세우고 교통의 흐름을 방해하지 않는 선에서  최대한 놓치는 부분이 없게 하고 있어요.


성주님: 국제 표준, 혹은 프로세스들을 만들어가며 최대한 놓치는 부분이 없도록 꼼꼼하게 진행하려고 하는 것도 있죠. 


일호님: 별도의 TF를 내부에서 진행하고 있기도 해요. 자동차 업계에서는 법규와 표준, 개발 프로세스 자체에 대해 굉장히 엄격하게 요구되고 특히 안전과 관련된 Functional Safety, SOTIF(Interviewer 각주 - Safety Of The Intended Functionality의 약자로써, 의도된 기능에 대한 안전을 야기함. 또한 자율주행 관련 기능의 성능이나 기술적 한계, 잘못된 사용으로 발생할 수 있는 위험을 최소화하려는 기술, 성능 안전 국제표준)를 우리 시스템 요구사항에 최대한 녹여내기 위해서 노력하고 있습니다.  


상혁님: 다시 강조하는 거지만, 브레인스토밍이 아닌 시스테믹 하게 도출된 결론을 가지고 기준을 세우는 것이 가장 중요하다고 볼 수 있을 것 같아요. 


두 개의 표준이 안전 기준을 세워준 표준이 아니라, 기준을 세우는 프로세스 혹은 방법에 대한 표준이에요. 방법론이라고 할 수 있죠. 그 표준에 기술된 방법과 프로세스에 따라서 어떻게 해야 더 안전한지 등 안전에 대해 고민하게 되는 것이죠. 


성필님: 프로세스를 주는 것이 아닌, 프로세스를 만드는 데 고민해야 할 포인트들을 제시해 주는 것이죠. 


상혁님: 모든 고장은 언제 어디서든 일어날 수 있기 때문에, 그 가정을 가지고 계속 점검하게 됩니다. 최대한 모든 상황에 다 대응할 수 있다면 좋겠지만, 제시된 기준에 따라 저희는 ‘안전’을 지키기 위해 최대한 모든 프로세스를 꼼꼼하게 볼 수밖에 없고, 최대한 기준을 따르면서도 그 이상의 상황들을 대비할 수 있도록 고민하고 있습니다. 


성주님: 제조물 책임법이 있는 만큼, 리콜 사태를 최소화하고, 피해를 최소화해야 하다보니까 책임감을 느끼고 일하게 되는 것도 있어요. 회사를 살릴 순 없지만, 망할 수 있기 때문에 고민과 걱정이 많죠(하하). 


일호님: 결국 기술 개발 뿐만 아니라 다양하게 고려할 것들이 많기 때문에, 굉장히 엄격하고 꼼꼼하게 하나하나 체크해가면서 일하고 있습니다. 



까다로운 평가자 일호님


 4. 승차감을 더 높이기 위한 Control 유닛만의 전략이 있나요? 


광진님: 랩실이나 사무실에서 데이터를 통해 일차적으로 확인하고 최종적으로는 실제 차를 타고, 느껴봐야 하는 것이기 때문에, 실차 테스트를 중요하게 생각하고, 테스트 시 검증하면서 승차감을 높이기 위해 노력하고 있죠.  


일호님: 유닛의 특징이기도 한데, SW 개발 업무도 많이 하지만, 개발된 SW를 차에서 실제로 느껴보지 않는 이상 평가가 불가능한 부분이에요. 불완전할 수밖에 없는 부분이기도 해요. 어떤 사람은 ‘이 정도면 편안하지’라고 생각할 수 있지만, 또 어떤 사람들은 ‘정말 불편해’ 라고 할 수 있는 것이니까요. 그러다 보니 최대한 많은 분의 의견을 종합해서 일차적으로 완성해 주는 유닛이라고 볼 수 있어요. 그 이후에는 많은 사람에게 공감대가 형성될 수 있도록 노력하는 것이죠. 


차를 많이 타본다 = 필드에 많이 나가보지 않으면 안 된다. 라는 공식이 성립되는 것처럼, 많은 차량 테스트를 수행해 보고 있는 거죠.    


광진님: 베이스라인을 얻기 위해서 전 좌석, 운전석이든 보조석이든, 뒷좌석 등 다양한 관점에서 타보고 평가하고 있죠. 


일호님: 기술적으로 이야기해보자면, 결국 차량과 액추에이터(시스템을 움직이거나 제어하는 데 쓰이는 기계장치)를 가장 잘 이해하고 있는 유닛이기 때문에, 차량마다 다른 차량 동역학 및 액추에이터의 특성을 고려해서 제어기를 설계하고 있죠. ‘승차감’이라는 것이 결국 Planning, Localization, Perception 등 다양한 유닛과 긴밀하게 co-work를 많이 해야 하기도 해요. 많은 토론을 거치면서 승차감을 높이려 노력하고 있습니다. 


승민님: 무엇보다 경험치가 많은 사람들의 평가들이 매우 크게 작용해요. 경험치가 많다는 것은 결국 많은 차를 오래 타봤다고 할 수 있기 때문에, 그분들의 평가를 굉장히 중요하게 보면서 조절하고 있죠. 


성필님: 제어 유닛에서는 일호님이 굉장히 까다로운 평가자죠(하하). 


일호님: 저희 유닛은 저를 포함해서 안전과 편의에 관련된 ADAS 기능 개발자 출신이 많아요. 자동차 경력으로만 쳐도 다들 10년 이상 되죠. 그래서 자연스럽게 엄격해진 것 같아요.


성주님: ‘승차감’은 시간과 노력이 굉장히 많이 필요한 작업이에요. 고려한다고 해도 모든 케이스를 다 해 볼 수는 없으니까, 빠진 케이스들이 발견되면, 저희가 보완하는 작업을 하기도 하죠. 



5. 그러면 시뮬레이션 버전 부터 마스터, 서비스 버전까지 여러 단계를 거치게 되는데, Control 유닛은 어느 버전까지 관리하시는걸까요? 


일호님: 실제로 운영되는 버전은 운영 조직에서 관리하고 있고 Control 유닛은 개발 단계에서의 마지막이라고 볼 수 있어요. 그러다 보니 저희 유닛은 내부적으로 별도 검증 절차를 거치고 개발 단계의 정해진 구역에서 실차 테스트를 완료하여 개발 브랜치에 커밋을 하고 평가 프로세스의 시작인 운영 조직에 넘깁니다.


현재 회사의 형상 관리 기준으로는 평가가 시작되기 직전의 베이스라인까지 그 이후에는 실차 테스트 엔지니어이신 승건님께서 이후의 작업을 진행해 주시게 되는 것이죠. 




갈대 같은 40대 상혁님


 

6. 최종 차량이 운행되기 위한 라이센스를 취득하기 위해 어떤 과정으로 테스트를 진행하시나요? 

 

광진님: 차량이 움직일 수 있도록 환경을 구축하게 되고, 움직이는 환경이 구축되면, 차량이 실제로 제어 명령을 보냈을 때 어떻게 반응하는지 차량에 대한 데이터를 측정하고 특성을 분석하게 됩니다. 분석된 정보를 바탕으로 차량 제어 알고리즘을 실험하게 됩니다. 


성필님: 기본적인 알고리즘을 실험하게 되는 거죠. 근데 안전장치부터 만들게 됩니다. 안전에 관련된 장치들을 포함해서 저희가 원하는 방향으로 원활하게 차가 움직일 수 있도록 실차 테스트를 진행하게 됩니다. 


상혁님: 제어기 테스트 완료한 이후에, 제어기를 포함한 다른 SW를 통합한 테스트를 진행하면서, 제어가 잘 되는지 보게 되죠. PG(Proving ground) 시험장에서 시나리오 개발 테스트 검증을 하게 됩니다. 


일호님: 라이선스 취득까지 굉장히 많은 행정절차가 있지만, 여러 테스트 과정을 거치고 작성된 문서들을 통합해서 최종적으로 라이센스를 취득하게 되는 것이죠. 


 

7. Control 유닛만의 소통하는 개성이 있다면 어떤 것들이 있을까요? 


상혁님: 서울 오피스는 좁아서, 다른 유닛과는 조금 비교가 될 수 있을 것 같아요. 

다른 유닛은 코드를 작성하는 작업이 많지만, Control 유닛은 실제로 코딩으로 구현되는 양은 비교적 적다고 볼 수도 있죠. 하지만 구현하기까지 서로 소통해서 정의하고 의사 결정해야 할 사항이 많이 있기 때문에, 그 어느 유닛보다 회의를 많이 하는 유닛이기도 해요. 


소통하기 위해서 도구들도 적극적으로 활용하는 편이에요. 원격 회의는 당연하지만, 수시로 전화하고 슬랙하면서 회의를 진행하게 되죠.  


코딩한다기보다는 실제 차량에서 나온 데이터들을 분석하고, ‘왜 이렇게 되었을까?’ 원인을 찾고, 그 원인을 해결하기 위해서 어떻게 정의하게 될지에 대한 컨셉 공유 시간이 상대적으로 긴 것 같아요. 


성필님: 문서 작업도 가장 많이 하는 유닛이기도 해요. 문서를 중요하게 생각하는 것도 있고요. 

성주님: 회사이기 때문에 규격화된 문서가 있어야 여러 사람이 공동작업을 할 수 있기 때문에, 장기적으로 봤을 때는 정말 중요하고 필요한 작업이긴 하죠. 


상혁님: 예를 들어 Perception 쪽은 한두 번 잘못된 결과를 낸다고 해서, 사고나 큰 위험으로 이어지지는 않을 수 있어요. 하지만 Control은 한 가지의 잘못으로 인해 바로 큰 사고가 발생할 수 있기 때문에, 여러 유닛과 커뮤니케이션을 원활하게 진행될 수 있도록 문서작업은 필수적으로 해야 하는 일이에요.  

현실적인 예를 한번 들어보면, 직진해야 하는 상황에서 180도 틀어야 한다고 잘못 명령하면 바로 큰 사고로 이어질 수 있는 것처럼, 그런 잘못된 계산 결과가 나오지는 않는지 검토하기 위해서도 문서화 작업이 굉장히 중요하다고 볼 수 있죠. 


게다가 저희는 실제로 시뮬레이션해야 하기도 하면서, 시뮬레이션 결과를 실제 차량에서 재현되는 단계까지 가야 해요. 


세상의 다양한 변수들이 존재하기 때문에, 실제 차량 실험을 많이 할 수밖에 없어요. 그렇다 보니, 안 그래도 실험 때문에 시간을 많이 할애하는데, 문서화가 잘되어 있지 않으면 커뮤니케이션에 큰 문제가 생기기 때문에, 계산 실수 그리고 실험 시간을 단축하기 위해서 꼼꼼하게 문서 작업하는 것도 중요합니다. 


성필님: 실제로 실험을 많이 하더라도, 뭔가 잘못된 코드 한 줄로 인해 하루가 날라가는 경우도 굉장히 많아요. 


일호님: 지나가면서 굉장히 큰 인사이트를 줬던 문구가 있는데요. 소프트웨어 개발이라는 것은 결국 팀워크가 중요한 작업이고, 팀워크가 좋다는 것은 의사소통이 잘된다는 얘긴데요. 근데 의사소통을 잘하려면 결국 모호함이 없어야 하고, 모호함을 없애는 것 중 하나가 문서작업이 되는 것 같아요. 


또 한 가지는 Control 유닛은 회의가 정말 많은 편이에요. 뒤돌아서 스탠딩 미팅도 많이 하고, 빨리빨리 협의하고 의사 결정해야 하는 사항들이 많다 보니, 물리적으로 떨어져 있는 게 가끔 불편하기도 하죠. 


상혁님: 근데 또 정말 다양한 방식으로 또 그 많은 커뮤니케이션을 진행하다 보니까 서로에 대한 이해도가 굉장히 높다고 생각해요. 그 어느 유닛보다 한 사람이 갑자기 자리에 없을 때 다른 분들이 빠르게 대처해 줄 수 있기 때문에 서로 끈끈하다는 생각을 많이 하죠. 서로 상호보완이 잘 된다고 할까요? (하하)  


광진님: Control 엔지니어의 숙명 같긴 한데, 차에 대해서, 그 구조에 대해서 잘 알아야 한다고 생각해요. 시스템에 관심을 많이 가져야 하더라고요. 그래서 소통하다 무엇인가 고민할 때, 전체 시스템이나 차량 관점에서 조금 더 많이 고민하게 되고, 그러다보니 걱정이 많아지고, 광범위하게 고려를 하게 되는 것 같아요.


상혁님: 항상 포인트가 안전과 편의 사항 두 개 중에 갈등하게 되는 것 같아요. ‘안전’은 아무리 강조해도 부족해지는데, 우리가 편의를 완전히 포기할 수는 없다 보니, 어느 지점 에선가에는 결정해줘야 하는데, 그 결정에 관해서 이야기도 많이 하게 되고, 고민도 많이 하게 되는 것 같아요. 모호한 부분이잖아요. (하하) 


성필님: ‘불안하다’라는 것도 결국에는 안전하지 않다고 생각할 수 있는데, 안전하지만 불안함을 조성하는 것도 문제가 되는 것 같아요.  실제로 부딪히지 않다고 하더라도, 차가 옆에 지나갈 때 불안함을 느낄 수도 있잖아요. 그런 것까지 계속 고민하게 되는 것이죠. 


일호님: 결국에는 혼자 할 수 없는 것이 Control 유닛인 것 같아요. 단기적인 솔루션을 지양하는 것은 공통이고, 정말 많은 커뮤니케이션을 통해서 합리적인 의사결정을 해야 한다고 볼 수 있습니다. 



에니어그램 5번의 4번 날개 승민님


 8. Control 유닛에 들어오기 위해 어떤 역량 혹은 경험이 있으면 좋을까요?


상혁님: 차량에 관심이 많고, Control과 관련된 경험이 일 순위가 될 것 같아요. 

차량에서 코딩했을 때 어지러움을 호소하지 않는 역량도 중요해요(하하). 


성필님: 나이 들면 무조건 어지러운데.. 하하..


일호님: 차량제어 뿐만아니라, 차량 통신, 차량 시스템 등 글로벌함이 있었으면 좋겠어요. 


성주님: Control 유닛에서는 제어와 더불어 시스템 업무를 같이 하다 보니, 차량이나 기능 안전에 대한 지식도 많고, 경험도 많다면 들어오셔서 할 수 있는 일의 범위는 더 넓어질 것 같아요. 


광진님: 실차 기반의 테스트 경험도 도움이 될 것 같습니다.


성필님: 꼼꼼함이 좀 많이 필요한 것 같아요. 끊임없이 자신을 의심해야 하는 부분도 있기도 하고요. 디테일하게 잡아나가야 하는 부분이 많이 필요하기 때문에 중요한 역량이라고 볼 수 있을 것 같아요. 


일호님, 광진님: 본인이 제어기를 구현하고, 실차에 적용하고 혼자서도 테스트 하는 것을 즐기는 분이라면 정말 환영합니다. 코딩을 좋아할 뿐만 아니라, 본인의 코드를 구현하고, 실제로 차량에서 어떻게 동작하는지 보는 것을 좋아하는 분이면 더없이 좋을 것 같습니다. 

이런 것들을 종합했을 때 결국은 그만큼 퀄리티를 신경 쓰는 분, ‘이정도면 괜찮다.’ 하는 분 보다는 ‘여기서 어떻게 더 좋게 할 수 있지?’ 생각하시는 분이 되겠죠.  


성필님: 엄격하게 업무를 진행하는 건 맞지만, 너무 겁내시지는 않았으면 좋겠어요(하하).



라이드플럭스의 아빠, 엄마_성필님, 성주님

 

9. Control 유닛의 최종적인 목표는 무엇인가요? 


성필님: 대박 은퇴요!


상혁님: 우리가 개발한 차가 정말 서비스가 되고, 승객에게 좋은 평가를 받는 것. 안전과 편안함을 둘 다 만족하는 SW를 개발하는 것이 제일 큰 목표이죠. ‘정확한데 편하기까지 해?’ 이런 느낌이 되겠네요.

일호님: 라이드플럭스 자율주행 진짜 잘한다! 완전 무인으로 내 가족이 믿고 탑승할 수 있는 자율주행차! 라는 평가를 받기 원하고 있기도 하죠. 양산은 고통이지만 양산 수준으로 제품화하고 서비스된다면 너무 좋을 것 같아요


광진님: 하나의 제어기로 모든 차량의 자율주행을 책임질 수 있다는 실현될 수 있을까? 이건 노벨상감 아닌가? 싶어요. 다만 라이드플럭스에서는 어떤 새로운 플랫폼이 나와도 그 누구보다 빠르고 단기간 내에 소프트웨어를 만들 수 있도록 하는 것이 목표가 될 수 있을 것 같아요. 

성주님: 많은 난관이 있겠지만, 믿고 탈 수 있는 자율주행차를 만드는 것이 목표입니다.


성필님: 굉장히 동감합니다.. 은퇴하기 전에 무인 가즈아~!


 

10. 마지막으로 하고 싶으신 말씀이 있으신가요?  


광진님: 중희님 존경합니다. 


일호님: 이 글을 읽고 가슴이 뛰었다면 주저 말고 지원해주세요! (그냥 다 지원해 주세요) 



당산과 제주의 연결_Control 유닛




긴 호흡의 인터뷰를 진행하는 동안, Control 유닛 분들의 진지함 그리고 차량의 안전을 위해 정말 치열하게 하루하루를 보내고 계신다는 것을 엿볼 수 있는 시간이었습니다. 


차량의 ‘안전’ 그리고 ‘편안함'을 위해 더 엄격한 시선으로 다양한 문제들을 해결해 가는 Control 유닛의 이야기를 들어봤는데요. 다음에는 또 어떤 유닛의 인터뷰가 기다리고 있을까요? 

많은 기대 부탁드립니다!




브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari