ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 자율주행차 엔지니어가 사용하는 소프트웨어는 뭣하나까? <Part 하나>
    카테고리 없음 2020. 3. 8. 01:29

    >


    들어 이번에는 그 동안 좀 소홀히 했던 주제에 대해서 2차례 글을 쓰려고 생각한다. 제가 지금까지 꾸준히 자율주행차에 대해 소개하면서 가장 많이 줄였던 내용이 아마 자동차 시장이 하드웨어에서 소프트웨어로 옮겨갈 겁니다. 그 중에서도 교통환경으로 전향하는 소프트웨어가 가장 큰 자리를 차지할 것이라고 소개했던 것 같습니다. 그러나 모두 교통 환경의 구축을 위해서는 그 하위 레벨에서의 조건이 충족되어야만 구조적인 안정감을 가질 수 있을 것입니다. 제가교통환경을위한소프트웨어를강조하고설명한이유는전에는존재하지않았기때문에강조해서우리의것이필요하다고설명해주셨습니다.그런 환경의 깔개에는 하드웨어와 그것을 제대로 제어할 수 있는 소프트웨어가 필요할 것입니다. 이번에 소개드린 내용은 자율주행차 개발을 위해 필요한 소프트웨어는 종류가 있고, 그것이 가진 사용빈도별로 정리해서 자율주행차 개발을 위해 막연히 감정하고 있는 부분에 작은 이정표가 되었으면 좋겠다는 생각으로 소개드리고 있습니다.이번에 소개된 주제는 관심 없는 분이 계실지도 모르겠지만 자동 운전 차가 미래에 나타난다는데 무엇을 공부하고 관심을 갖고 있어야 하는지 알고 싶은 분이 계실지도 모르므로, 2일에 걸쳐서 소개하기로 결정했어요. 똑같은 때를 투자하더라도 조금이라도 실제 실무에서 사용하는 툴에 대해 알아가는 것이 더 현명한 투자가 아닐까. 제가소개하는것이우리나쁘지않다의실정에얼마나나쁘게맞을지는모르겠지만자율주행차시장이우리나쁘지않다보다는외국인이더크기때문에외국의영향을받지않을까생각합니다. 여기서 소개하는 것은 전 세계의 아주 나쁘지 않고, 많은 소프트웨어 툴을 다 소개할 수는 없습니다. 하지만 어느새 감정할 수 있는 첨가는 막연함에 작은 촛불 같은 기회를 가질 수 있는 안내문이 되었으면 합니다.이미말씀드렸듯이이번에소개하는글은자율주행차개발을위한소프트웨어를소개하고정리하는글이기때문에깊은내용을기대하면안될것같습니다. 문장을참고하면서관련된소프트웨어에대해서조금관심을갖고찾아보는것이라고생각합니다.스토리가 좀 길어질 수도 있지만 그냥 가볍게 읽으면서 소프트웨어의 흐름을 이해해 주셨으면 합니다.


    자율주행차 엔지니어가 되고 싶으세요? 아니면 이미 다른 기술을 익힐 수 있는 방법을 찾으시나요? 이 글은 엔지니어가 자율주행차를 제작하는 데 사용하는 다양한 소프트웨어 툴에 대한 소개를 공급하기 위한 것이다. 자동 운전의 세계에서는 무엇을 하고 싶은지에 의해서 이들 중 1부는 다른 것보다 관련하고 있을 가능성이 있습니다. 하나의 주제를 너무 깊이 관찰하는 것이 아니라 자율주행 소프트웨어 환경을 전체적으로 파악하려고 할 것입니다.소개자율주행차를 만드는 것은 복잡하죠. 엔지니어가 자율주행을 위해 기존 차를 개조하든, 혹은 아내 소음부터 자율주행차를 제작하든 해야할 일이 많습니다. 차량 내부의 하드웨어에 2억 5천만개 이상의 코드를 프로그래밍해야 할 뿐만 아니라 자율 주행 차의 소프트웨어 및 하드웨어를 개발, 구축, 최적화 및 관리하므로 모든 프로그램, 도구 및 플랫폼을 찾아야 합니다.하지만 모든 자율주행차가 동일하지는 않고 다양한 형태의 AV는 다른 도구를 사용해 개발합니다. 이들 각 카테고리에는 특정 목적에 따라 다른 설계 요구사항이 있습니다.​


    >


    모든 유형의 엔지니어가 이 모든 차량을 제작하는데 도움이 되는 수백개의 툴이 있습니다. 이 툴들은 조금의 글로 다 다루는데 이 목록이 모든 것을 포함하는 것이 아니라 매일 새로운 툴들이 추가된다는 것을 잊지 마십시오.​ 정보 수집의 비결 엔지니어들이 자율 주행 자동차를 개발하는 데 사용하는 다양한 도구의 소개를 하기 때문에 우리는 28개의 자율 주행 자동차를 생산하는 기업을 인터뷰하고 다소리 31개 명칭으로 자율 주행 자동차에 대한 "엔지니어링"또는"개발"와 유사한 모든"컨트롤러"페이지의 항목을 조사했습니다.Tesla Motors - 전기차 제조 대기업 Uber Advanced Technology Group장거 장거리(Long Haul) 및 Commercial(상용) 기술의 자율주행 OTTO Motors(Division of Clearpath) 産業 산업용 자율주행차 제조업체인 NO-COTA 주변에서 가장 빠른 전기차량과 가장 빠른 자율주행 Lap 제공 Cruise Automation ut Outomation Outomation amive math atmath 구math 구math 구math 구nalars 및 자율배달로봇 산업편의 및 자율배달로봇 및 자율배달로봇 및 자율주행 로봇, M Starsky Robotics– 자율 주행 트랙 기술 Zoox— 자율 주행 택시 FleetEmbark Trucks— 자율 주행 트랙 기술 Torc Robotics– Maris인접 mbles인접 mbots인접 nals– nals인접 mbotics인접 mblt Robotics—, 자율형 실내 로봇 Aptiv—, 자율 주행 기술과 인프라 Lyft Level 5—, 자율 주행 자동차 기술 nuTonomy(Delphi Automotive)—, 자율 주행 자동차를 위한 Full Stack소프트웨어 Auro—, 자율 주행 셔틀 Argo AI—, 자율 주행 자동차 기술 Aurora—, 자율 주행 자동차 기술 Apollo Auto(Baidu)  —, 자율 주행 소프트웨어 및 기술 Faraday Future— 전기 자동차 제조 대기업 Zenuity—, 자율 주행 자동차 기술 ​ 소프트웨어 도구 3개로 사용되면 포함시켰습니다. 10개 이상의 다른 회사에 그것이 그와잉타 나 면 우리는 강조하고 설명했다. 가장 두드러지게 강조되는 소프트웨어 몇 가지를 위해 툴에 대한 간단한 설명을 담았습니다.여전히 일반적인 소프트웨어 제품과 기술을 놓친 기회가 있으니 의견란에 목록을 추가해야 함을 알려주시기 바랍니다."절대로 필요한 것(The Absolute Essentials)은 정말 대부분의 엔지니어가 자동 운전 차의 역할 때문에 고려해야 하는 3개 기술에 대해서 살펴봅니다. 이미 말한 정말로 거의 모든 소프트웨어 개발의 역할에서 이러한 요구사항을 확인했으므로, 이것들은 반드시 가지고 있어야 할 것이다.C++: 범용 객체 지향 프로그래밍 언어 C++는 일반적으로 자율주행차의 온보드(Onboard) 컴퓨터를 프로그래밍하는 데 사용되는 프로그래밍 언어입니다. 이것은 개발 프로그램을 "오전 레벨"로 허용할 수 있기 때문에 매우 유행가가 있습니다. 즉, 코드를 늦게 실행하여 지나치게 많은 공간을 차지하는 불필요한 추상화가 발생하지 않도록 하기 위해서 입니다. C++ 를 사용하면 컴퓨터의 메모리를 조작할 수 있습니다. 이 메모리는 빠르게 결정적이고 반복 가능한 코드를 처리할 때 유용할 것이다. C++는 아래에 설명한 다른 프로그래밍 언어보다 사용하기 어렵다고 볼 수 있지만, Linux, Mac 또는 Windows 컴퓨터에서 프로그래밍을 위해 가장 뛰어난 성능을 가진 하과인입니다.


    >


    Linux: 오픈 소스 운영 체제(Open Source Operating Systems) 리눅스(Linux)는 다양한 기능을 가지고 있지만, 일반적으로 자율주행차 엔지니어를 위한 운영 체제입니다. 이는 "bloatware"에 소비되지 않고 사람과 도구로 구성된 대규모 오픈소스 커뮤니티가 있기 때문입니다.가장 흔히 볼 수 있는 두 버전의 Linux는 자율주행차 개발을 위한 툴과 함께 잘 작동하는 Ubuntu와 RTO(Real-Time Operating System) Linux의 표결론적 버전인 embedded Linux입니다. 만약 Ubuntu Machine 시스템이 아직 없는 경우에는 Ubuntu를 사용하기 위해서 VM을 설치하고 이를 사용하는 것을 추천합니다. 여러분은 또한 Ubuntu 터미널을 통한 Command Line 프로그래밍에 대해 매우 잘 알고 싶습니다.


    >


    Python : 고도 프로그래밍 언어 파이슨은 쉽게 선택할 수 있고 이를 위한 툴을 지속적으로 개발하는 오픈 소스 커뮤니티를 가지고 있어 매우 유명해졌습니다. 1개 1 세게 작성된 Python코드를 보고무슨 1개 1개어과인지 이해하는 것은 매우 간단합니다. Python은 수학, 과학, 데이터 시간화, 기계학습, AI, 심층학습 등을 위한 포괄적인 라이브러리가 있기 때문에 자율주행차 엔지니어에게는 매우 지나친 유행이 있습니다. Python의 단점은 그것이 거대하고 컴퍼 하나가 된 언어라는 것입니다. 이를 통해 고성능 애플리케이션에 적합하지 않게 메모리를 소모할 수 있습니다. Python을 배우고 있다면 Numpy, scipy 및 matplotlib와 같은 오픈 소스 툴을 탐색하는 비결을 이해해야 한다.


    >


    실질적으로 필요한 것(The Virtually Essentials)는 앞으로 Linux, Python및 C++에 이어가장 입개 반적인 3개의 스킬의 요구 사항이다. 모든 회사에서 이 툴들을 적어도 하나의 채용공고를 언급하고 있기 때문에 이 툴들을 기본적으로 이해하는 것이 가장 좋습니다.로봇 운영체제(ROS): 로봇 미들웨어 ROS는 로봇 개발을 위한 소프트웨어 라이브러리의 생태계이다. 자율주행차는 타이어가 달린 대형 로봇 하나밖에 없다 보니 자율주행차 개발이 다른 것보다 더 쉽습니다.ROS는 몇 가지 OS를 지원하지만 Ubuntu 위에서 실행됩니다. 한편 반적으로 프로그램 ROS 는 C++ 및/또 Python 이다. ROS는 자율주행차에 적합한 모든 툴에 적합하지만, 자율주행차의 스택을 구동하는 것은 여전히 협소한 플랫폼이다. 업계에서는 보다 확실하고, 값싸고 확장 가능하며 전력 소모가 적은 다양한 하드웨어와 소프트웨어를 보통화할 때까지 이 툴은 1개 반적으로 "테스트 툴(prototyping tool)"과 있을 것이다.당분간 ROS를 알아야 자율주행차를 개발할 수 있어요. 다행히 여러분은 환상적인 Wiki에서 Ubuntu Machine(또는 VM)에서 다운로드 받으실 수 있습니다.​


    >


    ​ MATLAB/Simulink완전히 다른 두개의 도구인데, MathWorks는 제어 시스템 설계를 위한 가장 1반과 같은 두개의 소프트웨어 플랫폼을 개발했습니다..MATLAB은 free로 재공되어 수많은 대학 프로그램의 요즘 유행을 얻는 수치적이고 독점적인 프로그래밍 언어입니다. 공학 프로그램의 학생들은 1반 적과 언어에 대한 이해를 가지고 졸업을 해서, 그러므로 그것은 계속 밖에서 사용하는 것이다. 근래에는 Python이 재공하는 수학 툴을 사용하고 있습니다. Python이 약간 동등하기 때문입니다. Python은 free입니다만, MATLAB는 아직 많이 있는 툴입니다.Simulink는 모델 및 시뮬레이션을 작성할 수 있는 블록 다이어그램 기반의 그래픽 프로그래밍 인터페이스입니다. 이 도구는 자율 주행 차의 제어 시스템을 설계 및 시험하는 데 사용되는 가장 1조 같은 도구입니다. C++ 코드 또는 FPGA 또는 ASIC 설계에서 사용하는 하드웨어 설명 언어에 대한 아기도온 툴의 시리즈가 있으며 내 안에 이를 설명합니다. Simulink를 사용하지 않는 제어 엔지니어를 찾기는 어려울 것입니다.


    >


    Git : 버전 제어 소프트웨어를 개발할 때는 다른 사람이 본인의 작업을 확인하고 본인이 만든 것을 빌드할 수 있도록 다른 곳에 넣어야 합니다. 만약 여러분 팀이 업무량을 본인 확인한다면 그들은 결국 그 코드를 함께 병합할 장소와 과정도 필요할 것입니다. 이쪽에서 버전 제어 소프트웨어가 본인입니다. Git는 오픈 소스 특성상 자율주행차 기업의 버전 제어 및 소스 코드 관리를 위한 가장 트렌드 있는 도구라고 생각합니다.Git에는 소프트웨어 개발 관리를 위한 가장 트렌드 있는 Git Hub을 포함하여 다양한 호스팅 서버가 있습니다. 호스팅 서버가 필요한 이유는 커뮤니티 또는 특정 팀과 코드를 쉽게 공유할 수 있는 비결을 원하기 때문입니다.채용 및 면접 과정에서 많은 회사들이 너희들의 Git Hub 계정을 확인해 줄 것을 요청할 것입니다. 그래서 그들은 당신들이 얼마나 본인 욕구를 가지고 있기 때문에 자주 코드를 개발하는지 확인할 수 있습니다. 여러분의 개발능력을 과시할 수 있는 좋은 비결입니다.


    >


    결론이기 때문에 기본을 다뤘습니다. 다음 글에서는 당신이 추구하는 역할 유형에 따라 필요한 다양한 툴에 대해 설명하겠습니다.새치기=이번 글에서는 자율주행차 개발에 필수적인 소프트웨어 도구에 대한 안내였습니다. 관련된 1개를 가지고 계신 분은 잘 아시는지 모르지만 아내 sound를 접하는 분도 있을 것이라 생각합니다. 제가 쓰기에서 각각의 툴에 대해서 언급하기보다는 글을 읽는 분들 각자가 필요한 내용들을 정리하는 기회가 됐으면 하는 내용을 쓴 것처럼 나이가 필요했지만 몰랐던 내용들이 있을 수 있습니다. 필수 도구라고 소개했으니 관심을 가져주셨으면 합니다. Part 2에서는 자율 주행 자동차 개발의 다양한 영역에서 사용되는 다양한 툴을 소개하는 것입니다. 어떤 분들은 혹시 그 주제보다 더 관심이 있을지도 모르겠네요. ■ "자율주행 엔지니어가 쓰는 소프트웨어는 뭐 하나? "은 이하의 연결로 갈 수 있어요.


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



    댓글

Designed by Tistory.