开源自动驾驶仿真平台 AirSim (2) - 编译 AirSim

本文提供了详细的步骤指导如何在Windows环境下使用Visual Studio 2015 Update 3编译AirSim,包括安装必要软件、配置环境变量、解决常见错误等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

AirSim 的官方 Github: https://github.com/Microsoft/AirSim

对于 Unreal Engine 来说,AirSim 其实是作为一个插件存在,说白了就是把无人车,无人机以插件的形式加入 Unreal 的场景中。

下面是如何编译 AirSim。

1 下载 Visual Studio 2015 Update 3

建议大家下载 Visual Studio Professional 2015 with Update 3,我之前使用的 Visual Studio Community 2015 with Update 3 遇到一些问题。不过具体是不是 Community 版本造成的,我后来也不是特别清楚。

只有 Community 是免费版的。

鉴于碰见朋友找不到下载链接,给一个 Visual Studio 2015 with Update 3 的传送门。

http://blog.youkuaiyun.com/luckypeng/article/details/54342659

*官方强调了只有 VS 2015 update 3 他们测试过,其他版本即使是 2017 版也可能带来各种问题。

2 通过 VS 2015 内置 Git 克隆 AirSim 到本地 [1]

在 VS 中选择 Team,然后选择 Mange Connections

clip_image001

然后,在右侧的 Team Explorer 中展开 Local Git Repositories。选择 Clone,第一行输入 URL 为 AirSim 的官方 Github https://github.com/Microsoft/AirSim, 第二行选择本地的存储地址。然后,点击 Clone。

3 配置 eigen [1]

简单说一下,eigen是开源的 C++ 库, 用于线性代数,矩阵,矢量运算,数值分析及其相关算法 [2]。

在官网下载 eigen,http://eigen.tuxfamily.org/index.php?title=Main_Page

将其解压在一个新文件夹中,并将此文件夹的一级目录命名为 eigen。

打开设置系统环境变量:开始 -> 右键“计算机”-> 选择“属性” -> 在左侧,选择“高级系统设置”-> 高级中找到“系统变量”

在系统变量中新建一个,输入变量名字 EIGEN_ROOT,然后将变量值设置为自己刚刚建立的 eigen 目录。

clip_image002

确定后入下图,

clip_image003

但是,在这里一定要把所有的确定键都按了,然后重启电脑,这里的配置才能生效。

*在Github上有人说可以将这个 eigen 库直接拷贝到 AirSim/AirLib 目录下,这样虽然保证我在下面一步能够编译成功,最终还是在和 Unreal 一起编译的时候出现了问题。很多人最后是通过从 Win7 换到 Win10 解决的。但是,我发现只要使用环境变量的配置方式能够保证最后的成功的。

*所以,不要去拷贝这个库!

*在这一步,如果使用的是学校或者公司的电脑,一定要配置到系统变量中。我使用公司的电脑,用户管理这里做的比较复杂,配置到用户变量中完全没有起作用。这才导致我会尝试去拷贝这个库,但这是一个完全错误的做法。如果你的电脑环境也很复杂,请直接修改在系统变量。

4 修改一个运用 eigen 部分代码的 bug

我不太清楚这个 bug 出现了很久为什么一直没有更正。这个 bug 是 [1] 中的大牛发现的。它是一个在注释部分使用了非 UTF-8 编码的双引号导致的。

我们需要进入到 AirSim 目录中,找到 \AirSim\AirSim_3\AirLib\deps\eigen3\Eigen\src\Core\arch\CUDA\half.h

打开 half.h 找到第 16 行的一个 "AS IS",将它的引号替换一下。

clip_image004

5 更新 Powershell [3]

由于 Win7 自带的 Powershell 只有2.0,我们需要用到高版本的 Powershell。

首先,查看自带 Powershell的版本。开始->附件->Windows Powershell,打开 Powershell。输入get-host查看版本 [4]。

clip_image005

在网站下载 Powershell 5.0版本。因为微软没有提供独立的 Powershell 更新包,它被放在了Windows Management Framework”的组件中。

请在下面的链接中下载 https://www.microsoft.com/en-us/download/details.aspx?id=50395

clip_image006

.msu 文件即微软的 microsoft software update 的缩写。

如果担心出新问题,请提前在控制面板中卸载旧版本的 Windows Management Framework。

6 Build AirSim

按下 win+R 运行cmd,进入你的工程目录,运行build.cmd。安照官方的教程,如果完整执行上面所有步骤,此处应该会构建成功。但是我们使用他人开源程序时,往往在编译这一步都会遇到各种问题,以至于最终放弃。不过不要心急,这是由于每个人的系统环境不一样导致的。笔者在这里也遇到了不少麻烦。第一次运行是报错 ‘MSBuild’不是内部或外部命令,也不是可运行的程序。这个问题非常好解决,问题是MSBuild所在的目录未添加至环境变量所导致的,找到根目录,添加到path路径下即可。

path路径

