ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 자율주행차 엔지니어가 사용하는 소프트웨어는 무슨일까? <Part 일> 볼까요
    카테고리 없음 2020. 2. 7. 10:40

    >


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


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


    >


    모든 유형의 엔지니어가 이런 종류의 모든 차량을 제작하는데 도움이 되는 수백개의 툴이 있습니다. 이런 수단은 그 뒤 글에서 다루지 않지만, 이 명단이 모두 포함한 적이 없어 매 1세로 프게츠ー루이 추가되는 것을 잊지 않고 파라프입니다.​ 정보 수집의 비결 엔지니어들이 자율 주행 자동차를 개발하는 데 사용하는 다양한 도구의 소개를 하기 때문에 우리는 28개의 자율 주행 자동차를 생산하는 기업을 인터뷰했고 이후 31개 명칭으로 자율 주행 자동차에 대한 "엔지니어링"는 "개발"와 유사한 모든"컨트롤러"페이지의 항목을 조사했습니다.Tesla Motors - 전기차 제조 중소기업 Uber Advanced Technology Group장거 장거리(Long Haul) 및 Commercial(상용) 기술의 자율주행 OTTO Motors(Division of Clearpath)—산업용 자율주행차 제조중소기업 NIO—COTA 주변에서 가장 빠른 전기차량과 가장 빠른 자율주행 Lap을 재공 Cruise Automation amive math Matham Outomation ammarpath Moth Math otnalives Batholnologies 自律nologies自律nologies自律nologies自律nol自律nol 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개로 사용되면 포함시켰습니다. 10개 이상의 다른 회사에 그것이 본인에 탑승한 인면 우리는 강조하고 설명했습니다. 가장 현저하게 강조되는 소프트웨어의 몇가지 때문에 툴에 관한 간단한 설명을 포함시켰습니다. ​, 여전히 1조 같은 소프트웨어 제품과 기술을 놓친 전망이 있으므로 소교은랑에 명단을 추가해야 한다는 것을 가르치세요처럼 파라프입니다."절대로 필요한 것(The Absolute Essentials)"우선 대부분의 엔지니어가 자동 운전 차의 역할 때문에 고려해야 하는 3가지 기술을 살펴봅시다. 이미 이야기한 대부분의 소프트웨어 개발의 역할에서 이러한 요구 사항을 확인한 것으로 이들은 확실히 가지고 있어야 합니다. ​ C++:범용 객체 지향 프로그래밍 언어 C++는 1반 적으로 자율 주행 차의 온보드(Onboard)컴퓨터를 프로그래밍하는데 사용되는 프로그래밍 언어입니다. 이것은 개발 프로그램을 "오전 레벨"로 허용할 수 있기 때문에, 매우 최신 유행이 있습니다. 즉,코드를늦게실행하여본인들에게많은공간을차지하는불필요한추상화가발발발하지않도록하기위함입니다. C++ 를 사용하면 컴퓨터의 메모리를 조작할 수 있습니다. 이 메모리는 빠르고 결정적이며 반복 가능한 코드를 처리할 때 매우 편리합니다. C++는 다음의 다른 프로그래밍 언어보다 사용하기 어렵다고 볼 수 있지만, Linux, Mac 역시 윈도 컴퓨터에서 프로그래밍을 위해 가장 뛰어난 성능을 가진 하본인입니다.


    >


    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반 적으로 잘 작성된 Python코드를 보고무슨 1이 1어판인지 있는지 이해하는 것은 아주 간단합니다. Python은 수학, 과학, 데이터 시각화, 기계학습, AI, 심층학습 등을 위한 포괄적인 라이브러리가 있기 때문에 자율주행차 엔지니어들에게 매우 인기가 있습니다. Python의 단점은 그것이 거대하고 컴(1의 언어라는 것입니다. 이렇게 하면 고성능 아이플리케이션에 적합하지 않게 메모리를 소모할 수 있습니다. Python을 배우고 있다면 Numpy, scipy, matplotlib과 같은 오픈소스 툴을 탐색하는 노하우를 이해해야 합니다.


    >


    실질적으로 필요한 것(The Virtually Essentials)은 sound에서 Linux, Python및 C++에 이어가장 입개 반적인 3개 기술 요구 사항입니다. 모든 회사에서 이러한 툴을 적어도 1개의 채용 공고에 언급했으므로 이들의 툴을 기본적으로 이해할 가장 희망 포함도에프니다.로봇 운영체제(ROS) : 로봇 미들웨어 ROS는 로봇 개발을 위한 소프트웨어 라이브러리의 생태계입니다. 자율주행차는 바퀴가 달린 대형 로봇 하나밖에 없어 자율주행차 개발이 다른 것보다 쉽습니다.ROS는 몇 가지 OS를 지원하지만 Ubuntu 위에서 실행됩니다. 한편 반대로 프로그램의 ROS는 C++ 및/ 또는 Python입니다. ROS는 자율주행차에 적합한 모든 툴에 적합하지만, 자율주행차 스택을 구동하는 것은 여전히 협소한 플랫폼입니다. 업계에서는 보다 확실하고, 값싸고 확장 가능하며 전력 소모가 적은 다양한 하드웨어와 소프트웨어를 잘화할 때까지 이 툴은 1개 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을 포함하여 다양한 호스팅 서버가 있습니다. 호스팅 서버가 필요한 이유는 커뮤니티 또한 특정 팀과 코드를 쉽게 공유할 수 있는 방법을 원하기 때문입니다.채용 및 면접 과정에서 많은 회사들이 너의 Git Hub 계정을 확인해 줄 것을 요청할 것입니다. 따라서 그들은 당신이 얼마나 기쁘지 않고, 욕조함으로써 자주 코드를 개발하고 있는지를 확인할 수 있습니다. 여러분의 개발능력을 과시할 수 있는 좋은 방법입니다.


    >


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


    PS: 검색에서 보시고 원하시는 스토리를 찾지 못하셨을 경우, '태그' 또는 '검색'을 해보면 더 많은 자료를 찾을 수 있습니다. 그래도 찾는 말이 없다면 저에게 연락 주시면(대째 1, 메모)내가 아는 범위 내에서 도움이 되도록 하겟슴니다. 부담 갖지 않으셔도 됩니다.Over the Vehicle!!!참고 자료



    댓글

Designed by Tistory.