본문 바로가기

가볍게 하는 강화학습

CARLA 자율 주행 학습 (1)

유명한 자율 주행 simulator인 CARLA를 사용하여 강화학습 기반 자율 주행 모델을 학습해보고자 한다.

1. CARLA 설치

처음 부터 build를 해보아도 되지만, 먼저 build된 환경을 사용하여 학습해보고자 하였다. 원하는 맵을 만드는 것은 다음에 해보도록 하겠다.

https://github.com/carla-simulator/carla/releases

  • [Windows] CARLA_0.9.13.zip
  • [Windows] AdditionalMaps_0.9.13.zip

위의 두 파일을 다운로드 받고 CARLA_0.9.13.zip 파일의 압축을 풀면 CarlaUE4 라는 실행 파일이 나온다. 이를 실행하면 다음과 같은 맵을 확인할 수 있다.

2. 필요 라이브러리 설치

먼저 CARLA 프로그램과 통신하기 위해 필요한 필요 라이브러리는 carla 이다.

pip install carla

Python 3.9 버전 이상부터는 carla 라이브러리를 설치하는데 문제가 생긴다.

Python 3.8 버전을 설치하는 것을 추천한다.

3. carla 라이브러리를 통한 통신

carla의 Client class를 통해 CARLA 프로그램과 통신할 수 있다.

같은 기기에서 CARLA을 실행중이라면 IP는 localhost이고, 따로 설정을 해주지 않았다면 기본 port는 2000번 이다.

>>> client = carla.Client('localhost', 2000)

load_world 함수를 사용하여 map을 바꿀 수 있고, start_recorder를 사용하여 logging을 수행할 수 있다.

>>> client.load_world('Town03')
>>> client.start_recorder('recording.log')

현재 환경의 정보가 필요할 땐 get world를 활용하여 world 객체를 받아오고, get_map, get_weather 함수같은 것들을 활용하여 정보를 받아올 수 있다.

>>> world = client.get_world()
>>> level = world.get_map()
>>> print(level)
Map(name=Carla/Maps/Town03)
>>> weather = world.get_weather()
>>> print(weather)
WeatherParameters(cloudiness=10.000000, cloudiness=10.000000, precipitation=0.000000, 
                  precipitation_deposits=0.000000, wind_intensity=10.000000, sun_azimuth_angle=180.000000, 
                  sun_altitude_angle=30.000000, fog_density=2.000000, fog_distance=0.750000, fog_falloff=0.100000, 
                  wetness=0.000000, scattering_intensity=1.000000, mie_scattering_scale=0.030000, rayleigh_scattering_scale=0.033100)

지금까지 CARLA 환경의 기본 환경 설정을 알아보았다.

 

 

Reference

https://carla.readthedocs.io/en/latest/

'가볍게 하는 강화학습' 카테고리의 다른 글

CARLA 자율 주행 학습 (2)  (0) 2022.10.06