CARLA常见技术问题集锦(一)地图与场景构建篇

编者荐语:

在自动驾驶技术加速落地的今天,CARLA 仿真引擎凭借其开源生态与高保真仿真能力,已成为全球开发者构建智能驾驶算法的核心工具之一。随着虚幻引擎 5.5 的全面升级,CARLA 0.10.0 版本实现了视觉革命:Lumen 全局光照与 Nanite 虚拟几何体技术让场景细节逼近真实,深信科创打造的 越野露天矿地图 更填补了非结构化道路测试的空白;生成式 AI 交通模型(Inverted AI)与原生 ROS2 接口的加入,则让复杂交通场景的仿真效率与真实性迈上新台阶。

然而,CARLA 强大的功能背后也伴随着陡峭的学习曲线。从多 GPU 配置优化到传感器数据同步,从动力学参数调试到联合仿真框架搭建,开发者在实践过程中常面临 “知其然不知其所以然”的困境。为此,深信科创技术团队系统梳理了来自 CARLA 社群、GitHub、Discord、知乎专栏、CSDN 等平台开发者们提出的的 常见技术问题,结合最新版本特性与开发经验,将其归纳为 地图与场景构建、车辆与模型、传感器与数据采集、API 与开发接口、仿真控制与算法、多机与分布式仿真、联合仿真与工具集成、扩展与自定义开发 等模块。在本次和后续的系列文章中逐次进行分析并解答。很多基础问题也可以通过查阅官方文档解决,CARLA 官方文档指导性很强。建议新手小白多看文档。

地图与场景构建

📦基础操作类

Q1:Carla 中怎么获取地图中任意一点的世界坐标?

直接启动 manual_control,手动操控车到指定地点,就能读取坐标。也可以通过ROS来运行。
ROS具体步骤

  1. 确保 CARLA 正在运行后启动 ROS 桥;

  2. 生成对象,启动 carla_manual_control节点。

  3. 要手动控制车辆,请按 'B' 键。按 'H' 键查看说明。

# ROS 1
roslaunch carla_ros_bridge carla_ros_bridge_with_example_ego_vehicle.launch
# ROS 2
ros2 launch carla_ros_bridge carla_ros_bridge_with_example_ego_vehicle.launch.py

Q2:有没有 Carla 的地图,简单的多车道,有停车位的?

参考 Carla 地图文档,提供了每张地图的俯视图和具体特征,可以查看符合需求的地图。例如Town05中就具有多车道和停车位:
https://carla.readthedocs.io/en/latest/map_town05/

Q3:Carla 是否支持 .xodr 格式的地图?

支持,可参考这篇微信文章实现:Carla中如何加载OpenDrive地图?

Q4:导入 OpenDrive 时如何增加一个大地以防止车辆掉下去?

增加碰撞体。可参考官方文档:https://carla.readthedocs.io/en/latest/tuto_D_generate_colliders/#generate-detailed-colliders

创建 物理碰撞体 的视频教程:CARLA常见技术问题集锦(一)地图与场景构建篇 视频见原文,CSDN上传受限。

Q5:在CARLA中执行make import、make package和make launch命令时,是否会为行人专门生成一个用于导航的地面mesh?

是的,CARLA中的地面使用的是mesh而非landscape地形系统。在执行这些命令时,会生成一个专门的navigation mesh(导航网格),这个navmesh会被Traffic Manager(TM)和行人导航系统使用。其中包含专门为行人优化的路径信息。


⚙️地图导入与基础功能

Q6:Carla 目前是否支持导航地图(非高精地图)?

Carla 仅支持 OpenDrive 格式的高精地图,导航地图需自行定义。地图导航和自定义生成导航地图参考官方文档:https://carla.readthedocs.io/en/latest/core_map/#custom-maps
以下视频解释了将地图导入 CARLA 可用的某些方法:CARLA常见技术问题集锦(一)地图与场景构建篇 视频见原文,CSDN上传受限。

Q7:CARLA 街景地图里面有隧道场景吗?

Town03地图中有地下通道,如下面图片所示。另外深信科创也有做。

Q8:如何将自定义 HD 地图数据通过 RoadRunner 导入 Carla,并添加建筑物等资产?

将地图文件(xodr 和 fbx)放到 Import 目录,运行make import,可使用 RoadRunner 构建道路网络(Road Network)并导出地图,然后在 Carla 中添加建筑物等资产。具体操作参考官方文档中Add New Map部分:https://carla.readthedocs.io/en/latest/tuto_M_add_map_alternative/#roadrunner-plugin-import

Q9:导入的自定义地图在 UE4 中运行后,如何集成到 CarlaUE4.sh 环境中并通过 Python 调用?

