当前位置: 首页 > news >正文

在Ubuntu 20.04上为CARLA 0.9.14手动打上鱼眼相机补丁(附编译避坑指南)

在Ubuntu 20.04上为CARLA 0.9.14手动打上鱼眼相机补丁(附编译避坑指南)

自动驾驶仿真领域的研究者常常需要模拟真实世界中的环视感知系统,而鱼眼相机因其宽广的视野范围成为关键组件。然而,CARLA官方版本并未内置鱼眼相机支持,这促使我们探索手动为CARLA 0.9.14打上非官方鱼眼相机补丁的方案。本文将详细记录从环境准备到最终测试的全过程,特别针对编译过程中可能遇到的各类版本冲突和错误提供解决方案。

1. 环境准备与依赖安装

在开始之前,请确保你的系统满足以下硬件要求:

  • 至少120GB的可用磁盘空间(Unreal Engine约需95GB,CARLA约需25GB)
  • 支持Vulkan的NVIDIA显卡
  • Ubuntu 20.04操作系统

首先安装必要的依赖项:

sudo apt-get update && sudo apt-get install wget software-properties-common sudo add-apt-repository ppa:ubuntu-toolchain-r/test wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key|sudo apt-key add - sudo apt-add-repository "deb http://apt.llvm.org/focal/ llvm-toolchain-focal main"

接着安装编译工具链和Python依赖:

sudo apt-get install build-essential clang-10 lld-10 g++-7 cmake ninja-build \ libvulkan1 python python-dev python3-dev python3-pip libpng-dev libtiff5-dev \ libjpeg-dev tzdata sed curl unzip autoconf libtool rsync libxml2-dev git

注意:为避免虚幻引擎和CARLA依赖项之间的兼容性问题,建议使用相同的编译器版本和C++运行时库编译所有内容。

2. Unreal Engine 4.26.2的编译与补丁应用

由于Unreal Engine源码托管在私有仓库,需要先在Epic Games账户中关联GitHub账号。完成关联后,通过以下命令克隆源码:

git clone --depth 1 -b carla https://github.com/CarlaUnreal/UnrealEngine.git ~/UnrealEngine_4.26

下载鱼眼相机补丁并手动应用:

wget https://github.com/carla-simulator/carla/files/5739990/UE4_patch_fisheye-sensor.zip unzip UE4_patch_fisheye-sensor.zip -d ~/UnrealEngine_4.26

编译过程中可能遇到以下错误及解决方案:

错误1:GetVertexShader()函数未定义CubemapUnwrapUtils.cpp中替换:

// 原代码 GraphicsPSOInit.BoundShaderState.VertexShaderRHI = VertexShader.GetVertexShader() // 替换为 GraphicsPSOInit.BoundShaderState.VertexShaderRHI = VertexShader.RHICmdList.GetBoundVertexShader()

错误2:内存尺寸不匹配MemoryImage.h中添加私有属性:

private: LAYOUT_FIELD(uint64, Hash); LAYOUT_FIELD_EDITORONLY(FHashedNameDebugString, DebugString);

完成修复后重新编译:

cd ~/UnrealEngine_4.26 ./Setup.sh && ./GenerateProjectFiles.sh make -j$(nproc)

3. CARLA 0.9.14的编译与补丁集成

从CARLA官方发布页面下载0.9.14版本源码并解压。设置环境变量指向编译好的Unreal Engine:

echo "export UE4_ROOT=~/UnrealEngine_4.26" >> ~/.bashrc source ~/.bashrc

修改Setup.sh脚本强制指定版本号:

# 找到约807行修改为 CARLA_VERSION="0.9.14"

编译Python API时可能遇到C++03兼容性问题,解决方法:

  1. 编辑cxx03_warn.hpp文件:
vim carla-0.9.14/Build/boost-1.80.0-c8-install/include/boost/math/tools/cxx03_warn.hpp
  1. 注释掉第92行的错误检查

编译服务器端时可能遇到的错误及修复:

final函数重写错误修改Sensor.h第57行,移除final修饰符

蓝图缺失问题Unreal/CarlaUE4/content目录从官方发布包复制到源码对应位置

