기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
CARLA를 사용하여 자율 주행 시뮬레이션 스윕 실행
이 자습서에서는 구성 가능한 다중 센서 캡처를 사용하여 CARLA
이 작업은 NPC 차량이 ego 차량 뒤에서 시작되고, 105초 미리 보기 단계에서 ego보다 20미터 앞서 있는 상태로 가속된 다음, ego의 차선으로 자르는 차선 변경 커트인 시나리오를 실행합니다. 구성 가능한 에고 속도, NPC 속도 및 NPC 시작 거리를 스윕하여 각 파라미터 조합에 대한 작업을 생성합니다(기본값 2×2×2 = 작업 8개). 각 작업은 선택한 카메라 관점에서 다중 센서 데이터를 캡처하고 다음 출력을 생성합니다.
-
선택한 각 카메라 뷰포인트의 RGB 프레임
-
의미 체계 분할 프레임
-
LiDAR 포인트 클라우드(
.ply) -
2D 및 3D 경계 상자(KITTI 형식)
-
카메라당 시나리오 비디오(H.264 MP4)
-
연결된 그리드 비디오(여러 카메라를 선택한 경우)
다음 동영상은 Deadline Cloud의 CARLA 시뮬레이션 스윕 워크플로를 보여줍니다.
예상 시간: Docker 이미지 빌드를 포함하여 1~2시간. 작업은 일반적으로 각각 약 13분 후에 완료됩니다.
이 자습서를 실행하면 작업을 처리하는 GPU 작업자 인스턴스와 Amazon ECR 이미지 스토리지에 대한 요금이 발생합니다.
개요
이 자습서를 완료하려면 다음 단계를 따르세요.
-
사전 조건을 충족합니다.
-
팜을 설정합니다.
-
도커 이미지를 빌드하고 푸시합니다.
-
시뮬레이션 작업을 제출합니다.
-
작업을 모니터링합니다.
-
출력 결과를 검토합니다.
-
리소스를 정리합니다.
사전 조건
시작하기 전에 다음 설정을 완료합니다.
-
AWS 아직 계정이 없는 경우 계정을 생성
하여 GPU 인스턴스에 액세스할 수 있는지 확인합니다( g6.4xlarge권장). -
CARLA 이미지를 빌드하기 위해 로컬에 Docker
를 설치합니다. -
계정에 Amazon ECR
리포지토리를 생성하여 빌드된 이미지를 호스팅합니다. -
Deadline Cloud CLI
를 로컬에 설치합니다.
팜 설정
Conda 대기열 환경(채널: conda-forge, 패키지: ffmpeg)과 GPU 플릿(최소: vCPU 16개 및 GiB 메모리 64개가 있는 NVIDIA GPU 1개)이 있는 대기열이 있는 Deadline Cloud 팜이 필요합니다.
IAM 권한 - 태스크 스크립트가 대기열 역할 자격 증명docker pull으로 실행되므로 대기열 역할에 Amazon ECR 풀 권한이 필요합니다. 다음과 같은 정책을 연결합니다.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ecr:GetDownloadUrlForLayer", "ecr:BatchGetImage", "ecr:BatchCheckLayerAvailability" ], "Resource": "arn:aws:ecr:REGION:ACCOUNT_ID:repository/*" }, { "Effect": "Allow", "Action": "ecr:GetAuthorizationToken", "Resource": "*" } ] }
플릿 호스트 구성 - 플릿 작업자는 Docker와 NVIDIA 컨테이너 툴킷이 필요합니다. GitHub의 Docker 및 NVIDIA Container Toolkit 호스트 구성 스크립트를
Docker 이미지 빌드 및 푸시
작업은 Docker Hub의 carlasim/carla:0.9.16 기본 이미지를 기반으로 Docker 컨테이너 내에서 실행됩니다scenario_runner하고, 단일 컨테이너에 센서 데이터를 기록할 수 있도록 Python 3.10, 및 진입점 및 캡처 스크립트의 사용자 지정 이미지 계층입니다.
Docker 이미지를 빌드하고 푸시하려면
-
Amazon ECR 리포지토리가 없는 경우 생성합니다.
aws ecr create-repository --repository-name carla-deadline --regionREGION -
autonomous_driving_carla번들의docker/디렉터리에서 이미지를 빌드합니다.cd docker/ docker build -t carla-deadline:0.9.16 .참고
Dockerfile은 Docker Hub
carlasim/carla:0.9.16에서 기본 이미지로 가져옵니다. 첫 번째 빌드는 약 8GB를 다운로드합니다. -
이미지를 Amazon ECR에 푸시합니다.
aws ecr get-login-password --regionREGION| \ docker login --username AWS --password-stdinACCOUNT_ID.dkr.ecr.REGION.amazonaws.com docker tag carla-deadline:0.9.16 \ACCOUNT_ID.dkr.ecr.REGION.amazonaws.com/carla-deadline:0.9.16 docker pushACCOUNT_ID.dkr.ecr.REGION.amazonaws.com/carla-deadline:0.9.16
시뮬레이션 작업 제출
GUI 제출자로 작업을 제출하려면
-
번들 디렉터리에서 제출자를 엽니다.
cd autonomous_driving_carla deadline bundle gui-submit . -
작업별 설정 탭의 시나리오 설정에서 ego 속도, NPC 속도 및 NPC 거리를 쉼표로 구분된 정수로 구성합니다. 교차 제품은 작업 그리드를 생성합니다.
-
카메라 뷰포인트에서 캡처할 카메라를 선택합니다. 전면이 기본 선택 사항입니다. 사용 가능한 위치는 전면, 전면 왼쪽, 전면 오른쪽, 후면, 후면 왼쪽 및 후면 오른쪽입니다.
-
고급에서 컨테이너 이미지 URI를
로 설정하고 Amazon ECR 리포지토리가 있는 AWS 리전을 설정합니다.ACCOUNT_ID.dkr.ecr.REGION.amazonaws.com/carla-deadline:0.9.16 -
제출을 선택합니다.
또는 CLI를 사용하여 제출합니다.
deadline bundle submit . \ --farm-idFARM_ID\ --queue-idQUEUE_ID\ --name "CARLA Lane Change Demo" \ -p ImageURI=ACCOUNT_ID.dkr.ecr.REGION.amazonaws.com/carla-deadline:0.9.16 \ -p AwsRegion=REGION
작업 모니터링
Deadline Cloud 콘솔에서 진행 상황을 모니터링합니다. 각 작업은 작업 테이블에 파라미터 값(EgoSpeed, NpcSpeed, NpcDistance)을 표시합니다. 작업은 일반적으로 각각 약 13분 후에 완료됩니다.
로그 출력에는 다음이 표시됩니다.
-
시나리오 생성 및 파라미터 값
-
CARLA 서버 부팅 및 준비
-
센서 캡처 진행 상황(카메라당 프레임 수)
-
각 카메라의 비디오 인코딩
-
그리드 비디오 스티칭(여러 카메라를 선택한 경우)
출력 검토
출력을 다운로드하려면
-
작업이 완료되면 제출 시 사용한 디렉터리에서 다운로드 명령을 실행하여
OutputDir경로(기본값./outputs)가 같은 위치로 확인되도록 합니다.deadline job download-output --job-idjob-id -
Deadline Cloud는 작업을 제출할 때 선택한
OutputDir디렉터리로 출력을 복원합니다.
각 작업은 파라미터에 대해 라는 하위 디렉터리에 출력을 생성합니다.
outputs/ └── ego20_npc30_dist10/ ├── rgb/ │ ├── front/frame_000001.png ... frame_000062.png │ └── rear/frame_000001.png ... frame_000062.png ├── semantic/ │ ├── front/... │ └── rear/... ├── lidar/frame_000001.ply ... ├── bbox_2d/{front,rear}/frame_*.txt ├── bbox_3d/frame_*.txt └── video/ ├── front_scenario.mp4 ├── rear_scenario.mp4 └── grid_scenario.mp4
알려진 제한 사항
-
Linux 전용 - CARLA Docker 이미지에는 NVIDIA GPU 드라이버가 있는 Linux 호스트가 필요합니다. 작업자는 Linux 플릿에서 실행해야 합니다.
-
x86_64 전용 - CARLA Docker 이미지는 ARM 아키텍처를 지원하지 않습니다.
-
모자이크 이미지 - 2개 이상의 카메라를 선택하면 작업이 RGB/시맨틱 모자이크 이미지를 생성합니다. 6개가 모두 활성 상태이면 레이아웃은 2×3이고, 그렇지 않으면 더 작은 그리드입니다.
-
캡처 속도는 카메라 수에 따라 조정됩니다. 캡처 스크립트는 플러시당 동기식으로 PNGs 씁니다. 카메라 6대 모두에서 각 플러시는 단일 카메라로 2개가 아닌 14PNGs를 쓰고 늘어난 I/O는 7FPS 대상 미만으로 플러시 속도가 느려집니다. 비디오 인코더는 7FPS로 고정되므로 동일한 시나리오에서 활성화된 카메라가 거의 없는 더 긴 카메라당 비디오와 활성화된 카메라가 많은 더 짧고 밀도가 높은 다중 보기 비디오를 생성합니다. 이 동기식 설계는 샘플의 아키텍처를 작고 쉽게 조정할 수 있도록 의도적인 절충입니다. 프로덕션 파이프라인은 센서 I/O를 병렬화합니다.
정리
지속적인 요금을 방지하려면이 자습서를 위해 생성한 리소스를 정리하십시오.
자습서 리소스를 정리하려면
-
이 자습서를 위해 특별히 GPU 플릿을 생성한 경우 GPU 플릿을 중지하거나 삭제합니다. 기존 공유 플릿을 사용한 경우 그대로 둡니다.
-
이미지가 더 이상 필요하지 않은 경우
carla-deadlineAmazon ECR 리포지토리를 삭제합니다.
관련 리소스
다음 리소스는 추가 정보를 제공합니다.