300x250

졸업 논문에서 AirSim 환경을 사용할 일이 있는데, 먼저 맥 환경과 Unity 환경에 맞춰 튜토리얼을 진행해보고, 그 과정을 기록해 둔다.

 

공식 사이트의 매뉴얼은 다음 링크를 참조하자.

 

https://github.com/microsoft/AirSim/blob/master/docs/Unity.md

 

GitHub - microsoft/AirSim: Open source simulator for autonomous vehicles built on Unreal Engine / Unity, from Microsoft AI & Res

Open source simulator for autonomous vehicles built on Unreal Engine / Unity, from Microsoft AI & Research - GitHub - microsoft/AirSim: Open source simulator for autonomous vehicles built on Un...

github.com

 

 

 

목차

     

     

     

     

     

    1. Introduction

     

    우선 AirSim은 마이크로소프트에서 개발한 언리얼 엔진 기반 자동차/드론 시뮬레이터이다.

    하지만 나의 경우 Unity를 다루어 본 경험이 있고, 마침 AirSim도 최근에 Unity Engine에서의 시뮬레이션이 가능하게 되어서, Unity에서 진행해보려 한다.

     

     

     

     

    1) AirSim on Unity (Github)

     

    링크 걸어둔 'AirSim on Unity' 깃허브 페이지를 통해 유니티 엔진에서 AirSim 시뮬레이션을 구현할 수 있다. 이 프로젝트는 Unity의 플러그인으로 동작하는 AirLib 라이브러리를 랩핑(wrapping)한 프로그램과 유니티 프로젝트를 제공한다.

     

    총 두 개의 Unity Project를 포함하는데, 하나는 자동차 시뮬레이터이고, 다른 하나는 드론 시뮬레이터이다.

     

    단, 주의할 점은 Unity에서의 AirSim은 아직 베타 버전이라는 것이다. 2021년 4월 기준으로 업데이트 되었는데, 아직 모든 AirSim 기능을 Unity에서 구현할 수 있는 것은 아닌 것으로 보인다.

    일단 Unity 환경 상에서 도전해보고, 막히는 기능이 많다면 언리얼로 다시 도전해보려 한다.

     

     

     

     

    2. MacOS 환경에서 실행 방법

     

    맥은 Windows와 다른 과정을 거쳐 실행한다.

     

     

     

     

    1) Dependencies

     

    homebrew 패키지 관리자를 통해 터미널에 다음 코드를 입력한다.

    리눅스 터미널은 맥 OS의 터미널과 99% 동일하지만, 패키치 설치 및 관리에서 차이점을 보인다.

    공식 github에는 'sudo' 를 통해 apt-get 명령어를 실행하여 'libboost-all-dev'를 설치하는데, boost라는 라이브러리에 이 라이브러리가 포함되므로 맥의 경우에는 apt-get을 대체하여 homebrew 패키지관리자를 사용하여 boost 라이브러리를 설치한다.

     

    brew install boost

     

    boost 라이브러리 설치 과정 (터미널)

     

     

     

     

    2) Unity 설치

     

    유니티를 설치한다.

     

    https://unity3d.com/get-unity/download

     

    Download Unity!

    Unity is the ultimate game development platform. Use Unity to build high-quality 3D and 2D games, deploy them across mobile, desktop, VR/AR, consoles or the Web, and connect with loyal and enthusiastic players and customers.

    unity3d.com

     

    위 링크에서 Unity Hub를 설치할 수 있고, 허브 내에서 여러 버전의 유니티를 설치하고, 프로젝트를 생성하거나 관리할 수 있다.

     

    Unity Hub

     

    유니티 허브를 켜면 다음과 같은 창이 뜨는데, 왼쪽의 '설치' 탭에서 Unity 2019.3.12 버전을 다운받는다.

    버전에 따라 호환성이 달라질 수 있으므로, 튜토리얼과 버전을 맞춰주는 것이 좋다. 자세한 내용은 다음 글을 참조하자.

     

    https://jjuke-brain.tistory.com/55?category=923168#3._Unity_%ED%94%84%EB%A1%9C%EC%A0%9D%ED%8A%B8%EB%A5%BC_Github%EB%A1%9C_%EA%B4%80%EB%A6%AC%ED%95%A0_%EB%95%8C_%EC%A3%BC%EC%9D%98%ED%95%A0_%EC%A0%90 

     

    Github로 Unity 프로젝트 관리하기

    Unity를 여러 개발자가 함께 개발할 때 프로젝트를 관리하려면 Github를 사용하는 것이 일반적이다. 평소 Github를 자주 사용했지만, 유니티를 사용할 때에는 여러가지 추가적인 작업들을 해주어야

    jjuke-brain.tistory.com

     

    유니티 에디터 설치 창

     

    설치 창에서는 원하는 버전이 보이지 않으므로,

    아래의 '베타 프로그램 웹페이지'에서 직접 찾아보자.

     

    Unity 특정 버전 설치

     

    위의 '아카이브' 탭에서 '아카이브 다운로드'를 클릭하여 웹페이지에 접속한다.

     

    2019.3.12 버전 선택

     

    설치 완료 화면

     

    그 후, '새 프로젝트'를 선택하여 설치한 버전의 유니티로 프로젝트를 생성한다.

     

     

     

     

     

    3) Build AirSim

     

    만약 깃을 사용하여 프로젝트를 관리하고 싶다면, 다음 글을 참조하자.

     

    https://jjuke-brain.tistory.com/55

     

    Github로 Unity 프로젝트 관리하기

    Unity를 여러 개발자가 함께 개발할 때 프로젝트를 관리하려면 Github를 사용하는 것이 일반적이다. 평소 Github를 자주 사용했지만, 유니티를 사용할 때에는 여러가지 추가적인 작업들을 해주어야

    jjuke-brain.tistory.com

     

    먼저, AirSim 깃허브 프로젝트를 clone해오자.

    Git clone을 통해 필요한 자료들을 생성한 폴더에 받아온다. 편하게 Github Desktop을 사용하였다.

     

    git clone

     

     

     

    (1) 빌드

     

    먼저 빌드를 위해 AirSim 폴더에서 'setup.sh', 'build.sh' 파일을 실행해준다.

    (터미널의 작업 폴더 경로, 즉 'AirSim' 디렉토리에서)

    ./setup.sh
    ./build.sh

     

     

    setup 실행 결과

     

    build 실행 결과

     

    이어서 AirSim 하위의 Unity 디렉토리에서 빌드를 한 번 더 진행한다.

    이는 AirSim Wrapper를 빌드하는 과정이다.

     

    ('AirSim → Unity' 디렉토리에서)

    ./build.sh

     

    그런데 아래와 같이 오류가 발생했다.

     

    Build 진행 및 오류 (1)

     

    Build 진행 및 오류 (2)

     

    오류 내용에 관한 긴 삽질을 해본 결과,

    'AirSim → Unity → build.sh' 파일을 텍스트 편집기로 열어보면 위 오류와 같이 clang의 위치를 명시해주는 부분이 있는데, 이를 자신의 로컬 환경에 맞게 바꿔주어야 하는 것이었다.

    나의 경우, '/usr/bin/clang', '/usr/bin/clang++'으로 각각 바꿔주어야 했다. (위 오류 결과 사진에서는 clang++부분만 경로를 한 번 바꾸어 보아서 clang++ 오류는 없어지고, clang 오류만 남은 상태이다.)

     

    보통은 '/usr/bin/clang', '/usr/bin/clang++'이 맥OS에서의 default 경로인듯 하다.

     

    <수정 전>

     

    clang, clang++ 경로 변경 (1)

     

    <수정 후>

     

    clang, clang++ 경로 변경 (2)

     

    이후에 다시 './build.sh' 명령어로 빌드 파일을 실행하면 정상적으로 빌드가 되는 것을 확인할 수 있다.

     

     

     

    4) 튜토리얼 프로젝트 생성

     

    이제 'AirSim → Unity → UnityDemo' 폴더에 새로운 Unity 3D 프로젝트를 추가해준다.

    (깜빡하고 유니티 버전을 변경해주지 않았는데, 2019.3.12 버전으로 변경해주도록 한다.)

     

    New Project

     

    생성한 프로젝트를 실행시키고, 아래 창에서 Project → Assets → Scenes 디렉토리를 살펴보면, 'SimModeSelector'라는 씬이 있을 것이다.

    이 씬을 Hierarchy에 추가해주면 다음과 같은 결과가 나타난다.

     

    Scene 포함시키기

     

    주의할 점은, 'CarDemo'나 'DroneDemo' 씬을 직접 Hierarchy 창에 추가시키면 안된다는 것이다.

     

    실행버튼을 눌러보면, 시뮬레이션이 시작되고, 버튼을 클릭하여 차 시뮬레이션 또는 드론 시뮬레이션을 시작할 수 있다.

     

    실행결과

     

    차량의 컨트롤 방법은 아래와 같다.

    • WASD 또는 방향키 버튼으로 앞뒤좌우 이동
    • 카메라 뷰 변경: 0, 1, 2, 3
    • Recording: 빨간 레코드 버튼을 누르면, '~Documents/AirSim/(녹화 일시)' 위치에 녹화된 파일이 저장된다.

     

    다음 글에서 커스텀 환경을 빌드하는 방법을 알아보자.

    728x90
    • 네이버 블러그 공유하기
    • 네이버 밴드에 공유하기
    • 페이스북 공유하기
    • 카카오스토리 공유하기