当前位置: 首页 > 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.jsqmd.com/news/924125/

相关文章:

  • 为什么开了 `open_file_cache` 图片会不显示?
  • Arduino Lint:项目结构静态分析工具,提升代码规范与协作效率
  • 2026 年郑州GEO代运营公司盘点:五家AI服务商深度解析 - 资讯纵览
  • Xenia Canary终极指南:3步快速上手Xbox 360游戏模拟器
  • 别再手动写测试了!用Python+机器学习,5分钟搞定芯片验证的激励生成
  • 2026年GEO培训机构选品指南与优质机构汇总 - 榜单测评
  • 终极微信聊天记录管理方案:让珍贵对话永久留存
  • Python数据可视化实战:用Seaborn画小提琴图时,如何彻底干掉那些‘幽灵负值’?
  • 如何用.NET Windows Desktop Runtime彻底告别部署噩梦?完整实战指南
  • 华硕笔记本终极性能优化指南:GHelper轻量级控制工具完全解析
  • Arduino电机控制实战:制作橡皮筋发射器,掌握PWM与嵌入式系统设计
  • 如何快速部署开源自动化工具:5个实用技巧让你轻松玩转鸣潮游戏
  • 2026年泡沫消火栓箱:解读行业三大核心趋势 - 资讯纵览
  • 2026上海金桥能长租的高端酒店公寓|浦东商务租住首选榜单 - 资讯纵览
  • 2026年栀子花香水推荐:从大牌到小众高性价比选购指南 - 资讯纵览
  • Arduino PWM控制RGB LED实现呼吸渐变小夜灯制作教程
  • 【企业级隐私防护紧急指南】:Gemini API调用新规生效前,你漏掉了这4个GDPR致命漏洞
  • 论文写完怕重复率爆表?这个AI免费查重神器,90%的同学还不知道!
  • 2026年福州市CPPM报名十大核心问题全流程答疑 - 众智商学院课程中心
  • 如何完全掌控微信聊天记录?WeChatMsg三步实现永久保存与智能分析
  • 2026年郑州GEO优化公司盘点:5家机构实力解析与选型指南 - 资讯纵览
  • 技术人的退休规划:提前规划未来
  • 2026 广州搬厂公司收费标准 合理报价防溢价指南 - 从来都是英雄出少年
  • 2216 A
  • 20252902 2025-2026-2 《网络攻防实践》第九周
  • 如何快速解锁游戏窗口限制:终极窗口编辑器完整指南
  • 决策者选几家物流公司踩过的坑:头部客观盘点 - 资讯纵览
  • 如何掌控你的数字记忆:WeChatMsg数据主权终极指南
  • 2026 广州工厂搬家公司口碑排行榜 权威实测推荐 - 从来都是英雄出少年
  • 如何高效使用OpCore-Simplify:专业用户的完整黑苹果配置策略指南