使用make package命令将地图打包,具体操作参考官方文档:https://carla.readthedocs.io/en/latest/tuto_M_add_map_package/#ingesting-maps-in-a-carla-package

Q10:如何在Carla中加载外部制作的OpenDRIVE文件并显示对应的建筑模型?我的OpenDRIVE文件由其他软件(如VTD)生成,模型文件也是外部的。目前仅能显示道路,但希望复用原有模型(如VTD中的配置)。

要在Carla中加载外部制作的OpenDRIVE文件并显示建筑模型,需注意OpenDRIVE本身仅描述道路信息,无法直接加载模型,但可通过object标签存储建筑信息,再借助工具构建地图模型(如VTD通过名称匹配模型文件和配置文件实现加载)。由于Carla要求外部模型必须导入其素材库(如FBX、OBJ格式)才能引用,因此需将原有模型转换为Carla支持的格式并关联OpenDRIVE中的对象名称。对于少量地图可手动摆放模型,而大规模地图建议使用程序化生成工具(如Carla最新版本的功能或深信科创的OpenDRIVE工具链)批量处理,以复用VTD等平台的模型配置并适配Carla的素材库体系。


🗺️ 进阶功能与疑难解决

Q11:如何在 Carla 道路上贴一张图片?

通过源码编译 Carla,在 Carla UE5 中操作:创建材质、添加纹理贴图并应用材质,参考 UE 文档:https://dev.epicgames.com/documentation/zh-cn/unreal-engine/texture-asset-editor-in-unreal-engine 

如何在UE5中混合材质的教学视频见原文: CARLA常见技术问题集锦(一)地图与场景构建篇

Q12:OpenDRIVE 独立模式中车道标线无法渲染,如何解决?

是的,因为没有生成车道线网格体。深信科创有opendrive生成路面(包括车道线)的工具。

Q13:Carla 自定义地图,make import 后无法导入 .xodr 中自定义 surface 的 OpenCRG 属性,如何解决?

Carla 目前不支持道路 OpenCRG 属性的导入。

Q14:Carla 加载的 .xodr 地图如何显示车道线信息?现在有没有比较好的方案?

深信科创2024年开发的新特性中,CARLA已经可以支持导入加载xodr后生成各种样式的车道线,包括黄白色的单实线、单虚线、双实线等。(暂未开源)

Q15:在 Roadrunner 中,有些资产是 .fbx_rxx 格式,有些是 .fbx 格式,.fbx_rxx 格式的资产可以通过 make import 导入,但其他 .fbx 格式的资产无法导入,这是什么原因?如何解决?

在 Roadrunner 中,基于同样的道路分别添加 .fbx 和 .fbx_rrx 格式的模型构建场景后,使用 Export->CarlaFilmBox 导出选项,均可以通过 Carla 的 make import 命令生成地图关卡文件,并且可以通过 Python 脚本测试。如果 .fbx 格式的资产无法导入,建议提供更详细的错误信息以便进一步排查问题。通常情况下,确保资产格式和导出选项正确,可以解决导入问题。

Q16:如何为 Carla 制作实景地图?RoadRunner 和 OpenStreetMap 似乎无法完全解决这个问题。

unisim换了视角车轮子不转光照没影响,也会觉得与真实世界不一样。用人眼判断仿真真实度是一种非常主观的方式,GAN也能生成人眼看着真,但就是可以扰乱神经网络输出的图像,这种情况到底算不算真实,就看测试对象是什么了。只要肯投人投钱投机器,天花板还是很高的。

Q17:在CARLA 0.10.0中,Towns 1-9、11-13和15未被升级且未包含,但Town10已升级。旧版本的部分资源仍可在内容库中使用。我的项目需要使用Town04或Town05,但当前版本可能不完全支持。是否可以通过从源码构建CARLA来恢复对Town04或Town05的访问?若可以,请提供相关指导或文档(是否需要FBX文件重建)?此外,如何访问由routeplanner.cpp生成的样条点(路由生成时无蓝图类)?

1. 重建旧版本Town

  • •非大地图(如Town04/05)需大量修改:启用Nanite需将大型网格(如建筑)拆分为小块,并分离透明/非透明材质。还需设置新的"CarlaWeather"。

  • 参考下方视频教程:按路由规划器的方式处理路径点。CARLA常见技术问题集锦(一)地图与场景构建篇 视频见原文,CSDN上传受限。

  • 大地图(LargeMaps)暂不支持,需研究世界分区(World Partition)实现。

