ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 자율주행차 엔지니어가 사용하는 소프 짱이네
    카테고리 없음 2020. 2. 1. 21:52

    >


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


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


    >


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


    >


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


    >


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


    >


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


    >


    MATLAB/Simulink는 완전히 다른 2개의 툴입니다만, MathWorks는 제어 시스템 설계를 위한 가장 입개 반적인 2개의 소프트웨어 플랫폼을 개발했습니다.MATLAB는 무료로 제공되며 수많은 대학 프로그램의 인기를 얻는 수치적이고 독점적인 프로그래밍 언어입니다. 공학 프로그램 학생들은 한 반에서 언어에 대한 이해를 가지고 졸업하고, 그것은 계속해서 밖에서 사용합니다. 근래에는, Python이 제공하는 수학 툴을 사용하고 있습니다. Python이 거의 동등하기 때문입니다. Python은 무료이지만 MATLAB은 흔한 도구입니다.Simulink는 모델 및 시뮬레이션을 작성할 수 있는 블록 다이어그램 기반의 그래픽 프로그래밍 인터페이스입니다. 이 툴은 자율주행차 제어시스템을 설계하고 테스트하는 데 사용되는 가장 반반적인 도구입니다. C++ 코드는 FPGA 역시 ASIC 설계에서 사용하는 하드웨어 설명 언어에 대한 어린이 이도온 툴의 시리즈가 있어 나쁘지 않은 가운데 설명합니다. Simulink를 사용하지 않는 제어 엔지니어를 찾기는 어려울 것입니다.


    >


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


    >


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


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



    댓글

Designed by Tistory.