ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Torc] 자율주행차 짱이네
    카테고리 없음 2020. 2. 3. 16:58

    >


    접어드는 올해 초에 자율 주행 자동차 엔지니어가 사용한 소프트웨어에 대해서 정리한 글을 2회에 걸쳐서 소개하 옷슴니다. 많은 분들이 지속적으로 접속하시는 걸 보면 자율주행 소프트웨어에 대해 관심이 많다는 소견이 나옵니다. 하지만 실제로 관련된 정보를 찾기는 쉽지 않습니다. 그때도 이런 부분에 대해서 도움이 되었으면 하는 소견으로 정리한 기억이 납니다.이번에는 Torc라고 하는 자율주행 기술을 개발하고 있는 스타트업에 자율주행차 엔지니어에 대해 소개해 드리도록 하겠습니다. 자율주행차 개발을 위한 채용에 대한 내용을 소개한 글입니다. 그럼에도 불구하고 제가 선정한 이유는 아직 낯선 자율주행차 개발에 대한 저희 스스로 정세에 있어 자율주행차 엔지니어가 되고 싶은 분들에게 작은 안내가 되지 않을까 싶어 소개드립니다.​의 원문은 총 3편으로 자신 느타서 작성된 글이지만, 나의 개인적 판단으로 Part 2, 3천 소개 드리겠습니다. 비록 시라도 Part를 알고 싶으신 분은 아래 첫 번째 참고자료에서 확인하실 수 있습니다.​


    Part 2:소프트웨어 기술(Software Skills)


    >


    이 블로그의 시리즈 중 Part1에 우리는 자율 주행 자동차 엔지니어가 되기 위한 당신의 여정을 시작하는 방법에 대해서 다루었습니다. 목하, 여러분은 교통의 미래를 창조하는 팀에서 여러분의 위상을 확고히 하기 위해 어떤 코딩 언어와 소프트웨어를 배우는지 궁금해질 것이다.보고 – 소견하고 – 행동하고(See – Think – Act), 시내 거리를 운전하며 수백 피트 앞 도로변에 천천히 접근하는 보행자를 발견하는 상상해보세요. 그들이 아직 횡단보도에 들어가지 못한 동안 당신은 그들이 마르기 시작할지도 모른다고 예상하면서 브레이크에 발을 놓습니다. 당신의 길이 교차할 때, 그 사람은 길을 건넌 당신을 위해 과인아 갑니다. 앞서서 준비가 된 당신은 멈춰서서 그들이 와인에 갈 수 있다는 점을 용서할 것. ​ 우리의 end-to-end급 4자율 주행 시스템은 사람 운전자와 같은 방식으로 의사 결정 과정을 모방하기 위해서 만들어졌습니다:보고 –의 소견하고 – 행동하고(See– Think– Act)​ 이것은 우리가 보행자를 "인지(see)"센서에서 센서 데이터를 모아 사람과 식별하는 알고리즘에 이르기까지 모든 것을 실현합니다라고 말하는 것을 의미하는 것이다. 정지, 감속 또는 운전을 계속할지의 결정과 행동은 시스템 자체에 프로그래밍된 동작에 근거한 것이다.이와 같은 간단한 시과인리오는 환경(비, 눈), 다른 트래픽(누군가 방향전환하는지?)이나 경로결정 등을 고려하면 매우 복잡해집니다. 우리는 다양한 기술을 가진 팀이 도로에서 조우하는 다양한 종류의 귀취를 다루는 강력한 시스템을 만들기를 요구할 것이다. 우리 팀(Our Teams) 능동적인 감지 및 정보의 융합(Active Sensing and Information Fusion) - 능동 감지팀은 센서 데이터를 활용하여 알고리즘을 발생시켜 Torc의 자율주행 시스템용 물체를 감지 및 식별하고 시스템이 있을 때 차량 주변 환경을 이해하고 반응할 수 있도록 한다.기계학습(Machine Learning) - 기계학습팀은 원시 센서 데이터와 함께 제공할 수 있는 것보다 더 자세히 볼 수 있는 특정 물체를 식별하기 위해 시스템을 학습합니다. 예를 들어 우리는 교통신호를 식별하고 보행자와 가로등의 차이를 정하는 방법을 우리 시스템에 알려주기 위해 기계학습을 사용할 것이다.​의 지도 제작 및지화(Mapping and Localization)– 자율 주행 차량 지도는 인간의 이동을 사용하는 1조 같은 지도보다 훨씬 더 구체적이어야 한다는 것이다. 우리의 지도 팀은 3D환경을 개발하고 자율 주행 차를 운행하고 시스템이 목적지에 어떻게 도착하는지 알 수 있도록 현지 팀과 협력할 것이다.행동이나 의도(Behaviors and Planning)– 행동팀은 차량이 어떤 귀추이로 어떻게 행동해야 하는지에 집중하는 것이다. 예를 들어 혼잡한 고속도로에서 합류하려면 차량이 교통 흐름으로 끼어들기(zipper)할 수 있는 좋은 지점을 정하고 이를 안전하게 달성하기 위해 가속도를 조절할 필요가 있다.기계(Mechanical) - 기계팀은 차량설계 개념을 만들어 센서, 장착, 컴퓨터를 차량에 통합한다.시스템 통합(System Integration) - 구성요소가 개별적으로 잘 동작할 뿐만 아니라 시스템으로서도 잘 작동하도록 하는 것이 팀의 중요한 역할입니다. 시스템통합팀은 전체 구성요소 수준의 상호작용을 연구한다.임베디드, 제어 및 전기(Embedded, Controls, Electrical) - 이 팀은 소프트웨어를 전체 구성요소 시스템에 통합하여 가속, 제동 및 조향 등 차량을 제어하는 전기시스템으로 작업한다.DevOps – DevOps 팀은 소프트웨어 배포를 관리하고 기술 인프라를 유지하기 위해 작업한다.안전 및 테스트(Safety and Testing) - 안전은 자율주행 시스템의 주요 목표이며 따라서 안전 및 테스트 엔지니어는 개발의 모든 단계에서 매우 중요할 것이다. 안전 및 테스트팀은 모든 팀에 대한 안전 프로토콜과 습관을 표준화 할 뿐만 아니라 새로운 기능을 테스트 및 검증할 수 있도록 노력할 것이다.어떻게 준비해야 할까? 우리는 Torc 엔지니어들에게 어떤 소프트웨어 기술과 경험이 그들이 우리 AV 팀에서 그들의 전문 분야에서 성공하는데 도움이 되었는지 물었습니다.​


    >


    C++는 '속을 보다(pop the hood)' 메모리 관리에 깊숙이 접근할 수 있는 성능 지향 언어입니다. 만약 어떤 지원자가 제대로 된 C++와 로봇 OS 기술을 갖고 있다면 그들은 이미 로봇 공학 엔지니어입니다. 지도 제작 및 지면화 엔지니어가 되게 한 것을 sound또한 1조 같은 좌표 변환과 3D기하학을 이해해야 한다. 후보자가 SLAM(동시 현지화 및 지도 제작)과 함께 1 합니다.면 이 역할에 아주 적합한다.


    >


    DevOps 팀은 소프트웨어 개발과 시스템 관리의 통합과 기술을 요구합니다. 우리는 차량 컴퓨팅에 대한 소프트웨어 배포를 관리하기 위해 Torc에서 고란 기술을 사용합니다. 리눅스 컴퓨터를 적절하게 감독하고 관리하는 것은 역시 하나의 시스템을 자동화, 견고하게 만드는 중요한 기술입니다.우리는 우리 차량에 매우 복잡한 네트워크를 사용할 예정입니다. 좋은 네트워크 디자인을 설계하고 복잡한 디자인을 디버깅할 수 있는 것은 우리 업무에 필수입니다.DevOps 팀원들이 프로세스를 자동/반복하는데 사용하는 한가지 반적인 기술은 Config Management 및 Continuous Integration 파이프라인입니다. 개발자가 소프트웨어를 작성하고 수동으로 컴패니언 한 후 수동으로 컴퓨터에 복사(그렇게 해서 나쁘지는 않으므로 수동으로 구성)하는 대신 우리는 자동화를 사용하여 가능한 한 인간에러가 발생할 가능성이 거의 없는 상태에서 소프트웨어를 제작, 설치, 구성하도록 합니다.


    >


    하드웨어 설계 분야에서 알아야 할 가장 유용한 소프트웨어는 다양한 CAD(Computer Aided Design)와 시뮬레이션 패키지이다. 이들은 이 기술을 작동시키는 하드웨어를 만들기 때문에 매 1사용됩니다. 가장 유용한 코딩 언어는 Python과 MATLAB이다.하드웨어의 초점은 실시간 코드의 효율성이 아니라 데이터 조작 및 시간화에 대한 것이다.​


    >


    C++는 객체지향 프로그래밍과 저준위 메모리 조작을 전체 지원하는 컴퍼 하나가 된 프로그래밍 언어입니다. 자주 사용한 C++코드는 매우 빠르게 확장할 수 있기 때문에 Torc는 C++를 사용하여 자율성을 강화합니다.지원자는 코딩 표준에도 익숙해져야 합니다. 산업코드 표준은 랜타이더에 잠재적으로 안전하지 않은 버그를 말할 수 있는 특정 코딩 관행을 금지합니다. 고란 제약조건을 적용함으로써 코드는 보다 안전하고 휴대할 수 있고 신뢰받을 수 있도록 만들어집니다. MISRA 코딩 표준은 공개되어 있어 문서가 어려워지고 있지만 핵심적인 아이디어는 아주 쉽게 배울 수 있습니다.


    >


    자율주행행동은자동차, 보행자나자전거같은다른많은개체가있다는점을고려해서도로에서차가어떻게행동해야하는지에대한높은수준의의사표결에서중요한역할을합니다. 이와 같이 다른 실태를 다루고 필요한 안전 알고리즘을 개발하려면 차량의 운동학 및 역학이 도로에서의 움직임에 어떤 영향을 미치는지 잘 이해할 필요가 있습니다. Torc에서 일하는 것이 재미있는 점은 댁의 작업이 결코 하과의 요소에 한정되지 않는다는 것입니다. 차량의 액튜에이터를 제어하는 차량 인터페이스와 같은 다른 구성요소에 대해 작업할 수 있습니다. 이 다양한 작업을 위해 제어 알고리즘을 이해하고 제어 루프를 개발하고 튜닝한 경험을 갖는 것이 좋습니다.무엇보다 그냥 물어보는 질문은 '이 기술에 대해 어디서 배울 수 있는가?' 입니다. 댁이 놀 수 있는 시뮬레이터는 아주 많이 있어요. 새로운 개를 탐구하는 것은 항상 즐겁고, 댁이 원하는 대로 시뮬레이터를 운전할 때 다른 종류의 만족감을 가지게 됩니다. 이런 시뮬레이터를 통해 실전 경험을 하고 몇 가지 제어 알고리즘 또는 자율주행 동작을 개발하는 것은 좋은 시작입니다. 또한 자율주행에 관심 있는 동료들과 소통하세요. 개인적인 경험으로 볼때 그룹프로젝트에서 일하며 다른사람에게 배우는 것이 새로운 기술을 이해하는데 큰 도움이 된다고 스토리를 하고 싶습니다.​


    Part 3:코딩을 넘어(Beyond Coding)​


    >


    자율주행차는 우리가 알고 있는 운송수단에 혁명을 가져오는 현실성을 가지고 있습니다. 이 기술은 또, 공학 분야에서 새롭고 흥미로운 하나의 일자리를 창출하고 있습니다. 이 블로그 시리즈 중 Part 하나에서 우리는 이 분야에서 일을 찾기 시작하는 비결에 대해 설명했습니다. 2부에서는 AV엔지니어링 분야의 틈새를 찾기 위해서 배워야 할 가장 중요한 코딩 언어에 대해서 예기했다. 이 시리즈의 마지막 블로그는 정의하기 어려운 성공지표, 즉 개인개발에 관한 것입니다.자율주행차는 말 그대로 소프트웨어로 움직인다. 코드보다 더 중요한 것은 어떤 것입니까?자율주행차를 만드는 인적 요소를 무시할 수 없습니다. 로봇공학 뒤에는 기술에 대한 열정이 있고 세상을 더 본인으로 만드는 사람들이 있습니다. 자율주행시스템을만드는것은신속히진행되는환경에서하나와복잡한도전에대해동료들과협력하고아무도이전에해결하지못했던사고에대한해결책을만드는것을의미합니다. 이런 종류의 하나는 흥미진진하고 단순한 코딩방법 그 이상을 필요로 합니다.Torc에서는 좋은 프로그래머만 고용하는 것이 아닙니다. 우리는 훌륭한 일을 이루기 위해 일관된 추진력을 가진 사람을 찾고 있습니다. 우리는 자아(ego)가 팀워크에 방해가 되지 않도록 하는 사람을 찾고 다양한 그룹과 소통하는 비결을 이해합니다.우리는 이러한 중요가치를 Hungry, Humble, PeopleSmart라고 부릅니다.우리는 Torc 엔지니어들에게 코드를 넘어 코딩 능력만큼 중요한 기술을 발견했고, AV산업에서 한가지 하는 것에 대한 그들의 기대가 현실과 어떻게 다른지 설명해 줄 것을 요청했습니다.​


    >


    코딩은 아마 개발에 들어갈 실작업의 첫 부분에 불과할 것입니다. 어떤 것을 타이핑하기 전에 이미 많은 시간이 해결되어야 할 의문의 집합에 적합한 구조를 찾는데 소요됩니다. 어떤 구성 요소에서도 어려운 조건하에서 차량을 주행하기 위해 전체 시스템과 상호 작용해야 합니다. 이를 가능하게 하는 첫 번째 요인은 통합에서부터 모든 개발 단계에 이르기까지 팀 간의 첫 번째 소통입니다.이 분야에서 흔히 볼 수 있는 고정관념은 그들의 분야를 두루 알고 있는 '반사회적 천재' 중의 하나입니다. 자율주행 업계에서는 여전히 탐구해야 할 질문이 많아 아무도 답을 모릅니다. 답을 모른다는 불쾌한 생각에 아주 편안한 것은 제가 쓴 최고의 자산입니다. 교실에는 답을 틀리는것에 대한 큰 벌칙이 있고, 이것은 학생들이 절대 위험(위험)을 감수하지 않도록 합니다. 이 업계에서, 질문하는 것은 결코 입니다 천천히 하지 않을 것입니다. 제 경험으로는 지식이 많은 사람들은 나이를 상하게 하지 않는 주제에 대해 이 스토리를 항상 나쁘게 생각하지 않을테니 물어보세요! 이 분야에 진출하려고 노력하는 사람에게 제가 하는 조언은 실패를 할 준비가 되어 있다는 것입니다. 많은 실수를 할 준비가 되어 있어야 합니다. 한 번도 실수한 적이 없다면 장 스토리에서 새로운 시작을 한 적이 없습니다. 거대한 복잡한 의심처럼 생각할 수 있는 건 늘 스스로 평가하고 고칠 수 있는 첫사랑의 작은 시스템입니다. 네트워킹, 하드웨어, 전기 또는 프로그래밍의 의문을 분리하여 해결할 수 있는 사람은 이미 우리와 같은 기술을 개발하는 데 자산입니다.​


    >


    코드를 넘어 가장 중요한 기술은 야망, 추진력, 협업입니다. 우리의 많은 성공은 우리 팀이 모두 함께 일하는 방식에서 과인이 됩니다. 뭔지 모르면 팀끼리 힘을 합쳐 답을 찾아요. 이는 우리의 야망과 연결돼 해결책을 모르고 있다가 문제를 해결하는 창의적인 방법을 찾았을 때 그 사건을 파헤치려고 노력한다.일반적으로, 우리는 단순히 기술적인 전문 지식을 요구하는 것이 아니라, 당신이 팀의 일원이 되기를 원한다. 올바른 기술을 가지는 것은 좋지만, 그룹과 모두가 일을 하는데 있어서 필요한 사람들의 기술을 가지는 것도 매우 중요하다. 개인주의자가 될 수도 있고 훌륭하지만, 우리의 근무 방식과 토크 성공은 팀 내에서 일하는 데서 찾아옵니다. 기술적 측면과 인품의 균형을 잡고, 다른 사람과의 관계를 맺는 것은 이상적인 Torc를 실현한다.


    >


    기술정보와 비기술정보를 효과적으로 전달하는 능력은 제가 Torc에서 성공할 수 있도록 도와준 가장 중요한 기술 중 제 자신입니다.제가 일반적으로 현실(real-world) 하나로 기대했던 것은 제가 기계 안에서 톱니바퀴가 되어 같은 하나를 반복하도록 묶여 있을 것이라는 것이었습니다. Torc는 자신에게 다양한 종류의 문제에 대해 하나 하게 해주었고 제가 얻을 수 있으리라고는 상상도 못했던 실제 경험을 시켜주었습니다.


    >


    미래 지향적인 사건과 커뮤니케이션은 이 분야에서 하나에 필요한 2가지 중요한 기술입니다. 아이디어를 가지고 그것을 달성하기 위한 작전을 제시하고 복잡한 목표를 간단한 주제로 바꾸는 방식으로 의사소통할 수 있다는 것은 업무에서 매우 강력할 것이다.저는 지난달 커팅 엣지(cutting edge)가 이미 수정되어 개선되고 있는 끊임없이 변이하는 산업 중 하나가 되기를 기대했습니다. 이것은 사실로 밝혀졌습니다. 여기 Torc의 결과는 모두가 끊임없이 서로를 배우고 돕는 아름다운 문화입니다. 그것은 가장 추진력이 있는 사람들이 내 기술의 전문의가 될 수 있는 무한한 기회를 제공하고 회사의 방향에 실질적인 영향을 미친다.​​


    >


    의사소통기술은이분야에서가장많은사람들을지원하는비기술적인자질입니다. 다른 중요한 자질은 겸손과 추진력입니다. 당신은 세계 최고의 프로그래머가 될 수 있지만 겸손해지지 않고 저를 몰아갈 수 있는 추진력을 갖추지 않으면 멀리 갈 수 없을 것입니다. 과인이 최고라고 소견하면 안일해져 금방 밀고, 과인은 남에게 다소 그늘져 버립니다.결국, 당신은 당신의 분야에서 가장 현명한 사람 중 한 사람이 될 수 있지만, 또한 당신이 하고 있는 일에 대해서도 열정적이어야 합니다. 자율주행 분야에서 일하는 것이 열정이라면 그것을 실현할 수 있는 노하우를 찾을 수 있을 것입니다.​기 Torc는 2007년 DARPA Urban Challenge에 참여한 팀이 기반이 되고 하나 0년 이상 자율 주행 차를 개발하고 있는 작은 기업입니다. 그 때문에 20하나 9년 3월 Daimler Truck에 인수될 정도로 기술력을 인정 받고 있는 작은 기업입니다. 그런 작은 기업에서 자율주행차 개발에 필요한 엔지니어에 대해서 소개를 하는 글이었습니다. 하나 0년 이상의 기간 동안 자율 주행 자동차의 개발을 하고 있어 소프트웨어 가운데 개발을 왔으니 어 떤 정도 자율 주행 차 개발에 대한 프로세스는 갖추지 않을까 생각합니다.이글을통해서자율주행차개발에필요한분야와그분야에서필요한소프트웨어엔지니어의역량을파악할수있었던것같습니다. 또한 단순히 기술적 능력과는 별개로 스타트업이라는 특성을 보여주는 엔지니어가 갖춰야 할 인간적인 부분까지 소개하고 있습니다.요즘은 반말 자율주행차에 대해 흥미롭지만 몇 년 전까지만 해도 관련 일을 하는 사람이 만과인기는 어려웠을 것입니다. 당시엔 최근보다도 더 관련 정보와 기술을 찾기 힘들었다고 소견합니다. 하지만 현재 상황도 크게 다르지 않다는 것을 이번 문장에서 확인할 수 있습니다. 자율주행차라는 낯선 물건에 접근하는 방법은 기존의 정해진 틀로는 만들어지기 어렵다는 것을 설명하고 있습니다. 그것을 극복하기 위해서 정열과 겸손함으로부터 과오는 협력하므로, 지속적인 지적 탐구를 자율 주행차 개발 엔지니어가 가져야 할 덕목으로서 이 스토리를 실시하고 있습니다. 이런 스토리는 안정된 시스템이 존재하는 큰 작은 기업에서는 쉽지 않을까 하는 소견을 합니다. 스타트업이 가지고 있는 절박함을 좀처럼 찾을 수 없습니다.만약시에서도자율주행에관심이있는분들이이글을읽는다면실제로현장에서필요한것이어떤것인지에대해서생각해볼수있는스토리가아닌가생각합니다. 그래서 실패를 인정하고 앞으로의 단계를 위해 필요한 비용으로 인정받는 분위기가 조성되는 문화도 함께 확산되면 좋을 것 같습니다.저는 자율주행차는 소프트웨어라고 믿는 사람이에요. 그만큼 기존의 하드웨어 한가운데 있던 자동차를 소프트웨어가 그 자리에 차지하는 것으로 소견하고 있습니다. 자율주행차는 자동차 자체보다 그것이 포함되는 미래의 교통환경에서 변화시키기 때문입니다.앞으로 저희 과인라 자율주행차를 개발하시는 많은 엔지니어분들에게 격려하겠습니다.​ ​ 하그와잉 우리 그와잉라의 자율 주행 차 스타트 업 CODE42의 CDOE42 Way도 함께 소개하고 싶습니다.


    그래서 자율주행 엔지니어를 위한 소프트웨어를 정리한 내용도 시작부터입니다.


    PS: 검색에서 보시고 원하시는 스토리를 찾지 못하셨을 경우, '태그' 또는 '검색'을 해보면 더 많은 자료를 찾을 수 있습니다. 그래도 찾으시는 문의사항이 있으시면 저에게 연락주시면 (이메일, 메시지) 제가 알고 있는 범위 내에서 도와드리겠습니다. 부담 갖지 않으셔도 됩니다.Over the Vehicle!!!참고 자료



    댓글

Designed by Tistory.