2. 访问样条点

  • • 通过C++代码中的AOpenDriveActor::BuildRoutes(位于OpenDriveActor.cpp)生成路由。

  • • 具体操作:仿照OpenDriveActor.cpp第235行的路由规划器逻辑,生成位置点并添加到样条网格(Spline Mesh)。


本文主要是简述了在使用CARLA过程中遇到的关于地图与场景构建的一些常见问题。未来CARLA问题总结系列文章将会持续更新关于车辆与模型、传感器与数据采集、API 与开发接口、仿真控制与算法、多机与分布式仿真、联合仿真与工具集成、扩展与自定义开发等常见问题。关注作者,了解更多CARLA硬核知识!

若需详细了解文中所提及的深信科创自主开发的工具,或者加入CARLA开发者交流群,在CSDN后台私信我们吧!

CARLA AI助手上线!你的24小时仿真顾问!

以上问题已全部录入「CARLA AI助手」知识库!现在起,只需提问即可获得:
✅ 精准解答:覆盖安装、API开发、场景设计全流程
✅ 代码生成:一键输出环境配置脚本与调试命令
✅ 实时更新:同步官方文档与社群最新解决方案

立即体验:在「CARLA引擎中文站」聊天框直接输入问题或点击菜单栏「AI助手」开启智能问答!


互动话题
你在使用CARLA时还遇到过哪些“玄学”问题?欢迎留言讨论!点赞最高的问题,我们将优先安排技术解析~

往期精品内容推荐:

【直播回顾】CARLA新版本解读会

CARLA 0.10.0正式发布!带来UE5.5升级、首个越野露天矿地图、ROS2原生接口、集成交通流与SCENIC3等新亮点!

一文看懂 | OASIS SIM V3.0交通流如何为自动驾驶算法提供CornerCase挑战

OASIS SIM V3.0 全新升级上线!AI重塑端到端自动驾驶仿真!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/75898.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

vue+webpack5(高级配置)

项目地址 基础配置可查看文档 1、devtool 配置 (找到报错位置)2、优化打包速度3、oneOf 每个文件只被一个loader处理4、 include/exclude 处理某些文件或者排除某些文件5、 cache 缓存 (提升后面几次的打包速度)6、 多进程打包7、减少代码体积 Tree Shak…

JavaWeb——事务管理、AOP

目录 一、事管理 1.开启事务管理日志 2.开启事务管理 3.传播行为 二、AOP 1.通知类型 2.通知顺序 3.切入点表达式 4.连接点 一、事务管理 1.开启事务管理日志 2.开启事务管理 3.传播行为 当一个事务方法被另一个事务方法调用时,这个事物方法应该如何进行事…

okhttp3网络请求

一、使用okhttp3和gson build.gradle ... dependencied {...implementation com.squareup.okhttp3:okhttp:3.9.0implementation com.google.code.gson:gson:2.10.1 }二、响应模型 可根据实际情况进行调整,目前我所需的就是这三个变量 HttpResponseData.java im…

【蓝桥杯每日一题】3.28

🏝️专栏: 【蓝桥杯备篇】 🌅主页: f狐o狸x "今天熬的夜,会变成明天奖状的闪光点!" 目录 一、唯一的雪花 题目链接 题目描述 解题思路 解题代码 二、逛画展 题目链接 题目描述 解题思路 解题代…

【MinIO】Bucket的生命周期管理

👻创作者:丶重明 👻创作时间:2025年3月7日 👻擅长领域:运维 目录 1.ILM使用介绍2.生命周期配置实例 1.ILM使用介绍 对象生命周期管理(ILM)是现代对象存储系统的核心功能之一&#x…

Android 中隐藏标题栏和状态栏的方法

在Android开发中,隐藏标题栏和状态栏是实现全屏显示的常见需求。 一、隐藏标题栏 1、通过代码隐藏 对于继承自 AppCompatActivity 的 Activty,可在 onCreate() 方法中调用supportRequestWindowFeature 或 getSupportActionBar 方法来隐藏标题栏。 ove…

进程间通信——信号量

进程间通信——信号量 目录 一、基本概念 1.1 概念 1.2 基本操作 1.3 相关函数 1.3.1 semget创建/获取 1.3.2 semop操作信号量 1.3.3 semctl初始化/删除 二、代码操作 2.1 不用PV的 2.2 用PV 的 2.2.1 a.c 2.2.2 b.c 2.2.3 sem.h 2.2.4 sem.c 一、基本概念 1.1…

Linux内核2-TFTP与NFS环境搭建

Uboot:引导程序 初始化硬件设备,初始化c语言环境,为内核加载做准备 zImage:内核文件 rootfs:文件系统,为用户提供一个与硬件设备数据交互的系统 1.TFTP和NFS功能 TFTP:简单文件传输协议网络配置 pc可以下载 2.minicom bootargs…