4. ROS Bridge集成与性能优化

camera.py中添加鱼眼相机类实现:

class FisheyeCamera(Camera): def __init__(self, uid, name, parent, relative_spawn_pose, node, carla_actor, synchronous_mode): super(FisheyeCamera, self).__init__( uid=uid, name=name, parent=parent, relative_spawn_pose=relative_spawn_pose, node=node, synchronous_mode=synchronous_mode, carla_actor=carla_actor) self.listen()

为提高帧率,可尝试以下优化措施:

  1. 降低鱼眼相机分辨率(如从1920x1080降至960x540)
  2. settings.ini中调整渲染质量:
[QualitySettings] r.ScreenPercentage=70 r.ViewDistanceScale=0.7
  1. 使用-prefernvidia参数启动UE4编辑器

经过实测,在RTX 3090显卡上,四个鱼眼相机(960x640分辨率)可实现约15-20FPS的帧率,基本满足大多数仿真需求。

http://www.gsyq.cn/news/1435450.html

相关文章:

  • 2026 年郑州GEO代运营公司盘点:五家AI服务商深度解析 - 资讯纵览
  • 如何用.NET Windows Desktop Runtime彻底告别部署噩梦?完整实战指南
  • 如何快速部署开源自动化工具:5个实用技巧让你轻松玩转鸣潮游戏
  • 2026上海金桥能长租的高端酒店公寓|浦东商务租住首选榜单 - 资讯纵览
  • 2026年栀子花香水推荐:从大牌到小众高性价比选购指南 - 资讯纵览
  • 【企业级隐私防护紧急指南】:Gemini API调用新规生效前,你漏掉了这4个GDPR致命漏洞
  • 论文写完怕重复率爆表?这个AI免费查重神器,90%的同学还不知道!
  • 如何快速解锁游戏窗口限制:终极窗口编辑器完整指南
  • 2026 广州工厂搬家公司口碑排行榜 权威实测推荐 - 从来都是英雄出少年
  • 3步解密:让QQ音乐加密文件重获自由
  • 3步轻松下载国家智慧教育平台电子课本:tchMaterial-parser高效解析工具完整指南
  • 广州专业搬工厂公司 TOP5 推荐 高效安全有保障(2026 最新) - 从来都是英雄出少年
  • 广州厂房搬家费用大揭秘 隐形消费全曝光 避坑指南 - 从来都是英雄出少年
  • 南京50+热盘售楼处电话一键直通(2026年5月最新版) - 资讯纵览
  • 终极黑苹果配置指南:OpCore-Simplify如何让OpenCore EFI创建变得简单快速
  • 如何永久保存微信聊天记录?WeChatMsg完整导出指南
  • 如何用Simple Live一站式观看多平台直播:终极聚合解决方案
  • 基于Arduino Nano的DIY数字合成器:从电路设计到代码实现
  • 10通道通用FET总线开关:SN74CBT3384C
  • 2026 年北京汽车音响改装行业全面解析:北京哈尼 K 四大维度领跑全行业 - 汽车音响改装
  • 快速找回压缩包密码:开源解密工具终极指南
  • OpenModScan完整指南:免费开源Modbus主站工具,5分钟快速上手工业通讯测试
  • 苏州宣传册设计拍摄印刷全包服务怎么选?三家口碑平面公司专业画册设计评分9.9,附服务内容详解。 - 资讯纵览
  • 致自己的十七岁
  • 广西省贺州市寄件新范式:4 个全国低价寄快递微信工具,上门取件覆盖小件快递大件物流特产 - 时讯资讯
  • 2026年给袋包装机厂家综合推荐:全自动设备选型指南与优质品牌解析 - 资讯纵览
  • 通过diffusers和ComfyUI部署测试Z-Image base模型
  • 【比赛游记】2026 FJCPC 云游记
  • 广西省百色市寄件省钱攻略:4 个微信工具,上门取件通吃小件快递大件物流特产 - 时讯资讯
  • 3个颠覆性方法永久保存微信聊天记录:WeChatMsg让数字记忆永不褪色