자율주행차 엔지니어 되기 – 2부:소프트웨어 기술

이 블로그 시리즈의 1부에서는 자율 주행 차량 엔지니어가 되기 위한 여정을 시작하는 방법을 다루었습니다. 이제 교통의 미래를 창조하는 팀에서 자신의 위치를 ​​확고히 하기 위해 어떤 코딩 언어와 소프트웨어를 배워야 하는지 알고 싶을 것입니다.

보기 – 생각 – 행동하기

도시 거리를 운전하다가 수백 피트 앞의 연석에 천천히 접근하는 보행자를 발견했다고 상상해 보십시오. 그들이 아직 횡단보도에 있지 않은 동안, 당신은 그들이 건너기 시작할 것이라고 예측하면서 브레이크를 밟습니다. 당신의 길이 교차할 때, 그 사람은 길을 건너기 위해 앞으로 나아갑니다. 이미 준비된 상태에서 정지하여 통과하도록 허용합니다.

당사의 종단 간 레벨 4 자율 시스템은 인간 운전자와 유사한 방식으로 의사 결정 프로세스를 모방하도록 만들어졌습니다. 참조 – 생각 – 행동.

즉, 보행자를 "보는" 센서부터 해당 센서 데이터를 함께 가져와 사람으로 식별하는 알고리즘에 이르기까지 모든 것을 구현합니다. 정지, 감속 또는 계속 운전에 대한 결정과 조치는 시스템 자체에 프로그래밍된 동작을 기반으로 합니다.

이러한 간단한 시나리오는 환경(비, 눈), 다른 교통(누군가 회전할 예정입니까?) 및 경로 결정을 고려할 때 더 복잡해집니다. 도로에서 마주할 수 있는 다양한 상황을 처리할 수 있는 강력한 시스템을 만들기 위해서는 다양한 유형의 기술을 갖춘 팀이 필요합니다.

저희 팀

능동 감지 및 정보 융합 – 능동 감지 팀은 센서 데이터를 활용하고 Torc의 자율 주행 시스템을 위한 물체를 감지하고 식별하는 알고리즘을 생성하여 시스템이 실시간으로 차량 주변 환경을 이해하고 반응할 수 있도록 합니다.

기계 학습 – 기계 학습 팀은 원시 센서 데이터로 제공할 수 있는 것보다 더 자세히 보는 특정 물체를 식별하도록 시스템을 훈련합니다. 예를 들어, 우리는 기계 학습을 사용하여 신호등을 식별하거나 보행자와 가로등 사이의 차이를 결정하는 방법을 시스템에 가르칩니다.

매핑 및 현지화 – 자율 차량 지도는 인간이 탐색에 사용하는 일반적인 지도보다 훨씬 더 구체적이어야 합니다. 매핑 팀은 3D 환경을 개발하고 자율 주행 차량의 경로를 지정하며 현지화 팀과 협력하여 시스템이 목적지까지의 위치와 방법을 알 수 있도록 합니다.

행동 및 계획 – 행동 팀은 주어진 상황에서 차량이 어떻게 행동해야 하는지에 중점을 둡니다. 예를 들어, 혼잡한 고속도로에서 합류하려면 차량이 교통 흐름에 "지퍼"를 넣을 좋은 지점을 결정하고 이를 안전하게 달성하기 위해 가속을 조정해야 합니다.

기계 – 기계 팀은 차량 설계 개념을 만들고 센서, 마운트 및 컴퓨팅을 차량에 통합합니다.

시스템 통합 – 구성 요소가 자체적으로 뿐만 아니라 시스템으로 잘 작동하도록 하는 것은 팀에서 중요한 역할입니다. 시스템 통합 팀은 구성 요소의 상위 수준 상호 작용을 전체적으로 살펴봅니다.

임베디드, 컨트롤 및 전기 – 이 팀은 소프트웨어를 구성 요소의 전체 시스템에 통합하고 가속, 제동 및 조향을 생각하여 차량을 제어하는 ​​전기 시스템에 대해 작업합니다.

개발자 – Dev Ops 팀은 소프트웨어 배포를 관리하고 기술 인프라를 유지 관리하기 위해 노력합니다.

안전 및 테스트 – 안전은 우리 자율 시스템의 주요 목표이므로 안전 및 테스트 엔지니어는 우리 개발의 모든 단계에서 중요합니다. 안전 및 테스트 팀은 모든 팀을 위한 안전 프로토콜 및 관행을 표준화할 뿐만 아니라 새로운 기능을 테스트 및 검증할 수 있도록 노력합니다.

어떻게 준비해야 할까요? 우리는 Torc 엔지니어에게 어떤 소프트웨어 기술과 경험이 AV 팀에서 자신의 전문 분야에서 성공하는 데 도움이 되었는지 물었습니다.

Karan Bhargava, 매핑 및 현지화 소프트웨어 엔지니어

C++는 성능 지향적 언어로, 이를 통해 "후드를 터트리고" 메모리 관리에 깊숙이 도달할 수 있습니다.