TDengine 中的命名与边界

简介 本章主要介绍命名的合法字符集和限制规则,这对于正确使用 TDengine,减小报错很重要,这些规则在 SQL 语句中都生效,在使用过程中要注意,避免不必要的错误。 名称命名规则 合法字符:英文字符、数字和…

C++ 中将函数作为参数传递

C 中将函数作为参数传递 1. 通过指针传递函数 函数可以通过传递函数的地址来作为参数传递&#xff1b;简而言之&#xff0c;就是通过指针实现这一点。 示例代码 #include <iostream> using namespace std;// 定义加法和减法函数 #include <iostream> #include …

Vala 编程语言教程-继承

继承‌ 在 Vala 中&#xff0c;一个类可以继承自 ‌一个或零个‌ 其他类。尽管实际开发中通常继承一个类&#xff08;不同于 Java 等语言的隐式继承机制&#xff09;&#xff0c;但 Vala 并不强制要求必须继承。 当定义继承自其他类的子类时&#xff0c;子类的实例与父…

Crypto Architecture Kit简介

HarmonyOS 5.0.3(15) 版本的配套文档&#xff0c;该版本API能力级别为API 15 Release 文章目录 约束与限制能力范围基本概念与相关Kit的关系 Crypto Architecture Kit屏蔽了第三方密码学算法库实现差异的算法框架&#xff0c;提供加解密、签名验签、消息验证码、哈希、安全随机…

交流电机类型及其控制技术

交流电机可分为同步电机和异步电机两大种类&#xff0c;如果电机转子的转速与定子旋转磁场的转速相等&#xff0c;转子与定子旋转磁场在空间同步地旋转&#xff0c;这种电机就称为同步电机。如果电机转子的转速不等于定子旋转磁场的转速&#xff0c;转子与定子旋转磁场在空间旋…

SQL语言分类及命令详解(一)

目录 1. DQL&#xff08;Data Query Language&#xff09;数据查询语言 主要命令&#xff1a; SELECT 2. DDL&#xff08;Data Definition Language&#xff09;数据定义语言 主要命令&#xff1a; CREATE ALTER DROP TRUNCATE&#xff08;清空表数据&#xff0c;保留…

fluent_UDF学习笔记

UDF源代码路径 D:\Program Files\ANSYS Inc\v231\fluent\fluent23.1.0\src关于颗粒反弹速度的计算 /* 通过面法向单位向量计算速度的法向向量、切向向量&#xff0c;再通过法向、切向恢复系数重新计算反弹速度*//* Compute normal velocity.将颗粒速度向面法线方向投影&#x…

Go 语言标准库中sort模块详细功能介绍与示例

Go语言的 sort 模块提供了对切片和自定义数据结构的排序功能&#xff0c;支持基本类型排序、自定义排序规则、稳定排序和二分查找。以下是 sort 模块的核心方法及示例说明&#xff1a; 1. 基本类型排序 sort.Ints、sort.Float64s、sort.Strings 直接对基本类型的切片进行排序…

第十六届蓝桥杯模拟二(串口通信)

由硬件框图可以知道我们要配置LED 和按键 一.LED 先配置LED的八个引脚为GPIO_OutPut,锁存器PD2也是,然后都设置为起始高电平,生成代码时还要去解决引脚冲突问题 二.按键 按键配置,由原理图按键所对引脚要GPIO_Input 生成代码,在文件夹中添加code文件夹,code中添加fun.…

06-ADC

ADC简介 Analog-Digital Converter 模拟-数字转换器 ADC可以将引脚上连续变化的模拟电压转换为内存中存储的数字变量&#xff0c;建立模拟电路到数字电路的桥梁。 12位逐次逼近型ADC&#xff0c;1us转换时间&#xff1b;输入电压范围&#xff1a;0-3.3V&#xff0c;转换结果…

二层综合实验

拓扑图 实验要求 1.内网IP地址使用172.16.6.0/16分配 2.sw1和sW2之间互为备份 3.VRRP/STP/VLAN/Eth-trunk均使用 4.所有Pc均通过DHCP获取IP地址 5.ISP只能配置IP地址 6.所有电脑可以正常访问IsP路由器环回 实验思路 这是一个二层综合实验每当拿到一个实验看清楚要求之后都有…

Java实现pdf中动态插入图片

今天接到一个需求&#xff0c;需要在pdf中的签名处&#xff0c;插入签名照片&#xff0c;但签名位置不固定&#xff0c;话不多说上代码&#xff1a; 1、首先引入itextpdf依赖包&#xff1a; <dependency><groupId>com.itextpdf</groupId><artifactId>…