终于到要 Build 的时候了。如果上面配置都正确的话,从开始中打开 Developer Command Prompt for VS 2015。Windows 的命令行操作和 Linux 大致一样,进入目录使用的依然是 cd 命令。不过,如果从 c 盘进入 d 盘,不需要要输入 cd 直接在命令行输入 "d:"。列出目录不再是 "ls",而换成了 "dir"。然后,进入到 AirSim的目录中,执行 build.cmd。

clip_image007

写在后面

如果顺利的话就可以编译成功了,但是大家往往在这里会遇到各种各样的问题。建议,首先看一下是不是都按照上面的做了。然后,如果还有问题可以在 AirSim 官方的 Github 中的 Issues 查看一下。

AirSim的 Issues: https://github.com/Microsoft/AirSim/issues

AirSim 的官方 Github: https://github.com/Microsoft/AirSim

### Python 自动驾驶仿真器及相关开源库 在自动驾驶领域,Python 是一种非常流行的编程语言,因为它具有丰富的生态系统和易用性。以下是一些与 Python 相关的自动驾驶仿真器、开源库及项目教程: #### 1. CARLA CARLA(Car Learning to Act)是一个广泛使用的开源仿真平台,支持多种自动驾驶场景的模拟。它以 Python 为核心接口,提供了丰富的 API 和工具链来开发和测试自动驾驶算法。CARLA 支持 OpenDrive 和 OpenScenario 标准[^3],并且能够模拟多种传感器数据(如摄像头、激光雷达等)。以下是安装和使用 CARLA 的基本步骤: ```bash # 克隆 CARLA 仓库 git clone https://github.com/carla-simulator/carla.git cd carla # 安装依赖并编译 ./Setup.sh ./Build.sh ``` CARLA 提供了详细的 Python API 文档,用户可以通过这些 API 控制车辆行为、生成交通流以及读取传感器数据。 #### 2. AirSim AirSim 是由微软开发的一个开源仿真平台,最初用于无人机仿真,后来扩展到支持自动驾驶汽车仿真。AirSim 使用 Unreal Engine 或 Unity 构建环境,并通过 Python 接口与用户交互。其主要特点包括高精度物理引擎和多传感器支持。以下是 AirSim 的安装命令: ```bash # 安装 AirSim pip install airsim # 下载示例环境 git clone https://github.com/microsoft/AirSim.git ``` AirSim 提供了丰富的教程和示例代码,帮助开发者快速上手。 #### 3. LGSVL Simulator LGSVL Simulator 是另一个功能强大的开源自动驾驶仿真平台,专注于 Apollo 和 Autoware 等主流自动驾驶框架的集成。它支持 ROS 和 Python 接口,并提供多种预定义的地图和车辆模型。以下是安装 LGSVL 的基本步骤: ```bash # 安装 Docker 并拉取 LGSVL 镜像 docker pull lgsvlsimulator/simulator:2021.4 # 启动容器 docker run -it --rm \ -p 8090:8080 \ -p 8181:8181 \ lgsvlsimulator/simulator:2021.4 ``` #### 4. Huawei SMARTS 华为的 SMARTS 平台是一个高性能的自动驾驶仿真工具,支持复杂的交通场景模拟。它可以通过 Python 脚本进行配置和扩展。以下是 SMARTS 的安装步骤[^4]: ```bash # 克隆 SMARTS 仓库 git clone https://github.com/huawei-noah/SMARTS.git cd SMARTS # 安装依赖 bash utils/setup/install_deps.sh # 创建虚拟环境并安装包 python3.8 -m venv .venv source .venv/bin/activate pip install --upgrade pip pip install -e '.[camera-obs,sumo,test,example]' --config-settings editable_mode=strict # 运行测试 make sanity-test ``` #### 5. NERF 和 3DGS 虽然 NERF(Neural Radiance Fields)和 3DGS(3D Geometry Synthesis)并非传统意义上的仿真器,但它们是自动驾驶仿真领域的前沿技术。这些技术利用神经网络表达空间,可以生成更真实的传感器数据,从而改善自动驾驶算法的训练效果[^2]。开发者可以通过 PyTorch 或 TensorFlow 实现相关模型。 --- ### 示例代码:CARLA 中的简单 Python 脚本 以下是一个简单的 Python 脚本,展示如何在 CARLA 中启动一辆自动驾驶车辆并读取传感器数据: ```python import carla # 连接到 CARLA 服务器 client = carla.Client('localhost', 2000) world = client.get_world() # 设置蓝图库和起点 blueprint_library = world.get_blueprint_library() vehicle_bp = blueprint_library.filter('model3')[0] spawn_point = world.get_map().get_spawn_points()[0] # 生成车辆 vehicle = world.spawn_actor(vehicle_bp, spawn_point) # 添加摄像头传感器 camera_bp = blueprint_library.find('sensor.camera.rgb') camera_transform = carla.Transform(carla.Location(x=1.5, z=2.4)) camera = world.spawn_actor(camera_bp, camera_transform, attach_to=vehicle) # 数据回调函数 def process_image(image): image.save_to_disk('output/%06d.png' % image.frame) camera.listen(process_image) # 模拟运行一段时间 world.wait_for_tick() ``` --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值