[caRLA]custom map SLAM using Unreal Engine, caRLA(1)

DDOKKON·2025년 2월 12일
post-thumbnail

[caRLA와 UE를 이용한 custom map SLAM - caRLA 초기설정]

🟢 개발환경 초기세팅에 대해 알아보자.
😊caRLA sim official website
😄caRLA Quick start Guide
😁caRLA GITHUB, UE-4 branch

🧠배경지식

caRLA : UE 기반의 자율주행차 연구를 위한 오픈소스 시뮬레이터. 교통시뮬레이션, 센서지원(Lidar,GPS등),python API(파이썬으로 쉽게 환경 제어 가능) 등을 수행할 수 있음. 또한, 측정된 값들을 matlab으로 전송하여 다양한 toolbox를 이용하여 데이터 처리를 할 수 있음.

caRLA는 서버-클라이언트 구조를 채용한다. carlaUE4.exe를 실행하면 서버가 열리게 되고(UE화면이 뜨게된다), caRLA Python API를 사용한 파이썬 파일을 실행하면 해당 서버와 통신을 해서(기존에 실행해뒀던 carlaUE4 화면이 실행한 파이썬파일에 맞게 변화된다.) 상호작용을 한다.


🛠️개발환경 세팅

⚠️ 아래의 버전이 정확히 맞아야함!

Unreal Engine 4.26.2 ver

Python 3.7.9 (64bit)

caRLA 0.9.15 release





1. caRLA 0.9.15 다운로드
🟢 caRLA 0.9.15 와 additional Maps 패키지를 다운받자.
caRLA download github

caRLA_0.9.15 -> 프로젝트 기본 베이스

AdditionalMAPS -> 추가 맵, asset 들이 담겨있음. caRLA_0.9.15를 먼저 다운 받고, 폴더안의 같은 이름의 폴더를 덮어쓰기를 해주면 됨.






2. UE 4.26.2 버전 다운로드
🟢 caRLA 0.9.15 는 UE 4.26이 Main support 버전이다.
에픽게임즈에서 4.26 UE를 받아주도록 하자.






3. VScode 가상환경 생성
🟢 caRLA에 필요한 의존성 패키지를 전역으로 관리하게 되면, 다른 프로젝트들에 영향을 줄 수 있다. 가상환경을 생성해서 독립적인 공간을 만들어주자.

⚙️vscode 가상환경 생성 관련 velog






4.의존성 패키지 설치
🟢caRLA에 필요한 의존성 패키지를 설치하자.
<path_to_caRLA> / PythonAPI / examples / requirements.txt 를 보게되면, 클라이언트에서 필요한 여러가지 파이썬 모듈들이 있다. 전부 설치해주자.






5.caRLA 실행 테스트
🟢caRLA에서 기본적으로 제공하는 예제를 통해, 개발환경이 잘 설치되었는지 확인하고, caRLA의 서버-클라이언트 구조 및 caRLA Python API를 이해해보자.
1️⃣ carlaUE4.exe (caRLA 서버 실행)

디렉토리 : <path_to_your_carlafolder>/CarlaUE4.exe

실행결과

-> 이 화면이 caRLA 모듈을 임포트한 python 파일 (caRLA 클라이언트) 와 통신하여, 실시간으로 환경이 바뀌게 된다.




2️⃣ carlaUE example client python files (caRLA 클라이언트 실행)

⚠️ 동시에 여러가지 파이썬 파일을 실행할때는 cmd나 vscode에서 여러개의 터미널을 이용해서 실행해주자.
디렉토리 : <path_to_your_carlafolder>/PythonAPI/examples/

👉generate_traffic.py (사람 및 자동차 객체 등을 추가하는 클라이언트 파일)

실행결과
-> 실시간으로 움직이는 사람 및 자동차 asset 들이 추가된것을 볼 수 있다.




👉manual_control.py (현재 환경에서 수동조정 하는 자동차 객체 생성)

실행결과
-> 위에서 만들어둔 사람, 자동차 돌아다니는 환경에서, 내가 조종할 수 있는 자동차 객체가 추가되어서 돌아 다닐 수 있다. (H를 누르면 도움말을 볼 수 있다.)






💡6.마무리

UE기반 simulator인 caRLA에 대해서 알게 되었다.
자동차 객체에 python API를 이용하여 쉽게 여러 센서들을 달고, 녹화된 이미지들 또는 라이다값들을 알아 볼 수 있다. (할 계획임)
그 결과값들을 matlab에 넣어줘서 다양한 데이터처리 및 시각화를 해볼 수 있다. (할 계획임)
사실은... rclUE (ROS2 - UE 연결 플러그인) 에 대해서 많이 알아보다가.. 빌드가 안되는 문제 때문에 2일이나 날려버렸다. 그냥 처음부터 caRLA 쓸걸 그랬다.

profile
School of Electronic Engineering. KNU

0개의 댓글