AirSim은 원래 언리얼 엔진 기반으로 만들어졌는데, 유니티를 다뤄 본 경험이 많기 때문에 유니티로 진행하려 했다. 그런데 검색을 통해 얻을 수 있는 정보가 너무 한정적이어서, 결국 언리얼 엔진을 깔아 다시 시작해본다.
만약 유니티를 활용한 AirSim 활용법이 궁금하다면, 다음 글을 살펴보자.
https://jjuke-brain.tistory.com/77
모든 절차는 microsoft의 매뉴얼을 따랐다. 자세한 내용은 다음 링크를 참조해보자.
https://microsoft.github.io/AirSim/build_macos/
목차
1. Pre-build Setup
도커를 이용하는 방법도 있지만, 호스트에 설치하여 맥의 리소스를 최대한 활용하여 진행해보려 한다.
1) Download Unreal Engine
가장 먼저 언리얼 엔진을 다운받아야 한다.
아래 링크에 들어가 런처를 다운로드받자.
https://www.unrealengine.com/ko/download
처음 런처를 실행하면, 위와 같은 화면이 보일 것이다.
왼쪽에 보이는 '언리얼 엔진' 탭을 선택하고, 위쪽에서 '라이브러리'를 누른 후 특정 버전 엔진을 다운받을 수 있다.
AirSim을 사용하기 최적화된 Unreal 4.27 버전을 다운로드받자.
이제 실행을 눌러보는데..!
역시 쉽지 않다.
그나마 간단하게 터미널에 다음 내용만 입력해주면 된다.
sudo xcode-select -s /Applications/Xcode.app/Contents/Developer
2) Build AirSim
이제 깃허브에 있는 AirSim 관련 파일들을 클론한 후, 빌드해보자.
깃허브 주소는 아래와 같다.
https://github.com/microsoft/AirSim
이제 github 프로젝트를 진행할 디렉토리로 이동한다.
맥을 사용하는 사람들이 잘 모르는 부분이 있던데, 파인더 아래쪽에서 폴더명을 우클릭하면 해당 디렉토리 경로에서 터미널을 바로 실행할 수 있다.
이제 터미널에서 git을 사용하여 AirSim 관련 파일들을 클론해보자.
git clone https://github.com/Microsoft/AirSim.git
cd AirSim
참고로 'cd'는 해당 디렉토리로 이동한다는 뜻이다.
'cd AirSim'은 프로젝트를 진행할 디렉토리에서 AirSim이라는 하위 디렉토리로 이동하는 것을 말한다.
이제 AirSim 폴더에 있는 'setup.sh'파일과 'build.sh'파일을 실행하여 빌드를 진행한다.
./setup.sh
./build.sh
3) Build Unreal Environment
마지막으로, 언리얼 엔진에서 자율주행 프로젝트를 진행하기 위해 언리얼 환경을 빌드해주어야 한다.
클론해온 AirSim폴더에 'Blocks Environment'라는 환경이 있는데, 원한다면 직접 환경을 만들어 줄 수도 있다.
만약 직접 환경을 세팅하고 싶다면, 다음 링크를 참조하자.
https://microsoft.github.io/AirSim/unreal_proj/
2. AirSim 사용 방법
AirSim 디렉토리에서 'Unreal → Environments → Blocks' 디렉토리로 들어간다.
Blocks 디렉토리에서 터미널을 켜서 아래와 같이 입력하여 GenerateProjectFiles 파일을 실행해준다.
./GenerateProjectFiles.sh 'UE_PATH'
여기서 UE_PATH란, Unreal 설치 폴더 경로이다. (default : /Users/Shared/Epic Games/UE_4.27/)
GenerateProjectFile을 실행하면 다음과 같이 XCode 워크스페이스를 만들어 준다. (차후에 vscode 등의 워크스페이스를 만들어 주고 싶다면, 언리얼엔진 상에서 환경설정을 바꿔주면 된다. CLion, VSCode, XCode로 가능하다.)
XCode 워크스페이스를 열고, 빌드를 해주었는데..
또 오류가 뜬다.
찾아보니, XCode가 업데이트되면서 컴파일러가 엄격해져 기존에 warning만 띄웠던 것도 에러를 발생시키며 빌드가 되지 않는 것이었다.
(변수명이 선언만 되고 사용되지 않았다는 뜻)
Block 디렉토리에서 'Source'라는 폴더 안에 'Blocks.Target.cs', 'BlocksEditor.Target.cs' 파일이 보일 것이다.
두 파일에 다음과 같은 코드를 추가해주자.
bOverrideBuildEnvironment = true;
AdditionalCompilerArguments = "-Wno-unused-but-set-variable";
이제 빌드가 정상적으로 (warning 정도만 몇 개 띄워주고) 된다.
실행을 눌러보면 다음과 가같이 <Blocks>라는 프로젝트가 실행된다.
왼쪽 화면은 XCode (워크스페이스) 화면, 오른쪽 화면은 언리얼 화면이다.
확실히 유니티를 쓰다가 넘어와서 그런지, 언리얼은 좀 허접해보인다 ..
어쨌든, 실행에 성공했으니 다음으로 자율주행 환경을 만들어 보자!
최근댓글