iamaisim/ProjectAirSim
Project AirSim is Microsoft's evolution of AirSim, an advanced simulation platform for building, training, and testing autonomous systems in high-fidelity virtual environments
Project AirSim – 개요
Project AirSim은 드론, 고정익 항공기, 무인 지상 차량(UGV)과 같은 자율 시스템을 위한 오픈소스, 엔진 독립적 시뮬레이션 플랫폼입니다. Microsoft의 원래 AirSim 및 Project AirSim 코드베이스를 기반으로 하며 현재 IAMAI Consulting이 유지 관리합니다. 핵심 시뮬레이션 라이브러리와 API는 3D 엔진 없이(경량 Project AirSim Runtime) 실행하거나 Unreal Engine 5 내에서 호스팅하여 완전한 3D 세계, 렌더링된 센서, 복잡한 환경을 제공할 수 있습니다.
핵심 기능(main 브랜치 / 1.0.0 릴리스 기준)
| 기능 | 세부 사항 |
|---|---|
| 차량 유형 | 구성 가능한 단일 또는 다중 차량 장면; 드론, 고정익 항공기(JSBSim Cessna 310, Skywalker X8), UGV(SimpleDrive SUV Blueprint). |
| 물리 엔진 | Fast Physics (C++), JSBSim, Simulink (MATLAB) – 사용자 정의 C++ 레이어로 확장 가능. |
| 비행 컨트롤러 | PX4, ArduPilot용 SITL/HITL 지원, 수동 제어. |
| 센서 | 카메라, LiDAR(GPU 360°), 레이더, IMU, GPS, 기압계, 자기계, 대기 속도 등(Runtime에서 비렌더링 센서도 사용 가능). |
| 다중 차량 및 군집 | 공유 시뮬레이션에서 여러 차량을 함께 실행하고 센서 제품군을 구성할 수 있습니다. |
| API 액세스 | Python 및 C++ 클라이언트 라이브러리; ROS 2 C++ 브리지. |
| 실행 모드 | • Unreal 호스트 – 전체 렌더링, 메시 충돌, 동적 도시. • Runtime 호스트 – 헤드리스, 렌더링 없음, 빠른 물리; 평평한 지면 충돌로 제한. |
| 크로스 엔진 참조 | 실험적 Unity 호스트(참조 전용, 지원되지 않음). |
일반적인 사용 사례
- 지각 기반 제어 – 예: 실시간 카메라 피드를 사용한 자율 착륙.
- 환경 테스트 – 차량이 비행하는 동안 날씨, 바람, 조명을 조정합니다.
- 인프라 검사 – 대규모 Unreal 세계에서 풍력 터빈 또는 재생 에너지 자산 검사.
- 군집 연구 – 수십 대의 고정익 또는 회전익 항공기를 동시에 시뮬레이션합니다.
- 에어택시 및 도시 모빌리티 – 밀집된 도시 모델에서 자율 에어택시 운영을 테스트합니다.
- 로봇 통합 – 제공된 브리지를 통해 ROS 2 스택, PX4 또는 사용자 정의 컨트롤러를 연결합니다.
시작하기
- 빠른 평가 – 최신 GitHub 릴리스에서 사전 빌드된 환경을 다운로드하고 사전 빌드 환경 가이드를 따라 장면을 시작하고 Python으로 차량을 제어합니다.
- 전체 빌드 – Unreal 5.2/5.7/5.8을 설치하고
UE_ROOT를 설정하고setup_linux_dev_tools.sh(또는 Windows 해당)를 실행한 다음 시뮬레이션 라이브러리를 빌드합니다(./build.sh simlibs_debug). 프로젝트 파일을 생성하고 VS Code/Visual Studio에서 작업 공간을 엽니다. - 헤드리스 모드 –
-RenderOffScreen으로 패키징된 Unreal 빌드를 실행하거나-nullrhi로 렌더링을 완전히 비활성화하여 클라우드 또는 CI 워크로드에 사용합니다. - Runtime 전용 – 경량 Project AirSim Runtime을 사용하여 Unreal 없이 물리 및 비렌더링 센서를 실행합니다(컨트롤러 개발 또는 대규모 배치 실행에 유용).
아키텍처 개요
클라이언트 라이브러리 (Python / C++ / ROS2) <---> 시뮬레이션 호스트
| |
| • Runtime(헤드리스) | • 시뮬레이션 라이브러리(핵심 물리, 로봇 정의, 센서 모델)
| • Unreal Engine 플러그인(렌더링) |
두 호스트는 동일한 핵심 라이브러리를 공유하므로 Runtime용으로 작성된 코드는 Unreal 호스트에서 변경 없이 작동합니다.
플랫폼 지원
- Linux – Ubuntu 22.04(기본), Clang 13 또는 Unreal의 패키지된 툴체인 사용.
- Windows – Windows 11, Visual Studio 2022(MSVC 14.37/14.44).
- macOS – Apple Silicon(ARM64) 헤드리스 빌드 및 라이브러리 테스트용.
- Unreal Engine – 5.2, 5.7, 5.8.
- Python – ≥ 3.10(4 미만).
- ROS 2 – Ubuntu 22.04의 Humble.
커뮤니티 및 지원
- GitHub – 버그, 기능, 기여를 위한 이슈, 토론, 풀 리퀘스트.
- Discord – 실시간 커뮤니티 채팅.
- 전문 서비스 – IAMAI는 시뮬레이션 준비, PX4/ROS 2 통합, 사용자 정의 Unreal 환경, 검증 파이프라인에 대한 컨설팅을 제공합니다.
라이선스
핵심 시뮬레이션 코드, API, 구성 시스템은 MIT 라이선스로 배포됩니다. 타사 구성 요소(예: JSBSim 항공기 정의, Unreal 자산)는 원래 라이선스를 유지합니다. 자세한 내용은 NOTICE.txt 및 thirdparty/Licenses/를 참조하세요.
결론: Project AirSim은 자율 차량 연구 및 개발을 위한 유연하고 모듈식 시뮬레이션 스택을 제공하며, 무거운 3D 엔진을 사용하거나 사용하지 않고도 사용할 수 있고 ROS 2, PX4, ArduPilot과 같은 인기 있는 로봇 도구와 직접 통합됩니다.
관련
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트