ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 자율주행차 엔지니어가 사용하는 소프트웨어는 무엇1까? <Part 2> 볼께요
    카테고리 없음 2020. 2. 11. 22:41

    >


    들어가는 이번 글은 Part 1에서 소개한 자율 주행 차 개발에 필요한 기본적인 소프트웨어에 이어약간 세분화하고 자율 주행 차 개발 분야별로 필요한 소프트웨어에 대한 소개를 하려고 할 것이다. 다음에 소개하고 싶은 소프트웨어가 당 과인라에서 널리 사용되고 있는지는 저는 알 수 없지만, 소개하고 싶은 내용은 과인 업계에서 자주 사용되는 소프트웨어를 기준으로 작성된 것이므로 개발에 필요한 소프트웨어의 소개는 되지 않을까 생각합니다. 비록 자신들이 가지고 있는 것과 다른 것이라도 고민할 필요는 없습니다. 관뿌지안 아이가 가지고 있는 툴로 만 잘하면 맞힙니다. 하지만, 아내 sound에 관심이 있는 분이라면, 조금 더 관심을 가져볼 가치가 있다고 생각합니다. 물론 저희 과인라가 사용하지 않으면 조금 고민할 수도 있겠지만요. 그러나, 툴은 단순히 도구 1만, 그 중에서 작용하는 논리와 방식은 유사하다. 목적은 하나이고 그것을 실현하기 위한 방식이 다를 뿐이기 때문입니다. 고로 툴보다 목적이 더 중요합니다. 목적이정해지면툴이어느정도과잉접근하기쉽고각자에맞는지를찾는것이라고생각합니다. 이번문장은그런목적에따라참고할만한툴을소개하는거라고생각하시면될것같습니다.​, 시에서도 Part 1을 읽지 않고 글을 제1우선 보고 있으면 Part 1번 꼭 한번 읽어 보고 파라프입니다.


    지금 댁은 Part1에서 기초를 알게 되었습니다. 지금여러분이추구하는자율주행차의큰기업에서댁이원하는특정역할에대해알고싶은소프트웨어가어떤것인지알고싶습니다. 이상에서 말했듯이, 이러한 역할은 많이 있으며, 주어진 위치에 있는 각 작업에 사용할 수 있는 수십개의 툴이 있습니다.소개가 이어지는 이야기에서는 자율주행 엔지니어가 본인의 목적에 따라 사용하는 툴을 나누어 본다. 다시 한 번 강조하자면 이 툴들은 지속적으로 변화하고 있으며 매일 새로운 툴들이 추가됩니다. 우리의 정보 수집 방법에 따르면 31개 자율 주행 차 큰 키 오프의 모든 경력 페이지를 세심하게 구석구석까지 그 다소움 되었을 때, 이번 글에서는 3개 이상의 쿵키오프에서 등장한 도구나 기술을 나열했으며 10개 이상으로 나타난 것은 굵은 글씨로 표현했습니다. 우리는 이 중에서 가장 많이 사용되는 것에 대해서 글을 썼습니다. 특정 회사에 몇 번이나 나타났는지는 중요하지 않았어요. 우리는 업계 전반에서 사용되고 있는 툴을 원했습니다. 그렇기 때문에 여러분이 매일 사용하는 툴이 이번 소개를 허락하지 못한 경우가 있습니다.차량설계 - 개념(Vehicle Design - Concept) 차량의 컨셉 자체를 설계하거나 홍보자료를 작성하는 그 다음 당사자가 될 경우 다음과 같은 주요 툴이 최고이다.Sketch, Adobe Illustrator, Adobe Photoshop, Microsoft Paint(논 구다소음). 웃음)​ Adobe Illustrator는 사용자가 2D의 깃발을 만들어 편집할 수 있는 환경임. 차량 및 일반 선전기지의 개념적 기지를 발발하기에 가장 오래 된 소프트웨어 제품의 1개라고 생각됩니다.


    >


    차량설계 - CAD/PLM/FEA(Vehicle Design - CAE/CAD/PLM/FEA) 차량의 기계적 설계와 다양한 구성요소에 관심이 있으시면 이 중 적어도 하한은 알아두셔야 합니다. 고란툴은 전체 CAE(Computer Aided Engineering Tool)입니다. 이전에는 펜과 종이, 슬라이드자로 작업했던 작업을 지금은 컴퓨터로 전체적으로 할 수 있어 환상적인 시각화 도구를 사용할 수 있습니다. CAD(Computer Aided Design)는 차량과 부속의 2D및 3D모델링입니다. Product Lifecycle Management(PLM)는 설계하고 구입하는 모든 부속을 구성할 수 있는 포괄적인 툴도 sound입니다. FEA(Finite Element Analysis)는 다른 힘과 순간이 적용되는 소프트웨어에서 몸의 스트레스와 압력을 테스트할 수 있는 컴퓨팅 집약적 프로그램입니다. CATIA, Solidworks, Pro/E, Autodesk 360, Enovia, STAR-CCM+, ANSA, Altair HyperWorks및 OptiStructure, ANSYS, MSC NASTRAN, Abaqus, Polarision​ CATIA는 상당히 인기 있는 3D엔지니어링 설계 툴입니다. 이를 통해서 3D영상을 천천히 및 편집한 향후 3D영상을 빌드와 스트레스를 받는 비법을 시뮬레이션할 수 있다 슴니다. 이것은 특히 자동차 산업에서 인기가 있습니다.


    >


    다물체차량동역학 및 차량모델시뮬레이션(Multibody Vehicle Dynamics and Vehicle Model Simulation) 만약 여러분이 실제로 차를 운전하는 비결을 디자인하고 싶다면 이번 섹션은 여러분을 위한 것입니다. 이 소프트웨어 도구는 엔지니어가 서스펜션, 브레이크, 휠에 동력을 전달하도록 설계하는 데 도움이 됩니다. 이 소프트웨어는 엔지니어가 소프트웨어로 차량 대표 모델을 구축하고 실제 주행 시 본인 리오에서 테스트하여 성능을 최적화할 수 있도록 해줍니다. 엔지니어가주어진귀추를통해차량의한계가어느정도인지를알수있는비결이기도합니다. 이는 자율주행차 소프트웨어가 비상귀추를 찾을 수 있도록 중요한 역할을 합니다. 이 소프트웨어는 경주용 자동차 엔지니어들이 사용하는 것과 동 1 합니다!​ LS-DYNA, MSC ADAMS, CarSim, CarMaker, Dymola, OptimG, SusProg3D, Okal SKANeR​ MSC ADAMS는 멀티 보디 다이내믹스(Multibody Dynamics)에 적용되는 모든 수학의 문재를 해결하고 때때로화 위한 소프트웨어 도구입니다. 특히 이 툴은 엔지니어에게 차량 설계에 대한 즉각적인 피드백을 제공할 수 있는 다물체차량동역학(Multibody Vehicle Dynamics)을 위한 매우 강력한 도구입니다.


    >


    아날로그 및 디지털 하드웨어 개발(Analog and Digital Hardware Development) 엔지니어가 자율주행차에 들어가는 회로를 설계하기 위해 사용하는 많은 도구들이 있습니다. 여기서는 자세히 설명하지 않겠습니다. 두 개의 가장 반쪽짜리 도구는 앞으로와 같습니다.LTSpice, Altium 차량 소프트웨어 개발 - 단편적인 지식(Vehicle Software Development - General Knowledge) 특정 업무 기능을 지속적으로 지원하는 지식을 가지는 "하나반 지식"이라고 하는 바구니에 들어가는 많은 소프트웨어가 있습니다. 여기엔 중역이 있어요. 따라서 여기에 포함시켰습니다. 누구도 이 모든 것을 알고 있으리라고는 생각지 않지만 취업 면접에 들어가기 전에 가장 작은 그들 중 몇몇은 무엇을 하고 있는지 이해하는 것이 좋습니다. ​ Docker, CMake, Shell, Bash, Perl, JavaScript, Node.js, React, Go, Rust, Java, Redux, Scala, R, Ruby, Rest API, gRPC, protobuf, Julia, HTML5, PHP​ Docker는 애플리케이션 배포를 위한 가상화 계층이다. 이것은 어플리케이션을 더디게 하는 "fat" 없이 해당 어플리케이션에 대한 모든 종속성을 "containerize"할 수 있기 때문에 소프트웨어를 개발, 배포하는 데 한층 간단하고 효율적인 메커니즘이다. Docker 사용 시 별도의 VM을 설정할 필요가 없습니다.​


    >


    차량 소프트웨어 개발 - ROS 프로그래밍(Vehicle Software Development - Programming ROS)의 대부분의 자율주행차 팀은 이전 섹션에서 설명한 대로 ROS를 사용하여 차량을 제어합니다. ROS를 사용할 경우 이후 두 가지 툴을 몸에 익혀 당신의 삶을 더욱 수월하게 하는 것이 중요합니다.RVIZ, PCL 차량 소프트웨어 개발 - CPU/MCU 프로그래밍(Vehicle Software Development - Programming CPUs/MCUs) 자율주행차를 운영하도록 중앙처리장치(CPU) 또는 마이크로컨트롤러 장치(MCU)를 프로그래밍 하는 경우, 이후와 같은 기술을 사용하는 것이 중요합니다.C, MISRAC, Embedded C, RTOSRTOS는 "실시간 운영체제(Real-Time Operating System)"의 약어로 프로세스가 자결적으로, 또는 항상 지연되는 일 없이 일정한 간격으로 발생할 수 있도록 하는 운영체제 아키텍처입니다. 지연시간(latency)과 지터(jitter, 반대: 흐트러짐 정도로 이해)가 시간 내에 동작할 수 있도록 실행하는 것과 그렇지 않은 것의 차이가 있을 수 있으므로 매우 안정적인 CPU/MCU 시스템에 필요합니다.


    >


    ​ ​ 차량 소프트웨어 개발-FPGA/ASIC프로그래밍(Vehicle Software Development Programming FPGAs/ASICs)차량에서 제어 시스템을 기동하도록 FPGA을 프로그래밍할 경우 하드웨어를 직접 제어할 수 있는 저 수준 프로그래밍 언어(Hardware Description Languages, HDL)중 1이상을 이해하는 것이 중요합니다. 이들 도구의 상당수는 ASIC(Application-SpecificIntegratedCircuits)라는 작은 전용 실리콘 칩의 설계에 사용됩니다. ​ Verilog, VHDL, DSP, Cadence, Synopsys, Xilinx Platform Studio(ISE와 XPS)​ Verilog는 개발자가 하드웨어 레지스터에 직접 접근할 수 있도록 HDL을 다시 공문 소프트웨어 언어이며 FPGA, ASIC및 1부 MCU용 아날로그 및 디지털 회로를 설계하고 시험하는 데 사용됩니다.차량 소프트웨어 개발 - GPU 프로그래밍(GPGPUs)(Vehicle Software Development - Programming GPUs, GPGPUs) GPU는 대규모 병렬 프로세스로 영상을 처리하여 포인트 클라우드(point cloud)를 지칭하는 능력 때문에 오늘날 많은 미디어의 주목을 받고 있습니다. 대략적으로 업무 제안에 소개되는 기술은 "GPGPU(General Purpose Computing on Graphics Processing Units)"이다. 이러한툴로다소비적인작업을수행할수있습니다.CUDA, OpenCL, OpenGL, DirectX, Direct Compute, VulkanCUDA(Compute Unified Device Architecture)는 NVIDIA의 툴킷 프로그래머가 GPU를 프로그래밍하는데 사용합니다. GPU의 모든 벨과 휘파람에 직접 접근할 수 있는 플랫폼과 API이다. CUDA는 C, C++와 함께 작동하며 OpenCL과 통합됩니다. 앞서 종이 처리를 할 경우 CUDA는 반드시 알아야 할 것입니다.


    >


    차량 소프트웨어 개발 - LIDAR, Radar, Camera, 인지 센서 융합(Vehicle Software Development - LIDAR, Radar, Cameras, Perception Sensor Fusion) 여러분의 자율주행차는 어떻게 세계를 '바라봐' 있습니까? LiDAR, Radar, 그렇지 않으면 Camera입니까? 초음파 감지기(ultrasonic sensors)와 같은 다른 것이 있습니까? 다음으로 센서와 관련된 가장 일반적인 소프트웨어 도구와 기술로 센서의 '귀취(sees)'를 파악하고 나머지 소프트웨어 스택에 유용한 정보를 재공할 수 있습니다.Velodyne Development Kit, ZED Stereo Camera SDK, Scanse LIDAR SDK (shutdown), SLAMSLAM은 동시 로컬러 방금션과 매핑 (Simultaneous Localization And Mapping) 고 할 것이다. "불명한 환경 맵을 구성 또는 업데이트 하는 것과 동시에, 그 환경내의 에이전트의 위치를 추적 하는 컴퓨팅 문제입니다"(Wikipedia). 이것은 차량이 어디에 있고, 다음에 어디로 가야 하는지를 나타내기 위한 핵심적인 접근법입니다. 여기서 여러분은 확장된 칼만 필터(extended Kalman filter)와 같은 유명한 기계학습(machine learning)의 윙 하는 소리가 들립니다.차량 소프트웨어 개발-기계 학습, AI, 딥러닝(Machine Learning, AI, Deep Learning) 여기서는 모든 미친 연구가 일어나고 있습니다. 만약 여러분이 Machine Learning, AI, Deep Learning에 관심이 있다면 여러분은 아마 이 도구들에 대해 잘 알고 있을 것입니다. 만약 여러분이 이 분야에 있고 싶다면 학습을 시작하는 것이 좋습니다. 스크래치를 통해서 이 일의 많은 부분을 수행하는데 필요한 알고리즘을 만드는 것이 매우 중요하기 때문입니다.Tensor Flow, Keras, Torch/Py Torch, CAFFE, Apache MXNet, Therano, CNTK Tensor Flow는 Google이 개발한 오픈소스 소프트웨어 라이브러리로 기계학습 및 신경네트워크 알고리즘을 활용하기 위한 실질적인 보통이 되었습니다. GPU 및 CPU에서 실행할 수 있습니다. Tensor Flow는 "tensors"라고 하는 상태 보존 데이터의 흐름 그래프(아래 그림 참조)를 용이하게 시간화할 것이다.


    >


    소프트웨어 테스트 프레임워크에서 워크(Software Test Frameworks) 모든 소프트웨어를 작성하고 어떻게 동작하는지 확인할 수 있습니다. 엔지니어가 시뮬레이션 데이터를 소프트웨어에 제공하고 답변을 확인하기 위해서 독자적인 "단위 테스트 프레임니다워크(Unit Test Frameworks)"를 구축하는 경우가 많습니다. 그들은 아무것도 망가지지 않도록 구석구석 사례를 강조합니다. 업계에서는 이러한 궁금증을 보다 쉽게 해결하기 위해서, 이후와 같은 몇개의 툴을 사용하고 있습니다.Mocha, SysML, Jasmine, Jest 시뮬레이션을 위한 게임입니다. 및 물리 엔진(Game and Physics Engines for Simulation)은 직업으로서 매우 인기 있는 분야입니다. 엔지니어들은 자율주행에서 그들의 소프트웨어가 실행되는 것을 시뮬레이션으로 보고 싶어합니다. 그들은 시뮬레이션된 환경에서 차를 운전하는 것을 실질적으로 보기를 원합니다. 모의 검토 데이터 변수를 사진 자신이 움직이는 이미지기는 어렵게 1개이다. 실제 세계의 물리학을 따라하는 일은 더 복잡합니다. 엔지니어는 강력한 툴을 사용하고 시뮬레이션을 실시하고 실제 시각 자료로서 작성한 소프트웨어를 테스트합니다. ​ Unity 3D, Unreal Engine, CryEngine, Lumbard, Bullet, Havok, PhysX​ Unity 3D는 2D및 3D시각화를 위한 게요 엔진이다. 이건 가끔 비디오 게임이에요. 개발에 사용되지만 "물리학적 엔진(physics engine)"이 포함되어 있어 실제 시뮬레이션에 매우 적합합니다. 이 물리 엔진은 여러분이 실제로 시자리오를 만들어 모든 시각에서 관련된 모든 수학의 의문을 해결하지 않고 차량을 테스트할 수 있도록 해줍니다. 역시 차가 어떻게 도로를 주행하는지를 보여주는 대표적인 시각 자료를 만드는 데도 도움이 됩니다.


    >


    차량 통신 프로토콜(Vehicle Communication Protocols)은 소프트웨어 툴이 아닙니다. 차량을 프로그래밍 할 경우 알아야 할 특정 프로토콜이 아닙니다. 차량의 특정 부분에 대한 통신 인터페이스에 따라 전송되고 있는 이야기를 확인할 수 있는 다양한 툴이 있습니다. 다만, 모두 sound 같은 다양한 프로토콜을 알 필요가 있습니다. ​ CAN, LIN, FlexRay, Ethernet(Automotive Ethernet), SPI/I2C, TSN(Time-Sensitive Networking), TCP/IP, WLAN(Wifi), Bluetooth, 5G, Cryptography Primitives, Cryptoschemes​ ​ CAN(Controller Area Network bus)는 자동차 업계에서 그대로 사용되는 2-wire디지털 통신 프로토콜이다. 차량의 온보드(onboard) 컴퓨터에 의해 제어되는 대부분의 기능은 CAN을 통해 통신합니다.데이터 저장(Data Storage) 차량에 탑재된 데이터 스토리지에 연결하는 방법이 익숙해야 합니다.RAID(Redundant Array of Independent Disks), NAS(Network Attached Storage) RAID는 대용량의 메모리에서 쓰기/읽기 속도를 높여 경과된 메모리에 있는 데이터의 중복을 발발하는 데이터 가상화 기술이다. 읽기/기입 에러에 취약하지 않은 대용량의 데이터를 로컬에 보존할 때에 사용해 주세요.데이터베이스(Databases)이기 때문에 한 가지 그 데이터를 차에 탄 하드웨어에서 꺼내면 그것을 넣을 곳이 필요합니다. 이러한 소프트웨어는 데이터를 기록하고 추출하는 특정한 방법을 가진 조직 데이터베이스의 모든 데이터를 관리함으로써 모두 sound와 같은 작업을 수행하는데 도움이 됩니다.HBase, NoSQL, MongoDB, PostgreSQL, MySQL, DynamoDB, HDP, Cloudera, EMR, Cassandra, Vertica NoSQL은 클라우드 저장 및 데이터 검색에 사용되는 비관계형 데이터베이스로 대량의 데이터를 실시간으로 처리할 수 있는 성능과 기능을 위해 가끔 SQL 대신 NoSQL을 사용합니다.


    >


    스트리밍 기술(Streaming technologies) 스트림 프로세싱은 멀티코어 컴퓨터, GPU는 FPGA의 도움으로 개발자가 대량의 데이터를 동시에 처리할 수 있도록 하는 컴퓨터 프로그래밍 아키텍처는 패러다임. 이 기술은 데이터 크래킹 속도를 획기적으로 향상시키는데 필요합니다.Apache Kafka, Storm, Flink, Spark Streaming Apache Kafka는 Java 및 Scala에서 작성된 공통 스트리밍 기술로 실시 각 데이터의 높은 처리량과 짧은 대기 시간 처리에 사용됩니다. 스트리밍 플랫폼에서는 성능이 매우 중요하기 때문에 많은 사용자들이 Kafka와 함께 모니터링 어플리케이션을 사용합니다.Batch 기술(Batch technologies) 스트리밍 기술과 마찬가지로 배치 기술은 대량의 데이터를 처리할 수 있는 고성능 방법론을 제공합니다. 차이는 배치 기술은 데이터를 복수의 하드웨어 리소스로 분산시켜 병렬로 해결한다는 점이다. 이는 특히 중첩성과 신뢰성에 유용합니다. ​ Apache Hadoop, MapReduce, Apache Spark, Hive, Presto, Impala​ Apache Hadoop은 하드웨어 장해가 1반 적으로 가정하는 소프트웨어 라이브러리의 유출 소스 시리즈이기 때문에 1반 적으로 서버 팜에서 많은 자원 간에 데이터 세트를 분산하는 전략을 사용합니다.이후에는 Gowthamy Vasekaran의 Batch vs Streaming Technologies에 대해 간단히 설명한 문장.​ 직렬화(Serialization)직렬화는 1반 적에 저장 또는 분석하기 위해서 대량의 데이터를 11이 가지고 처리하는 길임. 이 기능은 어플리케이션 간에 데이터를 파이프하는데 유용합니다.Avro, Parquet, JSON 차량 테스트 - MIL, SIL, HIL, 차내 테스트(Vehicle Test - MIL, SIL, HIL, In-Vehicle Test) 테스트 엔지니어링의 역할은 풍부합니다. 그 이유는 모든 것이 자율주행이고 항상 제대로 작동하는지 확인하기 쉽지 않기 때문이다. 하지만 이 과정을 가속화하는 툴이 있습니다. 이러한소프트웨어툴은단순한엔지니어벤치에서도대량제조환경에서도차량의모든항목을검증할수있는환경,템플릿및아키텍처를제공합니다.NILabVIEW, NI TestStand, NI Veri Stand, dSpace HIL Simulation Systems, dSpace RTMaps, Proemion PETools, Vector CANalyzer, Vector CANape, Vector Capld Space HIL Simulation Systems는 소프트웨어, 모델도 하드웨어를 사용하고 테스트 대상의 "있을 것(thing)"에 대한 가짜 소프트웨어 및 가짜 입력도 존재한다. dSpace는 자동차 영역으로 댁이 길고 자동차 ECU설계와 복잡하게 연결되어 있기 때문에 이 분야에서 매우 유행하고 있습니다.


    >


    데이터 시각화 및 분석(Data Visualization and Analysis)이 모든 테스트와 시뮬레이션 후에 여러분은 수 톤의 데이터를 다양한 형식으로 얻게 됩니다. 데이터를 통합하고 쉽게 소모할 수 있는 형식으로 데이터를 분석하고, 그 분석을 기반으로 향후 실시하는 작업에 대해 지능적인 결론을 내리는 것이 매우 중요할 것이다. 그렇기 때문에 항상 사용할 수 있는 여러 개의 툴이 있고, 시야에는 몇 개의 새로운 툴이 있습니다.Microsoft Excel, NIDIAdem, Splunk, Datadog, Logz.io, ELKStack, Looker, Tableau Microsoft Excel은 모든 사용자가 사용하며, Microsoft Excel을 사용하지 않습니다. 데이터를 집계하고 시각화하는 데 더 좋은 툴이 있는 경우가 많지만 사람들은 알고 있는 악마를 사용하는 경향이 있습니다.웹서비스(Web Services) 클라우드 컴퓨팅 플랫폼이 최근 큰 유행을 보이는 것은 당연할 것이다. 사람들은 더 이상 사무실에 서버를 설치할 필요가 없습니다. 이 서버는 크고 비용이 많이 듭니다. 최근 이후 클라우드 컴퓨팅 플랫폼 중 1개를 통과 하고, 서버 공간을 온라인 대여할 수 있습니다. 기계학습(Machine learning)에 특히 맞춰져 있습니다! Azure and Azure ML, Google Cloud and Google AI, Amazon Web Services(AWS) AWS(AmAmazon Web Services)는 온디멘드 클라우드 컴퓨팅 플랫폼이다. 그것은 개인 사용에서 작은 기업 사용까지 확장이 가능하기 때문에 매우 유행하고 있습니다.소스 코드 제어(기타)(Source Code Control(Others)이미 말한 Git이외에도 이후 두개의 소스 코드 제어 수단이 가장 많이 쓰입니다. ​ Perforce, Subversion(SVN)​ 문제 추적 도구(Issue Tracking Products)Jira는 단연코 가장 1조 같은 문제의 추적 툴이다. 버그 추적, 서비스 요청 및 프로젝트 관리에 사용됩니다. 유료 제품이다. ​ 요구 사항의 관리(Requirements Management)보동 사람들은 어떤 문제에 직면하자 그들은 먼저 무엇이 그 1의 성공적인 성취를 구성하는지 문서화하는 것이다. 그것들은 그 과제의 "요구사항"으로 간주됩니다. 문제가 크고 어려울 때 가끔 특정한 관점에 어긋나는 많은 요구조건이 충족되어야 한다. 그것이, 그 과정을 관리하는 데 도움이 되는 소프트웨어가 있는 이유이다.Rational DOORS, JAMA, Rhapsody IBM의 Rational Doors(Dynamic Object-Oriented Requirements System)는 "개발 라이프 사이클 모두에 걸쳐 변경사항을 캡처, 추적, 분석 및 관리할 수 있는 요구사항 관리 툴 그룹"이다. 시간이 지남에 따라, 이 솔루션은 크고 복잡한 소프트웨어 프로젝트 요구 사항 관리의 보통이 되었습니다.​ 그 다른 자동차 관련 주제(Other Automotive Topics)후 은 1반 적으로 차량에 대해서 지능적으로 설명할 수 있도록 하기 위한 몇가지의 차량 주제, 규정 및 보통이다. ​ Automotive SPICE, SixSigma(DFMEA, HARA, FTA, FMEA), AUTOSAR, ASPICE, ISO26262, other Standards(ISO, IEEE, ANSI, ASTM, SAE, NHTSA, etc)​ AUTOSAR(AUtomotice Open System ARchiture)는 ECU소프트웨어 아키텍처를 보통화하려고 모인 회사의 거대 먹이대다. 이에 따라 Tier하나과의 OEM도 ECU를 개발할 수 있으며 테스트 및 서비스를 위한 보통 도구로 작업할 수 있게 되었습니다.​


    >


    결론은 당신의 머리를 주변에 있는 수많은 소프트웨어입니다. 그들 전체를 배우려는 것은 어리석은 일입니다. 원하는 영역을 선택하기만 하면 해당 영역에서 적어도 자신의 도구를 사용할 수 있습니다. 자율주행차의 작은 기업의 역할은, "역시 소프트웨어/기술과 같은(orlikesoftware/skill)"조건을 자주 사용합니다. 이것은 거의 비슷한 툴 중에서 자기 자신을 알면 기술이 이전될 수 있다는 것을 의미합니다.그 도구를 배우기 위해 어디로 가는 겁니까? 툴의 특성에 따라 달라집니다. 오픈소스소프트웨어는일방반적으로환상적인커뮤니티를갖고있고많은사용자들이독자학습을할것입니다. 독점툴은대학또한지속적인교육프로그램을통해서배울수있습니다. 직장에서 공부만 몇개의 툴이 있습니다. ​ Udacity's Self Driving Car Nanodegree Program(유료, 2단계 이용 가능)과 MIT의 Lex Fridman의 Driving Cars(무료, 자기 학습)Deep Learning 같은 몇가지 훌륭한 온라인 프로그램이 있슴니다.우리가 놓친 것이 있으면 가르쳐 주세요. 그리고 행복한 코딩을 하시길 바랍니다! 새치기는 조금 많은 것에 대해 복잡하게 느끼실 수 있지만 자율주행차 개발에 필요한 소프트웨어를 세분화하여 소개하고 있는 글입니다. 스토리를 적어놓은 것처럼 각 항목마다 대표 소프트웨어를 소개하고, 그 중에서도 가장 많이 사용되는 것에 대해서 아주 간단하게 소개하는 것으로 진행되었습니다. 하지만 그 분야에서 한 가지를 하시는 분들을 보시면 어떤 프로그램인지는 알 수 있을 것 같아요. 물론 제가 제대로 이해하지 못하고 설명해드린 것도 있을테니, 혹시 잘못된 정보가 있으면 알려주세요.우리가 뉴스에서 보기에는 센서를 몇 개 달고 컴퓨터를 설치해서 움직이는 정도라고 생각하신 분이 계셨다면 이번 글을 통해서 올바른 스토리로 많은 소프트웨어들이 자율주행차를 개발하는 데 사용되고 있다는 것을 알 수 있는 기회가 되었을 것입니다. 위에서 말한 것을 간단하게 정리해 봐도 설계, 시뮬레이션, 배포, 컨트롤러 프로그램, AI, 센서 프로그램, 데이터 관리, 프로그램 관리 등으로 분류할 수 있을 것 같습니다. 물론 각각의 항목에서도 보다 세분화될 수 있겠죠. 이 중 자신을 제대로 하기도 쉽지 않을 겁니다. 정 스토리의 많은 소프트웨어 엔지니어가 필요한지 알 수 있을 겁니다. 조금 전에는 하드웨어뿐만 아니라 소프트웨어를 중앙으로 생각하고 판단할 수 있는 기반이 갖추어져 있지 않으면 전체적으로 시스템에 대해 이해하는 것이 어려워지고 있는 것입니다. 우리는 최근까지 하드웨어 가운데 세상에서 살았어요. 요즘은 물론 그렇다고 생각합니다. 자동차 분야 경영진도 당장의 시장성만 판단하면 하드웨어에 집중할 수도 있다. 하지만 다음 자동차 시장의 변화를 생각하면 소프트웨어의 중요성을 생각하지 않을 수 없을 것입니다. 단순히 자동차 제어를 위한 소프트웨어뿐만 아니라 그 상위 레이어의 소프트웨어를 생각해야 할 것입니다.오늘날 세계는 하드웨어보다 소프트웨어가 움직이는 세상이라고 해도 과언이 아닐 것입니다. 물론관련된하나를해보지못한분들이생각하기에어느소음인지도생각할수있지만,바로여러분이정보를얻고있는인터넷이라는것도소프트웨어가움직이고있는겁니다. 여러분은 단지 1번 클릭으로 원하는 것을 얻고 계시지만요, 그것을 실현하기 위해서 수많은 소프트웨어 엔지니어가 밤을 새가며더 사용 편의성이 높은 기술을 개발하고 있습니다. 하지만 우리 자신의 경우는 아직 손에 잡히지 않는 것에 대해 가치를 부여하는 것에 인색하다는 것은 분명하겠죠. 눈에 보이는 것에 대해서는 큰 가치를 두고 이야기를 하지만 그것을 움직이는 것에 대해서는 많은 사람들이 알지 못할 거예요. 잘 생각해 보면 아까 여러분 주변에 소프트웨어가 없는 물건이 얼마나 자신 있는지 생각해 보면 좋을 것 같습니다. 보동 쪽이 생각하는 자동차를 생각하면, 보동철 덩어리에 고무 타이어를 붙여 엑셀을 밝으면 가고, 브레이크를 밝으면 멈추는 기계 덩어리라고 생각할 수 있습니다. 하지만 여러분이 하는 동작은 자기 자신을 전체 소프트웨어가 제어하고 있다는 것입니다. 현재 자동차는 기계라고 하기에는 그 안에 들어 있는 소프트웨어가 자신도 많습니다. 얼마나 심하면 자동차를 해킹할 수 있다는 스토리를 하고 있어요. 실제로 그런 하나도 있곤 해요. 그리고 세계의 모든 전자기기에는 그 안에 소프트웨어가 있어서 제어를 하고 있습니다. 하물며 가장 원시적이라고 생각되는 전등을 켜고 끄는 것까지 소프트웨어로 제어하려고 합니다. 저 개인적으로는 아직 백열전구는 스위치로 켜는 걸 좋아하잖아요. 하지만 곧 IoT시대가 좀 더 현실화된다면 단순한 명령으로 수많은 것들을 제어할 수 있는 시대가 오지 않을까 생각합니다. 이는 모두 소프트웨어가 있어야 가능한 1개입니다.이렇듯 소프트웨어는 여러분이 생각하는 것보다 우리는 훨씬 더 존재합니다. 여러분들이 인지하지 못할 뿐이에요. 자율주행차는 현재 자동차보다 훨씬 많은 소프트웨어를 사용하는 것입니다. 가장 큰 이유 중 하나가 지금까지는 단순히 자동차의 상태와 상황만을 파악하고 제어하면 되었다면 아까는 자동차 주변 상황과 그 상황에 맞게 가장 적절한 움직임을 보여야 하기 때문입니다. 이 모든 것을 소프트웨어로 해야 하기 때문에 뭔가 큰 소프트웨어 덩어리가 그 안에 있어야 하지 않을까요? 하지만 자율주행차는 단순히 자동차 자체가 움직이는 것뿐만 아니라 주변과의 관계를 맺는 수많은 소프트웨어와도 연결되어야 할 것입니다. 그래서 많은 작은 기업에서는 자율주행차를 이 내용을 자동차에 언급하지 않습니다. 그것을 어떻게 연결하고 운영하는지에 대해서 이 내용입니다. 즉, 자동차를 판매하는 것이 아니라 그 근본적 목적성에 보다 가까이 접근했다는할 수 있을 거예요. 즉시 모빌리티입니다. 이런 이유로 네이버가 자율주행차를 소개하면서 SK, KT 등 통신사들이 자율주행을 선전하고 있습니다. 아직 우리나라에서 자율주행차에 대해서인데, 그 내용이 익숙하지 않은 것 같지만 우리는 자율주행을 위한 모든 환경을 갖고 있음이 분명합니다. 이런 환경에서 자율주행차 개발에 제동을 걸어서는 안 됩니다. 자율주행차는 다음 세대의 교통 환경에 가장 중요한 위치에 있는 것이 분명하기 때문입니다.금 하나도 새치기한지 좀 길었네요. 소프트웨어 내용을 하다 보면 약간 흥분해서 ■"자율주행 엔지니어가 쓰는 소프트웨어는 뭐 하나? 는 아래의 링크에 갈 수 있습니다.


    P.S 검색에서 보시다가 원하시는 이야기를 찾지 못할 경우, 태그 역시 검색을 해보시면 더 많은 자료를 찾을 수 있습니다. 그래도 뭐 찾을 게 없으시면 저한테 연락 주시면 (이미하나,메모) 제가 아는 범위 내에서 도와드리고 싶습니다. 부담 갖지 않으셔도 됩니다.Over the Vehicle!!!참고 자료



    댓글

Designed by Tistory.