후보자가 견고한 C++ 및 로봇 운영 체제(ROS) 기술을 보유하고 있다면 이미 로봇 공학 엔지니어입니다. 매핑 및 로컬라이제이션 엔지니어가 되려면 한 단계 더 나아가 일반 좌표 변환 및 3D 기하학을 이해해야 합니다. 후보자가 SLAM(Simultaneous Localization and Mapping)과 함께 일했다면 이 역할에 매우 적합합니다.

Matthew Via, DevOps 엔지니어

DevOps 팀은 소프트웨어 개발 및 시스템 관리 통합 기술이 필요합니다. 우리는 차량 컴퓨팅에 대한 소프트웨어 배포를 관리하기 위해 Torc에서 이러한 기술을 사용합니다. Linux 컴퓨터를 적절하게 관리하고 관리하는 것도 시스템을 자동화하고 견고하게 만드는 중요한 기술입니다.

우리는 차량에서 상당히 복잡한 네트워크를 사용합니다. 우수한 네트워크 설계를 설계하고 복잡한 설계를 디버그할 수 있는 것은 우리 작업에 매우 중요합니다.

DevOps 팀 구성원이 프로세스를 자동/반복 가능하게 만드는 데 사용하는 일반적인 기술은 구성 관리 및 지속적 통합 파이프라인입니다. 개발자가 소프트웨어를 작성하도록 하여 수동으로 컴파일한 다음 컴퓨터에 수동으로 복사(및 수동 구성)하는 대신 자동화를 사용하여 소프트웨어가 사람의 실수 가능성을 최소화하여 빌드, 설치 및 구성되도록 합니다. 가능한 한.

David Anderson, 수석 기계 엔지니어

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

Andrew Cunningham, 능동 감지 및 정보 융합 소프트웨어 엔지니어

C++는 객체 지향 프로그래밍과 저수준 메모리 조작을 모두 지원하는 컴파일된 프로그래밍 언어입니다. 잘 작성된 C++ 코드는 매우 빠르고 확장 가능하기 때문에 Torc는 C++를 사용하여 자율성을 강화합니다.

후보자는 코딩 표준에도 익숙해야 합니다. 산업 코딩 표준은 런타임에 잠재적으로 안전하지 않은 버그를 유발할 수 있는 특정 코딩 관행을 금지합니다. 이러한 제약 조건을 적용하면 코드가 더 안전하고 이식 가능하며 신뢰할 수 있습니다. MISRA 코딩 표준은 공개되어 있으며 문서가 밀집되어 있지만 핵심 아이디어는 상당히 쉽게 배울 수 있습니다.

Ashwin Sahasrabudhe, 행동 소프트웨어 엔지니어

자가 운전 행동은 자동차, 보행자, 자전거와 같은 다른 개체가 여러 개 있다는 점을 고려할 때 도로에서 차량이 어떻게 행동해야 하는지에 대한 높은 수준의 의사 결정에서 중요한 역할을 합니다. 이러한 다양한 개체를 처리하고 필요한 안전 알고리즘을 개발하려면 차량의 운동학 및 역학이 도로에서의 기동성에 어떻게 영향을 미치는지 잘 이해해야 합니다. Torc에서 일할 때 재미있는 부분은 작업이 한 구성 요소에만 국한되지 않는다는 것입니다. 자동차의 액추에이터를 제어하는 ​​차량 인터페이스와 같은 다른 구성 요소에 대해 작업하게 됩니다. 이러한 다양한 작업으로 인해 제어 알고리즘에 대한 이해와 제어 루프 개발 및 조정 경험이 있으면 좋습니다.

'이 기술에 대해 어디에서 배울 수 있습니까?'라는 질문을 많이 받습니다. 가지고 놀 수 있는 시뮬레이터가 상당히 많습니다. 새로운 것을 탐색하는 것은 항상 재미있고, 원하는 방식으로 시뮬레이터에서 자동차가 운전할 때 다른 종류의 만족감을 얻을 수 있습니다. 이러한 시뮬레이터를 사용하여 몇 가지 제어 알고리즘 또는 자율 주행 동작을 개발하고 실습 경험을 쌓는 것이 좋은 시작입니다. 또한, 자율주행차에 관심이 있는 동료들과 연결하십시오. 개인적인 경험에 비추어 볼 때 그룹 프로젝트에서 일하고 다른 사람들로부터 배우는 것이 신기술을 이해하는 데 많은 도움이 된다고 말하고 싶습니다.

Torc 엔지니어가 코딩만큼 중요하다고 생각한 개인 기술을 공유하고 직업에 대한 기대치를 현실과 비교하는 파트 3을 곧 다시 확인하십시오.

자율주행차 분야에서 일자리를 찾고 계십니까? Torc는 가장 경험이 풍부한 자율 소프트웨어 회사 중 하나이며 운송 혁신을 위해 팀을 성장시키고 있습니다. 자세한 내용은 채용 페이지를 참조하고 3부를 계속 지켜봐 주십시오!