HomeAbout Me

차량 자율주행 모델 개발 - 1.환경 구축

By kuper0201
Published in 인공 지능
2024-10-13
1 min read
차량 자율주행 모델 개발 - 1.환경 구축

Table Of Contents

01
바로가기
02
서론
03
시뮬레이터 선택
04
환경 구축
05
마무리

바로가기

     차량 자율주행 모델 개발 - 1.환경 구축(현재 글)

     차량 자율주행 모델 개발 - 2.모델 구현

     차량 자율주행 모델 개발 - 3.결과 확인

     RL_Self_Driving Github


서론

  AI 분야에는 다양한 모델 아키텍처와 학습 기법이 존재합니다. 강화학습 기법을 경험해 보고자 프로젝트를 계획하였으며 인간의 개입 없이 차선을 따라 스스로 주행하는 모델을 학습하고자 하였습니다. 하지만 실제 차량을 이용해 학습과 테스트를 진행하는 것은 위험하고 비용이 많이 드는 일입니다. 따라서 모델의 자유로운 학습과 테스트가 가능한 환경의 구축이 필수적입니다.


시뮬레이터 선택

모델의 자유로운 학습과 테스트를 보장하기 위해서는 시뮬레이션 환경을 사용하는 것이 가장 합리적인 선택이라고 생각하였습니다. 따라서 차량의 주행이 자연스럽고, 현실과 비슷한 주행 환경을 제공하는 시뮬레이션 환경을 탐색하였고, 아래와 같은 시뮬레이터들을 찾을 수 있었습니다.

  1. Carla
    • 자율 주행 차량 개발에 특화된 오픈 소스 시뮬레이터
    • 충돌 센서, LiDAR 센서 등의 다양한 센서 제공
  2. AirSim
    • 정밀한 물리 학습에 특화된 오픈 소스 시뮬레이터
    • 차량, 드론 등의 다양한 플랫폼 지원
  3. SUMO
    • 교통 시뮬레이션에 특화된 오픈 소스 시뮬레이터
    • 경량 시뮬레이터(GPU 필요 없음)

해당 리스트 중 Carla 시뮬레이터의 문서화 수준이 높을 뿐 아니라 많은 연구자들이 자율주행 차량의 연구 및 개발을 위해 주로 사용하는 시뮬레이터인 것 같았습니다. 이러한 이유로 프로젝트 진행을 위한 시뮬레이터로 Carla를 선정하였습니다.


환경 구축

시뮬레이터를 선정하였으므로 이를 설치하고 Python과 상호작용이 가능하게 설정해야 합니다.

1. Carla 설치

Carla는 공식 웹사이트에서 제공하는 다운로드 링크를 통해 설치할 수 있습니다. 설치 후, 환경 변수 설정과 같은 초기 작업이 필요합니다.

주요 설치 단계:

  • Carla 서버 실행 파일 다운로드 및 압축 해제
  • 실행 가능한 경로를 시스템 환경 변수에 추가
  • 서버 실행 테스트 (CarlaUE4.sh 또는 CarlaUE4.exe 실행)

2. Python 라이브러리 설치

Python을 활용해 Carla와 상호작용하기 위해서는 Carla가 제공하는 Python 라이브러리를 설치해야 합니다. 다음과 같은 명령어로 라이브러리 설치가 가능합니다.

pip3 install carla

3. 상호작용 테스트

Carla의 설치가 완료 되었으므로, 5초간 가속, 5초간 감속을 반복하는 스크립트를 통해 Carla와 Python을 연결하여 정상적인 상호작용이 가능한지 확인해 보겠습니다. 스크립트는 다음과 같습니다.

코드 보기(Python)
import carla
import time
import threading

try:
    # CARLA 서버 연결
    client = carla.Client('localhost', 2000)
    client.set_timeout(10.0)

    # 월드 로딩
    world = client.get_world()
    blueprint_library = world.get_blueprint_library()

    # 차량 스폰
    vehicle_bp = blueprint_library.filter('vehicle.*')[0]
    spawn_point = world.get_map().get_spawn_points()[0]
    vehicle = world.spawn_actor(vehicle_bp, spawn_point)

    # Spectator가 차량을 따라가도록 설정하는 함수
    spectator = world.get_spectator()
    def follow_vehicle():
        while True:
            vehicle_transform = vehicle.get_transform()
            spectator_transform = carla.Transform(
                vehicle_transform.location + carla.Location(x=-10, z=15),  # 차량 위 15m 위치
                carla.Rotation(pitch=-45)  # 아래로 바라보는 시점
            )
            spectator.set_transform(spectator_transform)
            time.sleep(0.05) # 20Hz로 업데이트

    # Spectator를 따라가게 하는 스레드 시작
    follow_thread = threading.Thread(target=follow_vehicle, daemon=True)
    follow_thread.start()

    # 시뮬레이션 루프
    while True:
        # 차량 가속
        vehicle.apply_control(carla.VehicleControl(throttle=0.5))
        time.sleep(5)

        # 차량 감속
        vehicle.apply_control(carla.VehicleControl(throttle=0.0, brake=1.0))
        time.sleep(5)

except Exception as e:
    print(f"Error: {e}")

코드를 실행하면 아래의 영상과 같이 차량이 5초간 가속/5초간 감속을 반복하는 것을 확인 할 수 있습니다.


마무리

이번 글을 통해 안전하고 자유로운 자율 주행 모델을 학습하기 위한 환경을 구축하고, Python과의 상호작용을 테스트 할 수 있었습니다. 환경 구축을 성공적으로 진행하였으므로, 다음 단계로는 실제로 강화 학습 모델을 구현해야 할 것입니다.

다음 글에서는 강화 학습 모델 구현을 위해 에이전트와 보상 함수 설계를 진행하며, 모델 학습 및 평가 과정을 다뤄 보도록 하겠습니다.


Tags

#AI#reinforcement-learning#projects#autonomous-driving
Previous Article
피아노 음악 채보 - 3.후처리 및 예측
kuper0201

kuper0201

안녕하세요!

Related Posts

피아노 음악 채보 - 3.후처리 및 예측
피아노 음악 채보 - 3.후처리 및 예측
2023-09-13
1 min

Quick Links

HomeAbout Me

Social Media